フィールドは課題2で使用した紙を使用する。〇350ml缶(中が入っていても空でよい)は逆さまにして使い、ロボットのスタート直後にサイコロを〇振って出た目の番号の位置に置く。〇その番号の次の番号のところにもダミーの缶を置くことができる。6の目が出た場合は6の〇位置と25cm以上離れていない場所ならどこに置いてもよいものとする。距離は缶と缶のもっとも近い部分で測る。空き缶には色をつけたり文字や記号を書いてもよい。周囲に紙を張ってもよい。赤と青のボールは、図のように所定の場所に置いておく。その際、キットに含まれない小さな輪ゴムを使用するものとする。基本ルール競技時間は審判が続行不能と判断するまで、あるいはリタイアするまで。図のX地点または(および)Y地点からスタートする。接地している部分はそれぞれの領域内に収まるものとする(線上はOK)。上空部分は領域からはみ出していてもよい。赤いボールを図のピンクのいずれかに置いた缶に、青いボールを図の水色のいずれかに置いた缶に、それぞれ乗せる。開始の合図から5秒以内にスタートボタンを押す作業を完了すること。競技が終了するまで、ロボットに触ったり人間が遠隔で操作してはならない。途中でうまく動かなくなった場合、1回限り再スタートすることができる(再スタートの際に別プログラムで起動してよい)。基本得点の計算方法ボールを一つ乗せればそれぞれ10点、二つとも乗せればボーナス点としてさらに10点。ダミーの缶を設置した上で、正しい缶に乗せれば、それぞれさらに6点加点する。ボールを目的の缶に当てることができれば、それぞれ4点。ボールを同じ領域内の間違った缶に乗せた場合は、それぞれ6点。ボールを同じ領域内の間違った缶に当てた場合は、それぞれ2点。ボールを違う領域内の缶に乗せた場合は、それぞれ2点。ボールを違う領域内の缶に当てた場合は、0点。してしまった場合は2点または取得した得点の半分のいずれか少ないほうを減点、その缶を完全にだしてしまったときは点数を半分にする。ダミーの缶がもとの位置から移動しても減点はしない。以下の動作の精度・スピード・確実性などを含めた技術的な工夫や芸術性について他の全てのチーム(5チーム)が20点満点で採点し、その平均点を求める。今回の課題を進めるうえでまず作ろうとしたのはベルトコンベアを使ってフォークリフトのようにボールを上げるものだった。この機構は大きくかさばったり重くてロボットのバランスが悪くなってしまったりと様々な問題が起こったのでこの機構は使わなかった。そのあとに考えたのがコンベアを使ってボールをすくい上げ、それを転がして間の中に入れるというものである。この見た目からもわかるように超音波センサがある方を前とするとボールを放つ機構が車体の前方に、ボールを持ち上げるコンベアが車体の後方にあるので車体にかかる重心のバランスが良いという利点がある。よってこの方法ならうまくいきそうだと考え、今回のロボットの制作に取り掛かった。車体については全体図からもわかるように説明書でみられるような比較的スタンダードな形のものにしてある。今回はボールを取るときと、前に進むとききっちりと180度車体の向きを変える必要があるためジャイロセンサーを使用した。↑ジャイロセンサーこれを使うと車体を回転させたときの角度を測れるようになりセンサーが正確なら毎回同じだけ回転してくれる工夫した点としては、車体の前頭部に付けた2つの角を作ったことである。この役割は缶とロボットが少し左右にずれてしまったときこの角の部分にあてることで、減点しない程度に缶を動かしロボットとの距離を修正するというものである。ボールを投げるとき...↓このようになる。↑図のようにボールが上がっていき転がって缶の上に置かれるこの機構を使う上でまず気を付けなければならないのはどのようにボールを上げるかということである。解決法としてはコンベアにかきづめのようなものを付け、車体とコンベアでボールを挟んで持ち上げることにした。コンベアと壁で挟まれているうちはボールを持ったまま保管でき、放つときにはボールを車体の上まで上げれば自然に転がっていく。図の黄色く囲まれた場所がかきづめの役割を果たす。かきづめは二つ付けてあるので1度に赤いボール、青いボールどちらも保持することができる。これで一回球を置いてからもう一つの球を取りに行く手間を省くことができる。2つかきづめがある↑ボールが二つのる。コンベアを途中で止めれば、どちらか片方だけのボールを放出することも可能また後ろにコンベアを付けることで超音波センサーがボールを持つ機構の動きにとらわれずいつでも缶の位置を把握できるようになった。続いてボールを転がす機構について説明する。基本的には滑り台のようにボールを転がした。この際ただ転がすだけだとボールの勢いが強く缶を大きくはみ出し落ちてしまうので、勢いを相殺するための壁のようなものを取り付けた。硬い防護壁のようなものを作ってしまうと、ロボットが缶に近づいたときに壁に当たって缶が動いてしまったり、ロボットと缶の距離が少しでも離れると缶の上に落ちてくれなくなるので割と簡単な力で動くように作った。することで缶のような重いものに当たっいても間違えて動かしてしまうことはなく、ボールのような軽いものに対しては効果を発揮してくれる。#ある程度時間がたってから実行するプログラム。これは缶の位置が5か6の時に缶にある程度近づいたらライントレースをやめさせるためのものである。stop()今回の課題のライントレースでは定義を4つ利用した。#指定した角度だけタイヤを動かす。#ベルトコンベアを動かす際に使われる。#缶を探す際に使われる。この場合は右回りで探す。#超音波センサーを更新した時、その値が最小値だった場合はその値をu1に保存しておく。#右回りで缶を探すとき。基本は前述したとおり。#今回の課題でさせる命令の定義。この命令一つですべての作業が完了するようになっている。今回はテスト期間に制作をしたのでほとんど時間が取れなかった。そのため完成にこぎ付けるかどうか不安要素は大きかったが時間に余裕をもって完成させることができた。最後の調整の段階では失敗することはほとんどなかったが、本番は一個目のボールを缶に乗せた後にライントレースにたどり着けずそのまま失敗してしまった。失敗の原因は、2つ配られていたジャイロセンサーの感度があまりよくなく、動作させるたびに少しずれてしまったことであった。一度作る機会があるとするならば、今度はジャイロセンサーの値が少しずれても、ある程度ロボットの構造や動きで修正できるものにしたい。