[[2017a/Member]] 目次 #contents *課題 [#d10260fb] **課題内容 [#u21d2cc5] 空き缶を収集し、ゴールに空き缶をなるべく高く積み上げる。 #ref(./2017a-mission3.png,80%) フィールドの説明 フィールドは課題2で使用した紙を使用する 図のピンク色の場所に350mlの空き缶を置く 図のライトブルーの円のいずれか一箇所に中身の入った350mlの缶を置く 中身の入った缶には紙をはったり図などを描いてもよい **ルール [#me5a277d] 基本ルール 競技時間は審判が続行不能と判断するまで、あるいはリタイアするまで。 図のA地点または(および)PQRSで囲まれた中央部の円からスタートする。ただし接地している部分はそれぞれの領域内に収まるものとする(線上はOK)。上空部分は領域からはみ出していてもよい。 空き缶を集めて図のT地点を含む「ゴール」と書かれた3/4円と2線分で囲まれる領域に空き缶を運ぶ なるべく高く空き缶を積み上げる 運び終わった後、あるいは積み上げた後はロボットはゴールの領域から外に出ること。また空き缶と接触していてはいけない。 開始の合図から5秒以内にスタートボタンを押す作業を完了すること。 競技が終了するまで、ロボットに触ったり人間が遠隔で操作してはならない。 ロボットスタート後、速やかに1〜3の数字が記されたくじを引き、中身の入った缶を引いたくじの位置に設置する。 途中でうまく動かなくなった場合、1回限り再スタートすることができる(再スタートの際に別プログラムで起動してよい)。 基本得点の計算方法 (片道) n段目の空き缶の点数を3n点とし、すべての空き缶の点数を合計する 。 中身の入った缶については、その缶自身を含め、その缶の上下に積まれている缶の点数をすべて倍にする 例:中身の入った缶の上に3本の空き缶を積んだ場合:(3+6+9+12)×2 = 60点 例:空き缶を3段と4段に分けて積み、中身の入った缶は運搬するだけでその上に空き缶を積まなかった場合: (3+6+9) + (3+6+9+12) + 3x2 = 54点 技術点の計算方法 以下の動作の精度・スピード・確実性などを含めた技術的な工夫や芸術性について他の全てのチーム(5チーム)が20点満点で採点し、その平均点を求める。 得点の目安: 空き缶を取りにいくまでの動作 (3点) 空き缶を掴む動作 (3点) 空き缶をを運ぶ動作(2点) 空き缶を積み上げる動作(5点) 2台のRCXまたはNXT、EV3の連携の良さ(3点) 自立型のロボットとしての形や動作の美しさ、斬新さ(2点) その他 (2点) **係分担 [#t7619a9c] 司会・審判 (2人) 司会進行、開始・終了の合図と基本得点の計算 得点の集計係 (1人) 技術点を集計する 採点の報告係 (各チーム1人) 採点した点数を集計係に連絡する **日時 [#x3eeb820] 2017年8月7日 13:00〜 13:00〜13:10 (競技の説明と各係の選出) 13:10〜13:40 (リハーサル) 13:40〜14:00 (調整) 14:00〜15:00 (競技) 15:00〜 (後かたづけ) *ロボットについて [#x40a5d22] **試作品 [#za442442] #ref(./過去アーム改.jpg,120%) 2つのロボットを作り、片方を缶の収集、もう片方を缶の積み上げに分担することを試みた。 しかしモーターの数が合わず、これらを1台で行えるロボットの製作を試みた。 #ref(./リフト改.jpg,120%) 缶の持ち上げに成功したものの、バランスが悪く積み上げることは難しいと判断した。 #ref(./リフト様子改.jpg,120%) **完成品 [#c5655bca] 缶の収集機と缶の整形機の2つを製作した。 #ref(./完成改.jpg,120%) ***収集機 [#m9c620a7] #ref(./収集工夫改.jpg,120%) アームの取り付け方を写真のようにすることで缶をできるだけ多く運べるようにした。 #ref(./収集全体改.jpg,120%) ***整形機 [#vfacaae7] #ref(./整形全体改.jpg,120%) 左アームで余分な缶を除き、右アームで缶を整形する。 #ref(./整形アーム改.jpg,120%) *プログラムについて [#o2c680cc] **収集機 [#n64789be] task main() { OnFwd(OUT_AB,20); Wait(7800); Off(OUT_AB); OnFwd(OUT_A,20); Wait(3670); Off(OUT_A); OnFwd(OUT_AB,20); Wait(3100); Off(OUT_AB); Wait(6000); OnFwd(OUT_A,-20); Wait(1500); Off(OUT_A); OnFwd(OUT_AB,-35); Wait(1000); Off(OUT_AB); } **整形機 [#n624b7b7] #define speed1 20 #define speed2 50 #define speed3 -20 #define speed4 -50 #define go OnFwd(OUT_BC,speed1); #define back OnFwd(OUT_BC,speed3); #define turnL OnFwd(OUT_B,speed2); #define turnR OnFwd(OUT_C,speed2); #define turnLB OnFwd(OUT_B,speed4);OnFwd(OUT_C,speed3); #define turnRB OnFwd(OUT_C,speed4);OnFwd(OUT_B,speed3); #define close OnFwd(OUT_A,speed2); #define open OnFwd(OUT_A,speed4); task main() { Wait(8500); turnLB; Wait(2000); Off(OUT_BC); back; Wait(2500); Off(OUT_BC); turnL; Wait(780); Off(OUT_C); open; Wait(300); Off(OUT_A); go; Wait(5600); back; Wait(3000); } *結果 [#o5974d87] 基本点6.0点、技術点10.5点で合計16.5点で全12組中8位 *反省・感想 [#ncf4bc4a] 自分は都合が悪く参加できなかったが、メンバーが後日プログラミングについて詳細を教えてくれたり、結果について教えてくれたりした。 自分が最初に組んでいたロボットの構想とは全く異なる収集と整形でロボットを分担させるという斬新なアイディアを考えてくれてとても驚いた。 メンバーの3人には課題1からアドバイスをくれたり相談に乗ってくれたりと、感謝の気持ちでいっぱいです。