run_beginner_task_05.cpp
00001
00002
00003
00004
00005
00006
00007 #include <mRunCtrl.h>
00008 #include <vutils.h>
00009 #include <stdio.h>
00010
00011 using namespace VXV;
00012
00013
00014 static void stopAndTurn(mRunCtrl& run, const VXV::Position& target) {
00015 while (abs(run.getLengthToLine(target)) > 300) {
00016 VXV::Delay(100);
00017 }
00018 run.stopToLine(target);
00019 waitStable(run, 100);
00020
00021
00022 run.rotateAngle(deg(-90));
00023 waitStable(run, 100);
00024 }
00025
00026
00027 int main(int argc, char *argv[]) {
00028 try {
00029 mRunCtrl run;
00030 if (initConnection(&run, argc, argv) < 0) {
00031 exit(1);
00032 }
00033 vmonitor::show();
00034
00035
00036 VXV::Position target(1000, 0, deg(0));
00037 run.followLine(target);
00038 stopAndTurn(run, target);
00039
00040
00041 run.followCircle(VXV::Grid(0, 0), 1000);
00042 stopAndTurn(run, VXV::Position(0, -1000, deg(180)));
00043
00044
00045 target = VXV::Position(0, 0, deg(90));
00046 run.followLine(target);
00047 stopAndTurn(run, target);
00048
00049 VXV::Delay(1000);
00050 } catch (std::exception& e) {
00051 printf("exception: %s\n", e.what());
00052 }
00053 return 0;
00054 }
00055