ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

My understanding is that the intent is to have the following hierarchy for ros2_control:

  1. yaml config file (highest precedence)
  2. <ros2_control> limit tags in the URDF
  3. <joint> limit tags in the URDF (lowest precedence)

That said, it has been a while since I've looked through the code and at the time, this was still an "in development" feature of ros2_control. The last time I was reviewing the code, my impression was that only limits defined in the yaml file would be respected, and only if the controller was setup to respect them.

There's a bit of discussion on this draft PR that may help shed some light.

Maybe someone else can chime in with more recent insights.

My understanding is that the intent is to have the following hierarchy for ros2_control:

  1. yaml config file (highest precedence)
  2. <ros2_control> limit tags in the URDF
  3. <joint> limit tags in the URDF (lowest precedence)

That said, it has been a while since I've looked through the code and at the time, this was still an "in development" feature of ros2_control. The last time I was reviewing the code, my impression was that only limits defined in the yaml file would be respected, and only if the controller was setup to respect them.

There's a bit of discussion on this draft PR that may help shed some light.

Maybe someone else can chime in with more recent insights.

EDIT: adding a small note that may help for clarity - I believe the intent is also to have checks to ensure that the higher precedence limits do not break the URDF limits; e.g. the URDF should specify hardware limits (e.g. the known max speed of a motor, the known end of travel on a joint) set by the manufacturer, the yaml file would specify more conservative control limits based on the user's needs (e.g. adding a safety margin around the end of travel)