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.

Open experiment panel in a new tab

Download reproduction source

在浏览器中跟踪一条路径

点击上方浏览器面板中的“运行”。灰色为参考路径;蓝色为后轴轨迹。圆圈表示前视距离,点表示目标点,线段表示轴距。播放、暂停、单步或拖动运行过程,以检查转向从何处开始。数值表格和可下载的 JSON 包含计算结果。

APP:让距离随当前速度缩放

本实验室中的 APP 指的是速度缩放的前视距离:Ld = clamp(v × T, Lmin, Lmax)。这里的 v 是当前速度而非目标速度,T 的单位为秒。从静止开始加速可以展现出从最小边界过渡的过程。这并不实现 RPP 基于曲率的速度调节。

控制器选择器可在 PP 和 APP 之间切换。固定前视距离仅影响 PP;时间和边界仅影响 APP。将一次运行保存为 A,仅更改控制器,以保留路径、初始状态、速度指令和车辆参数不变。预设也会重置其他条件,因此请查看显示出的参数差异。

目标点几何

从最近的路径投影点出发,选择路径与以后轴为圆心、半径为 Ld 的圆的第一个前向弧长交点。对于车辆坐标系中的目标点 (xb, yb),曲率 κ = 2 yb / (xb² + yb²),转向角 δ = atan(L κ)。左转为正。

当不存在交点时,沿路径弧长从投影点向前推进 Ld,并钳制到终点。显示会区分圆交点、恢复目标和终点目标;曲率始终使用目标点距离的实际平方值。位于车辆后方的目标点,或在完成前与车辆重合的目标点,会以给定原因终止本次运行。这些恢复和终点规则是教学性的选择,并非对 Nav2 的复现。

共用模型与公平比较

状态为后轴 (x, y) [m]、逆时针偏航角 [rad] 和前向速度 v [m/s]。方程为 dx/dt=v cos(yaw),dy/dt=v sin(yaw),dyaw/dt=v tan(δ)/L。初始横向偏移在第一段路径左侧为正;航向偏移相对于该路段。路径为开放折线:直线、半径 20 m 和半径 5 m 的四分之一圆弧,或一条 S 形曲线。默认间距为 0.1 m(对 S 形曲线而言为 x 方向间距)。

时间步长为 0.05 s,最长 30 s。限制为速度 8 m/s、加速度 ±2 m/s²、转向角 ±0.6 rad、转向变化率 0.8 rad/s。初始转向角为零。每个时间间隔先施加离散的转向变化率限制,然后保持转向角不变。恒曲率运动被精确积分,包括加速到零/最大速度之前的阶段以及之后的恒速阶段。两种控制器都使用 a=2(vtarget−v)。未建模摩擦力、惯性、轮胎打滑、障碍物或测量延迟。

横向跟踪误差是相对于最近路段的带符号左法向位移。航向误差为车辆偏航角减去投影切线方向,并环绕到 [-π,π) 范围内。均方根 (RMS) 使用对平方样本的梯形时间积分除以经过时间。纵向终点超调不计入横向跟踪误差 (CTE),但计入欧几里得路径距离。转向速率的均方根包括从零开始的初始过渡阶段,描述的是离散指令。

完成的定义是:剩余投影弧长和终点距离均 ≤0.25 m,且航向与最后一段路径的偏差在 0.15 rad 以内。这是基于采样的终点经过判定,而非停车或泊车;采样点之间可能漏检经过时刻。超过 10 m 的偏移距离会以“偏离路径”终止运行;30 s 为时间上限。未完成的经过时间显示为“—”。不应仅凭误差对未完成运行和不同耗时的运行进行排名。相同的速度策略仍可能产生不同的完成时间。该合成模型并不能确立硬件安全性或高速性能。

可复现的合成示例

以下数值由相同代码的原生 Python 版本生成。缓和曲线使用初始与目标速度 2 m/s、初始横向偏移 1 m、航向偏移为零、轴距 2.5 m。

设置 状态 耗时 [s] CTE RMS [m]
short controller_failed 1.80 0.72123
nominal completed 15.70 0.25996
long completed 15.50 0.37896

参考文献与相关实验室

源代码下载为可选项。浏览器端执行无需在本地安装 Python。源代码与模型说明。

Related reading

阅读关于预测控制和约束的内容控制工程入门:模型预测控制——在约束条件下运行Explore another aspect of this fieldMPC 实验室——在时域和转向限制内重新求解曲率序列Explore another aspect of this field路径跟踪比较实验室——在相同条件下运行 PP、APP、RPP、Stanley 和 MPC