-
Notifications
You must be signed in to change notification settings - Fork 0
xinchu911/sbpl
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
I. Building, Installing, and Using SBPL SBPL is available as a standalone software library. SBPL itself has no dependencies other than the C/C++ standard library. These build and install instructions are primarily for Linux. For other operating systems, CMake can generate the platform-specific build and project files necessary for building SBPL. Versions of ROS older than Fuerte may contain packages that depend on a ROS package version of SBPL. The recommended method to install SBPL is to install it as a standard system library. However, if you wish to use the old ROS package version of SBPL, you may follow these instructions. 1. Building and Installing SBPL from source 1.1 Build SBPL SBPL uses git as its version control system. From the directory where you want the SBPL source to reside, clone the latest source from https://github.com/sbpl/sbpl: git clone https://github.com/sbpl/sbpl.git In the source directory, build the SBPL library using standard CMake build conventions: mkdir build cd build cmake .. make 1.2 Install SBPL Install the built library and headers onto your local system (usually into /usr/local): sudo make install 2. Installing SBPL from pre-built binary package A pre-built Debian package exists on Linux for ROS distributions Fuerte and newer. To install the Debian, run: sudo apt-get install ros-distro-sbpl where distro is the name of your ROS distribution. This will install the SBPL library and associated development headers alongside other ROS components (in /opt/ros/distro on Ubuntu distributions). A pkg-config file is also included to allow you to locate the SBPL library components in your build system. 3. Build your (ROS) package with SBPL as a dependency (CMake) In the CMakeLists.txt for your (ROS) package, the following lines are needed to find the installed SBPL files: find_package(PkgConfig REQUIRED) pkg_check_modules(SBPL REQUIRED sbpl) include_directories(${SBPL_INCLUDE_DIRS}) link_directories(${SBPL_LIBRARY_DIRS}) Then, after you've declared your binaries, you need to link them against SBPL with the following line: target_link_libraries(your-binary-here ${SBPL_LIBRARIES}) 4. Installing and Using SBPL as a ROS package The ROS package version of SBPL was deprecated with the release of ROS Fuerte. However, packages in ROS Electric may still require the ROS package version of SBPL. 4.1 Install SBPL 4.1.1 Source install SBPL uses git as its version control system. From the directory where you want the SBPL source to reside, clone the latest source from https://github.com/sbpl/sbpl: git clone https://github.com/sbpl/sbpl.git In the source directory, checkout the electric branch of the repository to revert to the old ROS package version: git checkout -b electric Ensure that SBPL is on your ROS_PACKAGE_PATH and type: rosmake sbpl 4.1.2 Binary install SBPL is also available as a pre-built Debian in ROS Electric. To instal the Debian, run: sudo apt-get install ros-electric-arm-navigation 4.2 Build your ROS package with SBPL as a depency (rosbuild) In the manifest.xml for your package, you need to add the following line to declare the SBPL package as a dependency: <depend package="sbpl"/> II. Usage Examples for how to use SBPL are in src/test/main.cpp. Please follow the examples carefully. The library contains a number of planning problem examples, stored as ascii files. These files (with extension .cfg) should be passed in as arguments into the main function in main.cpp. The files can be found in env_examples directory. Command-line usage for the test_sbpl program can be viewed by passing '-h' as argument to the executable. Examples: The following can be run from the directory containing test_sbpl, which we assume is a build directory in the root of this project. $ ./test_sbpl ../env_examples/nav3d/env1.cfg Environment: xytheta; Planner: arastar; Search direction: backward Initializing ARAPlanner... start planning... done planning size of solution=16 solution size=0 Solution is found $ ./test_sbpl --env=2d ../env_examples/nav2d/env1.cfg #2d is needed here in order to use 2d config Environment: 2d; Planner: arastar; Search direction: backward Initializing ARAPlanner... start planning... done planning size of solution=22 Solution is found $ ./test_sbpl --env=robarm --search-dir=forward --planner=rstar ../env_examples/robarm/env1_6d.cfg Environment: robarm; Planner: rstar; Search direction: forward Initializing RSTARPlanner... start planning... done planning size of solution=44 Solution is found Motion primitives files can be found in sbpl/matlab/mprim directory. Finally, few visualization scripts can be found in sbpl/matlab/visualization. In particular, plot_3Dpath.m function can be used to visualize the path found by xytheta lattice planner. This functions takes in .cfg file that specified environment and sol.txt file that was generated within main.cpp by xythetalattice planners. Note: If you compile the library with the ROS symbol defined, all text output will be redirected to ROS logging constructions. Without the ROS symbol defined, SBPL will print messages to stdout and test_sbpl will generate a solution file, sol.txt, as well as a debugging information file, debug.txt III. Links These instructions and more tutorials can be found at www.sbpl.net For more information and documentation on SBPL visit: http://www.ros.org/wiki/sbpl For more information and documentation on using the x,y,theta environment available in ROS visit: http://www.ros.org/wiki/sbpl_lattice_planner
About
Search-Based Planning Library
Resources
Stars
Watchers
Forks
Packages 0
No packages published
Languages
- C++ 86.9%
- MATLAB 10.0%
- Python 1.8%
- Other 1.3%