Koules.cpp File Reference

This file contains an elaborate demo to solve the game of Koules. More...

#include "KoulesConfig.h"
#include "KoulesSetup.h"
#include "KoulesStateSpace.h"
#include <ompl/tools/benchmark/Benchmark.h>
#include <ompl/config.h>
#include <boost/program_options.hpp>
#include <boost/format.hpp>
#include <fstream>
Include dependency graph for Koules.cpp:

Go to the source code of this file.


void writeParams (std::ostream &out)
void plan (KoulesSetup &ks, double maxTime, const std::string &outputFile)
void benchmark (KoulesSetup &ks, ot::Benchmark::Request request, const std::string &plannerName, const std::string &outputFile)
int main (int argc, char **argv)

Detailed Description

This file contains an elaborate demo to solve the game of Koules.

This problem was used to illustrate the capabilities of the PDST planner to find trajectories for underactuated systems with drift. The details can be found in the references below [1,2]. The physics have been made significantly harder compared to the original game. We have tried to recreate the problem as closely as possible to the one described in [2]. The demo can solve just one level of Koules, all levels, or run a number of planners on one level as a benchmarking run.

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.

[1] A. M. Ladd and L. E. Kavraki, “Motion planning in the presence of drift, underactuation and discrete system changes,” in Robotics: Science and Systems I, (Boston, MA), pp. 233–241, MIT Press, June 2005.

[2] A. M. Ladd, Motion Planning for Physical Simulation. PhD thesis, Dept. of Computer Science, Rice University, Houston, TX, Dec. 2006.

Definition in file Koules.cpp.