ompl
  • Standard Documents
    • LICENSE
    • PACKAGE
    • README
      • The Open Motion Planning Library (OMPL)
        • Continuous Integration Status
        • Installation
  • Documentation
    • markdown/
      • Frequently Asked Questions {#FAQ}
      • Acknowledgements {#acknowledgements}
      • How to Benchmark Planners {#benchmark}
      • Build Options {#buildOptions}
      • Integrate Your Own Code with OMPL’s Build System {#buildSystem}
      • Citations {#citations}
      • Constrained Planning {#constrainedPlanning}
      • Constrained Planning Tutorial {#constrainedPlanningTutorial}
      • Submit Your Contribution {#contrib}
      • Demos {#demos}
      • Developers {#developers}
      • Teaching Module on Motion Planning {#education}
      • Gallery {#gallery}
      • Generic Instructions for Setting Up a Planning Context {#genericPlanning}
      • Geometric Planning for a Rigid Body in 3D {#geometricPlanningSE3}
      • Representing Goals in OMPL {#goalRepresentation}
      • Implementing State Spaces {#implementingStateSpaces}
      • Installation of Py++ {#installPyPlusPlus}
      • Installation {#installation}
      • Integration of OMPL in Other Systems {#integration}
      • License {#license}
      • Mailing Lists {#mailingLists}
      • Multilevel Planning Framework {#multiLevelPlanning}
      • Multilevel Planning Tutorial {#multiLevelPlanningTutorial}
      • Implementing a New Motion Planner {#newPlanner}
      • Using the ODESolver for Planning with Controls {#odeint}
      • Optimal Planning {#optimalPlanning}
      • Optimal Planning Tutorial {#optimalPlanningTutorial}
      • Optimization Objectives Tutorial {#optimizationObjectivesTutorial}
      • Path Visualization {#pathVisualization}
      • Planner Termination Conditions {#plannerTerminationConditions}
      • OMPL Planner Arena {#plannerarena}
      • Available Planners {#planners}
      • Use of Projections in OMPL {#projections}
      • Creating Python Bindings for a New Planner {#pybindingsPlanner}
      • Python Bindings {#python}
      • Registration {#register}
      • Release Notes {#releaseNotes}
      • Available State Samplers {#samplers}
      • Available Spaces {#spaces}
      • State Validity Checking {#stateValidation}
      • OMPL Style Guide {#styleGuide}
      • Get Support {#support}
      • Contributions {#thirdparty}
      • Tutorials {#tutorials}
      • Working with States and State Spaces {#workingWithStates}
  • Index
ompl
  • Documentation
  • markdown/
  • Gallery {#gallery}
  • View page source

Gallery {#gallery}

MoveIt

A 2017 highlight reel for MoveIt, the ROS package that provides a high-level interface to OMPL and other motion planning packages.

\htmlonly

\endhtmlonly

Planning with constraints

OMPL has support for motion planning subject to hard constraints, including, but not limited to, Cartesian planning. In a 2019 paper in the International Journal of Robotics Research we describe how we have integrated prior motion planning approaches to planning with constraints in one framework that allows you to use any of the OMPL planners for constrained planning. The video below illustrates the main ideas. The examples in the videos are included as demo programs in the ompl/demos/constraint directory.

\htmlonly

\endhtmlonly

Manipulation Planning

An example of using OMPL on the PR2 from Willow Garage. The robot is asked to move the manipulate objects on the table. This demo is using ROS.

\htmlonly

\endhtmlonly

ROS-Industrial Consortium

ROS-Industrial aims to bring ROS to the industrial world. Path and motion planning, as provided by OMPL, are critical component of that. Below is brief overview of ROS-Industrial.

\htmlonly

\endhtmlonly

Real-time footstep planning for humanoid robots

Below is a video illustrating the results of using OMPL to plan footsteps for a humanoid. The work is described in detail in:

Nicolas Perrin and Olivier Stasse and Florent Lamiraux and Young J. Kim and Dinesh Manocha, Real-time footstep planning for humanoid robots among 3D obstacles using a hybrid bounding box, in Proc. IEEE Conf. on Robotics and Automation, 2012.

The focus is not so much on OMPL, but rather a new hybrid bounding box that allows the robot to step over obstacles.

\htmlonly

\endhtmlonly

Planning for a Car-Like Vehicle Using ODE

An example of using OMPL to plan for a robotic system simulated with ODE. The goal is for the yellow car to reach the location of the green box without hitting the red box. The computation is performed using \ref cKPIECE1 “KPIECE”. For each computed motion plan, a representation of the exploration data structure (a tree of motions) is also shown.

\htmlonly

\endhtmlonly

Planning Using OMPL.app {#gallery_omplapp}

Below are some rigid body motion planning problems and corresponding solutions found by OMPL.app. The planar examples use a kinematic car model.

\htmlonly

\endhtmlonly

Planning for Underactuated Systems in the Presence of Drift

In the game of Koules, there are a number of balls (called koules) flying in an orbit. The user controls a spaceship. At any time the user can do one of four things: coast, accelerate, turn left, or turn right. The ship and the koules are allowed to collide. The objective is for the ship to bounce all the koules out of the workspace. The user loses when the ship is bounced out of the workspace first. We have written a demo program that solves this game. The physics have been made significantly harder than in the original game. The movie below shows a solution path found by the Koules demo for 7 koules.

\htmlonly

\endhtmlonly

Class Project from COMP 450 on Path Optimization {#gallery_comp450}

In Fall 2010 OMPL was used for the first time in Lydia Kavraki’s Algorithmic Robotics class. Students completed several projects. For their last project they could choose from several options. Linda Hill and Yu Yun worked on path optimization. The different optimization criteria considered they considered were path length and sum of discrete path curvature sum. Minimizing the former in shorter paths, minimizing the second results in smoother paths. They used two optimization techniques specific to paths / curves: B-spline interpolation and path hybridization. Path smoothing using B-spline interpolation is shown below on the left. In path hybridization a set of (approximate) solutions to a motion planning problem is given as input, cross-over points are computed, and a new optimized path composed of path segments is found. An example of path hybridization to minimize path length is shown below on the right. In both cases the paths were in SE(3); the figures show simply the R3 component.

\htmlonly


Path smoothing with B-splines. The input path is shown in red, the optimized output path is shown in blue.

Path shortening using path hybridization. The colored paths are input, the solid black path is the optimized output path.
\endhtmlonly
Previous Next

© Copyright The <ompl> Contributors. License: BSD.

Built with Sphinx using a theme provided by Read the Docs.