Go to the documentation of this file.00001
00023 #include <iostream>
00024 #include "nao_dcm_driver/nao.h"
00025 #include <alcommon/albroker.h>
00026 #include <alcommon/albrokermanager.h>
00027
00028 using std::string;
00029 using std::cerr;
00030 using std::endl;
00031
00032 int main( int argc, char** argv )
00033 {
00034 int pport = 9559;
00035 string pip = "127.0.0.1";
00036 ros::init(argc, argv, "nao_dcm_driver");
00037 ros::NodeHandle n;
00038 ros::NodeHandle n_p("~");
00039 if(!ros::master::check())
00040 {
00041 cerr<<"Could not contact master!\nQuitting... "<<endl;
00042 return -1;
00043 }
00044
00045 string broker_name = "Nao Driver Broker";
00046
00047 int broker_port = 54000;
00048
00049 string broker_ip = "0.0.0.0";
00050
00051
00052
00053 n_p.param("RobotIP", pip, string("127.0.0.1"));
00054
00055 n_p.param("RobotPort", pport,9559);
00056 n_p.param("DriverBrokerPort", broker_port, 54000);
00057 n_p.param("DriverBrokerIP", broker_ip, string("0.0.0.0"));
00058
00059
00060 boost::shared_ptr<AL::ALBroker> broker;
00061 try
00062 {
00063 broker = AL::ALBroker::createBroker(broker_name,broker_ip,broker_port,pip,pport,0);
00064
00065
00066 AL::ALProxy tempMotion("ALMotion", pip, pport);
00067 tempMotion.callVoid("setStiffnesses","Body",1.0f);
00068 }
00069 catch(...)
00070 {
00071 ROS_ERROR("Failed to connect to Broker at %s:%d!",pip.c_str(),pport);
00072 return -1;
00073 }
00074
00075
00076 AL::ALBrokerManager::setInstance(broker->fBrokerManager.lock());
00077 AL::ALBrokerManager::getInstance()->addBroker(broker);
00078
00079
00080 boost::shared_ptr<Nao> nao = AL::ALModule::createModule<Nao>(broker, "Nao");
00081 nao->connect(n);
00082 if(!nao->connected())
00083 {
00084 ROS_ERROR("Could not connect to Nao robot!");
00085 AL::ALBrokerManager::getInstance()->killAllBroker();
00086 AL::ALBrokerManager::kill();
00087 return -1;
00088 }
00089
00090 ros::AsyncSpinner spinner(1);
00091 spinner.start();
00092 if(broker->isModulePresent("Nao"))
00093 ROS_INFO("Nao Module loaded succesfully!");
00094 else
00095 {
00096 ROS_ERROR("Nao Module is not loaded!");
00097 return -1;
00098 }
00099
00100
00101 nao->run();
00102
00103 AL::ALBrokerManager::getInstance()->killAllBroker();
00104 AL::ALBrokerManager::kill();
00105 spinner.stop();
00106 ROS_INFO( "Quitting... " );
00107 return 0;
00108 }