Example #1
0
/**
 * Basically only turns on and off the laser for a couple of times.
 */
int main(int argc, char **argv) {
	std::cout << "################################################################################" << std::endl;
	std::cout << "Run " << NAME << " compiled at time " << __TIME__ << std::endl;
	std::cout << "################################################################################" << std::endl;

	Scenario scenario;
	scenario = SC_GRAND_CHALLENGE1;
//	scenario = SC_MAPPING;
//	scenario = SC_LASER_EXPLORATION;

	std::cout << "We will use scenario " << ScenarioStr[scenario] << std::endl;

	CEquids equids;
	struct sigaction a;
	a.sa_handler = &interrupt_signal_handler;
	sigaction(SIGINT, &a, NULL);

	if (argc > 1) {
		std::cout << "Reading init" << std::endl;
		if (!equids.init(argv[1])) {
			std::cout << "Wrong configuration file " << argv[1] << std::endl;
			return EXIT_FAILURE;
		}
		std::cout << "Finish init" << std::endl;
	} else {
		std::cout << "Usage: actionselection jockey_cfg" << std::endl;
		return EXIT_FAILURE;
	}

	bool quit = false;

	switch (scenario) {
	case SC_BACK_AND_FORTH_TEST: {
		BackandforthScenario scenario(&equids);
		if (!scenario.Init()) {
			std::cerr << "Error in initialization, break out" << std::endl;
			break;
		}
		scenario.Run();
		break;
	}
	case SC_GRAND_CHALLENGE1: {
		GrandChallenge1Scenario scenario(&equids);
		if (!scenario.Init()) {
			std::cerr << "Error in initialization, break out" << std::endl;
			break;
		}
		scenario.Run();
		break;
	}
	case SC_LASER_EXPLORATION: {
		LaserExplorationScenario scenario(&equids);
		if (!scenario.Init()) {
			std::cerr << "Error in initialization, break out" << std::endl;
			break;
		}
		scenario.Run();
		break;
	}
	case SC_MAPPING: {
#ifdef ENABLE_MAPPING_SCENARIO
		MappingScenario scenario(&equids);
		if (!scenario.Init()) {
			std::cerr << "Error in initialization, break out" << std::endl;
			break;
		}
		scenario.Run();
#endif
		break;
	}
	case SC_STANDALONE_CAMERA: {
		std::cerr << "To be done" << std::endl;
		break;
	}
	default:
		std::cerr << "Unknown scenario" << std::endl;
	}

	std::cout << "Do quit controllers" << std::endl;
	equids.quit();
	return 0;
}