Joint Limiting for ros2_control
ros2_control provides several mechanisms to handle joint limits for different hardware interfaces.
Enable Joint Limits
There exists several ways in controlling the joint limits handling in ros2_control:
globally for all interfaces of all hardware components via the
ros2_control_nodeparameterenforce_command_limits, for details see here.for all interfaces of a joint
<joint name="joint1"> ... <limits enable="false"/> ... </joint>
for a single interface of a joint
<joint name="joint1"> ... <command_interface name="position"> <limits enable="false"/> </command_interface> ... </joint>
If joint limits are active for a specific interface, the controller_manger will print a similar message on startup:
[controller_manager]: Using JointLimiter for joint 'joint1' in hardware 'RRBot' : ' has position limits: true [-1, 1] [ros2_control_node-1] has velocity limits: true [1] [ros2_control_node-1] has acceleration limits: false [nan] [ros2_control_node-1] has deceleration limits: false [nan] [ros2_control_node-1] has jerk limits: false [nan] [ros2_control_node-1] has effort limits: true [100] [ros2_control_node-1] angle wraparound: true'
Configuration of Limits
tba
Description of the Limiter Algorithms
tba