-
Notifications
You must be signed in to change notification settings - Fork 2
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
Use MoveIt .scene file instead of custom yaml file to persist a planning scene #24
Comments
Very nice find, and great idea to use this! I totally forgot about the MoveIt scenes. By the way, the "Motion Planning" RViz plugin supports importing/exporting/editing these scenes. While Gazebo (or the real robot) is running, launch the following:
Then, in the "Motion Planning" Rviz plugin, in the "Scene Objects" tab, you can click "Scene Geometry" -> Export in be bottom right corner. This gives you the following file:
Note the scene name ( Then you can kill everything and run this:
... and import the scene and play around with it. |
I really like using existing standards and hate reinventing the wheel, so I would be all in favor of using this. The only problem I can see is that other nodes perhaps need to parse this as well. Does grasplan use the MoveIt planning scene everywhere else? (For example, to figure out the position + dimension of the tables, for the GUIs etc.). If yes, then we could switch to the MoveIt scene format without problems. |
I agree and support the use of the standard MoveIt scene, I just didn't knew they existed. Even if we have to migrate other modules I would be up for switching. |
Instead of other nodes parsing the planning scene file again, I suggest that they subscribe to the planning scene that is published in a topic. Side NOTE: the planning scene file does not contain information about the reference frame that the data is expressed on. Instead I think what MoveIt does is to assume it is on the "fixed frame" that is selected in rviz, a bit odd but since we always work on map frame that should be fine. |
You are right, that would be the proper way to do it, good point! My only reservation is that it means adding a dependency to MoveIt to packages like the pose_selector, but pose_selector is supposed to be lightweight, and MoveIt is not exactly a lightweight dependency. We'll have to decide later. Why can things never be easy. :(
Yes, that isn't nice. The frame should be specified in the scene file. Usually in MoveIt, when the frame is not specified, poses are expressed in the PlanningScene's planning frame:
We define that frame as However, things get more complicated, since a PlanningScene can have a parent PlanningScene to which all frames are relative, CollisionObject messages have a |
MoveIt provides a
.scene
format to persist and load planning scenes. Replacing our customyaml
format to this format would allow easier integration of external planning scenes. The example below shows the structure of the file format for storing a box:instead of
Further there is also a node that can publish the scene from the
.scene
file https://github.com/ros-planning/moveit/blob/master/moveit_ros/planning/planning_components_tools/src/publish_scene_from_text.cpp, so that we don't have to parse and publish it (as it is currently done with theyaml
files).The text was updated successfully, but these errors were encountered: