Why does the velocity limit also limit effort?
A low <limit> velocity </limit>
in the URDF also limits the effective effort a joint can apply.
I am loading robot arms from a urdf xacro with a hardware_interface/EffortJointInterface using a roslaunch script. I am spawning an effort_controllers/JointPositionController for each joint. I am commanding the arms "straight out":
With a high effort limit (3000) and low velocity limit (20) on each joint the arms droop:
With the same effort limit but a larger velocity limit (50) the arms successfully reach their goal position:
My best guess is that the controller outputs a large effort which leads to a large velocity, and this velocity is clipped before gravity terms are added.
i.e.
vel_limit(controller) + gravity = 0
instead of
vel_limit(controller + gravity) = "upwards motion"
Is the argument `paused` false when you bring up the empty world?