2017a/Member/takato/Mission3
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[2017a/Member]]
*課題について [#g2d8427a]
課題3はコース上にあるカンをGOALの領域に積み上げるという...
#ref(2017a/Member/takato/Mission3/2017robotcontest.png,10...
図のピンクの丸にカンが置かれており、それをGOALまで運んで...
詳しくは課題3を参照してください。
*方針 [#p4a09ae8]
僕たちの班はカンを積む側とカンを集めてGOALまで運ぶ側の2...
**積む側 [#a6cb9c0a]
?-積む側は最初にロータリーからスタートして、T地点のカンを...
?-bluetoothの信号が来たら、カンを積む。
?-積まれたカンの一番下を掴んで持ち上げて待機
以下?、?を繰り返し。
**集める側 [#z9435c57]
?-カンを集めてGOAL地点に届ける。
?-積む側に信号を送る。
以下?、?を繰り返し。
*ロボットについて [#r7e4b31b]
私たちは缶を運ぶロボットと、缶を積み上げるロボットを製作...
**缶を運ぶロボット [#s2bc434b]
#ref(2017a/Member/takato/Mission3/レポート用_10.jpg,50%,...
ライントレースして缶を集めるため前方に光センサーを取り付...
**缶を積み上げるロボット [#r8b93da7]
#ref(2017a/Member/takato/Mission3/レポート用_1.jpg,20%,結...
モーターを三つ使いました。一つ目は、タイヤにつけて上下に...
二つ目はアームを上下に動かすためのもので平行四辺形の形の...
三つ目はアームを締め付けるためのモーターです。缶をできる...
*プログラミングについて [#k83c21fe]
缶を運ぶロボットはmattuを参照してください。
缶を積むロボット
**変数宣言 [#r8cfd443]
//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 //逆転
一番上にどの動作にどのモータを割り当てるかを書いています。
コメント文で説明できていると思うので説明は省略する。
**サブルーチンについて [#odf5cf7d]
sub go_f(int l){ //指定距離前進
float Ang=l*2.0463; //回転角度計算
RotateMotor(OUT_A,POWER_LEGS,Ang); //前進
Off(OUT_A);
}
これについては課題1を参照してください。
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);
}
アームを下げる関数。
アームを下に1100ミリ秒下げる。ここは角度よりも時間で制御...
制御している。
*メインタスク [#x31005ed]
task main(){
int msg=0;
until(BluetoothStatus(CONN)==NO_ERR); ...
るまで待機
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(); //アームを下げて次
の準備
}
}
*結果 [#daf99cee]
最後まで粘ったが結局缶を積み上げるロボットのプログラミン...
*反省.感想 [#h228fd69]
自分も含めて4人全員がバイトやサークル活動で時間が全然合わ...
そしてこのゼミを通して不備のないロボットを作る難しさや、...
私は機械システム工学科なのでこれからもロボットに携わるこ...
終了行:
[[2017a/Member]]
*課題について [#g2d8427a]
課題3はコース上にあるカンをGOALの領域に積み上げるという...
#ref(2017a/Member/takato/Mission3/2017robotcontest.png,10...
図のピンクの丸にカンが置かれており、それをGOALまで運んで...
詳しくは課題3を参照してください。
*方針 [#p4a09ae8]
僕たちの班はカンを積む側とカンを集めてGOALまで運ぶ側の2...
**積む側 [#a6cb9c0a]
?-積む側は最初にロータリーからスタートして、T地点のカンを...
?-bluetoothの信号が来たら、カンを積む。
?-積まれたカンの一番下を掴んで持ち上げて待機
以下?、?を繰り返し。
**集める側 [#z9435c57]
?-カンを集めてGOAL地点に届ける。
?-積む側に信号を送る。
以下?、?を繰り返し。
*ロボットについて [#r7e4b31b]
私たちは缶を運ぶロボットと、缶を積み上げるロボットを製作...
**缶を運ぶロボット [#s2bc434b]
#ref(2017a/Member/takato/Mission3/レポート用_10.jpg,50%,...
ライントレースして缶を集めるため前方に光センサーを取り付...
**缶を積み上げるロボット [#r8b93da7]
#ref(2017a/Member/takato/Mission3/レポート用_1.jpg,20%,結...
モーターを三つ使いました。一つ目は、タイヤにつけて上下に...
二つ目はアームを上下に動かすためのもので平行四辺形の形の...
三つ目はアームを締め付けるためのモーターです。缶をできる...
*プログラミングについて [#k83c21fe]
缶を運ぶロボットはmattuを参照してください。
缶を積むロボット
**変数宣言 [#r8cfd443]
//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 //逆転
一番上にどの動作にどのモータを割り当てるかを書いています。
コメント文で説明できていると思うので説明は省略する。
**サブルーチンについて [#odf5cf7d]
sub go_f(int l){ //指定距離前進
float Ang=l*2.0463; //回転角度計算
RotateMotor(OUT_A,POWER_LEGS,Ang); //前進
Off(OUT_A);
}
これについては課題1を参照してください。
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);
}
アームを下げる関数。
アームを下に1100ミリ秒下げる。ここは角度よりも時間で制御...
制御している。
*メインタスク [#x31005ed]
task main(){
int msg=0;
until(BluetoothStatus(CONN)==NO_ERR); ...
るまで待機
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(); //アームを下げて次
の準備
}
}
*結果 [#daf99cee]
最後まで粘ったが結局缶を積み上げるロボットのプログラミン...
*反省.感想 [#h228fd69]
自分も含めて4人全員がバイトやサークル活動で時間が全然合わ...
そしてこのゼミを通して不備のないロボットを作る難しさや、...
私は機械システム工学科なのでこれからもロボットに携わるこ...
ページ名: