00001 /* 00002 MobileRobots Advanced Robotics Interface for Applications (ARIA) 00003 Copyright (C) 2004, 2005 ActivMedia Robotics LLC 00004 Copyright (C) 2006, 2007 MobileRobots Inc. 00005 00006 This program is free software; you can redistribute it and/or modify 00007 it under the terms of the GNU General Public License as published by 00008 the Free Software Foundation; either version 2 of the License, or 00009 (at your option) any later version. 00010 00011 This program is distributed in the hope that it will be useful, 00012 but WITHOUT ANY WARRANTY; without even the implied warranty of 00013 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00014 GNU General Public License for more details. 00015 00016 You should have received a copy of the GNU General Public License 00017 along with this program; if not, write to the Free Software 00018 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00019 00020 If you wish to redistribute ARIA under different terms, contact 00021 MobileRobots for information about a commercial version of ARIA at 00022 robots@mobilerobots.com or 00023 MobileRobots Inc, 19 Columbia Drive, Amherst, NH 03031; 800-639-9481 00024 */ 00025 00026 #include "Aria.h" 00027 00035 int main(int argc, char **argv) 00036 { 00037 ArRobot robot; 00038 Aria::init(); 00039 ArSimpleConnector connector(&argc, argv); 00040 if (!Aria::parseArgs()) 00041 { 00042 Aria::logOptions(); 00043 Aria::shutdown(); 00044 return 1; 00045 } 00046 00047 if (!connector.connectRobot(&robot)) 00048 { 00049 ArLog::log(ArLog::Normal, "simpleConnect: Could not connect to robot... exiting"); 00050 return 2; 00051 } 00052 00053 ArLog::log(ArLog::Normal, "simpleConnect: Connected."); 00054 00055 // Start the robot running in the background. 00056 // True parameter means that if the connection is lost, then the 00057 // run loop ends. 00058 robot.runAsync(true); 00059 00060 // Print out some data from the SIP 00061 ArLog::log(ArLog::Normal, "simpleConnect: Pose=(%.2f,%.2f,%.2f), Trans. Vel=%.2f, Battery=%.2fV", 00062 robot.getX(), robot.getY(), robot.getTh(), robot.getVel(), robot.getBatteryVoltage()); 00063 00064 // Sleep for 3 seconds. 00065 ArLog::log(ArLog::Normal, "simpleConnect: Sleeping for 3 seconds..."); 00066 ArUtil::sleep(3000); 00067 00068 00069 ArLog::log(ArLog::Normal, "simpleConnect: Ending robot thread..."); 00070 robot.stopRunning(); 00071 00072 ArLog::log(ArLog::Normal, "simpleConnect: Exiting."); 00073 return 0; 00074 }