Home / 机器人经典基础 / DWA:先问刹不刹得住,再问走哪条路最快

038|DWA:先问刹不刹得住,再问走哪条路最快

总览 · 目录 · 上一篇 · 下一篇

论文:Dieter Fox、Wolfram Burgard、Sebastian Thrun,The Dynamic Window Approach to Collision Avoidance,1997,IEEE Robotics & Automation Magazine 4(1):23–33,三月期。机构出版页 · 作者原稿。

先接住前作的问题

VFH会选方向,但方向可通不代表当前速度来得及刹车。DWA在可达、可停速度中选动作;TOPP-RA可帮助理解相似的停车直觉,不过它处理已给路径的整段时间分配。

五个前置概念

五个前置概念是:速度空间用动作速度作搜索坐标;加速度约束限制下一周期动作;圆弧预测近似短期运动;制动距离衡量是否能在障碍前停下;滚动决策只执行短段后重新规划。

一、问题设定:几何可通的方向怎样变成当前可达且可刹停的速度

机器人沿走廊快速前进,右侧突然出现目标所在的门口。几何上,向右转看起来是正确选择;物理上,如果电机不能在短时间内改变当前运动,它可能在完成转向前撞上门边的墙。

问题定义:局部控制不是全局找路

原文针对同步驱动移动机器人,平移沿当前运动方向,线速度和转动速度受到有限加速度限制。机器人状态至少包括平面位置 (x,y)(x,y)、朝向 θ\theta 以及当前 v,ωv,\omega。输入是局部障碍观测、当前速度、运动能力和目标点,输出是下一周期速度命令。

若只根据位置选择方向,相同位置就会得到相同决策。但在 DWA 中,同一个门口以 0.4 m/s 或 0.75 m/s 接近,允许的动作可能完全不同。因此把当前速度加入决策并不是一个实现细节,而是使规划尊重运动惯性的必要条件。

环境不需要预先有完整地图,但局部避障也不能替代全局规划。U 形障碍、死胡同或需先远离目标的路线仍会让局部目标函数困住机器人。论文在日常运行中由全局规划器提供局部目标;展示的一部分测试目标则由人工给定。

这里的“动态窗口”是速度可达集合随当前速度改变,不等于论文已经建立了完整的行人运动预测模型。原实现通过持续更新局部障碍观测应对变化,不能据名字把它解释成对所有动态障碍未来轨迹的最优求解。

二、用圆弧预测,求硬件、动态窗口与停车集合交集

DWA 把搜索变量改为线速度 vv 和角速度 ω\omega。首先剔除硬件达不到的速度,再剔除一个控制周期内来不及达到的速度,最后剔除沿对应轨迹无法及时刹停的速度。在剩下的选项里,才评价朝向目标、与障碍距离和行驶速度。

方法一:用圆弧压缩运动预测

对短时间段近似采用常值 v,ωv,\omega,运动满足

x˙=vcos⁡θ,y˙=vsin⁡θ,θ˙=ω.\dot x=v\cos\theta,\qquad\dot y=v\sin\theta,\qquad\dot\theta=\omega.

当 ω≠0\omega\ne0 时,曲率为 ω/v\omega/v,轨迹为圆弧;当 ω=0\omega=0 时为直线。这样,搜索一对速度就等于搜索一条短期运动候选,不必在高维控制序列空间中穷举。

原文 §3 从运动方程讨论这一近似及误差。机器人真实加速并不瞬间发生,常速圆弧只是便于计算的预测形式;加速度的影响通过可达窗口等条件进入算法。不能把圆弧近似当成真实系统完全没有加速阶段。

方法二:三个集合取交集

设 VsV_s 为硬件速度范围。当前速度为 (v0,ω0)(v_0,\omega_0),控制周期为 Δt\Delta t,采用对称加速度上限作教学表示,则动态窗口为

Vd=[v0−avΔt,v0+avΔt]×[ω0−aωΔt,ω0+aωΔt].V_d=[v_0-a_v\Delta t,v_0+a_v\Delta t]\times[\omega_0-a_\omega\Delta t,\omega_0+a_\omega\Delta t].

若实际加速和制动能力不对称,应分别使用对应边界。窗口宽度由物理能力与控制周期决定,不能为了让算法多尝试几条路而随意放大。

再设 VaV_a 为允许安全制动的速度集合。以一维前向停车直觉说明,若沿候选轨迹距离首次碰撞尚有 dd,制动减速度大小为 bvb_v,忽略延迟时需要

v22bv≤d.\frac{v^2}{2b_v}\le d.

因此同样的距离,对高速动作的约束远强于低速动作。实际还需考虑机器人外形、转动、制动过程和安全余量。原文式 (14) 同时列平移与转动限制;角度距离和弧长在实现中必须保持单位与几何定义一致,不能把“到障碍距离”不加区分地塞入任何角速度公式。

