1. 通过红绿灯路口时“卡停止”了,为什么?怎么处理?

这是自动驾驶测试里非常常见的问题,面试里一般是在考你:

  • 能不能快速定位问题
  • 是否理解模块链路
  • 有没有现场处理思路

自动驾驶通过红绿灯,大致链路:

感知 → 红绿灯识别 → 定位 → Prediction → Planning → Control

“卡停止”通常说明 Planning 一直认为“不能走”。

常见原因:

(1)红绿灯状态识别错误

比如:

  • 绿灯识别成红灯
  • 红灯状态没刷新
  • TrafficLight 感知丢帧

表现:

  • UI 上灯状态异常
  • perception topic 数据不更新
  • 车一直停在 stop line 前

排查:

cyber_monitor

查看:

  • /apollo/perception/traffic_light
  • /apollo/planning

或者直接:

grep traffic_light planning.INFO

解决:

  • 调整交通灯 ROI
  • 检查地图 stop_line 对齐
  • 检查相机标定
  • 检查红绿灯配置文件

 stop_line 和 signal boundary,这个其实就属于现场调参。

(2)停止线(stop_line)位置不对

如果停止线:

  • 离路口太远
  • 压到车身前面
  • 和车道不匹配

Planning 会认为:

“还没到允许通行区域”。

结果:

车一直刹停。

解决:

重新检查:

signal {
 stop_line {

里的坐标。

尤其:

  • lane overlap
  • junction overlap
  • stop_line 朝向

是否正确。

(3)定位漂移

Localization 漂移后:

系统认为:

  • 车没到停止线
  • 或车已经越线

Planning 会异常。

现象:

  • RViz 里车飘
  • 车道匹配偏移
  • 红灯逻辑异常

解决:

  • 重启 localization
  • 检查 GNSS/IMU
  • 检查地图匹配
(4)障碍物误检导致 Planning 不敢走

有时并不是红绿灯问题。

而是:

感知误识别:

  • 行人
  • 锥桶
  • 静态障碍

Planning 一直 yield。

可以看:

grep pedestrian planning.INFO

或者 Dreamview 障碍物显示。

总结

我会先判断是感知、定位还是规划问题。
第一看 traffic light topic 是否正常;
第二看 stop_line 和 HDMap overlap 是否匹配;
第三检查 localization 是否漂移;
第四检查是否存在障碍物误检导致 planning 一直 yield。
现场会结合 Dreamview、日志和 topic 数据快速定位,再决定是调参、修地图还是重启模块。

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