-
Notifications
You must be signed in to change notification settings - Fork 183
Description
I have a custom setup with moveit2 where I use the moveit setup assistant to generate the necessary configuration files. I just realized that the generated joint_limits.yaml from the setup assistant misses some parts of the joint_limits.yaml file provided by the ur description package.
This makes sense given that the setup assistant creates the joint_limits.yaml based on the urdf which can only include certain types of limits.
When we take for example the elbow_joint then the entry in in the limits file provided by the description package looks like this:
(which might also be the most interesting one)
elbow_joint:
# acceleration limits are not publicly available
has_acceleration_limits: false
has_effort_limits: true
has_position_limits: true
has_velocity_limits: true
max_effort: 150.0
# we artificially limit this joint to half its actual joint position limit
# to avoid (MoveIt/OMPL) planning problems, as due to the physical
# construction of the robot, it's impossible to rotate the 'elbow_joint'
# over more than approx +- 1 pi (the shoulder lift joint gets in the way).
#
# This leads to planning problems as the search space will be divided into
# two sections, with no connections from one to the other.
#
# Refer to https://github.com/ros-industrial/universal_robot/issues/265 for
# more information.
max_position: !degrees 180.0
max_velocity: !degrees 180.0
min_position: !degrees -180.0
In the generated file it looks like this (Note I am using a multiarm setup with tf_prefixes set)
ur_top/elbow_joint:
has_velocity_limits: true
max_velocity: 3.1415926535897931
has_acceleration_limits: false
max_acceleration: 0.0
I would guess that moveit still takes the joint limits correctly from the URDF somehow.