compute_cartesian_path does not compute continuous joint positions
Hello,
I am running Ubuntu 16.04.5 LTS 16.04 in WSL with ROS kinetic.
While calculating several cartesian paths for a staubli_tx260l (6axes industrial robot) with the compute_cartesian_path service, it happens that sometimes the path is invalid, since the joint positions along the paths are not continuous, see for example picture below.
The flip happens between the 4th and the 5th position, where the robot should move from position
[-0.8164353348567588, -1.0937959386772529, 1.4667880334652406, 1.9230484632374774, 0.3627698072434711, 3.9772405581658408]
to
[2.0767835783263866, -0.4576791782176186, 1.4568906881126429, -2.735827535224531, 1.191242394368736, -0.2624960939982821]
This is the MoveIt log:
[ INFO] [1560442288.701454600]: Received request to compute Cartesian path
[ INFO] [1560442288.707727800]: Attempting to follow 2 waypoints for link 'robotB_speaker_tcp' using a step of 0.010000 m and jump threshold 0.000000 (in global reference frame)
[ INFO] [1560442288.748145300]: Computed Cartesian path with 15 points (followed 100.000000% of requested trajectory)
I am using a custom moveit package for the staubli robot, but the same occurred also with the ur5_moveit_package. So I guess the problem has to do with the planning algorithm rather than the model.
Is this a bug or do I miss some setting?
Thanks in advance!
Best, Romana
The
jump_threshold
parameter passed to the compute_cartesian_path method is used to control the maximum joint angle jumps between successive joint angles to still be considered a valid path. What are you setting for that value?