翻译: 自动驾驶 一步一步解释基本的2D自行车模型

Posted AI架构师易筋

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了翻译: 自动驾驶 一步一步解释基本的2D自行车模型相关的知识,希望对你有一定的参考价值。

1. 介绍

二维自行车模型可以表示为简化的汽车模型。这是一款经典车型,在正常驾驶条件下能够很好地捕捉车辆运动。

我们将开发的自行车模型称为前轮转向模型,因为可以相对于车辆的前进方向控制前轮方向。后轮方向无法控制。它只跟随前轮。我们的目标是计算状态[x, y, θ, δ],θ 是航向角,δ 是转向角。输入是[ν, φ],ν 是速度,φ 是转向率。

要分析自行车模型的运动学,我们必须在车辆上选择一个参考点(X,Y),该参考点可以放置在后轴中心、前轴中心或重心或 cg 处。 .

2. 模型分析

我们知道车辆或自行车是刚体。

2.1 如果所需的点在后轴的中心,我们可以绘制下图:


θ 为航向角,δ 为转向角。

接下来应用瞬时旋转中心 (ICR)。


为了得到状态变化 [x, y, θ, δ],我们首先需要计算状态变化率:[x_dot, y_dot, θ_dot, δ_dot]

x_dot = v * cos(θ)

y_dot = v * sin(θ)

θ_dot = ω

ω 为旋转速率。

ω = ν / R,R 为半径。

我们首先需要知道如何计算 R。 如上图所示,L 是自行车长度,δ 是转向角,因此 R 可以计算为:

R = L / tan(δ)

所以我们可以到达:

θ_dot = ν / (L / tan(δ)) = ν * tan(δ) / L

δ_dot = φ
(φ 是输入:转向角的变化率)。

综上所述,状态变化率 [x_dot, y_dot, θ_dot, δ_dot] 为:

[v * cos(θ), v * sin(θ), ν * tan(δ)/L, φ]

2.2 如果所需点位于前轴的中心:


如上图所示,所需点在前轮的中心。我们可以到达:

R = L / sin(δ)

所以我们可以得到变化率[x_dot, y_dot, θ_dot, δ_dot] 如下:

x_dot = v * cos(δ + θ)

y_dot = v * sin(δ + θ)

θ_dot = v / R = v / (L/sin(δ)) = v * sin(δ)/L

δ_dot = φ

总结一下,状态变化率为:

[v * cos(δ + θ), v * sin(δ + θ), ν * sin(δ)/L, φ]

2.3 如果所需的点在重心或 cg,我们可以有下图:


β 是滑移角。根据图示,我们可以得出以下等式:

x_dot = v * cos(β + θ)

y_dot = v* sin(β + θ)

这个模型有点复杂。我们需要首先计算 R 以获得 θ_dot。如上图所示,我们可以先计算S。

S = L / tan(δ)

然后我们可以使用 S 和 β 角来计算 R。

R = S / cos(β) = L / (tan(δ) *cos(β))

正如我们现在知道的 R,我们可以得到 θ_dot 如下:

θ_dot = v / R = v *tan(δ) *cos(β) / L

此外,如果我们知道表示为 l_r 的后轮和 cg 之间的距离,我们还可以计算滑移角 β。


tan(β) = l_r / S = l_r /(L / tan(δ)) = l_r * tan(δ) / L

所以滑移角β = arctan(l_r * tan(δ) / L)

转向角变化率为:δ_dot = φ

总结一下,状态变化率为:

[v * cos(β + θ), v* sin(β + θ), v *tan(δ) *cos(β), φ] ,
其中β = arctan(l_r * tan(δ) / L)

3. 总结


回顾一下,我们的模型是已经分析过的自行车运动学模型。状态(输出)是[x, y, θ, δ]。输入是 [ν, φ],ν 是速度,φ 是转向率。我们可以计算出[x, y, θ, δ]的变化率,即x_dot, y_dot, θ_dot, δ_dot。为了得到最终状态 [x, y, θ, δ],我们可以使用离散时间模型。

x_(t+1) = x_t + x_dot * Δt

y_(t+1) = y_t + y_dot * Δt

θ_(t+1) = θ_t + θ_dot * Δt

δ_(t+1) = δ_t + δ_dot * Δt

参考

http://www.shuffleai.blog/blog/Simple_Understanding_of_Kinematic_Bicycle_Model.html

以上是关于翻译: 自动驾驶 一步一步解释基本的2D自行车模型的主要内容,如果未能解决你的问题,请参考以下文章

长期豪赌人工智能,Alphabet是怎样一步一步偷偷改变世界的?

一步一步教你在 docker 容器下使用 mmdetection 训练自己的数据集

翻译: AWS DeepRacer一步一步详细步骤的自定义航点更快地运行 自定义waypoints

翻译: AWS DeepRacer一步一步详细步骤的自定义航点更快地运行 自定义waypoints

万字分享,我是如何一步一步监控公司MySQL的?

springcloud 项目一步一步搭建springcloud Stream