|
阿波罗(Apollo)是一个开放、完整、安全的自动驾驶平台。
|
|
它旨在帮助汽车行业及自动驾驶领域的合作伙伴快速搭建自己的自动驾驶系统。
|
|
它的口号是开放能力、共享资源、加速创新、持续共赢。
|
Apollo需要在linux上运行,推荐使用Ubuntu Linux系统,最新的Apollo9.0版本支持Ubuntu18.04及以上版本。安装Ubuntu的步骤,参见官方安装指南。
同时,Apollo 依赖于 Docker 19.03+。安装 Docker 引擎,可通过Ubuntu终端指令实现:
- wgethttp://apollo-pkg-beta.bj.bcebos.com/docker_install.sh
- bash docker_install.sh
这个过程可能会运行多次脚本,根据脚本提示执行即可。
显卡驱动和CUDA版本兼容性:由于nvidia的硬件更新的很快,因此会遇到显卡驱动和CUDA版本不兼容的情况。以上图片所呈现的为能够稳定运行Apollo的驱动版本。
安装完毕后,可以通过nvidia-smi指令来检查驱动是否安装成功,如果一切正常,可以看到类似以下的提示。
完成以上步骤,恭喜你完成了条件准备,接下来你就可以正式安装Apollo啦。为此,官方为我们提供了详细的安装方法:
https://apollo.baidu.com/community/Apollo-Homepage-Document
如果你最终成功打开如上页面,说明你已经完成了Apollo的安装。
Apollo提供的可视化平台:
可以直观反映车辆运行情况。
同时,该平台提供了丰富的数据包,包含汽车行驶过程中可能遇到的各种场景。
Dreamview+提供的车辆监测功能:
可以直观反映车辆运行数据。
展示了 Planning、Control 模块相关的数据曲线。直观观测到车辆行进中,计划加速度、速度、路线和实际加速度、速度、路线的差别,有助于分析算法的不足。
终端运行cyber_monitor:
Apollo通过cyber节点实现数据传输,通过cyber_monitor可以实时监测不同模块的数据传输情况,掌控模块的工作状况。
Dreamview+提供了SimControl模式:
Sim_control通过模拟Localization、Perception等信息输入,实现对routing、planning等算法模块的仿真调试。用户可以在工作台中自定义汽车行驶场景集(地图、障碍物、起点,终点)。
Apollo 自动驾驶应用层提供了感知、预测、规划、控制、人机交互等数个核心模块。这些模块之间的交互关系如下图所示:
注:橘色箭头线段代表数据流向,黑色箭头线段代表处理流程流向
Planning模块根据上游模块输入的感知周围环境信息,地图定位导航信息,以及全局路径信息,为自动驾驶车辆规划出一条运动轨迹(包含坐标,速度,加速度,jerk加加速度,时间等信息),然后将这些信息传递给控制模块。
Control模块由control组件包和controller控制器包组成,control组件包是control模块的基础组件,包含control的整体架构和流程。control根据上游模块输入planning模块的期望轨迹信息,定位模块的当前定位信息,车辆底盘及车身状态信息,通过不同的控制算法计算控制车辆的指令(包含转向、油门、刹车等)输出给canbus模块,为自动驾驶车辆提供舒适的驾驶体验。
Canbus模块的功能是实现与底盘线控CAN信号的通信,与底盘通信的信息包含4个部分:接收并解析底盘CAN总线数据,获取车辆的信息(如车辆速度、档位、方向盘转角、运行状态、安全等信息);发送并控制底盘的CAN总线数据,接收控制模块指令,将控制指令解析成底盘CAN总线数据,发送至车辆进行执行控制;执行底盘交互逻辑,使能或退出自动驾驶;进行底盘故障监控,对底盘故障或接管等情况进行监控。
相机模块包括多种纯视觉感知算法,包括环视bev算法、多阶段2d检测及3d姿态回归算法、单阶段算法。
红绿灯模块主要分为四个部分:预处理、检测、识别和追踪。预处理阶段用于查询定位和地图信号灯信息,选择检测红绿灯的摄像头根据信号光在像平面上的投影,保存相机选择结果输出给检测阶段使用。
毫米波模块主要负责读取毫米波雷达的驱动输出信息,对毫米波硬件输出的目标级数据进行处理,包括目标跟踪、ROI过滤等,输出跟踪后的目标级障碍物,可以单独输出也可以输入到多传感器融合模块。
4D毫米波模块主要负责读取4D毫米波雷达的驱动输出信息,即4D毫米波雷达输出的点云数据。
预测模块是Apollo自动驾驶系统的重要组成部分,负责预测感知输出的障碍物未来的运动轨迹。
轨迹预测的上游模块是感知,定位,场景,地图,规划模块,预测模块通过消息队列进行数据和信息的获取。
预测模块的下游模块是规划模块。预测内部有容器(Container),场景(Scenario)、评估器(Evaluator)和预测器(Predictor)等子模块。在容器内,获取相关模块的消息后,需要对各个模块的消息进行加工,feature.proto中定义了预测模块需要完成的数据结构;在评估器(Evaluator)和预测器(Predictor)中是行为/轨迹预测的pipline,通过各种神经网络(Vectornet、Semantic LSTM、RNN、MLP等)对障碍物未来行为和轨迹进行预测,输出障碍物未来N秒的轨迹点。
定位模块是Apollo自动驾驶系统的重要组成部分,它负责在车辆行驶过程中对车辆的位置、速度和方向进行精确的测量和估计。它包含3种定位方式:RTK定位、NDT定位和MSF定位,其中MSF定位通过融合GPS、IMU、激光雷达、摄像头等多种传感器的数据,实现了车辆的高精度定位和轨迹估计。
或许,自动驾驶不是我们的学习方向。但是,自动驾驶的时代已然到来。Apollo作为我国代表性的自动驾驶开发平台,学习Apollo相关知识,有助于我们了解自动驾驶技术的发展现状,把握时代脉络。同时,它也为我们提供了生涯和职业规划的另一种可能。
到此这篇cruise2014安装教程(cruise2015安装教程)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/rfx/59991.html