2019a/Member/hide/Mission3
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[2019a/Member]]
目次
#contents
*課題3:ボール運搬ロボット [#f1b4d5a3]
ピンポン玉または青と赤のボールを運搬して、所定の容器の中...
#ref(./2019a-mission3.png,4.8,コース全図)
&size(17){ フィールドの説明};
&br; ◦フィールドは課題2で使用した紙を使用する。
&br; ◦生協のお弁当の四角いプラ容器2つをそれぞ...
&br; ◦残りの2個の玉は課題2と同じ位置に置く。そ...
&br; ◦プラ容器には色をつけたり文字や記号を書い...
&br; ◦プラ容器は両面テープ等でフィールドに固定...
&br; ◦2枚の紙の境界にはそれぞれ幅1cm、合計2cm...
*ロボットの説明 [#qf8a0ddc]
**全体 [#ebd24369]
#ref(./1565395609702.jpg,23.4,全図)
写真のように一体型にしました。そのため、前方が重...
&br; また、車体の前方を高くすることにより、ベルトコ...
&br; を付けることが出来ました。それにより、容器にベ...
&br; を突っ込みやすくなりました。
&br; 2台のRISを写真のように積み重ねたので、下にあ...
&br; 押しにくくなってしまいました。その点は、キット...
&br; また、2台のRISの通信は赤外線によって行われるた...
&br; 必要がありました。そのため、最初はRISを前後逆に...
&br; 赤外線通信がうまく出来なかったので、写真のよう...
&br; そのようにしたら、通信をすることが出来るように...
&br; 駆動部、キャタピラ部分の接合がうまく行きませ...
&br; そのため、ロボコンのときに壊れてしまいました。
**移動に関するもの [#q60d5a08]
#ref(./m3m.jpg,39.6,駆動部)
マニュアルに掲載されていた作り方をもとに骨格を作...
&br; 前輪はキャスター付きのようなタイヤではうまく曲...
&br; が出来なかったので、つるつるしたパーツを用いる...
**ボールの回収、排出 [#gb95c264]
#ref(./1565395588820.jpg,22.2,アーム)
写真のようにキャタピラを使いました。当初、キャタ...
&br; 重くなってしまいました。ですが、チームのメンバ...
&br; のみに付けることが可能になりました。容器にキャ...
#ref(./m3b_1.jpg,37.2,アーム)
するためにギザギザのパーツを写真のように用いること...
&br; 上下に動くことが出来るようにしました。また、そ...
&br; 全体のバランスが悪くなってしまいました。
&br; ボールを回収、排出することに関しては、うまく...
*プログラム [#h86a753d]
**全体 [#d5fa49a2]
***2台のRISの連携について [#ra898602]
このチームでは、一体型のロボットにしたため、一方...
&br; もう一方のRIS_2がボールの回収、排出に関するもの...
&br; 例を下に示します。
RIS_1でボールの前まで行ったら、RIS_1が下のプログラ...
SendMessage(SIGNALON); // RIS_1が送信
RIS_2が上のプログラムを受け取ります。RIS_2は上のプ...
Off(OUT_AC); // RIS_2がSIGNALON...
until(Message() == SIGNALON);
次に、RIS_2は後述のボールの回収、排出を行います。そ...
SendMessage(SIGNALOFF); // RIS_2が送信
RIS_1に上記のプログラムを送信します。RIS_1は、それ...
&br; 受信すると再度ボール、又はゴールの方へ向かいま...
Off(OUT_AC);
until(Message() == SIGNALOFF); // RIS_1が受信 → ...
ゴール前では、上記のようにRIS_2に送信し、RIS_1はゴ...
&br; 突進し続けさせる理由は、ゴールとの距離感がつか...
&br; 離してしまうというのを防ぎたかったからです。そ...
OnFwd(OUT_AC); // RIS_1がSIGNALOFF...
until(Message() == SIGNALOFF);
ボールの排出が終わると、RIS_1にMessageを送り終了の...
&br; 辿り着きませんでした。
**移動に関するもの [#c32b53a3]
***サブルーチンについて [#k8d8eda2]
当初、課題2で用いたライントレースのサブルーチンを...
&br; ライントレースに行き詰まったため、前回のsub fol...
&br; 左折などといったサブルーチンを使いました。
&br;直進
sub go_f()
{
go;Wait(move_t);Off(OUT_AC);
}
後退
sub go_b()
{
OnRev(OUT_AC);Wait(move_t);Off(OUT_AC);
}
左折
sub go_l()
{
turn_left;Wait(move_t);Off(OUT_AC);
}
右折
sub go_r()
{
turn_right;Wait(move_t);Off(OUT_AC);
}
***task mainについて [#b429c245]
A’からスタートしてコースを無視してL’のボールを回収し...
task main()
{
move_t=500; //直進
go_f();
SendMessage(SIGNALON); //送信
ClearMessage();
OnFwd(OUT_AC);
until(Message() == SIGNALOFF); //ボール回収
move_t=250; //右折
go_r();
move_t=1000; //直進
go_f();
SendMessage(SIGNALON); //ボール排出
ClearMessage();
OnFwd(OUT_AC);
until(Message() == SIGNALOFF);
move_t=200; //後退
go_b();
}
**ボールの回収、排出 [#p703d8d7]
これらのプログラムは移動したあとに使う必要があったので...
***回収 [#ac90591d]
これは回収の際に使うサブルーチンです。ロボットの構造...
&br; 簡単なプログラムになりました。
sub ball_c()
{
Off(OUT_AC);
until(Message() == SIGNALON);
OnFwd(OUT_A); //アーム下げ ← ギザギザの棒で上下移動
Wait(100);
Off(OUT_A);
上のプログラムはギザギザの部品とギアによりアームを下...
OnFwd(OUT_C); //卓球ボールの巻き上げ ← キャタピラで...
Wait(100);
これは、キャタピラを回転させて、ボールを持ち上げるも...
OnRev(OUT_A); //アーム上げ
Wait(100);
Off(OUT_A);
}
これにより、アームを上げることにより、容器を引きずら...
***排出 [#s2815961]
これは、ボールの排出に使うサブルーチンです。ボールの...
&br; ときと逆向きに動かせば良かったので、単純なプログ...
sub ball_l()
{
Off(OUT_AC); //SIGNALONを受信するま...
until(Message() == SIGNALON);
OnRev(OUT_C);
Wait(10000);
Off(OUT_C);
SendMessage(SIGNALOFF); //SIGNALOFFを送信
}
task mainはRIS1からメッセージを受信してから動くよう...
&br; ボールの回収や排出が終了したら、SIGNALOFFを送る...
&br; 動き始めます。
task main()
{
ClearMessage();
t=200;
ball_c(); //回収
SendMessage(SIGNALOFF);
ClearMessage();
ball_l(); //排出
}
*まとめ [#td95fd47]
うまく走らせることが出来なかった。前が重くなってしまっ...
出来るようなロボットを作る必要があったと思います。光セ...
したが、光センサーが遠すぎるためか、車体を大きくしすぎ...
できたかもしれないと思いました。問題が生じ、ライントレ...
ロボコンに間に合わずしっかりと出来ませんでした。
部品ごと動かすことが出来ました。例えば、Messageを送信...
ことはできた。
人間ならボールを運んで容器に入れるなんて余裕なのに、ロ...
終了行:
[[2019a/Member]]
目次
#contents
*課題3:ボール運搬ロボット [#f1b4d5a3]
ピンポン玉または青と赤のボールを運搬して、所定の容器の中...
#ref(./2019a-mission3.png,4.8,コース全図)
&size(17){ フィールドの説明};
&br; ◦フィールドは課題2で使用した紙を使用する。
&br; ◦生協のお弁当の四角いプラ容器2つをそれぞ...
&br; ◦残りの2個の玉は課題2と同じ位置に置く。そ...
&br; ◦プラ容器には色をつけたり文字や記号を書い...
&br; ◦プラ容器は両面テープ等でフィールドに固定...
&br; ◦2枚の紙の境界にはそれぞれ幅1cm、合計2cm...
*ロボットの説明 [#qf8a0ddc]
**全体 [#ebd24369]
#ref(./1565395609702.jpg,23.4,全図)
写真のように一体型にしました。そのため、前方が重...
&br; また、車体の前方を高くすることにより、ベルトコ...
&br; を付けることが出来ました。それにより、容器にベ...
&br; を突っ込みやすくなりました。
&br; 2台のRISを写真のように積み重ねたので、下にあ...
&br; 押しにくくなってしまいました。その点は、キット...
&br; また、2台のRISの通信は赤外線によって行われるた...
&br; 必要がありました。そのため、最初はRISを前後逆に...
&br; 赤外線通信がうまく出来なかったので、写真のよう...
&br; そのようにしたら、通信をすることが出来るように...
&br; 駆動部、キャタピラ部分の接合がうまく行きませ...
&br; そのため、ロボコンのときに壊れてしまいました。
**移動に関するもの [#q60d5a08]
#ref(./m3m.jpg,39.6,駆動部)
マニュアルに掲載されていた作り方をもとに骨格を作...
&br; 前輪はキャスター付きのようなタイヤではうまく曲...
&br; が出来なかったので、つるつるしたパーツを用いる...
**ボールの回収、排出 [#gb95c264]
#ref(./1565395588820.jpg,22.2,アーム)
写真のようにキャタピラを使いました。当初、キャタ...
&br; 重くなってしまいました。ですが、チームのメンバ...
&br; のみに付けることが可能になりました。容器にキャ...
#ref(./m3b_1.jpg,37.2,アーム)
するためにギザギザのパーツを写真のように用いること...
&br; 上下に動くことが出来るようにしました。また、そ...
&br; 全体のバランスが悪くなってしまいました。
&br; ボールを回収、排出することに関しては、うまく...
*プログラム [#h86a753d]
**全体 [#d5fa49a2]
***2台のRISの連携について [#ra898602]
このチームでは、一体型のロボットにしたため、一方...
&br; もう一方のRIS_2がボールの回収、排出に関するもの...
&br; 例を下に示します。
RIS_1でボールの前まで行ったら、RIS_1が下のプログラ...
SendMessage(SIGNALON); // RIS_1が送信
RIS_2が上のプログラムを受け取ります。RIS_2は上のプ...
Off(OUT_AC); // RIS_2がSIGNALON...
until(Message() == SIGNALON);
次に、RIS_2は後述のボールの回収、排出を行います。そ...
SendMessage(SIGNALOFF); // RIS_2が送信
RIS_1に上記のプログラムを送信します。RIS_1は、それ...
&br; 受信すると再度ボール、又はゴールの方へ向かいま...
Off(OUT_AC);
until(Message() == SIGNALOFF); // RIS_1が受信 → ...
ゴール前では、上記のようにRIS_2に送信し、RIS_1はゴ...
&br; 突進し続けさせる理由は、ゴールとの距離感がつか...
&br; 離してしまうというのを防ぎたかったからです。そ...
OnFwd(OUT_AC); // RIS_1がSIGNALOFF...
until(Message() == SIGNALOFF);
ボールの排出が終わると、RIS_1にMessageを送り終了の...
&br; 辿り着きませんでした。
**移動に関するもの [#c32b53a3]
***サブルーチンについて [#k8d8eda2]
当初、課題2で用いたライントレースのサブルーチンを...
&br; ライントレースに行き詰まったため、前回のsub fol...
&br; 左折などといったサブルーチンを使いました。
&br;直進
sub go_f()
{
go;Wait(move_t);Off(OUT_AC);
}
後退
sub go_b()
{
OnRev(OUT_AC);Wait(move_t);Off(OUT_AC);
}
左折
sub go_l()
{
turn_left;Wait(move_t);Off(OUT_AC);
}
右折
sub go_r()
{
turn_right;Wait(move_t);Off(OUT_AC);
}
***task mainについて [#b429c245]
A’からスタートしてコースを無視してL’のボールを回収し...
task main()
{
move_t=500; //直進
go_f();
SendMessage(SIGNALON); //送信
ClearMessage();
OnFwd(OUT_AC);
until(Message() == SIGNALOFF); //ボール回収
move_t=250; //右折
go_r();
move_t=1000; //直進
go_f();
SendMessage(SIGNALON); //ボール排出
ClearMessage();
OnFwd(OUT_AC);
until(Message() == SIGNALOFF);
move_t=200; //後退
go_b();
}
**ボールの回収、排出 [#p703d8d7]
これらのプログラムは移動したあとに使う必要があったので...
***回収 [#ac90591d]
これは回収の際に使うサブルーチンです。ロボットの構造...
&br; 簡単なプログラムになりました。
sub ball_c()
{
Off(OUT_AC);
until(Message() == SIGNALON);
OnFwd(OUT_A); //アーム下げ ← ギザギザの棒で上下移動
Wait(100);
Off(OUT_A);
上のプログラムはギザギザの部品とギアによりアームを下...
OnFwd(OUT_C); //卓球ボールの巻き上げ ← キャタピラで...
Wait(100);
これは、キャタピラを回転させて、ボールを持ち上げるも...
OnRev(OUT_A); //アーム上げ
Wait(100);
Off(OUT_A);
}
これにより、アームを上げることにより、容器を引きずら...
***排出 [#s2815961]
これは、ボールの排出に使うサブルーチンです。ボールの...
&br; ときと逆向きに動かせば良かったので、単純なプログ...
sub ball_l()
{
Off(OUT_AC); //SIGNALONを受信するま...
until(Message() == SIGNALON);
OnRev(OUT_C);
Wait(10000);
Off(OUT_C);
SendMessage(SIGNALOFF); //SIGNALOFFを送信
}
task mainはRIS1からメッセージを受信してから動くよう...
&br; ボールの回収や排出が終了したら、SIGNALOFFを送る...
&br; 動き始めます。
task main()
{
ClearMessage();
t=200;
ball_c(); //回収
SendMessage(SIGNALOFF);
ClearMessage();
ball_l(); //排出
}
*まとめ [#td95fd47]
うまく走らせることが出来なかった。前が重くなってしまっ...
出来るようなロボットを作る必要があったと思います。光セ...
したが、光センサーが遠すぎるためか、車体を大きくしすぎ...
できたかもしれないと思いました。問題が生じ、ライントレ...
ロボコンに間に合わずしっかりと出来ませんでした。
部品ごと動かすことが出来ました。例えば、Messageを送信...
ことはできた。
人間ならボールを運んで容器に入れるなんて余裕なのに、ロ...
ページ名: