目次 #contents ------- * 日時・場所 [#cfdd34bd] :日時| 2013年%%2月1日(金) 16:20〜%% &color(red,white){2月6日(水) 10:00〜}; :場所| %%10番教室%% &color(red,white){26番教室}; :予定| --10:00〜10:10 (競技の説明と各係の選出) --10:10〜10:40 (リハーサル) --10:40〜11:00 (調整) --11:00〜11:30 (競技) --11:30〜12:30 (後かたづけ、反省会) * 課題:紙パック運搬ロボット [#hcc97ac0] 紙パックを所定の位置から所定の位置に運搬する。 #ref(2012b/ロボコン/robocon2012b.png,70%,ロボコンのフィールド平面図) :フィールドの説明 | --フィールドは課題1で使用した紙を2枚つなぎ合わせる (&color(red,white){向きは自由};) --白い紙パックと黒い紙パックがそれぞれ3個づつ対角のゴール(課題1のゴール)に置かれている (&color(red,white){前1個、後2個の2列に配置する};) --2枚の紙のつなぎ目に断面が約3cm×4cmの角材を両面テープまたは押しピンで貼り付ける。 --黒い線の幅は&color(red,white){20mm};とする * ルール [#mbf23fa7] :基本ルール | --白い紙パックと黒い紙パックを入れ替える。 --競技時間は審判が続行不能と判断するまで、あるいはリタイアするまで。 --課題1のスタート地点からスタートする。 --スタート時のロボットは2個を越えないこと (スタート後はいくつに分裂してもかまわない)。 --開始の合図から5秒以内にスタートボタンを押す作業を完了すること。 --競技が終了するまで、ロボットに触ったり人間が遠隔で操作してはならない。 --途中でうまく動かなくなった場合、1回限り再スタートすることができる(再スタートの際に別プログラムで起動してよい)。 --最終的にゴールに運び込まれた紙パックの数で点数を計算する。 :基本得点の計算方法| --運びこまれた紙パックに1個つき3点。ただし、紙パックを2段または3段に積み上げた場合は、2段目の紙パックを6点、3段目の紙パックを9点とする。 --紙パックが半分以上ゴールからはみ出している場合は、1個2点、はみ出している部分が半分未満の場合は1個2点とする --一部がゴールの外にはみ出た出た紙パックの上に積み上げられた紙パックは、何段目であっても各3点とする。 :技術点の計算方法| 以下の動作の精度・スピード・確実性などを含めた技術的な工夫や芸術性について他の全てのチーム(5チーム)が20点満点で採点し、その平均点を求める。 得点の目安: --紙パックまでたどり着く動作 (3点) --紙パックを運ぶ動作(2点) --障害物を越える動作 (4点) --2台以上のロボット、あるいは単体のロボットの場合は2台のRCX,NXTの連携の良さ(3点) --自立型のロボットとしての形や動作の美しさ、斬新さ(3点) --その他 (4点) * 各係など [#fcc6830e] :司会・審判 (2人)| 司会進行、開始・終了の合図と基本得点の計算 :得点の集計係 (1人)| 技術点を集計する :採点の報告係 (各チーム1人) | 採点した点数を集計係に連絡する :スタート順| *結果 [#b8c1ff5e] 今回のロボコンはどうしても抜けられない事情と被ってしまい、参加することが出来ませんでした。その代りに会を進行し、ロボコンを行ってくださったゼミ参加者のみなさん・チームのみなさん・先生、本当にありがとうございました。そしてとても大事な時に参加できず本当に申し訳ありませんでした。 当日のロボコンに至るまで、何度の試行錯誤し、最初にできたロボットの形態から最終的にはほとんど違う機構をもったロボットになりました。 まずタッチセンサーとアームの位置は、ロボットの真逆に接続されています。そうすることにより、タッチセンサーの誤動作を防ぐとともにアームの軽量化、重心やバランスなどの物理的な要素の改善がなされています。 大まかな形を把握するには下に掲載する写真を参考にしてください。 #ref(DSC_0200.jpg) 紙パックをつかむアームについては、力の出るウォームギアを用いて、滑らかな運用を可能にしている。ウォームギアは力を発生させるの時に予想以上の力を出すため、プログラム内で調整して動かしすぎないような工夫をする必要があった。 #ref(DSC_0183.jpg) 紙パックを探し、タッチセンサーに当てて反応させるところから、つかみ持ち上げるところまでのプログラムは、センサーに当たり反応を起こしたというところから本体を前後逆に回転させつかみあげるという動作で成り立っている。実際のプログラムを、部分的ではあるが掲載する。 * プログラム [#mbf23fa7] #define QUARTER_TURN_TIME 52 // 1/4回転 #define STAY_BACK_TIME 70 // 持ち上げる際に一度退く時間 #define APPROACH_BOX_TIME 110 // 箱に近づく時間 #define OPEN_SHUT_TIME 150 // アームを完全に開閉する時間 #define KEEP_PUT_TIME 150 // 箱を完全につまむまでの時間 #define RAISEUP_TIME 300 // アームを持ち上げる時間 task main () { // 初期化 SetPower(OUT_AC, 3); SetPower(OUT_B, 7); SetSensor(SENSOR_1, SENSOR_LIGHT); SetSensor(SENSOR_3, SENSOR_LIGHT); SetSensor(SENSOR_2, SENSOR_TOUCH); Off(OUT_ABC); // タッチセンサーが箱を感知するまで直進 until(SENSOR_2) { OnFwd(OUT_AC); } Off(OUT_AC); // その場で停止 //open arms. OnRev(OUT_B); Wait(OPEN_SHUT_TIME + KEEP_PUT_TIME + RAISEUP_TIME); Off(OUT_B); // 回転 SetPower(OUT_AC, 6); OnRev(OUT_AC); Wait(STAY_BACK_TIME); OnRev(OUT_A); OnFwd(OUT_C); Wait(QUARTER_TURN_TIME*2); OnRev(OUT_AC); Wait(APPROACH_BOX_TIME); Off(OUT_AC); SetPower(OUT_AC, 3); // 持ち上げ OnFwd(OUT_B); Wait(OPEN_SHUT_TIME + KEEP_PUT_TIME + RAISEUP_TIME); Off(OUT_B); } * 感想 [#mbf23fa7] 今回は参加できなかったが製作は、忙しいながらもたくさん悩んで作ることが出来たと感じている。 実際に完全な動作を行い運用ができるものに仕上がったかというとそうではないが、何度も試行錯誤し、自分の中で作ることのできたイメージと能力の上では一番最良のものが出来たと思っている。 しかしまだまだ改良の余地はあるし、もっとプログラムの完成度を高くして確実な運用が可能になるようにする必要があるし、そういった確実な動きをするようなロボットを目指す必要があると思った。また、作っていく中で今までの中で一番製作時間をかけ、何度も組み替えてきたが全然足りないことを知った、もしほんとうに動くものを作るには、さらにたくさんの努力と経験の積み重ねをしなければいけないと思った。今後いろいろな言語を学んでいくことになると思うが、繰り返し書いて動かしてみるといった反復と、一度できたからここまででいいやという、そこで諦めてしまうようなものづくりをしないようにしたいと思った。 授業が終わってみて感じるのは、まだまだ積み重ねるべきことは多くさらに多くの挑戦をしたいという事だ。