1. 抖动现象概述
各位同学,咱们今天正式开讲《轨迹抖动问题排查与优化》。第一节课,我想先聊聊一个老生常谈、但又绕不开的话题——什么是轨迹抖动。
说实话,我入行做自动驾驶规划控制那会儿,第一次在实车上看到轨迹抖动,心里是有点懵的。明明算法仿真跑得好好的,怎么一上路就左右晃?后来踩的坑多了,才慢慢摸清门道。
1.1 什么是轨迹抖动
简单说,轨迹抖动就是车辆实际行驶路径与期望路径之间,出现了非预期的、周期性的或随机的偏差。你想想看,本来规划好一条平滑的弧线过弯,结果车头在弯道里来回修正,像喝醉了酒一样。
从数学角度看,抖动通常表现为轨迹的高阶导数不连续或频率成分异常。比如位置曲线的二阶导(加速度)出现毛刺,或者三阶导(加加速度)剧烈跳变。
核心判断标准:如果轨迹的曲率变化率超过车辆动力学极限,或者控制指令更新频率与车辆响应频率不匹配,抖动就来了。
1.2 抖动的危害
抖动的危害,我分三个层面讲。
- 乘坐体验差:乘客会感觉车辆在“点头”或“摇摆”,容易晕车。我在某次路测中,后排同事直接晕吐了——从那以后,我对抖动容忍度降到了最低。
- 控制精度下降:抖动导致跟踪误差增大,车辆可能偏离车道,甚至触发安全保护机制急停。
- 硬件磨损加速:频繁的转向修正、加减速切换,会让转向电机、制动系统、轮胎提前老化。维修成本可不是小数目。
| 危害维度 | 具体表现 | 量化指标(参考) |
|---|---|---|
| 舒适性 | 晕车感、不安全感 | 加加速度 > 2 m/s³ |
| 安全性 | 车道偏离、碰撞风险 | 横向误差 > 0.3 m |
| 硬件寿命 | 转向电机过热、轮胎偏磨 | 转向指令频率 > 50 Hz |
1.3 抖动问题的分类
我个人习惯把抖动分成两大类:高频抖动和低频抖动。为什么这么分?因为排查思路和优化手段完全不同。
高频抖动(> 5 Hz)
高频抖动,说白了就是“毛刺多”。你去看轨迹曲线,上面全是细小的锯齿。原因通常是:
- 传感器噪声直接耦合进规划结果
- 控制器的微分项增益过高(比如 PID 的 D 项太大)
- 路径采样点间距太小,导致曲率计算不稳定
我记得有一次排查一个高频抖动问题,折腾了两天。最后发现是 IMU 的加速度计噪声没做低通滤波,直接喂给了状态估计器。嗯,这里要注意:传感器原始数据一定要做预处理。
低频抖动(0.1 ~ 5 Hz)
低频抖动更像“摇摆”。车辆会以一个较低的频率左右晃动,有点像船在海上漂。常见原因:
- 规划路径的曲率不连续(比如用直线+圆弧拼接时,连接点曲率突变)
- 控制器的积分项饱和后退出,产生回摆
- 车辆模型参数不准确(比如质心位置、轮胎刚度偏差)
避坑指南:我曾经在高速场景遇到低频抖动,一开始以为是控制器问题,调了三天参数没效果。后来发现是规划层用了分段多项式,但段间边界条件只保证了位置和速度连续,没保证加速度连续。加上加速度约束后,问题立刻消失。
下面这张图,是我自己总结的抖动分类与排查方向,你可以存下来当个参考。
注意:高频抖动和低频抖动有时会叠加出现。比如传感器噪声引起的高频毛刺,经过积分后反而会放大低频漂移。排查时建议先用频谱分析工具(如 FFT)分离频率成分,再对症下药。