mkuri’s diary

自動運転エンジニアのメモ

車両の二輪幾何モデル(Kinematic bicycle model)導出と適用範囲

自動運転車両を安全に動かすためには、Perception(認知)・Planning(行動計画)・Control(操作)の機能が必要だと言われています。そのうち、Planningの一部のアルゴリズムやControlの機能を実装するためには、ある入力を車両に与えたとき車両がどのように動くかを知る必要があります。

実際の車両はとても複雑に物理現象が作用しあって動いているのですが、それを人間が分かるかたちに単純化して、ある程度の精度で車両の入力と出力(挙動)の関係を把握するために用いる数学モデルが車両モデルになります。

二輪幾何モデル(Kinematic bicycle model)とは

二輪幾何モデルは車両にある舵角を入力したときに、どのくらいの旋回半径(=ヨーレート)で車両が曲がるかを求めるためのモデルになります。

モデルを単純化するために以下の条件を前提としています。

  • 車両の速度が低速であること

車両の速度が低速であるため、車両の向心力を無視することができ、幾何学的な関係から車両モデルが記述できます。

では、どのくらいの車両速度までこのモデルが使えるか?が気になると思いますが、下記リンク先の論文によると20km/h程度までは誤差が小さいようです。精度の高い9自由度モデルと二輪幾何モデルを車速別、舵角別に比較して検証しています。

The kinematic bicycle model: A consistent model for planning feasible trajectories for autonomous vehicles? - IEEE Conference Publication

後輪中心を車両中心としたときの二輪幾何モデルの導出

二輪幾何モデルは車両のどこを車両中心とするか。自動運転システムで考えると、ある追従したい経路があったときに、車両のどこを経路に沿わせたいか。によって数式が少し異なります。

はじめに最も数式が簡単になる後輪中心を車両中心にしたときの二輪幾何モデルを導出します。下の図は後輪中心の車速v、ヨー角ψ、前輪の舵角δ、ホイールベースlの車両を示しています。

f:id:mkuri0x:20200121212417p:plain:w400

前提条件により低車速な状態しか扱わないので、前輪後輪それぞれが向いている方向に動いていると考えることができます(向心力がない→タイヤが横力を発生しない→滑っていない)。したがって、前輪と後輪に垂直に引いた線の交点が旋回中心Oになります。そして、旋回中心Oから車両中心までの距離が旋回半径rになります。

直角三角形の角度の関係から、旋回中心から前輪と後輪に伸びる線のなす角はδになります。したがって旋回半径rは以下の式で求められます。

 r = l / \tan(\delta)

また、ヨーレート \dot{\psi}を算出するためには、 r\dot{\psi} = vの関係を使って以下の様に求められます。

 \dot{\psi} = v\tan(\delta) / l

重心を車両原点としたときの二輪幾何モデルの導出

次に車両の重心を車両中心としたときの二輪幾何モデルを導出します。下の図は重心の車速v、ヨー角ψ、重心の速度方向は前輪とも後輪とも異なるので、車両方向と車速方向のなす角をβ、前輪から重心までの距離をlf、後輪から重心までの距離をlrとする車両を示しています。

figure: gravity center kinematic bicycle model

旋回中心の決め方は先程の後輪中心を車両中心とするときと同じですが、旋回半径は旋回中心から重心までの距離になります。直角三角形の角度の関係から、旋回中心から後輪と重心に伸びる線のなす角はβになります。したがって、旋回半径rおよびヨーレート \dot{\psi}は以下の式で求められます。

 r = l_r / \sin(\beta) 

 \dot{\psi} = v\sin(\beta) / l_r

また、βは説明のために置いている変数なので舵角から計算します。旋回中心から後輪までの距離をaと置くと、

{
a\tan(\beta) = l_r \\
a\tan(\delta) = l_f + l_r
}

aを消去すると、

 \beta = \arctan(\frac{l_r}{l_f + l_r}\tan(\delta))