初めてのETロボコン (3) ―― ゲリラ的豪雨ニモ負ケズ,試走会IIに臨む

大山 将城

tag: 組み込み

コラム 2008年9月11日

●灰色検知走りから賢い走りへ

 灰色を検知できるようになったので,全体のコースを「灰色のマーカで分割されたコース区間の組み合わせ」と捉えることができるようになりました(図2).そして,基本的な走行制御方法と,特別なコース区間に対する走行制御方法を組み合わせることで,全体のコースを走破します(図3)

003_f2.gif
[図2] ETロボコン2008のコースと区間分割例
灰色のマーカで分割されたコース区間として,例えば,「ショートカット区間」,「ツイン・ループ区間」,「坂道区間」などが考えられる.

003_f3.gif
[図3] 走行に関する概略モデル
コース区間に応じて走行制御方法を変える.

 基本的な走行制御としては,指定されたエッジ(右または左)に沿って指定されたスピードで走行するように,操舵モータと駆動モータを制御します.これは図2の「灰色検知走り」クラスに相当します(実際には,「灰色検知走り」クラスの下にモータ制御用のクラスや色判別クラスなどがあるのだが,前回紹介したクラス図と同じなので省略する).

 コース区間に対応する走行方法には,エッジの選択,スピードの設定,難所攻略のための特殊走行のアルゴリズムがマッピングされています.具体的には,「コース区間」クラスでインターフェース「走行する」を規定して,各「コース区間」クラスの中に走行アルゴリズムを実装します.また,これらの走行アルゴリズムに従った実際の走行制御は「走り」オブジェクトの責務として,引き数で渡すようにしました.

 走行を制御するのは,あくまで「灰色検知走り」クラスであり,検知したコース区間に応じて「灰色検知走り」を「走り」オブジェクトとして渡します.コース区間ごとに異なる走行制御を行う場合,一般的な感覚だと「走る人がコースをもらって,コースに沿って走る」となるかと思いますが,ここでは「コースが走る人をもらって,指示通り走ってもらう」といった方法をとっています.

 走行制御とコース区間の橋渡し役は「ナビ」クラスに任せます.「ナビ」クラスは,全体のコースをコース区間のリストとして保持しており,スタートからゴールまで区間の遷移を把握し,コース区間を適宜選択します.これが私たちの「賢い走り」です.

 こうして,よたよた走り -> 灰色検知走り -> 賢い走りへとTAMA Lab.のソフトウェアが成長しました.モデルを眺めると少し心強い気がします.でも,ETロボコンで走るのは,物理世界にある現実のコースです.組込みソフトウェアの開発はここからが正念場です.

組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! FPGAマガジン No.12『ARMコアFPGA×Linux初体験』好評発売中

FPGAマガジン No.11『性能UP! アルゴリズム×手仕上げHDL』好評発売中! PDF版もあります

PICK UP用語

EV(電気自動車)

関連記事

EnOcean

関連記事

Android

関連記事

ニュース 一覧を見る
Tech Villageブログ

渡辺のぼるのロボコン・プロモータ日記

2年ぶりのブログ更新w

2016年10月 9日

Hamana Project

Hamana-8最終打ち上げ報告(その2)

2012年6月26日