[[2008a/A9]] *目次 [#o7d81a6e] #contents *ロボコンのルール [#xabf8d44] ~ボールを、それぞれ向きの違う棒に挟まれた状態から運びだし、4箇所あるゴールの箱に入れる。 ~競技時間は審判が続行不能と判断するまで、あるいはリタイアするまで。 ~4隅のコーナー(半径30cmの1/4円)のいずれかからスタートする。 ~スタート時のロボットは2個を越えないこと (スタート後はいくつに分裂してもかまわない)。 ~開始の合図から5秒以内にRCXのスタートボタンを押す作業を完了すること。 ~競技が終了するまで、ロボットに触ったり人間が遠隔で操作してはならない。 ~途中でうまく動かなくなった場合、1回限り再スタートすることができる(再スタートの際に別プログラムで起動してよい)。 ~(ロボコンの説明ページ。基本ルールから抜粋) *作戦とロボットのコンセプト [#ydf71f95] ~今回のロボコンに対してのロボットは、当初、他のチームと同様にアームでボールを持ち上げて運ぶというタイプを考えていました。 ~しかし、この方法はボールを取り、なおかつ正確にゴールまで運ぶという事が必要です。 ~他のチームは、自分たちのチームよりも早くロボットを形作っていたところもあり、それらのチームのロボットのフィールド上での動きを見て、 ~このタイプのロボットは一つのボールをゴールさせるのも難しいと感じました。 ~そのため、まったく別のアイディアで挑戦しました。 #ref(2008a/A9/ロボコン/説明.jpg) ~そのアイディアの概要がこの図です。 ~役割の違う二台のロボットを用意します。 ~図の右側にあるのがガイドロボット ~これで、右側のボールのある木枠から直接ゴールまでをつなげることができます。 ~そして、つないだ後に左側のロボットをスタートさせ後ろから木枠に沿って一気にボールを押し出しゴールにボールを入れる。 ~そんな作戦です。 *各ロボットの説明とそれぞれのプログラミング。 [#d86d4f6a] **ガイドロボットについて [#y711d9f2] #ref(2008a/A9/ロボコン/P2008_0804_145043.JPG,40%) ~ガイドロボットはデザイン、構造ともに単純です。 ~ボールと、ボールを押すロボットが通れるだけの高さ、幅を用意してやれば、それでほぼ完成となります。 ~しかし、このロボットは、逆にその単純な構造故に脆く、さまざまな補強を加えてあります。 #ref(2008a/A9/ロボコン/P2008_0804_145135.JPG,30%) ~上の写真を見ると分かるようにいくつかの補強を行っています。 ~このような補強をしなければならない理由は、中が完全に空洞なためです。 #ref(2008a/A9/ロボコン/P2008_0804_145102.JPG,40%) ~この写真を見ると分かる通り、完全に空洞です。 ~つまり、左右の壁と上部の板のみで補強しなければならないという事です。 ~この程度の耐久性で本番に耐えれるのか心配でしたが、何とか無事に壊れなかった事は補強が上手くいったと思います。 **ガイドロボットのプログラミング [#vcdcb736] ~このガイドロボットのプログラムは、単純に前進するのみ。 ~手を加えた点と言えば、木枠との距離から走る時間を調節した程度。 なので、省略させていただきます。 ~本来は、センサーを付けて動かすのが筋なのでしょうが、他のメンバーが忙しく実質一人での作業になってしまったため、簡略化しました。 ~ですが、その代り、木枠にぶつかったら止まるように物理的な構造改良(上の写真の紫のパイプ部分や、写真じゃ分かりにくいですが、左右の壁の出っ張り具合の違い)で成功確率の上がるように改良を加えています。 ~本番において、しっかりとガイドの役割をなしたので上手くいったと思います。 **押し出すロボットについて [#afd2dbbd] ~押し出すロボットは下の写真のような構造になっています。 #ref(2008a/A9/ロボコン/P2008_0804_144828.JPG,40%) ~このロボットは、木枠の間を通り抜けられるように、かなり小さいスペースにモーターとRCX本体、光センサーを取り付けています。 ~この小型構造のおかげで、上記のガイドロボットの間も通り抜けられるようになっています。 #ref(2008a/A9/ロボコン/P2008_0804_145504.JPG,40%) ~ただし、光センサーは、ガイドロボットの両側の壁に入りきらないので、その時点で外れます。 ~物理的にぶつかった衝撃で外れるという事ですが、外れやすい構造になっています。 ~このロボットは、この部分だけじゃなく、すべての部分が壊れやすいです。 ~このサイズに機能を詰め込んだせいもありますが、何よりも、RCX本体とモーター部分の付け根が弱く、前後のモーターのどちらか片方だけ動いたり、 ~といった負荷で簡単に崩壊します。 #ref(2008a/A9/ロボコン/P2008_0804_154330.JPG,20%) ~構造上の問題点はこれだけではなく、前輪、後輪ともに左右のタイヤの距離が近い事、またタイヤがゴムである事の二点のせいで、方向転換も上手に行う事ができません。 ~本番直前にこの問題の原因に気付いたため本体の改善が間に合わなかったのは残念です。 **押し出すロボットのプログラム [#zb374eb9] ~この押し出すロボットのプログラムは、三段構造になっています。 ~一つ目は、単純に前進する部分。 ~これは、一番外側のラインに光センサーが反応するのを防ぐためです。 ~次に、少しの間一時停止します。 ~これは、テスト段階で、どの部分でプログラムがうまくいっていないかを確認するためのモノで、結局本番でもこのプログラムを残しました。 ~最後のプログラムは、木枠の間に入るためのモノです。 ~ある程度の勢いがあれば、若干のズレは何とかなると考え、アバウトなモノになっています。 task main () {SetPower(OUT_A,3); SetPower(OUT_B,3); SetSensor(SENSOR_1,SENSOR_LIGHT); SetSensor(SENSOR_3,SENSOR_LIGHT); start s_route; } task s_route() /外側のルートをスルーするためのプログラム。 { OnFwd(OUT_A+OUT_B); Wait(50); Off(OUT_A+OUT_B); start wait; stop s_route; } task wait() /一定時間止まるプログラム { Off(OUT_A+OUT_B); Wait(100); start p_ball; stop wait; } task p_ball() /木枠に入るためのプログラム { while (true) { OnFwd(OUT_A+OUT_B); if ((SENSOR_1<40)&&(SENSOR_3>45)) { OnRev(OUT_A); OnFwd(OUT_B); } if ((SENSOR_1>40)&&(SENSOR_3<45)) { OnRev(OUT_B); OnFwd(OUT_A); } if ((SENSOR_1<40)&&(SENSOR_3<45)) { OnFwd(OUT_A); OnRev(OUT_B); }} } ~木枠に入るためのプログラムは、光センサを利用した方向転換を行いますが、 ~本番では上手く働かないという結果になってしまいました。 *反省、感想、総まとめ [#r52026f6] ~なんとか、本番のロボコンをこなす事が出来たのが一番安心しました。 ~本番では、ゴールを決めることはできませんでしたし、ミスも目立ちましたが、ロボットを出したときの見てる側の発想に対する驚きのようなモノを感じる事が出来たので満足です。 ~また、実際、それなりに点をもらえた事も予想外ですがよかったです。 ~ ~ ~ホームページ及びプログラム作成 ユウキ