2017a/Member/speedball/Mission3
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[2017a/Member]]
目次
#contents
*1.課題について [#ob90b3d6]
#ref(./2017a-mission3[1].png,50%,コースマップ)
この課題は、図のピンクの丸に置かれた缶をGOALまで運び、積...
*2.方針 [#cef4b09c]
僕たちの班は缶を積むロボットと缶を集めてGOALまで運ぶロボ...
**積むロボット [#q39f3621]
?-積むロボットは最初にロータリーからスタートして、T地点の...
?-bluetoothの信号が来たら、缶を積む。
?-積まれた缶の一番下を掴んで持ち上げて待機
以降?、?を繰り返し。
**運ぶロボット [#xf1a8a2e]
?-缶を集めてGOAL地点に届ける。
?-積むロボットに信号を送る。
以降?、?を繰り返し
*3.ロボット [#k6a78022]
**缶を積むロボット [#pf28fa05]
#ref(./1502697403614.jpg,50%,積むロボット_アーム)
アームの先端にゴムタイヤをつけることで缶を支えられるように
した。また、このアームの先端部にモータを組み込むことで先...
#ref(./1502697422071.jpg,50%,積むロボット_全体)
四角形を変形させるようにしてアームの先端を上下させている。
缶を積むときにアームを水平に保つためにこの機構を採用した。
モータでアームを上下させるが、そのままでは回らなかったた...
アームを下に下げ切ったときに前につんのめってしまうため、...
**缶を運ぶロボット [#m14fb26a]
#ref(./1502697435869.jpg,50%,運ぶロボット)
本体は課題2で用いた機体に缶を保持して運ぶためのアームを...
*4.プログラム [#p0c84873]
・運ぶロボットは[[mattu>http://yakushi.shinshu-u.ac.jp/ro...
・積むロボットはこちら↓
//A・・・足回り B・・・アーム上下 C・・・アーム
#define CONN 0
#define INBOX MAILBOX3
#define ang_up 340 //持ち上げ用角度
#define ang_put 80 //カン置く角度
#define ANGLE 50 //掴む用角度
#define POWER 30 //正転
#define POWER_LEGS 40 //足回り用
#define POWER_RE -30 //逆転
sub go_f(int l){ //指定距離前進
float Ang=l*2.0463; //回転角度計算
RotateMotor(OUT_A,POWER_LEGS,Ang); //前進
Off(OUT_A);
}
sub hold(){ //カンを掴む
go_f(100); //前進してカンの位置を合わせる
RotateMotor(OUT_C,POWER_RE,ANGLE); //カン掴む
}
sub stack(){ //カンを積む
go_f(170); //前進してカンの位置を合わせる
go_f(-10); //カンから離れて位置調整
RotateMotor(OUT_B,POWER_RE,ang_put); //カンを置く(積む)
}
sub down_arm(){ //アームを下げる
OnFwd(OUT_B,POWER_RE);
Wait(1100);
Off(OUT_B);
}
task main(){
int msg=0;
until(BluetoothStatus(CONN)==NO_ERR); //bl...
go_f(-50); //ア...
down_arm(); //アームを下げてカン...
while(1){
hold(); //カン掴む
OnFwd(OUT_C,POWER_RE); //保持し続ける
RotateMotor(OUT_B,50,ang_up); //持ち上げる
go_f(-150); //位置調整
ReceiveRemoteNumber(MAILBOX3,true,msg); //集める側から...
while(msg!=2){
ReceiveRemoteNumber(MAILBOX3,true,msg);
Wait(10);
}
stack(); //2の信号が来たら積む
Off(OUT_C); //カンを保持する力を抜く
RotateMotor(OUT_C,POWER,ANGLE); //カン離す
go_f(-100); //位置調整
down_arm(); //アームを下げて次の準備
}
}
詳しくは[[kiryu>http://yakushi.shinshu-u.ac.jp/robotics/?...
*5.結果 [#t9608d4b]
実際の発表では集めるロボットのプログラムの調整がうまくい...
結果は缶を二つをGOALまで運び6点獲得した。
*6.まとめ・感想 [#j4654f78]
最終的に缶を積む方のロボットをうまく動かすことができなか...
自分が書いたプログラムをロボット本体に転送しても自分が考...
終了行:
[[2017a/Member]]
目次
#contents
*1.課題について [#ob90b3d6]
#ref(./2017a-mission3[1].png,50%,コースマップ)
この課題は、図のピンクの丸に置かれた缶をGOALまで運び、積...
*2.方針 [#cef4b09c]
僕たちの班は缶を積むロボットと缶を集めてGOALまで運ぶロボ...
**積むロボット [#q39f3621]
?-積むロボットは最初にロータリーからスタートして、T地点の...
?-bluetoothの信号が来たら、缶を積む。
?-積まれた缶の一番下を掴んで持ち上げて待機
以降?、?を繰り返し。
**運ぶロボット [#xf1a8a2e]
?-缶を集めてGOAL地点に届ける。
?-積むロボットに信号を送る。
以降?、?を繰り返し
*3.ロボット [#k6a78022]
**缶を積むロボット [#pf28fa05]
#ref(./1502697403614.jpg,50%,積むロボット_アーム)
アームの先端にゴムタイヤをつけることで缶を支えられるように
した。また、このアームの先端部にモータを組み込むことで先...
#ref(./1502697422071.jpg,50%,積むロボット_全体)
四角形を変形させるようにしてアームの先端を上下させている。
缶を積むときにアームを水平に保つためにこの機構を採用した。
モータでアームを上下させるが、そのままでは回らなかったた...
アームを下に下げ切ったときに前につんのめってしまうため、...
**缶を運ぶロボット [#m14fb26a]
#ref(./1502697435869.jpg,50%,運ぶロボット)
本体は課題2で用いた機体に缶を保持して運ぶためのアームを...
*4.プログラム [#p0c84873]
・運ぶロボットは[[mattu>http://yakushi.shinshu-u.ac.jp/ro...
・積むロボットはこちら↓
//A・・・足回り B・・・アーム上下 C・・・アーム
#define CONN 0
#define INBOX MAILBOX3
#define ang_up 340 //持ち上げ用角度
#define ang_put 80 //カン置く角度
#define ANGLE 50 //掴む用角度
#define POWER 30 //正転
#define POWER_LEGS 40 //足回り用
#define POWER_RE -30 //逆転
sub go_f(int l){ //指定距離前進
float Ang=l*2.0463; //回転角度計算
RotateMotor(OUT_A,POWER_LEGS,Ang); //前進
Off(OUT_A);
}
sub hold(){ //カンを掴む
go_f(100); //前進してカンの位置を合わせる
RotateMotor(OUT_C,POWER_RE,ANGLE); //カン掴む
}
sub stack(){ //カンを積む
go_f(170); //前進してカンの位置を合わせる
go_f(-10); //カンから離れて位置調整
RotateMotor(OUT_B,POWER_RE,ang_put); //カンを置く(積む)
}
sub down_arm(){ //アームを下げる
OnFwd(OUT_B,POWER_RE);
Wait(1100);
Off(OUT_B);
}
task main(){
int msg=0;
until(BluetoothStatus(CONN)==NO_ERR); //bl...
go_f(-50); //ア...
down_arm(); //アームを下げてカン...
while(1){
hold(); //カン掴む
OnFwd(OUT_C,POWER_RE); //保持し続ける
RotateMotor(OUT_B,50,ang_up); //持ち上げる
go_f(-150); //位置調整
ReceiveRemoteNumber(MAILBOX3,true,msg); //集める側から...
while(msg!=2){
ReceiveRemoteNumber(MAILBOX3,true,msg);
Wait(10);
}
stack(); //2の信号が来たら積む
Off(OUT_C); //カンを保持する力を抜く
RotateMotor(OUT_C,POWER,ANGLE); //カン離す
go_f(-100); //位置調整
down_arm(); //アームを下げて次の準備
}
}
詳しくは[[kiryu>http://yakushi.shinshu-u.ac.jp/robotics/?...
*5.結果 [#t9608d4b]
実際の発表では集めるロボットのプログラムの調整がうまくい...
結果は缶を二つをGOALまで運び6点獲得した。
*6.まとめ・感想 [#j4654f78]
最終的に缶を積む方のロボットをうまく動かすことができなか...
自分が書いたプログラムをロボット本体に転送しても自分が考...
ページ名: