2018a/Member/Cho/Mission2
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[2018a/Member]]
#contents
*課題 [#bdc897a8]
**下の図のようなコースを各チームで作成し、「ミッション」を遂行するためのロボットを作成せよ。 [#w3d1ff98]
#ref(2018a/Member/Cho/Mission2/2018a-mission2.png,7.4KB,課題2のコース)
第2コースを選んだ。
***第2コース [#f619d59e]
+ Aをスタート
+ Bを直進
+ Cで一時停止の後、直進
+ Dで一時停止の後、Xの空き缶をキャッチしてD地点に戻る
+ DからEに向かい、Eを直進
+ Fを左折
+ Gで一時停止の後、左折
+ Hで一時停止の後、右折
+ Iで一時停止の後、右折
+ Lを直進
+ Kを直進
+ Jで一時停止の後、空き缶をYに置きてJに戻りBに向かう
+ Bで一時停止の後、左折
+ Aで停止
*ロボット [#ia3debc6]
#ref(2018a/Member/Cho/Mission2/IMG_0176.JPG,81.2KB,ロボット)
#ref(2018a/Member/Cho/Mission2/IMG_0178.JPG,64.9KB,ロボット下から)
#ref(2018a/Member/Cho/Mission2/IMG_0180.JPG,110.6KB ,ロボット横から)
**説明 [#je947f7e]
説明書通りのロボットの前方にアームとカラーセンサ、超音波センサを追加した。空き缶を固定するためのアームを、上からかぶせるタイプにすることで、空き缶の運搬中に缶が倒れにくくした。また、アームのモータがロボットの前方中央に位置するため、線を感知するカラーセンサは横にずらして設置した。超音波センサは、相方が使うためのもので、今回は使わないことにした。
*プログラム [#l3ccb5b7]
**定義 [#w9295be6]
***モータ、センサなど [#xe675878]
mL = LargeMotor('outA')
mR = LargeMotor('outB')
cs = ColorSensor('in3')
m = MediumMotor("outC")
us = UltrasonicSensor("in4")
timeB = 0.9
***線の右側をたどるプログラム [#ne99384b]
def fol_rightside():
t0 = time.time()
while time.time() - t0 < timeB:
if cs.value() < 50:
mL.run_forever(speed_sp = 150)
mR.run_forever(speed_sp = -20)
if cs.value() >= 50:
mL.run_forever(speed_sp = -20)
mR.run_forever(speed_sp = 150)
t0 = time.time()
***線の左側をたどるプログラム [#p532126d]
def fol_leftside():
t0 = time.time()
while time.time() - t0 < timeB:
if cs.value() >= 50:
mL.run_forever(speed_sp = 150)
mR.run_forever(speed_sp = -20)
if cs.value() < 50:
mL.run_forever(speed_sp = -20)
mR.run_forever(speed_sp = 150)
t0 = time.time()
***アームを動かすプログラム [#g56f2b99]
def arm(t):
m.run_to_rel_pos(position_sp = t, speed_sp = 100, stop_action = 'break')
sleep(1)
**全体 [#a9a5aa92]
fol_rightside()
fol_rightside()
cross(-150,20)
arm(60)
sleep(1)
fol_leftside()
cross(20,-150)
move_for()
fol_leftside()
cross(20,-150)
move_for()
fol_leftside()
cross(20,-150)
sleep(1)
fol_leftside()
cross(20,-150)
sleep(1)
fol_leftside()
sleep(1)
fol_leftside()
cross(20,-150)
fol_rightside()
sleep(1)
fol_rightside()
fol_rightside()
sleep(1)
turn()
arm(-60)
sleep(1)
turn()
fol_rightside()
fol_rightside()
cross(-150,20)
*結果 [#z6127b6e]
ラインの境界線をたどって動くことはできたが、交差点でコースアウトした。空き缶にアームをかぶせることは難しいが、空き缶を動かすことは割と安定していた。
**問題点 [#aa86ae05]
+交差点の認識
+アームの間が狭く、空き缶の位置がずれていたらアームで固定できない
+カラーセンサが右側についているため、ラインの右境界線をトレースするときと左境界線をトレースするときの違い
**感想 [#r2bc2af7]
自分の未熟さを知った。ロボット、プログラムの両方に問題が多く、とても満足はできない。もっと時間をかけるべきだったと思う。
終了行:
[[2018a/Member]]
#contents
*課題 [#bdc897a8]
**下の図のようなコースを各チームで作成し、「ミッション」を遂行するためのロボットを作成せよ。 [#w3d1ff98]
#ref(2018a/Member/Cho/Mission2/2018a-mission2.png,7.4KB,課題2のコース)
第2コースを選んだ。
***第2コース [#f619d59e]
+ Aをスタート
+ Bを直進
+ Cで一時停止の後、直進
+ Dで一時停止の後、Xの空き缶をキャッチしてD地点に戻る
+ DからEに向かい、Eを直進
+ Fを左折
+ Gで一時停止の後、左折
+ Hで一時停止の後、右折
+ Iで一時停止の後、右折
+ Lを直進
+ Kを直進
+ Jで一時停止の後、空き缶をYに置きてJに戻りBに向かう
+ Bで一時停止の後、左折
+ Aで停止
*ロボット [#ia3debc6]
#ref(2018a/Member/Cho/Mission2/IMG_0176.JPG,81.2KB,ロボット)
#ref(2018a/Member/Cho/Mission2/IMG_0178.JPG,64.9KB,ロボット下から)
#ref(2018a/Member/Cho/Mission2/IMG_0180.JPG,110.6KB ,ロボット横から)
**説明 [#je947f7e]
説明書通りのロボットの前方にアームとカラーセンサ、超音波センサを追加した。空き缶を固定するためのアームを、上からかぶせるタイプにすることで、空き缶の運搬中に缶が倒れにくくした。また、アームのモータがロボットの前方中央に位置するため、線を感知するカラーセンサは横にずらして設置した。超音波センサは、相方が使うためのもので、今回は使わないことにした。
*プログラム [#l3ccb5b7]
**定義 [#w9295be6]
***モータ、センサなど [#xe675878]
mL = LargeMotor('outA')
mR = LargeMotor('outB')
cs = ColorSensor('in3')
m = MediumMotor("outC")
us = UltrasonicSensor("in4")
timeB = 0.9
***線の右側をたどるプログラム [#ne99384b]
def fol_rightside():
t0 = time.time()
while time.time() - t0 < timeB:
if cs.value() < 50:
mL.run_forever(speed_sp = 150)
mR.run_forever(speed_sp = -20)
if cs.value() >= 50:
mL.run_forever(speed_sp = -20)
mR.run_forever(speed_sp = 150)
t0 = time.time()
***線の左側をたどるプログラム [#p532126d]
def fol_leftside():
t0 = time.time()
while time.time() - t0 < timeB:
if cs.value() >= 50:
mL.run_forever(speed_sp = 150)
mR.run_forever(speed_sp = -20)
if cs.value() < 50:
mL.run_forever(speed_sp = -20)
mR.run_forever(speed_sp = 150)
t0 = time.time()
***アームを動かすプログラム [#g56f2b99]
def arm(t):
m.run_to_rel_pos(position_sp = t, speed_sp = 100, stop_action = 'break')
sleep(1)
**全体 [#a9a5aa92]
fol_rightside()
fol_rightside()
cross(-150,20)
arm(60)
sleep(1)
fol_leftside()
cross(20,-150)
move_for()
fol_leftside()
cross(20,-150)
move_for()
fol_leftside()
cross(20,-150)
sleep(1)
fol_leftside()
cross(20,-150)
sleep(1)
fol_leftside()
sleep(1)
fol_leftside()
cross(20,-150)
fol_rightside()
sleep(1)
fol_rightside()
fol_rightside()
sleep(1)
turn()
arm(-60)
sleep(1)
turn()
fol_rightside()
fol_rightside()
cross(-150,20)
*結果 [#z6127b6e]
ラインの境界線をたどって動くことはできたが、交差点でコースアウトした。空き缶にアームをかぶせることは難しいが、空き缶を動かすことは割と安定していた。
**問題点 [#aa86ae05]
+交差点の認識
+アームの間が狭く、空き缶の位置がずれていたらアームで固定できない
+カラーセンサが右側についているため、ラインの右境界線をトレースするときと左境界線をトレースするときの違い
**感想 [#r2bc2af7]
自分の未熟さを知った。ロボット、プログラムの両方に問題が多く、とても満足はできない。もっと時間をかけるべきだったと思う。
ページ名: