Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add fields to set cartesian end effector speed #80

Merged
merged 1 commit into from
Jun 29, 2020

Conversation

2scholz
Copy link
Contributor

@2scholz 2scholz commented Jun 4, 2020

See moveit/moveit#1790 for more details.

These additional fields are needed to pass these values from the move_group_interface to a planning adapter, that recomputes the time parameterization of the trajectory to match the given Cartesian speed.

Copy link
Contributor

@v4hn v4hn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is an interesting extension for the MotionPlanRequest, even if the main use for this is with Cartesian motions (and these are currently not planned through this interface).

Shouldn't this be the maximum Cartesian speed of the trajectory though?
Does anything else make sense, given that most trajectories have to accelerate first and decelerate in the end?

# For the speed only values larger than 0 are allowed.
# For values outside the range, the trajectory is not modified.
string cartesian_speed_end_effector_link
float64 cartesian_speed
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
float64 cartesian_speed
float64 cartesian_speed # m/s

?

@2scholz
Copy link
Contributor Author

2scholz commented Jun 22, 2020

The parts of the trajectory where the original speed was lower than the Cartesian speed provided here remain unchanged.
So it is indeed the maximum Cartesian speed.
I changed the name of the field to max_cartesian_speed to make that clearer.

Copy link
Contributor

@v4hn v4hn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

aside from further nitpicks in the comments, I approve the change.

@@ -47,3 +47,8 @@ float64 allowed_planning_time
float64 max_velocity_scaling_factor
float64 max_acceleration_scaling_factor

# Maximum cartesian speed for the given end effector.
# For the speed only values larger than 0 are allowed.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Speeds are always non-negative. Otherwise they would be velocities.

@@ -47,3 +47,8 @@ float64 allowed_planning_time
float64 max_velocity_scaling_factor
float64 max_acceleration_scaling_factor

# Maximum cartesian speed for the given end effector.
# For the speed only values larger than 0 are allowed.
# For values outside the range, the trajectory is not modified.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what range? what values?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I changed the line to clarify that the trajectory is not modified when max_cartesian_speed <= 0.

@v4hn v4hn added the awaits 2nd review one maintainer approved this request label Jun 23, 2020
Copy link
Contributor

@rhaschke rhaschke left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see your need for this addition, but I don't like the approach very much.
Adding it in the general MotionPlanRequest actually suggests that this max Cartesian speed will be obeyed in all situations, which is not the case.
IMO, we need a mechanism to pass specific parameters to individual adapters, for example with a generic key-value map. This would clearly state that corresponding parameters are only considered for specific adapters.
As a minimum requirement, this PR should include a comment mentioning the adapter that is actually utilizing the parameter.

@v4hn
Copy link
Contributor

v4hn commented Jun 25, 2020 via email

the fields are used by a method in the move_group_interface to pass
these values to a planning_request_adapter that recomputes the
trajectories time parameterization to reach the given cartesian speed.
@2scholz
Copy link
Contributor Author

2scholz commented Jun 26, 2020

As a minimum requirement, this PR should include a comment mentioning the adapter that is actually utilizing the parameter.

Done.

I would also support adding the PRA to the default list in the assistant.

That is already part of moveit/moveit#1790.

@rhaschke rhaschke merged commit 3f98f5d into moveit:master Jun 29, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
awaits 2nd review one maintainer approved this request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants