Build LogROBOTRACE4WS機構

4WSロボトレーサ — キングピンオフセットは舵角を変えない

4WSのステアリンクを設計するとき、キングピンオフセットを含めた厳密なアッカーマン式は陰関数になる。これを解こうとして、そもそも解く必要がないことがわかった話。

#目的

4WSロボトレーサのステアリンクを設計している。左右輪に正しい舵角差をつけるには、まず目標となる 理想舵角を知る必要がある。キングピンオフセット(キングピン軸と接地点の横方向ずれ)が8mmあるので、 これを含めた式で計算したい。

#陰関数になってしまう

キングピンオフセット e を含めると、接地点の位置が舵角によって動く。旋回中心から接地点までの 距離が舵角に依存するので、式の両辺に δ が出てくる。

外輪: tanδo = (Le + e·sinδo) / (R + Wk/2 + e·cosδo)
内輪: tanδi = (Le − e·sinδi) / (R − Wk/2 − e·cosδi)

Le = L/2  (4WS:旋回中心はホイールベース中央の真横)
Wk = T − 2e

閉じた形で解けないので、不動点反復で解くコードを書いた。δ = atan(f(δ)) を繰り返す形。

#結果:1回目で収束した

初期値に atan(Le / (R + Wk/2)) を入れて回したら、残差が最初から厳密にゼロだった。 反復が1回も進まない。バグを疑ってトレースを出したが、値が全く動いていない。

init outer deg 14.969550802798484
0 14.969550803 delta 0.000e+0
1 14.969550803 delta 0.000e+0

#原因

バグではなかった。式を展開すると e の項が恒等的に消える。

tanδ·(X + e·cosδ) = Le + e·sinδ        X = R + Wk/2
X·tanδ + e·sinδ   = Le + e·sinδ        tanδ·cosδ = sinδ より
X·tanδ = Le
∴ tanδ = Le / X

幾何的にも納得できる。舵角が正しいとき、キングピンから接地点へのオフセットベクトル (e·sinδ, e·cosδ) の向きは、旋回中心から見た半径方向とちょうど一致する。接地点が半径方向に ずれるだけなら、そこを通る円の接線方向は変わらない。だから必要な舵角も変わらない。

内輪側(符号が逆)でも同じように消える。R = 60〜600mm、e = 0〜20mm の範囲で数値確認したが、 残差はすべて 1e-15 以下だった。

#わかったこと

キングピンオフセットが効くのは舵角ではない。 効くのは次の2つだけ。

  1. 必要クリアランス — キングピン軸まわりにタイヤが回るので、半径 √((e + タイヤ幅/2)² + (タイヤ径/2)²) の円筒内に干渉物を置けない。e=8, 幅8, 径24 なら約17mm。
  2. 据え切りトルクT1 = μ·N·√(e² + a²) なので、e が大きいほどサーボが重くなる。

つまり e は「小さくしたい」パラメータで、舵角設計とはトレードオフの関係にない。リンク設計の 自由度として使える。

もう一つ副産物があった。この項が消えるのは分子と分母で符号が揃っているときだけで、分子だけ符号を 間違えると X·tanδ = Le − 2e·sinδ になって別の答えが出る。以前のバージョンで符号を間違えていた のはこれだった。「e を変えても舵角が動かないこと」が、この式の実装の検算そのものになる。

#次にやること

  • [ ] ベルクランク角 β=54°, r=9.5, h=21.5 のリンクで、この理想舵角にどれだけ追従できるかを評価
  • [ ] ロック角±49°に対する最小旋回半径を確定させる
  • [ ] 吸引を載せたときの据え切りトルクを実測し、8520コアレスの余裕を確認
  • [ ] 前後独立2軸なので、逆位相・同位相の切り替え時に舵角配分をどう持つか決める

計算はツールにまとめてあるが、まだ公開していない。

間違いや、もっと良い方法があればX(@AsachiMakes)まで教えてください。Build Logの一覧へ戻る