自动驾驶演示
该用户手册旨在帮助用户完成基于 Lidar 感知的封闭园区自动驾驶。
为了方便您快速实现基于 Lidar 的封闭园区自动驾驶演示,我们提供了 Dev kit Closeloop 模式:
- 建议您在进行基于 Lidar 的封闭园区自动驾驶演示时使用该模式。
- 建议使用
Dev Kit Debug模式。
本文以 Dev kit Closeloop 模式进行说明,如果您选择使用 Dev Kit Debug 模式,操作方法相同。
前提条件
- 完成 封闭园区自动驾驶搭建--规划适配。
- 确保在道路平整、车少人少等相对安全的情况下实验。
- 确保至少两人操作,一人操作计算单元(HW 3.0),一人操作遥控器,做好随时接管准备。
启动流程
步骤一:编译项目,启动 DreamView
进入 docker 环境,用 GPU 编译项目,启动 DreamView。
cd apollo
bash docker/scripts/dev_start.sh
bash docker/scripts/dev_into.sh
bash apollo.sh build_opt_gpu
bash scripts/bootstrap.sh步骤二:启动所需模块
- 在浏览器中打开
(http://localhost:8888)。 - 根据实际情况选择模式。
- 根据车辆铭牌信息选择对应的车型。
- 选择对应的虚拟车道线或高精地图。
- 在
Module Controller标签页启动 Canbus、GPS、Localization、Transform 模块。

定位模块启动后,需要接收定位数据,需要等待约 1 分钟左右。
- 打开新的终端,并使用
bash docker/scripts/dev_into.sh命令进入 docker 环境。 -
在新终端中输入
cyber_monitor命令查看tf、tf_static、/apollo/localization/pose数据,这三个数据在cyber_monitor中均显示为绿色代表定位模块启动成功。
-
在 DreamView 中启动
lidar模块。
步骤三:检查 Lidar 数据是否正确
使用 cyber_monitor,查看激光雷达数据是否正常输出。
- 使用上下方向键选择 channel,
- 使用右方向键查看 channel 详细数据,数据无异常则说明激光雷达启动成功。
关于 cyber_monitor 更详细使用,参见 [CyberRT_Developer_Tools](Apollo_Doc_CN_6_0/上机使用教程/实时通信框架CyberRT的使用/CyberRT介绍.md "_self"))。
单激光雷达用户,请检查如下 channel 是否正常输出:
| 序号 | channel | 帧率 |
|---|---|---|
| 1 | /apollo/sensor/lidar16/PointCloud2 |
10Hz |
| 2 | /apollo/sensor/lidar16/Scan |
10Hz |
| 3 | /apollo/sensor/lidar16/compensator/PointCloud2 |
10Hz |

步骤四:检查各模块 channel 是否正确
在 docker 中输入 cyber_monitor 命令并检查以下 channel。
- 使用
上下方向键选择 channel, - 使用
右方向键查看 channel 详细信息。
单激光雷达用户,请检查如下 channel 是否正常输出:
| channel_name | 检查项目 |
|---|---|
/apollo/localization/pose |
确保能正常输出数据 |
/apollo/sensor/gnss/best_pose |
确保能正常输出数据、sol_type: 选项显示为NARROW_INT |
/apollo/sensor/lidar16/PointCloud2 |
确保能正常输出数据 |
/apollo/sensor/lidar16/Scan |
确保能正常输出数据 |
/apollo/sensor/lidar16/compensator/PointCloud2 |
确保能正常输出数据 |
/tf |
确保能正常输出数据 |
/tf_static |
确保能正常输出数据 |
/apollo/canbus/chassis |
确保能正常输出数据 |
/apollo/canbus/chassis_detail |
确保能正常输出数据 |
步骤五:启动 Lidar 感知
确认各模块正常启动且 channel 输出正常后,在 DreamView 上启动 Lidar Perception,使用 cyber_monitor 查看 /apollo/perception/obstacles 是否正常输出。

步骤六:验证 Lidar 感知
在 DreamView 上启动 Perception 模块,使用 cyber_monitor 查看 /apollo/perception/obstacles 是否正常输出,查看车前方 10 米处运动的人或者自行车(自行车上要有人),在 DreamView 上查看障碍物颜色以及位置速度信息(自行车青蓝色,行人黄色,车辆绿色),如下图所示:

/apollo/perception/obstacles 的数据如下图所示:


确保在 DreamView 上能看到障碍物且 /apollo/perception/obstacles 有障碍物信息。
步骤七:启动 Canbus、Planning、Prediction、Routing、Control 模块
在 Module Controller 标签页启动 Planning、Prediction、Routing、Control 模块。

在 Routing Editor 标签中点击 Add Point of Interest 按钮添加一个 point, 然后选择 Send Routing Request 按钮发送添加的 routing 点。

步骤八:验证 Planning、Prediction、Routing、Control 模块是否启动成功
从 DreamView 中查看会出现一个蓝色的线以及一个红色的 stop 标志。如下图所示:

在车前方存在人或者自行车(车上有人)时,在 task 标签页查看 planning 轨迹线,正常情况下 planning 会重新规划轨迹,如下图所示:

在 docker 环境中输入命令 cyber_monitor 并查看 planning channel 信息:
如果出现上图所示轨迹线和 topic 信息,表示规划模块适配和开环测试通过,否则继续查看 log 信息进行调试。
步骤九:启动自动驾驶
在附近没有人员和车的情况下,遥控器下放权限并在 task 标签页中点击 start auto 使车进入自动驾驶状态,在车自动驾驶这个过程中做好随时用遥控器接管确保安全的准备。
常见问题
自动驾驶过程中车轮来回摆动,有画龙现象
这种情况一般是车辆动力学标定没有做好,建议重新进行动力学标定。
车辆换道、停止等效果不理想
在保证感知、定位稳定的前提下,可以尝试修改 planning 配置文件中的相关参数进行调整,详情参见 封闭园区自动驾驶搭建--规划适配。
文档意见反馈
如果您在使用文档的过程中,遇到任何问题,请到我们在【开发者社区】建立的 反馈意见收集问答页面,反馈相关的问题。我们会根据反馈意见对文档进行迭代优化。