joint_limits_interface package from ros2_control repocontroller_interface controller_manager controller_manager_msgs hardware_interface joint_limits_interface ros2_control ros2_control_test_assets ros2controlcli transmission_interface
|Tags||No category tags.|
|License||Apache License 2.0|
Joint Limits Interface
joint_limits_interface contains data structures for representing joint limits, methods for populating them from common formats such as URDF and the ROS parameter server, and methods for enforcing limits on different kinds of hardware interfaces.
The joint_limits_interface is not used by controllers themselves (it does not implement a
instead operates after the controllers have updated, in the
write() method (or equivalent) of the robot abstraction.
Enforcing limits will overwrite the commands set by the controllers, it does not operate on a separate raw data buffer.
There are two main elements involved in setting up a joint limits interface:
Joint limits representation
- JointLimits Position, velocity, acceleration, jerk and effort.
SoftJointLimits Soft position limits,
k_v(as described here).
- Loading from URDF There are convenience methods for loading joint limits information (position, velocity and effort), as well as soft joint limits information from the URDF.
- Loading from ROS params There are convenience methods for loading joint limits from the ROS parameter server (position, velocity, acceleration, jerk and effort). Parameter specification is the same used in MoveIt, with the addition that we also parse jerk and effort limits.
Joint limits interface
- For effort-controlled joints, the soft-limits implementation from the PR2 has been ported.
- For position-controlled joints, a modified version of the PR2 soft limits has been implemented.
- For velocity-controlled joints, simple saturation based on acceleration and velocity limits has been implemented.
Please refer to the joint_limits_interface wiki page.