†ロボコンに向けた準備を進めていく中で以前よりも精度の高いロボット、プログラムができたので新しいロボットについてレポートします。†モーターの役割はそれぞれA_ボールをつかむためのアームを動かすB_右タイヤを動かすC_左タイヤを動かす三輪車タイプの本体に光センサーを前方に取り付け、上部には写真のようにボールを挟むためのアームを取り付けている。ボールをつかむ動作はイメージとしてはアトラスオオカブトの角を上下逆さにしたようなものである。下の2本の角で一時的にボールを確保し、その後時間で制御される上の角を降ろしてボールを挟み込む。†NXTはもともと大きく重いためあまり凝ったロボットを作るとライントレースという細かい動作の連続には不向きになるのでシンプルで小さいロボットの製作を試みた。最初はクワガタのような動作でボールをつかむ予定だったが、角が前方に飛び出しすぎてしまうためトレース中にボールを弾き飛ばしてしまったので、前方下にある角を極力小さくできる構造をとった。nMax)//交差点を認識するまで続ける{if(CurrentTick()-t0==13000){catch_boal;//スタートして13秒後にボールを掴む。main(){line_trace();line_trace2();line_trace3();}ボールをつかむのをタッチセンサーから時間に変えたため無駄なプログラムが残っているが完成した時のままにしてある。線の左側をトレースしていくプログラム。コースを時間で3つのブロックに分けた。スタートして14秒以内(Pを通過し急カーブ手前まで)...交差点判定のあるライントレースをしつつスタート後13秒のところでボールを掴む。14~23秒(急カーブ)...交差点判定をやめライントレースだけする。23~29秒(Qを通過してBゴールまで)...交差点判定のあるライントレースをしBゴールで終了する。†A→Bコースは最後に右に直角に曲がるところがあり、そこを交差点判定しなくても済むよう線の左側をトレースすることにした。線上だったときカウンターを増やし交差点を判定するのだが、交差点の認識が甘かったので線の中央、端にわけた。急カーブをトレースするときは交差点判定しないようにし、線を飛び出さないように少しだけ速度を抑えた。†ボールをシュートすることはできなかったがAからBまでトレースすることはできた。交差点を認識させようとすると急カーブも交差点として認識してしまった。タイマーをつけ、ある程度時間で制御するのと急カーブでは速度を落とすことで改善した。線の左側をトレースすることで右に直角に曲がるところを外側から回りこむようになるので交差点と錯覚させないことに成功した。当初はタッチセンサーでアームを降ろすタイミングを決めていたがボールを押さえていないとセンサーが反応しないので時間でタイミングを決めることにした。超音波センサーを使えばうまくできるはず。線の濃さにそれぞれの場所によってむらがあったので苦労した。コースを3つのブロックに分けたのでそれぞれのブロックによって線上かどうか判断する値を少し変えた。†プログラムを順序立てて書いていくことの大切さがわっかた。プログラムの上と下の兼ね合いを考えて条件式など考えていくことは難しかったが頭を使ったのでとても楽しかった。小さい頃、今回のロボットと同じような黒い線をトレースするおもちゃを動物園のお土産コーナーで買い、遊んだことがあったのだが、そのおもちゃの仕組みを理解することができたうえにプログラムがどのようになっているか想像することができるようになった。