■センサーで目標を探す(KRS788使用)④

前回からの続きです。

4) ロボットを物体の方向に歩かせる

前回までで、目標の位置を特定することができました。今回は、ロボットが見つけた目標に向かって歩くためのモーションの分岐方法を紹介します。

・switch文でモーションを分岐

 上記は、モーション分岐のプログラムです。読み取ったアナログ値の最大値の位置の番号は、前回説明したバブルソートによってadk[0]に代入されています。このadk[0]を元にどのモーション再生するか決めます。

 switch (adk[0]){
       case 0:
       case 1:
       case 2:
       rcb3_motion_play(9);     //左旋回2回
       rcb3_motion_play(9);
       break;

       case 3:
       ・・・(中略)
       case 8
       rcb3_motion_play(9);     //左旋回1回
       break;

       case 9:
       rcb3_motion_play(3);     //左サイドステップ
       break;

       case 10:
       ・・・(中略)
       case 14:
       rcb3_motion_play(1);     //前進
       break;
       ・・・(中略)
}
 

画像は、それぞれにモーション割り当てを図式化したものです。0~24までの数字は、adk[ ]に代入したモーションを読み取った位置の番号で、Left turnなどは再生するモーションの名前です。

(画像 クリックで拡大)

 上記のプログラムと画像を見て、adk[0]が「3」だった場合を考えてみます。「3」は左側の緑のエリアの番号です。目標に向かうためには、記述のLeft turn(左旋回)を1回再生すれば、ロボットは目標へ向くことになります。

 

 以上で「センサーで目標を探す(KRS788使用)」の説明を終わります。この方法を応用すれば、いろいろ自律ロボットを作ることができると思います。お試しください!

ホームに戻ります。