2018b/Member/Yoshi/Mission3
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
目次
#contents
*課題 [#ra7beac2]
今回の課題はボールを運搬するロボットを作ることである。
青と赤のボールを運搬して、それぞれ所定の350ml缶の上に乗せ...
&ref(2018b/Member/Yoshi/Mission3/ロボティクス課題3.png,10...
フィールドの説明~
◦フィールドは課題2で...
◦350ml缶(中が入ってい...
◦その番号の次の番号の...
置いてもよいものとす...
◦空き缶には色をつけた...
◦赤と青のボールは、図...
**ルール[#df79f5bf]
基本ルール ~
◦競技時間は審判が続行不能と判断す...
◦図のX地点または(および)Y地点か...
はみ出していてもよい。~
◦赤いボールを図のピンクのいずれか...
◦開始の合図から5秒以内にスタート...
◦競技が終了するまで、ロボットに触...
◦途中でうまく動かなくなった場合、...
基本得点の計算方法 ~
◦ボールを一つ乗せればそれぞれ10点...
◦ダミーの缶を設置した上で、正しい...
◦ボールを目的の缶に当てることがで...
◦ボールを同じ領域内の間違った缶に...
◦ボールを同じ領域内の間違った缶に...
◦ボールを違う領域内の缶に乗せた場...
◦ボールを違う領域内の缶に当てた場...
◦目的の缶をもとの位置(直径7cmの...
少ないほうを減点、その缶を完全に...
◦ダミーの缶がもとの位置から移動し...
技術点の計算方法~
◦以下の動作の精度・スピード・確実...
得点の目安:~
◦ボール探し取りにいくまでの動作 (...
◦ボール掴む動作 (3点)~
◦ボールを運ぶ動作 (2点)~
◦ボールを缶に置く動作 (2点)~
◦2台のNXT、EV3の連携の良さ(2点)~
◦自立型のロボットとしての形や動作...
◦その他 (3点)~
*作戦 [#pe756174]
**コースについて [#i0c8289e]
コースに関しては以下のように進むことにした。~
赤の線は赤いボールを赤の缶に置くまでを示したもので青の線...
まず、XからスタートしGで赤のボールを拾う。~
そしてEまで行き、そこで正しい缶を見つける。~
見つけたら、その缶まで一直線に進み(どの缶に進むかの線は...
置いたらE地点に戻り、Iで青のボールを拾い、Kまで行き、正し...
&ref(2018b/Member/Yoshi/Mission3/ロボティクス課題3.jpg,10...
**ロボットについて [#ec55b3e1]
ロボットは以下の写真のようなものにした。
&ref(2018b/Member/Yoshi/Mission3/課題301.JPG,100%,完成);
全ての動作を1つで行うロボットである。本体を2つ使っている...
以下の写真は、超音波センサとカラーセンサについてのもので...
超音波センサはボールを見つけるため、アームと同じ軸にある...
カラーセンサは最初2つ使ってライントレースしようと思ったが...
&ref(2018b/Member/Yoshi/Mission3/課題302 (2).jpg,100%,完...
**ライントレースについて [#m7ad7c36]
ライントレースは最初、カラーセンサを2個使い行おうと思った...
この原因として考えられるのは、カラーセンサの位置が高く,う...
直して、カラーセンサを2つ使ってライントレースさせても良か...
**プログラムについて [#leba3965]
プログラムに関しては、大きく分けて2つのことをどのような関...
1つ目は缶を探す関数である。~
赤と青の缶の位置が違うのでそれぞれの缶を見つける関数を分...
赤の缶ではカラーセンサの最短距離によって缶を見つけるもの...
2つ目は缶に近づく関数である。~
1つ目でどの缶に行くかは決まったので、あとはその方向を向き...
主にこの2つが課題3で問題になったプログラムだ。~
その他のプログラムに関しては、今までの課題を使えばよかっ...
*プログラムの説明 [#nf30f369]
**プログラムの導入 [#t49ebfe6]
#!/usr/bin/env python3
from ev3dev.ev3 import *
import time
mL=LargeMotor('outA') #装置AのモーターをmLとおく
mR=LargeMotor('outD') #装置DのモーターをmRとおく
mA=MediumMotor('outC') #装置CのモーターをmAとおく
mC=MediumMotor('outB') #装置BのモーターをmCとおく
csR=ColorSensor('in1') #装置1のモーターをcsRとおく
#csL=ColorSensor('in2') #結局使わなかった
us=UltrasonicSensor('in3') #装置3のモーターをusとおく
**定義の導入 [#ldeee58a]
def turnR1(): #緩やかに右に曲がる関数を定義
mL.run_forever(speed_sp=100,stop_action='brake')
mR.stop()
def turnL1(): #緩やかに左に曲がる関数を定義
mR.run_forever(speed_sp=100,stop_action='brake')
mL.stop()
def run1(): #速めにまっすぐ進む関数を定義
mR.run_forever(speed_sp=100,stop_action='brake')
mL.run_forever(speed_sp=100,stop_action='brake')
def turnR2(): #右に急カーブする関数を定義
mL.run_forever(speed_sp=100,stop_action='brake')
mR.run_forever(speed_sp=-70,stop_action='brake')
def turnL2(): #左に急カーブする関数を定義
mR.run_forever(speed_sp=100,stop_action='brake')
mL.run_forever(speed_sp=-70,stop_action='brake')
def traceR(): #右側をトレースする関数を定義
t0=time.time()
while time.time()-t0<0.35: #0.35秒間行う
if cs.value()<35: #カラーセンサの値が真っ黒だった...
turnR2()
if 35<=cs.value()<40: #カラーセンサの値が黒だった...
turnR1()
t0=time.time()
if 40<=cs.value()<=50: #カラーセンサの値がグレー...
run1()
t0=time.time()
if 50<cs.value()<=60: #カラーセンサの値が白だった...
turnL1()
t0=time.time()
if cs.value()>60: #カラーセンサの値が真っ白だった...
turnL2()
t0=time.time()
mR.stop()
mL.stop()
def traceRa(t): #好きな時間だけ右側をライントレースする...
t1=time.time()
while time.time()-t1<t: #t秒間だけ行う
if cs.value()<35: #カラーセンサが真っ黒だった...
turnR2()
if 35<=cs.value()<40: #カラーセンサが黒だった...
turnR1()
if 40<=cs.value()<=50: #カラーセンサがグレー...
run1()
if 50<cs.value()<=60: #カラーセンサが白だった...
turnL1()
if cs.value()>60: #カラーセンサが真っ白だった...
turnL2()
mR.stop()
mL.stop()
def run2(): #遅めにまっすぐ進む関数を定義
mL.run_forever(speed_sp=50, stop_action='brake')
mR.run_forever(speed_sp=50, stop_action='brake')
def forward(): #少し進む関数を定義
mL.run_to_rel_pos(position_sp=360, speed_sp=500, stop...
mR.run_to_rel_pos(position_sp=360, speed_sp=500, stop...
def forward_bit(): #ほんの少し進む関数を定義
mL.run_to_rel_pos(position_sp=200, speed_sp=500, stop...
mR.run_to_rel_pos(position_sp=200, speed_sp=500, stop...
def catchup(): #ボールに近づいて取って持ち上げる関数を定義
while us.value()>=50: #カラーセンサの値が50以下の時行う
run2()
mR.stop()
mL.stop()
mC.reset()
mC.run_to_abs_pos(position_sp=60 ,speed_sp=20, stop_a...
time.sleep(3)
mA.run_to_abs_pos(position_sp=100, speed_sp=30, stop_...
time.sleep(4)
mC.run_to_abs_pos(position_sp=0, speed_sp=20, stop_ac...
time.sleep(6)
mA.run_to_abs_pos(position_sp=0, speed_sp=100, stop_a...
time.sleep(3)
def puton_red(): #赤の缶に近づいてボールを置く関数を定義
time4=time.time()
while us.value>=40: #カラーセンサの値が40以下の時行う
run()
time_kan=time.time()
mC.run_to_rel_abs(position_sp=30, speed_sp=20, stop_a...
time.sleep(1)
timenow=time.time()
while time.time()-timenow<=time_kan-time4: #赤の缶に...
mL.run_forever(speed_sp=-50, stop_action='brake')
mR.run_forever(speed_sp=-50, stop_action='brake')
def puton_blue(): #青の缶に近づいてボールを置く関数を定義
while us.value()>=40: #カラーセンサの値が40以上の時行う
run()
mC.run_to_rel_abs(position_sp=30, speed_sp=20, stop_...
def direct_one(): #赤の?の缶の方向を向く関数を定義
time1=time.time()
while time.time()-time1<=2: #2秒間行う
mL.run_forever(speed_sp=-50, stop_action='brake')
mR.run_forever(speed_sp=50, stop_action='brake')
def Round_red(): #赤の缶のエリアを回る関数を定義
time1=time.time()
while time.time()-time1<=fuga: #fugaの時間だけ行う fu...
mL.run_forever(speed_sp=50, stop_action='brake')
mR.run_forever(speed_sp=-50, stop_action='brake')
def direct_redkan(): #赤の正しい缶を見つける関数を定義
time1=time()
while time.time()-time1<=fuga-(think_red()-time_start...
mL.run_forever(speed_sp=-50, stop_action='brake')
mR.run_forever(speed_sp=50, stop_action='brake')
def direct_I(): #位置Iの方向を向く関数を定義
time1=time.time()
while time.time()-time1<=think_red()-time_start+いく...
mL.run_forever(speed_sp=-50, stop_action='brake')
mR.run_forever(speed_sp=50, stop_action='brake')
def direct_B(): #位置Bの方向を向く関数を定義
time1=time.time()
while time.time()-time1<=2: #2秒間行う
mL.run_forever(speed_sp=-50, stop_action='brake')
mR.run_forever(speed_sp=50, stop_action='brake')
def Round_blue(): #青の缶のエリアを回る関数を定義
time1=time.time()
while time.time()-time1<=fuga2: #fuga2の時間だけ行う...
mL.run_forever(speed_sp=50, stop_action='brake')
mR.run_forever(speed_sp=-50, stop_action='brake')
def direct_bluekan(): #青の正しい缶を見つける関数を定義
time1=time()
while time.time()-time1<=fuga2-(think_blue()-time_sta...
mL.run_forever(speed_sp=-50, stop_action='brake')
mR.run_forever(speed_sp=50, stop_action='brake')
time_start=0
time_a=0
time_b=0
def search(fuga,hoge): #どれが正しい缶かを見つける関数を...
global time_start #関数外からtime_startの値を持ってくる
global time_a #関数外からtime_aの値を持ってくる
global time_b #関数外からtime_bの値を持ってくる
a=1250 #aに最短距離を入れるので遠い値、つまり大きい値...
b=1250 #bに最短距離を入れるので遠い値、つまり大きい値...
time0=time_start=time.time()
while us.value()>=hoge: #カラーセンサの値がhogeより大...
continue
while time.time()-time0<=fuga: #fuga以下の時間だけ行う
if us.value()<=hoge: #カラーセンサの値がhoge以下...
if us.value()<=a: #カラーセンサの値がa以下の...
a=us.value() #aにカラーセンサの値、つま...
time_a=time.time() #time_aにその時の時間...
else: #hogeより大きいときは、この繰り返しを抜ける
break
while time.time()-time0<=fuga and us.value()>=hoge: #...
continue
while time.time()-time0<=fuga: #fuga以下の時間時行う
if us.value()<=hoge: #カラーセンサがhoge以上の値...
if us.value()<=b: #カラーセンサがb以下の値時...
b=us.value() #bにカラーセンサの値、つま...
time_b=time.time() #time_bにその時の時間...
else: #hogeより大きいときは、この繰り返しを抜ける
break
def think_red(): #赤の正しい缶を決める関数を定義
if a<b: #aがbより小さいとき行う
return time_a #time_aを戻り値として返す
else: #bがa以上の時行う
return time_b #time_bを戻り値として返す
def think_blue(): #青の正しい缶を決める関数を定義
if a<150 and b<150: #aとbが150未満の時行う つまり1の...
return time_b #time_bを戻りとして返す
if a<150 and 150<=b<300: #aが150未満、bが150以上300未...
return time_a #time_aを戻り値として返す
if 150<=a<300 and 150<=b<300: #aが150以上300未満、bが...
return time_a #time_aを戻り値として返す
if a<300 and b=1250: #aが300未満、bが1250の時行う つ...
return time_a #time_aを戻り値として返す
if a>=300 and b=1250: #aが300以上、bが1250の時行う つ...
return time_b #time_bを戻り値として返す
if 450<b<550: #bが450より大きく550未満の時行う つま...
return time_b #time_bを戻り値として返す
*解決すべきだった問題 [#mf770ef7]
作業をしていていろいろな課題が出てきた。~
大きく分けて、4つある。~
1つ目はカラーセンサについてである。~
これについては先述である。~
2つ目はロボットについてである。~
ロボットの問題は2つ出てきて、1つ目がボールの重さでアーム...
特別ボールが重いわけではないが、ボールがないときはしっか...
これに関しては、原因がよくわからず、解決策も思い浮かず解...
2つ目はボールを使うとき、ロボットが前のめりになって倒れて...
これは後ろにもう1つの本体をつけることによって解決された。
3つ目の課題は缶を見つける関数だ。~
赤と青の缶の位置が違うのでそれぞれの缶を見つける関数を分...
赤の缶ではカラーセンサの最短距離によって缶を見つけるもの...
これでできるはずだったが、そこまで行くまでに4つ目の課題の...
今回はテスト期間と被り、あまり作業を効率よく行うことがで...
*結果 [#h00a5b75]
結局、課題を解決できず、練習では、赤のボールをつかみEまで...
しかし、本番ではボールをつかむこともできなかった。~
原因は良く分からなかったが、完全に準備不足だった。~
その結果、基本点は0点で、技術点は他の班からの慈悲点という...
*感想 [#hc9ee2de]
今回の課題3まで授業でいろいろな課題をやってきて授業が始ま...
特にプログラムに関しては、授業前はpythonというプログラミ...
最後はとても不甲斐ない結果に終わってしまったし、ほかの授...
終了行:
目次
#contents
*課題 [#ra7beac2]
今回の課題はボールを運搬するロボットを作ることである。
青と赤のボールを運搬して、それぞれ所定の350ml缶の上に乗せ...
&ref(2018b/Member/Yoshi/Mission3/ロボティクス課題3.png,10...
フィールドの説明~
◦フィールドは課題2で...
◦350ml缶(中が入ってい...
◦その番号の次の番号の...
置いてもよいものとす...
◦空き缶には色をつけた...
◦赤と青のボールは、図...
**ルール[#df79f5bf]
基本ルール ~
◦競技時間は審判が続行不能と判断す...
◦図のX地点または(および)Y地点か...
はみ出していてもよい。~
◦赤いボールを図のピンクのいずれか...
◦開始の合図から5秒以内にスタート...
◦競技が終了するまで、ロボットに触...
◦途中でうまく動かなくなった場合、...
基本得点の計算方法 ~
◦ボールを一つ乗せればそれぞれ10点...
◦ダミーの缶を設置した上で、正しい...
◦ボールを目的の缶に当てることがで...
◦ボールを同じ領域内の間違った缶に...
◦ボールを同じ領域内の間違った缶に...
◦ボールを違う領域内の缶に乗せた場...
◦ボールを違う領域内の缶に当てた場...
◦目的の缶をもとの位置(直径7cmの...
少ないほうを減点、その缶を完全に...
◦ダミーの缶がもとの位置から移動し...
技術点の計算方法~
◦以下の動作の精度・スピード・確実...
得点の目安:~
◦ボール探し取りにいくまでの動作 (...
◦ボール掴む動作 (3点)~
◦ボールを運ぶ動作 (2点)~
◦ボールを缶に置く動作 (2点)~
◦2台のNXT、EV3の連携の良さ(2点)~
◦自立型のロボットとしての形や動作...
◦その他 (3点)~
*作戦 [#pe756174]
**コースについて [#i0c8289e]
コースに関しては以下のように進むことにした。~
赤の線は赤いボールを赤の缶に置くまでを示したもので青の線...
まず、XからスタートしGで赤のボールを拾う。~
そしてEまで行き、そこで正しい缶を見つける。~
見つけたら、その缶まで一直線に進み(どの缶に進むかの線は...
置いたらE地点に戻り、Iで青のボールを拾い、Kまで行き、正し...
&ref(2018b/Member/Yoshi/Mission3/ロボティクス課題3.jpg,10...
**ロボットについて [#ec55b3e1]
ロボットは以下の写真のようなものにした。
&ref(2018b/Member/Yoshi/Mission3/課題301.JPG,100%,完成);
全ての動作を1つで行うロボットである。本体を2つ使っている...
以下の写真は、超音波センサとカラーセンサについてのもので...
超音波センサはボールを見つけるため、アームと同じ軸にある...
カラーセンサは最初2つ使ってライントレースしようと思ったが...
&ref(2018b/Member/Yoshi/Mission3/課題302 (2).jpg,100%,完...
**ライントレースについて [#m7ad7c36]
ライントレースは最初、カラーセンサを2個使い行おうと思った...
この原因として考えられるのは、カラーセンサの位置が高く,う...
直して、カラーセンサを2つ使ってライントレースさせても良か...
**プログラムについて [#leba3965]
プログラムに関しては、大きく分けて2つのことをどのような関...
1つ目は缶を探す関数である。~
赤と青の缶の位置が違うのでそれぞれの缶を見つける関数を分...
赤の缶ではカラーセンサの最短距離によって缶を見つけるもの...
2つ目は缶に近づく関数である。~
1つ目でどの缶に行くかは決まったので、あとはその方向を向き...
主にこの2つが課題3で問題になったプログラムだ。~
その他のプログラムに関しては、今までの課題を使えばよかっ...
*プログラムの説明 [#nf30f369]
**プログラムの導入 [#t49ebfe6]
#!/usr/bin/env python3
from ev3dev.ev3 import *
import time
mL=LargeMotor('outA') #装置AのモーターをmLとおく
mR=LargeMotor('outD') #装置DのモーターをmRとおく
mA=MediumMotor('outC') #装置CのモーターをmAとおく
mC=MediumMotor('outB') #装置BのモーターをmCとおく
csR=ColorSensor('in1') #装置1のモーターをcsRとおく
#csL=ColorSensor('in2') #結局使わなかった
us=UltrasonicSensor('in3') #装置3のモーターをusとおく
**定義の導入 [#ldeee58a]
def turnR1(): #緩やかに右に曲がる関数を定義
mL.run_forever(speed_sp=100,stop_action='brake')
mR.stop()
def turnL1(): #緩やかに左に曲がる関数を定義
mR.run_forever(speed_sp=100,stop_action='brake')
mL.stop()
def run1(): #速めにまっすぐ進む関数を定義
mR.run_forever(speed_sp=100,stop_action='brake')
mL.run_forever(speed_sp=100,stop_action='brake')
def turnR2(): #右に急カーブする関数を定義
mL.run_forever(speed_sp=100,stop_action='brake')
mR.run_forever(speed_sp=-70,stop_action='brake')
def turnL2(): #左に急カーブする関数を定義
mR.run_forever(speed_sp=100,stop_action='brake')
mL.run_forever(speed_sp=-70,stop_action='brake')
def traceR(): #右側をトレースする関数を定義
t0=time.time()
while time.time()-t0<0.35: #0.35秒間行う
if cs.value()<35: #カラーセンサの値が真っ黒だった...
turnR2()
if 35<=cs.value()<40: #カラーセンサの値が黒だった...
turnR1()
t0=time.time()
if 40<=cs.value()<=50: #カラーセンサの値がグレー...
run1()
t0=time.time()
if 50<cs.value()<=60: #カラーセンサの値が白だった...
turnL1()
t0=time.time()
if cs.value()>60: #カラーセンサの値が真っ白だった...
turnL2()
t0=time.time()
mR.stop()
mL.stop()
def traceRa(t): #好きな時間だけ右側をライントレースする...
t1=time.time()
while time.time()-t1<t: #t秒間だけ行う
if cs.value()<35: #カラーセンサが真っ黒だった...
turnR2()
if 35<=cs.value()<40: #カラーセンサが黒だった...
turnR1()
if 40<=cs.value()<=50: #カラーセンサがグレー...
run1()
if 50<cs.value()<=60: #カラーセンサが白だった...
turnL1()
if cs.value()>60: #カラーセンサが真っ白だった...
turnL2()
mR.stop()
mL.stop()
def run2(): #遅めにまっすぐ進む関数を定義
mL.run_forever(speed_sp=50, stop_action='brake')
mR.run_forever(speed_sp=50, stop_action='brake')
def forward(): #少し進む関数を定義
mL.run_to_rel_pos(position_sp=360, speed_sp=500, stop...
mR.run_to_rel_pos(position_sp=360, speed_sp=500, stop...
def forward_bit(): #ほんの少し進む関数を定義
mL.run_to_rel_pos(position_sp=200, speed_sp=500, stop...
mR.run_to_rel_pos(position_sp=200, speed_sp=500, stop...
def catchup(): #ボールに近づいて取って持ち上げる関数を定義
while us.value()>=50: #カラーセンサの値が50以下の時行う
run2()
mR.stop()
mL.stop()
mC.reset()
mC.run_to_abs_pos(position_sp=60 ,speed_sp=20, stop_a...
time.sleep(3)
mA.run_to_abs_pos(position_sp=100, speed_sp=30, stop_...
time.sleep(4)
mC.run_to_abs_pos(position_sp=0, speed_sp=20, stop_ac...
time.sleep(6)
mA.run_to_abs_pos(position_sp=0, speed_sp=100, stop_a...
time.sleep(3)
def puton_red(): #赤の缶に近づいてボールを置く関数を定義
time4=time.time()
while us.value>=40: #カラーセンサの値が40以下の時行う
run()
time_kan=time.time()
mC.run_to_rel_abs(position_sp=30, speed_sp=20, stop_a...
time.sleep(1)
timenow=time.time()
while time.time()-timenow<=time_kan-time4: #赤の缶に...
mL.run_forever(speed_sp=-50, stop_action='brake')
mR.run_forever(speed_sp=-50, stop_action='brake')
def puton_blue(): #青の缶に近づいてボールを置く関数を定義
while us.value()>=40: #カラーセンサの値が40以上の時行う
run()
mC.run_to_rel_abs(position_sp=30, speed_sp=20, stop_...
def direct_one(): #赤の?の缶の方向を向く関数を定義
time1=time.time()
while time.time()-time1<=2: #2秒間行う
mL.run_forever(speed_sp=-50, stop_action='brake')
mR.run_forever(speed_sp=50, stop_action='brake')
def Round_red(): #赤の缶のエリアを回る関数を定義
time1=time.time()
while time.time()-time1<=fuga: #fugaの時間だけ行う fu...
mL.run_forever(speed_sp=50, stop_action='brake')
mR.run_forever(speed_sp=-50, stop_action='brake')
def direct_redkan(): #赤の正しい缶を見つける関数を定義
time1=time()
while time.time()-time1<=fuga-(think_red()-time_start...
mL.run_forever(speed_sp=-50, stop_action='brake')
mR.run_forever(speed_sp=50, stop_action='brake')
def direct_I(): #位置Iの方向を向く関数を定義
time1=time.time()
while time.time()-time1<=think_red()-time_start+いく...
mL.run_forever(speed_sp=-50, stop_action='brake')
mR.run_forever(speed_sp=50, stop_action='brake')
def direct_B(): #位置Bの方向を向く関数を定義
time1=time.time()
while time.time()-time1<=2: #2秒間行う
mL.run_forever(speed_sp=-50, stop_action='brake')
mR.run_forever(speed_sp=50, stop_action='brake')
def Round_blue(): #青の缶のエリアを回る関数を定義
time1=time.time()
while time.time()-time1<=fuga2: #fuga2の時間だけ行う...
mL.run_forever(speed_sp=50, stop_action='brake')
mR.run_forever(speed_sp=-50, stop_action='brake')
def direct_bluekan(): #青の正しい缶を見つける関数を定義
time1=time()
while time.time()-time1<=fuga2-(think_blue()-time_sta...
mL.run_forever(speed_sp=-50, stop_action='brake')
mR.run_forever(speed_sp=50, stop_action='brake')
time_start=0
time_a=0
time_b=0
def search(fuga,hoge): #どれが正しい缶かを見つける関数を...
global time_start #関数外からtime_startの値を持ってくる
global time_a #関数外からtime_aの値を持ってくる
global time_b #関数外からtime_bの値を持ってくる
a=1250 #aに最短距離を入れるので遠い値、つまり大きい値...
b=1250 #bに最短距離を入れるので遠い値、つまり大きい値...
time0=time_start=time.time()
while us.value()>=hoge: #カラーセンサの値がhogeより大...
continue
while time.time()-time0<=fuga: #fuga以下の時間だけ行う
if us.value()<=hoge: #カラーセンサの値がhoge以下...
if us.value()<=a: #カラーセンサの値がa以下の...
a=us.value() #aにカラーセンサの値、つま...
time_a=time.time() #time_aにその時の時間...
else: #hogeより大きいときは、この繰り返しを抜ける
break
while time.time()-time0<=fuga and us.value()>=hoge: #...
continue
while time.time()-time0<=fuga: #fuga以下の時間時行う
if us.value()<=hoge: #カラーセンサがhoge以上の値...
if us.value()<=b: #カラーセンサがb以下の値時...
b=us.value() #bにカラーセンサの値、つま...
time_b=time.time() #time_bにその時の時間...
else: #hogeより大きいときは、この繰り返しを抜ける
break
def think_red(): #赤の正しい缶を決める関数を定義
if a<b: #aがbより小さいとき行う
return time_a #time_aを戻り値として返す
else: #bがa以上の時行う
return time_b #time_bを戻り値として返す
def think_blue(): #青の正しい缶を決める関数を定義
if a<150 and b<150: #aとbが150未満の時行う つまり1の...
return time_b #time_bを戻りとして返す
if a<150 and 150<=b<300: #aが150未満、bが150以上300未...
return time_a #time_aを戻り値として返す
if 150<=a<300 and 150<=b<300: #aが150以上300未満、bが...
return time_a #time_aを戻り値として返す
if a<300 and b=1250: #aが300未満、bが1250の時行う つ...
return time_a #time_aを戻り値として返す
if a>=300 and b=1250: #aが300以上、bが1250の時行う つ...
return time_b #time_bを戻り値として返す
if 450<b<550: #bが450より大きく550未満の時行う つま...
return time_b #time_bを戻り値として返す
*解決すべきだった問題 [#mf770ef7]
作業をしていていろいろな課題が出てきた。~
大きく分けて、4つある。~
1つ目はカラーセンサについてである。~
これについては先述である。~
2つ目はロボットについてである。~
ロボットの問題は2つ出てきて、1つ目がボールの重さでアーム...
特別ボールが重いわけではないが、ボールがないときはしっか...
これに関しては、原因がよくわからず、解決策も思い浮かず解...
2つ目はボールを使うとき、ロボットが前のめりになって倒れて...
これは後ろにもう1つの本体をつけることによって解決された。
3つ目の課題は缶を見つける関数だ。~
赤と青の缶の位置が違うのでそれぞれの缶を見つける関数を分...
赤の缶ではカラーセンサの最短距離によって缶を見つけるもの...
これでできるはずだったが、そこまで行くまでに4つ目の課題の...
今回はテスト期間と被り、あまり作業を効率よく行うことがで...
*結果 [#h00a5b75]
結局、課題を解決できず、練習では、赤のボールをつかみEまで...
しかし、本番ではボールをつかむこともできなかった。~
原因は良く分からなかったが、完全に準備不足だった。~
その結果、基本点は0点で、技術点は他の班からの慈悲点という...
*感想 [#hc9ee2de]
今回の課題3まで授業でいろいろな課題をやってきて授業が始ま...
特にプログラムに関しては、授業前はpythonというプログラミ...
最後はとても不甲斐ない結果に終わってしまったし、ほかの授...
ページ名: