[[2006a/A7/]]

☆もくじ☆

制作者

アナクスナムゥンガリメソ

課題「缶転がしロボット」について

(ルールについて)

350mlの中身の入った缶を所定の場所から所定の場所まで運ぶ。 競技時間は3分間で、1缶運ぶごとに30秒延長される。評価は、缶を運んだ数の点数(1缶で5点、2缶で15点、3缶で30点)と技術点(他チームの評価点、自チームの評価点、先生方のそれぞれ20点満点で評価された平均点)の両方で評価される。途中、障害物の缶(350mlと500ml)があり、それを倒したり、フィールド外に出すと減点の対象となってしまうので、当たらないようにかつ正確に運ぶ技術が求められる。

ロボットの説明

一応作戦としては、一台目が三つ並んだカンの中央のカンを取りゴールまで運び、再び戻ってきて同じ動作でカンを運ぶというもの。大まかには。二台目の役割はというと、一台目が戻ってくる 前に端のカンを押して中央に寄せるという単純だが重要。こうすることにより、一台目が同じ要領でカンを運ぶことが可能になるわけだ。かなり重要ですよ二台目。

ロボコン時の(写真手前が一台目、奥が二台目)

    ↑ロボコン時の写真(手前が一台目、奥が二台目)

一台目のロボットのプログラム

#define THRESHOLD 43
#define right(t) OnFwd(OUT_A);OnRev(OUT_C);Wait(t);
#define left(t) OnFwd(OUT_C);OnRev(OUT_A);Wait(t);
#define go(t) OnFwd(OUT_A+OUT_C);Wait(t);
#define back(t) OnRev(OUT_A+OUT_C);Wait(t);
#define down(t) OnFwd(OUT_B);Wait(t);
#define up(t) OnRev(OUT_B);Wait(t);
int x;
int SL1;
int SL2;
int SR1;
int SR2;
task main()
{
SetSensor(SENSOR_1,SENSOR_LIGHT);
SetSensor(SENSOR_2,SENSOR_TOUCH);
SetSensor(SENSOR_3,SENSOR_LIGHT);
x= 0 ;
SL1=SENSOR_1;
SR1=SENSOR_3;
while(true){                          
     SL2=SL1;
     SL1=SENSOR_1;
     SR2=SR1;
    SR1=SENSOR_3;
    
   if((SL1 < THRESHOLD && SR1 < THRESHOLD) && (SL2 >THRESHOLD || SR2 > THRESHOLD))
   {x=x+1;
   if(x == 2)
  {go(40);
  right(85);}
  
  if(x == 4)   {go(40);
  right(92);}
  
  if(x == 5)                      //get1
  {
 go(15)
Off(OUT_A+OUT_C);
down(80);
Off(OUT_B);
back(90);
down(35);
Off(OUT_B);
right(210);
back(80);

}

   if(x == 6)
   {go(40);
   left(95);}
   
   if(x == 8)
   {go(40);
   left(123);}
  
   if(x == 11) 
    {go(40);
   left(95);} 
  
   if(x == 13)                     //gorl1
  {go(40);
   left(120);
   go(25);
   Off(OUT_A+OUT_C);
   up(105);
   Off(OUT_B);
   go(150);
   back(60);    
   right(200); 
    back(25);    }
   
    if(x == 14) 
   {go(40);
   right(85);}
    
    if(x == 16) 
   {go(40);
   right(85);}
    
    if(x == 19) 
   {go(40);
   right(85);}
    
     if(x == 21) 
   {go(40);
   right(92);}
    
     if(x == 22)                    //get2
   {
    go(15)
Off(OUT_A+OUT_C);
down(80);
Off(OUT_B);
back(100);
down(35);
Off(OUT_B);
right(210);
back(80);
}

      if(x == 23)
   {go(40);
   left(95);}
   
    if(x == 25)
   {go(40);
   left(123);}
  
     if(x == 28)
   {go(40);
   left(95);} 
  
     
      if(x == 30)                     //gorl2
  {go(40);
   left(120);
   go(20);
   Off(OUT_A+OUT_C);
   up(105);
   Off(OUT_B);
   go(150);
   back(60);
   
    Off(OUT_A+OUT_C);
   
   }
  
     
     
  
  
 

}
   
   if((SENSOR_1< THRESHOLD)&&(SENSOR_3>THRESHOLD)){            //センサー1が線の上にあるとき   
     Off(OUT_A+OUT_C);  
     OnFwd(OUT_C);                      //左に少し旋回          
     OnRev(OUT_A);
     Wait(4);} 
      if ((SENSOR_3<THRESHOLD)&&(SENSOR_1>THRESHOLD) ){         //センサー3が線の上にあるとき
     Off(OUT_A+OUT_C);  
     OnFwd(OUT_A);                      //少し右に旋回
     OnRev(OUT_C);
     Wait(4);} 
       else {                           //どちらのセンサーも線の上になければ
    OnFwd(OUT_A+OUT_C);}    

  if((SENSOR_1< THRESHOLD) && (SENSOR_3< THRESHOLD)) 
     {OnFwd(OUT_A+OUT_C);}
   
}}

二台目のロボットのプログラム

task main()
{
Off(OUT_A+OUT_C);   
Wait(1500);                            //15秒待ち
OnFwd(OUT_A+OUT_C);  
Wait(200);                             //2.0秒前進
OnFwd(OUT_A);
Wait(150);                             //右に1.5秒旋回
OnFwd(OUT_A+OUT_C);
Wait(200);                             //2.0秒前進
}                         

作成過程/工夫したところ、苦労したところ

(8月1日(火)夜9時まで)

この日の最初はまだ違う作戦を考えていた。2台のロボットを使ってコース内を半分に分けて走る。ロボット1は実際に使うロボットの構造とほとんど同じで上から缶に覆いかぶさるような構造で、ロボット2は下から缶を担ぐ。作戦は次のようであった。

1、ロボット1がスタート地点から缶の場所へ行き、缶を持ってスタート地点へ戻る。 2、スタート地点にロボット2が待機して、ロボット1から缶を受け継ぎ、ライントレースでゴールまで運ぶ。

→これを繰り返す。 しかしこれは、時間がない上にプログラムも長くなる可能性がある。またスタート地点での缶を受け継ぐ2つのロボットの連携が難しいと考えたために断念した。時間も制限されているので、一台で動く方が効率がいいことに気づいた。

(ロボコン当日8月2日(水)朝9時〜ロボコンスタート時間) 結局、前日に2台で運ぶ作戦を断念して、1台で運ぶことになった。そこで、2台目を作り、1台目のサポート役として使うことにした。その作戦は、、

1、ロボット1が真ん中の缶をキャッチして戻ってくる時に、ロボット2がスタート地点の隣にある缶を真ん中へ寄せる。 2、そしてロボット1が1点目を入れて帰って真ん中に移った缶をキャッチ、そして点を入れる。

反省、感想

  1. 提出期限ギリでHP完成! ...できはともかくとして。てゆーかさ〜 誰もページ更新してくれないんだもん(涙)中途半端で終わりにしないでよ!頼むから...。プログラムやってくれた人!感謝してるけどちゃんと貼って!オレ苦手なんですからこーゆーの。もうひとつ言っておくけどな〜 最後なんだから皆感想かけ!!それでようやく終わりだろーが!  まぁ、愚痴はこの辺にして感想ですが、とにかく、とーにかく大変だった、マジで..(疲)こんなに努力とチームワークが必要な授業だとは知らなかった。まぁでも大変なだけ得るものもあった!のかな?...とにかく前期の授業では一番頑張ったわけで。皆と頑張った思い出は永久に不滅だ(?) なんだかんだあったけど皆ありがとね!後期も頑張っていきましょ〜!!!ではゴチャゴチャと失礼しました(謝)-by T原
  2. 申し訳ねぇす。感想としては、とりあえず、大変だったって事!それから、プログラミングがどれだけ大変なことか分かった。チームとしては、最終的に人数が少なくなって大変だったけど、残ったメンバーそれぞれ役割分担してうまくロボコンまでやってこれたと思う。-by アナクスナムゥン(i村)


添付ファイル: filedscn2727_Medium.jpg 370件 [詳細]

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2006-08-18 (金) 11:01:23