0
0

More than 3 years have passed since last update.

世界最大高校生ロボコンFRCのプログラムについて~Climb関係~

Last updated at Posted at 2019-04-03

この記事はこちらの記事の一部です。まずはこちらをご覧ください。

FIRST

最初に。
段差に登るためのもの。
Robot.javaのクライム部分の説明もします。

と思ったらそもそもクライムの方法を説明から始めなければ...
初見だとほぼわからないので理解は置き去りにしても...
そもそも記事が読者を置き去りにするスタイルなので...

まず、リフトを上げて(kLiftUp)

ezgif.com-video-to-gif (2).gif
 

ストッパーを出して(kLocking)

ezgif.com-video-to-gif (3).gif
 

リフトを下げてロボットを持ち上げる(kAdvanceの一部)

ezgif.com-video-to-gif (4).gif
 

前に進む(kAdvanceの一部)

ezgif.com-video-to-gif (5).gif

ここまでが登るパートで、あとは後片付け
 

リフトを上げて(kLiftUP) 

ezgif.com-video-to-gif (6).gif
 

ストッパーをしまってリフトを下げて終わり(LiftDown)

ezgif.com-video-to-gif (7).gif

全部の流れをまとめて出そうと思ったらサイズ上限に阻まれた...
脳内補完してください:pray:

このクラスに必要なこと

段差に登れること

変数

VictorSP climbMotor

クライムのときに使うモーター

Solenoid climbSolenoid

ストッパーを出すためのソレノイド

関数一覧

Climb()

引数...
なし

モーターとソレノイドを代入する

public void applyState()

引数...
State state

stateから情報を受け取り入力する

private void climbAdvance()

引数...
double speed

モーターにスピードを設定する。ここの処理をコメントアウトすれば動かなくなる。

private void climbLockStopper()

引数...
なし

ストッパーでロックする

private void climbUnlockStopper()

引数...
なし

ストッパーを外す

関数説明

見たらわかるので省略。

Robot.javaでのクライムについて

おおまかに前半部分と後半部分に分ける。
登りきるまでと登ったあとの後処理。
switch(State.climbSequence)で動作を切り替えていく。

ちなみにこのクライムの動作は目の前に段差がないとロボットが倒れてとてもまずいので、なかなか押しにくいボタンで開始するようにした。

前半部

kLiftUp

段差の高さは二つあるので、コマンドの入力で動作を分けた。
PID制御で高さの設定をして動かす。
目標値に届いたことを確認したらkLockingに移行する。

kLocking

ここでストッパーを出す。
一応この間リフトの高さを維持しておく。
ロックする時間を考えて0.3秒空けてからkAdvanceに移行する。

kAdvance

リフトを下げてロボットを持ち上げる。
ストッパーをひっかけてある後ろの枠のモーターを走らせて前に進む。

後半部

kLiftUp

リフトを上げて

kUnlocking

ストッパーを外す。
そうしたら後ろの枠がバネによって戻る。(はずだが実際は荒業で戻した)

LAST

最後に。
正直ここら辺はロボット生で見て動作わかるかな~?ぐらい初見にはわかりづらい感じでしたね。
ここら辺は知ったところで今後に役立つかといわれるとそうでもないのでまあ...

前の記事⇒Grabber関係
次の記事⇒ 何を書こう..:thinking: 

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0