2012b/Member/atchoo/Mission2
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
*ロボコン [#h786b651]
**メンバー [#sf2b89b5]
--aspect:工学部所属 前回と同じく唯一神。今回は更なる覚醒...
--HIBINO:繊維学部所属 今回から仲間に加わった勇者。後に伝...
--atchoo:繊維学部所属 しがない掃除夫。片付けスキルが飛躍...
**競技内容 [#l4801722]
課題1で用いたコースを図のようにつなげ6個の箱を移し替える...
#ref(2012b/Member/atchoo/Mission2/robocon2012b.png,80%)
-基本ルール
--白い紙パックと黒い紙パックを入れ替える。
--競技時間は審判が続行不能と判断するまで、あるいはリタイ...
--課題1のスタート地点からスタートする。
--スタート時のロボットは2個を越えないこと (スタート後はい...
--開始の合図から5秒以内にスタートボタンを押す作業を完了...
--競技が終了するまで、ロボットに触ったり人間が遠隔で操作...
--途中でうまく動かなくなった場合、1回限り再スタートする...
--最終的にゴールに運び込まれた紙パックの数で点数を計算す...
**ロボットの紹介 [#eae84a20]
--今回は課題1でaspect,atchooの作った機体をベースに改良を...
#ref(2012b/Member/atchoo/Mission2/2013-02-06_13-03-24_30....
ロボットの全体像
#ref(2012b/Member/atchoo/Mission2/2013-02-06_13-05-59_239...
#ref(2012b/Member/atchoo/Mission2/2013-02-06_13-06-16_908...
ロボットのアーム:
箱を3つ運ぶにあたって同時に運ぶのは無理だったので2回に分...
**プログラムの紹介 [#ea507f0f]
今回も様々な行動を求められていたのでswitch-case文というも...
#define SPD 40
#define SPD_H 30 //進むスピード
#define SPD_Ah -15 //アームの閉じる速度
#define SPD_Ar 15 //アームの開く速度
#define TIM_W 800 //動作準備のための待機時間
#define trasew1 OnFwdReg(OUT_BC,40,OUT_REGMODE_SYNC);Wai...
#define trasew2 OnFwd(OUT_C,40);Off(OUT_B);Wait(1); //...
task main ()
{
SetSensorLight(S1); //ライトセンサー定義
SetSensorLowspeed(S2); //超音波センサー定義
SetSensorTouch(S3); //タッチセンサー定義
int pattern = 1; //パターン設置
long t0 = CurrentTick(); //タイマーの設置
int t1 = 0; //カウンターの設置
int count = 0; //カウンターの設置
while(true)
{
switch(pattern) //"pattern"の開始
{
case 1: //箱に至るまでの直進
if(SensorUS(S2) > 8) //超音波センサーでの判断
{
if(t1 <= 300)
{
t1++; //カウンターを増やす
OnFwdReg(OUT_BC,SPD,OUT_REGMODE_SYNC); //前進
Wait(1);
}
else
{
t1 = 0;
trasew2;
}
break;
}
pattern = 2; //パターン2へ移行
break;
case 2: //箱をつかむ
if(count == 1);
{
OnFwdReg(OUT_BC,SPD,OUT_REGMODE_SYNC); //前進
Wait(550);
}
Off(OUT_BC);
Wait(TIM_W);
if(count == 0)
{
OnFwd(OUT_A,-20); //箱をつかむ
Wait(TIM_W);
pattern = 5; //パターン5へ移行
break;
}
OnFwd(OUT_A,-50); //移動中箱を固定する
Wait(TIM_W);
pattern = 5;
break;
case 5: //箱をつかんだ状態で目的地の壁へ移動
if(count == 0)
{
OnFwdReg(OUT_BC,-SPD,OUT_REGMODE_SYNC); //後退
Wait(3600);
OnFwd(OUT_B,30);
OnFwd(OUT_C,-30); //旋回
Wait(1600);
Off(OUT_BC);
Wait(TIM_W);
pattern = 3;
break;
}
OnFwdReg(OUT_BC,-SPD,OUT_REGMODE_SYNC); //後退
Wait(4200);
OnFwd(OUT_B,30);
OnFwd(OUT_C,-30); //旋回
Wait(1560);
Off(OUT_BC);
Wait(TIM_W);
t0 = CurrentTick();
pattern = 3;
break;
case 3: //タッチセンサーが接触するまで前進してそこから...
if(SENSOR_3 == 0)
{
if(t1 <= 10000000)
{
t1++; カウンターを増やす
OnFwdReg(OUT_BC,SPD,OUT_REGMODE_SYNC); //前進
Wait(1);
}
else
{
t1 = 0;
trasew2; //トレース2を行う
}
break;
}
Off(OUT_BC);
OnFwd(OUT_A,30); //箱を離す
Wait(TIM_W);
Off(OUT_A);
if(count == 0)
{
OnFwdReg(OUT_BC,-SPD,OUT_REGMODE_SYNC); //後退
Wait(3000);
OnFwd(OUT_B,-30);
OnFwd(OUT_C,30); //旋回
Wait(1200);
count ++ ; //カウンターを増やす
Off(OUT_BC);
pattern = 1; //パターン1へ移行
break;
}
OnFwdReg(OUT_BC,-SPD,OUT_REGMODE_SYNC); //後退
Wait(1550);
OnFwd(OUT_B,-30);
OnFwd(OUT_C,30); //旋回
Wait(1100);
Off(OUT_BC);
pattern = 4; //パターン4へ移行
break;
case 4: //ゴールに箱を入れる
if(SensorUS(S2) > 8) //超音波センサーでの判断
{
if(t1 <= 90)
{
t1++; //カウンターを増やす
OnFwdReg(OUT_BC,SPD,OUT_REGMODE_SYNC); //前進
Wait(1);
}
else
{
t1 = 0;
trasew2;
}
break;
}
Wait(TIM_W);
OnFwdReg(OUT_BC,SPD,OUT_REGMODE_SYNC); //前進
Wait(TIM_W);
Off(OUT_BC);
OnFwd(OUT_A,-30); //箱をつかむ
Wait(TIM_W);
OnFwd(OUT_B,-30);
OnFwd(OUT_C,30); //向きの調整
Wait(800);
OnFwdReg(OUT_BC,SPD,OUT_REGMODE_SYNC); //前進
Wait(880);
Off(OUT_BC);
Wait(30000);
break;
}
}
}
**考察 [#y3e8a692]
結果として箱はうまく運べませんでした。2台のロボットの連携...
**感想 [#b19ed448]
ロボコンはとても難しかったです。箱をいかにして壁の向こう...
終了行:
*ロボコン [#h786b651]
**メンバー [#sf2b89b5]
--aspect:工学部所属 前回と同じく唯一神。今回は更なる覚醒...
--HIBINO:繊維学部所属 今回から仲間に加わった勇者。後に伝...
--atchoo:繊維学部所属 しがない掃除夫。片付けスキルが飛躍...
**競技内容 [#l4801722]
課題1で用いたコースを図のようにつなげ6個の箱を移し替える...
#ref(2012b/Member/atchoo/Mission2/robocon2012b.png,80%)
-基本ルール
--白い紙パックと黒い紙パックを入れ替える。
--競技時間は審判が続行不能と判断するまで、あるいはリタイ...
--課題1のスタート地点からスタートする。
--スタート時のロボットは2個を越えないこと (スタート後はい...
--開始の合図から5秒以内にスタートボタンを押す作業を完了...
--競技が終了するまで、ロボットに触ったり人間が遠隔で操作...
--途中でうまく動かなくなった場合、1回限り再スタートする...
--最終的にゴールに運び込まれた紙パックの数で点数を計算す...
**ロボットの紹介 [#eae84a20]
--今回は課題1でaspect,atchooの作った機体をベースに改良を...
#ref(2012b/Member/atchoo/Mission2/2013-02-06_13-03-24_30....
ロボットの全体像
#ref(2012b/Member/atchoo/Mission2/2013-02-06_13-05-59_239...
#ref(2012b/Member/atchoo/Mission2/2013-02-06_13-06-16_908...
ロボットのアーム:
箱を3つ運ぶにあたって同時に運ぶのは無理だったので2回に分...
**プログラムの紹介 [#ea507f0f]
今回も様々な行動を求められていたのでswitch-case文というも...
#define SPD 40
#define SPD_H 30 //進むスピード
#define SPD_Ah -15 //アームの閉じる速度
#define SPD_Ar 15 //アームの開く速度
#define TIM_W 800 //動作準備のための待機時間
#define trasew1 OnFwdReg(OUT_BC,40,OUT_REGMODE_SYNC);Wai...
#define trasew2 OnFwd(OUT_C,40);Off(OUT_B);Wait(1); //...
task main ()
{
SetSensorLight(S1); //ライトセンサー定義
SetSensorLowspeed(S2); //超音波センサー定義
SetSensorTouch(S3); //タッチセンサー定義
int pattern = 1; //パターン設置
long t0 = CurrentTick(); //タイマーの設置
int t1 = 0; //カウンターの設置
int count = 0; //カウンターの設置
while(true)
{
switch(pattern) //"pattern"の開始
{
case 1: //箱に至るまでの直進
if(SensorUS(S2) > 8) //超音波センサーでの判断
{
if(t1 <= 300)
{
t1++; //カウンターを増やす
OnFwdReg(OUT_BC,SPD,OUT_REGMODE_SYNC); //前進
Wait(1);
}
else
{
t1 = 0;
trasew2;
}
break;
}
pattern = 2; //パターン2へ移行
break;
case 2: //箱をつかむ
if(count == 1);
{
OnFwdReg(OUT_BC,SPD,OUT_REGMODE_SYNC); //前進
Wait(550);
}
Off(OUT_BC);
Wait(TIM_W);
if(count == 0)
{
OnFwd(OUT_A,-20); //箱をつかむ
Wait(TIM_W);
pattern = 5; //パターン5へ移行
break;
}
OnFwd(OUT_A,-50); //移動中箱を固定する
Wait(TIM_W);
pattern = 5;
break;
case 5: //箱をつかんだ状態で目的地の壁へ移動
if(count == 0)
{
OnFwdReg(OUT_BC,-SPD,OUT_REGMODE_SYNC); //後退
Wait(3600);
OnFwd(OUT_B,30);
OnFwd(OUT_C,-30); //旋回
Wait(1600);
Off(OUT_BC);
Wait(TIM_W);
pattern = 3;
break;
}
OnFwdReg(OUT_BC,-SPD,OUT_REGMODE_SYNC); //後退
Wait(4200);
OnFwd(OUT_B,30);
OnFwd(OUT_C,-30); //旋回
Wait(1560);
Off(OUT_BC);
Wait(TIM_W);
t0 = CurrentTick();
pattern = 3;
break;
case 3: //タッチセンサーが接触するまで前進してそこから...
if(SENSOR_3 == 0)
{
if(t1 <= 10000000)
{
t1++; カウンターを増やす
OnFwdReg(OUT_BC,SPD,OUT_REGMODE_SYNC); //前進
Wait(1);
}
else
{
t1 = 0;
trasew2; //トレース2を行う
}
break;
}
Off(OUT_BC);
OnFwd(OUT_A,30); //箱を離す
Wait(TIM_W);
Off(OUT_A);
if(count == 0)
{
OnFwdReg(OUT_BC,-SPD,OUT_REGMODE_SYNC); //後退
Wait(3000);
OnFwd(OUT_B,-30);
OnFwd(OUT_C,30); //旋回
Wait(1200);
count ++ ; //カウンターを増やす
Off(OUT_BC);
pattern = 1; //パターン1へ移行
break;
}
OnFwdReg(OUT_BC,-SPD,OUT_REGMODE_SYNC); //後退
Wait(1550);
OnFwd(OUT_B,-30);
OnFwd(OUT_C,30); //旋回
Wait(1100);
Off(OUT_BC);
pattern = 4; //パターン4へ移行
break;
case 4: //ゴールに箱を入れる
if(SensorUS(S2) > 8) //超音波センサーでの判断
{
if(t1 <= 90)
{
t1++; //カウンターを増やす
OnFwdReg(OUT_BC,SPD,OUT_REGMODE_SYNC); //前進
Wait(1);
}
else
{
t1 = 0;
trasew2;
}
break;
}
Wait(TIM_W);
OnFwdReg(OUT_BC,SPD,OUT_REGMODE_SYNC); //前進
Wait(TIM_W);
Off(OUT_BC);
OnFwd(OUT_A,-30); //箱をつかむ
Wait(TIM_W);
OnFwd(OUT_B,-30);
OnFwd(OUT_C,30); //向きの調整
Wait(800);
OnFwdReg(OUT_BC,SPD,OUT_REGMODE_SYNC); //前進
Wait(880);
Off(OUT_BC);
Wait(30000);
break;
}
}
}
**考察 [#y3e8a692]
結果として箱はうまく運べませんでした。2台のロボットの連携...
**感想 [#b19ed448]
ロボコンはとても難しかったです。箱をいかにして壁の向こう...
ページ名: