LancerStratos’s blog

第23回ロボットグランプリに向けたロボットランサー”ランサーストラトス”開発記録

参照渡し

マーカーセンサー

前回の記事から1か月以上経過してしまいました。この夏の暑さに参って開発から遠ざかっていました。気力を振り絞って開発を再開します。TSL1401のプログラムを改良し、現在コースライン位置のみ検出しているのに加えて、コースライン脇にあるマーカーの検出もできるように改良を試みます。これにより、バンパー下に設置したマーカー読み取りセンサよりも、より早い時点でマーカー検出することができ、コース端コーナー進入時のステアリングと速度の制御を改善したいと思ってます。

先の記事に掲載した関数は、2つの引数に1つの戻り値(ライン位置)でしたが、マーカー検出を加えると戻り値(処理結果)が複数になるため関数の戻り値では表現できません。そこで参照渡しのテクニックを勉強しました。ポインタの理解でつまづきました。が、習うより慣れろで、いろいろソースを編集しているうちにコンパイル時の大量のエラーを少しづつ解消し、参照渡しの骨格を整えることができました。マーカーの検出自体はまだ確認できていません。

今回の勉強の中で、グローバル変数はあまり多用しないほうがいい、という意味を改めて実感することができました。