simuPosUse.cpp

タイムスタンプとモニタ用位置を用いた場合の URG センサからのデータ処理

simuPosUse_rouka.jpg

実環境(廊下)における実行例

/*
  URG センサからのデータ処理 (モニタ用位置を利用)
  Satofumi KAMIMURA
  $Id$
*/

#include "mRunCtrl.h"
#include "mURGCtrl.h"
#include "vutils.h"
#include "drawCaptures.h"

using namespace VXV;


int main(int argc, char *argv[]) {
  try {
    mRunCtrl run;
    mURGCtrl urg;
    if ((initConnection(&run, argc, argv) < 0) ||
        (initConnection(&urg, argc, argv, true) < 0)) {
      exit(1);
    }
    urg.setOwnCrdToObject(&run);
    run.adjustSubTreeTicks(0);

    vmonitor::show();

    int capture_times = 0;
    int pre_times = urg.getCaptureTimes() - 1;

    run.rotateToDirection(deg(-90));
    while (!run.isStable()) {
      // 周囲の情報を取得
      urg.capture();
      int times = urg.getCaptureTimes();
      if (times != pre_times) {
        pre_times = times;
        urg.convert(run.ticksPos); // シミュレータ位置を用いる
        drawCaptures(urg);

        ++capture_times;
      }
    }

    // 表示用ファイルの出力
    printf("captures: %d\n", capture_times);

    run.rotateToDirection(deg(0));
    VXV::waitStable(run, 100);
    VXV::Delay(1000);

  } catch (std::exception& e) {
    printf("exception: %s\n", e.what());
  }
  return 0;
}


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