最终搜索集合是

Vr=Vs∩Vd∩Va.V_r=V_s\cap V_d\cap V_a.

三个集合解决三个不同问题:硬件允许、眼下能够达到、沿该运动能及时停车。一个速度可能不撞障碍但当前达不到,也可能当前达得到却已经刹不住。

方法三:安全筛选之后再优化偏好

原文使用朝向目标、轨迹净空和前进速度的加权评价,并对组合结果平滑。可抽象写为

G(v,ω)=σ(αH(v,ω)+βD(v,ω)+γV(v,ω)).G(v,\omega)=\sigma\bigl(\alpha H(v,\omega)+\beta D(v,\omega)+\gamma V(v,\omega)\bigr).

HH 衡量预测后朝向与目标的吻合程度,DD 是沿候选运动到障碍的距离评价,VV 奖励前进速度;三项经过归一化,σ\sigma 表示原文讨论的平滑处理。这里不是神经网络训练损失,也不宜把 σ\sigma 自动解释成某个标准 sigmoid。

安全条件在集合筛选中,偏好在目标函数中。若仅把碰撞作为有限负分,高速度正分可能掩盖危险;而原框架先排除不允许的候选。这个分层是 DWA 思想的重点。

恢复策略是系统层问题。原文 §5.3 使用 rotate-away 模式,在没有允许平移的轨迹时先转离障碍;这不意味着该技巧使所有局部困境都有解。

把延迟也放进停车账本

在静止障碍、沿预测圆弧距离为 dd、最大制动减速度 ab>0a_b>0 的简化条件下,立即制动要求 v2/(2ab)≤dv^2/(2a_b)\le d。若还存在尚未建模的感知执行延迟 τ\tau,保守教学检查应改为 vτ+v2/(2ab)≤dv\tau+v^2/(2a_b)\le d,得到 v≤−abτ+ab2τ2+2abdv\le-a_b\tau+\sqrt{a_b^2\tau^2+2a_bd}。这是对原停车思想的工程扩展,不是声称1997原式已处理全部延迟。

取 d=0.5d=0.5米、ab=1a_b=1米/秒²,无延迟上限为1米/秒;τ=0.2\tau=0.2秒时降至约0.820米/秒。即使该速度可停车,若当前速度0.4、加速度上限0.5、周期0.1秒,本轮仍只能到0.45米/秒。可停集合与一步可达集合确实是两道不同筛选。

VFH是方向空间的平行局部避障方法;TOPP-RA共享“未来还能停住”的教学直觉,但沿固定路径作全程可控集递推。作者摘要的95厘米/秒是RHINO特定动态场景中观察到的速度,不是任意传感距离、延迟及移动障碍速度下的安全定理。

可达和可停只是候选筛选,目标方向与速度偏好在筛选之后才起作用。下面手算停车距离,再核对RHINO实验中的制动、传感与控制周期。

三、筛选后评价速度,用停车距离检查安全条件

输入:当前速度、机器人运动上限、局部障碍、目标点
计算硬件速度集合 Vs
根据当前速度与控制周期计算可达窗口 Vd
最佳候选 ← 空
遍历 Vs 与 Vd 交集中的离散速度(v, w):
    生成对应圆弧或直线运动
    计算机器人外形沿轨迹到障碍的可用距离
    if 制动过程不满足安全条件:跳过
    计算朝向、净空、速度的归一化评价
    更新最佳候选
执行所选速度一个周期,读取新状态和障碍
若没有可用前进动作,进入适用的停止/恢复处理

一个可算的停车例子

自构例子,未运行。 机器人速度为 0.8 m/s,最大制动减速度为 0.5 m/s²,理想制动距离为 0.82/(2×0.5)=0.640.8^2/(2\times0.5)=0.64 m。若另有 0.25 s 的感知执行延迟,单是延迟期间又走了 0.2 m,至少需要考虑 0.84 m,尚未计入外形与额外余量。看到前方 0.7 m 内无障碍,并不意味着这个速度可以安全保留。

四、把RHINO速度结果与传感制动条件一起读

Fig. 20:同一门口几何下,不同动态参数会改变可执行的转弯轨迹
原论文结果图/表摘引:Dieter Fox、Wolfram Burgard、Sebastian Thrun(1997),Fig. 20,PDF 第 19 页;核对原文。原版权保留。

读图:同一门口几何下,不同动态参数会改变可执行的转弯轨迹。图中绕行不是单纯目标方向估计错误,而是加速度与制动能力限制了当前可选动作。

论文在 RHINO 移动机器人上报告最高约 95 cm/s 的运行,拥挤走廊例子平均约 65 cm/s。这些是特定硬件与场景下的实机证据,并非任意移动障碍、传感器误差和刹车条件下的无碰撞保证。

实验设置:传感、制动和计算周期共同决定能力

速度空间和轨迹图来自 23 页作者稿,图号与期刊排版应分别核对。可停车性假设静态几何和可用制动,不能据此宣称已预测行人未来动作。

项目 作者稿报告
机器人 RHINO,RWI B21 同步驱动平台
传感器 24 个 Polaroid 超声传感器、56 个红外探测器及双目系统;主要介绍超声局部模型
超声采样 单次完整环扫约 0.4 s,声束约 15°
控制周期 一轮 DWA 约每 0.25 s 执行
局部表示 障碍线场,最多保留 72 条观测线,先进先出更新
算力 i486,所述障碍线规模下计算控制在 0.25 s 内
实验目标 检查不同速度/加速度下的转弯选择、走廊平稳性和拥挤环境通行
权重 §5.4 报告 0.8、0.1、0.1 的经验设置;不与前文函数示意图的另一组权重混合

障碍线由超声测距和声束宽度生成,距离表示的是候选曲线与障碍线的相交位置。传感器噪声处理与这套模型有关,并不是任意点云系统可以原样照搬的通用感知接口。

原文还加入随线速度增大的侧向安全距离,让机器人在窄门前降速。这同时为圆弧近似误差提供一定余量。论文主张其动态约束有助于安全,但完整系统表现确实还使用了这些辅助机制。

五处证据:速度数字不能脱离任务

1.Fig. 2、Fig. 4–图 5。 门口场景映射为速度空间中的可行区域与动态窗口。它解释为什么一个看似正确的急转弯可以被剔除,而不只是在碰撞发生之后修正。

图2:机器人沿走廊前进而目标位于侧门外的场景
Dieter Fox、Wolfram Burgard、Sebastian Thrun(1997),图 2,PDF 第 4 页;原文与图注;放大查看。原版权保留。

读图:当前位置、朝向与目标位置需要一起读;目标在右侧并不意味着当前速度下能安全立即转右。

图4:由障碍物与制动约束形成的可容许速度空间
Dieter Fox、Wolfram Burgard、Sebastian Thrun(1997),图 4,PDF 第 10 页;原文与图注;放大查看。原版权保留。

读图:横轴为角速度、纵轴为线速度,灰区对应不可容许速度;图中的墙名映射回图2的障碍,而不是机器人当前位置。

图5:动态窗口、当前速度以及可容许速度的交集
Dieter Fox、Wolfram Burgard、Sebastian Thrun(1997),图 5,PDF 第 11 页;原文与图注;放大查看。原版权保留。

读图:先找到当前速度点,再看有限时间内可达的矩形窗口;最终搜索域还要与制动安全域相交。

2.§4.3 与 Fig. 12–17。 保持环境基本不变,改变当前速度或加速度能力,最优候选随窗口变化。它支持算法真正使用了运动约束;这些评价面不是独立随机环境上的成功率统计。

图12:相同加速度约束下两个当前线速度对应的动态窗口
Dieter Fox、Wolfram Burgard、Sebastian Thrun(1997),图 12,PDF 第 14 页;原文与图注;放大查看。原版权保留。

读图:两个窗口的中心不同,表示当前速度不同;即使目标与障碍相同,可行的下一步控制也随当前运动状态改变。

图13:较高当前速度对应的动态窗口内目标函数曲面
Dieter Fox、Wolfram Burgard、Sebastian Thrun(1997),图 13,PDF 第 15 页;原文与图注;放大查看。原版权保留。

读图:被窗口裁掉的速度不参与最终优化;读曲面峰值时,应先确认它位于本次可行域,不能用全局曲面峰替代可执行动作。 原页曲面内标签写(70,0),图注写(75,0),两者不一致;这里保留原貌,不替作者改数。

图14:较低当前速度对应的动态窗口内目标函数曲面
Dieter Fox、Wolfram Burgard、Sebastian Thrun(1997),图 14,PDF 第 15 页;原文与图注;放大查看。原版权保留。

读图:与图13对照当前速度变化后峰的位置;更低速度使可行的转弯曲率范围发生变化,路径选择因此不同。

图15:较低线加速度与角加速度限制下的动态窗口
Dieter Fox、Wolfram Burgard、Sebastian Thrun(1997),图 15,PDF 第 16 页;原文与图注;放大查看。原版权保留。

读图:缩小的可达窗口限制了下一步速度变化;不能只降低最高速度而忽略加速度对可执行转向的限制。

图16:低加速度条件下整个速度空间的目标函数曲面
Dieter Fox、Wolfram Burgard、Sebastian Thrun(1997),图 16,PDF 第 16 页;原文与图注;放大查看。原版权保留。

读图:这是完整速度空间的评价,存在的高峰未必在当前动态窗口中;必须与图17的受限评价一起读。

图17:低加速度条件下动态窗口内的目标函数曲面
Dieter Fox、Wolfram Burgard、Sebastian Thrun(1997),图 17,PDF 第 16 页;原文与图注;放大查看。原版权保留。

读图:与图16使用相同评价思路,但只保留当前可达部分;可执行最优动作可能与全速度空间最优点不同。

3.Fig. 20 实机轨迹。 不同动态参数下,能及时转弯的机器人直接进入门口,来不及转弯时先通过开口附近。背景环境由手工绘制,轨迹来自实际位置数据。作者另提忽略部分动态影响的初期模拟经常碰撞,但没有据此给出统一样本数的量化消融表。

本页定位:图 20内嵌图。

4.Fig. 21 走廊绕障。 所示例子在绕过障碍前减速到约 55 cm/s,全程平均约 72 cm/s。它支持这一次运行中能够平稳绕障并继续直行,不能由单条轨迹证明所有走廊都不存在振荡。

图21:走廊中绕过单个人体障碍的机器人轨迹
Dieter Fox、Wolfram Burgard、Sebastian Thrun(1997),图 21,PDF 第 19 页;原文与图注;放大查看。原版权保留。

读图:轨迹展示这一场景中的绕行与恢复直行;它是一次实验路径,不给出对任意动态障碍的全局安全保证。

5.Fig. 22 拥挤走廊。 最高速度约 95 cm/s,在小于 80 cm 的狭窄通道附近降到 20 cm/s 以下,平均约 65 cm/s。最高值与平均值衡量不同现象,不能把 95 cm/s 写成全程保持速度。§5.4 也明确说明跨论文对比困难,因为机器人尺寸和障碍细节不同。

图22:拥挤走廊中绕过多个人体障碍的轨迹
Dieter Fox、Wolfram Burgard、Sebastian Thrun(1997),图 22,PDF 第 20 页;原文与图注;放大查看。原版权保留。

读图:沿虚线追踪机器人在多个障碍和门口之间的运动;最窄处的可通过性需连同机器人尺寸与速度约束理解。

论文引用了 VFH 系统约 58 cm/s 的例子并认为自身表现有利,但该比较不是同平台、同环境、同调参预算的受控实验。更稳妥的结论是 DWA 展示了可实际运行的动态约束局部避障,而不是给早期方法排出严格统一的性能名次。

五、保留短视决策、感知时延与动态障碍限制

真正重要的改动是把运动命令的可达性与制动能力放入搜索空间本身,避免先决定方向再要求执行器实现一个无法完成的动作。搜索只保留二维速度变量,也使在线计算可行。

代价是短视。候选都来自有限的局部运动族,目标函数倾向眼前的朝向、速度和净空;暂时远离目标才能通过的路线可能不会被选中。加大规划周期能扩大速度窗口,却会拉长反馈间隔并扩大预测误差,不能简单认为窗口越大越好。

安全还依赖刹车模型和观测。地面变滑、负载变化、延迟变大、障碍漏检或有人在机器人停车后继续撞来,都会超出朴素停车条件的结论。这些是对模型假设的分析,不是声称论文实测了全部失败类型。

六、追问:提高控制频率却不改变制动能力,停车安全范围会自动等比例扩大吗?

提高控制频率却不改变制动能力,停车安全范围会自动等比例扩大吗?

参考答案:不会。控制频率影响更新时机和一个周期内的可达窗口,制动距离仍受速度、减速度及感知条件约束。应分开改变周期与制动模型,检查候选速度是否仍可停。仅缩短计算周期不能消除传感器未及时看到障碍或模型失配的风险。

七、比较路径上的提前减速问题

八、自测与参考答案

问题 1:一个候选速度对应无障碍直线,为什么仍可能不在动态窗口里?

参考答案:动态窗口考虑从当前速度经过有限时间能否达到该速度。例如一个周期只能增加 0.1 m/s,就不能直接从 0.2 m/s 跳到 1 m/s。路径几何可行不能替代执行器可达性。

问题 2:为什么不能只奖励远离障碍,而省掉目标朝向项?

参考答案:这样机器人可能不断选择开阔区域,远离障碍但永远不到目标。反过来只奖励朝向目标又容易在正前方障碍前停住。安全筛选确定允许动作,目标函数在其中表达任务偏好,两者都必要但仍不保证全局可达。

问题 3:DWA 在有行人的环境成功运行,是否证明它会预测行人未来轨迹?

参考答案:不是。原实现主要依靠持续更新局部障碍和短期重规划应对变化。动态窗口中的“动态”首先指机器人速度和加速度约束。要处理行人运动预测、相互避让和对方继续接近的风险,还需要明确的额外模型与验证。