2016b/Member/bicky/Mission3
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
目次
#contents
*課題3 ~野球~ [#j8a06b3d]
-ピッチャーロボットとバッターロボットが所定の位置まで移動...
-ピッチャーロボットはA地点をスタートしM地点まで移動する
-バッターロボットはC地点をスタートしB地点まで移動する
-スタート時はそれぞれA地点B地点の枠内に収まること(高さの...
-M地点、B地点では接地している部分が枠内に入っていること
-ピッチャーロボットはスタート時にピンポン球を5個まで保持...
-ピッチャーロボットが投げたピンポン球をバッターロボットは...
-移動の途中で目標に接触してはならない
#br
**アプローチ [#j87c51f6]
今回は移動方法と打撃方法について考える必要がある
***移動方法 [#w3977a61]
+R付近まで移動する(黒線の数を計測し、規定の本数を計測し...
#br
メリット:正確にB地点まで移動できる。課題2でのプログラム...
デメリット:カラーセンサが必要になる。プログラムが複雑に...
#ref(2016b/Member/bicky/Mission0/ライントレース.png,50%)
#br
+半円を描くように直接B地点へ行く(角度制御 or 時間制御)
#br
メリット:プログラムの記述が楽、簡潔になる。センサーを使...
デメリット:調整が困難であり、確実性がない。
#ref(2016b/Member/bicky/Mission0/直.png,50%)
#br
***打撃方法 [#x3eada8d]
+キャッチ&リリース打(?)法
-転がっているボールを一度アームで掴み、その後ボールを射出...
#br
メリット:一度ボールをキャッチしてしまえば安定して狙った...
デメリット:ピッチャーが転がしたボールがバッターに届く前...
#br
+リアル野球打法
-空中に射出されたボールをそのまま打つ方法。&br;
メリット:これが一番野球してると思います。&br;
デメリット:ロボット間の通信速度や打つタイミングがシビア...
#br
#br
今回はロボットの構造やネタに走った都合上、半円を描くよう...
#br
今回の移動ルート&br;
#ref(2016b/Member/bicky/Mission0/進む.png,50%)
#br
*プログラム(python)の説明 [#k37c462b]
#br
今回はMQTTを行うためのライブラリを追加している&br;
(pahoというライブラリは最新のev3devのputhon3ではうまく動...
#!/usr/bin/env python
import paho.mqtt.client as mqtt
import ev3dev.ev3 as ev3
import time
今回は主に1つのLargeMotorで移動する
lm = ev3.LargeMotor('outB')
mm = ev3.MediumMotor('outC')
MQTTに関する記述
host = '〇.〇.〇.〇' #brokerのIPアドレス
port = 1883 #通信に使う場所(デフォルトでは1...
topic = 'pi/st' #今回の通信の題名(どんな名前で...
def on_connect(client, userdata, flags, respons_code):
print('status {0}'.format(respons_code)) #正常に...
client.subscribe(topic) #指定さ...
def on_message(client, userdata, msg): #相手からの...
t = 0.4
time.sleep(t)
swing()
今回は今までとは異なり、変形に挑戦した。
def transformation(): #変形プログラム
mm.reset()
lm.reset() #位置調整
turn_R(60)
lm.run_to_rel_pos(position_sp=100, duty_cycle_sp=100...
time.sleep(2)
lm.reset() #変形
lm.run_to_rel_pos(position_sp=80, duty_cycle_sp=100,...
time.sleep(3)
mm.reset() #打撃姿勢をとるプログラム
mm.run_to_rel_pos(position_sp=110,duty_cycle_sp=100,...
time.sleep(2)
lm.reset()
mm.reset()
今回は後輪を駆動輪とし、前輪は移動方向を変えるために使用...
また、前輪の操作と打撃の操作は全てMediumMotorのみで行った。
def turn_L(degree): #左に曲がるためのプログラム
mm.reset() #tuen_left_MAX:degree=85
mm.run_to_rel_pos(position_sp=degree, duty_cycle_sp=...
time.sleep(3)
def turn_R(degree): #右に曲がるためのプログラム
mm.reset()
mm.run_to_rel_pos(position_sp=-degree, duty_cycle_sp...
time.sleep(3)
def swing(): #打撃用プログラム
mm.reset() #バットを振る
mm.run_to_rel_pos(position_sp=-110,duty_cycle_sp=100...
time.sleep(1)
mm.reset() #構え直し
mm.run_to_rel_pos(position_sp=110,duty_cycle_sp=100,...
time.sleep(1.5)
今回はあまり細かく移動できるロボットではなかったため、最...
def move(): #移動のプログラム(C → B)
lm.reset()
mm.reset()
lm.run_forever(duty_cycle_sp=80,speed_sp=100)
time.sleep(2.5)
turn_L(50)
lm.run_forever(duty_cycle_sp=80,speed_sp=100)
time.sleep(9)
lm.stop()
実行した動作
move #移動(C → B)
transformation() #変形
###通信を行うための準備#############################
client = mqtt.Client(protocol=mqtt.MQTTv311) #通信をす...
client.on_connect = on_connect #通信ができた時に行...
client.on_message = on_message #通信を受け取った時に...
################################################
client.connect(host, port=port, keepalive=60) #通信を...
client.loop_forever() #通信を続ける
#br
**MQTT(通信プロトコル)の説明 [#h1321c55]
[[主な説明はこちら>http://yakushi.shinshu-u.ac.jp/robotic...
[[ペアの説明はこちら>http://yakushi.shinshu-u.ac.jp/robot...
#br
-MQTTとは通信の様式を表すものである。
-MQTTはpublisherとsubscriberの間にbrokerが存在しており、...
#ref(2016b/Member/bicky/Mission0/mqtt.png,50%)
[[変形についてはこちら>#hen]]&br;
[[移動方向の変更についてはこちら>#ido]]
#br
*ロボット本体の解説 [#w490f554]
今回バッターロボットの設計は主にbickyが行った(実質の初作...
#br
全体図(写真は設計途中の段階のものであり、本番ではセンサー...
&ref(2016b/Member/bicky/Mission0/all.png,50%);
&ref(2016b/Member/bicky/Mission0/top1.png,50%);
&ref(2016b/Member/bicky/Mission0/front.png,50%);
#br
**使用した部品 [#q03e239e]
#ref(2016b/Member/bicky/Mission0/large.png,around,50%)
EV3 Lモーター ×1 (税込4,644円/個)
-特徴:重いものをゆっくり 動かすのが得意
-駆動輪、変形のために使用
-今回の重要な部品
#br
#clear
#br
#ref(2016b/Member/bicky/Mission0/mid.png,around,50%)
EV3 Mモーター ×1(税込3,780円)
-特徴:軽いものを素早く 動かすのが得意
-前輪の操作、打つ動作を行うために使用
#clear
#br
#ref(2016b/Member/bicky/Mission0/support1.png,around,50%)
支え(球状キャスター)
-ロボットの支えとして最適な部品
#clear
#br
**ブレーキ・変形機構(最重要) [#l0562dda]
&ref(2016b/Member/bicky/Mission0/brake2.png,50%);
&ref(2016b/Member/bicky/Mission0/brake.png,50%);
#br
&ref(2016b/Member/bicky/Mission0/brake3.png,50%);
//&ref(2016b/Member/bicky/Mission0/brake5.png,50%);
&ref(2016b/Member/bicky/Mission0/brake6.png,40%);
-変形時に駆動輪を固定することでロボットが変形する
-今回の大きな特徴
#clear
**前輪の機構(ステアリング機構) [#k5d13991]
#ref(2016b/Member/bicky/Mission0/stearing.png,around,50%)
-この機構のおかげでLモーター1つでロボットを動かすことがで...
-今回のこだわり
#clear
#br
*ロボットの仕組みの解説 [#x7a361d9]
**ロボットの駆動について[#p09b062c]
&aname(ido);
前後の移動は後輪のLモーターが行い、移動向きの変更は前輪の...
***移動向きの変更(ステアリング機構) [#ad13b6c9]
#ref(2016b/Member/bicky/Mission0/stear.gif,around,50%)
Mモーターが動くことによって前輪の向きが変わり、二輪車と同...
#clear
**変形について[#nba0d8a2]
&aname(hen);
***Lモーターからの動力を変形に利用する [#s22be2b4]
#br
1
&ref(2016b/Member/bicky/Mission0/meta.png,50%);
2&ref(2016b/Member/bicky/Mission0/meta1.png,50%);
3&ref(2016b/Member/bicky/Mission0/meta2.png,50%);&br;
#br
4&ref(2016b/Member/bicky/Mission0/meta3.png,50%);
別視点&ref(2016b/Member/bicky/Mission0/meta4.png,50%);
#br
6
#ref(2016b/Member/bicky/Mission0/tran.gif,around,50%);
#br
Mモーターを動かすことにより、Lモーターから後輪へ動力を伝...
後輪が動かない状態でLモーターを動かすことでLモーター自身...
#clear
**打つ動作について [#v636ba0f]
#ref(2016b/Member/bicky/Mission0/batter.png,50%)
変形後にバットを構え、MQTTにより合図が送られた時にバット...
この時、角度制御をしているためバットの振り過ぎによりロボ...
*まとめ [#e722d710]
**こだわりポイント [#e5a4a291]
-変形
-二輪車という見た目
-モーターLとMを1つづつしか使わないという縛り
-ステアリング機構
-各モーターの機能美を追求&br;
&ref(2016b/Member/bicky/Mission0/midi_dual1.png,50%);
&ref(2016b/Member/bicky/Mission0/large2.png,50%);
**反省点 [#h7032f31]
-ステアリング機構で不具合が多発したため、その機構の改良が...
-移動の精度があまりよくなかった
-超音波センサでピッチャーとの距離を測り、バッティング位置...
-徹夜は1日まで
**感想 [#s3f40d9b]
今回は初めてロボット本体の設計をほぼ一人で行いました。今...
時間がなかったことや、ゼミをうけている当初から変形ロボッ...
終了行:
目次
#contents
*課題3 ~野球~ [#j8a06b3d]
-ピッチャーロボットとバッターロボットが所定の位置まで移動...
-ピッチャーロボットはA地点をスタートしM地点まで移動する
-バッターロボットはC地点をスタートしB地点まで移動する
-スタート時はそれぞれA地点B地点の枠内に収まること(高さの...
-M地点、B地点では接地している部分が枠内に入っていること
-ピッチャーロボットはスタート時にピンポン球を5個まで保持...
-ピッチャーロボットが投げたピンポン球をバッターロボットは...
-移動の途中で目標に接触してはならない
#br
**アプローチ [#j87c51f6]
今回は移動方法と打撃方法について考える必要がある
***移動方法 [#w3977a61]
+R付近まで移動する(黒線の数を計測し、規定の本数を計測し...
#br
メリット:正確にB地点まで移動できる。課題2でのプログラム...
デメリット:カラーセンサが必要になる。プログラムが複雑に...
#ref(2016b/Member/bicky/Mission0/ライントレース.png,50%)
#br
+半円を描くように直接B地点へ行く(角度制御 or 時間制御)
#br
メリット:プログラムの記述が楽、簡潔になる。センサーを使...
デメリット:調整が困難であり、確実性がない。
#ref(2016b/Member/bicky/Mission0/直.png,50%)
#br
***打撃方法 [#x3eada8d]
+キャッチ&リリース打(?)法
-転がっているボールを一度アームで掴み、その後ボールを射出...
#br
メリット:一度ボールをキャッチしてしまえば安定して狙った...
デメリット:ピッチャーが転がしたボールがバッターに届く前...
#br
+リアル野球打法
-空中に射出されたボールをそのまま打つ方法。&br;
メリット:これが一番野球してると思います。&br;
デメリット:ロボット間の通信速度や打つタイミングがシビア...
#br
#br
今回はロボットの構造やネタに走った都合上、半円を描くよう...
#br
今回の移動ルート&br;
#ref(2016b/Member/bicky/Mission0/進む.png,50%)
#br
*プログラム(python)の説明 [#k37c462b]
#br
今回はMQTTを行うためのライブラリを追加している&br;
(pahoというライブラリは最新のev3devのputhon3ではうまく動...
#!/usr/bin/env python
import paho.mqtt.client as mqtt
import ev3dev.ev3 as ev3
import time
今回は主に1つのLargeMotorで移動する
lm = ev3.LargeMotor('outB')
mm = ev3.MediumMotor('outC')
MQTTに関する記述
host = '〇.〇.〇.〇' #brokerのIPアドレス
port = 1883 #通信に使う場所(デフォルトでは1...
topic = 'pi/st' #今回の通信の題名(どんな名前で...
def on_connect(client, userdata, flags, respons_code):
print('status {0}'.format(respons_code)) #正常に...
client.subscribe(topic) #指定さ...
def on_message(client, userdata, msg): #相手からの...
t = 0.4
time.sleep(t)
swing()
今回は今までとは異なり、変形に挑戦した。
def transformation(): #変形プログラム
mm.reset()
lm.reset() #位置調整
turn_R(60)
lm.run_to_rel_pos(position_sp=100, duty_cycle_sp=100...
time.sleep(2)
lm.reset() #変形
lm.run_to_rel_pos(position_sp=80, duty_cycle_sp=100,...
time.sleep(3)
mm.reset() #打撃姿勢をとるプログラム
mm.run_to_rel_pos(position_sp=110,duty_cycle_sp=100,...
time.sleep(2)
lm.reset()
mm.reset()
今回は後輪を駆動輪とし、前輪は移動方向を変えるために使用...
また、前輪の操作と打撃の操作は全てMediumMotorのみで行った。
def turn_L(degree): #左に曲がるためのプログラム
mm.reset() #tuen_left_MAX:degree=85
mm.run_to_rel_pos(position_sp=degree, duty_cycle_sp=...
time.sleep(3)
def turn_R(degree): #右に曲がるためのプログラム
mm.reset()
mm.run_to_rel_pos(position_sp=-degree, duty_cycle_sp...
time.sleep(3)
def swing(): #打撃用プログラム
mm.reset() #バットを振る
mm.run_to_rel_pos(position_sp=-110,duty_cycle_sp=100...
time.sleep(1)
mm.reset() #構え直し
mm.run_to_rel_pos(position_sp=110,duty_cycle_sp=100,...
time.sleep(1.5)
今回はあまり細かく移動できるロボットではなかったため、最...
def move(): #移動のプログラム(C → B)
lm.reset()
mm.reset()
lm.run_forever(duty_cycle_sp=80,speed_sp=100)
time.sleep(2.5)
turn_L(50)
lm.run_forever(duty_cycle_sp=80,speed_sp=100)
time.sleep(9)
lm.stop()
実行した動作
move #移動(C → B)
transformation() #変形
###通信を行うための準備#############################
client = mqtt.Client(protocol=mqtt.MQTTv311) #通信をす...
client.on_connect = on_connect #通信ができた時に行...
client.on_message = on_message #通信を受け取った時に...
################################################
client.connect(host, port=port, keepalive=60) #通信を...
client.loop_forever() #通信を続ける
#br
**MQTT(通信プロトコル)の説明 [#h1321c55]
[[主な説明はこちら>http://yakushi.shinshu-u.ac.jp/robotic...
[[ペアの説明はこちら>http://yakushi.shinshu-u.ac.jp/robot...
#br
-MQTTとは通信の様式を表すものである。
-MQTTはpublisherとsubscriberの間にbrokerが存在しており、...
#ref(2016b/Member/bicky/Mission0/mqtt.png,50%)
[[変形についてはこちら>#hen]]&br;
[[移動方向の変更についてはこちら>#ido]]
#br
*ロボット本体の解説 [#w490f554]
今回バッターロボットの設計は主にbickyが行った(実質の初作...
#br
全体図(写真は設計途中の段階のものであり、本番ではセンサー...
&ref(2016b/Member/bicky/Mission0/all.png,50%);
&ref(2016b/Member/bicky/Mission0/top1.png,50%);
&ref(2016b/Member/bicky/Mission0/front.png,50%);
#br
**使用した部品 [#q03e239e]
#ref(2016b/Member/bicky/Mission0/large.png,around,50%)
EV3 Lモーター ×1 (税込4,644円/個)
-特徴:重いものをゆっくり 動かすのが得意
-駆動輪、変形のために使用
-今回の重要な部品
#br
#clear
#br
#ref(2016b/Member/bicky/Mission0/mid.png,around,50%)
EV3 Mモーター ×1(税込3,780円)
-特徴:軽いものを素早く 動かすのが得意
-前輪の操作、打つ動作を行うために使用
#clear
#br
#ref(2016b/Member/bicky/Mission0/support1.png,around,50%)
支え(球状キャスター)
-ロボットの支えとして最適な部品
#clear
#br
**ブレーキ・変形機構(最重要) [#l0562dda]
&ref(2016b/Member/bicky/Mission0/brake2.png,50%);
&ref(2016b/Member/bicky/Mission0/brake.png,50%);
#br
&ref(2016b/Member/bicky/Mission0/brake3.png,50%);
//&ref(2016b/Member/bicky/Mission0/brake5.png,50%);
&ref(2016b/Member/bicky/Mission0/brake6.png,40%);
-変形時に駆動輪を固定することでロボットが変形する
-今回の大きな特徴
#clear
**前輪の機構(ステアリング機構) [#k5d13991]
#ref(2016b/Member/bicky/Mission0/stearing.png,around,50%)
-この機構のおかげでLモーター1つでロボットを動かすことがで...
-今回のこだわり
#clear
#br
*ロボットの仕組みの解説 [#x7a361d9]
**ロボットの駆動について[#p09b062c]
&aname(ido);
前後の移動は後輪のLモーターが行い、移動向きの変更は前輪の...
***移動向きの変更(ステアリング機構) [#ad13b6c9]
#ref(2016b/Member/bicky/Mission0/stear.gif,around,50%)
Mモーターが動くことによって前輪の向きが変わり、二輪車と同...
#clear
**変形について[#nba0d8a2]
&aname(hen);
***Lモーターからの動力を変形に利用する [#s22be2b4]
#br
1
&ref(2016b/Member/bicky/Mission0/meta.png,50%);
2&ref(2016b/Member/bicky/Mission0/meta1.png,50%);
3&ref(2016b/Member/bicky/Mission0/meta2.png,50%);&br;
#br
4&ref(2016b/Member/bicky/Mission0/meta3.png,50%);
別視点&ref(2016b/Member/bicky/Mission0/meta4.png,50%);
#br
6
#ref(2016b/Member/bicky/Mission0/tran.gif,around,50%);
#br
Mモーターを動かすことにより、Lモーターから後輪へ動力を伝...
後輪が動かない状態でLモーターを動かすことでLモーター自身...
#clear
**打つ動作について [#v636ba0f]
#ref(2016b/Member/bicky/Mission0/batter.png,50%)
変形後にバットを構え、MQTTにより合図が送られた時にバット...
この時、角度制御をしているためバットの振り過ぎによりロボ...
*まとめ [#e722d710]
**こだわりポイント [#e5a4a291]
-変形
-二輪車という見た目
-モーターLとMを1つづつしか使わないという縛り
-ステアリング機構
-各モーターの機能美を追求&br;
&ref(2016b/Member/bicky/Mission0/midi_dual1.png,50%);
&ref(2016b/Member/bicky/Mission0/large2.png,50%);
**反省点 [#h7032f31]
-ステアリング機構で不具合が多発したため、その機構の改良が...
-移動の精度があまりよくなかった
-超音波センサでピッチャーとの距離を測り、バッティング位置...
-徹夜は1日まで
**感想 [#s3f40d9b]
今回は初めてロボット本体の設計をほぼ一人で行いました。今...
時間がなかったことや、ゼミをうけている当初から変形ロボッ...
ページ名: