2007a/MemberOnly/進行状況A

ロボコン!!

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

方針決定

予定のコースは↓↓↓

コース.JPG

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

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

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

ロボットの製作

・車部分の機構

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

zeroliner.jpg

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

ジョイント.jpg

・アーム部分

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

アーム2改.jpg

そしてこうなる。

保持方法2.jpg

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

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

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

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

ズレ.jpg

・ウォームギア

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

ウォームギア2.jpg

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

・バンパー

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

工学センサ.jpg

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

バンパー2.jpg

・本体部分

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

プログラム

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

流れ.JPG

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

ライントレース

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

交差点認識.JPG

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

方向転換について

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

方向転換.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);
}

全体の流れ・プログラム

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

苦労・工夫した点

感想

コメントをどうぞ


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


添付ファイル: file流れ.JPG 60件 [詳細] fileコース.JPG 662件 [詳細] file工学センサ.jpg 617件 [詳細] fileバンパー2.jpg 583件 [詳細] file交差点認識.JPG 666件 [詳細] file方向転換.JPG 577件 [詳細] file保持方法2.jpg 542件 [詳細] fileアーム3説明.jpg 707件 [詳細] fileアーム2説明.jpg 253件 [詳細] filezeroliner.jpg 859件 [詳細] fileズレ.jpg 539件 [詳細] fileジョイント.jpg 624件 [詳細] fileウォームギア2.jpg 548件 [詳細] fileキャタピラー2.jpg 561件 [詳細] file保持方法1.jpg 241件 [詳細] fileアーム2改.jpg 837件 [詳細] fileアーム改.jpg 229件 [詳細]

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