当前位置: 首页 > news >正文

自动驾驶代客泊车AVP巡航规划详细设计

目 录

巡航规划详细设计... 1

修改记录... 2

目 录... 3

1 背景... 5

2 系统环境... 6

2.1 巡航规划与其它模块联系... 6

2.2 巡航规划接口说明... 6

3 规划模块设计... 9

3.1 巡航规划架构图... 9

3.2 预处理... 10

3.3 Planner. 10

3.3.1 Geometry planner. 10

3.3.1.1 环境信息更新... 10

3.3.1.2 路径规划... 14

3.3.1.3 速度规划... 20

3.3.2 其他规划器... 23

3.4 后处理... 23

4 要点及风险评估... 23

5 设计评审意见... 24

6 参考资料... 24

  1. 背景

       随着产品的升级迭代,对算法的泛化能力和指标都提出了新的需求。一方面后续需要低成本迁移不同停车场,可能面临更多的人流车流、更多的场景(如双车道、不同弯道、道路情况、不同车库层数等),因此对当前模块的工程通用性和算法的泛化能力都有更高的需求;另一方面,基于降成本以及后续性能及产品效果提升的需求,对当前算法的资源占用、效果指标等也也会有更的要求。

       当前算法模块主要有以下问题。首先是算法架构的可扩展性存在较大的局限。当前算法主要基于matlab/simulink平台开发,没有通用的工程框架,添加新算法或者更新算法非常困难,而且适配其他模块及工具繁琐且工作量巨大、无法做深层次性能优化。其次是当前框架未能较好利用现有开源生态及借鉴别人的工作。Matlab是商业软件,其生态尤其自动驾驶方面的生态较apollo等开源生态有明显的差距,而且部分重要的组件(如图形计算等)无法进行代码生成,导致当前开发经常需要重复造轮子,工作处于一种闭门造车的状态,效率低下。最后是当前算法通用性不够强。当前算法对场景和逻辑等抽象不够,很多场景基于经验公式开发,对于特定的场景使用特定的策略,后续泛化困难。

       当前设计的主要目标是借鉴apollo开源框架进行重构。一方面变更开发语言,使模块能够进行性能的深度调优,并有效地借鉴开源的成果提高效率;另一方面构建统一的工程框架,提升模块的工程通用性,以支撑后续的开发和算法升级;最后,通过将接口与算法与主流平台对齐,后续算法可以逐步更换以提高泛化能力和效果指标。

  1. 系统环境
    1. 巡航规划与其它模块联系

巡航规划主要根据决策状态机、处理过的引导线、边界信息等及底盘的反馈信号,综合对不同场景(如直行、转弯、道闸口等)的处理、对直行及绕障等模式的处理、对路径和速度的生成和优化,最终输出一条轨迹参考线发给控制,进而决定整车运动路径及速度。

    1. 巡航规划接口说明

根据规划的功能,其主要的输入信息应包含如下:

    • 地图及定位信息(目前版本算法主要放在边界信息接口内)
    • 感知障碍物信息(目前版本算法主要放在边界信息接口内)
    • 全局导航信息(目前版本算法主要放到引导线信息接口内)
    • 车身反馈信息(包含速度、加速度、档位等)
    • 预测信息(后续能力提升及泛化需要)
    • 交通规则信息(后续场景升级可能需要)

同时,规划的输出信息主要如下:

    • 规划轨迹(包含路径、速度两大类及衍生信息如曲率、加速度等信息)
    • 本模块的状态信息(主要是异常信息等,后续做产品化安全需要)

下面针对当前算法的接口进行具体说明:

       A)输入接口

            1、DEC  //决策信息(包含状态机、引导线、边界信息)

2、SMC   //车身反馈信息

2、PTP_trajectory_detail //规划的反馈信息(实际未使用)

3、PTP_out    //旧的规划输出接口(实际未使用)

4、PTP_trajectory_head   //规划的车头轨迹(实际未使用)

5、PTP_Inner_Monitor_out        //规划内部信息监控(实际未使用)

  1. 规划模块设计
    1. 巡航规划架构图

巡航规划模块架构图

如图所示,巡航规划模块的整体架构包含三个部分,预处理、规划器(planner)、后处理,其中规划器为主体模块。规划器为各种具体的规划算法的总称。当前的算法主要基于曲率几何推导,因此把其命名为geometry planner。其余为业内主流的一些规划算法,包括lattice、EM、openspace、RRT、reinforce等。下面针对每个模块做概要说明:

预处理:对planner所需的数据进行处理,主要对输入的数据降噪、去毛刺、转换为模块所需要的数据格式及单位转换等。

       Planner:根据地图定位信息、障碍物信息、决策状态机、车身反馈、导航信息等,进行综合考虑,同时结合如平稳、高效、资源占用少等指标,计算出一条优化的轨迹。考虑到模块的拓展性,会在当前算法的基础上根据场景的需求不断增加新算法,比如lattice、EM、openspace、RRT等,补充其能力。目前主要的算法为Geometry planner,主要原理如下:1、通过以当前位置,根据引导线跟随、绕行各障碍物的曲率结合人工驾驶经验,算出下一时刻的行驶曲率和速度。2、再根据下一时刻的曲率、速度等推导下一时刻的位置,并在此基础上重复计算驾驶行为。3、通过上述两个步骤的反复迭代,最终生成一条包含40个点的整体轨迹,并输出给下游。

       后处理:对当前模块的状态进行监控、对算法生成的轨迹等进行评价,同时支持手动调式模式,可以手动生成指定的轨迹输出给下游进行调试。

    1. 预处理(由框架处理)

滤波:针对底盘反馈的速度信号进行2阶滤波及限幅处理,使其降频到3hz左右(经验值),幅度限制在正负70以内,以免出现异常值。

信号转换:将方向盘转角转换为弧度表示,同时通过车速和方向盘转速双重验证,检测输入的方向盘信号是否有效。

    1. Planner
      1. Geometry planner
        1. 环境信息更新

主要包含如下功能:

1、根据之前计算出来的控制量,更新下一时刻的车辆位置信息,供计算后续控制量使用。

2、计算目标线与主车的相对位置,相对角度,供后续计算引导线跟随使用。

3、根据算法估计的状态,更新每一个轨迹点上边界线,障碍物边界等与车的相对位置,供后续计算避障使用。

          1. 车辆位置推算

(xt,yt)

(xt+1,yt+1)

x

y

计算在每个循环推算的时刻,车身的坐标及yaw角。是一种基于运动学的理想位姿迭代。计算关系如下式:

                         xt+1=xt+vx*dt*cosyawrate*dt

                         θt+1=θt+yawrate*dt

其中:vx

为车辆x方向速度,vy

为车辆y方向速度,dt为时间间隔,yawrate为角速度。

        在实际计算过程中,考虑了感知的延时和系统的延时对车辆姿态的影响,因此分别对两种延时进行估计,根据估计参数进行系统姿态延时估算,并将其作为当前初始值。

        另外,在车道线跟随的时候,有的时候可能并不需要车后轴中心在中心线上,尤其是转弯的时候,因此添加对原点位置的平移,使其更符合人的驾驶习惯。

        通过每个时刻计算得到的纵向速度、横向速度、角速度,由上式计算下一个时刻的位置。通过反复计算40次,得到40个时刻的车辆位置,输出到下游。

相关文章:

自动驾驶代客泊车AVP巡航规划详细设计

目 录 巡航规划详细设计... 1 修改记录... 2 目 录... 3 1 背景... 5 2 系统环境... 6 2.1 巡航规划与其它模块联系... 6 2.2 巡航规划接口说明... 6 3 规划模块设计... 9 3.1 巡航规划架构图... 9 3.2 预处理... 10 3.3 Planner. 10 3.3.1 Geometry planner. 10 …...

亚马逊云科技 re:Invent 2023 产品体验:亚马逊云科技产品应用实践 国赛选手带你看 Elasticache Serverless

抛砖引玉 讲一下作者背景,曾经参加过国内世界技能大赛云计算的选拔,那么在竞赛中包含两类,一类是架构类竞赛,另一类就是 TroubleShooting 竞赛,对应的分别为亚马逊云科技 GameDay 和亚马逊云科技 Jam,想必…...

Flink on K8S集群搭建及StreamPark平台安装

1.环境准备 1.1 介绍 在使用 Flink&Spark 时发现从编程模型, 启动配置到运维管理都有很多可以抽象共用的地方, 目前streampark提供了一个flink一站式的流处理作业开发管理平台, 从流处理作业开发到上线全生命周期都做了支持, 是一个一站式的流出来计算平台。 未来spark开…...

SpringBoot如何优雅的处理免登录接口

在项目开发过程中,会有很多API接口不需要登录就能直接访问,比如公开数据查询之类的 ~ 常规处理方法基本是 使用拦截器或过滤器,拦截需要认证的请求路径。在拦截器中判断session或token信息,如果存在则放行,否则跳转到…...

元旦档首日票房超4.69亿,“下雪场尴尬”上热搜!

哇塞,元旦假期终于来啦!🎉在这个喜庆的时刻,电影院也热闹非凡,据猫眼专业版数据显示,截至12月30日,2023年元旦档首日票房竟然超过了4.69亿!这简直是个天文数字啊!&#x…...

CentOS系统中设置IP地址的方式和存在的问题

在CentOS系统中设置IP地址通常涉及以下步骤: 打开网络接口配置文件: 使用文本编辑器(如vi、nano或emacs)打开 /etc/sysconfig/network-scripts/ifcfg-eth0 文件。这里的"eth0"是网卡的名称,如果你的系统中有…...

使用vmware,在ubuntu18.04中使用笔记本的摄像头

步骤1:在windows中检查相机状态 win10系统中,在左下的搜索栏,搜索“相机”,点击进入即可打开相机,并正常显示图像。 注意:如果相机连接到了虚拟机,则不能显示正常。 步骤2:在ubuntu…...

中间件系列 - Redis入门到实战(高级篇-分布式缓存)

前言 学习视频: 黑马程序员Redis入门到实战教程,深度透析redis底层原理redis分布式锁企业解决方案黑马点评实战项目 中间件系列 - Redis入门到实战 本内容仅用于个人学习笔记,如有侵扰,联系删除 学习目标 Redis持久化Redis主从…...

使用Visual Studio调试VisionPro脚本

使用Visual Studio调试VisionPro脚本 方法一 : 修改项目文件 csproj步骤: 方法二 : Visual Studio附加功能步骤: 方法一 : 修改项目文件 csproj 步骤: 开启VisionPro脚本调试功能 创建一个VisionPro程序…...

Ubuntu安装K8S的dashboard(管理页面)

原文网址:Ubuntu安装k8s的dashboard(管理页面)-CSDN博客 简介 本文介绍Ubuntu安装k8s的dashboard(管理页面)的方法。 Dashboard的作用有:便捷操作、监控、分析、概览。 相关网址 官网地址:…...

zookeeper之集群搭建

1. 集群角色 zookeeper集群下,有3种角色,分别是领导者(Leader)、跟随着(Follower)、观察者(Observer)。接下来我们分别看一下这三种角色的作用。 领导者(Leader): 事务请求(写操作)的唯一调度者和处理者,保…...

从0开始界面设计师 Qt Designer

QT程序界面的 一个个窗口、控件,就是像上面那样用相应的代码创建出来的。 但是,把你的脑海里的界面,用代码直接写出来,是有些困难的。 很多时候,运行时呈现的样子,不是我们要的。我们经常还要修改代码调整界…...

Html / CSS刷题笔记

WebKit是一个开源的浏览器引擎,它最初是由苹果公司开发的,并且被广泛用于Safari浏览器和其他基于WebKit的浏览器,比如Google Chrome的早期版本。它也是构建许多移动设备浏览器的基础。WebKit的主要功能是解析HTML和CSS,并将其渲染…...

关于“Python”的核心知识点整理大全51

目录 17.2.2 添加自定义工具提示 bar_descriptions.py 17.2.3 根据数据绘图 python_repos.py 17.2.4 在图表中添加可单击的链接 python_repos.py 17.3 Hacker News API hn_submissions.py 17.4 小结 往期快速传送门👆(在文章最后)&a…...

Termius for Mac/Win:一站式终端模拟器、SSH 和 SFTP 客户端软件的卓越选择

随着远程工作和云技术的普及,对于高效安全的远程访问和管理服务器变得至关重要。Termius,一款强大且易用的终端模拟器、SSH 和 SFTP 客户端软件,正是满足这一需求的理想选择。 Termius 提供了一站式的解决方案,允许用户通过单一平…...

vr体验馆用什么软件计时计费,如遇到停电软件程序如何恢复时间

vr体验馆用什么软件计时计费,如遇到停电软件程序如何恢复时间 一、软件程序问答 如下图,软件以 佳易王vr体验馆计时计费软件V17.9为例说明 1、软件如何计时间? 点击相应编号的开始计时按钮即可 2、遇到停电再打开软件时间可以恢复吗&…...

HTML---JavaScript基础

文章目录 目录 文章目录 本章目标 一.JavaScript基础 概述 特点 JavaScript 基本机构 语法 网页中引用JavaScript的方式 二. JavaScript核心语法 变量 ​编辑 数据类型 数组 练习 本章目标 掌握JavaScript的组成掌握JavaScript的基本语法会定义和使用函数会使用工具进行…...

2023年03月17日_微软和谷歌办公AI的感慨

2023年3月17日 最近这个科技圈的消息 有点爆炸的让人应接不暇了 各种大公司简直就是神仙打架 你从来没有见过这么密集的 这么高频的产品发布 昨天微软是发布了Office 365 Copilot 在里边提供了大量的AI的功能 然后谷歌呢也发布了这个Google Workspace AI 也是跟365 Cop…...

2023年新一代开发者工具 Vue ,正式开源!

以下文章来源于前端充电宝 ,作者CUGGZ 近日,Vue 新一代开发者工具(DevTools)正式开源!Vue DevTools 是一个旨在增强 Vue 开发人员体验的工具,它提供了一些功能来帮助开发者更好地了解 Vue 应用。下面就来看…...

springboot(ssm校园组团平台 高校组团系统 Java系统

springboot(ssm校园组团平台 高校组团系统 Java系统 开发语言:Java 框架:ssm/springboot vue JDK版本:JDK1.8(或11) 服务器:tomcat 数据库:mysql 5.7(或8.0) 数据库…...

第19节 Node.js Express 框架

Express 是一个为Node.js设计的web开发框架,它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用,和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...

Cursor实现用excel数据填充word模版的方法

cursor主页:https://www.cursor.com/ 任务目标:把excel格式的数据里的单元格,按照某一个固定模版填充到word中 文章目录 注意事项逐步生成程序1. 确定格式2. 调试程序 注意事项 直接给一个excel文件和最终呈现的word文件的示例,…...

QMC5883L的驱动

简介 本篇文章的代码已经上传到了github上面,开源代码 作为一个电子罗盘模块,我们可以通过I2C从中获取偏航角yaw,相对于六轴陀螺仪的yaw,qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...

《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)

CSI-2 协议详细解析 (一) 1. CSI-2层定义(CSI-2 Layer Definitions) 分层结构 :CSI-2协议分为6层: 物理层(PHY Layer) : 定义电气特性、时钟机制和传输介质(导线&#…...

测试markdown--肇兴

day1: 1、去程:7:04 --11:32高铁 高铁右转上售票大厅2楼,穿过候车厅下一楼,上大巴车 ¥10/人 **2、到达:**12点多到达寨子,买门票,美团/抖音:¥78人 3、中饭&a…...

C# 类和继承(抽象类)

抽象类 抽象类是指设计为被继承的类。抽象类只能被用作其他类的基类。 不能创建抽象类的实例。抽象类使用abstract修饰符声明。 抽象类可以包含抽象成员或普通的非抽象成员。抽象类的成员可以是抽象成员和普通带 实现的成员的任意组合。抽象类自己可以派生自另一个抽象类。例…...

css的定位(position)详解:相对定位 绝对定位 固定定位

在 CSS 中,元素的定位通过 position 属性控制,共有 5 种定位模式:static(静态定位)、relative(相对定位)、absolute(绝对定位)、fixed(固定定位)和…...

Qemu arm操作系统开发环境

使用qemu虚拟arm硬件比较合适。 步骤如下: 安装qemu apt install qemu-system安装aarch64-none-elf-gcc 需要手动下载,下载地址:https://developer.arm.com/-/media/Files/downloads/gnu/13.2.rel1/binrel/arm-gnu-toolchain-13.2.rel1-x…...

渗透实战PortSwigger靶场:lab13存储型DOM XSS详解

进来是需要留言的&#xff0c;先用做简单的 html 标签测试 发现面的</h1>不见了 数据包中找到了一个loadCommentsWithVulnerableEscapeHtml.js 他是把用户输入的<>进行 html 编码&#xff0c;输入的<>当成字符串处理回显到页面中&#xff0c;看来只是把用户输…...

xmind转换为markdown

文章目录 解锁思维导图新姿势&#xff1a;将XMind转为结构化Markdown 一、认识Xmind结构二、核心转换流程详解1.解压XMind文件&#xff08;ZIP处理&#xff09;2.解析JSON数据结构3&#xff1a;递归转换树形结构4&#xff1a;Markdown层级生成逻辑 三、完整代码 解锁思维导图新…...