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

自动驾驶---Motion Planning之构建SLT Driving Corridor

1 背景

        在上篇博客《自动驾驶---Motion Planning之Speed Boundary》中,主要介绍了Apollo中Speed Boundary的一些内容,可以构造ST图得到边界信息,最后结合粗糙的速度曲线和路径曲线,即可使用优化的方法求解得到最终的轨迹信息(s,s',s'',l,l',l'')。

        本篇博客笔者主要介绍近几年开始逐渐投入到量产中的方法:SLT同步构造。本质上与Apollo的方案有相似之处。

        本篇博客的主要参考文献为《Safe Trajectory Generation for Complex UrbanEnvironments Using Spatio-temporalSemantic Corridor》,香港科技大学大疆联合实验室为第一作者。

2 STSC介绍

        什么是STSC(论文中简称为SSC)呢?可以理解为:时空联合走廊。

        Spatio-Temporal Semantic Corridor(STSC)是一个在复杂城市环境中用于轨迹规划和导航的概念。它主要利用时空语义信息来生成一个安全可行的轨迹走廊,使得车辆可以在这个走廊中安全、有效地行驶。以下是关于STSC的详细介绍:

(1)概念

        STSC是一个在三维时空中的轨迹走廊,其中包含了语义信息,如道路标记、交通信号、行人、车辆等。这些语义信息有助于车辆更好地理解其周围环境,并做出合适的驾驶决策。

(2)生成过程

  • 种子生成:首先,根据车辆的前向预测模块生成一系列离散的点作为种子。
  • Cube膨胀:然后,以这些种子点为中心,通过cube膨胀的方式逐渐向外扩展,直到碰到障碍物或语义边界为止(cube的ST剖面构建如下图中的a-b-c-d的顺序,LT剖面的构建同理可得,细节可参考论文)。
  • 确定约束:在膨胀过程中,需要确定各种约束条件,如速度约束、停止线约束、变道时间约束等。这些约束条件确保了生成的轨迹既安全又可行。
  • 保留约束:在生成走廊的过程中,只保留硬约束(如速度约束)和无碰撞约束,而放松其他允许的最大余量。

0dc165d9869e4f79b14ac31c98ab58df.png

 构建Cube的代码如下(整体思路如上所述,也比较容易理解):

// 根据输入的轨迹点来构建cube
ErrorType SscMap::ConstructCorridorsUsingInitialTrajectories(GridMap3D *p_grid, const vec_E<vec_E<common::FsVehicle>> &trajs) {GetSemanticVoxelSet(p_grid);driving_corridor_vec_.clear();int trajs_num = trajs.size();if (trajs_num < 1) return kWrongStatus;// ~ Stage I: Get seedsvec_E<vec_E<Vec3i>> seeds_vec;for (int i = 0; i < trajs_num; ++i) {common::DrivingCorridor3D driving_corridor;vec_E<Vec3i> traj_seeds;int num_states = static_cast<int>(trajs[i].size());if (num_states > 1) {bool first_seed_determined = false;for (int k = 0; k < num_states; ++k) {std::array&

相关文章:

自动驾驶---Motion Planning之构建SLT Driving Corridor

1 背景 在上篇博客《自动驾驶---Motion Planning之Speed Boundary》中,主要介绍了Apollo中Speed Boundary的一些内容,可以构造ST图得到边界信息,最后结合粗糙的速度曲线和路径曲线,即可使用优化的方法求解得到最终的轨迹信息(s,s,s,l,l,l)。 本篇博客笔者主要介绍近…...

本地文件包含漏洞利用

目录 前期信息收集获取网站权限获取服务器权限纵向提权 前期信息收集 拿到目标的资产&#xff0c;先试一下IP能不能访问 探测一下目标的端口运行的是什么服务 nmap -sC -sV xx.xx9.95.185 -Pn获取网站权限 我们可以知道目标的80端口上运行着http服务&#xff0c;服务器是u…...

【docker】docker的常用命令

&#x1f4dd;个人主页&#xff1a;五敷有你 &#x1f525;系列专栏&#xff1a;中间件 ⛺️稳中求进&#xff0c;晒太阳 常规命令 docker version #查看docker 版本信息docker info #显示docker 的系统信息&#xff0c;包括镜像和容器数量docker --help #查看所有的命…...

jmeter实战

jmeter学习 1&#xff0c;接口在定义时&#xff0c;post请求参数尽量放在body里面&#xff0c;get请求参数尽量放在parameters里面&#xff0c;否则会导致jmeter请求接口报错的问题(jmeter底层有较为严格的请求格式) 2&#xff0c;定义全局变量使用&#xff1a;Config Elemen…...

面试官常问问题

1、请你简单的自我介绍一下&#xff1f; 【Tips】① 口述内容不可与简历内容冲突&#xff1b;②阐述方式避免过度官方 且语速较快&#xff1b;③言简意赅&#xff0c;直击要害&#xff0c;抓重点突出项&#xff1b;④面试前应自己模拟练习几次&#xff0c;避免过度紧张导致的口…...

外包就干了2个月,技术退步明显....

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

面向对象 汇总(详细内容见Day12—16)

面向对象 汇总&#xff08;详细内容见Day12—16&#xff09; 文章目录 面向对象 汇总&#xff08;详细内容见Day12—16&#xff09;一、概念二、类三、对象四、成员属性/成员变量五、成员方法六、构造方法七、private - 私有化八、封装九、this - 本对象十、分包十一、static -…...

结构体联合体枚举和位段

文章目录 结构体结构体类型的声明特殊的声明 结构的自引用结构体变量的定义和初始化结构体内存对齐为什么要内存对齐结构体传参结构体实现位段&#xff08;位段的填充&可移植性&#xff09;位段位段的内存分配空间如何开辟位段的跨平台问题位段的应用 枚举枚举类型的定义枚…...

人类程序员真要失业?首位“AI软件工程师”亮相引爆科技圈

初创公司Cognition成立不到两个月&#xff0c;但已经拥有十名天才工程师。他们推出了一款名为Devin的人工智能&#xff08;AI&#xff09;助手&#xff0c;可以协助人类软件工程师完成各种开发任务。Devin与现有的其他AI编码者不同&#xff0c;它能够从头开始构建网站、自动部署…...

redis的过期策略以及内存淘汰机制

redis采用的是定期删除惰性删除策略。 为什么不用定时删除策略? 定时删除,用一个定时器来负责监视key,过期则自动删除。虽然内存及时释放&#xff0c;但是十分消耗CPU资源。在大并发请求下&#xff0c;CPU要 将时间应用在处理请求&#xff0c;而不是删除key,因此没有采用这一策…...

华为数通方向HCIP-DataCom H12-821题库(多选题:161-180)

第161题 以下关于IPv6优势的描述,正确的是哪些项? A、底层自身携带安全特性 B、加入了对自动配置地址的支持,能够无状态自动配置地址 C、路由表相比IPv4会更大,寻址更加精确 D、头部格式灵活,具有多个扩展头 【参考答案】ABD 【答案解析】 第162题 在OSPF视图下使用Filt…...

网络通信与网络协议

网络编程是指利用计算机网络实现程序之间通信的一种编程方式。在网络编程中&#xff0c;程序需要通过网络协议(如 TCP/IP)来进行通信&#xff0c;以实现不同计算机之间的数据传输和共享。在网络编程中&#xff0c;通常有三个基本要素 IP 地址:定位网络中某台计算机端口号port:定…...

【矩阵】240. 搜索二维矩阵 II【中等】

搜索二维矩阵 II 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性&#xff1a;每行的元素从左到右升序排列。每列的元素从上到下升序排列。 示例 1&#xff1a; 输入&#xff1a;matrix [[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,22…...

详解uniapp的生命周期

这篇文章主要介绍了 uniapp 的生命周期, 应用生命周期是指应用程序从启动到关闭的整个过程&#xff0c;包括应用程序的启动、前后台切换、退出等, 需要的朋友可以参考下 Uniapp 作为一款跨平台应用开发框架&#xff0c;具有丰富的生命周期&#xff0c;以下是 Uniapp 的生命周期…...

鸿蒙Harmony应用开发—ArkTS声明式开发(基础手势:PluginComponent)

提供外部应用组件嵌入式显示功能&#xff0c;即外部应用提供的UI可在本应用内显示。 说明&#xff1a; 该组件从API Version 9开始支持。后续版本如有新增内容&#xff0c;则采用上角标单独标记该内容的起始版本。本组件为系统接口。 子组件 无 接口 PluginComponent(value:…...

mysql笔记:15. 事务和锁

文章目录 一、事务概述二、事务基本操作三、事务保存点四、事务的隔离级别1. READ UNCOMMITTED设置事务的隔离级别 2. READ COMMITTED3. REPEATABLE READ4. SERIALIZABLE 五、MySQL的锁InnoDB的锁类型1. InnoDB的行级锁2. InnoDB的表级锁 死锁 在开发过程中&#xff0c;我们经常…...

Learn OpenGL 15 面剔除

面剔除 尝试在脑子中想象一个3D立方体&#xff0c;数数你从任意方向最多能同时看到几个面。如果你的想象力不是过于丰富了&#xff0c;你应该能得出最大的面数是3。你可以从任意位置和任意方向看向这个球体&#xff0c;但你永远不能看到3个以上的面。所以我们为什么要浪费时间…...

EndeavourOs(arch系)安装sunpinyin输入法(ibus) + 迅雷(xunlei-bin)

输入法 yay -S ibus yay -S ibus-libpinyin yay -S ibus-sunpinyin yay -Q ibus ibus-libpinyin ibus-sunpinyin #验证 # 注销然后打开ibus config... # 在Input Method 添加Chinese->SunPinYin # 使用Ctrl Space, 默认Super Space, 请自行修改 # 再次注销&#xff0c;开…...

Spring Cache框架的介绍和使用

Spring Cache spring cache是一个框架&#xff0c;实现类基于注解的缓存功能&#xff0c;只需要简单的加一个注解&#xff0c;就能实现缓存功能&#xff0c;大大简化我们在业务中操作缓存的代码。 spring cache只是提供了一层抽象&#xff0c;底层可以切换不同的cache实现&am…...

perl 用 XML::Parser 解析 XML文件,访问哈希

本篇我们会看到 Perl 成为知名编程语言的关键特色--哈希 hash&#xff08;2000年以前叫&#xff1a;关联数组&#xff09;。 在Perl 中&#xff0c;可以使用各种模块和函数来解析 XML元素和属性。其中&#xff0c;最古老的模块是 XML::Parser&#xff0c;它提供了一组完整的X…...

一款实用汉化工具快速安装使用指南 -- cheat-engine中文版安装教程入口

文章目录安装方式安装后在哪里找到&#xff1f;&#xff08;重点补全&#xff09;使用说明温馨提示首先呢&#xff0c;大家可能在用 cheat engine (CE修改器&#xff09;的时候呢&#xff0c;可能总是使用的是英文版&#xff0c;用的不太舒服啊&#xff0c;这个时候呢&#xff…...

避开STM32H743的坑:GPIO复用配置常见错误与排查指南(附引脚分配图详解)

避开STM32H743的坑&#xff1a;GPIO复用配置常见错误与排查指南 在STM32H743的开发过程中&#xff0c;GPIO复用配置往往是让开发者又爱又恨的部分。爱它是因为灵活多变的外设复用能力让这颗高性能MCU如虎添翼&#xff1b;恨它则是因为稍有不慎就会陷入各种配置冲突和功能异常的…...

Android音频设备切换背后的秘密:AudioPolicyService与HAL交互全解析

Android音频设备切换机制深度解析&#xff1a;从AudioPolicyService到HAL的完整链路 在移动设备的多媒体体验中&#xff0c;音频设备切换的流畅性直接影响用户体验。当用户插入耳机、连接蓝牙设备或切换扬声器时&#xff0c;系统如何在毫秒级完成音频路由的重构&#xff1f;本文…...

AutoGLM沉思版 vs OpenAI DeepResearch:免费国产AI Agent能否替代200美元/月的服务?

AutoGLM沉思版与OpenAI DeepResearch深度对比&#xff1a;企业级AI研究工具如何选择&#xff1f; 当企业研发团队需要处理海量文献综述时&#xff0c;当投资机构需要快速生成行业分析报告时&#xff0c;技术决策者往往面临一个关键选择&#xff1a;是选择国际知名但价格高昂的O…...

全球AI薪资热力图:旧金山VS深圳的残酷对比

一场不平等的技术竞赛当我们谈论人工智能&#xff08;AI&#xff09;的未来时&#xff0c;旧金山湾区与深圳无疑是最为闪耀的两个坐标。前者是硅谷的心脏&#xff0c;全球科技创新的策源地&#xff1b;后者是中国乃至世界硬件制造与新兴科技应用的前沿阵地。然而&#xff0c;对…...

高效构建个性化Obsidian知识管理系统:从模板到实践的全面指南

高效构建个性化Obsidian知识管理系统&#xff1a;从模板到实践的全面指南 【免费下载链接】kepano-obsidian My personal Obsidian vault template. A bottom-up approach to note-taking and organizing things I am interested in. 项目地址: https://gitcode.com/gh_mirro…...

关于sms,voip路由以及smpp

SMS 和 VoIP 路由是国际通讯行业核心技术&#xff0c;用于高效传递短信和语音通话。SMPP 协议则是 SMS 传输的关键标准&#xff0c;帮助运营商和企业实现全球消息互联。SMS 基础知识SMS&#xff08;Short Message Service&#xff0c;短消息服务&#xff09;是手机最常见的文本…...

奥尔特云智慧武装系统上线!基层武装管理从此“智”在必得!

随着国防动员与基层武装工作不断升级&#xff0c;传统管理模式存在信息化覆盖不全、数据归集粗放、智能化水平不足等问题&#xff0c;已难以适配高效管理与应急应战需求&#xff0c;数字化转型成为必然趋势。智慧武装系统是奥尔特云&#xff08;深圳&#xff09;智慧科技打造的…...

CW32L012FOC开源项目推进

作为一枚合格的“职场摸鱼学”实践者&#xff08;手动狗头&#xff09;&#xff0c;我坚决不建议在长假结束后立刻全身心扎进任务清单。那太不“可持续发展”了。 所以&#xff0c;今天上午&#xff0c;我可以理直气壮地把“整理工位”作为最高优先级。说得具体点&#xff0c;…...

数字人表情驱动:ARKit blend shape中文对照与实战解析

1. ARKit blend shape基础概念解析 第一次接触ARKit的blend shape功能时&#xff0c;我也被这些英文术语搞得晕头转向。简单来说&#xff0c;blend shape就像是我们小时候玩的橡皮泥&#xff0c;通过调整不同部位的形状来改变整体表情。ARKit定义了52个标准面部动作单元&#…...