2018a/Member/MIRA/Mission3
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[2018a/Member]]
*課題3 [#z995bac0]
&ref(IMG_3613.PNG);
***基本ルール [#f958b00e]
競技時間は審判が続行不能と判断するまで、あるいはリタイア...
図のA地点または(および)A'地点からスタートする。ただし...
Aタイプの空き缶を円Y内に、Bタイプの空き缶を円X内に運ぶ。~
開始の合図から5秒以内にスタートボタンを押す作業を完了す...
競技が終了するまで、ロボットに触ったり人間が遠隔で操作し...
途中でうまく動かなくなった場合、1回限り再スタートするこ...
***基本得点の計算方法 [#d803a8a8]
運んだ空き缶の数×3点~
空き缶を積み重ねて置くことができば場合、2段目の空き缶一...
円内からはみ出している場合、半分以下なら1点減点、半分以...
間違った円内に空き缶を置いた場合は、1個につき1点減点。~
間違った円内の2段目に空き缶を置いた場合は1個につき3点減...
***技術点の計算方法 [#p42120d4]
以下の動作の精度・スピード・確実性などを含めた技術的な工...
空き缶を探し取りにいくまでの動作 (3点)
空き缶を掴む動作 (3点)
空き缶を運ぶ動作 (2点)
空き缶を置く動作 (2点)
空き缶を積む動作 (3点)
2台のRCXまたはNXT、EV3の連携の良さ(2点)
自立型のロボットとしての形や動作の美しさ、斬新さ(2点)
その他 (3点)
*ロボットの説明 [#q2029d82]
**本体の説明 [#ufb04fe2]
&ref(IMG_3581.jpg);
今回の課題において私たちのグループは、親機(画像上)と子...
私は親機の製作に関わった。
**ロボットの構造 [#ge0554a1]
&ref(IMG_3586.jpg);
親機は、積んだ缶の3段目をつかみ、子機が二段目をつかんで...
&ref(IMG_3589.jpg);
**ロボットの工夫した点 [#aa1c8e0f]
ロボット製作において、今回はライントレースの正確性よりも...
また、缶をつかむ機構では、なるべくゆっくり閉まるようにし...
*プログラム [#o146986a]
**define [#yc90971d]
#define turn_left Off(OUT_AC);OnFwd(OUT_A);OnRev(OUT_...
#define turn_right Off(OUT_AC);OnFwd(OUT_C);OnRev(OUT...
#define run_left Off(OUT_AC);OnFwd(OUT_A);Wait(2);Off...
#define run_right Off(OUT_AC);OnFwd(OUT_C);Wait(2);Of...
#define arm_open Off(OUT_B);OnRev(OUT_B);Wait(20);Off...
#define arm_close Off(OUT_B);OnFwd(OUT_B);
#define turn_left_free OnFwd(OUT_A);OnRev(OUT_C);
#define turn_right_free OnFwd(OUT_C);OnRev(OUT_A);
#define turn_left_small OnFwd(OUT_A);
#define turn_right_small OnFwd(OUT_C);
turn_left,turn_left_freeは両方のタイヤを回転させて左へ曲...
turn_left_small,run_leftはタイヤ1つだけ回転し回転の内側...
右に曲がる,turn_right,turn_right_free,turn_right_small...
arm_openで空き缶を掴むためのアームを開き,arm_closeでアー...
sub follow_line_right(){ClearTimer(0);
while(FastTimer(0)<18)
if(SENSOR_2<38){
turn_right; // センサー2が黒を認識し...
}else if(SENSOR_2<42){
run_right;ClearTimer(0); // センサー2がグレーっぽい黒...
}else if(SENSOR_2<47){
OnFwd(OUT_AC);ClearTimer(0); // センサー2がグレーを認...
}else if(SENSOR_2<50){
run_left;ClearTimer(0); // センサー2がグレーっぽい白...
}else if(SENSOR_2<55){
turn_left;ClearTimer(0); // センサー2が白を認識した...
}}
上のサブルーチンは黒線の右側をライントレースするプログラ...
sub follow_line_left(){ClearTimer(0);
while(FastTimer(0)<18)
if(SENSOR_2<38){
turn_left; // センサー2が黒を認識した...
}else if(SENSOR_2<42){
run_left;ClearTimer(0); // センサー2がグレーっぽい黒...
}else if(SENSOR_2<47){
OnFwd(OUT_AC);ClearTimer(0); // センサー2がグレーを...
}else if(SENSOR_2<50){
run_right;ClearTimer(0); // センサー2がグレーっぽい白...
}else if(SENSOR_2<55){
turn_right;ClearTimer(0); // センサー2が白を認識した...
}}
上のプログラムは黒線の左側をライントレースするプログラム...
task main()
{
OnFwd(OUT_AC);
Wait(200);
Off(OUT_AC); // A'からHに...
SetSensor(SENSOR_2,SENSOR_LIGHT);
follow_line_left(); // Hまで黒線左側をラ...
turn_right_small;
Wait(90);
turn_right_free;
Wait(15);
Off(OUT_AC); // HからIに方向転換
follow_line_left(); // HからIに進む 黒線...
Off(OUT_AC);
Wait(300); // "こき"の動きとの時間...
turn_right_free;
Wait(10);
Off(OUT_AC); // Yに体が向くように少し...
OnFwd(OUT_AC);
Wait(40); // IからYまで直進
Off(OUT_AC);
arm_close; // 缶を掴む
Wait(1000); // 相手が2段目の空き缶を抜くまで...
arm_open; // 3段目の空き缶をアームを放すこと...
OnFwd(OUT_AC);
Wait(25);
Off(OUT_AC); // 缶をがっちり抱える
turn_right_small;
Wait(110);
Off(OUT_AC); // Yで右に90°方向転換
OnFwd(OUT_AC);
Wait(30); // 黒線左側をライントレースできる...
Off(OUT_AC);
follow_line_left(); // 黒線左側をライントレースし,...
turn_left_small;
Wait(30);
turn_left_free;
Wait(35); // Gで左へ曲がる
Off(OUT_AC);
Wait(1500); // "こき"が通り過ぎるまで待つ
OnFwd(OUT_AC);
Wait(120);
Off(OUT_AC); // 缶をおいていく
OnRev(OUT_AC);
Wait(120); // Gに戻る
turn_right_free;
Wait(70);
Off(OUT_AC); // 右に回転して軌道に戻る
follow_line_left(); // ライントレース
Off(OUT_AC);
Wait(300); // "こき"の動きとの時間合わせ
turn_right_free;
Wait(10);
Off(OUT_AC); // 少し右に曲がることでXに体を...
OnFwd(OUT_AC);
Wait(20); // 空き缶まで行く
Off(OUT_AC);
Wait(100); // "こき"との時間合わせ
arm_close; // 缶を掴む
Wait(500); // 相手が2段目の空き缶を抜くまで待機
arm_open; // 3段目の空き缶をアームを放すことで...
OnRev(OUT_AC);
Wait(120);
Off(OUT_AC);
Wait(100); // XからG辺りまで後退
turn_right_free;
Wait(75);
Off(OUT_AC);
Wait(200); // 右へ曲がる
OnFwd(OUT_AC);
Wait(200);
Off(OUT_AC);
Wait(200); // 直進
turn_left_free;
Wait(75);
Off(OUT_AC);
Wait(200); // 左へ曲がる
OnFwd(OUT_AC);
Wait(260);
Off(OUT_AC);
Wait(200); // A'で空き缶を抱える
turn_left_free;
Wait(85);
Off(OUT_AC);
Wait(200); // A'で左へ曲がる
OnFwd(OUT_AC);
Wait(100);
Off(OUT_AC); // 空き缶をXに置く
OnRev(OUT_AC);
Wait(100);
Off(OUT_AC); // Xで少し後退
Off(OUT_AC); //終了
}
*感想 [#gef442db]
今回の課題で製作した機械には正確性が少なかった。
本番での走行では、照明の光度が設定と異なり、親機が正常な...
みなさんの前で、親機と子機がタイミングよく缶をつかむ光景...
本番では子機だけの走行となったが、今までで一番いい結果が...
*動画URL [#e0a4a857]
今まで動かした中で一番よく動いてくれたロボットたちの動画...
終了行:
[[2018a/Member]]
*課題3 [#z995bac0]
&ref(IMG_3613.PNG);
***基本ルール [#f958b00e]
競技時間は審判が続行不能と判断するまで、あるいはリタイア...
図のA地点または(および)A'地点からスタートする。ただし...
Aタイプの空き缶を円Y内に、Bタイプの空き缶を円X内に運ぶ。~
開始の合図から5秒以内にスタートボタンを押す作業を完了す...
競技が終了するまで、ロボットに触ったり人間が遠隔で操作し...
途中でうまく動かなくなった場合、1回限り再スタートするこ...
***基本得点の計算方法 [#d803a8a8]
運んだ空き缶の数×3点~
空き缶を積み重ねて置くことができば場合、2段目の空き缶一...
円内からはみ出している場合、半分以下なら1点減点、半分以...
間違った円内に空き缶を置いた場合は、1個につき1点減点。~
間違った円内の2段目に空き缶を置いた場合は1個につき3点減...
***技術点の計算方法 [#p42120d4]
以下の動作の精度・スピード・確実性などを含めた技術的な工...
空き缶を探し取りにいくまでの動作 (3点)
空き缶を掴む動作 (3点)
空き缶を運ぶ動作 (2点)
空き缶を置く動作 (2点)
空き缶を積む動作 (3点)
2台のRCXまたはNXT、EV3の連携の良さ(2点)
自立型のロボットとしての形や動作の美しさ、斬新さ(2点)
その他 (3点)
*ロボットの説明 [#q2029d82]
**本体の説明 [#ufb04fe2]
&ref(IMG_3581.jpg);
今回の課題において私たちのグループは、親機(画像上)と子...
私は親機の製作に関わった。
**ロボットの構造 [#ge0554a1]
&ref(IMG_3586.jpg);
親機は、積んだ缶の3段目をつかみ、子機が二段目をつかんで...
&ref(IMG_3589.jpg);
**ロボットの工夫した点 [#aa1c8e0f]
ロボット製作において、今回はライントレースの正確性よりも...
また、缶をつかむ機構では、なるべくゆっくり閉まるようにし...
*プログラム [#o146986a]
**define [#yc90971d]
#define turn_left Off(OUT_AC);OnFwd(OUT_A);OnRev(OUT_...
#define turn_right Off(OUT_AC);OnFwd(OUT_C);OnRev(OUT...
#define run_left Off(OUT_AC);OnFwd(OUT_A);Wait(2);Off...
#define run_right Off(OUT_AC);OnFwd(OUT_C);Wait(2);Of...
#define arm_open Off(OUT_B);OnRev(OUT_B);Wait(20);Off...
#define arm_close Off(OUT_B);OnFwd(OUT_B);
#define turn_left_free OnFwd(OUT_A);OnRev(OUT_C);
#define turn_right_free OnFwd(OUT_C);OnRev(OUT_A);
#define turn_left_small OnFwd(OUT_A);
#define turn_right_small OnFwd(OUT_C);
turn_left,turn_left_freeは両方のタイヤを回転させて左へ曲...
turn_left_small,run_leftはタイヤ1つだけ回転し回転の内側...
右に曲がる,turn_right,turn_right_free,turn_right_small...
arm_openで空き缶を掴むためのアームを開き,arm_closeでアー...
sub follow_line_right(){ClearTimer(0);
while(FastTimer(0)<18)
if(SENSOR_2<38){
turn_right; // センサー2が黒を認識し...
}else if(SENSOR_2<42){
run_right;ClearTimer(0); // センサー2がグレーっぽい黒...
}else if(SENSOR_2<47){
OnFwd(OUT_AC);ClearTimer(0); // センサー2がグレーを認...
}else if(SENSOR_2<50){
run_left;ClearTimer(0); // センサー2がグレーっぽい白...
}else if(SENSOR_2<55){
turn_left;ClearTimer(0); // センサー2が白を認識した...
}}
上のサブルーチンは黒線の右側をライントレースするプログラ...
sub follow_line_left(){ClearTimer(0);
while(FastTimer(0)<18)
if(SENSOR_2<38){
turn_left; // センサー2が黒を認識した...
}else if(SENSOR_2<42){
run_left;ClearTimer(0); // センサー2がグレーっぽい黒...
}else if(SENSOR_2<47){
OnFwd(OUT_AC);ClearTimer(0); // センサー2がグレーを...
}else if(SENSOR_2<50){
run_right;ClearTimer(0); // センサー2がグレーっぽい白...
}else if(SENSOR_2<55){
turn_right;ClearTimer(0); // センサー2が白を認識した...
}}
上のプログラムは黒線の左側をライントレースするプログラム...
task main()
{
OnFwd(OUT_AC);
Wait(200);
Off(OUT_AC); // A'からHに...
SetSensor(SENSOR_2,SENSOR_LIGHT);
follow_line_left(); // Hまで黒線左側をラ...
turn_right_small;
Wait(90);
turn_right_free;
Wait(15);
Off(OUT_AC); // HからIに方向転換
follow_line_left(); // HからIに進む 黒線...
Off(OUT_AC);
Wait(300); // "こき"の動きとの時間...
turn_right_free;
Wait(10);
Off(OUT_AC); // Yに体が向くように少し...
OnFwd(OUT_AC);
Wait(40); // IからYまで直進
Off(OUT_AC);
arm_close; // 缶を掴む
Wait(1000); // 相手が2段目の空き缶を抜くまで...
arm_open; // 3段目の空き缶をアームを放すこと...
OnFwd(OUT_AC);
Wait(25);
Off(OUT_AC); // 缶をがっちり抱える
turn_right_small;
Wait(110);
Off(OUT_AC); // Yで右に90°方向転換
OnFwd(OUT_AC);
Wait(30); // 黒線左側をライントレースできる...
Off(OUT_AC);
follow_line_left(); // 黒線左側をライントレースし,...
turn_left_small;
Wait(30);
turn_left_free;
Wait(35); // Gで左へ曲がる
Off(OUT_AC);
Wait(1500); // "こき"が通り過ぎるまで待つ
OnFwd(OUT_AC);
Wait(120);
Off(OUT_AC); // 缶をおいていく
OnRev(OUT_AC);
Wait(120); // Gに戻る
turn_right_free;
Wait(70);
Off(OUT_AC); // 右に回転して軌道に戻る
follow_line_left(); // ライントレース
Off(OUT_AC);
Wait(300); // "こき"の動きとの時間合わせ
turn_right_free;
Wait(10);
Off(OUT_AC); // 少し右に曲がることでXに体を...
OnFwd(OUT_AC);
Wait(20); // 空き缶まで行く
Off(OUT_AC);
Wait(100); // "こき"との時間合わせ
arm_close; // 缶を掴む
Wait(500); // 相手が2段目の空き缶を抜くまで待機
arm_open; // 3段目の空き缶をアームを放すことで...
OnRev(OUT_AC);
Wait(120);
Off(OUT_AC);
Wait(100); // XからG辺りまで後退
turn_right_free;
Wait(75);
Off(OUT_AC);
Wait(200); // 右へ曲がる
OnFwd(OUT_AC);
Wait(200);
Off(OUT_AC);
Wait(200); // 直進
turn_left_free;
Wait(75);
Off(OUT_AC);
Wait(200); // 左へ曲がる
OnFwd(OUT_AC);
Wait(260);
Off(OUT_AC);
Wait(200); // A'で空き缶を抱える
turn_left_free;
Wait(85);
Off(OUT_AC);
Wait(200); // A'で左へ曲がる
OnFwd(OUT_AC);
Wait(100);
Off(OUT_AC); // 空き缶をXに置く
OnRev(OUT_AC);
Wait(100);
Off(OUT_AC); // Xで少し後退
Off(OUT_AC); //終了
}
*感想 [#gef442db]
今回の課題で製作した機械には正確性が少なかった。
本番での走行では、照明の光度が設定と異なり、親機が正常な...
みなさんの前で、親機と子機がタイミングよく缶をつかむ光景...
本番では子機だけの走行となったが、今までで一番いい結果が...
*動画URL [#e0a4a857]
今まで動かした中で一番よく動いてくれたロボットたちの動画...
ページ名: