Legoでライントレースカー

Legoは、H8マイコンを搭載し、プログラムで自律走行が可能です。様々なセンシング方式、駆動方式、ステアリング方式をとることができ、有効な実験が可能です。ここで、いくつかの方式のものを作り、走行実験させてみました。走行の様子を「簡単ライントレースカー」の比較して見ると制御系の違いが良く分かります。
なお、制御プログラムは、ROBOLAB:Lego社のMindstorm Invension System(RIS) 標準のグラフィック開発環境で作ったもの紹介しています。他にも、マイクロソフト社のグラフィック開発環境「Microsoft Robotics Studio」、Java開発環境「LeJOS/JCreator」等があります。

なお、ここに掲示したデータは、記録をのこすため、すべて自作計測器で得たものです。これらの機器は、信頼できる計測器で校正をしているものではありません。ここに掲示したデータは、「おおよそ」、または「傾向」を見ていただく程度と理解してください。

Legoライトセンサーの特性

Legoの標準コースを使用して、白地、緑地、黒地におけるライトセンサーの感度特性を調べみたが、赤外LEDによる照明機能を持つため、照度の変化(0〜320lxの範囲でテストしてみた)に無関係であり、センサ高さ4mm/8mmの変化にも無関係であった。

ライトセンサ特性
ライトセンサ個々の特性の差が見られるものの、特性において相対値は確保されているため、プログラムで特性差を指定することで特に問題は発生しない。<拡大>

ライトセンサー×2・モーター×2個方式

左右2個のモーターで駆動している。方向制御は、向かわせたい側のモータを逆転させ、他方をそのまま順方向に回す方法である。2個のライトセンサを持ち、ラインを挟むようにして走る。タイヤ駆動式では、前輪はキャスター方式でフリーとしている。

タイヤ駆動
タイヤ駆動方式の走行の様子が見られます。
(Windows Media形式のファイル:2.3MB)
キャタピラ駆動
キャタピラ方式の走行の様子が見られます。
(Windows Media形式のファイル:1.8MB)
走行制御プログラム
タイヤ駆動タイプもキャタピラ駆動タイプとも同じプログラムを使用しています。<拡大>
方向制御の考え方
左のプログラムは、ライントレースカーの位置が上の5つの状態になった時を想定して作った。図で車は下から上に向かって進行しているとし、黒はラインを表し、赤丸は車の左右のライトセンサーを表している。

ライトセンサ×1個・モータ×2個方式

2ライトセンサ方式と同じ左右2個のモーターで駆動している。方向制御は、向かわせたい側のモータを逆転させ、他方をそのまま順方向に回す方法である。前輪はフリーとしている。ライトセンサは1個でラインのエッジ(白黒の境界)を確認しながら走る。

外観
ライトセンサ1個タイプの走行の様子が見られます。
(Windows Media形式のファイル:1.5MB)
方向制御の考え方
下のプログラムは、ライントレースカーの位置が上の2つの状態になった時を想定して作った。図で車は下から上に向かって進行しているとし、黒はラインを表し、赤丸は車のライトセンサーを表している。
走行制御プログラム
右上の制御の考え方に従って作ったRISプログラムです。<拡大>

モータステアリング方式

1個のモーターで後輪駆動している。方向制御がスムースに行えるよう、後輪はディファレンシャルギアを介して駆動している。ステアリングは、専用のモーターで前輪の方向を制御している。ライトセンサは1個でステアリングと連動し、ラインのエッジを確認しながら走る。センサがステアリング機構と連動し、ラインを先読みして走ることから、ライトセンサは1個のタイプですが動きは滑らかです。ただ、最小旋回半径は、大きくなり、半径の小さなカーブを曲がるのは苦しくなります。旋回は、左右の駆動輪を直接制御する前述の方式の方が断然有利です。

外観(フロント)
ステアリングを左いっぱいにきり急カーブを曲がっているところです。下のアイコンをクリックすると走行の様子が見られます。
(Windows Media形式のファイル:2.7MB)
外観(リア)
 
前輪・ステアリングギア部
左にいっぱいステアリングをきったところです。切れ角は約45°です。最小半径約18cmのLegoのコース無理やりといった感じで旋回してくれます。
後輪・ディファレンシャルギア部
 
最小旋回半径
2個のモーター(駆動、ステアリング)やステアリングギア部、ディファレンシャルギア部などを全て同一平面上に配置(後で改良を容易にするため)しているため、最小半径に関わるホイールベース、トレッドが長くなりました
走行制御プログラム
ドライブ用モーターは定速で順転させ、ステアリングモーター1個を制御するだけですので、制御プログラムは至って簡単です。<拡大>

このような構造では、、推定旋回半径は、27cmにもなります。従って、小さなコースを旋回するときはいずれかのタイヤがどこかで横すべりしているはずです。しかも、ステアリング機構は、アッカーマンタイプといったものでないので、外輪と内輪の旋回中心は、大きくずれています。もし、高速で走っていれば確実に横転しています。