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
move_group capability for publishing planning scene frames to the tf system #1761
move_group capability for publishing planning scene frames to the tf system #1761
Conversation
Thanks for helping in improving MoveIt and open source robotics! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks. Looks like a great contribution if ready.
Some remarks:
- Please update the license / disclaimer text.
- Can you please replace tf1 with tf2?
moveit_ros/move_group/src/default_capabilities/tf_publisher_capability.cpp
Outdated
Show resolved
Hide resolved
moveit_ros/move_group/src/default_capabilities/tf_publisher_capability.cpp
Outdated
Show resolved
Hide resolved
moveit_ros/move_group/src/default_capabilities/tf_publisher_capability.h
Outdated
Show resolved
Hide resolved
moveit_ros/move_group/src/default_capabilities/tf_publisher_capability.h
Outdated
Show resolved
Hide resolved
moveit_ros/move_group/src/default_capabilities/tf_publisher_capability.cpp
Outdated
Show resolved
Hide resolved
moveit_ros/move_group/src/default_capabilities/tf_publisher_capability.cpp
Outdated
Show resolved
Hide resolved
moveit_ros/move_group/src/default_capabilities/tf_publisher_capability.cpp
Outdated
Show resolved
Hide resolved
|
||
for (auto obj = world->begin(); obj != world->end(); ++obj) | ||
{ | ||
tf::poseEigenToTF(obj->second->shape_poses_[0], transform); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's a pity that all transforms are published w.r.t. planning_frame only. I guess the original information is lost.
What about sub frames?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Also, what about CollisionObjects that are attached to the robot? I don't see them published in this file and I don't believe the robot state publishes them either.
Seconding the question about subframes, and agree that parent link information would be interesting. Nothing we can do about it for now I suppose.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Attached objects are not yet addressed, are they?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not that I can see
i guess this is still work-in-progress, although it's not marked as such. |
moveit_ros/move_group/default_capabilities_plugin_description.xml
Outdated
Show resolved
Hide resolved
moveit_ros/move_group/src/default_capabilities/tf_publisher_capability.cpp
Outdated
Show resolved
Hide resolved
moveit_ros/move_group/src/default_capabilities/tf_publisher_capability.cpp
Outdated
Show resolved
Hide resolved
moveit_ros/move_group/src/default_capabilities/tf_publisher_capability.cpp
Outdated
Show resolved
Hide resolved
Thanks for tackling this! |
moveit_ros/move_group/default_capabilities_plugin_description.xml
Outdated
Show resolved
Hide resolved
moveit_ros/move_group/src/default_capabilities/tf_publisher_capability.cpp
Outdated
Show resolved
Hide resolved
moveit_ros/move_group/src/default_capabilities/tf_publisher_capability.cpp
Outdated
Show resolved
Hide resolved
I could definitly do that. But I think renaming the other capabilities should go in another PR.
I did not ask you to rename the *other* capabilities. I asked you to remove the prefix from the C++ class.
|
Ahh. Ok I misunderstood that. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is still using tf1, while we switched (with rather large effort) to tf2 a while ago. Please change.
moveit_ros/move_group/src/default_capabilities/tf_publisher_capability.cpp
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks a lot for iterating on this. We are getting close 😄
One minor point: Please re-add ros::ok()
: If ROS dies for any reason, the thread needs to be finished as well.
Please re-add `ros::ok()`: If ROS dies for any reason, the thread needs to be finished as well.
I'm not sure I get your reasoning here.
I thought you explicitly want to get rid of this exit condition, as it adds an outside flag for an internally-managed thread.
If ROS dies, the `move_group` node should clean up and delete the capability, thus setting the flag and joining the thread.
I do not see why you would want to add the check back.
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't mind.
… scene objects to the tf system.
…_publisher_capability object
d5166be
to
053c90f
Compare
Congrats on getting your first MoveIt pull request merged and improving open source robotics! |
Congrats @JonasTietz and thank you for this nice contribution! |
Attached objects are not yet addressed, are they?
Very true!
Sorry, I merged after I got CI to accept it and did not see your comment.
@JonasTietz Could you have a look at attached objects in a follow-up request? :)
Attached objects are stored in the `RobotState` of the `PlanningScene` and can be accessed via `RobotState::getAttachedBodies`.
|
Please also add subframes while you're at it. They are part of the CollisionObject. |
subframes are already published for CollisionObjects, but I think attached collision objects also have subframes. |
I will take a look at it. :) |
Description
This PR points to issue #1735 . I have implemented a move_group capability, which publishes frames of planning scene objects to the tf system.