TOPシステム開発> 第2回:環境をセンスし、その内容に基づいて制御 (2/3)




LEGOから学ぶ組み込みシステム開発のキホン

LEGOから学ぶ組み込みシステム開発のキホン

第2回:環境をセンスし、その内容に基づいて制御

著者:科学技術振興機構 山下 博之

公開日:2008/03/26(水)

タイマの利用

ロボットを所望の位置まで移動させる方法としては、タッチセンサの利用が最も確実である。タッチセンサは、前方あるいは後方に配置して壁などの障害物にぶつかったことを検知するために用いる。タッチセンサにより、壁などの基準となる物体への接触/衝突を検出してロボットを停止し、方向転換する。

しかしながら、壁などの障害物が存在しない場合には、タッチセンサを使用することはできない。では一般にロボットを所望の位置まで移動させる方法には、どのようなものがあるだろうか。

ロボットを所定の距離だけ移動させる方法はいくつかあるが、そのうちで最も簡便な方法は、タイマを用いるものである。

すなわち、ロボットのスピードをv、走行時間をtとすると、距離l=vtだけ移動することができる。プログラムとしては、vのスピードでモーターをスタートし、tの時間が経過した後ストップする。ただし、プログラムはロボットのスピードvの値をそのまま使用することはできず、モーターのパワー値を指定することができるだけである。

そのため、モーターのパワー値に対応するモーター軸の回転数を算出した上で、モーター軸とタイヤ軸とをつなぐギアの歯数比やタイヤの直径をもとにロボットの速度を計算する必要がある。ただし、実際にはロボットを動かしてみてその速度を測定することが多い。

ところが、電源電圧の変動や走路面の悪状態が原因のスリップなどにより走行状況が安定しないため、タイマを用いる方法では誤差が生ずる。そして、この誤差は走行距離が長くなればなるほど無視できなくなる。したがって、誤差がほとんど影響しない特別なケースを除き、所定距離の走行のためにタイマを用いることはない。

タイマを用いるケースとしては、先に例として挙げたクレーンを昇降する場合や、図2の(1)に示すFLL2005における「潜水艦を船体から海に降ろせ」ミッションの攻略のように、ロボットを壁に押し付けて進行方向の補正を行う場合など、ロボットの走行距離とは関係ない場合が基本である。

図2:回転センサと光センサの利用

(画像をクリックすると別ウィンドウに拡大図を表示します)

回転センサの利用

ロボットをより精確に移動させるためによく用いるのは、回転センサである。通常、走行距離を測定するために、回転センサを車輪の軸に接続する。

RCXタイプの回転センサでは、360度を16段階(1段階は22.5度)に分割している。回転センサを車輪の軸に接続した場合には、読み取って得られる値aとタイヤの直径dから、計算により走行距離l=dπ×(a/16)を得ることができる。もちろん、実際にロボットを手動で動かしてみることにより、移動距離に対応した回転センサの増加値を得ることもできる。

なお、NXTタイプでは、回転センサはモーターのコンポーネントに組み込まれている。すなわち、モーターの軸に回転センサが接続されていることになり、得られる値はモーターの回転数である。したがって、ギア比とタイヤの直径とから、計算により走行距離を得ることになる。ただし、精度は格段に向上しており、1度刻みの回転数値が得られる。

筆者らのチームでは、図2の(1)に示す初期移動において、回転センサを用いた。プログラムとしては、回転センサの値をクリアした上でロボットを走らせた後、回転センサを読み取った値が、あらかじめ計算(あるいは実測)により得られた値より大きくなった時点で停止するように組む。

回転センサを用いる方法は、タイマに比べて誤差は少ないが、フィールド面の状態やロボットのスタート位置のブレが精度に影響する。また、何らかのトラブルによりタイヤが回転できなくなってしまった場合、回転センサの値のチェックのみで停止の要否を判断するような論理にしていると、制御不能に陥るリスクがある。

このようなリスクを回避するため、タイマと併用することが多い。つまり、回転センサの読み取り値に基づく判断において一定時間以上ロボットが停止しない場合には、何らかのトラブルが発生したとみなして、強制的に停止させるのである。

ところで回転センサは、一次元の制御、すなわちロボットの進行方向(前後)の移動の制御にしか使用できない。しかし、実際にはロボットの進行方向の左右についても、精度よく制御できなければならない。例えば、図2の(2)のように、フィールド上の特定のポイントにロボットを移動させたい場合には、前後・左右の二次元を考慮する必要がある。このようなケースにおいて利用可能なものとして、光センサがある。 次のページ


前のページ  1   2  3  次のページ


独立行政法人 科学技術振興機構 山下 博之
著者プロフィール
独立行政法人 科学技術振興機構 山下 博之
1981年京都大学大学院修了。日本電信電話公社(現NTT)の研究所においてデータ通信などの研究開発・標準化活動に従事後、2003年に(株)NTTデータに転籍。2004年より科学技術振興調整費プログラムオフィサーとして(独)科学技術振興機構に出向中。情報処理学会誌 2007年5月号解説記事「小中学生を対象としたロボット競技会と総合理科教育」もご覧ください。


この記事の評価をお聞かせください
ボタンをクリックしますとウインドウが開きます。

INDEX
第2回:環境をセンスし、その内容に基づいて制御
  各種センサとその基本的使用方法
タイマの利用
  光センサの利用
LEGOから学ぶ組み込みシステム開発のキホン
第1回 これがLEGOのロボット競技会FLLだ!
第2回 環境をセンスし、その内容に基づいて制御
第3回 ハードウェアとソフトウェアの協調設計
第4回 リソース制約対応とプログラム開発管理
関連記事
最強ロボットを作れ!−FLL挑戦記
小さな日本代表が世界へ!−FLL実況レポート