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

getting feedback/result when trajectory is competed by robot #175

Closed
shrutichakraborty opened this issue Mar 7, 2024 · 4 comments
Closed
Labels

Comments

@shrutichakraborty
Copy link

Hello all! The controllers work well. However, I would like to know if there is a way to get some feedback/result to know when the the robot has reached the desired target_frame that we publish to the cartesian motion controller? I am looking for somthing similar to the approach in scaled_joint_trajectory_controller where we get a result if the trajectory was done and if there were any issues in executing it?

If not can you suggest a workaround? Thanks a lot!

@matthias-mayr
Copy link

The same repo that I linked in #176 can do that for you in ROS 1.

It spawns an action server that takes a Cartesian goal. In the configuration file one can specify maximum thresholds for it to mark the goal as achieved.
These need to be chosen carefully as compliant controllers often have deviations and it might never arrive.

@shrutichakraborty
Copy link
Author

The same repo that I linked in #176 can do that for you in ROS 1.

It spawns an action server that takes a Cartesian goal. In the configuration file one can specify maximum thresholds for it to mark the goal as achieved. These need to be chosen carefully as compliant controllers often have deviations and it might never arrive.

Thanks @matthias-mayr , however, I am using ros2 humble, do you know of any solutions that could be used here?

@matthias-mayr
Copy link

I have not looked in how to do this with ROS 2 yet.
If the helper controllers in this repo are ported to ROS 2, one solution can be to use MoveIt for linear trajectories and/or the Pilz motion planner in MoveIt. In that case, MoveIt would also take care of the completion, however with a compliant controller it needs to be parameterized accordingly since there are deviations that can make it abort.

Or you port the trajectory generator to ROS 2. It's fairly modular and it should not be necessary to touch the core. Unfortunately I will not have time to do it myself.

@stefanscherzinger
Copy link
Contributor

@shrutichakraborty

If still relevant for your, you could monitor the controllers' feedback by enabling the publish_state_feedback parameter.
However, since all controller inputs are plain topics, there's no direct mechanism for informing the caller about reaching the goals, as there is with trajectory action based controllers. In addition, when working in compliance mode, it's not straight-forward to decide whether goals are reached because there's a tolerated offset due to interaction with the environment.

A workaround would be implementing a small monitor node that decides whether targets are sufficiently well reached.

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

No branches or pull requests

3 participants