详细解析记忆泊车的顶层技术原理

news2024/11/15 9:14:56

详细解析记忆泊车的顶层技术原理

image

附赠自动驾驶学习资料和量产经验:链接

相对于记忆行车而言,记忆泊车 MPA(Memory Parking Assist)可以看成是停车场区域内的一个自动驾驶功能,可帮助用户按记忆的路线自动巡航并泊入车位或自动从车位泊出并巡航至泊出点。如下图表示了记忆行车和记忆泊车在整个工作环境中的场景示意图。

image

通常情况下,考虑到记忆泊车实际是一种低速自动驾驶控制过程,因此需要在记忆泊车过程中设置一定的设计运行范围才能保证其记忆建图和行驶控制具备可行性。比如,从控制逻辑上讲在记忆泊车控制中如果遇到前方障碍物的情况,对于记忆行车而言,通常是采用刹车避障的方式进行障碍物躲避。而记忆泊车则是通过转向绕行的方式进行障碍物躲避,从这一点上讲也是记忆泊车相对于记忆行车来说十分不一样的地方。此外,从整个静态ODD上看,我们的记忆行车通常是不需要考虑太多的极端的要素的。只要不是传感器本身的限制和遮挡都可以确保记忆行车控制的可行性。哪怕是类似内部道路、施工路段这类场景也可以不必作为ODD范围外需要考虑的要素,因为系统会根据识别的结果进行适时更新,但匹配上记忆行车的行驶路径方案相对比较单一。

记忆泊车技术设计要素

自动记忆泊车是车辆自动驾驶技术的重要应用。相关技术中,为了实现自动记忆泊车,一般需要先生成泊车地图,泊车地图一般包括停车路线和停车位。根据生成的泊车地图,车辆可以自动按照停车路线行驶并停入对应的停车位,从而实现自动记忆泊车。

记忆泊车的六个主要子功能包含记忆建图、智能泊入、沿途车位识别、智能泊出、运行过程中故障处理、动静态障碍物处理、视频监控等。

其功能核心主要是在使用智能泊入及智能泊出前利用泊车(环视摄像头)或部分行车传感器(前视摄像头)进行记忆泊车的局部地图绘制,提前学习并建立智能泊入和智能泊出的路线地图。建图完成后,用户需要使用所建立的地图驱动整个智能泊入、低速巡航及智能泊出控制。且整个过程中,用户无需手动控制车辆,但不能离开座位,整个泊车过程需要用户监控系统的运行状态,必要时可对车辆实施制动或转向以接管车辆。如下图表示了整个记忆泊车所涵盖的功能范围示意图。

image

而对于记忆泊车功能而言,由于考虑到传感器识别能力、系统控制能力等因素,通常是需要制定比较严格的ODD适用范围,并且整个控制过程中,驾驶员对于整车控制是可以随时介入的。如下图列举了几个关键的ODD要素。

image

和记忆泊车系统类似,记忆行车实际上是一种针对宿主车辆中预先记录的轨迹进行智能辅助驾驶的控制过程。整个过程实际是包含低速巡航和辅助泊车的过程场景。智能泊车控制过程在最后一定的时间通常是允许用户下车,通过手机短程遥控车辆过自动泊入车位的,这一过程需要从遥控泊车模块调动相应的控制过程。

image

整个记忆泊车的软件架构数据流图表示如下:

image

以典型的泊车算法处理芯片为例,整个记忆泊车处理流程分为两条主线:环视摄像头输入的数据通过TDA4上的VPAC模块进行ISP处理后,可以分两步进行分流,其中一路是通过C66模块中的两个DSP核分别进行前处理和后处理,同时C7x/MMA上完成神经网络的实时处理。

泊车建图与重定位原理

数据采集阶段通过对整个停车场进行分层全方位数据采集,并将建图所需的前视视频、环视视频上传至数据管理中心,通过泊车质检标注系统进行预处理生成相应的时间戳信息、定位信息、传感器标定信息,并结合先前预置地图信息PreMap(该预置地图信息可以是由其他车型采集生成后由本车通过云端下载)生成两套不同的感知模型信息。随即生成的摄像头模型数据信息和超声波识别模型信息(分别为泊车轨迹信息和车位识别信息),随后进行数据后处理(对所有传感器进行时间同步、不同物体进行物体关联、泊车轨迹融合修正、车位识别修正等)。最后将生成的数据输入地图模型进行有效的数据训练。

image

其中,在泊车建图过程中通常需要云端通过预设的置信度算法对所建立的地图预设置信度,在泊车激活试用阶段,通过将符合预设置信度的泊车地图直接下发至车端,使车端可以直接根据泊车地图进行自动记忆泊车。这里需要说明的是,预设泊车地图置信度的算法实际是通过人工质检的方式进行筛选和设置(又称质检),对置信度的程度进行有效的编号。这类质检过程实际类似于BEV建图过程中的真值标注一样,如果待质检的泊车地图的数量较多,由人工对每一份泊车地图进行质检将产生大量的人力成本,同时影响质检效率。因此,考虑自动化的质检方式也显得比较重要。如上图所示表示了整个记忆泊车建图至图像质检的整个过程。

如下图表示的是一种典型的泊车建图与重定位的示意图。其中输入端包含4枚环视感知的摄像头,在建图阶段,考虑了多个环视摄像头之间可能产生深度点云可以对其进行距离估计,并将对应的建图和位置进行优化。其生成的轨迹进行存储,并把相应的接口暴露出来供其他模块调用。此外,该四个环视视频将作为整个建图的特征提取输入,通过云端接口下载已生成的地图数据,匹配到被训练过的建图轨迹,并进行有效的重定位、且查询到当前位置并调整整个车身姿态。最后,通过车辆轨迹规划和控制单元进行整车控制响应。

image

注意,对于这里所建立的地图并非高精地图,也非导航地图。当然泊车建图的距离相对于行车来说是小很多,因为这类路径需要包含的信息量还是比较大的,且不同车位、泊入泊出过程都需要同步建立不同的地图。地图信息需要重点包括如下一些信息:

**①车道标志信息:**车辆运行轨迹信息(如x、y、z坐标),车位信息(四个角点x,y,z坐标)这里的Z轴信息主要是指跨层之间的信息。此外还有一些停车场的路标信息:如路口、柱子、减速带、坡道;

**②车辆定位特征信息:**建图起始点和终点GPS信息;

**③停车位确认和新增停车位的植入信息:**即目标车位以及行驶到目标车位中间可能检测到的对应车位。

泊车地图存储和管理

与记忆行车存储方式类似,记忆泊车的存储单元也是位于智能驾驶域控制器中,可以在划定的EMMC中,且整个地图存储过程是在用户完成建图后自动触发存储。地图可以同步选择存储在云端,如果考虑车车互联,该地图也可以作为联网其他车辆的的泊车地图。当网络信号良好的情况下,且自车通过定位到自身处于对应的停车场时,便可以启动后台下载程序控制车辆优先从云端下载地图,生产和存储。

之前提到,地图建立过程中是需要对地图的张数限制最大值的。那么超过最大值的情况就需要向前进行地图覆盖。

建图过程不能均保证建图成功,当建图失败时,该地图路线将不能用于泊车控制,这是需要从后台启动日志记录功能,将建图失败的原因进行详细记录。同时,系统前台需要通过HMI提示用户建图失败。

记忆泊车工作流程原理

为实现智能泊入和智能泊出功能,用户需先在停车场内驾驶车辆进行智能泊入和智能泊出路线学习,智驾车后台系统存储对应记忆的地图路线。

整个建图过程中通常需要对泊入路线、泊出路线、最大允许的倒车距离提出相应的建图要求。比如泊入过程建图时,需要考虑整个停车场支持从不同的停车入口进入,且均可以建立不同泊车路线的地图。而泊出过程则需要支持统一停车场的不同车位建图。这个过程需要考虑统一停车场内对不同停车位作为起点均可建立一张泊车路线图。

image

整个泊车流程说明如下:

**Step1:**智驾车辆驶入停车场内,通过车机系统激活泊车类型(按键/语音)为泊入;

Step2:车机系统需要显示记忆泊车功能界面,用户需要根据提示手动驾驶车辆前往目标车位;

**Step3:**到达目标车位附近后,用户可以直接拨入车位,并挂入P档。也可以在车机系统上点击确认识别到车位;

**Step4:**控制车辆泊入后,系统通过后台自动验图并保存对应所建立的地图数据;

**Step5:**建图成功后,如果驾驶员继续选择泊车召唤建图,则进入Step7泊出建图流程。否则,此次建图结束;

**Step6:**接收到驾驶员输入的建图类型为泊出请求时,驾驶员可以手动驾驶汽车前往泊出点;此时系统确认完驾驶员此次泊出过程结束时,系统后台生产并检验此地图数据。

这里需要注意的是,智能泊入和泊出需要分开建立不同的两张图,泊入和泊出地图会由一个属性相互关联。建图过程需满足建图距离、车速、以及建图算法匹配的要求。通常单程(泊入或泊出)建图距离不超过一定值(比如2km),建图过程中车机系统可以实时的显示建图距离,并适时的提醒驾驶员。此外,如果考虑建图的有效性和性能,通常也对驾驶速度有一定要求(一般小于20kph),如果长期超速超过一定的时间阈值,则提示驾驶员超速退出。并且,根据不同的车位信息可以触发建立不同的地图,这样的地图数量实际上是有一定的要求的。比如最多可以存储10张地图用于标识10个车位信息。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1551764.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Kubernetes 知识体系 系列一

多年前,大多数软件应用程序都是大型的单体,要么作为单个进程运行,要么作为少数服务器上的少量进程运行。这种过时的系统一直延续很久。 它们的发布周期较慢,更新相对较少。 在每个发布周期结束时,开发人员将整个系统…

第三十二天-PythonWeb主流框架-Django框架

目录 1.介绍 发展历史 介绍 2.使用 1.安装 2.创建项目 3.项目结构 4.启动 3.开发流程 1.设置ip可访问 2.创建模块 3.第一个页面 4.视图 5.include()参数 6.url与视图的关系 7.响应内容 4.视图处理业务逻辑 1.响应html 2.获取url参数 3.从文件响应html内容 …

一招让你的薪水暴增,每个程序员都应该学会跟老板提加薪

为什么要学会薪资谈判? 在最近的一篇文章中,职业专家奥斯汀贝尔卡克 (Austin Belcak ) 解释了进行一点薪资谈判如何对您的长期收入产生巨大影响。 这是奥斯汀在他的薪资谈判示例中描绘的场景: Amari 和 Taylor 的年薪均为 50,000 美元 未来…

Java实现猜数字游戏:编程入门之旅

博主猫头虎的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接: 🔗 精选专栏: 《面试题大全》 — 面试准备的宝典!《IDEA开发秘籍》 — 提升你的IDEA技能!《100天精通鸿蒙》 …

C 指向指针的指针

指向指针的指针是一种多级间接寻址的形式,或者说是一个指针链。通常,一个指针包含一个变量的地址。当我们定义一个指向指针的指针时,第一个指针包含了第二个指针的地址,第二个指针指向包含实际值的位置。 一个指向指针的指针变量…

MySQL | 事务

目录 1. 前言 2. 什么是事务? 3. 为什么出现事物? 4. 事物的版本支持 4.1. 事务提交方式 5. 事务常见操作方式 6. 事务隔离级别 6.1. 隔离级别 6.2. 查看与设置隔离性 6.2.1. 查看 6.2.2. 设置 6.3. 读未提交[Read Uncommitted] 6.4. 读提交…

uniapp 苹果支付内购示例代码

// #ifdef APPasync init() {uni.showLoading({title: 检测支付环境...});try {// 初始化,获取iap支付通道await this._iap.init();// 从苹果服务器获取产品列表this.productList await this._iap.getProduct();this.productList[0].checked true;this.productId …

图像识别与智能画家的本质区别?

图像识别和智能画家在本质上有一些区别: 1. **图像识别**:图像识别是一种人工智能技术,通过对图像进行分析和识别,识别图像中的对象、场景或模式。图像识别技术通常用于识别、分类和标记图像,帮助计算机理解图像内容。…

【Flask开发实战】安装mysql数据库与配置连接

1、安装mysql 通过yum方式安装MySQL服务器: sudo yum install mysql-server 在安装过程中,系统可能会要求确认安装。按下Y键并按回车键继续。 安装完成后,MySQL服务器应已自动启动。可以使用以下命令查看和启动MySQL服务: sudo…

每日一题 --- 有效的字母异位词[力扣][Go]

有效的字母异位词 题目:242. 有效的字母异位词 给定两个字符串 *s* 和 *t* ,编写一个函数来判断 *t* 是否是 *s* 的字母异位词。 **注意:**若 *s* 和 *t* 中每个字符出现的次数都相同,则称 *s* 和 *t* 互为字母异位词。 示例 …

基于java实现学科竞赛管理系统【Springboot+mybatis+layui】

基于java实现学科竞赛管理系统【Springbootmybatislayui】 博主介绍:多年java开发经验,专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 央顺技术团队 Java毕设项目精品实战案例《1000套》 欢迎点赞 收藏 ⭐留言 文…

脱敏技术!!!

什么是数据脱敏??? 数据脱敏(Data Masking)是一种数据安全技术,旨在通过预先设定的规则和算法,对原始数据中包含的敏感信息进行变形处理,使得这些信息在非生产环境(例如…

​AI大模型学习:优化结构与算法,赋能智能未来

在当前技术环境下,AI大模型学习不仅要求研究者具备深厚的数学基础和编程能力,还需要对特定领域的业务场景有深入的了解。通过不断优化模型结构和算法,AI大模型学习能够不断提升模型的准确性和效率,为人类生活和工作带来更多便利。…

Git的原理和使用(四):理解分布式版本控制系统与远程仓库的相关配置

目录 远程操作 理解分布式版本控制系统 远程仓库 新建远程仓库 克隆远程仓库 向远程仓库推送 拉取远程仓库 配置Git 忽略特殊文件 为命令配置别名 标签管理 理解标签 创建标签 操作标签 远程操作 理解分布式版本控制系统 1、每个人的电脑都是一个完整的版本库&…

JavaEE之网络初识(网络中的一些基本概念)详解

😽博主CSDN主页: 小源_😽 🖋️个人专栏: JavaEE 😀努力追逐大佬们的步伐~ 目录 1. 前言 2. 网络中的一些基本概念 2.1 IP地址 2.2 端口号 2.3 网络协议 2.4 协议分层 2.5 封装 2.6 分用 (封装的逆向过程) 2.7 客户端 vs …

hcia datacom课程学习(4):ICMP与ping命令

1.什么是ICMP ICMP是ip协议的一部分,常用的ping命令就是基于icmp协议的。 在防火墙策略中也能看到ICMP,如果将其禁用,那么其他主机就ping不通该主机了 2. ICMP数据报 2.1数据报构成 ICMP协议的报文包含在IP数据报的数据部分, …

用Unity3D实现简单的RPG游戏

文章目录 开发流程及关键要素说明**1. **环境设置与项目创建******2. **场景搭建******3. **角色控制******4. **用户输入处理******5. **敌人与战斗系统******6. **物品与装备系统******7. **任务与对话系统******8. **UI与菜单系统******9. **保存与加载系统******10. **测试…

动态内存管理(重要)

目录 1.为什么要有动态内存分配 2.malloc和free 2.1 malloc 2.2 free 3. calloc和realloc 3.1 calloc 3.2 realloc 4.常见的动态内存的错误 4.1对NULL指针的解引用操作 4.2对动态开辟空间的越界访问 4.3对非动态开辟内存使用free释放 4.4使用free释放一块动态开辟内…

rtt的io设备框架面向对象学习-硬件定时器设备

目录 1.硬件定时器设备类对象图全貌2.stm32硬件定时器设备类及其构造函数3 硬件定时器设备基类及其构造函数4 设备基类及其构造函数5.总结6.内部调用流程7.应用程序使用流程 1.硬件定时器设备类对象图全貌 设备驱动层的硬件定时器类是实现类,是需要各个BSP实现的。其…

《数据结构学习笔记---第五篇》---链表OJ练习下

step1:思路分析 1.实现复制,且是两个独立的复制,我们必须要理清指针之间的逻辑,注意random的新指针要链接到复制体的后面。 2.我们先完成对于结点的复制,并将复制后的结点放在原节点的后面,并链接。 3.完成random结点…