#contents
*課題3について [#od4ba0be]
**日時・場所 [#tf1694b5]
***日時 [#c5f7b2c6]
2017年8月7日 13:00〜
***場所 [#kccaf78d]
未定
20番教室
***予定 [#r32e1c0b]
13:00〜13:10 (競技の説明と各係の選出)
13:10〜13:40 (リハーサル)
13:40〜14:00 (調整)
14:00〜15:00 (競技)
15:00〜 (後かたづけ)

**課題 [#lfd69794]
空き缶を収集し、ゴールに空き缶をなるべく高く積み上げる
#ref(2017a-mission3.png)
フィールドの説明
フィールドは課題2で使用した紙を使用する
図のピンク色の場所に350mlの空き缶を置く
図のライトブルーの円のいずれか一箇所に中身の入った350mlの缶を置く
中身の入った缶には紙をはったり図などを描いてもよい

**ルール [#lbc9b0de]
***基本ルール [#be864c55]
競技時間は審判が続行不能と判断するまで、あるいはリタイアするまで。
図のA地点または(および)PQRSで囲まれた中央部の円からスタートする。ただし接地している部分はそれぞれの領域内に収まるものとする(線上はOK)。上空部分は領域からはみ出していてもよい。
空き缶を集めて図のT地点を含む「ゴール」と書かれた3/4円と2線分で囲まれる領域に空き缶を運ぶ
なるべく高く空き缶を積み上げる
運び終わった後、あるいは積み上げた後はロボットはゴールの領域から外に出ること。また空き缶と接触していてはいけない。
開始の合図から5秒以内にスタートボタンを押す作業を完了すること。
競技が終了するまで、ロボットに触ったり人間が遠隔で操作してはならない。
ロボットスタート後、速やかに1〜3の数字が記されたくじを引き、中身の入った缶を引いたくじの位置に設置する。
途中でうまく動かなくなった場合、1回限り再スタートすることができる(再スタートの際に別プログラムで起動してよい)。
***基本得点の計算方法 (片道) [#wd9f3c8d]
n段目の空き缶の点数を3n点とし、すべての空き缶の点数を合計する。
中身の入った缶については、その缶自身を含め、その缶の上下に積まれている缶の点数をすべて倍にする
例:中身の入った缶の上に3本の空き缶を積んだ場合:(3+6+9+12)×2 = 60点
例:空き缶を3段と4段に分けて積み、中身の入った缶は運搬するだけでその上に空き缶を積まなかった場合: (3+6+9) + (3+6+9+12) + 3x2 = 54点
技術点の計算方法
以下の動作の精度・スピード・確実性などを含めた技術的な工夫や芸術性について他の全てのチーム(5チーム)が20点満点で採点し、その平均点を求める。 
***得点の目安 [#ta16e267]
空き缶を取りにいくまでの動作 (3点)
空き缶を掴む動作 (3点)
空き缶をを運ぶ動作(2点)
空き缶を積み上げる動作(5点)
2台のRCXまたはNXT、EV3の連携の良さ(3点)
自立型のロボットとしての形や動作の美しさ、斬新さ(2点)
その他 (2点)
**各係など [#p037257e]
司会・審判 (2人)
司会進行、開始・終了の合図と基本得点の計算
得点の集計係 (1人)
技術点を集計する
採点の報告係 (各チーム1人)
採点した点数を集計係に連絡する
*ロボットについて [#o7ecdb74]
**過去の試作品 [#v0f5f459]
#ref(過去アーム改.jpg)
まず、初めに自分たちは2つのロボットに分けて片方を缶の収集、もう片方を缶の持ち上げおよび積み上げで行おうとした。しかし、ひとつの機械にはモーターが3つまでしか接続できず、持ち上げおよび積み上げを行うロボットが車輪2つにアームの閉じ開き、アームの上げ下げ、とモーターが4つ必要となったので断念した。
次にロボット1台にまとめて、缶の収集、持ち上げ、積み上げを行おうとした。写真のようにアームの内側にタイヤを設置して、タイヤの摩擦を利用して持ち上げることにしたが、持ち上げることにまでは成功したが、もう一つの缶の上に持っていくことが不可能だということが判明した。そこで、次に上だけ固定し、下だけ動かせるようにした。結果持ち上げることともう一つの缶の上にまで持っていくことは可能になったが持ち上げていた缶を下すときにバランスを崩してしまうことを改善できなかったので断念した。
次にロボット1台にまとめて、缶の収集、持ち上げ、積み上げを行おうとした。
#ref(リフト様子改.jpg)
写真のようにアームの内側にタイヤを設置して、タイヤの摩擦を利用して持ち上げることにしたが、持ち上げることにまでは成功したが、もう一つの缶の上に持っていくことが不可能だということが判明した。そこで、次に上だけ固定し、下だけ動かせるようにした。
#ref(リフト改.jpg)
結果持ち上げることともう一つの缶の上にまで持っていくことは可能になったが持ち上げていた缶を下すときにバランスを崩してしまうことを改善できなかったので断念した。
**完成品 [#rdf25915]
時間の都合でとても簡易的なものとした。
***第1機 [#l8d4f8ad]
***第2機 [#q583bd8b]
時間の都合でとても簡易的なものとした。本番は失敗してしまったが理想としては写真のように収集機が集めたところに整形機で形を整えて最大数の缶(12本)を集めるはずだった。
#ref(完成改.jpg)
***収集機 [#l8d4f8ad]
#ref(収集全体改.jpg)
缶を収集するときに良い具合に並べられるようにするために下の写真のような形のアームをとりつけることで、ゴール地点に最大数の缶(12本)を集めることを目標とした。
#ref(収集工夫改.jpg)
***整形機 [#q583bd8b]
#ref(整形全体改.jpg)
下の写真のように左アームで余分な缶を排除し、上でも言った通り右アームで最後形を整える。
#ref(整形アーム改.jpg)
*プログラムについて [#q12a0caa]
**定義(第1機) [#oeb3c6fb]
**メインタスク(第1機) [#w50ca30e]
**定義(第2機) [#t0517318]
**メインタスク(第2機) [#tf24ef1f]
**メインタスク(収集機) [#w50ca30e]
 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);
 } 
**定義(整形機) [#t0517318]
 #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);
**メインタスク(整形機) [#tf24ef1f]
 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);
 } 
*結果 [#k9397ecb]
15.6点で12組中8位だった。
*感想及び反省 [#c0cd652a]
試作品はそこそこいいものが作れそうだと思ったが、プログラミングをする時間を考えると無理があった。だから、テスト期間中も少しは進めておくべきだと思った。


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS