2016b/Member/mamedeppo/Mission3
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
#Contents
*課題 [#y01c07bb]
#ref(マップ.png)
上のようなマップ上でピッチャーロボットとバッターロボット...
詳細なルールについては[[課題3:http://yakushi.shinshu-u.a...
*ロボット [#ic84c96f]
**バッターロボット [#i0caf107]
作成は自分が担当した。
#ref(前から.png)
課題2の反省(光センサーが床面と近すぎると進むのが遅く負...
#ref(ばらばら.png)
補強した部分が多くパーツが大きいが、NXTの箱にはしまいやすい
#ref(真上コード.png)
立幅は20cmぎりぎり、横幅は15cmない程度。基本ルール「...
#ref(開.png)
#ref(閉.png)
アームの構造。モーターAで上半分を開閉させる。上半分はモー...
#ref(アーム0.png)
このアームの形はバッターらしくはないが、理論上はボールを...
**ピッチャーロボット [#u3b8b7b9]
詳しくは[[こちらのページ:http://yakushi.shinshu-u.ac.jp/r...
ななめのレールに球を一つ一つ落として、球の自重で転がる仕...
*プログラム [#tbdddc19]
**Bのバッターボックスにつくまでのプログラム [#y36a4705]
ロボットがCからスタートしてBで向きを変える所までのプログ...
下のGIFにおおよその動きとその説明をまとめた。
#ref(3TRUE.gif)
***PR間につくまで [#efb10847]
#define go_straight(t) RotateMotor(OUT_BC,50,t);
#define go_nonstop OnFwd(OUT_BC,50);
#define SASETSU OnRev(OUT_BC,50); Wait(400); Off...
決まった距離だけ直進するときはgo_straight(t)、光センサー...
また、SASETSUは課題2で使用したものを流用した。
sub BEGIN()
{
Wait(1500);
turn(120);
go_straight(1300);
PlaySound(SOUND_CLICK);
go_nonstop;
until(SENSOR_3<=40);
Off(OUT_BC);
PlaySound(SOUND_CLICK);
Wait(1000);
SASETSU;
}
***五秒間ライントレース [#tcfe86a6]
#define turn_right OnFwd(OUT_B,40);
#define turn_right_slow OnFwd(OUT_B,40); OnRev(OUT_C,30);
#define turn_left OnFwd(OUT_C,40);
#define turn_left_slow OnFwd(OUT_C,40); OnRev(OUT_B,30);
#define go_line OnFwd(OUT_BC,40);
#define FOLLOW_TIME 5000
sub FOLLOW_LINE()
{
long t0=CurrentTick();
while(CurrentTick()-t0<FOLLOW_TIME){
if(SENSOR_3<=38){
turn_right;
}else if(SENSOR_3<=45){
turn_right_slow;
}else if(SENSOR_3<=50){
go_line;
}else if(SENSOR_3<=59){
turn_left_slow;
}else{
turn_left;
}
}
Off(OUT_BC);
}
課題2で書いたライントレースを少し変えて、五秒の間だけ実...
また、時間以外の制御方法がわからなかったので何回か試走さ...
***安定して定位置につく [#n9c9b6f8]
初めはBの枠で交差点認識した時に停止させてから向きを調整す...
・交差点認識の誤差が大きい
・交差点認識した後の機体がマップの外に向き、そこから軌道...
等の理由で、交差点認識ではなく、R-Bの線に平行な向きのまま...
sub READY()
{
go_straight(500);
OnRev(OUT_BC,50);
until(SENSOR_3<=40);
Off(OUT_BC);
PlaySound(SOUND_CLICK);
Wait(1000);
turn(20);
go_straight(400);
turn(-70);
PlaySound(SOUND_UP);
}
ピッチャーに向き合うとき、超音波センサーを当初利用しよう...
***メインプログラム [#nb3da1c8]
task main()
{
SetSensorLight(S3);
BEGIN();
FOLLOW_LINE();
READY();
}
**ピッチングプログラム [#m903613d]
本課題ではピッチャーロボットがマスターである。より詳しい...
#define TURNR(A) RotateMotorEx(OUT_BC,40,A,100,true,true...
#define TURNL(L) RotateMotorEx(OUT_BC,40,L,-100,true,tru...
#define TYOKUSIN OnFwdSync(OUT_BC,40,0);
#define CM(K) RotateMotorEx(OUT_BC,40,20.47315*K,0,true,...
#define HASSYA RotateMotor(OUT_A,-90,90);Wait(1000);Rota...
ロボットがマウンドに入るまでのサブルーチン。
sub BASYO()
{
SetSensorLight(S1);
TYOKUSIN;
until(SENSOR_1<35);
Off(OUT_BC);
Wait(500);
CM(5);
Wait(500);
}
task main()
{
int SIREI;
TURNR(110);
CM(36);
TURNR(150);
repeat(3){
BASYO();
}
CM(-13);
TURNR(130);
until(BluetoothStatus(1)==NO_ERR);
RemotePlayTone(1,440,1000);
Wait(1000);
RemoteStartProgram(1,"DAGEKI.rxe"); //バッターロ...
while(SIREI<12){ //SIREIが12未...
ReceiveRemoteNumber(MAILBOX1,true,SIREI);
if(SIREI==11){ //SIREIが11の...
PlaySound(SOUND_CLICK);
Wait(200);
HASSYA;
SIREI=0;
}
}
}
**バッティングプログラム [#n9532bcd]
バッターロボットがスレイブである。より詳しい説明は[[こち...
#define CATCH Wait(500);RotateMotor(OUT_A,70,45);Wait(10...
#define UTU RotateMotor(OUT_A,-90,45);Wait(1000); ...
#define TURN(s,t) RotateMotorEx(OUT_BC,40,s,t,true,true)...
int x=1;
sub BATTING()
{
SendRemoteNumber(0,MAILBOX1,11);
Wait(1500);
CATCH;
if(x==1){ //球によってゴールを変える
TURN(80,100); //右側4点のゴール
UTU;
TURN(80,-100);
x = x+1;
} else if(x==2){
TURN(95,-100); //左側4点のゴール
UTU;
TURN(95,100);
x = x+1;
} else if(x==3){
TURN(40,100); //右側6点のゴール
UTU;
TURN(40,-100);
x = x+1;
} else if(x==4){
TURN(45,-100); //左側6点のゴール
UTU;
TURN(45,100);
x = x+1;
} else {
TURN(45,-100); //左側6点のゴール
UTU;
TURN(45,100);
x = x+1;
}
}
10点のゴールは遠く、ボールがピッチャーロボットにぶつかり...
ピッチャーロボットからDAGEKIの命令が送られるたびに実行し...
task main()
{
UTU;
while(x<6){
BATTING();
}
SendRemoteNumber(0,MAILBOX1,12);
}
*実演の反省 [#gef37162]
総合3位だった。点数が入ったのは二巡目の6点のみ。
-プログラム上の問題と両方のロボットが定位置につくまでは完...
この点で技術点が多く入ったと思う。
-ボールがまっすぐ転がらずキャッチできない・ゴールできない...
-紙の端をタイヤが巻き込む、球が詰まるなどのミスがあった。
全体的に両方のロボットを合わせた調整が必要だったと感じた。
*感想[#r8a2947a]
-超音波センサーを使いこなせなかったのは心残りである。
-三回目の課題で慣れてきたとはいえ、理想的なロボットを作る...
-今まで使ったセンサー・基本動作と通信を活用して、目に見え...
*ロボティクス入門ゼミの感想 [#aa2d84d8]
気軽な興味で参加し、マインドストームもプログラミングも触...
終了行:
#Contents
*課題 [#y01c07bb]
#ref(マップ.png)
上のようなマップ上でピッチャーロボットとバッターロボット...
詳細なルールについては[[課題3:http://yakushi.shinshu-u.a...
*ロボット [#ic84c96f]
**バッターロボット [#i0caf107]
作成は自分が担当した。
#ref(前から.png)
課題2の反省(光センサーが床面と近すぎると進むのが遅く負...
#ref(ばらばら.png)
補強した部分が多くパーツが大きいが、NXTの箱にはしまいやすい
#ref(真上コード.png)
立幅は20cmぎりぎり、横幅は15cmない程度。基本ルール「...
#ref(開.png)
#ref(閉.png)
アームの構造。モーターAで上半分を開閉させる。上半分はモー...
#ref(アーム0.png)
このアームの形はバッターらしくはないが、理論上はボールを...
**ピッチャーロボット [#u3b8b7b9]
詳しくは[[こちらのページ:http://yakushi.shinshu-u.ac.jp/r...
ななめのレールに球を一つ一つ落として、球の自重で転がる仕...
*プログラム [#tbdddc19]
**Bのバッターボックスにつくまでのプログラム [#y36a4705]
ロボットがCからスタートしてBで向きを変える所までのプログ...
下のGIFにおおよその動きとその説明をまとめた。
#ref(3TRUE.gif)
***PR間につくまで [#efb10847]
#define go_straight(t) RotateMotor(OUT_BC,50,t);
#define go_nonstop OnFwd(OUT_BC,50);
#define SASETSU OnRev(OUT_BC,50); Wait(400); Off...
決まった距離だけ直進するときはgo_straight(t)、光センサー...
また、SASETSUは課題2で使用したものを流用した。
sub BEGIN()
{
Wait(1500);
turn(120);
go_straight(1300);
PlaySound(SOUND_CLICK);
go_nonstop;
until(SENSOR_3<=40);
Off(OUT_BC);
PlaySound(SOUND_CLICK);
Wait(1000);
SASETSU;
}
***五秒間ライントレース [#tcfe86a6]
#define turn_right OnFwd(OUT_B,40);
#define turn_right_slow OnFwd(OUT_B,40); OnRev(OUT_C,30);
#define turn_left OnFwd(OUT_C,40);
#define turn_left_slow OnFwd(OUT_C,40); OnRev(OUT_B,30);
#define go_line OnFwd(OUT_BC,40);
#define FOLLOW_TIME 5000
sub FOLLOW_LINE()
{
long t0=CurrentTick();
while(CurrentTick()-t0<FOLLOW_TIME){
if(SENSOR_3<=38){
turn_right;
}else if(SENSOR_3<=45){
turn_right_slow;
}else if(SENSOR_3<=50){
go_line;
}else if(SENSOR_3<=59){
turn_left_slow;
}else{
turn_left;
}
}
Off(OUT_BC);
}
課題2で書いたライントレースを少し変えて、五秒の間だけ実...
また、時間以外の制御方法がわからなかったので何回か試走さ...
***安定して定位置につく [#n9c9b6f8]
初めはBの枠で交差点認識した時に停止させてから向きを調整す...
・交差点認識の誤差が大きい
・交差点認識した後の機体がマップの外に向き、そこから軌道...
等の理由で、交差点認識ではなく、R-Bの線に平行な向きのまま...
sub READY()
{
go_straight(500);
OnRev(OUT_BC,50);
until(SENSOR_3<=40);
Off(OUT_BC);
PlaySound(SOUND_CLICK);
Wait(1000);
turn(20);
go_straight(400);
turn(-70);
PlaySound(SOUND_UP);
}
ピッチャーに向き合うとき、超音波センサーを当初利用しよう...
***メインプログラム [#nb3da1c8]
task main()
{
SetSensorLight(S3);
BEGIN();
FOLLOW_LINE();
READY();
}
**ピッチングプログラム [#m903613d]
本課題ではピッチャーロボットがマスターである。より詳しい...
#define TURNR(A) RotateMotorEx(OUT_BC,40,A,100,true,true...
#define TURNL(L) RotateMotorEx(OUT_BC,40,L,-100,true,tru...
#define TYOKUSIN OnFwdSync(OUT_BC,40,0);
#define CM(K) RotateMotorEx(OUT_BC,40,20.47315*K,0,true,...
#define HASSYA RotateMotor(OUT_A,-90,90);Wait(1000);Rota...
ロボットがマウンドに入るまでのサブルーチン。
sub BASYO()
{
SetSensorLight(S1);
TYOKUSIN;
until(SENSOR_1<35);
Off(OUT_BC);
Wait(500);
CM(5);
Wait(500);
}
task main()
{
int SIREI;
TURNR(110);
CM(36);
TURNR(150);
repeat(3){
BASYO();
}
CM(-13);
TURNR(130);
until(BluetoothStatus(1)==NO_ERR);
RemotePlayTone(1,440,1000);
Wait(1000);
RemoteStartProgram(1,"DAGEKI.rxe"); //バッターロ...
while(SIREI<12){ //SIREIが12未...
ReceiveRemoteNumber(MAILBOX1,true,SIREI);
if(SIREI==11){ //SIREIが11の...
PlaySound(SOUND_CLICK);
Wait(200);
HASSYA;
SIREI=0;
}
}
}
**バッティングプログラム [#n9532bcd]
バッターロボットがスレイブである。より詳しい説明は[[こち...
#define CATCH Wait(500);RotateMotor(OUT_A,70,45);Wait(10...
#define UTU RotateMotor(OUT_A,-90,45);Wait(1000); ...
#define TURN(s,t) RotateMotorEx(OUT_BC,40,s,t,true,true)...
int x=1;
sub BATTING()
{
SendRemoteNumber(0,MAILBOX1,11);
Wait(1500);
CATCH;
if(x==1){ //球によってゴールを変える
TURN(80,100); //右側4点のゴール
UTU;
TURN(80,-100);
x = x+1;
} else if(x==2){
TURN(95,-100); //左側4点のゴール
UTU;
TURN(95,100);
x = x+1;
} else if(x==3){
TURN(40,100); //右側6点のゴール
UTU;
TURN(40,-100);
x = x+1;
} else if(x==4){
TURN(45,-100); //左側6点のゴール
UTU;
TURN(45,100);
x = x+1;
} else {
TURN(45,-100); //左側6点のゴール
UTU;
TURN(45,100);
x = x+1;
}
}
10点のゴールは遠く、ボールがピッチャーロボットにぶつかり...
ピッチャーロボットからDAGEKIの命令が送られるたびに実行し...
task main()
{
UTU;
while(x<6){
BATTING();
}
SendRemoteNumber(0,MAILBOX1,12);
}
*実演の反省 [#gef37162]
総合3位だった。点数が入ったのは二巡目の6点のみ。
-プログラム上の問題と両方のロボットが定位置につくまでは完...
この点で技術点が多く入ったと思う。
-ボールがまっすぐ転がらずキャッチできない・ゴールできない...
-紙の端をタイヤが巻き込む、球が詰まるなどのミスがあった。
全体的に両方のロボットを合わせた調整が必要だったと感じた。
*感想[#r8a2947a]
-超音波センサーを使いこなせなかったのは心残りである。
-三回目の課題で慣れてきたとはいえ、理想的なロボットを作る...
-今まで使ったセンサー・基本動作と通信を活用して、目に見え...
*ロボティクス入門ゼミの感想 [#aa2d84d8]
気軽な興味で参加し、マインドストームもプログラミングも触...
ページ名: