• Apollo7.0系统概述


    Apollo概述

    Apollo系统是百度推出的自动驾驶平台,目前已经迭代到了版本7.0。

    通信框架

    通信框架

    代码结构

    代码目录总览

    代码目录
    cyber:主要是涉及到模块之间的topic通信
    docker:主要是docker容器
    docs:主要是相关的说明文档
    modules:代码的核心部分,涉及到控制,规划,感知,预测,驱动等等
    scripts:主要是一些调试脚本
    third_part:主要存放第三方库文件

    canbus模块示例

    canbus目录
    canbus_component.cc是canbus模块的进入点,主要包含init函数和proc函数
    launch目录保存着启动canbus模块的脚本,包含dag文件
    dag目录了保存模块拓扑关系的配置文件,可以在 dag 文件中定义使用的 Component 和上游/下游通道,主要包含pb.txt文件和conf文件
    conf目录保存了pb.txt和conf文件,主要是相关配置
    proto目录保存了proto文件,用于解析相关的数据
    common目录保存了gflag文件,主要是一些flag的配置
    BUILD主要是配置编译的相关东西

    环境的搭建

    ubuntu系统的安装

    Apollo7.0推荐安装ubuntu18.04以上的版本。

    Nvidia显卡的安装

    查询系统推荐的显卡:ubuntu-drivers devices
    显卡安装:sudo apt-get install nvidia-driver-470 #此处数字要对应上面查询到的版本号
    检查是否安装成功:nvidia-smi

    安装docker

    安装docker社区版
    curl https://get.docker.com | sh
    sudo systemctl start docker && sudo systemctl enable docker

    重启docker使其生效
    sudo systemctl restart docker

    完成 Docker 安装后,在终端中执行下述命令并重启系统,这样可以免去每次执行 Docker 命令时需要添加 sudo 的繁琐
    sudo groupadd docker
    sudo usermod -aG docker [your_username]

    安装docker工具包

    如果是在物理机中安装的 Ubuntu,且机器配有 NVIDIA 显卡,在安装了驱动的前提下,还需要安装 NVIDIA 容器工具包以运行 Apollo Docker 镜像中的 CUDA:

    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 -y update
    sudo apt-get install -y nvidia-docker2
    
    • 1
    • 2
    • 3
    • 4
    • 5

    如果linux内核变动,需要重新执行以下命令。

    操作命令

    启动apollo docker容器

    ./docker/scripts/dev_start.sh
    注意事项:
    已经启动一次Apollo docker容器的情况下,需要另外开启窗口,不用重复启动
    命令如果出现fail或者error,则多尝试几次该命令
    启动本地docker(除开第一次启动)
    ./docker/scripts/dev_start.sh -l

    进入apollo docker容器

    ./docker/scripts/dev_into.sh

    编码细节

    编译方法

    ./apollo.sh build
    差分编译
    进入相应的目录:bazel build

    启动Apollo DreamView

    启动 DreamView 并使能模块监控机制,在浏览器中访问 http://localhost:8888 来显示 DreamView 界面
    ./scripts/bootstrap.sh start

    启动Apollo-LGSVL DreamView

    bash scripts/bootstrap_lgsvl.sh
    bash scripts/bridge.sh

    清除编译环境

    bash scripts/apollo_clean.sh –all

    查看Log

    路径:/apollo/data/log
    如果是单独模块:会有单独的文件 ,例如canbus在是canbus.log.INFO.20220325-095444.15138
    如果不是单独模块:都在文件mainboard.log.INFO.20220325-095444.15469
    也可以直接打开它们的快捷方式,canbus.INFO和mainboard.INFO,能够直接获取最新的log

    启动CANBus调试工具

    模拟control模块发送控制命令消息
    ./scripts/canbus_teleop.sh
    进入自动驾驶状态 m+1
    设置档位 G+0 空挡
    G+1 驾驶挡位
    G+2 倒挡
    G+3 驻车挡
    加速(2% 需处于D挡)W
    减速(2%) S
    左转(2%) A
    右转(2%) D

    监控topic

    cyber_monitor

    启动和停止CANBus launch文件

    cyber_launch start modules/canbus/launch/canbus.launch
    cyber_launch stop modules/canbus/launch/canbus.launch

    ——————
    2022/07/27
    家中

  • 相关阅读:
    【JavaEE初阶】多线程 _ 基础篇 _ 阻塞队列(案例二)
    专精特新是什么?看完你就懂了
    【PAT甲级 - C++题解】1076 Forwards on Weibo
    防火墙管理工具增强网络防火墙防御
    Java版企业电子招标采购系统源码—企业战略布局下的采购寻源
    Linux命令记载
    SpringBoot JPA使用
    并发事务下,不同隔离级别可能出现的问题
    全球回收标准(GRS)品牌认证细则
    java---网络初始
  • 原文地址:https://blog.csdn.net/liebecl/article/details/125938435