2018a/Member

課題

下の図のようなコースを各チームで作成し、「ミッション」を遂行するためのロボットを作成せよ。

7.4KB,課題2のコース

 第2コースを選んだ。

第2コース

  1. Aをスタート
  2. Bを直進
  3. Cで一時停止の後、直進
  4. Dで一時停止の後、Xの空き缶をキャッチしてD地点に戻る
  5. DからEに向かい、Eを直進
  6. Fを左折
  7. Gで一時停止の後、左折
  8. Hで一時停止の後、右折
  9. Iで一時停止の後、右折
  10. Lを直進
  11. Kを直進
  12. Jで一時停止の後、空き缶をYに置きてJに戻りBに向かう
  13. Bで一時停止の後、左折
  14. Aで停止

ロボット

81.2KB,ロボット
64.9KB,ロボット下から
110.6KB ,ロボット横から

説明

 説明書通りのロボットの前方にアームとカラーセンサ、超音波センサを追加した。空き缶を固定するためのアームを、上からかぶせるタイプにすることで、空き缶の運搬中に缶が倒れにくくした。また、アームのモータがロボットの前方中央に位置するため、線を感知するカラーセンサは横にずらして設置した。超音波センサは、相方が使うためのもので、今回は使わないことにした。

プログラム

定義

モータ、センサなど

mL = LargeMotor('outA')
mR = LargeMotor('outB')
cs = ColorSensor('in3')
m = MediumMotor("outC")
us = UltrasonicSensor("in4") 

timeB = 0.9

線の右側をたどるプログラム

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()

線の左側をたどるプログラム

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()

アームを動かすプログラム

def arm(t):
        m.run_to_rel_pos(position_sp = t, speed_sp = 100, stop_action = 'break')
        sleep(1)

全体

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)

結果

ラインの境界線をたどって動くことはできたが、交差点でコースアウトした。空き缶にアームをかぶせることは難しいが、空き缶を動かすことは割と安定していた。

問題点

  1. 交差点の認識
  2. アームの間が狭く、空き缶の位置がずれていたらアームで固定できない
  3. カラーセンサが右側についているため、ラインの右境界線をトレースするときと左境界線をトレースするときの違い

感想

 自分の未熟さを知った。ロボット、プログラムの両方に問題が多く、とても満足はできない。もっと時間をかけるべきだったと思う。


添付ファイル: fileIMG_0180.JPG 6件 [詳細] fileIMG_0178.JPG 5件 [詳細] fileIMG_0176.JPG 6件 [詳細] file2018a-mission2.png 1件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2018-07-19 (木) 22:30:31 (149d)