This package is the core of our framework for motion planning and execution with actuation uncertainty. More information on the planning and execution methods can be found in our WAFR 2016 paper and presentation.
- The core templated motion planner
- Templated execution policy that updates during execution
- Interfaces for robot models, samplers, outcome clustering, and robot simulators to integrate with the planner
- Concrete instantiations of the planner and execution policy for SE(2), SE(3), and linked robots (multiple configuration representations)
While the planner and execution policy are themselves template-based, this package provides a library containing concrete instantiations of the planner for different types of robot. When possible, you should use these rather than interfacing with the planner directly.
uncertainty_planning_core
is a ROS package.
Thus, it is best to build it within a ROS workspace:
mkdir -p ~/ws/src
cd ~/ws/src
git clone https://github.com/calderpg/uncertainty_planning_core
This package officially supports ROS 1 Melodic
and ROS 2 Dashing+ distributions, but
ROS 1 Kinetic should also be compatible.
Make sure to symlink the corresponding CMakeLists.txt
and package.xml
files
for the ROS distribution of choice:
For ROS 1 Melodic
cd ~/ws/src/uncertainty_planning_core
ln -sT CMakeLists.txt.ros1 CMakeLists.txt
ln -sT package.xml.ros1 package.xml
For ROS 2 Dashing+
cd ~/ws/src/uncertainty_planning_core
ln -sT CMakeLists.txt.ros2 CMakeLists.txt
ln -sT package.xml.ros2 package.xml
Finally, use rosdep
to ensure all dependencies in the package.xml
are satisfied:
cd ~/ws
rosdep install -i -y --from-path src
Use catkin_make
or
colcon
accordingly.
For ROS 1 Melodic
cd ~/ws
catkin_make # the entire workspace
catkin_make --pkg uncertainty_planning_core # the package only
For ROS 2 Dashing +
cd ~/ws
colcon build # the entire workspace
colcon build --packages-select uncertainty_planning_core # the package only
Provides a range of utility and math functions, as well as templated implementations of kinodynamic RRT, Dijkstra's algorithm, and hierarchical clustering.
ROS is required for the build system and for RViz, which the planner uses as an optional visualization interface.
A task planning example is included in this package.
To see several old examples of using the planner and execution policy, see uncertainty_planning_examples Note - these examples are not up-to-date