2018a/Member/yuya/Mission3
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[2018a/Member]]
*目次 [#o17c84dc]
#contents
*課題3:空き缶運搬ロボット2 [#kb07e56a]
~ 空き缶を分別して所定の場所に運ぶ.
#ref(./2018a-mission2.png,コース)
#br
~・フィールドの説明
~ フィールドは課題2で使用した紙を使用する.
~ 2種類の空き缶(Aタイプ,Bタイプ)をそれぞれ3個づつ用意し...
~ 空き缶には色をつけたり文字や記号を書いてもよい.あるい...
#br
~・基本ルール
~ 競技時間は審判が続行不能と判断するまで,あるいはリタイ...
~ 図のA地点からスタートする.ただし接地している部分はそ...
~ Aタイプの空き缶を円Y内に,Bタイプの空き缶を円X内に運ぶ.
~ 開始の合図から5秒以内にスタートボタンを押す作業を完了...
~ 競技が終了するまで,ロボットに触ったり人間が遠隔で操作...
~ 途中でうまく動かなくなった場合,1回限り再スタートする...
#br
~・基本得点の計算方法
~ 運んだ空き缶の数×3点
~ 空き缶を積み重ねて置くことができば場合,2段目の空き缶...
~ 円内からはみ出している場合,半分以下なら1点減点,半分...
~ 間違った円内に空き缶を置いた場合は,1個につき1点減点.
~ 間違った円内の2段目に空き缶を置いた場合は1個につき3点...
#br
~・技術点の計算方法
~ 以下の動作の精度・スピード・確実性などを含めた技術的な...
~ 空き缶を探し取りにいくまでの動作 (3点)
~ 空き缶を掴む動作 (3点)
~ 空き缶を運ぶ動作 (2点)
~ 空き缶を置く動作 (2点)
~ 空き缶を積む動作 (3点)
~ 2台のRCXまたはNXT、EV3の連携の良さ(2点)
~ 自立型のロボットとしての形や動作の美しさ、斬新さ(2点)
~ その他 (3点)
*完成したロボット [#aa09dd11]
**特徴 [#k473aafb]
~ 移動させる缶は左右対称である.それを利用して左右にアー...
#ref(./DSC_0361.JPG,ロボット本体)
~ また,つかんだ缶はキャタピラーを動かすことで持ち上げる...
#ref(./DSC_0358.JPG,缶を持ったロボット)
**工夫した点 [#vdcda495]
~ このロボットはスタートしたら,最初に添付したコースのG...
#ref(./DSC_0347.JPG,カラーセンサー)
~ EV3本体が後輪の上のあたりについているため,EV3の重さで...
#ref(./DSC_0355.JPG,おもり)
*作戦と方針 [#ubad1552]
~ 当初は缶をできるだけ多く積み上げるようなプログラムを作...
~ また,キットのキャタピラーのパーツが少なく,アームの上...
~ ロボットを作り替える時間がすでになかったこととこれらの...
~ このような作戦変更のおかげで,練習では10〜12点を安定し...
*プログラミング [#pc973b89]
**工夫した点 [#u07ab0a8]
~ 充電の状態に左右されないようにモーターの動きは全て時間...
~ また,これより前にも述べているが,カラーセンサーを使っ...
**プログラム [#v6786ecf]
#!/usr/bin/env python3
from ev3dev.ev3 import *
from time import sleep
ここまでがプログラムの準備
mA = MediumMotor('outA')
mH = LargeMotor('outB')
mR = LargeMotor('outC')
mL = LargeMotor('outD')
cs = ColorSensor('in1') #それぞれのモーターとセンサーの...
cs.mode = 'COL-REFLECT'
mA.reset()
mH.reset()
mR.reset()
mL.reset() #全てのモーターをリセットする
def move_position(R,L,s): #タイヤを動かす関数(変数をい...
mR.run_to_rel_pos(position_sp=R, speed_sp=50, stop_...
mL.run_to_rel_pos(position_sp=L, speed_sp=50, stop_...
sleep(s)
def move_arm(x,s): アームを閉じたり開いたりする関数(こ...
mA.run_to_rel_pos(position_sp=x, speed_sp=100, stop...
sleep(s)
def move_high(x,s): #キャタピラーを動かしてアームの高さ...
mH.run_to_rel_pos(position_sp=x, speed_sp=130, stop...
sleep(s)
def move_straight(): #真っ直ぐ進んで交差点Gで止まる関数
t0 = time.time()
while time.time() - t0 < 0.3:
mR.run_to_rel_pos(position_sp=20, speed_sp=50, st...
mL.run_to_rel_pos(position_sp=20, speed_sp=50, st...
if cs.value() >= 75:
t0 = time.time()
~ ここまでが定義した関数
move_position(920,920,18) #まっすぐ進んで交差点Gの真下...
move_position(180,-180,8) #90度車体を回転
move_position(360,360,10) #少しまっすぐ進む
move_straight() #交差点Gまで進む
move_arm(700,6) #アームを閉じて一番下の缶をつかむ(乗っ...
move_position(380,-380,11) #180度車体を回転(乗っている...
move_arm(-300,6) #缶を離す(一番下の缶が指定された円に...
move_high(1500,15) #二段目の缶までアームを上げる
move_arm(300,6) #二段目の缶をつかむ
move_high(800,10) #少しアームを上げる(2,3段目の缶を持...
move_position(-200,200,8) #約90度車体を回転
move_high(-2300,16) #アームを一番下まで下す
move_position(-150,135,8) #缶が円に収まるように微調整し...
move_arm(-300,6) #缶を離す(もともと2段目にあった缶を離...
~ 落ちた缶が近くの円の中に入ってしまうと減点になってしま...
mA.reset()
mH.reset()
mR.reset()
mL.reset() #最後に全てのモーターをリセット
*感想 [#afb9445b]
~ ロボティクス入門ゼミの集大成としてのロボコンが終わって...
~ 今回の課題では一人一人がプログラムを書くというわけでは...
#br
~ 今までこのゼミで様々な課題に取り組んできて,試行錯誤を...
終了行:
[[2018a/Member]]
*目次 [#o17c84dc]
#contents
*課題3:空き缶運搬ロボット2 [#kb07e56a]
~ 空き缶を分別して所定の場所に運ぶ.
#ref(./2018a-mission2.png,コース)
#br
~・フィールドの説明
~ フィールドは課題2で使用した紙を使用する.
~ 2種類の空き缶(Aタイプ,Bタイプ)をそれぞれ3個づつ用意し...
~ 空き缶には色をつけたり文字や記号を書いてもよい.あるい...
#br
~・基本ルール
~ 競技時間は審判が続行不能と判断するまで,あるいはリタイ...
~ 図のA地点からスタートする.ただし接地している部分はそ...
~ Aタイプの空き缶を円Y内に,Bタイプの空き缶を円X内に運ぶ.
~ 開始の合図から5秒以内にスタートボタンを押す作業を完了...
~ 競技が終了するまで,ロボットに触ったり人間が遠隔で操作...
~ 途中でうまく動かなくなった場合,1回限り再スタートする...
#br
~・基本得点の計算方法
~ 運んだ空き缶の数×3点
~ 空き缶を積み重ねて置くことができば場合,2段目の空き缶...
~ 円内からはみ出している場合,半分以下なら1点減点,半分...
~ 間違った円内に空き缶を置いた場合は,1個につき1点減点.
~ 間違った円内の2段目に空き缶を置いた場合は1個につき3点...
#br
~・技術点の計算方法
~ 以下の動作の精度・スピード・確実性などを含めた技術的な...
~ 空き缶を探し取りにいくまでの動作 (3点)
~ 空き缶を掴む動作 (3点)
~ 空き缶を運ぶ動作 (2点)
~ 空き缶を置く動作 (2点)
~ 空き缶を積む動作 (3点)
~ 2台のRCXまたはNXT、EV3の連携の良さ(2点)
~ 自立型のロボットとしての形や動作の美しさ、斬新さ(2点)
~ その他 (3点)
*完成したロボット [#aa09dd11]
**特徴 [#k473aafb]
~ 移動させる缶は左右対称である.それを利用して左右にアー...
#ref(./DSC_0361.JPG,ロボット本体)
~ また,つかんだ缶はキャタピラーを動かすことで持ち上げる...
#ref(./DSC_0358.JPG,缶を持ったロボット)
**工夫した点 [#vdcda495]
~ このロボットはスタートしたら,最初に添付したコースのG...
#ref(./DSC_0347.JPG,カラーセンサー)
~ EV3本体が後輪の上のあたりについているため,EV3の重さで...
#ref(./DSC_0355.JPG,おもり)
*作戦と方針 [#ubad1552]
~ 当初は缶をできるだけ多く積み上げるようなプログラムを作...
~ また,キットのキャタピラーのパーツが少なく,アームの上...
~ ロボットを作り替える時間がすでになかったこととこれらの...
~ このような作戦変更のおかげで,練習では10〜12点を安定し...
*プログラミング [#pc973b89]
**工夫した点 [#u07ab0a8]
~ 充電の状態に左右されないようにモーターの動きは全て時間...
~ また,これより前にも述べているが,カラーセンサーを使っ...
**プログラム [#v6786ecf]
#!/usr/bin/env python3
from ev3dev.ev3 import *
from time import sleep
ここまでがプログラムの準備
mA = MediumMotor('outA')
mH = LargeMotor('outB')
mR = LargeMotor('outC')
mL = LargeMotor('outD')
cs = ColorSensor('in1') #それぞれのモーターとセンサーの...
cs.mode = 'COL-REFLECT'
mA.reset()
mH.reset()
mR.reset()
mL.reset() #全てのモーターをリセットする
def move_position(R,L,s): #タイヤを動かす関数(変数をい...
mR.run_to_rel_pos(position_sp=R, speed_sp=50, stop_...
mL.run_to_rel_pos(position_sp=L, speed_sp=50, stop_...
sleep(s)
def move_arm(x,s): アームを閉じたり開いたりする関数(こ...
mA.run_to_rel_pos(position_sp=x, speed_sp=100, stop...
sleep(s)
def move_high(x,s): #キャタピラーを動かしてアームの高さ...
mH.run_to_rel_pos(position_sp=x, speed_sp=130, stop...
sleep(s)
def move_straight(): #真っ直ぐ進んで交差点Gで止まる関数
t0 = time.time()
while time.time() - t0 < 0.3:
mR.run_to_rel_pos(position_sp=20, speed_sp=50, st...
mL.run_to_rel_pos(position_sp=20, speed_sp=50, st...
if cs.value() >= 75:
t0 = time.time()
~ ここまでが定義した関数
move_position(920,920,18) #まっすぐ進んで交差点Gの真下...
move_position(180,-180,8) #90度車体を回転
move_position(360,360,10) #少しまっすぐ進む
move_straight() #交差点Gまで進む
move_arm(700,6) #アームを閉じて一番下の缶をつかむ(乗っ...
move_position(380,-380,11) #180度車体を回転(乗っている...
move_arm(-300,6) #缶を離す(一番下の缶が指定された円に...
move_high(1500,15) #二段目の缶までアームを上げる
move_arm(300,6) #二段目の缶をつかむ
move_high(800,10) #少しアームを上げる(2,3段目の缶を持...
move_position(-200,200,8) #約90度車体を回転
move_high(-2300,16) #アームを一番下まで下す
move_position(-150,135,8) #缶が円に収まるように微調整し...
move_arm(-300,6) #缶を離す(もともと2段目にあった缶を離...
~ 落ちた缶が近くの円の中に入ってしまうと減点になってしま...
mA.reset()
mH.reset()
mR.reset()
mL.reset() #最後に全てのモーターをリセット
*感想 [#afb9445b]
~ ロボティクス入門ゼミの集大成としてのロボコンが終わって...
~ 今回の課題では一人一人がプログラムを書くというわけでは...
#br
~ 今までこのゼミで様々な課題に取り組んできて,試行錯誤を...
ページ名: