目次

メンバー

ルール

基本ルール

基本得点の計算方法

技術得点の計算方法 以下の動作の精度・スピード・確実性などを含めた技術的な工夫や芸術性について他の全てのチーム(8チーム)が20点満点で採点し、その平均点を求める。得点の目安:

フィールド

robocon2011a.png

ロボット制作過程

ボール運搬ロボ

ボールを運搬する点で今回気をつけたことは、
相方がボールを取りやすくするためにどこにボールを置くかという点と、
ボールの一つを確実に取っていくということです。

1mae.jpg

前の二つタッチセンサーは、固定された木片に両方を押し付けて
機体を正確に木片に垂直にするという役割があります。
これは今回一つずつ確実に取っていくという目標から、
正確に90度旋回などを行っていきたかったためです。

1gear.jpg

そして、ボールを押し出すためのポールとつかむためのアームのギアを連動させたのは
モーターが足りなくならないようにという配慮をした工夫です。

1ue.jpg

アームですが最初は小さかったので黄色い鉤爪状のブロックを二つ追加して延長し、
紫色のチューブも一つずつ追加して、ボールをつかむ範囲を広げました。

1usiro.jpg

前回のロボットでRCXが内部に入り込んでしまい、
プログラムを転送しにくかったのですが、今回はそれがないように後ろに受信部分を露出させました。
小さな工夫ですが、コードの余った部分は絡まらないように後ろにゴムでまとめました。

ボールシュートロボ

プログラム

ボール運搬ロボ

#define t90 95				//ここ電池が少なくなってきて90度の時間が変わったら変えて。
sub left(){					//左に曲がるためのサブルーチン。
OnFwd(OUT_A); OnRev(OUT_C);
Wait(t90);
Off(OUT_C+OUT_A);
Wait(40);
}
sub right(){					 //右に曲がるためのサブルーチン。 
OnFwd(OUT_C); OnRev(OUT_A);
Wait(t90);
Off(OUT_C+OUT_A);
Wait(40);
}
sub goball() {               //タッチセンサを利用してボールのところまで行く。
OnFwd(OUT_A+OUT_C);
until((SENSOR_1 == 1)&&(SENSOR_2 == 1));
Off(OUT_C+OUT_A);
Wait(40);
}
void go(int t)  {				//前に移動するための関数。入力された時間だけに移動
OnFwd(OUT_A+OUT_C); 
Wait(t);                        
Off(OUT_A+OUT_C); 
Wait(50);
}
void back(int t)  {				//後ろに移動するための関数。入力された時間だけ前に移動
OnRev(OUT_A+OUT_C); 
Wait(t);                        
Off(OUT_A+OUT_C); 
Wait(50);
}
sub up()  {					//アームを持ち上げるサブルーチン。
OnFwd(OUT_B);
Wait(45);
Off(OUT_B);
Wait(20);    
}
sub down()  {				//アームを下げるサブルーチン。
OnRev(OUT_B);
Wait(30);
Off(OUT_B);
Wait(20);    
}
task main () {
SetSensor(SENSOR_1, SENSOR_TOUCH);
SetSensor(SENSOR_2, SENSOR_TOUCH);
int time=50;
right(); //中央にく
go(60);
left();
repeat(3)
{
 	
     goball();      //ボールがある壁まで先進
      back(3);
     left();
     go(40);
      back(time);  
     down();       //ボールの取り出すアームをおろす
	Wait(100);	//アームの揺れが落ち着くまで待つ    
    go(time+60);    //ボールを押しながら先進
     up(); //up arm   //ボールの取り出すアームを上げる。
     time=time+40;   //次のボールの位置まで動けるように40をだす。
    go(60);        
   right(); 
   go(50);			//テニスボールを取りにいく
   down();			//アームを下ろしてボールをつかむ
   back(500);       //発射ロボットがいるところまでボールを運ぶ  
   up();				//ボールを打つ機体のためにボールを置く
   back(150);       //発射ロボットがボールを取れようとするため後ろにさがる
	Wait(200);         //発射ロボットがボールをとるまで待つ
	go(500);       //元の位置に戻る。
	right();       //中央にいく
	go(120);
	left();
}		
}

ボールシュートロボ

#define go(t) OnFwd(OUT_A+OUT_C); Wait(t); Off(OUT_A+OUT_C); Wait(50);                     //直進  (関数を使う)
#define back(t) OnRev(OUT_A+OUT_C); Wait(t); Off(OUT_A+OUT_C); Wait(50);                   //後退
#define turn_l(t) OnFwd(OUT_C); OnRev(OUT_A); Wait(t); Off(OUT_A+OUT_C); Wait(50);         //左折
#define turn_r(t) OnFwd(OUT_A); OnRev(OUT_C); Wait(t); Off(OUT_A+OUT_C); Wait(50);         //右折
#define hold OnFwd(OUT_B); Wait(40); Off(OUT_B);                                           //ボールをホールド
#define throw OnRev(OUT_B); Wait(40);                                                      //ボールを離す
task main()
{                                                                  //カンをどかす
     go(320);
     turn_l(80);
     go(200);
     back(150);
     turn_l(200);
     go(350);
     back(100);
     turn_l(100); 
     go(100);
     back(250);
     go(20);
     turn_l(20);
     go(400);
     back(200);
     turn_l(40);
     go(200);
     PlaySound(SOUND_DOUBLE_BEEP); Wait(20);
  repeat(3)
   {                                                            //3回繰り返す
     Off(OUT_A+OUT_C);
     Wait(300);
     back(400);
     hold;
     Off(OUT_A+OUT_C);
     Wait(50);
     go(250);                                     //ボールを持っていく
     Off(OUT_A+OUT_C);
     Wait(500);
     turn_l(80);
     back(280);
     throw;
     go(300);
   }
}

まとめ

ボール運搬ロボ

まず、ロボットが中央へ行かせてボールがある壁まで前進、で両タッチセンサが反応するまで行くので角度がちょっと外れたときここで直すことができます。で左に曲がってボールを押し出すためのアームが降りてきて最初は一番前のボール一個を外にとりだします。そのボールをボールを掴むためのアームが降りてきて捕まえます。で捕まえたボール発射ロボットのところまで運びまた次のボールを取り出す作業を繰り返します。

ボールシュートロボ

まずカンをどかします。ゴール前や、サークル周りにカンがあるとボールの受け渡しや、シュートの邪魔になるので、できるだけ端に寄せました。それからボールの受け渡し場所まで行き、ボールを受け取ります。二つのロボット同士の連携がとても難しかったです。何も考えずにやると、ロボット同士がぶつかったりしてしまうのでとても難しかったです。アーム部分も、最初は蹴る機能だけでしたが、ボールをつかむ機能も蹴ると同時にアームが開くようにして、安定感が増すように作った。

コメント



添付ファイル: filerobocon2011a.png 351件 [詳細] file2usiro.jpg 331件 [詳細] file2ue.jpg 361件 [詳細] file2sita.jpg 419件 [詳細] file2mae.jpg 355件 [詳細] file2gear.jpg 419件 [詳細] file1usiro.jpg 331件 [詳細] file1ue.jpg 356件 [詳細] file1sita.jpg 189件 [詳細] file1mae.jpg 371件 [詳細] file1gear.jpg 458件 [詳細]

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2011-08-09 (火) 17:51:52