Example #1
0
int main(void) {
	CX::initializeCX(CX_InitConfiguation());

	runExperiment();

	CX::terminateCX();

	return 0;
}
Example #2
0
int main(int argc, char* argv[])
{
    // Turn off logging to std::out. Need the stream for file output.
    ompl::msg::noOutputHandler();

    // Declare the supported options.
    po::options_description desc("Allowed options");
    desc.add_options()
        ("help", "produce help message")
        ("environment", po::value<std::string>(), "environment name")
        ("t", po::value<double>(), "stretch factor")
        ("e", po::value<double>(), "additive error term")
        ("size", po::value<unsigned int>(), "maximum size of roadmap (bytes)")
        ("time", po::value<double>(), "maximum time (seconds)")
        ("witness", po::value<unsigned int>(), "generate (w^2 * w)/2 queries")
        ("seed", po::value<boost::uint32_t>(), "PRNG seed")
    ;

    po::variables_map vm;
    try
    {
        po::store(po::parse_command_line(argc, argv, desc), vm);
        po::notify(vm);
    }
    catch (boost::program_options::error& e)
    {
        std::cerr << "Can't process command line arguments: " << e.what() << std::endl;
        return 1;
    }

    if (vm.count("help")) {
        std::cerr << desc << "\n";
        return 1;
    }
    const std::string environment = vm["environment"].as<std::string>();
    const double stretch = vm["t"].as<double>();
    const double epsilon = vm["e"].as<double>();
    const unsigned int max_size = vm["size"].as<unsigned int>();
    const double max_time = vm["time"].as<double>();
    const unsigned int witness_samples = vm["witness"].as<unsigned int>();
    const boost::uint32_t seed = vm["seed"].as<boost::uint32_t>();
    
    // =========================================================================

    og::SimpleSetup* setup;
    if (environment == "point")
        setup = setupR2();
    else if (environment == "maze")
        setup = setupSE2();
    else
        setup = setupSE3(environment);

    // setting collision checking resolution to 1% of the space extent
    setup->getSpaceInformation()->setStateValidityCheckingResolution(0.01);

    ob::PlannerPtr planner = setupPlanner(setup->getSpaceInformation(), stretch, epsilon);
    setup->setPlanner(planner);
    setup->setup();
    
    // =========================================================================

    runExperiment(planner, max_size, max_time, environment, stretch, epsilon);
}