2015b/Member/velocity/Mission3
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[2015b/MemberOnly]]
#contents
*課題 [#ce5eb945]
&size(20){ボールを離れた場所から缶に当てるロボットとボー...
**ミッション [#k8bc0ce7]
課題2で作成したコースを用いてタイムレースを行う。
#ref(2015b/Member/velocity/Mission3/2015b-mission3.png,50...
***ルール [#g792ab8d]
-競技時間はロボットAがSTART A地点のスタートラインを横切っ...
-ロボットAはSTART A地点から出発し、P地点におかれた赤いボ...
-アルミ缶は中身が入っているものを使う。
-RISのチームはアルミ缶の上に灯台としてランタンを置く。
-ボールがアルミ缶に当たる前にロボットBがボールに触っては...
-ロボットAはセンターラインを超えては行けない。
-アルミ缶を5cm以上動かした場合は減点
*ロボット [#j4091ad3]
今回使用したロボットは赤外線センサーを用いた次のようなロ...
なお、私たちが担当したのはロボットB(受けて側)である。
#ref(2015b/Member/velocity/Mission3/robot.jpg,50%,ロボット)
**仕組み [#fc786aec]
***キャッチ方法 [#j5cc1124]
通常はこのような形で走行する。
#ref(2015b/Member/velocity/Mission3/normalrun.jpg,50%,ノ...
この形のままボールキャッチ位置まで移動してくる。
腕の先の赤外線センサーがボールがアルミ缶に向かって来たこ...
#ref(2015b/Member/velocity/Mission3/catchrun.jpg,50%,キャ...
しかし写真を見ても想像できるだろうが、これではアルミ缶も...
そこで活躍するのがこの長い腕である。
アルミ缶とボールを両方キャッチした後、ロボットは後退する...
#ref(2015b/Member/velocity/Mission3/structure1.jpg,50%,キ...
#ref(2015b/Member/velocity/Mission3/structure2.jpg,50%,キ...
#ref(2015b/Member/velocity/Mission3/structure3.jpg,50%,キ...
#ref(2015b/Member/velocity/Mission3/structure4.jpg,50%,キ...
#ref(2015b/Member/velocity/Mission3/structure5.jpg,50%,キ...
***後ろに伸びた長い棒 [#j3a9a128]
この棒は錘である。
このロボットは前に長い構造をしている。そのため重心が前に...
#ref(2015b/Member/velocity/Mission3/weight.jpg,50%,錘)
一番上ではフィグがロボコンの様子を見物している。
#ref(2015b/Member/velocity/Mission3/fig.jpg,50%,フィグ)
*プログラム [#b8919fb0]
**定義 [#cb8e16a6]
#define GO 10
#define STOP 99
#define ready 20
#define speed 35
今回は正確さが勝負になるので、電池の増減にも対応できるよ...
**関数 [#r57b3ff8]
void move1() {
int msg = STOP;
Off(OUT_B);
RotateMotorEx(OUT_AC,speed,850,0,true,true); //前進
while (msg != GO) { //信号1を受信す...
Off(OUT_ABC);
Wait(1);
ReceiveRemoteNumber(MAILBOX1,true,msg);
}
}
void move2() {
RotateMotor(OUT_C,speed,-320); //回...
OnFwd(OUT_AC,1);
Wait(1);
}
void move3(){
RotateMotorEx(OUT_AC,speed,-200,0,true,true); //缶...
}
void catch(){
long t = 0;
SetSensorLowspeed(S4);
SendResponseNumber(MAILBOX1,ready); //信号2を送信
while(true) { //赤...
if (SensorUS(S4) >= 30 && t <= 500){ //たら腕を降...
t++;
Wait(1);
} else {
RotateMotor(OUT_B,80,140);
break;
}
}
OnFwd(OUT_B,10);
}
void move4() {
OnFwd(OUT_AC,1);
Wait(1);
RotateMotorEx(OUT_AC,speed,600,0,true,true); //後...
Off(OUT_B);
}
void AfterCatch() {
RotateMotor(OUT_C,speed,-340); //帰れ
OnFwd(OUT_AC,1);
Wait(1);
RotateMotorEx(OUT_AC,speed,-900,0,true,true);
}
**タスクメイン [#c5fd46f5]
task main()
{
move1();
move2();
move3();
catch();
move4();
AfterCatch();
}
*動き方 [#mb819146]
#ref(2015b/Member/velocity/Mission3/moving.png,50%,動き方)
訂正: 左側の青字の??→赤字の??
左側の下にある赤字の?→?
*最後に [#b739bbd9]
**工夫点 [#p44662f6]
-ボールとアルミ缶の判別
初め、どこにボールがあるのか、どこにアルミ缶があるのかを...
そこで判別を諦め、両方キャッチし、アルミ缶だけ逃がすとい...
詳しくは「仕組みのキャッチの項目」に図を用いて説明してあ...
-キャッチのタイミング
ペアのロボットから来たボールをどう認識するか、最初は時間...
赤外線センサーの前を横切りキャッチゾーンに入るとそれを赤...
#ref(2015b/Member/velocity/Mission3/sesororder.jpg,50%,赤...
-2台のロボットの連携
今回はロボットを2台使っているため、それぞれがペアのロボ...
そこで思いついたのが通信である。私達のロボットBはAがアル...
Aがアルミ缶を探す
↓
A準備OK!(信号を送る)
↓
B出発
↓
B構える
↓
B準備OK!(信号を送る)
↓
Aボール投げる
↓
ボール、キャッチゾーンに侵入
↓
Bキャッチ
という流れである。
**壁 [#l2fd43a4]
-ロボットの形状
上でも述べたが、大きいロボットとなってしまったのでバラン...
形状での問題点は重さだけでなかった。腕の一部がコースの紙...
これに関しては紙をテープで固定することで解決する。
-赤外線の誤作動
数回に一回赤外線が反応しなく、ボールが来ているのに腕を降...
本当はボールが来てすぐ閉じた方が確実にボールを捕まえられ...
**改善点・欠点 [#j3714d85]
何度も述べている通り、大きさである。やはりロボットはでき...
そして一番の問題はボールのキャッチミスである。実際本番は...
**感想 [#zf9ff89d]
課題1はロボット中心、課題2がプログラム中心、そして課題...
終了行:
[[2015b/MemberOnly]]
#contents
*課題 [#ce5eb945]
&size(20){ボールを離れた場所から缶に当てるロボットとボー...
**ミッション [#k8bc0ce7]
課題2で作成したコースを用いてタイムレースを行う。
#ref(2015b/Member/velocity/Mission3/2015b-mission3.png,50...
***ルール [#g792ab8d]
-競技時間はロボットAがSTART A地点のスタートラインを横切っ...
-ロボットAはSTART A地点から出発し、P地点におかれた赤いボ...
-アルミ缶は中身が入っているものを使う。
-RISのチームはアルミ缶の上に灯台としてランタンを置く。
-ボールがアルミ缶に当たる前にロボットBがボールに触っては...
-ロボットAはセンターラインを超えては行けない。
-アルミ缶を5cm以上動かした場合は減点
*ロボット [#j4091ad3]
今回使用したロボットは赤外線センサーを用いた次のようなロ...
なお、私たちが担当したのはロボットB(受けて側)である。
#ref(2015b/Member/velocity/Mission3/robot.jpg,50%,ロボット)
**仕組み [#fc786aec]
***キャッチ方法 [#j5cc1124]
通常はこのような形で走行する。
#ref(2015b/Member/velocity/Mission3/normalrun.jpg,50%,ノ...
この形のままボールキャッチ位置まで移動してくる。
腕の先の赤外線センサーがボールがアルミ缶に向かって来たこ...
#ref(2015b/Member/velocity/Mission3/catchrun.jpg,50%,キャ...
しかし写真を見ても想像できるだろうが、これではアルミ缶も...
そこで活躍するのがこの長い腕である。
アルミ缶とボールを両方キャッチした後、ロボットは後退する...
#ref(2015b/Member/velocity/Mission3/structure1.jpg,50%,キ...
#ref(2015b/Member/velocity/Mission3/structure2.jpg,50%,キ...
#ref(2015b/Member/velocity/Mission3/structure3.jpg,50%,キ...
#ref(2015b/Member/velocity/Mission3/structure4.jpg,50%,キ...
#ref(2015b/Member/velocity/Mission3/structure5.jpg,50%,キ...
***後ろに伸びた長い棒 [#j3a9a128]
この棒は錘である。
このロボットは前に長い構造をしている。そのため重心が前に...
#ref(2015b/Member/velocity/Mission3/weight.jpg,50%,錘)
一番上ではフィグがロボコンの様子を見物している。
#ref(2015b/Member/velocity/Mission3/fig.jpg,50%,フィグ)
*プログラム [#b8919fb0]
**定義 [#cb8e16a6]
#define GO 10
#define STOP 99
#define ready 20
#define speed 35
今回は正確さが勝負になるので、電池の増減にも対応できるよ...
**関数 [#r57b3ff8]
void move1() {
int msg = STOP;
Off(OUT_B);
RotateMotorEx(OUT_AC,speed,850,0,true,true); //前進
while (msg != GO) { //信号1を受信す...
Off(OUT_ABC);
Wait(1);
ReceiveRemoteNumber(MAILBOX1,true,msg);
}
}
void move2() {
RotateMotor(OUT_C,speed,-320); //回...
OnFwd(OUT_AC,1);
Wait(1);
}
void move3(){
RotateMotorEx(OUT_AC,speed,-200,0,true,true); //缶...
}
void catch(){
long t = 0;
SetSensorLowspeed(S4);
SendResponseNumber(MAILBOX1,ready); //信号2を送信
while(true) { //赤...
if (SensorUS(S4) >= 30 && t <= 500){ //たら腕を降...
t++;
Wait(1);
} else {
RotateMotor(OUT_B,80,140);
break;
}
}
OnFwd(OUT_B,10);
}
void move4() {
OnFwd(OUT_AC,1);
Wait(1);
RotateMotorEx(OUT_AC,speed,600,0,true,true); //後...
Off(OUT_B);
}
void AfterCatch() {
RotateMotor(OUT_C,speed,-340); //帰れ
OnFwd(OUT_AC,1);
Wait(1);
RotateMotorEx(OUT_AC,speed,-900,0,true,true);
}
**タスクメイン [#c5fd46f5]
task main()
{
move1();
move2();
move3();
catch();
move4();
AfterCatch();
}
*動き方 [#mb819146]
#ref(2015b/Member/velocity/Mission3/moving.png,50%,動き方)
訂正: 左側の青字の??→赤字の??
左側の下にある赤字の?→?
*最後に [#b739bbd9]
**工夫点 [#p44662f6]
-ボールとアルミ缶の判別
初め、どこにボールがあるのか、どこにアルミ缶があるのかを...
そこで判別を諦め、両方キャッチし、アルミ缶だけ逃がすとい...
詳しくは「仕組みのキャッチの項目」に図を用いて説明してあ...
-キャッチのタイミング
ペアのロボットから来たボールをどう認識するか、最初は時間...
赤外線センサーの前を横切りキャッチゾーンに入るとそれを赤...
#ref(2015b/Member/velocity/Mission3/sesororder.jpg,50%,赤...
-2台のロボットの連携
今回はロボットを2台使っているため、それぞれがペアのロボ...
そこで思いついたのが通信である。私達のロボットBはAがアル...
Aがアルミ缶を探す
↓
A準備OK!(信号を送る)
↓
B出発
↓
B構える
↓
B準備OK!(信号を送る)
↓
Aボール投げる
↓
ボール、キャッチゾーンに侵入
↓
Bキャッチ
という流れである。
**壁 [#l2fd43a4]
-ロボットの形状
上でも述べたが、大きいロボットとなってしまったのでバラン...
形状での問題点は重さだけでなかった。腕の一部がコースの紙...
これに関しては紙をテープで固定することで解決する。
-赤外線の誤作動
数回に一回赤外線が反応しなく、ボールが来ているのに腕を降...
本当はボールが来てすぐ閉じた方が確実にボールを捕まえられ...
**改善点・欠点 [#j3714d85]
何度も述べている通り、大きさである。やはりロボットはでき...
そして一番の問題はボールのキャッチミスである。実際本番は...
**感想 [#zf9ff89d]
課題1はロボット中心、課題2がプログラム中心、そして課題...
ページ名: