ロボットの三要素

ロボット作成時にプログラムは三要素 S・C・Aを分けるとよいと思う。

  • S(Sensor) センサ:感じて知らせる!
  • C(Computer) コンピュータ:判断して命令!
  • A(Actuator) アクチュエータ:目的をはたす!

分けることで、センサの構成変更や足回りの変更(オムニだと4輪→3輪など)の際にプログラム全体を直す必要がなくなり、またデバッグもしやすくなる。


三要素については、こちらのScene7を勧める。SCA!SCA!


C-Styleにあるサンプルプログラムを例に考える。

  • C:\Daisen\C-Style for TJ3B V161219\User_TJ3B\DirSensor\10_3Ball with HMC6352 soccer sample.Csy

ボールセンサ3個とコンパスセンサを持つ2輪ロボット用プログラムだが、SCAがごちゃまぜの状態で、個人的には好みではない。


これをSCAで分けるとこんな感じに。

C-Codeのコマンドは、メニュー「オプション」→「Setupボタンを表示」で<Setup>ボタンを表示し、「Advanced Mode」をオンにし、<OK>ボタンを押すと使える。
ここでは、コメントの記述用にだけ使っている。


デバッグの際は、変数の値を C-Code の printf などでシリアルモニタに表示し、意図する状態になっているか確認する。


また、Sのセンサー部分のみデバッグする場合は、Cのコンピュータ部分の直前に「continue」を入れることで、以後の処理をスキップできる。