Koules This is a very elaborate demo to illustrate planning for underactuated kinodynamic systems with drift. It based on an old Unix game called Koules. The physics have been made significantly harder compared to the original game. The demo can solve just one level of Koules, all levels, or run a number of planners on one level as a benchmarking run. The demo prints out a path that can be turned into a movie using KoulesPlayback.py. Example usage:
> ./demo_Koules --planall --planner kpiece --numkoules 7 --maxtime 600 --output koules7.log > /path/to/ompl/demos/KoulesPlaypack.py koules7.log
This will create a movie called koules7.mp4. See the gallery for an example of what this might look like.
This demo illustrates also many advanced OMPL concepts, such as classes for a custom state space, a control sampler, a projection, a state propagator, and a goal class. It also demonstrates how one could put a simple bang-bang controller inside the StatePropagator. In this demo the (Directed)ControlSampler simply samples a target velocity vector and inside the StatePropagator the control is chosen to drive the ship to attain this velocity.
ompl::base::OptimizationObjectiveto construct optimization objectives for optimal motion planning.