Skip to content

calderpg/uncertainty_planning_core

 
 

Repository files navigation

uncertainty_planning_core

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.

This package provides several core components:

  • 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.

Setup

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

Building

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

Dependencies

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.

Examples

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

About

Framework for motion planning with uncertainty

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 99.9%
  • CMake 0.1%