2015b/Member/kei/Mission3
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
目次
#contents
*今回の課題について [#oe652602]
今回の課題は課題2で制作したコースを用いてボールを回収し...
#ref(2015b/Member/kei/Mission3/2015b-mission3.png);
今回、私が担当したのはSTART,B地点からスタートして缶にぶつ...
[[詳細:http://yakushi.shinshu-u.ac.jp/robotics/?2015b%2FM...
*ロボットの構造について [#d5aa3d2d]
今回私たちが制作したロボットの機能を実現するための部分が...
画像の?、?、?の部分である。
#ref(2015b/Member/kei/Mission3/IMG_4947.JPG,機体)
**?の部分について [#j7286870]
?の部分は重りである。?の部分が重いため重心がそちらに移動...
**?の部分について [#u5a5355a]
?の部分はボールを捕まえる部分である。捕まえ方は単純に振り...
**?の部分について [#q20fea3c]
?の部分は?で説明した方の反対側のアームである。こちら側は...
また?、?共通であるがボールが隙間から出ていかにようにギア...
#ref(2015b/Member/kei/Mission3/IMG_4956.JPG);
***排出動作のアニメーション [#t8912794]
#ref(2015b/Member/kei/Mission3/Misson3_1.gif);
***この機構に至った経緯とメリット [#e0beb0f5]
はじめはしっかりボールを探して缶とボールをうまく判別して...
*プログラムについて [#x5afa121]
**主な工夫点 [#o35763cb]
プログラムでの主な工夫点は大きく3点あり、一つはプログラ...
**プログラム部分 [#b28b5696]
***定義部分 [#qe8b5a4c]
#define GO 10
#define STOP 99
#define ready 20
#define speed 30
ここでは通信に使う数値とモーターの速度を定義している。モ...
----
***サブルーチン? [#gc90439c]
void move1() {
int msg = STOP;
Off(OUT_B);
RotateMotorEx(OUT_AC,speed,850,0,true,true);
while (msg != GO) { //メッセージを受信
Off(OUT_ABC);
Wait(1);
ReceiveRemoteNumber(MAILBOX1,true,msg);
}
}
この部分ではメッセージの受信と相手側が缶とロボットの誤認...
----
***サブルーチン? [#cd9b6b7e]
void move2() {
RotateMotor(OUT_C,speed,-320);
OnFwd(OUT_AC,1);
Wait(1);
}
この部分では回転を行っている。一瞬だけ最弱の力で動くよう...
----
***サブルーチン? [#v6bf6638]
void move3(){
RotateMotorEx(OUT_AC,speed,-200,0,true,true);
}
この部分では前進を行っている。この動作終了後の位置がボー...
----
***サブルーチン? [#ude6ce0f]
void catch() {
long t = 0;
SetSensorLowspeed(S4);
SendResponseNumber(MAILBOX1,ready); //メッセージを...
while(true) {
if (SensorUS(S4) >= 30 && t <= 500){
t++;
Wait(1);
} else {
RotateMotor(OUT_B,80,140);
break;
}
}
OnFwd(OUT_B,10);
}
この部分ではメッセージの受信とボールを捕まえる動作を行っ...
まずこちらが定位置に着いた時に投げる側のロボットに『ready...
始めの方に宣言している変数tは万が一ボールをうまくセンサー...
----
***サブルーチン? [#jfda3eed]
void move4() {
OnFwd(OUT_AC,1);
Wait(1);
RotateMotorEx(OUT_AC,speed,600,0,true,true);
Off(OUT_B);
}
この部分では後進を行っている。プログラム上は単純な動きで...
----
***サブルーチン? [#o36fb77d]
void AfterCatch() {
RotateMotor(OUT_C,speed,-340);
OnFwd(OUT_AC,1);
Wait(1);
RotateMotorEx(OUT_AC,speed,-900,0,true,true);
}
この部分ではボールを捕まえ缶を排出した後ゴールへ向かう動...
このロボットは缶を探すという動作を排除しているため常に同...
----
***メイン関数 [#fc5ad59b]
task main()
{
move1();
move2();
move3();
catch();
move4();
/*↓↓↓ゴールへ向かうプログラム↓↓↓*/
AfterCatch();
}
上で解説したサブルーチンを実行する。
このように全て部品化してあるため見やすく、修正が容易であ...
----
**動きの概要 [#k1cf65f2]
#ref(2015b/Member/kei/Mission3/Robo_Misson.png,機体)
画像内の番号は上で解説した時のサブルーチンの番号に対応し...
*感想と考察 [#u9ec73b7]
**感想 [#sfe709c2]
今回の課題は最後の課題であり今までの集大成である。&br;
今回の課題ではハード面はかなり満足できるものとなったと思...
**考察 [#r78bde1d]
今回の課題は練習の時はほぼ100%缶を排出してボールのみを捕...
終了行:
目次
#contents
*今回の課題について [#oe652602]
今回の課題は課題2で制作したコースを用いてボールを回収し...
#ref(2015b/Member/kei/Mission3/2015b-mission3.png);
今回、私が担当したのはSTART,B地点からスタートして缶にぶつ...
[[詳細:http://yakushi.shinshu-u.ac.jp/robotics/?2015b%2FM...
*ロボットの構造について [#d5aa3d2d]
今回私たちが制作したロボットの機能を実現するための部分が...
画像の?、?、?の部分である。
#ref(2015b/Member/kei/Mission3/IMG_4947.JPG,機体)
**?の部分について [#j7286870]
?の部分は重りである。?の部分が重いため重心がそちらに移動...
**?の部分について [#u5a5355a]
?の部分はボールを捕まえる部分である。捕まえ方は単純に振り...
**?の部分について [#q20fea3c]
?の部分は?で説明した方の反対側のアームである。こちら側は...
また?、?共通であるがボールが隙間から出ていかにようにギア...
#ref(2015b/Member/kei/Mission3/IMG_4956.JPG);
***排出動作のアニメーション [#t8912794]
#ref(2015b/Member/kei/Mission3/Misson3_1.gif);
***この機構に至った経緯とメリット [#e0beb0f5]
はじめはしっかりボールを探して缶とボールをうまく判別して...
*プログラムについて [#x5afa121]
**主な工夫点 [#o35763cb]
プログラムでの主な工夫点は大きく3点あり、一つはプログラ...
**プログラム部分 [#b28b5696]
***定義部分 [#qe8b5a4c]
#define GO 10
#define STOP 99
#define ready 20
#define speed 30
ここでは通信に使う数値とモーターの速度を定義している。モ...
----
***サブルーチン? [#gc90439c]
void move1() {
int msg = STOP;
Off(OUT_B);
RotateMotorEx(OUT_AC,speed,850,0,true,true);
while (msg != GO) { //メッセージを受信
Off(OUT_ABC);
Wait(1);
ReceiveRemoteNumber(MAILBOX1,true,msg);
}
}
この部分ではメッセージの受信と相手側が缶とロボットの誤認...
----
***サブルーチン? [#cd9b6b7e]
void move2() {
RotateMotor(OUT_C,speed,-320);
OnFwd(OUT_AC,1);
Wait(1);
}
この部分では回転を行っている。一瞬だけ最弱の力で動くよう...
----
***サブルーチン? [#v6bf6638]
void move3(){
RotateMotorEx(OUT_AC,speed,-200,0,true,true);
}
この部分では前進を行っている。この動作終了後の位置がボー...
----
***サブルーチン? [#ude6ce0f]
void catch() {
long t = 0;
SetSensorLowspeed(S4);
SendResponseNumber(MAILBOX1,ready); //メッセージを...
while(true) {
if (SensorUS(S4) >= 30 && t <= 500){
t++;
Wait(1);
} else {
RotateMotor(OUT_B,80,140);
break;
}
}
OnFwd(OUT_B,10);
}
この部分ではメッセージの受信とボールを捕まえる動作を行っ...
まずこちらが定位置に着いた時に投げる側のロボットに『ready...
始めの方に宣言している変数tは万が一ボールをうまくセンサー...
----
***サブルーチン? [#jfda3eed]
void move4() {
OnFwd(OUT_AC,1);
Wait(1);
RotateMotorEx(OUT_AC,speed,600,0,true,true);
Off(OUT_B);
}
この部分では後進を行っている。プログラム上は単純な動きで...
----
***サブルーチン? [#o36fb77d]
void AfterCatch() {
RotateMotor(OUT_C,speed,-340);
OnFwd(OUT_AC,1);
Wait(1);
RotateMotorEx(OUT_AC,speed,-900,0,true,true);
}
この部分ではボールを捕まえ缶を排出した後ゴールへ向かう動...
このロボットは缶を探すという動作を排除しているため常に同...
----
***メイン関数 [#fc5ad59b]
task main()
{
move1();
move2();
move3();
catch();
move4();
/*↓↓↓ゴールへ向かうプログラム↓↓↓*/
AfterCatch();
}
上で解説したサブルーチンを実行する。
このように全て部品化してあるため見やすく、修正が容易であ...
----
**動きの概要 [#k1cf65f2]
#ref(2015b/Member/kei/Mission3/Robo_Misson.png,機体)
画像内の番号は上で解説した時のサブルーチンの番号に対応し...
*感想と考察 [#u9ec73b7]
**感想 [#sfe709c2]
今回の課題は最後の課題であり今までの集大成である。&br;
今回の課題ではハード面はかなり満足できるものとなったと思...
**考察 [#r78bde1d]
今回の課題は練習の時はほぼ100%缶を排出してボールのみを捕...
ページ名: