【百度Apollo】循迹自动驾驶:探索基于视觉感知的路径规划与控制技术


🎬 鸽芷咕个人主页
🔥 个人专栏 : 《linux深造日志》《粉丝福利》

⛺️生活的理想,就是为了理想的生活!


⛳️ 推荐

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。

文章目录

  • [⛳️ 推荐](#⛳️ 推荐)
  • 引入
  • 步骤一:录制轨迹
  • 步骤二:录制轨迹
      • [1. 选择循迹模式](#1. 选择循迹模式)
      • [2. 选择车辆](#2. 选择车辆)
      • [3. 启动循迹驾驶相关模块](#3. 启动循迹驾驶相关模块)
      • [4. 查看连接状态](#4. 查看连接状态)
      • [5. 开启轨迹录制](#5. 开启轨迹录制)
      • [6. 关闭轨迹录制](#6. 关闭轨迹录制)
  • 步骤三:启动循迹驾驶演示
      • [1. 将车辆遥控至上述章节录制循迹数据时的起始位置。](#1. 将车辆遥控至上述章节录制循迹数据时的起始位置。)
      • [2. 将遥控器切换到自动驾驶模式。](#2. 将遥控器切换到自动驾驶模式。)
      • [3. 在 Dreamview+ 中点击操作底栏的 **START/启动** 按钮,启动自动驾驶。](#3. 在 Dreamview+ 中点击操作底栏的 START/启动 按钮,启动自动驾驶。)

引入

循迹自动驾驶是一种基于视觉感知的自动驾驶技术,通过对道路标线和环境的识别和分析,实现车辆的准确定位和精准控制,从而实现沿着规定的路径行驶。循迹自动驾驶技术在实际应用中具有广泛的应用前景,可以应用于智能车辆、物流配送、工业自动化等领域。

步骤一:录制轨迹

  1. 启动 Canbus 驱动

启动工控机后,在桌面上打开命令行终端(Terminal),进入 CAN 卡目录(默认在 home 路径下),启动 CAN 驱动:

cpp 复制代码
bash ~/socketcan/start.sh
  1. 启动 Apollo Docker 环境

如果您使用的是包管理,请您按照以下步骤操作:

打开命令行终端,切换路径到 Apollo:

cpp 复制代码
cd ~/apollo

输入以下命令进入 Apollo Docker 环境:

cpp 复制代码
aem start #创建容器

aem enter #进入容器

buildtool build

‍注意:首次进入容器用buildtool build;如果是只编译更新的模块,使用以下命令buildtool build -p 模块名

如果您的终端如下面所示,说明您成功进入了 Apollo 的运行容器:

如果您使用的是源码,请您按照以下步骤进入 docker 环境:

打开命令行终端,切换路径到 Apollo:

cpp 复制代码
cd ~/apollo #切换路径到apollo,注意cd与~/apollo之间有一个空格

输入以下命令启动 Apollo Docker 环境:

cpp 复制代码
bash docker/scripts/dev_start.sh

启动 docker 环境:

cpp 复制代码
bash docker/scripts/dev_into.sh

如果您的终端如下面所示,说明您成功进入了 Apollo 的运行容器:

cpp 复制代码
[user@in-runtime-docker:/apollo]$

您可以通过包管理或源码方式启动 Dreamview+,请您选择一种方式按照相应命令启动 Dreamview+。

1.启动 Dreamview+
方式一:包管理方式

通过包管理方式进入 docker 环境中,在 docker 环境中执行以下命令启动 Dreamview+:

cpp 复制代码
aem bootstrap start --plus

‍注意:

  • 如果您想要停止 Dreamview+,请输入aem bootstrap stop --plus
  • 如果您想要重启 Dreamview+,请输入aem bootstrap restart --plus

方式二:源码方式

通过源码方式进入 docker 环境,在 docker 环境中执行以下命令启动 Dreamview+:

cpp 复制代码
bash scripts/bootstrap.sh start_plus

‍注意:

  • 如果您想要停止 Dreamview+,请输入bash scripts/bootstrap.sh stop_plus
  • 如果您想要重启 Dreamview+,请输入bash scripts/bootstrap.sh restart_plus

2.打开 Dreamview+

启动成功后,在浏览器输⼊localhost8888⽹址打开 Dreamview+ 界面。

  1. 启动并打开 Dreamview+

您可以通过包管理或源码方式启动 Dreamview+,请您选择一种方式按照相应命令启动 Dreamview+。

启动 Dreamview+

方式一:包管理方式

通过包管理方式进入 docker 环境中,在 docker 环境中执行以下命令启动 Dreamview+:

aem bootstrap start --plus

‍注意:

  • 如果您想要停止 Dreamview+,请输入aem bootstrap stop --plus
  • 如果您想要重启 Dreamview+,请输入aem bootstrap restart --plus

<>

方式二:源码方式

通过源码方式进入 docker 环境,在 docker 环境中执行以下命令启动 Dreamview+:

bash scripts/bootstrap.sh start_plus

‍注意:

  • 如果您想要停止 Dreamview+,请输入bash scripts/bootstrap.sh stop_plus
  • 如果您想要重启 Dreamview+,请输入bash scripts/bootstrap.sh restart_plus

打开 Dreamview+

启动成功后,在浏览器输⼊localhost8888⽹址打开 Dreamview+ 界面。

步骤二:录制轨迹

1. 选择循迹模式

Mode/模式 中选择 Vehicle Test/实车路测 模式。

Operations/操作 中选择 Waypoint_Follow/循迹 操作。

2. 选择车辆

  • 如有对应车辆配置,可选择对应配置,

  • 如无对应车辆配置,可用默认配置。

3. 启动循迹驾驶相关模块

Modules/模块 中,选择启动 CanbusControlExternalCmdGPSLidarLocalizationPredictionRadarTransform 按钮。

‍注意:ExternalCmd 是 planning 的一个子进程,循迹会用到这个子进程,路测模式只开 planning 模块就可以。

4. 查看连接状态

查看 Component 状态。

‍说明:

  • Component 中显示绿色 OK 为正常,可以进行下面的操作。 - WARNING 黄色只是信号不好,模块已经启动,只要不是 ERROR 就不影响循迹。

开启 cyber_monitor,查看 channel 信息。

查看 cyber_monitor 数据。

进入 docker 环境,输入 cyber_monitor,启动的 cyber_monitor 工具中,可以看到很多 channel 信息,其中 /tf 和 /tf_static 对应 Transform 模块,/apollo/localization/pose 对应 Localization 模块,apollo/sensor/gnss/best_pose 对应 GPS 模块。

使用上下方向键选择 channel /apollo/sensor/gnss/best_pose 按右方向键进入此 channel,查看 sol_type 项是否是 NARROW_INT,若为 NARROW_INT,则表示 GPS 信号良好,符合定位要求;若不为 NARROW_INT,则遥控移动下车辆,直到出现 NARROW_INT 为止。

检查所有开启模块均正常后可以进行下面的操作。

5. 开启轨迹录制

将车辆遥控至录制轨迹起点,标记此时车辆车头方向和车辆位置,可以在车辆左前轮处画一个十字符号用于标记,示意图如下:

在操作底栏点击 Record/录制 按钮,启动轨迹录制。

6. 关闭轨迹录制

使用遥控器遥控车辆行驶一段轨迹,这里建议走直线,车辆停止后,点击 Stop/停止 录制按钮,关闭循迹录制。

关闭轨迹录制后,在 Record Name/数据包名称 中填写数据包名称,并单击 Save/保存

‍注意:数据包命名规则限制。

步骤三:启动循迹驾驶演示

1. 将车辆遥控至上述章节录制循迹数据时的起始位置。

此时,在 Dreamview+ 中车辆前方会生成一条蓝色的轨迹线,这条轨迹线就是刚才循迹录制生成的轨迹线。检查生成的轨迹线是否清晰无毛刺,确认轨迹是否与实际路线的大致相符,如果相差很大,比如本来录制的是直行,而轨迹显示的是大幅度转弯,请重新检查定位,并重新录制新轨迹线。

‍注意:车辆的起点位置和车头朝向都尽量与循迹录制时的车辆起点位置和车头朝向保持一致。

2. 将遥控器切换到自动驾驶模式。

3. 在 Dreamview+ 中点击操作底栏的 START/启动 按钮,启动自动驾驶。

车辆就会启动循迹,沿着已有的轨迹进行自动驾驶,观察车辆运动轨迹,包括速度、方向等是否与之前录制的一致。

‍注意:

  • 车辆在循迹自动驾驶时,并没有使用到感知相关的传感器,遇到障碍物不会刹停或者避让,遇到紧急情况请及时遥控器接管。这也是寻找宽阔人少车少封闭场所的原因。 - 车辆可能开始起步比较猛,请用遥控器随时接管,紧急情况下,快速按下急停按钮。
相关推荐
游客5205 分钟前
opencv中的各种滤波器简介
图像处理·人工智能·python·opencv·计算机视觉
一位小说男主5 分钟前
编码器与解码器:从‘乱码’到‘通话’
人工智能·深度学习
深圳南柯电子21 分钟前
深圳南柯电子|电子设备EMC测试整改:常见问题与解决方案
人工智能
Kai HVZ22 分钟前
《OpenCV计算机视觉》--介绍及基础操作
人工智能·opencv·计算机视觉
biter008827 分钟前
opencv(15) OpenCV背景减除器(Background Subtractors)学习
人工智能·opencv·学习
吃个糖糖33 分钟前
35 Opencv 亚像素角点检测
人工智能·opencv·计算机视觉
qq_529025291 小时前
Torch.gather
python·深度学习·机器学习
IT古董1 小时前
【漫话机器学习系列】017.大O算法(Big-O Notation)
人工智能·机器学习
凯哥是个大帅比1 小时前
人工智能ACA(五)--深度学习基础
人工智能·深度学习