ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
0

(Too) High number of intermediate points in compute_cartesian_path()

asked 2017-02-21 12:05:11 -0600

NEngelhard gravatar image

Hey!

I started to work with compute_cartesian_path (currently on Indigo) to move a UR5. As a testcase, I create a list of 5 poses starting at the current pose along the x axis with a distance of 10cm. (The robot should move half a meter). My call looks like this:

self.move_group.compute_cartesian_path(waypoints=pose_list, eef_step=0.02, jump_threshold=10, avoid_collisions=False)

The trajectory looks good, but my plan consists of 46 points (len(plan.joint_trajectory.points)). The docu says "Configurations are computed for every eef_step meters;" so I expect around 25 intermediate points.

This number depends strongly on the jump_threshold. If I set it to a value of less than 1.09, I get a list of 26 intermediate points. For every value above 1.09, I get the all 46 points. The maximal euclidean distance between the joint values in the shorter list however is 0.08 (and 0.04 for the longer list)

Does someone know how the jump_threshold is used and how it is computed?

Nikolas

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
0

answered 2017-03-27 16:02:30 -0600

v4hn gravatar image

There is a condition in the cartesian path planning algorithm that adds 4 intermediate states between two waypoints if a jump_threshold is specified.

I guess this is because the continuity check that is implemented with the jump threshold relies on the average distance between all intermediate points. An average distance only makes sense though if there is a minimum number of measurements to average over. So I guess Ioan more or less randomly decided to add 4 steps there.

I guess the 26 states you get back when you set the jump threshold to a very tight bound do not make the robot move the full 50cm, or do they? Setting it to a value close to 1.0 entails that the joint space distance between all consecutive intermediate points of the returned trajectory has to be nearly equal. Otherwise the algorithm will truncate the trajectory at the first waypoint that differs too much from its predecessor.

edit flag offensive delete link more

Question Tools

2 followers

Stats

Asked: 2017-02-21 12:05:11 -0600

Seen: 569 times

Last updated: Mar 27 '17