A ROS wrapper for Motion Primitive Library v1.2. Video of the original paper of "Search-based Motion Planning for Quadrotors using Linear Quadratic Minimum Time Control" has been uploaded at the follwing link: youtube.
The package is still under maintenance, the API may change occasionally, please use git log
to track the latest update.
Packages:
motion_primitive_library
: back-end for planning trajectory in various environmentsplanning_ros_msgs
: ROS msgs used in storing, visualizing and communicatingplanning_ros_utils
: ROS utils for interfacing with MPL, it also includes mapping and rviz pluginsDecompROS
: tool for convex decomposition and visualizationmpl_external_planner
: several planners that build on themotion_primitive_library
mpl_test_node
: example ROS nodes (see following Examples)
ROS
(Indigo+)catkin_simple
Before compiling, make sure submodules are on their corresponding commits.
To initialize the submodule motion_primitive_library
and DecompROS
, run following commands:
$ cd /PATH/TO/mpl_ros
$ git submodule update --init --recursive
$ mv mpl_ros ~/catkin_ws/src
$ cd ~/catkin_ws & catkin_make_isolated -DCMAKE_BUILD_TYPE=Release
$ mv mpl_ros ~/catkin_ws/src
$ cd ~/catkin_ws
$ catkin config -DCMAKE_BUILD_TYPE=Release
$ catkin b
The planner inside mpl_ros
including:
OccMapPlanner
: uses 2D occupancy grid mapVoxelMapPlanner
: uses 3D voxel grid mapEllipsoidPlanner
: uses 3D point cloud and models robot as ellipsoid in SE(3)PolyMapPlanner2D
: uses 2D polygonal map and moving obstacles
Following examples demonstrate some of these planners:
Simple test using the built-in data in a voxel map can be run using the following commands:
$ cd ./mpl_test_node/launch/map_replanner_node
$ roslaunch rviz.launch
$ roslaunch test.launch
Then, you can set a new goal and then replan by running:
$ ./set_goal.sh
$ ./replan.sh
The planning results are visualized in Rviz as following:
2D Occ Map | 3D Voxel Map |
---|---|