1. 抖动现象概述

各位同学,咱们今天正式开讲《轨迹抖动问题排查与优化》。第一节课,我想先聊聊一个老生常谈、但又绕不开的话题——什么是轨迹抖动。

说实话,我入行做自动驾驶规划控制那会儿,第一次在实车上看到轨迹抖动,心里是有点懵的。明明算法仿真跑得好好的,怎么一上路就左右晃?后来踩的坑多了,才慢慢摸清门道。

1.1 什么是轨迹抖动

简单说,轨迹抖动就是车辆实际行驶路径与期望路径之间,出现了非预期的、周期性的或随机的偏差。你想想看,本来规划好一条平滑的弧线过弯,结果车头在弯道里来回修正,像喝醉了酒一样。

从数学角度看,抖动通常表现为轨迹的高阶导数不连续或频率成分异常。比如位置曲线的二阶导(加速度)出现毛刺,或者三阶导(加加速度)剧烈跳变。

核心判断标准:如果轨迹的曲率变化率超过车辆动力学极限,或者控制指令更新频率与车辆响应频率不匹配,抖动就来了。

1.2 抖动的危害

抖动的危害,我分三个层面讲。

  • 乘坐体验差:乘客会感觉车辆在“点头”或“摇摆”,容易晕车。我在某次路测中,后排同事直接晕吐了——从那以后,我对抖动容忍度降到了最低。
  • 控制精度下降:抖动导致跟踪误差增大,车辆可能偏离车道,甚至触发安全保护机制急停。
  • 硬件磨损加速:频繁的转向修正、加减速切换,会让转向电机、制动系统、轮胎提前老化。维修成本可不是小数目。
危害维度 具体表现 量化指标(参考)
舒适性 晕车感、不安全感 加加速度 > 2 m/s³
安全性 车道偏离、碰撞风险 横向误差 > 0.3 m
硬件寿命 转向电机过热、轮胎偏磨 转向指令频率 > 50 Hz

1.3 抖动问题的分类

我个人习惯把抖动分成两大类:高频抖动和低频抖动。为什么这么分?因为排查思路和优化手段完全不同。

高频抖动(> 5 Hz)

高频抖动,说白了就是“毛刺多”。你去看轨迹曲线,上面全是细小的锯齿。原因通常是:

  • 传感器噪声直接耦合进规划结果
  • 控制器的微分项增益过高(比如 PID 的 D 项太大)
  • 路径采样点间距太小,导致曲率计算不稳定

我记得有一次排查一个高频抖动问题,折腾了两天。最后发现是 IMU 的加速度计噪声没做低通滤波,直接喂给了状态估计器。嗯,这里要注意:传感器原始数据一定要做预处理。

低频抖动(0.1 ~ 5 Hz)

低频抖动更像“摇摆”。车辆会以一个较低的频率左右晃动,有点像船在海上漂。常见原因:

  • 规划路径的曲率不连续(比如用直线+圆弧拼接时,连接点曲率突变)
  • 控制器的积分项饱和后退出,产生回摆
  • 车辆模型参数不准确(比如质心位置、轮胎刚度偏差)

避坑指南:我曾经在高速场景遇到低频抖动,一开始以为是控制器问题,调了三天参数没效果。后来发现是规划层用了分段多项式,但段间边界条件只保证了位置和速度连续,没保证加速度连续。加上加速度约束后,问题立刻消失。

下面这张图,是我自己总结的抖动分类与排查方向,你可以存下来当个参考。

轨迹抖动分类与排查框架 轨迹抖动 高频抖动 (>5 Hz) 低频抖动 (0.1~5 Hz) 传感器噪声耦合 控制器微分增益过高 采样点间距过小 路径曲率不连续 积分饱和回摆 车辆模型参数偏差 排查建议:高频抖动优先检查传感器滤波和控制器参数;低频抖动优先检查路径平滑和模型标定

注意:高频抖动和低频抖动有时会叠加出现。比如传感器噪声引起的高频毛刺,经过积分后反而会放大低频漂移。排查时建议先用频谱分析工具(如 FFT)分离频率成分,再对症下药。