list_18.c

00001 /*
00002   矩形の軌跡を描くプログラム
00003 */
00004 
00005 #include "run_ctrl.h"
00006 #include <stdio.h>
00007 #include <stdlib.h>
00008 
00009 
00010 /* 制御が安定するまで待つ */
00011 static void waitStable(void) {
00012   while (!run_is_stable()) {
00013     mWait(100);
00014   }
00015 }
00016 
00017 
00018 int main(int argc, char *argv[]) {
00019   int x, y, t;
00020 
00021   /* 接続処理 */
00022   if (initRunCtrl(argc, argv) < 0) {
00023     printf("initRunCtrl: %s\n", run_getError());
00024     exit(1);
00025   }
00026 
00027   /* ----- 停止して角を曲がる ----- */
00028 
00029   /* 停止付近まで直進 */
00030   run_followLine(GL, 0, 0, deg(0));
00031   do {
00032     mWait(100);
00033 
00034     /* 停止の角のあたりでループを抜ける */
00035     run_getBodyPos(GL, &x, &y, &t);
00036   } while (x < 700);
00037 
00038   /* 直線上で停止 */
00039   run_stopLine(GL, 1000, 0, deg(0));
00040   waitStable();
00041 
00042   /* -90 度の方を向く */
00043   run_stopAngle(GL, deg(-90));
00044   waitStable();
00045 
00046   /* ----- なめらかに角を曲がる ----- */
00047 
00048   /* 直線に追従開始 */
00049   run_followLine(GL, 1000, 0, deg(-90));
00050   do {
00051     mWait(100);
00052 
00053     /* 次の角のあたりでループを抜ける */
00054     run_getBodyPos(GL, &x, &y, &t);
00055   } while (y > -700);
00056 
00057   /* 次の直線に追従開始 */
00058   run_followLine(GL, 1000, -1000, deg(180));
00059 
00060   /* 適当に停止 */
00061   mWait(3000);
00062   run_stop();
00063 
00064   return 0;
00065 }
00066 

Generated on Mon Apr 13 22:52:04 2009 by  doxygen 1.5.7.1