- 追加された行はこの色です。
- 削除された行はこの色です。
[[2006a/C2/ロボコン]]
#hr
CENTER:&size(25){ロボコン特設ページVol.3&br;};&br;
補助マシンとプログラムの説明
#hr
CENTER:製作者:伊藤 伊藤 糸島 佐藤 堀 (五十音順)
[[ルールとか>2006a/ロボコン]]
RIGHT:カウンタ&counter;
RIGHT:[[ロボティクス入門ゼミ]]
RIGHT:[[2006a/C2]]
--目次
#contents
*補助ロボット [#qb437dcb]
**プログラム紹介 [#n99d1a67]
モーターA マシンの前進後退に関わる
モーターC マシンの前進後退に関わる
モーターB アームの上下に関わる
#define go_straight OnFwd(OUT_A+OUT_C); // マシンを前進させる
#define back OnRev(OUT_A+OUT_C); //マシンを後退させる
#define Stop Off(OUT_A+OUT_C); Wait(5); //マシンを停止させる
#define up Wait(100);OnFwd(OUT_B);Wait(60);Off(OUT_B);//アームを上げる
#define down OnRev(OUT_B);Wait(20);Off(OUT_B); //アームを下げて缶を保持する
sub can_grasp_1() //木の障害物に囲まれた方の缶をつかむ
{
down
go_straight
Wait(10); //前進と後退を繰り返して、確実に缶を保持する
back
Wait(10);
go_straight
Wait(40);
back
Wait(30);
go_straight
Wait(40);
}
sub can_grasp_2() //缶で囲まれた方の缶をつかむ
{
down
back
Wait(10);
go_straight
Wait(10); //同様に缶を確実に保持できるように、前進後退を繰り返す
back
Wait(20);
go_straight
Wait(20);
back
Wait(25);
}
task main()
{
//ClearMessage();
go_straight //まずはマシンが壁にぶつかるまで前進する
Wait(250);
Stop
//until(Message() == 1 );
Wait(4000);
can_grasp_1(); //そして障害物の木で囲まれている方の缶をつかむ
back
Wait(50);
Stop //そしてそのまま慎重に後退し
back
Wait(25);
Stop
back
Wait(20);
Stop
back
Wait(10); //缶を一番運びやすい位置までずらす
Stop
Wait(70); //終わったらアームを上げ、缶を放す
up
Wait(50);
go_straight //缶を放し終わったら、邪魔にならない位置に移動する
Wait(100);
Stop
//until( Message() == 2 );
Wait(4000);
back //次に缶に囲まれている方の缶のところまで移動する
Wait(100);
Stop
back
Wait(70);
Stop
back
Wait(10);
Stop
Wait(5);
//移動し終わったところ で、缶をつかむ
can_grasp_2();
go_straight
Wait(70);
Stop //少しずつ缶をずらしていく
go_straight
Wait(60);
Stop
go_straight
Wait(20);
Stop
Wait(10); //先ほどの位置まで缶をずらす
up //そしてアームを上げる
Stop
go_straight
Wait(100); //邪魔にならない位置まで移動する
Stop
}
メインのマシンの作業の進行具合でメッセージ方式か、時限式にするつもりでした。
--メッセージよりも時限式のほうが確実か・・・・?
--通信方式だと通信に失敗した場合、そこでマシンが動かなくなるが。、時限式だとそのようなことはなくなる
このマシン・プログラムは本番ではほとんど機能できませんでした。とても残念でした。
実際のコースで缶と缶の隙間の距離を計り、その長さに収まるようにマシンを組み立てた。
マシンの動きが単純なのでそれほど苦労はしなかった。
小刻みに動くようにプログラムを作ったので、非常に正確に缶の位置を合わせることが出来た。(練習では
)
ギヤ比を調整し、缶を運んでも、マシンがふらつかないようにした。
#comment
----------------
RIGHT:[[ロボティクス入門ゼミ]]
RIGHT:[[2006a/C2]]