int main(int argc, char** argv)
{
    ros::init(argc, argv, APPLICATION_NAME);

    // Override the default ros sigint handler.
    // This must be set after the first NodeHandle is created.
    signal(SIGINT, mySigintHandler);

    ros::NodeHandle nh;
//     ros::CallbackQueue queue;
//     nh.setCallbackQueue(&queue);

    // Allow the action server to recieve and send ros messages
    ros::AsyncSpinner spinner(4);
    spinner.start();

    // To create publisher and subscriber... do we really need this node here??
//     ros::NodeHandle nodeHandle;

    std::cout << "Before MyRobot"<< std::endl;

    MyRobot robot;
    if(!robot.init() )
    {
        std::cout << "Error initializing robot model, quitting" << std::endl;
        return -1;
    }

    controller_manager::ControllerManager cm(&robot, nh);

    ros::Duration elapsed_time_(1,0);
    while (ros::ok())
    {

        std::cout << "Updating stuff" << std::endl;
        robot.read();
        cm.update(ros::Time::now(), elapsed_time_);
        robot.write();
        sleep(1);
        ros::spinOnce();
    }
    return 0;
}