ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange |
1 | initial version |
I am not aware of anything that has made it into the upstream ros2_controllers repo, but there was some in progress work on this that you may find useful.
ros2_controllers#198 has a bit of discussion, and I did make a fork with a functional* PID controller (* see my comment for a few caveats). My work on this had stalled out and was never upstreamed because I had wanted to include joint limits, but the upstream ros2_control repo has yet to finalize how these are going to be implemented.
A few other notes if you do follow my rough implementation as a starting point:
Yaml Format
my_controller:
ros__parameters:
gains:
joint_1:
p: 10.0
i: 1.0
d: 0.0
...
or equivalently as a parameter with the name gains.joint_1.p
on_configure()
method. If you want to be able to change them on the fly without reloading the controller, you'd need to add a parameter callback. There's a bit of a safety vs convenience tradeoff there.