この記事はこちらの記事の一部です。まずはこちらをご覧ください。
FIRST
最初に。
段差に登るためのもの。
Robot.javaのクライム部分の説明もします。
と思ったらそもそもクライムの方法を説明から始めなければ...
初見だとほぼわからないので理解は置き去りにしても...
そもそも記事が読者を置き去りにするスタイルなので...
まず、リフトを上げて(kLiftUp)
ストッパーを出して(kLocking)
リフトを下げてロボットを持ち上げる(kAdvanceの一部)
前に進む(kAdvanceの一部)
ここまでが登るパートで、あとは後片付け
リフトを上げて(kLiftUP)
ストッパーをしまってリフトを下げて終わり(LiftDown)
全部の流れをまとめて出そうと思ったらサイズ上限に阻まれた...
脳内補完してください
このクラスに必要なこと
段差に登れること
変数
VictorSP climbMotor
Solenoid climbSolenoid
関数一覧
Climb()
モーターとソレノイドを代入する
public void applyState()
stateから情報を受け取り入力する
private void climbAdvance()
モーターにスピードを設定する。ここの処理をコメントアウトすれば動かなくなる。
private void climbLockStopper()
ストッパーでロックする
private void climbUnlockStopper()
ストッパーを外す
関数説明
見たらわかるので省略。
Robot.javaでのクライムについて
おおまかに前半部分と後半部分に分ける。
登りきるまでと登ったあとの後処理。
switch(State.climbSequence)
で動作を切り替えていく。
ちなみにこのクライムの動作は目の前に段差がないとロボットが倒れてとてもまずいので、なかなか押しにくいボタンで開始するようにした。
前半部
kLiftUp
段差の高さは二つあるので、コマンドの入力で動作を分けた。
PID制御で高さの設定をして動かす。
目標値に届いたことを確認したらkLockingに移行する。
kLocking
ここでストッパーを出す。
一応この間リフトの高さを維持しておく。
ロックする時間を考えて0.3秒空けてからkAdvanceに移行する。
kAdvance
リフトを下げてロボットを持ち上げる。
ストッパーをひっかけてある後ろの枠のモーターを走らせて前に進む。
後半部
kLiftUp
リフトを上げて
kUnlocking
ストッパーを外す。
そうしたら後ろの枠がバネによって戻る。(はずだが実際は荒業で戻した)
LAST
最後に。
正直ここら辺はロボット生で見て動作わかるかな~?ぐらい初見にはわかりづらい感じでしたね。
ここら辺は知ったところで今後に役立つかといわれるとそうでもないのでまあ...
前の記事⇒Grabber関係
次の記事⇒ 何を書こう..