int main(int argc, char* argv[]) { ros::init(argc, argv, "drone_height_controller"); ros::Time::init(); ros::Rate r(Global::rate); Messenger* messenger = new Messenger(); SimpleController* controller = new SimpleController(messenger); signal(SIGINT, [](int signum) { std::cout << "\nHeight controller shutdown" << std::endl; quit = true; }); controller->trackHeight(1000.0); while(!quit) { ros::spinOnce(); r.sleep(); } delete messenger; delete controller; return 0; }
virtual void start() override { if(ready){ input(); if(!controller->initialize(this) || !controller->start()){ ready = false; cout << "Intializing the controller failed." << endl; } } }
virtual void control() override { if(ready){ controller->control(); } }
bool control() { return controller->control(); }