[ros2_control] choose the right controller, joints in close loop

asked 2022-03-25 10:16:30 -0500

timRO gravatar image


I try to control in position a hydraulic arm compose of 4 joints with ros2_control.

Joint angle was provide by IMU sensors. The idea is to set a destination angles at joint level with joint_states and set a max speed for this movement. Ideally, the controller try to reach de set speed of each joint. The hydraulic an system you not sure to reach the max speed.

When you approach the destination angle, i need to slow down.

Its work in simulation into Gazebo with a JointTrajectoryController and position command interface (without slow down only full speed and stop). JointTrajectoryController look lick an open loop controller, in my application the time_from_start of Jointtrajectorypoint msg can not be known. I want to go faster a i can.

I try with velocity_controllers/JointGroupvelocityController this controller seem to by a close loop controller. Userdoc say, “controlling the velocity on certain joint to achieve a set position”. Base on exemple_velocity of gazebo_ros2_control_demo, it’ seem working in speed, I didn’t find a way to set destination angle.

Need a do a custom controller lick “pendulum_control” ? If have you an example or any advices.

Kind Regards

edit retag flag offensive close merge delete