DynaArm PID Tuner

Controller that allows to tune the PID parameters of the controllers running on the actuators on the live system.\

Important

Please use with care. By selecting bad parameters it is possible to damage the hardware.

Parameters

Definition:

dynaarm_pid_tuner:
  joints:
    type: string_array
    default_value: []
    description: Names of joints used by the controller
    validation:
      unique<>: null

joints | [Required]:
List of managed joints by the controller. Always needs to be a list of all joints of an arm in the order specified in the urdf

Example:

A full example can be found in the dynaarm_demo repository.

pid_tuner:
  ros__parameters:
    joints:
      - shoulder_rotation
      - shoulder_flexion
      - elbow_flexion
      - forearm_rotation
      - wrist_flexion
      - wrist_rotation

ROS Interface

~//pid_gains/set | [Subscription]:
type: <dynaarm_msgs/msg/PIDGains.
For each configured joint a new topic is created that awaits new PID-gains.
The received gains are then configured as a parameters of the controller node and set to the drive during the next update cycle.

Additional Information

During controller activation the current gains are set as parameter to the controller ROS node. They can be access via ros2 param get <controller node name> <joint name>/<gain type> with gain type being one of [p_gain, i_gain,d_gain].

References