2016b/Member/yugu/Mission3
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
目次
#contents
* 課題 [#g66f3a51]
課題2で使用したフィールドを用いて、ピッチャーロボットとバ...
#ref(kadai3.png)
** 基本ルール [#uc0f2a33]
ピッチャーロボットとバッターロボットが所定の位置まで移動...
ピッチャーロボットはA地点をスタートしM地点まで移動する
バッターロボットはC地点をスタートしB地点まで移動する
スタート時はそれぞれA地点B地点の枠内に収まること(高さの...
M地点、B地点では接地している部分が枠内に入っていること
ピッチャーロボットはスタート時にピンポン球を5個まで保持で...
ピッチャーロボットが投げたピンポン球をバッターロボットは3...
移動の途中で目標に接触してはならない
** 基本得点の計算方法 [#a3dc5231]
目標は5個あり、それぞれに書かれている点数を合計する。ただ...
打つことができたにもかかわらずどの目標にも入らなかった場...
** 技術点の計算方法 [#q8e1f6b4]
以下の動作の精度・スピード・確実性などを含めた技術的な工...
得点の目安:
スタートしてから目的地点まで移動する速さ、正確さ (3点)
ピンポン玉を投げる動作 (3点)
ピンポン玉を打つ動作 (3点)
2台のロボットの連携の良さ (3点)
自立型のロボットとしての形や動作の美しさ、斬新さ (3点)
ロボコン出場ロボットとしての完成度 (3点)
その他 (2点)
* バッターロボットの説明 [#n111705a]
私たちは、バッターロボットを制作した。
#ref(バッターロボット.png)
** ボールを打ち返す部分の説明 [#zb63ab41]
確実にピンポン玉を打ち返すために、一般的な野球のように棒...
#ref(ピンポン玉を打ち返すパーツ.png)
** 移動部分の説明 [#ge41b186]
2つのタイヤを別々のモーターで動かす。また、移動中にライン...
#ref(タイヤと2つのライトセンサ.png)
#ref(黄色いツメ.png)
** 通信部分の説明 [#d7bd46d5]
ピッチャーロボットがライトセンサーを用いて、バッターロボ...
* ピッチャーロボットの説明 [#f3d127b5]
#ref(ピッチャーロボット.png)
詳しくはこちらのページを参照してください。
http://yakushi.shinshu-u.ac.jp/robotics/?2016b%2FMember%2...
http://yakushi.shinshu-u.ac.jp/robotics/?2016b%2FMember%2...
* プログラムの説明 [#o13f7641]
** 定義の説明 [#u5ebaca2]
#define KURO 44 //ライントレース黒のしきい値
#define SHIRO 50 //ライントレース白のしきい値
#define go_forward(t) OnFwd(OUT_AC);Wait(t);Off(OUT_AC);...
#define back(t) OnRev(OUT_AC);Wait(t);Off(OUT_AC); //...
#define senkai_left(t) OnFwd(OUT_C);OnRev(OUT_A);Wait(t)...
#define senkai_right(t) OnFwd(OUT_A);OnRev(OUT_C);Wait(t...
#define turn_left(t) OnFwd(OUT_C);Off(OUT_A);Wait(t);Off...
#define turn_right(t) OnFwd(OUT_A);Off(OUT_C);Wait(t);Of...
#define SIGNALPITCHER 111 //ピッチャロボットがバッター...
#define SIGNALBATTER 222 //バッターロボットがピッチャー...
** サブルーチンの説明 [#kf24ae18]
sub line() //ライントレースのプログラム
{
int n=0;
while(n==0){
if((SENSOR_1>SHIRO)&&(SENSOR_3>SHIRO)){
OnFwd(OUT_AC); //左右のライトセンサが両方と...
}if((SENSOR_1>SHIRO)&&(SENSOR_3<KURO)){
OnFwd(OUT_A);
OnRev(OUT_C); //右のライトセンサが黒、左のラ...
}if((SENSOR_1<KURO)&&(SENSOR_3>SHIRO)){
OnFwd(OUT_C);
OnRev(OUT_A); //右のライトセンサが白、左のラ...
}if((SENSOR_1<KURO)&&(SENSOR_3<KURO)){
Off(OUT_AC);
Wait(50); //左右のライトセンサが両方とも黒...
n++; //ライントレースの終了
}
}
}
sub suichoku() //黒いラインに対してロボットを垂直に向か...
{
int m=0;
while(m==0){
OnFwd(OUT_AC);
if((SENSOR_1<47)&&(SENSOR_3<42)){
Off(OUT_AC);
Wait(50);
m++; //左右のライトセンサが黒を感知したら停...
}
if(SENSOR_1<45){
Off(OUT_AC);
Wait(30);
turn_left(8);
back(10);
Wait(50); //左のライトセンサが黒を感知したら...
}
if(SENSOR_3<40){
Off(OUT_AC);
Wait(30);
turn_right(10);
back(10);
Wait(50); //右のライトセンサが黒を感知したら...
}
}
}
正確に垂直を向かせたいが、左右のライトセンサで示す値にず...
sub shoot6r() //バッターロボットから見て右側の6点のゴー...
{
senkai_right(017); //ゴールの方を向く
go_forward(020); //転がるピンポン玉を追いかける
OnRev(OUT_B);
Wait(15); //ピンポン玉を打つ
Off(OUT_B);
OnFwd(OUT_B);
Wait(15);
Off(OUT_B); //板を元に戻す
back(025);
senkai_left(020); //バッターロボットをピッチャーロ...
Wait(50);
}
sub shoot6l() //バッターロボットから見て左側の6点のゴー...
{
senkai_left(018); //ゴールの方を向く
go_forward(030); //転がるピンポン玉を追いかける
OnRev(OUT_B);
Wait(15); //ピンポン玉を打つ
Off(OUT_B);
OnFwd(OUT_B);
Wait(15);
Off(OUT_B); //板を元に戻す
back(045);
senkai_right(026);
Wait(50); //バッターロボットをピッチャーロボットに...
}
sub shoot4r() //バッターロボットから見て右側の4点のゴー...
{
senkai_right(036); //ゴールのほうを向く
go_forward(020); //転がるピンポン玉を追いかける
OnRev(OUT_B);
Wait(15); //ピンポン玉を打つ
Off(OUT_B);
OnFwd(OUT_B);
Wait(15);
Off(OUT_B); //板を元に戻す
back(025);
senkai_left(034);
Wait(50); //バッターロボットをピッチャーロボットに...
}
sub shoot10() //10点のゴールを狙うプログラム
{
senkai_left(006); //ゴールの方を向く
go_forward(050); //転がるピンポン玉を追いかける
OnRev(OUT_B);
Wait(15); //ピンポン玉を打つ
Off(OUT_B);
OnFwd(OUT_B);
Wait(15);
Off(OUT_B); //板を元に戻す
back(055);
senkai_right(007);
Wait(50); //バッターロボットをピッチャーロボットに...
}
** メインプログラムの説明 [#n1836fb6]
task main() //メインプログラム
{
SetSensor(SENSOR_1,SENSOR_LIGHT);
SetSensor(SENSOR_3,SENSOR_LIGHT);
senkai_left(35);
Wait(30);
go_forward(200);
Wait(30);
senkai_left(34);
Wait(30);
go_forward(210);
Wait(30); //画像:kadai3-移動の、赤丸の位置まで移動
#ref(kadai3-移動.png)
line(); //黒線感知のためのライントレース
go_forward(50);
senkai_left(85);
back(80);
suichoku(); //画像:kadai3-黒線の、赤く塗られた部分の...
#ref(kadai3-黒線.png)
go_forward(99);
senkai_left(105); //ピッチャーロボットのほうを向く
go_forward(125); //通信のために前進
ClearMessage();
Off(OUT_AC);
until(Message() == SIGNALPITCHER);
SendMessage(SIGNALBATTER);
PlaySound(SOUND_CLICK); //ピッチャーロボットからSIGN...
back(165); //バッターボックスに戻る
Wait(200);
shoot4r(); //右側の4点ゴールを狙う
Wait(100);
shoot6l(); //左側の6点ゴールを狙う
Wait(185);
shoot6r(); //右側の6点ゴールを狙う
Wait(130);
shoot6l(); //左側の6点ゴールを狙う
Wait(160);
shoot10(); //10点ゴールを狙う
}
* 結果 [#u6140431]
競技の1周目の基本点は、一投目4点、二投目1点、三投目6点、...
* 感想 [#y7b118e4]
私たちのグループは確かに一位になることができたが、準備段...
今回の競技会で私は司会進行を務めた。慣れない進行だったが...
終了行:
目次
#contents
* 課題 [#g66f3a51]
課題2で使用したフィールドを用いて、ピッチャーロボットとバ...
#ref(kadai3.png)
** 基本ルール [#uc0f2a33]
ピッチャーロボットとバッターロボットが所定の位置まで移動...
ピッチャーロボットはA地点をスタートしM地点まで移動する
バッターロボットはC地点をスタートしB地点まで移動する
スタート時はそれぞれA地点B地点の枠内に収まること(高さの...
M地点、B地点では接地している部分が枠内に入っていること
ピッチャーロボットはスタート時にピンポン球を5個まで保持で...
ピッチャーロボットが投げたピンポン球をバッターロボットは3...
移動の途中で目標に接触してはならない
** 基本得点の計算方法 [#a3dc5231]
目標は5個あり、それぞれに書かれている点数を合計する。ただ...
打つことができたにもかかわらずどの目標にも入らなかった場...
** 技術点の計算方法 [#q8e1f6b4]
以下の動作の精度・スピード・確実性などを含めた技術的な工...
得点の目安:
スタートしてから目的地点まで移動する速さ、正確さ (3点)
ピンポン玉を投げる動作 (3点)
ピンポン玉を打つ動作 (3点)
2台のロボットの連携の良さ (3点)
自立型のロボットとしての形や動作の美しさ、斬新さ (3点)
ロボコン出場ロボットとしての完成度 (3点)
その他 (2点)
* バッターロボットの説明 [#n111705a]
私たちは、バッターロボットを制作した。
#ref(バッターロボット.png)
** ボールを打ち返す部分の説明 [#zb63ab41]
確実にピンポン玉を打ち返すために、一般的な野球のように棒...
#ref(ピンポン玉を打ち返すパーツ.png)
** 移動部分の説明 [#ge41b186]
2つのタイヤを別々のモーターで動かす。また、移動中にライン...
#ref(タイヤと2つのライトセンサ.png)
#ref(黄色いツメ.png)
** 通信部分の説明 [#d7bd46d5]
ピッチャーロボットがライトセンサーを用いて、バッターロボ...
* ピッチャーロボットの説明 [#f3d127b5]
#ref(ピッチャーロボット.png)
詳しくはこちらのページを参照してください。
http://yakushi.shinshu-u.ac.jp/robotics/?2016b%2FMember%2...
http://yakushi.shinshu-u.ac.jp/robotics/?2016b%2FMember%2...
* プログラムの説明 [#o13f7641]
** 定義の説明 [#u5ebaca2]
#define KURO 44 //ライントレース黒のしきい値
#define SHIRO 50 //ライントレース白のしきい値
#define go_forward(t) OnFwd(OUT_AC);Wait(t);Off(OUT_AC);...
#define back(t) OnRev(OUT_AC);Wait(t);Off(OUT_AC); //...
#define senkai_left(t) OnFwd(OUT_C);OnRev(OUT_A);Wait(t)...
#define senkai_right(t) OnFwd(OUT_A);OnRev(OUT_C);Wait(t...
#define turn_left(t) OnFwd(OUT_C);Off(OUT_A);Wait(t);Off...
#define turn_right(t) OnFwd(OUT_A);Off(OUT_C);Wait(t);Of...
#define SIGNALPITCHER 111 //ピッチャロボットがバッター...
#define SIGNALBATTER 222 //バッターロボットがピッチャー...
** サブルーチンの説明 [#kf24ae18]
sub line() //ライントレースのプログラム
{
int n=0;
while(n==0){
if((SENSOR_1>SHIRO)&&(SENSOR_3>SHIRO)){
OnFwd(OUT_AC); //左右のライトセンサが両方と...
}if((SENSOR_1>SHIRO)&&(SENSOR_3<KURO)){
OnFwd(OUT_A);
OnRev(OUT_C); //右のライトセンサが黒、左のラ...
}if((SENSOR_1<KURO)&&(SENSOR_3>SHIRO)){
OnFwd(OUT_C);
OnRev(OUT_A); //右のライトセンサが白、左のラ...
}if((SENSOR_1<KURO)&&(SENSOR_3<KURO)){
Off(OUT_AC);
Wait(50); //左右のライトセンサが両方とも黒...
n++; //ライントレースの終了
}
}
}
sub suichoku() //黒いラインに対してロボットを垂直に向か...
{
int m=0;
while(m==0){
OnFwd(OUT_AC);
if((SENSOR_1<47)&&(SENSOR_3<42)){
Off(OUT_AC);
Wait(50);
m++; //左右のライトセンサが黒を感知したら停...
}
if(SENSOR_1<45){
Off(OUT_AC);
Wait(30);
turn_left(8);
back(10);
Wait(50); //左のライトセンサが黒を感知したら...
}
if(SENSOR_3<40){
Off(OUT_AC);
Wait(30);
turn_right(10);
back(10);
Wait(50); //右のライトセンサが黒を感知したら...
}
}
}
正確に垂直を向かせたいが、左右のライトセンサで示す値にず...
sub shoot6r() //バッターロボットから見て右側の6点のゴー...
{
senkai_right(017); //ゴールの方を向く
go_forward(020); //転がるピンポン玉を追いかける
OnRev(OUT_B);
Wait(15); //ピンポン玉を打つ
Off(OUT_B);
OnFwd(OUT_B);
Wait(15);
Off(OUT_B); //板を元に戻す
back(025);
senkai_left(020); //バッターロボットをピッチャーロ...
Wait(50);
}
sub shoot6l() //バッターロボットから見て左側の6点のゴー...
{
senkai_left(018); //ゴールの方を向く
go_forward(030); //転がるピンポン玉を追いかける
OnRev(OUT_B);
Wait(15); //ピンポン玉を打つ
Off(OUT_B);
OnFwd(OUT_B);
Wait(15);
Off(OUT_B); //板を元に戻す
back(045);
senkai_right(026);
Wait(50); //バッターロボットをピッチャーロボットに...
}
sub shoot4r() //バッターロボットから見て右側の4点のゴー...
{
senkai_right(036); //ゴールのほうを向く
go_forward(020); //転がるピンポン玉を追いかける
OnRev(OUT_B);
Wait(15); //ピンポン玉を打つ
Off(OUT_B);
OnFwd(OUT_B);
Wait(15);
Off(OUT_B); //板を元に戻す
back(025);
senkai_left(034);
Wait(50); //バッターロボットをピッチャーロボットに...
}
sub shoot10() //10点のゴールを狙うプログラム
{
senkai_left(006); //ゴールの方を向く
go_forward(050); //転がるピンポン玉を追いかける
OnRev(OUT_B);
Wait(15); //ピンポン玉を打つ
Off(OUT_B);
OnFwd(OUT_B);
Wait(15);
Off(OUT_B); //板を元に戻す
back(055);
senkai_right(007);
Wait(50); //バッターロボットをピッチャーロボットに...
}
** メインプログラムの説明 [#n1836fb6]
task main() //メインプログラム
{
SetSensor(SENSOR_1,SENSOR_LIGHT);
SetSensor(SENSOR_3,SENSOR_LIGHT);
senkai_left(35);
Wait(30);
go_forward(200);
Wait(30);
senkai_left(34);
Wait(30);
go_forward(210);
Wait(30); //画像:kadai3-移動の、赤丸の位置まで移動
#ref(kadai3-移動.png)
line(); //黒線感知のためのライントレース
go_forward(50);
senkai_left(85);
back(80);
suichoku(); //画像:kadai3-黒線の、赤く塗られた部分の...
#ref(kadai3-黒線.png)
go_forward(99);
senkai_left(105); //ピッチャーロボットのほうを向く
go_forward(125); //通信のために前進
ClearMessage();
Off(OUT_AC);
until(Message() == SIGNALPITCHER);
SendMessage(SIGNALBATTER);
PlaySound(SOUND_CLICK); //ピッチャーロボットからSIGN...
back(165); //バッターボックスに戻る
Wait(200);
shoot4r(); //右側の4点ゴールを狙う
Wait(100);
shoot6l(); //左側の6点ゴールを狙う
Wait(185);
shoot6r(); //右側の6点ゴールを狙う
Wait(130);
shoot6l(); //左側の6点ゴールを狙う
Wait(160);
shoot10(); //10点ゴールを狙う
}
* 結果 [#u6140431]
競技の1周目の基本点は、一投目4点、二投目1点、三投目6点、...
* 感想 [#y7b118e4]
私たちのグループは確かに一位になることができたが、準備段...
今回の競技会で私は司会進行を務めた。慣れない進行だったが...
ページ名: