[[2008b/MemberOnly/進行状況A]] *目次 [#r1303b76] #contents *ロボコン 〜男たちの戦い〜(BGM 地上の星) [#l0fbf57d] CENTER:製作者:たきさ 零崎 Y田 今回我々が挑むロボコンの課題はhttp://yakushi.shinshu-u.ac.jp/robotics/?2008b%2F%A5%ED%A5%DC%A5%B3%A5%F3 である。期末テストで単位が危ないなか私たち三人の戦いは始まった。 *空き缶を掴むコンセプト [#f0e43a5b] まず考えられる空き缶の取り方は -一つずつ掴んでもってかえる -一気に四つもってかえる の二つが考えられます。 前者の利点は今回のロボコンでは時間無制限であるので何回でも取り直しが可能なのと、ロボットが大きくならないのでステージ内を細かく動くことができること、また複数個展開できることが考えられます。しかし、ロボット同士の連携やステージが複雑なことを考えるとデメリットの方が大きいと思われたので我々は後者の四つ 一気に持っていくことロボットを作る方針で制作を進めていきました。 *ロボット作ります [#o94f0c6c] -ドライブベース担当零崎 ドライブベース担当しました、零崎です。車体をなるべく低くして、かつタイヤを大きく間をとった形にしギアを大きくかませ移動するスピードをわざと押さえました。これにより空き缶へのアプローチの際の誤差を減らそうという試みでした。 -アーム担当Y田 アーム担当はY田。四つ一気に持っていけるよう安定性+高さの要求を見事にクリア。本人曰くエ○ンゲリオン初号機の足をイメージだそうです。接地面積をふやし摩擦をあげ、一番下と一番上にはタイヤを装着し少ないパーツでアームを完成させることができました。 -アーム上昇機構+我がチームの生ける神 たきさ この男がいなければロボコンとか絶対むりだったであろう、いつもは雲の上にいる(はず)の絶対神。上昇機構の歯車の噛み合わせに奮闘を続けた。 *マシン紹介 [#s77398f2] COLOR(#808080):&ref(2008b/A7/ロボコン/ma.jpg,50%,); こちらがマシン全体図。かなりでかくてそして重い。今大会最重量だったらしく他を圧倒するほど。ただしでかすぎてコースにつまる・・・ COLOR(#808080):&ref(2008b/A7/ロボコン/yoko.jpg,50%,); こちらはドライブベース正面画像。これがマシン全体の重量を支えることになるので一本の長いブロックを多用した COLOR(#808080):&ref(2008b/A7/ロボコン/aa.jpg,50%,); こちらはドライブベースの横からの画像。ギアを大きくしてゆっくり動きかつ重い全体を支えながら走れる用にがっちりした造りに COLOR(#808080):&ref(2008b/A7/ロボコン/armA.jpg,50%,); こちらがアーム。ごちゃごちゃした見た目とは裏腹にかなりの精度を誇ります。 COLOR(#808080):&ref(2008b/A7/ロボコン/ita.jpg,50%,); こちらはRCXの連携のためのひと工夫。反射板を設置することで向かい合っていなくても通信が可能に。これにより様々な場所にRCXを設置可能となる COLOR(#808080):&ref(2008b/A7/ロボコン/kaiten.jpg,50%,); こちらは回転センサー。ドライブベースの右後輪に取り付けられる。これがわがチームのプログラムの最大のかなめとなる *モータ・センサに対応する端子 [#r948cb6c] モータ、センサについては以下の端子に接続してあります。 RCX(1) -出力側 A端子 → モータ:タイヤ(正回転:前進,逆回転:後進) B端子 → 使用せず C端子 → モータ:タイヤ(正回転:前進,逆回転:後進) -入力側 1端子 → 回転センサ(前進:値=正、後進:値=負) 2端子 → 光センサ(左){未使用} 3端子 → 光センサ(右){未使用} RCX(2) -出力側 A端子 → モータ:アーム(正回転:開く,逆回転:閉じる) B端子 → 使用せず C端子 → モータ:上下機構{未使用} -入力側 1端子 → アームのタッチセンサ{未使用} 2端子 → 使用せず 3端子 → 使用せず *作戦ルート [#rbae52a6] これが我々のマシンの作戦ルートです(途中微調整をして若干異なりますが)。時間がなかったため、光センサなどを使用せず、 タイヤと直結した回転センサを駆使して缶、そしてゴールまで行こうと 思いましたが、その結果、初期位置が最も重要となりました。 赤線:往路 青線:復路 COLOR(#808080):&ref(2008b/A7/ロボコン/ロボコン_ルート.jpg,50%,);| *プログラム [#q09064af] RCX(1)のプログラム void move_fwd(int t){ //前進する関数:回転センサの値が入力された値 //(t)以上になったら止まる ClearSensor(SENSOR_1); OnFwd(OUT_A + OUT_C); until(SENSOR_1 >= t); Off(OUT_A + OUT_C); } void move_rev(int t){ //後進する関数:回転センサの値が入力された値 //の負の値(-t)以下になったら止まる ClearSensor(SENSOR_1); OnRev(OUT_A + OUT_C); until(SENSOR_1 <= -t); Off(OUT_A + OUT_C); } void move_rig(int t){ //右折する関数:回転センサの値が入力された値 //の負の値(-t)以下になったら止まる ClearSensor(SENSOR_1); OnFwd(OUT_A); OnRev(OUT_C); until(SENSOR_1 <= -t); Off(OUT_A + OUT_C); } void move_lef(int t){ //左折する関数回転センサの値が入力された値 //(t)以上になったら止まる ClearSensor(SENSOR_1); OnFwd(OUT_C); OnRev(OUT_A); until(SENSOR_1 >= t); Off(OUT_A + OUT_C); } task main(){ SetSensor(SENSOR_1,SENSOR_ROTATION); ClearMessage(); move_fwd(24); //前進 move_lef(13); //左折 move_fwd(30); //前進 move_rig(20); //右折 move_fwd(36); //前進 move_lef(8); //左折 move_fwd(25); //前進 move_lef(20); //左折 move_fwd(18); //前進 move_rig(7); //右折 SendMessage(1); //RCX(2)にメッセージ(値:1)を送る until(Message() == 3); //RCX(2)からメッセージ(値:3)を送られるまで待機 ClearMessage(); move_fwd(10); //前進 SendMessage(5); //RCX(2)にメッセージ(値:5)を送る until(Message() == 7); //RCX(2)からメッセージ(値:7)を送られるまで待機 ClearMessage(); move_rev(12); //後進 move_lef(6); //左折 move_rev(15); //後進 move_rig(6); //右折 move_rev(5); //後進 move_rig(7); //右折 move_rev(4); //後進 move_rig(7); //右折 move_rev(25); //後進 move_rig(9); //右折 move_rev(33); //後進 move_lef(20); //左折 move_rev(15); //後進 move_lef(20); //左折 move_fwd(30); //前進 SendMessage(9); //RCX(2)にメッセージ(値:9)を送る } RCX(2)のプログラム task main(){ ClearMessage(); until (Message() == 1); //RCX(1)からメッセージ(値:1)を送られるまで待機 ClearMessage(); OnFwd(OUT_A); //アームを開く Wait(90); Off(OUT_A); SendMessage(3); //RCX(1)にメッセージ(値:3)を送る ClearMessage(); until(Message() == 5); //RCX(1)からメッセージ(値:5)を送られるまで待機 ClearMessage(); OnRev(OUT_A); //アームを閉じる Wait(85); Off(OUT_A); SendMessage(7); //RCX(1)にメッセージ(値:7)を送る until(Message() == 9); //RCX(1)からメッセージ(値:9)を送られるまで待機 ClearMessage(); OnFwd(OUT_A); //アームを開く Wait(90); Off(OUT_A); } *ロボコン中の様子 [#o8bb5526] 缶が少しかぶりますが・・・ご了承ください COLOR(#808080):&ref(2008b/A7/ロボコン/ロボコン1.jpg,50%,); 途中まで順調に走行するものの COLOR(#808080):&ref(2008b/A7/ロボコン/ロボコン2.jpg,50%,); ここで引っかかってしまう! COLOR(#808080):&ref(2008b/A7/ロボコン/ロボコン3.jpg,50%,); しかしここで壁を登りはじめ COLOR(#808080):&ref(2008b/A7/ロボコン/ロボコン4.jpg,50%,); なんと立った! COLOR(#808080):&ref(2008b/A7/ロボコン/ロボコン5.jpg,50%,); この後マイペース(?)にもアームを開閉し COLOR(#808080):&ref(2008b/A7/ロボコン/ロボコン6.jpg,50%,); ウィリーを続け COLOR(#808080):&ref(2008b/A7/ロボコン/ロボコン7.jpg,50%,); ついに限界。着地 この間8秒もウィリーをした!! 会場は大いに盛り上がりましたが、結局缶には触れられず・・・ しかしこのパフォーマンスのおかげで 点数は10.4でなんと5位!!!!! *ロボコンが終って [#je47133e] -反省点としてはまずマシンに無駄なパーツがありすぎたこと。プログラムと一緒でロボットも最初作り上げたあとに余分なパーツを削っていった方がより良いロボットになったはず。そこまで頭が回らなかったため最後の方はパーツが足りず微調整に苦しんでしまいました。よりよいロボットに対する執着心がたりなかった。 -電力によってマシンのパフォーマンスが違ってくることがかなり影響を及ぼしました。特に私たちのマシンは重いためこれがかなり響いた様子。今までの課題ではこのような大型を作っていなかった為に発生したミスかと思われる。 之の対策としては1タイムに頼らずにセンサー類で決定してしまう。 2 ロボットを計量化して誤差を減らす 3電力は常にMAX付近を保つ 等が考えられました。 このような反省点が上がりました。これから先に役立てていきたいと思います! *チームからの一言 [#w6317337] -零崎です!ロボットって思っていたよりもかなり幼稚できっちり人間がプログラムをしなければいけないんだなぁ、と身をもって実感しました。長いようで早かったこの授業、学ぶ所がおおく、何よりも楽しかったです。チームの皆、ふがいない俺をサポートしてくれて本当にありがとう! -たきさです。アームの上下機構の制作に十数時間かけて色々、それはもう色々やりましたが、結局無駄にでかいだけの役立たず以下に終わってしまいました。正直これだけの時間を他のことに費やせば、それこそフィールドの壁を乗り越える反則ギリギリのことまでできそうでした。そのほかにも色々ありましたが、楽しくマシン製作できました。最後に、講義の先生やTAの方々、そして一番迷惑をかけたチームのみんなに感謝して終わりにしたいと思います。ありがとうございました。 *コメントしてくれなくたって、さびしくなんてないんだからね!! [#y74bb53e] #comment