[ros-users] [Discourse.ros.org] [Next Generation ROS] Ros_control in ROS2 wishlist

Ian McMahon via Discourse.ros.org ros.discourse at gmail.com
Wed Feb 13 15:56:16 UTC 2019

Having multiple controllers communicate in a shared-memory fashion, potential through a shared hardware interface, would be highly desirable. 

For instance, when programming Sawyer's ROS Control Gazebo node to achieve "Gravity Compensation", we needed a controller to [estimate arm Effort due to Gravity, Inertia, and Coriolis](https://github.com/RethinkRobotics/sawyer_simulator/blob/master/sawyer_sim_controllers/src/sawyer_gravity_controller.cpp) forces based on the current arm configuration and then combine that with the desired commanded control mode ([Position PID](https://github.com/RethinkRobotics/sawyer_simulator/blob/master/sawyer_sim_controllers/src/sawyer_joint_position_controller.cpp), [Velocity PID](https://github.com/RethinkRobotics/sawyer_simulator/blob/master/sawyer_sim_controllers/src/sawyer_joint_velocity_controller.cpp), or [direct Effort](https://github.com/RethinkRobotics/sawyer_simulator/blob/master/sawyer_sim_controllers/src/sawyer_joint_effort_controller.cpp)).

We achieved this with a [custom Hardware Interface](https://github.com/RethinkRobotics/sawyer_simulator/tree/master/sawyer_hardware_interface) package that would allow controllers to "share" the control over a single interface (like Position PID + Gravity compensation), and sum their component efforts to achieve the desired command without needing to worry about Gravity-related forces.

The code is all there on github, but I never took the time to figure out how to contribute the useful bits back to ros_controls. I'd be interested in helping make this part of the ROS2 ros_controls Hardware Interface.

[Visit Topic](https://discourse.ros.org/t/ros-control-in-ros2-wishlist/7803/11) or reply to this email to respond.

More information about the ros-users mailing list