[[2008a/MemberOnly/進行状況A]]

*目次 [#a028092a]
#contents


*最終課題:ボール運搬ロボット [#e6b25fba]


**詳細 [#f5545e54]
フィールド~

        * フィールドは約160cm×110cm
        * 1000mlの紙パックは約7.1cm×7.1cm×19.6cm
        * ゴールの紙パックには約6cm四方の穴が2箇所開けられている
        * ゴールの穴以外の部分は黒で覆われている~
        * フィールドの長辺の中央部におかれたゴールの紙パックの穴は上を向いている~
        * フィールドの短辺の中央部におかれたゴールの紙パックの穴は横を向いている~
        * 外側の楕円の長径は128cm、短径は96cm
        * 内側の8の字の曲線部の曲率半径は24cmで、交差部は直交している
        * 黒い線の太さは約25mm



基本ルール~

        * ボールを 塔から それぞれ向きの違う棒に挟まれた状態から 運びだし、4箇所あるゴールの箱に入れる。
        * 競技時間は審判が続行不能と判断するまで、あるいはリタイアするまで
        * 4隅のコーナー(半径30cmの1/4円)のいずれかからスタートする。
        * スタート時のロボットは2個を越えないこと (スタート後はいくつに分裂してもかまわない)
        * 開始の合図から5秒以内にRCXのスタートボタンを押す作業を完了すること。
        * 競技が終了するまで、ロボットに触ったり人間が遠隔で操作してはならない。
        * 途中でうまく動かなくなった場合、1回限り再スタートすることができる(再スタートの際に別プログラムで起動してよい)。~


*作成したロボットたち [#w0fe5744]
ロボットの外形~
**ろぼ1 [#n1e7a34b]

#ref(2008a/A5/ロボコン/080804_1412~01.JPG,130%,全体)~

~モーターが足らなくなり、デファレンシャルギアを用いた構造となった。前輪部は滑らかに動くように、目ん玉パーツを用いた。~
フォークリフト部分が壁のようにあり高さのあるロボットになった。~


#ref(2008a/A5/ロボコン/080804_1411~01.JPG,130%,つかむとこ)
#ref(2008a/A5/ロボコン/080804_1500~01.JPG,130%,ギザギザ)~

~一番工夫したテニスボールをつかむ部分。フォークリフトのような構造を作ったが、想像以上に難しかった。~
片方のアームを固定して、もう片方のみモーターで動かすことでボールをつかむ。~
アームのあげさげはギザギザパーツを用いました。~



#ref(2008a/A5/ロボコン/080804_1412~02.JPG,130%,後ろ)~
高さがある構造になり、前部が重くなってしまったので後ろに重りをつけ~
重心を真ん中にもってくるようにした。~



**ろぼ2 [#o5d8fb37]
#ref(2008a/A5/ロボコン/080804_1511~01.JPG,130%,前)~
アームでテニスボールを確保しつつ、移動する。

#ref(2008a/A5/ロボコン/080804_1512~01.JPG,130%,側面)~
これもタイヤ構造にした。

#ref(2008a/A5/ロボコン/)~

*作成したプログラム [#za523d1a]

**ろぼ1のプログラム [#l8fbe4a4]
光センサーとか回転センサーとかを使った凝ったプログラムを作りたかったけど、時間的なものとかプログラムを作った人の知能みたいなものが間に合わなかったのですべて時間をつけた単純なものとなった。
#ref(2008a/A5/ロボコン/ロボットの動き.jpg)~
画像はロボットの動きの理想を簡単に示したもの。
 #define mae SetPower(OUT_A,7); OnFwd(OUT_A); Wait(50); OnRev(OUT_A); Wait(53); OnFwd(OUT_A);         
 Wait(50); OnRev(OUT_A); Wait(50); Off(OUT_A);  //前に進む動作を定義する
 #define left(t) OnRev(OUT_A); Wait(t);   //tだけ左に曲がるのを定義する
 #define right(t)  OnFwd(OUT_A); Wait(t); //tだけ右に曲がるのを定義する
 #define get_ball SetPower(OUT_B+OUT_C,1); OnFwd(OUT_B); Wait(150);  Off(OUT_B); Wait(80);   
 OnFwd(OUT_C); Wait(60); Off(OUT_C); Wait(20); SetPower(OUT_B,7); OnRev(OUT_B); Wait(200);    
 Off(OUT_B); //ボールをつかむ動作を定義する
 
 task main()
 {
 
 
 repeat(5)
 {
 mae;          //前に進む動作を5回繰り返す
 }
 left(170); //1.7秒左に曲がる
 
 
 repeat(5)
 {
 mae; //前に進む動作を5回繰り返す
 }
 Wait(50); //0.5秒待機
 get_ball; //ボールをつかむ
 right(350); //3.5秒右に曲がる
 
 
 repeat(5)
 {
 mae; //前に進む動作を5回繰り返す
 }
 OnRev(OUT_C);
 Wait(40); //ボールを離す
 Off(OUT_C); //リフトを止める
 left(360); //3.6秒左に曲がる
 
 
 repeat(4){
 mae; //前に進む動作を4回繰り返す
 }
 left(140); //1.4秒左に曲がる
 repeat(2)
 {
 mae
 }    //前に進む動作を2回繰り返す
 Wait(30); //0.3秒待機
 get_ball; //ボールをとる
 Wait(30); //0.3秒待機
 right(360); //3.6秒右に曲がる
 
 
 repeat(6)
 {
 mae;
 }      //前に進む動作を6回繰り返す
 OnRev(OUT_C);
 Wait(50);  //ボールを離す
 Off(OUT_C); //リフトを止める
 } 


**ろぼ2のプログラム [#b05485ed]

時間の都合でプログラムは作れなかった。



*結果 [#ndb780ab]

ボールは一つも箱に入れることができなかった。~
フォークリフトの部分はきちんと動作したので、移動のプログラムやセンサーがうまくいけば、一個は入れることができただろう。

*苦労した点・工夫した点 [#b9f3bf9f]

ボールをつかむフォークリフトの部分。何も考えずにフォークリフト部分を作ったが、上下しなかったりして大変だった。さらにフォークリフト部分でモーターを2つ使ってしまったため、ディファレンシャルギアを用いることになり機動力が落ちてしまい、さらに工夫を必要とされた。

ディファレンシャルギア。重心が左に傾き左のギアに加重がかかり、なかなか前に進まなかった。プログラムと併用して、構造も変更した。



*未解決な点・今後への課題 [#l665f750]
直前になってろぼ2の電池が切れてしまった。非常に残念だった。
*最終課題を終えての感想 [#gc2a36c4]
いろんなセンサーを使えばもっとちゃんとしたものが作れたと思うけどそんな贅沢なことはいっちゃいけないんだと思った。~
特に回転センサーを活用できれば…と後悔が残る。



*コメントお願いします。 [#e92522bb]
- ロボコンのルール等については、ルールと関連づけて説明する必要がある箇所などを除き、[[ロボコンのページ>2008a/ロボコン]]にリンクを張るだけでも十分です。 -- [[松本]] &new{2008-08-05 (火) 16:04:19};

#comment

ロボットやプログラムの説明はかけています。全体としてどんな動きをしたか(可能なら図入りで)を説明すれば、良いと思います。~
図をかくソフトはパワーポイント等いろいろあります。   F.I.

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS