ros2_control joint limits
OS: Ubuntu 22.04
Distro: Humble
Hi, I am trying to use MoveIt2! to control a custom robot. I have created a simple URDF files to test how to work with ros2_control. I have created a hardware interface component. When running the trajectory, it seems that the joint_limits that I have specified in the URDF file is not being enforced.
<?xml version="1.0"?>
<robot name="one_joint">
<link name="base_link">
<visual>
<geometry>
<cylinder length="0.6" radius="0.2"/>
</geometry>
</visual>
<collision>
<geometry>
<cylinder length="0.6" radius="0.2"/>
</geometry>
</collision>
</link>
<link name="rotate_joint">
<visual>
<geometry>
<box size="0.6 0.1 0.2"/>
</geometry>
<origin rpy="1.57075 0 0" xyz="0.3 0 0"/>
</visual>
<collision>
<geometry>
<box size="0.6 0.1 0.2"/>
</geometry>
</collision>
</link>
<joint name="base_to_rotate_joint" type="revolute">
<!-- <safety_controller k_velocity="4" soft_lower_limit="-0.20" soft_upper_limit="0.20" /> -->
<parent link="base_link"/>
<child link="rotate_joint"/>
<origin xyz="0 0 0.35"/>
<axis xyz="0 0 1"/>
<limit effort="87" lower="-6" upper="6" velocity="0.272645" />
</joint>
<ros2_control name="grab_joint1" type="actuator">
<hardware>
<plugin>grab_hardware_interface/GrabJointHardware</plugin>
</hardware>
<joint name="base_to_rotate_joint">
<command_interface name="position">
<param name="min">-6</param>
<param name="max">6</param>
</command_interface>
<command_interface name="velocity">
<param name="min">-0.27</param>
<param name="max">0.27</param>
</command_interface>
<command_interface name="acceleration">
<param name="min">-0.27</param>
<param name="max">0.27</param>
</command_interface>
<state_interface name="position"/>
<state_interface name="velocity"/>
</joint>
</ros2_control>
</robot>
Going through the ros2_control PRs I am completely confused on how to enforce the joint_limits. Can anyone shed some light on this.