2015a/Member/uchi/Mission2
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
#contents
*課題 [#t65faa08]
ライントレースロボットを作成し、途中にあるピンポン玉をゴ...
[[課題2のページ>http://yakushi.shinshu-u.ac.jp/robotics/...
を参照。
私はA地点からB地点までのコース(下図赤線)を通って(下図...
#ref(endo1.jpg)
*ロボット本体の説明 [#k1e14181]
**ロボットの外観 [#z447b995]
下から見た写真
#ref(endo3-1.jpg)
それぞれの色の四角で囲まれている部分ついて説明していく。
**ボールキャッチャー(写真青い四角の部分) [#e82a7d3e]
前方についている2つのタイヤが走行中に回転し続けることで前...
(下の写真1番目がはまる前、2番目がはまった後)
また、ボールをゴールに入れるときはタイヤの回転方向を逆に...
#ref(endo6.jpg)
#ref(endo4.jpg)
**光センサー(写真赤い四角部分) [#t40157ef]
光センサーがつく位置が前すぎると他の線を誤認識してしまう...
**後輪(写真緑色四角部分) [#o00719ff]
後輪には左右それぞれにモーターを付けた。また、左右のタイ...
**前輪の代わり(写真紫色四角部分) [#q9550746]
前輪がタイヤだと曲がる際に小回りが利かずに曲がり切れなか...
*プログラムの説明 [#b17017e0]
**ライントレース [#v8a56bae]
ラインの左側にそってプログラムを書くことにした。そこで、...
#ref(endo7.png)
**道路の交点の見極め [#y5479fcf]
三叉路も、十字路もどちらも左に直角に曲がるような道がつい...
具体的な方法はカーブが急な左である時、曲がるときに大回り...
#ref(endo8.png)
この方法の問題点として、ただの左の直角カーブを誤認してし...
**終了の判断 [#sd7c8f31]
このコースでは基本的にその場で右回転して長い間より暗いと...
方法は道路の好転を見つけるときと同様に、暗い点を求めて右...
**使用したプログラム(全て) [#u29af1a4]
#define naka 45 //境界線の明るさ
#define kuro 40 //境界線と中央部の間の明るさ
int n=0; //連続して左旋回した回数
int nmax=10; //連続して左旋回した時に道が交点にな...
int e=0; //連続して右回転した回数15回以上でゴ...
int S=0; //道の交点に入った回数。0で三叉路、...
task main()
{
SetPower(OUT_B,6);
OnFwd(OUT_B); //ピンポン玉を巻き込む部分...
SetSensor(SENSOR_2, SENSOR_LIGHT); //光センサーの起動
while (e<=15) //ゴールするまでの繰り返し
{
while ((n<=nmax)&&(e<=15)) //直角に左に曲がらずか...
{
if (SENSOR_2 < kuro) //完全に黒い部分に入った時
{
OnFwd(OUT_C);
Off(OUT_A);
n+=1;
e=0; //左旋回してnを1増やしてeを...
}
if (SENSOR_2 > kuro) //完全には黒い部分に入っ...
{
if (SENSOR_2 < naka)//境界より内側の時
{
OnFwd(OUT_A);
Off(OUT_C);
n=0;
e=0; //右旋回してnとeをリセ...
}
if (SENSOR_2 > naka)//境界より外側の時
{
OnFwd(OUT_A);
OnRev(OUT_C);
n=0;
e+=1; //右を向き、nをリセット...
}
}
while ((n>=nmax)&&(S==0)) //1回も道の交点に...
{
PlaySound(SOUND_CLICK);
Off(OUT_A);
Off(OUT_C);
Wait(200); //三叉路なので2秒止まる
OnRev(OUT_C);
Off(OUT_A);
Wait(45); //道に対して車体をまっ...
OnFwd(OUT_A);
OnFwd(OUT_C);
Wait(30); //三叉路を直進
Off(OUT_A);
Off(OUT_C);
n=0;
S=1; //nをリセットして交点の...
nmax+=7; //基準変更
}
while ((n>=nmax)&&(S==1)) //上のことが起きた...
{
PlaySound(SOUND_CLICK);
Off(OUT_A);
Off(OUT_C);
Wait(200); //十字路なので2秒止まる
OnRev(OUT_C);
Off(OUT_A);
Wait(70); //道に対して車体をまっ...
OnFwd(OUT_A);
OnFwd(OUT_C);
Wait(30); //十字路を直進
Off(OUT_A);
Off(OUT_C);
n=0;
S=2; //nをリセットして交点の...
}
}
Off(OUT_A); //eが15以上になったのでゴール...
Off(OUT_C);
OnFwd(OUT_C); //ゴールしたあとの車体をまっす...
OnRev(OUT_A);
Wait(90);
Off(OUT_A);
Off(OUT_C);
OnRev(OUT_B); //シュートして終了する
Wait(20);
Off(OUT_B);
}
}
*ロボットの動作動画 [#v3cc8f0c]
#ref(endomov.mov)
*未解決の問題点 [#qe875fba]
-ピンポン玉をとる際に誤ってピンポン玉に本体がぶつかり、と...
-初めは、コースが事前にわからない状態でもどこの分かれ道を...
*かかった時間 [#p23434fa]
-ロボットの試行錯誤…約60時間
-このロボット本体…約1時間
-プログラム…約1時間
-プログラムの微調整…約4時間
-ホームページ…約4時間
*まとめと反省 [#t079a71e]
今回初めはより性能の高いロボットを作ろうとしていたが、結...
限られた材料で理想的なロボットを作ることの難しさを改めて...
終了行:
#contents
*課題 [#t65faa08]
ライントレースロボットを作成し、途中にあるピンポン玉をゴ...
[[課題2のページ>http://yakushi.shinshu-u.ac.jp/robotics/...
を参照。
私はA地点からB地点までのコース(下図赤線)を通って(下図...
#ref(endo1.jpg)
*ロボット本体の説明 [#k1e14181]
**ロボットの外観 [#z447b995]
下から見た写真
#ref(endo3-1.jpg)
それぞれの色の四角で囲まれている部分ついて説明していく。
**ボールキャッチャー(写真青い四角の部分) [#e82a7d3e]
前方についている2つのタイヤが走行中に回転し続けることで前...
(下の写真1番目がはまる前、2番目がはまった後)
また、ボールをゴールに入れるときはタイヤの回転方向を逆に...
#ref(endo6.jpg)
#ref(endo4.jpg)
**光センサー(写真赤い四角部分) [#t40157ef]
光センサーがつく位置が前すぎると他の線を誤認識してしまう...
**後輪(写真緑色四角部分) [#o00719ff]
後輪には左右それぞれにモーターを付けた。また、左右のタイ...
**前輪の代わり(写真紫色四角部分) [#q9550746]
前輪がタイヤだと曲がる際に小回りが利かずに曲がり切れなか...
*プログラムの説明 [#b17017e0]
**ライントレース [#v8a56bae]
ラインの左側にそってプログラムを書くことにした。そこで、...
#ref(endo7.png)
**道路の交点の見極め [#y5479fcf]
三叉路も、十字路もどちらも左に直角に曲がるような道がつい...
具体的な方法はカーブが急な左である時、曲がるときに大回り...
#ref(endo8.png)
この方法の問題点として、ただの左の直角カーブを誤認してし...
**終了の判断 [#sd7c8f31]
このコースでは基本的にその場で右回転して長い間より暗いと...
方法は道路の好転を見つけるときと同様に、暗い点を求めて右...
**使用したプログラム(全て) [#u29af1a4]
#define naka 45 //境界線の明るさ
#define kuro 40 //境界線と中央部の間の明るさ
int n=0; //連続して左旋回した回数
int nmax=10; //連続して左旋回した時に道が交点にな...
int e=0; //連続して右回転した回数15回以上でゴ...
int S=0; //道の交点に入った回数。0で三叉路、...
task main()
{
SetPower(OUT_B,6);
OnFwd(OUT_B); //ピンポン玉を巻き込む部分...
SetSensor(SENSOR_2, SENSOR_LIGHT); //光センサーの起動
while (e<=15) //ゴールするまでの繰り返し
{
while ((n<=nmax)&&(e<=15)) //直角に左に曲がらずか...
{
if (SENSOR_2 < kuro) //完全に黒い部分に入った時
{
OnFwd(OUT_C);
Off(OUT_A);
n+=1;
e=0; //左旋回してnを1増やしてeを...
}
if (SENSOR_2 > kuro) //完全には黒い部分に入っ...
{
if (SENSOR_2 < naka)//境界より内側の時
{
OnFwd(OUT_A);
Off(OUT_C);
n=0;
e=0; //右旋回してnとeをリセ...
}
if (SENSOR_2 > naka)//境界より外側の時
{
OnFwd(OUT_A);
OnRev(OUT_C);
n=0;
e+=1; //右を向き、nをリセット...
}
}
while ((n>=nmax)&&(S==0)) //1回も道の交点に...
{
PlaySound(SOUND_CLICK);
Off(OUT_A);
Off(OUT_C);
Wait(200); //三叉路なので2秒止まる
OnRev(OUT_C);
Off(OUT_A);
Wait(45); //道に対して車体をまっ...
OnFwd(OUT_A);
OnFwd(OUT_C);
Wait(30); //三叉路を直進
Off(OUT_A);
Off(OUT_C);
n=0;
S=1; //nをリセットして交点の...
nmax+=7; //基準変更
}
while ((n>=nmax)&&(S==1)) //上のことが起きた...
{
PlaySound(SOUND_CLICK);
Off(OUT_A);
Off(OUT_C);
Wait(200); //十字路なので2秒止まる
OnRev(OUT_C);
Off(OUT_A);
Wait(70); //道に対して車体をまっ...
OnFwd(OUT_A);
OnFwd(OUT_C);
Wait(30); //十字路を直進
Off(OUT_A);
Off(OUT_C);
n=0;
S=2; //nをリセットして交点の...
}
}
Off(OUT_A); //eが15以上になったのでゴール...
Off(OUT_C);
OnFwd(OUT_C); //ゴールしたあとの車体をまっす...
OnRev(OUT_A);
Wait(90);
Off(OUT_A);
Off(OUT_C);
OnRev(OUT_B); //シュートして終了する
Wait(20);
Off(OUT_B);
}
}
*ロボットの動作動画 [#v3cc8f0c]
#ref(endomov.mov)
*未解決の問題点 [#qe875fba]
-ピンポン玉をとる際に誤ってピンポン玉に本体がぶつかり、と...
-初めは、コースが事前にわからない状態でもどこの分かれ道を...
*かかった時間 [#p23434fa]
-ロボットの試行錯誤…約60時間
-このロボット本体…約1時間
-プログラム…約1時間
-プログラムの微調整…約4時間
-ホームページ…約4時間
*まとめと反省 [#t079a71e]
今回初めはより性能の高いロボットを作ろうとしていたが、結...
限られた材料で理想的なロボットを作ることの難しさを改めて...
ページ名: