apollo介绍(一)
2022-08-19 12:4522347150
apollo是百度的自动驾驶开源框架,根据自动驾驶的功能划分为不同的模块,下面会根据目录结构和功能模块分别介绍和学习 apollo模块。下面主要对apollo学习过程中做下笔记,如果有错误或者补充,欢迎指正。
目录结构
cyber 消息中间件,替换ros作为消息层docker 容器相关docs 文档相关modules 自动驾驶模块,主要的定位,预测,感知,规划都在这里calibration 校准,主要用于传感器坐标的校准,用于感知模块做传感器融合canbus 通讯总线,工业领域的标准总线,鉴于工业界的保守,我估计后面会有新的总线来取代commoncontribcontrol 控制模块,根据planning生成的路径对车辆轨迹进行控制,再底层就是发送命令到can总线,实现车辆的控制。data 地图等生成好的数据放在这里(其他数据待补充)dreamview 仿真,能够对自动驾驶过程中的数据进行回放,其他厂家也有推出一些仿真平台,后面有机会再介绍下drivers 雷达,lidar,GPS, canbus,camera等驱动guardian 监护程序?localization 定位,获取汽车的当前位置map 地图模块monitor 监控模块,主要是监控汽车状态,并且记录,用于故障定位,健康检查等perception 感知,获取汽车当前的环境,行人,车辆,红绿灯等,给planning模块规划线路planning 规划,针对感知到的情况,对路径做规划,短期规划,只规划100-200M的距离,生成好的路径给control模块prediction 预测,属于感知模块,对运动物体的轨迹做预测routing 导航线路,就是百度地图上查询2点之间的线路,生成的线路短期规划还是planning模块third_party_perception 第三方感知模块tools 工具,这里面的工具倒是很多,后面再详细介绍下transform 转换,主要是?v2x 顾名思义就vehicle-to-everything,其希望实现车辆与一切可能影响车辆的实体实现信息交互,目的是减少事故发生,减缓交通拥堵,降低环境污染以及提供其他信息服务.scripts 脚本third_party 第三方库tools 工具目录,基本就是个空目录
编译
apollo采用的是bazel来进行编译,因为我对JAVA的maven比较熟,因此对maven的包管理的功能觉得特别好用,第一能解决包自动下载,第二解决依赖传递的问题,第三解决了编译的问题。也就是说你只要引用对应的包,就可以把包的依赖全部解决。
而bazel就是c++对应的编译管理,bazel主要是通过WORKSPACE和BUILD文件来进行编译。
来自专栏
Apollo入门与探索查看专栏 >
原创声明,本文由作者授权发布于Apollo开发者社区,未经许可,不得转载。
发表评论已发表 0 条评论
登录后可评论,请前往 登录
暂无评论~快去发表自己的独特见解吧!
目录
目录结构
编译