ロボコンの説明

2006a/ロボコンに乗ってます!

プログラムと攻略方法

私たちは、ロボットを二台使用する事にして、缶を取ってくるロボット(α)と缶を受け取りゴールするロボット(β)を作る事にしました。

試作1(タッチセンサーとタイマーを使用)

(α)号

(β)号

//製作者:itou
//製作時間:5時間
#define  turn_right OnFwd(OUT_A);OnRev(OUT_C);
#define  turn_left OnRev(OUT_A);OnFwd(OUT_C);
#define  go  OnFwd(OUT_A+OUT_C);
#define  back OnRev(OUT_A+OUT_C);
#define  stop_turn Off(OUT_A+OUT_C);
//定義・ロボット構成は(α)号と同じです

task main ()
{
SetSensor(SENSOR_1,SENSOR_TOUCH);//センサー1はタッチセンサーです
 
until(SENSOR_1==1);
back;
Wait(50);
turn_right;
Wait(250);
stop_turn;
Wait(30);
//缶がセンサーに当ったら、回転しても接触しない程度に後退して180度回転する
 
back;
Wait(50);
OnFwd(OUT_B);
Wait(17);
後退した分戻り、アームを降ろして缶を取り込む
 

ClearTimer(0);
 
go;
until (SENSOR_1==1);
back;
Wait(FastTimer(0)/2);
//壁にぶつかるまで直進し、ぶつかるまでにかかった時間の半分後退する
 
turn_left;
Wait(120);
//左回りに90度回転する
 
ClearTimer(0);
 
go;
until (SENSOR_1==1);
back;
Wait(FastTimer(0)/4);
//壁にぶつかるまで直進し、ぶつかるまでに時間の四分の一後退する  
turn_right;
Wait(120);
Off(OUT_A+OUT_C);
Wait(30);
OnRev(OUT_B);
Wait(17);
//右回りに90度回転し、アームを上げて缶を押し出す準備をする
 
back;
Wait(70);
Off(OUT_A+OUT_C);
//進んで缶を押し込む
 

ClearTimer(0);
 
go;
until(SENSOR_1==1);
back
Wait(FastTimer(0)/2);
//壁にぶつかるまで直進し、ぶつかるまでにかかった時間の半分後退する
 
turn_right;
Wait(120);
//右回りに90度回転する

ClearTimer(0);
 
go;
until (SENSOR_1==1)
back;
Wait(FastTimer(0)/4);
//壁にぶつかるまで直進し、ぶつかるまでに時間の四分の一後退する   
turn_right;
Wait(120);
go;
Wait(90);
//右回りに90度回転して、缶の受け取り位置まで戻る
Off(OUT_A+OUT_C);
}

試作1のプログラムの問題点

上のプログラムは問題点が多かったため、ボツになりました!!

完成型 (光センサーを使用)

制作者 takumi

α号

2006a/B4/プログラムα

NEC_0114.JPG

β号

2006a/B4/プログラムβ

NEC_0113.JPG

苦労した点

苦労した点は、なんといってもプログラムである。
最初は光りセンサーなしでやろうとしたが、スタート位置や缶の重さなどにより時間調整が上手くいかず断念!
仕方なく光りセンサーを投入したところ意外とジャストミートし、即採用決定!

NEC_0110.JPG

それから、数々の苦難を乗り越えてついに完成
…と思いきや、開始一時間前にプログラムに異常が発生!?
もうだめかと思っていたが仲間の助言によりギリギリセーフで完成!!
なんとか本番を迎えることができたのである。

ロボコン

工夫した点

工夫した点はまずロボットの軽量化である。
他のチームと比べ我々はシンプルを追求した。
特に、アーム一本で勝負に出たのは正直不安であったが本番では大活躍してくれた。
タッチセンサーの方もアームを邪魔しないよう設置されこちらも申し分なし!

NEC_0106.JPG

次にプログラムの方は、マクロを最大限に活用した。
例えば、ライントレースのプログラムや回転プログラムなどを設定しかなりの省略化に成功し、
簡単に修正可能になったりミスを早期発見できるようになった。

ロボット

NEC_0112.JPG

今回のロボットはシンプルかつ軽量というコンセプトで開発しました。
ロボットはできるだけシンプルにしたかったので下の土台は授業の一番最初で作ったものをそのまま使いました。今回大変だったのは缶をいかにして掴むかということでした。これを考えてつくるのにすごく時間がかかりました。ほかの班はみんな掴む部分に歯車を使っていたが僕らの班は歯車を使うことなくモーターに直結しました。
そのほかにもロボットどうしの缶の受け渡しをどうするかというのも課題でした。これは缶を受け取る側のロボットにタッチセンサーを付け、それにあたればすぐに缶を掴むようにしました。以外にも缶を受け取るより渡すほうの正確さにかかっていることがわかりました。
またゴールの段差をどのようにクリアするかですが、これは適当に何回も実験している間に成功しました。

NEC_0108a.JPG

その結果として缶を入れることに成功!
成功した点は、複雑な装置をつけるのではなく、
今までの授業でやってきたことを参考にして作ったのが成功へとつながったと思われる。

感想

コメントお願いします



添付ファイル: fileNEC_0107.JPG 182件 [詳細] fileNEC_0108a.JPG 347件 [詳細] fileNEC_0106.JPG 319件 [詳細] fileNEC_0112.JPG 353件 [詳細] fileNEC_0108.JPG 163件 [詳細] fileNEC_0110.JPG 350件 [詳細] fileNEC_0113.JPG 317件 [詳細] fileNEC_0114.JPG 342件 [詳細]

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