ROS2 Position Controller via Effort Output

asked 2022-05-17 17:15:29 -0600

jackfrye gravatar image

updated 2022-05-18 20:50:44 -0600

In foxy, I am trying to control the position of a revolute joint by applying effort (torque) to the joint in a Gazebo simulation.

I believe currently I have a controller that takes what it considers to be a desired effort and drives the joint to the maximal allowed position specified in the URDF at which point it continues applying the same effort that got it to that position.

I based my work on the cart effort example from gazebo_ros2_control_demos

In ROS2 Control, is there an equivalent to the ROS controller listed here under effort_controllers/joint_position_controller?

The only effort controller I can seem to find in ROS2 is JointGroupEffortController. Can JointGroupEffortController take a position and use an effort applied to joint to achieve it, namely in a Gazebo simulation? Are there any examples of this?

edit retag flag offensive close merge delete


Hello, I'm having the same problem right now, did u manage to find an answer ?

7Amadaaaa gravatar image 7Amadaaaa  ( 2023-03-29 12:47:45 -0600 )edit

Not really, had to implement the PID myself in C++ application and use apply a "desired effort" to a controller. Algorithm was read position, then apply a torque depending on positional error and PID calculation

jackfrye gravatar image jackfrye  ( 2023-05-08 19:52:25 -0600 )edit