Autoware.universe 高效学习第三章 -- 智驾技术务虚会之智驾技术栈讨论 其一

1 前言和资料

前两篇文章,我们为大家引入了 autoware.universe,并完成了环境搭建。本文我们不着急进行 autoware 算法模块的研究,而是跳出算法框架,从更宏观的视角对智驾进行一次讨论,可以视为一次“智驾技术务虚会”。本文主要讨论智驾有哪些技术栈,或者说技术方向。
本文参考资料如下:
(1)autowareclass Architectures

2 智驾技术栈分解

下面这张图就是智驾技术栈拓扑图,我们从下而上依次分析,大的技术方向主要分为五个:硬件技术栈(Hardware Stack),离线软件和数据技术栈(Off-Board Software and Data),方法论(Methodologies),板载软件(On-Board Software),产品(Product)。
在这里插入图片描述

2.1 硬件技术栈

在这里插入图片描述
(1)车辆(Vehicle):车辆方向基本就是汽车电子方向,主要涉及 can 信号控车,控的就是油门,刹车和转向系统,智驾所有的技术都是落地到这三处控制上。
(2)组件(Components):这块比较杂,涉及几个方向:
车载 ECU:为智驾提供算力,最有名的就是英伟达和地平线的芯片。
车联网:比如 OTA 远程升级,数据回传。
车载以太网:车内各种传感器和 ECU 之间需要一个车载以太网交换机进行数据通信。
数采机和数据存储:智驾数据是珍贵资源,而且数据量很大,一般会给研发车辆配置专门的数采机进行数据采集和临时存储。
(3)传感器(Sensors):自动驾驶之所以能实现,就是因为给汽车配置了很多传感器,可以让汽车感知道路情况,挨个分析一下:
GNSS:就是 GPS 和北斗,提供定位(精度米级),授时和导航,缺点是密闭空间会失效。
IMU:Inertial Measurement Unit,惯性测量单元,主要由加速度计(获取加速度),陀螺仪(获取角速度),磁力计(获取偏航角)组成,可以监测车辆自身的运动。
Lidar:激光雷达,通过发射激光束,扫描周围环境,获取点云。对黑暗环境优势明显,但比较贵,且对雨天,雾霾天效果不好。
Camera:摄像头,获取车周围影像,能得到颜色信息,可以看交通灯,价格便宜。
Radar:毫米波雷达,便宜好用,可以准确获取车辆周围较远物体的距离和速度(多普勒效应),且对环境的要求不高,雨天雾霾天也可用。对金属物体探测效果好,可以用来探测周边车和高速护栏。
补充:radar 的波长是毫米级,lidar 的波长是纳米,波长越长,越能穿过障碍物。

2.2 离线软件和数据技术栈

在这里插入图片描述
(1)高精地图(Maps):高精地图包含大量的驾驶辅助信息,最重要的是道路网的精确“三维表征”,比如红路灯,交通牌,车道,转向标识,因此高精地图提供了大量语义信息,能为各个算法模块提供数据支撑。
(2)制图(Mapping):关于高精地图制图,主要有五步:地图数据采集,地图数据处理,对象检测,手动验证和地图发布。
补充:由于地图涉及到大量的专业知识,本人了解不多,就不继续展开了。
(3)远程操作(Operations):主要是车队管理(智驾公司都有自己的车队),远程登陆(开发人员会远程登陆研发车进行调试),远程诊断(汽车诊断是一大块内容,各个故障都会被记录并回传,用于故障诊断)。
(4)数据处理(Data Processing):智驾数据也是一大块内容,包括智驾数据采集(量产车没有数采机,但也要进行数采),数据回放(一般是 rosbag 回放),数据标注,数据管理和分析。
(5)开发工具(Development tools):这里的开发工具指智驾软件开发工具,包括开发环境(主要是提供编译环境),可视化以及仿真(用于对开发的功能提供初步验证能力)。

2.3 方法论

在这里插入图片描述
(1)智驾产品人机交互设计(Design):包括用户体验,内外部人机交互设计(暂时不理解内外是如何区分的?)
(2)测试(Testing):由于智驾是一个大型软硬件系统,本身是分了很多层次的,因此验证系统的可靠性就需要多层测试,包括单元测试(函数级别),软件在环测试(基于模拟器),硬件在环测试(基于实际的硬件平台),车辆在环测试(实际车辆测试,一般有专门的测试场地),回归测试(每发版一次,就需要一轮整体测试)。
补充:关于测试理论,推荐《软件测试的艺术》这本书,学的非常好,而且不厚。
(3)功能安全(Functional safety):大家都知道汽车上的软硬件应该非常安全,毕竟人命关天。但是工程上就没有100%安全的事情,即使有,成本也是不可负担的。那么安全的边界在哪里呢?就在功能安全的标准 ISO 26262。车企按照这个标准搞,并完成合规验证,即使出了问题,也可以无责。
补充:关于功能安全更具体的讨论,我们会专门开一篇博客。

2.4 板载软件和产品

在这里插入图片描述
(1)操作系统(OS):包括系统内核,调度器,驱动。一般智驾会选择实时操作系统,比如 QNX,而桌面 Linux,Windows 并不符合这个要求。
补充:关于智驾实时性的讨论,后面会专门开一篇博客讨论。
(2)框架软件(Framework Software):最典型的就是通信中间件,比如 ros。还有各种硬件抽象层软件,各种基础库,比如 opencv,pcl 等。还有故障诊断相关的代码,一般以库的形式提供,由各模块调用。
(3)算法软件(Algorithmic Software):一般我们说搞智驾,默认就是搞算法,其实这只是一小部分而已,但这也是最关键的。正是由于算法的突破,才有了真正的自动驾驶。目前主流的算法还是分模块的,也就是:定位,感知(包括跟踪和预测动态物体),规划(包括导航和规则两层),控制。
补充:目前智驾端到端大模型越来越火,但 autoware 还未采纳,本系列博客仍然按模块进行算法研究。
(4)集成和发版:由于智驾是一个很大的软硬件系统,各层次各模块独立开发,因此智驾行业有一个很重要的岗位,就是集成和发版。专业的集成人员,能把一堆零散开发的功能汇聚成一个有效的智驾产品,如高架行车,城区行车,泊车等,并保证产品质量。这要求集成人员对整个智驾系统有足够的了解,有足够的经验积累(踩坑经验)。

3 总结

文中有理解不到位的,期待读者指正,大家共同进步。

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-10 11:36:05       4 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-10 11:36:05       5 阅读
  3. 在Django里面运行非项目文件

    2024-07-10 11:36:05       4 阅读
  4. Python语言-面向对象

    2024-07-10 11:36:05       4 阅读

热门阅读

  1. FPGA之术语

    2024-07-10 11:36:05       7 阅读
  2. 【Axure视频教程】页面滚动距离函数

    2024-07-10 11:36:05       5 阅读
  3. 如何判断服务器是否被攻击

    2024-07-10 11:36:05       10 阅读
  4. 网络服务器都包含哪些方面需要维护?

    2024-07-10 11:36:05       8 阅读
  5. 定制化正则化:在Mojo模型中动态应用自定义方法

    2024-07-10 11:36:05       11 阅读
  6. 稀疏之美:在Mojo模型中实现特征的稀疏表示

    2024-07-10 11:36:05       11 阅读
  7. AI开发者的编程语言Mojo:入门指南

    2024-07-10 11:36:05       11 阅读
  8. 跨语言的智能:在多种编程环境中部署Mojo模型

    2024-07-10 11:36:05       10 阅读
  9. Mojo编程语言详细介绍

    2024-07-10 11:36:05       11 阅读
  10. 掌握MOJO命令行:参数解析的艺术

    2024-07-10 11:36:05       12 阅读
  11. 运营商二三要素是什么?有什么意义

    2024-07-10 11:36:05       8 阅读