ROS Resources: Documentation | Support | Discussion Forum | Service Status | Q&A answers.ros.org

# Setting up SBPL (arm_planning) for MoveIt! with Setup Assistant

Hello everybody,

How can I embed sbpl instead of ompl in the MoveIt!-configuration files for Arm-Navigation? I used the MoveIt! Setup Assistant, and it generates no sbpl_planning.yaml file. When I load the RVIZ-Motion-Planning-Plugin automatically OMPL is loaded.

Edit: Is it possible at all?, because looking closer at the Setup Assistant I didn't find any option that indicates that.

Edit: I followed the advice of Jeremy. But the Terminal shows following:

[ERROR] [1366832323.048313258]: Exception while loading planner 'sbpl_interface_ros/SBPLPlanner': According to the loaded plugin descriptions the class sbpl_interface_ros/SBPLPlanner with base class type planning_interface::Planner does not exist. Declared types are  ompl_interface_ros/OMPLPlanner
Available plugins: ompl_interface_ros/OMPLPlanner


Edit: I noticed (thanks to Jeremey) that no sbpl-plugin is installed. Is there a binary plugin yet, bacause I could not find it. If not how can I install SBPL from Source?

Edit: I put the smpl source folder in the catkin_workspace. Unfortunately catkin_make failed. executing rospack depends shows following:

 faps@faps-Aspire-5740D:~/catkin_ws$rospack depends sbpl_interface_ros [rospack] Error: package/stack 'sbpl_interface' depends on non-existent package 'planning_models' and rosdep claims that it is not a system dependency. Check the ROS_PACKAGE_PATH or try calling 'rosdep update'  1. Trying 'rosdep update' results in HTTP Error 404: Not Found-Errors. Also there is no package planning_models listed when using rospack list-names. So, where can I get this package? (googling also failed) 2. How can I solve the message rosdep claims that it is not a system dependency ? Edit: There is an additional missing package called collision_distance_field. It is no single ros-package but is located in the package moveit_core. So I did rosmake on the package moveit_core, but collision_distance_field is still missing. I looked in CMakeLists.txt of moveit_core and there was no line with collision_distance_field. What should I do? Many Thanks in advance and Greetz rosrookie edit retag close merge delete ## 1 Answer Sort by » oldest newest most voted I don't know that you're able to configure this from within the Setup Assistant, but you should be able to modify the launch files to change the planning pipeline. I haven't tried this myself, but it looks like you should be able to edit the move_group.launch in your moveit package: <include ns="move_group" file="$(find my_robot_moveit_pkg)/launch/planning_pipeline.launch">
<arg name="pipeline" value="ompl" />
</include>


If you change "ompl" to "sbpl" in move_group.launch, it will try to load sbpl_planning_pipline.launch instead of ompl_planning_pipline.launch. My guess is that this should switch to using SBPL instead of OMPL and things should "just work". But I haven't tried it yet, so good luck!

Edit:
It sounds like you may not have sbpl installed. I don't know that there is a binary ubuntu package for SBPL/MoveIt yet, so you may need to download and install from source.

You can read here for how plugins are integrated with ROS. In summary, the package needs a few things to make the plugin work: an export tag in the manifest.xml (or package.xml) file tells the ROS build system to look for a _plugins.xml file which provides details on what classes and library files to look in for the actual plugin code.

It may help to use rospack to get a list of what plugins are currently found in your ROS installation:

rospack plugins --attrib=plugin moveit_core


If this list doesn't include a plugin for SBPL, then you won't be able to get it to work with the rest of MoveIt, no matter what you put in the launch files.

Edit 2:
To use a package from source, you just need to place the package directory (with its source files, include files, manifest.xml, etc.) somewhere in your \$ROS_PACKAGE_PATH. Typically, you set up a workspace directory under your home directory to use for ROS development. If this sounds confusing, you may need to revisit some of the early tutorials.

You can use rospack find sbpl_interface_ros to see if ROS can find your package okay. Once that works, you can do rosmake sbpl_interface_ros to build the package. If this fails, it may be because you're also missing one of the dependencies for this package. Use rospack depends sbpl_interface_ros to get a list of all package dependencies. You'll need to install all these, either using binary packages or from source. You can try using rosdep install sbpl_interface_ros, but this may not work for some packages.

Edit 3:
You should read the FAQ to see how to install missing dependencies. In short:

1) Go to the ROS Wiki and search for the package (upper right).

2) On the package's wiki page, see what stack the package is a part of. In the case of planning_models, this is the arm_navigation package.

3) Try to install the binary package:

sudo apt-get install ros-<distro>-<stack>


4) If that doesn't work, you ...

more

Thanks Jeremy for our answer. I followed your advive, but first I had to create the file sbpl_planning_pipline.launch (just copied and renamed in ompl_planning_pipline.launch and changed every ompl to sbpl). But while starting RVIZ with the MoveIt plugin some errors occur (see my post above)

( 2013-04-24 09:40:44 -0500 )edit

You're right. I used rospack and no sbpl-plugin was listed. Now how can I get the source-code (I'm a quiete newbie to that) I downloaded the source moveit folder, is that right?

( 2013-04-24 11:42:18 -0500 )edit