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

[ros2] How to specify a controller to use when executing a trajectory through the ExecuteTaskSolutionCapability ROS interface? #354

Open
schornakj opened this issue Apr 14, 2022 · 2 comments

Comments

@schornakj
Copy link

This is similar to this MoveIt2 issue I posted: moveit/moveit2#1182

When the ExecuteTaskSolutionCapability converts the solution message into a series of ExecutableTrajectory objects, it does not have a way to set the names of the controllers that should be used to execute each trajectory segment. This results in the TrajectoryExecutionManager having to figure out on its own what controller to use for each set of joints, which (as described in the linked issue) doesn't always work correctly if there are multiple controllers to choose from.

One solution is to add new fields to the MTC Solution or SubTrajectory messages to define what controllers should be used for each segment. I think this is an important supporting piece to this suggestion by @v4hn about adding additional properties to MTC Stages to set the controller to use during execution. This would be an API change, though, so I wanted to get feedback from others about the best path forward.

@rhaschke
Copy link
Contributor

There is already a pending PR for this: #123

@schornakj
Copy link
Author

Thank you for linking that! I submitted #355 as a ROS 2 version of #123, with some additional updates to add suggestions from #123's review.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants