かみやんの技術者ブログ

主にプログラムの話です

つくばチャレンジ2008まであと3日!

つくばチャレンジ2008の本番最後の週末でした。
相変わらず間に合わないペース。。
昨日は、大域経路入力GUIを作ったので、続き。
まずは、シリアライズだが、C#では、シリアライズしたいクラスの先頭に[Serialize]と修飾子を書くだけ。普段は、この手の勝手にやってくれるシリアライズは、ファイルフォーマットの上位互換、下位互換のために使わないのだが、時間がないので利用。3分でシリアライズ、デシリアライズが完成してしまう。便利。

次。大域経路上を走るプログラムだが、昨日の時点では、直線状を綺麗に走ることを考えていたが、よく考えたら屋外を走るので細かい制御じゃなくてもいいや。ということで、

  • 次のウェイポイント(通過点)がロボットの自己位置推定でえられた姿勢(向き)から見て右手か左手に見えるかで適当にハンドルを切る(P制御)
  • ウェイポイントに一定以上、近づいたらウェイポイントを次のウェイポイントへ。

という、超簡単な実装にした。
部屋の中で走らせたところ、案の定、かなりアバウトに走って、直線上を走っている感じじゃない。ま、屋外ならこんなもんでなんとかなるだろう。

あと、ロボットが走っているときに状況がよくわからないので、喋るようにした。
「プログラムロード中」とか、「ウェイポイント5」とか、「ゴール!」とか。
寒いけど自分の声を録音しました(汗)。マイコンで喋らせる訳ではなくPCで喋らせるので、実装は超簡単。SoundPlayerクラスにWAVファイルを渡して、Play();のみ。数字は、1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 200, 300, 400, 500, 600, 700, 800, 900, 1000を録音した。適当につないで1〜1999まで発音できるようにした。

さて、明日は障害物回避経路作成を実装したい。