Apollo自动驾驶开发框架新手入门指南:从环境搭建到第一个Demo

1次阅读
没有评论

共计 2048 个字符,预计需要花费 6 分钟才能阅读完成。

image.webp

1. Apollo 框架概述

Apollo 是百度开源的自动驾驶开发框架,自 2017 年发布以来已成为全球最活跃的自动驾驶开源项目之一。它的架构设计遵循了模块化和高内聚的原则,主要特点包括:

Apollo 自动驾驶开发框架新手入门指南:从环境搭建到第一个 Demo

  • 分层架构:分为硬件层、核心软件层和云端服务层
  • 模块化设计:各功能模块(如感知、预测)可独立开发和测试
  • 多语言支持:核心模块使用 C ++,工具链支持 Python
  • 仿真支持:内置高精地图和仿真环境

2. 环境搭建

2.1 系统要求

推荐使用 Ubuntu 18.04/20.04 LTS 版本,最低硬件配置:

  • CPU:4 核以上
  • 内存:8GB 以上
  • 磁盘:50GB 可用空间

2.2 安装步骤

  1. 安装 Docker CE

    sudo apt-get update
    sudo apt-get install docker-ce docker-ce-cli containerd.io

  2. 安装 NVIDIA 容器工具(GPU 版需要)

    distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
    curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
    curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
    sudo apt-get update && sudo apt-get install -y nvidia-docker2

  3. 获取 Apollo 源码

    git clone https://github.com/ApolloAuto/apollo.git
    cd apollo

  4. 启动开发容器

    bash docker/scripts/dev_start.sh

3. 核心模块解析

Apollo 采用典型的分层架构,主要模块包括:

  • 感知模块:处理传感器数据(激光雷达、摄像头等)
  • 预测模块:预测周围物体的运动轨迹
  • 规划模块:生成安全舒适的行驶路径
  • 控制模块:将路径转化为车辆控制指令

各模块通过 Cyber RT(Apollo 自研的通信框架)进行数据交互,典型数据流:
感知 → 预测 → 规划 → 控制

4. 实战示例:红绿灯检测 Demo

4.1 启动 Dreamview

bash scripts/bootstrap.sh

4.2 运行 Python 示例

创建modules/traffic_light/demo.py:

# 导入 Apollo Python API
from cyber.python.cyber_py3 import cyber
from modules.perception.proto.traffic_light_detection_pb2 import TrafficLightDetection

def callback(data):
    print(f"检测到交通灯状态: {data.traffic_light[0].color}")

if __name__ == '__main__':
    cyber.init()
    node = cyber.Node("traffic_light_listener")
    node.create_reader("/apollo/perception/traffic_light", 
                      TrafficLightDetection, callback)
    cyber.spin()

4.3 配置文件

modules/traffic_light/conf/traffic_light.conf 中添加:

camera_name: front_6mm
traffic_light_model_path: ./data/models/traffic_light

5. 常见问题

5.1 Docker 权限问题

错误现象:Got permission denied while trying to connect to the Docker daemon
解决方案:

sudo groupadd docker
sudo usermod -aG docker $USER
newgrp docker

5.2 NVIDIA 驱动不兼容

错误现象:could not select device driver...
解决方案:

sudo apt-get install nvidia-driver-470

5.3 端口冲突

错误现象:Dreamview 无法启动
解决方案:

lsof -i :8888
kill -9 < 占用进程的 PID>

6. 进阶学习

推荐学习路径:

  1. 官方文档:https://github.com/ApolloAuto/apollo
  2. 在线课程:Udacity 自动驾驶工程师纳米学位
  3. 实践项目:从 Apollo 的 modules/demo 开始修改
  4. 社区参与:GitHub Issue 讨论和贡献代码

结语

通过本文的实践,你应该已经完成了 Apollo 开发环境的搭建,并理解了基本架构。建议下一步尝试修改 Demo 代码,比如改变车辆的速度参数或规划路径。自动驾驶开发需要持续的实践,遇到问题时多查阅官方文档和社区讨论。

正文完
 0
评论(没有评论)