00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #include "Aria.h"
00027
00028
00039 int main(int argc, char** argv)
00040 {
00041
00042 Aria::init();
00043
00044
00045 ArArgumentParser parser(&argc, argv);
00046
00047 ArSimpleConnector simpleConnector(&parser);
00048
00049 ArRobot robot;
00050
00051 ArSick sick;
00052
00053 ArSonarDevice sonarDev;
00054
00055
00056
00057 parser.loadDefaultArguments();
00058
00059
00060
00061 if (!Aria::parseArgs() || !parser.checkHelpAndWarnUnparsed())
00062 {
00063 Aria::logOptions();
00064 exit(1);
00065 }
00066
00067
00068
00069
00070
00071
00072
00073
00074 ArKeyHandler keyHandler;
00075
00076 Aria::setKeyHandler(&keyHandler);
00077
00078 robot.attachKeyHandler(&keyHandler);
00079 printf("You may press escape to exit\n");
00080
00081
00082 robot.addRangeDevice(&sonarDev);
00083
00084 robot.addRangeDevice(&sick);
00085
00086
00087
00088
00089 ArAnalogGyro gyro(&robot);
00090
00091
00092 if (!simpleConnector.connectRobot(&robot))
00093 {
00094 printf("Could not connect to robot... exiting\n");
00095 Aria::exit(1);
00096 }
00097
00098
00099 robot.runAsync(true);
00100
00101
00102 sick.runAsync();
00103
00104
00105 if (!simpleConnector.connectLaser(&sick))
00106 {
00107 printf("Could not connect to laser... exiting\n");
00108 Aria::exit(2);
00109 }
00110
00111
00112
00113
00114 robot.lock();
00115
00116
00117 ArModeLaser laser(&robot, "laser", 'l', 'L', &sick);
00118 ArModeTeleop teleop(&robot, "teleop", 't', 'T');
00119 ArModeUnguardedTeleop unguardedTeleop(&robot, "unguarded teleop", 'u', 'U');
00120 ArModeWander wander(&robot, "wander", 'w', 'W');
00121 ArModeGripper gripper(&robot, "gripper", 'g', 'G');
00122 ArModeCamera camera(&robot, "camera", 'c', 'C');
00123 ArModeSonar sonar(&robot, "sonar", 's', 'S');
00124 ArModeBumps bumps(&robot, "bumps", 'b', 'B');
00125 ArModePosition position(&robot, "position", 'p', 'P', &gyro);
00126 ArModeIO io(&robot, "io", 'i', 'I');
00127 ArModeActs actsMode(&robot, "acts", 'a', 'A');
00128 ArModeCommand command(&robot, "command", 'd', 'D');
00129 ArModeTCM2 tcm2(&robot, "tcm2", 'm', 'M');
00130
00131
00132 teleop.activate();
00133
00134
00135 robot.comInt(ArCommands::ENABLE, 1);
00136
00137
00138 robot.unlock();
00139
00140 robot.waitForRunExit();
00141
00142 Aria::exit(0);
00143
00144
00145 }
00146