2013a/Member/donky/Mission2
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[2013a/Member]]
#contents
*課題2について [#o3b45107]
-二台のロボットでピンポン玉をパスしながら運び、ゴールを空...
#ref(2013a/Member/donky/Mission1/robocon2013a.png,コース図)
*ロボット本体紹介 [#z169ad55]
-ロボが独創性を増していく過程を紹介します。このロボは本体...
**初期マシン [#k30d3ec9]
#ref(2013a/Member/donky/Mission1/robo.jpg,30%,ロボ?)
-まだこの段階ではパスの構造のみ完成。この時点での問題点は...
**二代目 [#n5bd94b9]
#ref(2013a/Member/donky/Mission1/robo4.jpg,30%,ロボ?)
-二代目はパスの受け取りのために簡易的に広い受け口を取り付...
**三代目 [#dd3936df]
#ref(2013a/Member/donky/Mission1/robo3.jpg,30%,ロボ?)
-三代目から徐々に目指す形が独特に。回転を利用してボールの...
**四代目 [#y00cea80]
#ref(2013a/Member/donky/Mission1/robo5.jpg,30%,ロボ?)
-パスを受け取りやすく改良。通信を動かずに行えるよう改良。...
**最終マシン [#r3166bb1]
#ref(2013a/Member/donky/Mission1/robo2.jpg,30%,ロボ?)
-最終的な着地点がこちら。バックでライントレースするために...
*コース攻略法 [#d2af051e]
**1 第一のポイントーボールのキャッチ [#pe6f443b]
回転をベースにボールをキャッチ。タイマーとタッチセンサー...
プログラムは以降に示す通り。
**2 第二のポイントー最初のパス [#p58ce3c1]
難関だったのは空き缶があること。シュートの正確性は高かっ...
**3 第三のポイントーパスの受け取り [#y38f00c8]
ロボの本体がかなり長いうえにアームの構造上動く必要はなし...
**4 第四のポイントーシュート [#d2a7eb41]
これについてはほぼ完璧。シュートの精度はほぼ必中でした。...
*プログラム詳細 [#z4fec11c]
#define THRESHOLD 40
#define HHIPOWER 7 // 直線とボールを打ち出すとき用の強め...
#define POWER 2 // カーブ、旋回用の弱めのパワー
#define LOWPOWER 0 // ボールをキャッチする用の弱いパワー
#define set_power_HH SetPower(OUT_AC,HHIPOWER);
#define set_power_M SetPower(OUT_AC,POWER);
#define set_power_L SetPower(OUT_B,LOWPOWER);
#define go_forward set_power_HH; OnFwd(OUT_AC); // 前に...
#define go_back set_power_HH; OnRev(OUT_AC); // 後ろに進...
#define turn_left1 set_power_M; Off(OUT_A); OnFwd(OUT_C)...
#define turn_right1 set_power_M; OnFwd(OUT_A); Off(OUT_C...
#define turn_left2 set_power_M; OnRev(OUT_A); OnFwd(OUT_...
#define turn_right2 set_power_M; OnFwd(OUT_A); OnRev(OUT...
#define catch_ball set_power_L; OnFwd(OUT_B); // ボール...
#define pass_ball set_power_HH; OnRev(OUT_B);Wait(150);O...
#define STEP 1 // 1回の判断で動作させる時間
・ここからがロボットを動かすための指令
task main()
{
SetSensor(SENSOR_1,SENSOR_LIGHT); // 「1」のところに...
SetSensor(SENSOR_2,SENSOR_TOUCH); // 「2」のところに...
SetSensor(SENSOR_3,SENSOR_LIGHT); // 「3」のところに...
第一のポイント~
アームの長さにより下図の赤い矢印のあたりから左旋回するこ...
#ref(2013a/Member/donky/Mission1/map.jpg,ライン)
ClearTimer(0); // タイマーをリセット
while (FastTimer(0) <= 430) { // 4.3秒間、通常のライン...
if (SENSOR_3 < THRESHOLD-4) {
turn_left2;
} else
if (SENSOR_3 < THRESHOLD-3) {
turn_left1;
} else if (SENSOR_3 < THRESHOLD+5) {
go_forward;
} else if (SENSOR_3 < THRESHOLD+10) {
turn_right1;
} else {
turn_right2;
}
Wait(STEP);
}
PlaySound(SOUND_UP); // 4.3秒間、通常のライントレース...
set_power_M; OnRev(OUT_A); OnFwd(OUT_C); Wait(580); // ...
while(SENSOR_2==0){ // タッチセンサーがオフの間、ボー...
catch_ball;
}
Off(OUT_B);
ボールを取ってから進行方向にロボットを向けるまで~
ボールを取ってからも光センサーが黒に反応するまで左旋回さ...
Wait(200); // 2秒間、ボールをキャッチするときの左旋回...
Off(OUT_AC);
while (SENSOR_3 > THRESHOLD-5) { // 光センサーが黒い線...
turn_left2;
}
Off(OUT_AC);
ボールを打ち出す~
ロボットを進行方向に向けたら、すぐにボールを打ち出す動作...
go_back;Wait(80);Off(OUT_AC);Wait(100); // 0.8秒間後ろ...
pass_ball; // ボールを打ち出す
ボールを打ち出してから、ボールを受けるまで~
通常のライントレースをして、ボールを受ける位置までタイマ...
go_forward;Wait(80);Off(OUT_AC); // 0.8秒間前進して...
ClearTimer(0); // タイマーをリセット
while (FastTimer(0) <= 170) { // 1.7秒間、通常のライン...
if (SENSOR_3 < THRESHOLD-4) {
turn_right2;
} else
if (SENSOR_3 < THRESHOLD-3) {
turn_right1;
} else if (SENSOR_3 < THRESHOLD+5) {
go_forward;
} else if (SENSOR_3 < THRESHOLD+10) {
turn_left1;
} else {
turn_left2;
}
Wait(STEP);
}
Off(OUT_AC); // 1.7秒間、通常のライントレースを行ったら...
Wait(1000); // 相手からのパスがくるまでの10秒間停止して...
turn_left1;Wait(100); // 1秒間左にカーブして、ボールを...
while(SENSOR_2==0){ // タッチセンサーがオフの間、ボー...
catch_ball;
}
Off(OUT_B);
PlaySound(SOUND_UP); // ボールをキャッチしたら、ピロ...
}
ロボコンで発表したプログラムはここまで。
缶に向かってシュート~
缶にシュートするときのプログラムも一応添付。
最後にブールを受ける位置から、シュートするまでのプログラ...
ここで大事なのは、シュートする位置取りなので1秒前進、0.6...
task main()
{
OnFwd(OUT_AC);Wait(100); // 1秒前進
OnRev(OUT_A); OnFwd(OUT_C);Wait(60);Off(OUT_AC); // 0....
OnRev(OUT_B);Wait(100);Off(OUT_B); // ボールを打ち出す
}
*まとめ [#pf62a8c6]
-ロボティクス入門ゼミの最終課題となったこの課題2ですが、...
終了行:
[[2013a/Member]]
#contents
*課題2について [#o3b45107]
-二台のロボットでピンポン玉をパスしながら運び、ゴールを空...
#ref(2013a/Member/donky/Mission1/robocon2013a.png,コース図)
*ロボット本体紹介 [#z169ad55]
-ロボが独創性を増していく過程を紹介します。このロボは本体...
**初期マシン [#k30d3ec9]
#ref(2013a/Member/donky/Mission1/robo.jpg,30%,ロボ?)
-まだこの段階ではパスの構造のみ完成。この時点での問題点は...
**二代目 [#n5bd94b9]
#ref(2013a/Member/donky/Mission1/robo4.jpg,30%,ロボ?)
-二代目はパスの受け取りのために簡易的に広い受け口を取り付...
**三代目 [#dd3936df]
#ref(2013a/Member/donky/Mission1/robo3.jpg,30%,ロボ?)
-三代目から徐々に目指す形が独特に。回転を利用してボールの...
**四代目 [#y00cea80]
#ref(2013a/Member/donky/Mission1/robo5.jpg,30%,ロボ?)
-パスを受け取りやすく改良。通信を動かずに行えるよう改良。...
**最終マシン [#r3166bb1]
#ref(2013a/Member/donky/Mission1/robo2.jpg,30%,ロボ?)
-最終的な着地点がこちら。バックでライントレースするために...
*コース攻略法 [#d2af051e]
**1 第一のポイントーボールのキャッチ [#pe6f443b]
回転をベースにボールをキャッチ。タイマーとタッチセンサー...
プログラムは以降に示す通り。
**2 第二のポイントー最初のパス [#p58ce3c1]
難関だったのは空き缶があること。シュートの正確性は高かっ...
**3 第三のポイントーパスの受け取り [#y38f00c8]
ロボの本体がかなり長いうえにアームの構造上動く必要はなし...
**4 第四のポイントーシュート [#d2a7eb41]
これについてはほぼ完璧。シュートの精度はほぼ必中でした。...
*プログラム詳細 [#z4fec11c]
#define THRESHOLD 40
#define HHIPOWER 7 // 直線とボールを打ち出すとき用の強め...
#define POWER 2 // カーブ、旋回用の弱めのパワー
#define LOWPOWER 0 // ボールをキャッチする用の弱いパワー
#define set_power_HH SetPower(OUT_AC,HHIPOWER);
#define set_power_M SetPower(OUT_AC,POWER);
#define set_power_L SetPower(OUT_B,LOWPOWER);
#define go_forward set_power_HH; OnFwd(OUT_AC); // 前に...
#define go_back set_power_HH; OnRev(OUT_AC); // 後ろに進...
#define turn_left1 set_power_M; Off(OUT_A); OnFwd(OUT_C)...
#define turn_right1 set_power_M; OnFwd(OUT_A); Off(OUT_C...
#define turn_left2 set_power_M; OnRev(OUT_A); OnFwd(OUT_...
#define turn_right2 set_power_M; OnFwd(OUT_A); OnRev(OUT...
#define catch_ball set_power_L; OnFwd(OUT_B); // ボール...
#define pass_ball set_power_HH; OnRev(OUT_B);Wait(150);O...
#define STEP 1 // 1回の判断で動作させる時間
・ここからがロボットを動かすための指令
task main()
{
SetSensor(SENSOR_1,SENSOR_LIGHT); // 「1」のところに...
SetSensor(SENSOR_2,SENSOR_TOUCH); // 「2」のところに...
SetSensor(SENSOR_3,SENSOR_LIGHT); // 「3」のところに...
第一のポイント~
アームの長さにより下図の赤い矢印のあたりから左旋回するこ...
#ref(2013a/Member/donky/Mission1/map.jpg,ライン)
ClearTimer(0); // タイマーをリセット
while (FastTimer(0) <= 430) { // 4.3秒間、通常のライン...
if (SENSOR_3 < THRESHOLD-4) {
turn_left2;
} else
if (SENSOR_3 < THRESHOLD-3) {
turn_left1;
} else if (SENSOR_3 < THRESHOLD+5) {
go_forward;
} else if (SENSOR_3 < THRESHOLD+10) {
turn_right1;
} else {
turn_right2;
}
Wait(STEP);
}
PlaySound(SOUND_UP); // 4.3秒間、通常のライントレース...
set_power_M; OnRev(OUT_A); OnFwd(OUT_C); Wait(580); // ...
while(SENSOR_2==0){ // タッチセンサーがオフの間、ボー...
catch_ball;
}
Off(OUT_B);
ボールを取ってから進行方向にロボットを向けるまで~
ボールを取ってからも光センサーが黒に反応するまで左旋回さ...
Wait(200); // 2秒間、ボールをキャッチするときの左旋回...
Off(OUT_AC);
while (SENSOR_3 > THRESHOLD-5) { // 光センサーが黒い線...
turn_left2;
}
Off(OUT_AC);
ボールを打ち出す~
ロボットを進行方向に向けたら、すぐにボールを打ち出す動作...
go_back;Wait(80);Off(OUT_AC);Wait(100); // 0.8秒間後ろ...
pass_ball; // ボールを打ち出す
ボールを打ち出してから、ボールを受けるまで~
通常のライントレースをして、ボールを受ける位置までタイマ...
go_forward;Wait(80);Off(OUT_AC); // 0.8秒間前進して...
ClearTimer(0); // タイマーをリセット
while (FastTimer(0) <= 170) { // 1.7秒間、通常のライン...
if (SENSOR_3 < THRESHOLD-4) {
turn_right2;
} else
if (SENSOR_3 < THRESHOLD-3) {
turn_right1;
} else if (SENSOR_3 < THRESHOLD+5) {
go_forward;
} else if (SENSOR_3 < THRESHOLD+10) {
turn_left1;
} else {
turn_left2;
}
Wait(STEP);
}
Off(OUT_AC); // 1.7秒間、通常のライントレースを行ったら...
Wait(1000); // 相手からのパスがくるまでの10秒間停止して...
turn_left1;Wait(100); // 1秒間左にカーブして、ボールを...
while(SENSOR_2==0){ // タッチセンサーがオフの間、ボー...
catch_ball;
}
Off(OUT_B);
PlaySound(SOUND_UP); // ボールをキャッチしたら、ピロ...
}
ロボコンで発表したプログラムはここまで。
缶に向かってシュート~
缶にシュートするときのプログラムも一応添付。
最後にブールを受ける位置から、シュートするまでのプログラ...
ここで大事なのは、シュートする位置取りなので1秒前進、0.6...
task main()
{
OnFwd(OUT_AC);Wait(100); // 1秒前進
OnRev(OUT_A); OnFwd(OUT_C);Wait(60);Off(OUT_AC); // 0....
OnRev(OUT_B);Wait(100);Off(OUT_B); // ボールを打ち出す
}
*まとめ [#pf62a8c6]
-ロボティクス入門ゼミの最終課題となったこの課題2ですが、...
ページ名: