2016a/Member/kodamanma/Mission3
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[2016a/Member]]
課題3
今回もEV3を使用~
今回の課題は下図のA,B,Cに3つずつ紙コップを設置し、それを...
http://imgur.com/a/3unVN
詳しいルールは下のリンクに書いてあります~
http://yakushi.shinshu-u.ac.jp/robotics/?2016a%2FMission3
ロボットについて
今回、わたしたちの班では「紙コップを運ぶロボット」と「重...
というのもEV3はRIS,NXTに比べ、パーツ数が少なく、また一つ...
ギアなどを組み合わせるのが難しく、ロボット本体が大型化し...
それでもかなりインパクトがあるでかいのができてしまったん...
http://imgur.com/a/vshPM~
「紙コップを運ぶロボット」~
その形状から通称「クワガタ」~
http://imgur.com/a/VqjsE~
そしてこちらが「重ねるロボット」~
形状から通称「タワー」と呼ぶことにします~
クワガタの説明から~
課題2での動きを流用して「目的地に移動→掴む→移動→離す」を...
http://imgur.com/a/djWSJ~
2つのLargeMotorで走行、アームを動かすMediumMotorは後ろに...
http://imgur.com/a/1D1iK~
後ろのモーターの動きを長い棒で伝えて~
歯車を利用して紙コップをつかむためのアームを2つ同時に動か...
http://imgur.com/a/84gZK~
アームにはつかみやすいようにローラーを付けてあります~
目のようなものは赤外線センサー、光が出ている筒はカラーセ...
次にタワーの説明~
こいつはなかなか特徴的です~
おそらくは「ロボティクス入門ゼミ」が開講されて以来、この...
こいつの仕事は「前進する→紙コップを持ち上げる→前進する紙...
http://imgur.com/a/wra3T~
上部にMediumMotorを2つ、これでキャタピラを動かし、紙コッ...
http://imgur.com/a/AtxPt~
ロボット左側(写真右側)のスイングアームは紙コップをキャタ...
このアームがなければ下ろすことも上げることもできません~
いわゆる、他の班のロボットで言う「掴む」「離す」という動...
キャタピラに突起が付いているのは紙コップを引っかかりやす...
正面の目のようなものは超音波センサーです、紙コップとの距...
http://imgur.com/a/iR8lY~
足回りです~
最初はLargeMotorを2つ使用する予定でしたが、「EV3を通信さ...
http://imgur.com/a/h1XSS~
側面から、通信方法が確立しないので片方のEV3本体(コンピュ...
動作とプログラム
クワガタ~
こっちはハードもプログラムもわたしはあまり関わりませんで...
詳しくは[naho]氏のページを見たほうがいいかもしれません~
タワー~
目の前(n??以内)に物体(コップ)がm秒間置かれる~
↓コップが置かれたと判定~
前進し、紙コップとの距離を測り、近づいて持ち上げる~
↓~
更に前進し重ねる紙コップを見つけ、近づく~
↓~
紙コップを下げ、重ねる~
↓~
元の場所まで後退~
という動きを繰り返すのが最初の予定でした~
下のURLはロボコン2日前に取った動画ですのでかなり未完成で...
http://fast-uploader.com/file/7026461113429/~
この動きは「アームで掴む→持ち上げる→軽く動く→下ろす→離す...
#!/usr/bin/python
import ev3dev.ev3 as ev3
import time
m1 = ev3.LargeMotor('outD')
m2 = ev3.MediumMotor('outB')
m3 = ev3.MediumMotor('outC')
m4 = ev3.LargeMotor('outA')
m1stop = m1.stop(stop_command='brake')
m2stop = m2.stop(stop_command='brake')
m3stop = m3.stop(stop_command='brake')
m4stop = m4.stop(stop_command='brake')
m4.run_forever(duty_cycle_sp=-20)
time.sleep(0.57)
m4.stop(stop_command='brake')
time.sleep(1)
m2.run_forever(duty_cycle_sp=50)
m3.run_forever(duty_cycle_sp=-50)
time.sleep(1.7)
m2.stop(stop_command='brake')
m3.stop(stop_command='brake')
time.sleep(1)
m1.run_forever(duty_cycle_sp=-50)
time.sleep(2)
m1.stop(stop_command='brake')
time.sleep(1)
m1.run_forever(duty_cycle_sp=50)
time.sleep(2)
m1.stop(stop_command='brake')
time.sleep(1)
m2.run_forever(duty_cycle_sp=-50)
m3.run_forever(duty_cycle_sp=50)
time.sleep(1)
m2.stop(stop_command='brake')
m3.stop(stop_command='brake')
time.sleep(1)
m4.run_forever(duty_cycle_sp=20)
time.sleep(0.57)
上のプログラムで動作します~
最後にコップを落としてしまっていますが、重ねる際、下には...
実際に、上の理想の動作自体はロボコン前日にはほぼ完璧にこ...
わたしはタワーのハード面をメインに制作したので細かなプロ...
クワガタのプログラム説明
#!/usr/bin/python
import ev3dev.ev3 as ev3
import time
ml = ev3.LargeMotor('outB')
mr = ev3.LargeMotor('outA')
mm = ev3.MediumMotor('outC')
cs = ev3.ColorSensor('in1')
de = ev3.InfraredSensor('in2')
↑定義
def catch():
while de.value() < 50:
if de.value() < 10:
ml.run_forever(duty_cycle_sp=0)
mr.run_forever(duty_cycle_sp=0)
mm.run_forever(duty_cycle_sp=50)
time.sleep(4)
mm.run_forever(duty_cycle_sp=0)
ml.run_forever(duty_cycle_sp=-20)
mr.run_forever(duty_cycle_sp=-20)
time.sleep(1.5)
ml.run_forever(duty_cycle_sp=0)
mr.run_forever(duty_cycle_sp=0)
ml.run_forever(duty_cycle_sp=-50)
mr.run_forever(duty_cycle_sp=50)
time.sleep(1.6)
ml.run_forever(duty_cycle_sp=0)
mr.run_forever(duty_cycle_sp=0)
else:
ml.run_forever(duty_cycle_sp=15)
mr.run_forever(duty_cycle_sp=15)
↑センサーと紙コップの距離が5cm以下になったとき、距離が1cm...
def lineright():
t0 = time.time()
while time.time() - t0 < 0.35:
if cs.value () > 50 :
mr.run_forever(duty_cycle_sp=60)
ml.run_forever(duty_cycle_sp=-30)
t0 = time.time()
else:
mr.run_forever(duty_cycle_sp=-30)
ml.run_forever(duty_cycle_sp=60)
↑ライントレースの定義文~
これらを組み合わせてマップのあっちこっちからコップを集め...
詳しくは[naho]氏のページ(↓リンク先)を参照ください~
http://yakushi.shinshu-u.ac.jp/robotics/?2016a%2FMember%2...
タワーのプログラム説明~
これもタワーのプログラムをメインに行なった[KAIYMB]氏のペ...
http://yakushi.shinshu-u.ac.jp/robotics/?2016a%2FMember%2...
前日まではプログラムの制作も手伝っていたのですが、当日に...
#!/usr/bin/python
import ev3dev.ev3 as ev3
import time
m1 = ev3.LargeMotor('outA')
m2 = ev3.MediumMotor('outB')
m3 = ev3.MediumMotor('outC')
m4 = ev3.LargeMotor('outD')
us = ev3.UltrasonicSensor('in1')
↑定義
def search(p):
t0 = time.time()
while time.time() - t0 < 0.001:
if us.value() > p:
m4.run_forever(duty_cycle_sp=50)
t0 = time.time()
else:
m4.stop()
↑コップを探すプログラム
def close():
m1.run_forever(duty_cycle_sp=-37.5)
time.sleep(0.32)
m1.stop()
↑スイングアーム開閉
def bring(x,y):
m4.run_forever(duty_cycle_sp=x)
time.sleep(y)
m4.stop()
↑前後移動
def up():
m3.run_forever(duty_cycle_sp=-50)
m2.run_forever(duty_cycle_sp=50)
time.sleep(2.25)
m2.stop()
m3.stop()
def down():
m3.run_forever(duty_cycle_sp=50)
m2.run_forever(duty_cycle_sp=-50)
time.sleep(1.5)
m2.stop()
m3.stop()
↑コップ持ち上げと下げ
ロボコン
ビジュアル点は多く貰えましたが、クワガタが一つも紙コップ...
問題点、反省点
今回、最も大きな問題は「理想的な状況を想定しすぎていた」...
実際、タワー側は前日にはかなり高い精度で動けるようになっ...
しかし~
・タワーは前後移動しかできないため、紙コップを探せない(ク...
・しかしクワガタはそんなに高い精度で紙コップを置くことが...
・タワーも大型化しすぎたせいか、繰り返し動作すると若干、...
・動きが変わってきてしまう(バッテリーのせいか?)~
・超音波センサーがかなり不正確~
・LargeMotorの回転角度が指定できない~
・同じパワーで同じ時間回してもタワー上部のMediumMotorの回...
・場所によってライントレースの交差点判別がうまくいかない...
と、上げきれないほどの問題点がありました~
半年間のロボティクス入門ゼミの授業で、チャレンジすること...
これからのご時世、機械システム屋にとっても電子制御はつき...
これらを踏まえて、この夏休み中、高専の電子制御科に行った...
終了行:
[[2016a/Member]]
課題3
今回もEV3を使用~
今回の課題は下図のA,B,Cに3つずつ紙コップを設置し、それを...
http://imgur.com/a/3unVN
詳しいルールは下のリンクに書いてあります~
http://yakushi.shinshu-u.ac.jp/robotics/?2016a%2FMission3
ロボットについて
今回、わたしたちの班では「紙コップを運ぶロボット」と「重...
というのもEV3はRIS,NXTに比べ、パーツ数が少なく、また一つ...
ギアなどを組み合わせるのが難しく、ロボット本体が大型化し...
それでもかなりインパクトがあるでかいのができてしまったん...
http://imgur.com/a/vshPM~
「紙コップを運ぶロボット」~
その形状から通称「クワガタ」~
http://imgur.com/a/VqjsE~
そしてこちらが「重ねるロボット」~
形状から通称「タワー」と呼ぶことにします~
クワガタの説明から~
課題2での動きを流用して「目的地に移動→掴む→移動→離す」を...
http://imgur.com/a/djWSJ~
2つのLargeMotorで走行、アームを動かすMediumMotorは後ろに...
http://imgur.com/a/1D1iK~
後ろのモーターの動きを長い棒で伝えて~
歯車を利用して紙コップをつかむためのアームを2つ同時に動か...
http://imgur.com/a/84gZK~
アームにはつかみやすいようにローラーを付けてあります~
目のようなものは赤外線センサー、光が出ている筒はカラーセ...
次にタワーの説明~
こいつはなかなか特徴的です~
おそらくは「ロボティクス入門ゼミ」が開講されて以来、この...
こいつの仕事は「前進する→紙コップを持ち上げる→前進する紙...
http://imgur.com/a/wra3T~
上部にMediumMotorを2つ、これでキャタピラを動かし、紙コッ...
http://imgur.com/a/AtxPt~
ロボット左側(写真右側)のスイングアームは紙コップをキャタ...
このアームがなければ下ろすことも上げることもできません~
いわゆる、他の班のロボットで言う「掴む」「離す」という動...
キャタピラに突起が付いているのは紙コップを引っかかりやす...
正面の目のようなものは超音波センサーです、紙コップとの距...
http://imgur.com/a/iR8lY~
足回りです~
最初はLargeMotorを2つ使用する予定でしたが、「EV3を通信さ...
http://imgur.com/a/h1XSS~
側面から、通信方法が確立しないので片方のEV3本体(コンピュ...
動作とプログラム
クワガタ~
こっちはハードもプログラムもわたしはあまり関わりませんで...
詳しくは[naho]氏のページを見たほうがいいかもしれません~
タワー~
目の前(n??以内)に物体(コップ)がm秒間置かれる~
↓コップが置かれたと判定~
前進し、紙コップとの距離を測り、近づいて持ち上げる~
↓~
更に前進し重ねる紙コップを見つけ、近づく~
↓~
紙コップを下げ、重ねる~
↓~
元の場所まで後退~
という動きを繰り返すのが最初の予定でした~
下のURLはロボコン2日前に取った動画ですのでかなり未完成で...
http://fast-uploader.com/file/7026461113429/~
この動きは「アームで掴む→持ち上げる→軽く動く→下ろす→離す...
#!/usr/bin/python
import ev3dev.ev3 as ev3
import time
m1 = ev3.LargeMotor('outD')
m2 = ev3.MediumMotor('outB')
m3 = ev3.MediumMotor('outC')
m4 = ev3.LargeMotor('outA')
m1stop = m1.stop(stop_command='brake')
m2stop = m2.stop(stop_command='brake')
m3stop = m3.stop(stop_command='brake')
m4stop = m4.stop(stop_command='brake')
m4.run_forever(duty_cycle_sp=-20)
time.sleep(0.57)
m4.stop(stop_command='brake')
time.sleep(1)
m2.run_forever(duty_cycle_sp=50)
m3.run_forever(duty_cycle_sp=-50)
time.sleep(1.7)
m2.stop(stop_command='brake')
m3.stop(stop_command='brake')
time.sleep(1)
m1.run_forever(duty_cycle_sp=-50)
time.sleep(2)
m1.stop(stop_command='brake')
time.sleep(1)
m1.run_forever(duty_cycle_sp=50)
time.sleep(2)
m1.stop(stop_command='brake')
time.sleep(1)
m2.run_forever(duty_cycle_sp=-50)
m3.run_forever(duty_cycle_sp=50)
time.sleep(1)
m2.stop(stop_command='brake')
m3.stop(stop_command='brake')
time.sleep(1)
m4.run_forever(duty_cycle_sp=20)
time.sleep(0.57)
上のプログラムで動作します~
最後にコップを落としてしまっていますが、重ねる際、下には...
実際に、上の理想の動作自体はロボコン前日にはほぼ完璧にこ...
わたしはタワーのハード面をメインに制作したので細かなプロ...
クワガタのプログラム説明
#!/usr/bin/python
import ev3dev.ev3 as ev3
import time
ml = ev3.LargeMotor('outB')
mr = ev3.LargeMotor('outA')
mm = ev3.MediumMotor('outC')
cs = ev3.ColorSensor('in1')
de = ev3.InfraredSensor('in2')
↑定義
def catch():
while de.value() < 50:
if de.value() < 10:
ml.run_forever(duty_cycle_sp=0)
mr.run_forever(duty_cycle_sp=0)
mm.run_forever(duty_cycle_sp=50)
time.sleep(4)
mm.run_forever(duty_cycle_sp=0)
ml.run_forever(duty_cycle_sp=-20)
mr.run_forever(duty_cycle_sp=-20)
time.sleep(1.5)
ml.run_forever(duty_cycle_sp=0)
mr.run_forever(duty_cycle_sp=0)
ml.run_forever(duty_cycle_sp=-50)
mr.run_forever(duty_cycle_sp=50)
time.sleep(1.6)
ml.run_forever(duty_cycle_sp=0)
mr.run_forever(duty_cycle_sp=0)
else:
ml.run_forever(duty_cycle_sp=15)
mr.run_forever(duty_cycle_sp=15)
↑センサーと紙コップの距離が5cm以下になったとき、距離が1cm...
def lineright():
t0 = time.time()
while time.time() - t0 < 0.35:
if cs.value () > 50 :
mr.run_forever(duty_cycle_sp=60)
ml.run_forever(duty_cycle_sp=-30)
t0 = time.time()
else:
mr.run_forever(duty_cycle_sp=-30)
ml.run_forever(duty_cycle_sp=60)
↑ライントレースの定義文~
これらを組み合わせてマップのあっちこっちからコップを集め...
詳しくは[naho]氏のページ(↓リンク先)を参照ください~
http://yakushi.shinshu-u.ac.jp/robotics/?2016a%2FMember%2...
タワーのプログラム説明~
これもタワーのプログラムをメインに行なった[KAIYMB]氏のペ...
http://yakushi.shinshu-u.ac.jp/robotics/?2016a%2FMember%2...
前日まではプログラムの制作も手伝っていたのですが、当日に...
#!/usr/bin/python
import ev3dev.ev3 as ev3
import time
m1 = ev3.LargeMotor('outA')
m2 = ev3.MediumMotor('outB')
m3 = ev3.MediumMotor('outC')
m4 = ev3.LargeMotor('outD')
us = ev3.UltrasonicSensor('in1')
↑定義
def search(p):
t0 = time.time()
while time.time() - t0 < 0.001:
if us.value() > p:
m4.run_forever(duty_cycle_sp=50)
t0 = time.time()
else:
m4.stop()
↑コップを探すプログラム
def close():
m1.run_forever(duty_cycle_sp=-37.5)
time.sleep(0.32)
m1.stop()
↑スイングアーム開閉
def bring(x,y):
m4.run_forever(duty_cycle_sp=x)
time.sleep(y)
m4.stop()
↑前後移動
def up():
m3.run_forever(duty_cycle_sp=-50)
m2.run_forever(duty_cycle_sp=50)
time.sleep(2.25)
m2.stop()
m3.stop()
def down():
m3.run_forever(duty_cycle_sp=50)
m2.run_forever(duty_cycle_sp=-50)
time.sleep(1.5)
m2.stop()
m3.stop()
↑コップ持ち上げと下げ
ロボコン
ビジュアル点は多く貰えましたが、クワガタが一つも紙コップ...
問題点、反省点
今回、最も大きな問題は「理想的な状況を想定しすぎていた」...
実際、タワー側は前日にはかなり高い精度で動けるようになっ...
しかし~
・タワーは前後移動しかできないため、紙コップを探せない(ク...
・しかしクワガタはそんなに高い精度で紙コップを置くことが...
・タワーも大型化しすぎたせいか、繰り返し動作すると若干、...
・動きが変わってきてしまう(バッテリーのせいか?)~
・超音波センサーがかなり不正確~
・LargeMotorの回転角度が指定できない~
・同じパワーで同じ時間回してもタワー上部のMediumMotorの回...
・場所によってライントレースの交差点判別がうまくいかない...
と、上げきれないほどの問題点がありました~
半年間のロボティクス入門ゼミの授業で、チャレンジすること...
これからのご時世、機械システム屋にとっても電子制御はつき...
これらを踏まえて、この夏休み中、高専の電子制御科に行った...
ページ名: