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

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

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.mzph.cn/news/777190.shtml

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

相关文章

C#全新一代医院手术麻醉系统围术期全流程源码

目录 一、麻醉学科的起源 二、麻醉前访视与评估记录单 患者基本信息 临床诊断 患者重要器官功能及疾病情况 病人体格情况分级 手术麻醉风险评估 拟施麻醉方法及辅助措施 其他需要说明的情况 访视麻醉医师签名 访视时间 与麻醉相关的检查结果 三、手术麻醉信息系统…

韩顺平Java | C21网络编程

1 网络的相关概念 ip地址的组成:网络地址 主机地址 A类:0 ~ 2^7-1 0 ~ 127 B类:128 ~ 1282^6-1 128 ~ 191 C类:192 ~ 1922^5-1 192 ~ 223 D类:224 ~ 2242^4-1 224 ~ 239 E类:240 ~ 2402^3-1 240 ~ 2…

react-router v6的Link组件relative属性解释

Link组件有一个名为relative的属性,值为route或path,默认为route 当Link的to为两个点时,配置relativeroute|path会有不同的效果, 之前由于路径嵌套不够深,看不出区别,于是尝试加深路径,一眼就看出了区别 官方解释 | React Router6 中文文档 下方代码请看根路径/cd及其二级路…

爱上数据结构:顺序表和链表

一、线性表 线性表(linear list)是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使 用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串... 线性表在逻辑上是线性结构,也就说是连续的一条…

Linux第84步_了解Linux中断及其函数

1、中断号 中断号又称中断线&#xff0c;每个中断都有一个中断号&#xff0c;通过中断号即可区分不同的中断。 2、Linux中断API函数 需要包含头文件“#include <linux/interrupt.h>” 1)、在使用某个中断功能的时候&#xff0c;需要执行“申请中断” int request_irq(…

java注解的实现原理

首先我们常用的注解是通过元注解去编写的&#xff0c; 比如&#xff1a; 元注解有Target 用来限定目标注解所能标注的java结构&#xff0c;比如标注方法&#xff0c;标注类&#xff1b; Retention则用来标注当前注解的生命周期&#xff1b;比如source&#xff0c;class&…

2024最全的Sora学习资料合集

2024最全的Sora学习资料合集&#xff0c;共5专题、30份资料。 点击前往星球下载地址&#xff08;文末领取优惠券&#xff09;&#xff1a;https://t.zsxq.com/186rJ8iZL 1、Sora专属提示词库 2、Sora专属教程 3、Sora学习文章 4、Sora提示词技巧 5、Sora-AI视频全网最全收集(…

Pycharm服务器配置python解释器并结合内网穿透实现公网远程开发

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

spring boot3自定义注解+拦截器+Redis实现高并发接口限流

⛰️个人主页: 蒾酒 &#x1f525;系列专栏&#xff1a;《spring boot实战》 &#x1f30a;山高路远&#xff0c;行路漫漫&#xff0c;终有归途 目录 写在前面 内容简介 实现思路 实现步骤 1.自定义限流注解 2.编写限流拦截器 3.注册拦截器 4.接口限流测试 写在前…

外包干了8天,技术退步明显.......

先说一下自己的情况&#xff0c;大专生&#xff0c;19年通过校招进入杭州某软件公司&#xff0c;干了接近4年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落! 而我已经在一个企业干了四年的功能测…

Redis命令介绍

一、redis启动&#xff1a; 本地启动&#xff1a;redis-cli 远程启动&#xff1a;redis-cli -h host -p port -a password Redis 连接命令 1 AUTH password 验证密码是否正确 2 ECHO message 打印字符串 3 PING 查看服务是否运行 4 QUIT 关闭当前连接 5 SELECT index 切换…

JUC内容概述

复习概念 Sleep和Wait的区别 Sleep是Thread的静态方法&#xff0c;wait是Object的方法&#xff0c;任何对象实例都可以使用sleep不会释放锁&#xff0c;他也不需要占用锁&#xff0c;暂停。wait会释放锁&#xff0c;但是调用他的前提是线程占有锁他们都可以被Interrupted方法…

SQLite数据库文件损坏的可能几种情况(一)

返回&#xff1a;SQLite—系列文章目录 上一篇&#xff1a;SQLiteC/C接口详细介绍sqlite3_stmt类&#xff08;十三&#xff09; 下一篇&#xff1a;SQLite使用的临时文件&#xff08;二&#xff09; 概述 SQLite数据库具有很强的抗损坏能力。如果应用程序崩溃&#xff0c…

鸿蒙hdc使用指导

简介 hdc&#xff08;HarmonyOS Device Connector&#xff09;是HarmonyOS为开发人员提供的用于调试的命令行工具&#xff0c;通过该工具可以在windows/linux/mac系统上与真实设备或者模拟器进行交互。 环境准备 hdc工具通过HarmonyOS SDK获取&#xff0c;存放于SDK的toolch…

2024-3-28 市场情绪强修复

这一轮退潮负反馈都修复了&#xff0c; 艾艾精工 博信股份 安奈尔 永悦科技 大理药业 &#xff0c;高新发展 也补跌了&#xff0c;收尸队也干活了&#xff0c;情绪不修复不接力得最好写照。这轮周期 宁科生物 已经7板&#xff0c;已经追平了 博信股份7板&#xff0c;看明天溢…

Mac安装minio

Mac安装minio 本文介绍使用 mac 安装 MinIO。 所有软件安装优先参考官网&#xff1a;MinIO Object Storage for MacOS — MinIO Object Storage for MacOS #使用 brew 安装 minio brew install minio/stable/minio#找到 minio tong ~ $ brew list minio /opt/homebrew/Cella…

银行监管报送系统介绍(十二):非居民金融账户涉税信息报送

国家税务总局、财政部、中国人民银行、中国银行业监督管理委员会、中国证券监督管理委员会、国家金融监督管理总局2017年5月9日发布、2017年7月1日起施行的《非居民金融账户涉税信息尽职调查管理办法》。 一、《管理办法》出台的背景是什么&#xff1f;   受二十国集团&…

【unity】如何汉化unity Hub

相信大家下载安装unity后看着满操作栏的英文&#xff0c;英文不好的小伙伴们会一头雾水。但是没关系你要记住你要怎么高速运转的机器进入中国&#xff0c;请记住我给出的原理&#xff0c;不懂不代表不会用啊。现在我们就来把编译器给进行汉化。 第一步&#xff1a;我们打开Uni…

【VTKExamples::Points】第十一期 RadiusOutlierRemoval

很高兴在雪易的CSDN遇见你 VTK技术爱好者 QQ:870202403 公众号:VTK忠粉 前言 本文分享VTK样例RadiusOutlierRemoval,并解析接口vtkRadiusOutlierRemoval,希望对各位小伙伴有所帮助! 感谢各位小伙伴的点赞+关注,小易会继续努力分享,一起进步! 你的点赞就是我的…

【消息队列开发】 实现 MqClientTests 类——测试客户端

文章目录 &#x1f343;前言&#x1f333;所需属性&#x1f334;BeforeEach&#x1f332;AfterEach&#x1f38d;API测试⭕总结 &#x1f343;前言 本次开发任务 测试客户端接口 &#x1f333;所需属性 所需要一共三个属性 BrokerServer&#xff1a;服务器 ConnectionFa…