Contents — find the section you need
Change parameters and verify
Open the panel, then press Run to load Python. You can stop execution and reset parameters. Results are computed on this device. No Python installation is required.
Local execution steps below are optional for reproducing the source results; they are not required for the browser experiment.
The experiment controls are in English.
检查两侧的转向方向
运行“直线 · 1 m 偏移”并保存为 A。“从右侧恢复”使用负的横向偏移,并反转初始转向方向。初始偏移控件设定的是后轴位置。改变航向也会改变前轴的横向位移;检查“初始航向 30°”即可看出差异。
Stanley 方法在前轴处评估位移。轴线段从后轴延伸到前轴,虚线连接前轴点与其最近的路径投影点,绿色标出该处的路径切线方向。超出终点后,位移还包括纵向超出量;带符号的横向跟踪误差 (CTE) 仅使用法向分量。误差历史图中,前轴参考为绿色,后轴参考为蓝色(A 使用橙色虚线)。
转向请求是两项修正之和
正的转向角表示左转;正的 CTE 表示位于路径左侧。给定后轴位置 (x,y)、偏航角 ψ 和轴距 L,前轴位置为 (x+L cosψ, y+L sinψ)。将其投影到开放折线的最近路段上。设 ψp 为该处切线方向,ef 为带符号的左法向位移。
转向请求为 δ = wrap(ψp−ψ) − atan(k ef / (v+vs))。增益 k 的单位为 1/s,当前速度 v 和软化速度 vs 的单位为 m/s。当车身位于路径左侧且航向对齐时,ef>0 会产生右转向。当前轴位于路径上但车身指向左侧时,航向项同样会产生右转向。
正的软化速度是对原论文基本方程的一种明确的教学性扩展;它避免了除以零的情况,并在此处被约束为至少 0.1 m/s。速度越快,对相同横向误差的修正就越弱。增益越高,修正越强,但由于存在采样控制和转向变化率限制,更高的增益未必能改善跟踪效果。
播放、暂停和单步操作可以读取“航向修正 + 横向跟踪修正 = 请求值 → 实际施加的转向角”。请求之和与执行器约束是分开的。紧的转向限制在急弯上演示了转向不足的情况;未完成的运行仍然是可见的结果之一。
共用车辆与比较指标
被控对象与 PP/APP/RPP 使用的是同一个仅前进的后轴运动学自行车模型。时间间隔为 0.05 s,最长 30 s。限制为 8 m/s、±2 m/s² 以及 0.8 rad/s 的转向变化率,默认转向幅值为 ±0.6 rad。恒定期望速度使用 a=2(desired−actual),并受被控对象本身的限制。每个时间间隔保持转向角不变并积分曲线运动。未建模轮胎打滑、传感器噪声、障碍物或延迟补偿。
共用数值表格中的 CTE、航向误差和 RMS 均使用后轴数据。请将它们与 Stanley 方法所用的前轴量区分开来。航向误差图显示的是车身偏航角减去路径切线方向;航向修正项的符号与之相反。RMS 使用对平方样本的梯形时间积分除以经过时间。
终点经过判定要求剩余弧长和后轴终点距离均 ≤0.25 m,并且末端切线航向误差 ≤0.15 rad。这不是停车或泊车判定。超过 10 m 的路径距离会以“偏离路径”结束;30 s 则以时间上限结束。在弯道上,即使前轴保持跟踪,后轴也可能出现内切,因此共用的后轴终点规则可能仍未满足。未完成的经过时间显示为“—”。请勿仅凭 RMS 对不同耗时或不同完成状态的运行进行排名。
建议的操作顺序
- 比较左、右两侧的初始偏移,检查转向符号。
- 改变初始航向,区分前轴与后轴的横向误差。
- 分别改变增益和速度,比较转向幅值和历史曲线。
- 使用急弯和受限转向条件,分别读取前轴跟踪、后轴指标和完成情况。
执行在浏览器中进行,支持回放、A/B 对比、重置、分享和 JSON 下载。计算耗时描述的是这一浏览器端实现,而非真实车辆控制的时序。完整 Stanley 车辆的转向延迟、横摆角速度和轮胎补偿不在本练习范围内。
评论
请先登录。
暂无数据。