2007a/MemberOnly/進行状況A

ロボコン!!

  • ルール等、ロボコンの詳細はこちら

''製作者:クノピー、座敷童、ハネウマ、たまちゃん、ネタ切れ''

方針決定

  • ''方針''
    上から順に緑、緑、白の3段積みを2つ作る!という方針で、目指すは52点!…ですが。

予定のコースは↓↓↓

コース.JPG

結果〜は・・・26点で2位。前半の3段積みが1つで終了。

当初は、やはり最難題と思われる緑4段の60点を目指そうかということだったが、一度失敗したら、緑を再び集めるのは困難で、精密に動かす必要があるため時間的にも再挑戦できず、ハイリスクなのではないかという結論に達した。

そこで、三段を二つ作るということを考えた。緑緑白の3段は26点。これを二つで52点となる。これなら、十分勝負になるのではないか?しかし、この方法にもやはり、時間的束縛や最収集の困難がある。確実かつ素早い動作が必要である。

ロボットの製作

・車部分の機構

今回は、その場でのターンが必要だったので、三輪機構やディファレンシャルギアを使った機構を避け、何時も通りに初の車を作ることにした。そして、その車に、本体を取り付ける所(車前方部)とアームを装着させるためのタワーの付け根(車上部)を取り付けた。

zeroliner.jpg

ちなみに、このタワーの付け根は車から直接生えているので、LEGOを重ねたものより壊れにくくなっている。

ジョイント.jpg

・アーム部分

今回のロボコンで箱を積み、運ぶための装置。

アーム2改.jpg
  • 箱を、回転するキャタピラに押し付けることにより上昇させるアームを考える。
  • 回転するキャタピラとそこに押し付けるためのアーム、また保持した箱を落とさないためのアームが必要になるため、回転アーム、捕獲アーム、保持アームの三つのアームを取り付けた。
    アーム3説明.jpg
  • 回転アームは一個目、二個目の箱を保持するときにも回転している必要があるので、上部と下部に分け、上部の回転アームは一個目の箱を保持するときにのみ使用し、下部は回転し続けることができるようにした。
    キャタピラー2.jpg

そしてこうなる。

保持方法2.jpg

� 『捕獲アーム』によって『回転アーム下』に箱を押し付ける。回転アームはその名のとおり回転しているので、ブロックは上へ上へと上昇していく。

� ある程度上昇したら、『保持アーム』により圧力をかけ、落ちていかないようにする。

� このとき回転アームは回転がかけられいるので、箱はさらに上昇する。そして『回転アーム上』まで運ばれる。

  • 『回転アーム上』は『回転アーム下』とは独立しているので、箱を保持するために回転を上のみ止めても、下は回転させ続けることができる。これにより、二個目も一個目の保持のために、キャタピラが回転できなくなるという不具合に邪魔されることなく保持することができるのである。

また、当初は『保持アーム』のタイヤとキャタピラの軸は直線上にあったが、それでは握力が足りないので、軸を薄いLEGO一枚分ずらすことにより、『保持アーム』と回転アームとの間に生じる握力を増強した。

ズレ.jpg

・ウォームギア

ここで、保持アームと捕獲アームは強力な握力が必要であり、アームの重量も大きくなったため、強い力が必要になった。そのため、ただモータを接続するのではなくウォームギアという機構を取り入れた。

ウォームギア2.jpg

これは、下のドリルのような部分が回転すると、そのドリルの部分がギアの歯を押す。これにより、ギアにはゆっくりだが強い力が働く。また、この機構では、ギアを回転させてもドリル部分は回転しないので、モーターを止めても落ちてくる心配がない。

・バンパー

ライントレースをさせるため、光学センサを取り付けた。今回のライントレース方法は交差点などもあり特殊なので、車の前方中心にメインのライントレース用にセンサを一つ(赤)、左側に張り出したところに交差点認識用にもう一つの光学センサ(黄色)を取り付けた。

工学センサ.jpg

そして車の前方で箱との接触を感知させないといけないので、タッチセンサーを取り付けた。当初はただ前方にタッチセンサ−を取り付けただけだったが、これでは感度が悪い。そこで、てこの原理を利用したバンパーを取り付けた。

バンパー2.jpg

・本体部分

今回では、本体同士の通信が必要だったので、ふたつの本体の送受信部分を対面になるよう密接させ、長い一つの本体として利用できるような構造にし、上記の角のような部分に挟みこむ形で固定した。これにより、アームによって後ろ向き気味だった重心を是正することができる。

プログラム

2台のRCXそれぞれの動きと箱の搭載

  • 上側のRCX→箱の搭載など
  • 下側のRCX→移動、ライントレース、箱の感知
流れ.JPG

''箱の搭載プログラムはこちら''

ライントレース

今回は、センサーの使い方などが自由なので、センサーを1つでライントレース、1つで箱の感知、1つで交差点の認識に使いました。

交差点認識.JPG

''その他、センサーについてはこちら''

方向転換について

  • 90度曲がる
    必要な調整→方向転換後も線上にいられるように''0.7秒前進''してから方向転換する。
  • 180度曲がる
    必要な調整→方向転換中に、搭載しようとしている箱を巻き込む可能性がある。そうすると箱の搭載に失敗してしまうので、''0.5秒後退''してから方向転換をする。

