ライントレーサとは
ライントレーサは、床上に引かれた線に沿って、前進していくロボットです。通常は、模造紙などの上に太めのマジック等で黒い線を引いて、線をトレースしていきます。
レゴマインドストームNXTライントレーサロボットの設計
ここでは、ライントレーサロボットの動作に従って設計を行う手順を解説します。設計は、UML(Unidifed Modeling Language)を利用して行います。
STEP1:ライントレーサの制御パターンを考える(状態遷移図による制御方式決定)
線上をトレースするためには、どのような制御を行うかを決定する必要があります。制御内容にかかわらず構造や動作を分析・設計することも可能ですが、制御方式を決定してからのほうがより具体的になります。
利用可能な機器
レゴマインドストームNXT(※)では、以下の機器が本体に用意されており、提供されているAPIを利用して制御することができます。
- モーター(タイヤを装着可能)
- 真下の明るさを検知する照度センサ
- バンパースイッチ
本稿では、一般的な名称として「レゴマインドストームNXT」を使用していますが、正式な製品名は「教育用レゴマインドストームNXT」です。
ライントレースの実現方法
モータ(とタイヤ)を使って前進することができます。真下の明るさ(線の色)は、照度センサの値を読み取ることで判定できそうです。スイッチも用意されているので、動作開始/終了もNXTの操作(バンパースイッチのON)をきっかけとして行えそうです。以上のことから、バンパースイッチが押されたら前進を開始し、線上であれば右に曲がり、線外であれば左に曲がることで、線の端にそって進むことができそうです。
制御のアルゴリズム
「ライントレースの実現方法」で検討した内容を詳細化するために、ライントレーサがとりうる「状態」と「状態」間の遷移条件をまとめます。このような情報を整理する場合は、UMLの状態遷移図(ステートチャート図)を使います。
今回のライントレーサの状態遷移図は以下のようになります。「状態」間の遷移制御=「プログラムで実装する制御内容」となります。