今回の課題は下の図のようなコースを各チームで作成し、ミッションを遂行することである。†キットに付属していた説明書に載っていたように、光センサを取り付けました。正確な測定が出来るよう、床との距離を縮めるようにしました。今回は進みたい距離からタイヤの回転角を計算するfloat型の関数を使ったプログラムを用いました。右折の場合、90°回転が必要となります。90°回転する場合のタイヤの辿る円周の長さはL=d=2×3.1415×10.5×90/360≒16.5�ただし、今回私はタイヤをどちらも動かして右旋回させようとしていて、16.5cmでやると180°回転になってしまうので、半分の8.25cmにすることで90°回転にしました。これより、90°回転を定義しました。交差点を直進する際、2cm進むこと(線の太さが約2cmであるため)が必要となります。この場合は普通にd=2でできます。これより、2cm進むことを定義しました。先ほどの「90°回転」、「2cm進む」定義を元に、「交差点右折」と「交差点直進」を定義しました。//交差点直進(モータBとCを50%のスピードで同期させて2cm分前転)さらに、ライントレースに必要なことの定義をしました。私はライントレースをさせる際、光センサが黒線と左側の白い部分の境界上を動くようにしました。光センサが白い部分にさしかかったら黒線側へ、黒い部分にさしかかったら白い方へ向かうようにカーブさせました。ライン上を走行するために黒い線の周囲の明るさをセンサーではかり、しきい値を決定しました。実際測ると上図のようになったので、しきい値を44に設定、定義しました。交差点認識については、上記の五段階認識のうち「もっとも黒い」時がnMAX回続いたときに交差点と認識するようにしました。試行錯誤を重ねていった結果、nMAX=160が妥当でしたので定義しました。160ここでまた前回の反省を踏まえ、サブルーチンを用いました。2パターンの動作をしなくてはならないので、次のようにサブルーチンを作りました。急カーブ地点に関しては、できる限り緩めになるようカーブの外側の境界を走るようにしました。†B地点からC地点まで行くまでにかかった時間は103秒でした。周りと比べると遅くて、少し残念でした。†ミッション遂行タイムにもあるように、周りと比べるとタイムが遅かったです。スピードを遅く設定していたこともありますが、左右の動きが激しかったのも要因かと思いました。性能のよい動きが出来るようなプログラムを組めればよかったです。プログラムのコンパクトさについては、前回の反省を踏まえ、サブルーチンを用いたことでよりコンパクトにすることが出来ました。使えるところもあるとおもうので、次回の課題ではより定義、サブルーチンをもちいてコンパクトでわかりやすいプログラムを組んでいきたいです。今回もよりよいプログラムに出来るよう、チームの仲間と協力したり相談し合いながら作業しました。仲間との協調性、仲間の大切さをより強く感じました。次の課題では2チーム合同になるので、協調性を大事に、そして今回の反省点を改善できるよう努めていきたいです。