''ポイント'':今回は、時間指定での方向転換だと誤差の積み重なりでうまく動かなくなることが考えられるため、方向転換は時間ではなく線をまたいだ回数で考えることにしました。(ロボコン前日に松本先生からご指摘いただいてこの方針に変更しました〜。)

方向転換.JPG

出来たプログラムの例は↓

/*field_colorが白から黒になったときにturn_countを1増やす*/
#define MOTOR(OUT_A+OUT_C)
#define THRESHOLD 40
int field_color;              //白を1、黒を0とする
int turn_count;
int turn_count2;
sub turn_right()       
{
turn_count2=2;                //2回線を踏む(180度方向転換)
turn_count=0;
field_color=0;
while(turn_count=<turn_count2){ //turn_count2になるまでの間
 OnFwd(OUT_A);OnRev(OUT_C);
 if(field_color==0){          //最終色が黒の場合
   if(SENSOR_1>THRESHOLD){    //センサが白を感知
      field_color=1;
   }else{           //センサが黒を感知
      field_color=0;
   }
 }if(field_color==1){         //最終色が白の場合
   if(SENSOR_1>THRESHOLD){  //センサが白を感知
      field_color=1;
   }if(SENSOR_1<THRESHOLD){  //センサが黒を感知
      turn_count++;      //turn_countを1増やす
      field_color=0;
   }
  }
 }
Off(OUT_A+OUT_C);
}

全体の流れ・プログラム

以上の事を含め、全体の流れを書くと以下の様になる。

  • ''完成したプログラム'' 長いのでこれも別ページへ。→こちら

苦労・工夫した点

  • 箱が軽いため、タッチセンサで感知させる点で苦労しました。
  • LEGOの規格が箱の規格とぴったり合っているわけであないので、その誤差を修正するために、保持アームに工夫を凝らした。
  • 一つ目の箱と二つ目の箱の保持で動作を変えることで、先に積んだ箱がこぼれ落ちないように保持した状態のまま移動や次の箱の保持ができるようなアームを考えたこと。
  • しかし、このアームは大きくなりすぎたので、車に取り付けるのは困難だった。そこで、車の換装機構ではなく、本体から直接アームを生やすことで、この不具合を修正した。
  • いつものようにバランスが悪くなったため、本体の位置を工夫した。
  • テスト期間なのをいいことにぎりぎりまでプログラムの準備を始めなかった駄目な子がいたため、当日までに準備がおわりませんでした。(ごめんなさい byネタ切れ)
  • 動作時間もプログラムも長くなるため、誤差の蓄積が大きな問題となるため、方向転換に時間指定を使うことができない。
      →ロボットの光センサの感知する色の違いをカウントさせることで方向転換。
  • スタート位置は自由だが、箱を初期位置から動かしてはならないということだったので、行ったり来たりの動作になってしまった。が、はじめから、箱を除去してよいのであれば、これほど複雑にはならなかったのでは?と思う。それに、一回目と二回目でいきなりルールを変えられても準備する時間は無く、ルールは早めに決めてほしかった。

感想

  • 今回は主にアシストしかできませんでした。ロボコンでは、三段積みが成功してよかったです。(座敷童)
  • あまりチームの力になれませんでしたが、3段積みが成功した時には本当に感動しました。すばらしい実力を持ったみんなに感謝です。(たまちゃん)
  • 今回なんの戦力にもなりませんでしたが、とにかくみんなのおかげで成功することができ本当に良かったです。(ハネウマ)
  • 自分がロボット作りをギリギリまでサボったせいで、みんなにはとても迷惑をかけてしまいました。もっと早めに作っていれば、プログラムの調整もしやすかっただろうと思うと悔やまれて仕方がないです。本当にすみませんでした。(クノピー)
  • 時間があるとどうにもだらけてしまい、プログラムを書き始めたのがロボコン3日前?くらいでした。もう1日早く作っていれば後半までうまくできたのかなと思います。一応前半の3段積みだけでも成功してよかったと思います。お疲れ様でした。(ネタ切れ)

コメントをどうぞ

  • 例えば180度ターンの場合、「黒→白→黒→白→黒」となることがわかっていれば、OnFwd(OUT_A);OnRev(OUT_C); repeat(2){until(SENSOR_1>THRESHOLD);until(SENSOR_1<THRESHOD);} Off(MOTOR); のような単純な方法でもOKですね。 -- 松本 2007-08-21 (火) 15:53:03

前期最後のレポートです。優しい評価でお願いします!!


添付ファイル: file流れ.JPG 420件 [詳細] fileコース.JPG 448件 [詳細] file工学センサ.jpg 394件 [詳細] fileバンパー2.jpg 346件 [詳細] file交差点認識.JPG 385件 [詳細] file方向転換.JPG 342件 [詳細] file保持方法2.jpg 360件 [詳細] fileアーム3説明.jpg 386件 [詳細] fileアーム2説明.jpg 162件 [詳細] filezeroliner.jpg 493件 [詳細] fileズレ.jpg 367件 [詳細] fileジョイント.jpg 428件 [詳細] fileウォームギア2.jpg 376件 [詳細] fileキャタピラー2.jpg 349件 [詳細] file保持方法1.jpg 169件 [詳細] fileアーム2改.jpg 598件 [詳細] fileアーム改.jpg 157件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2007-09-02 (日) 22:10:03 (4372d)