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

自动驾驶中的障碍物时间对齐法

描述

自动驾驶算法使用的系统往往不是实时系统,因此每个节点间拿到的数据可能不是同一时间的数据,从而造成系统误差,针对这一现象,工程上往往采用时间对齐内插外推法。这里我们用感知障碍物来举例。

自动驾驶系统有许多重要模块,假设每个模块占用一个进程,即节点,那么进程与进程间需要相互通信来传递数据。决策规划节点需要感知节点传来的障碍物信息来做决策规划。假设在 t 1 t1 t1时间点,决策规划收到了感知障碍物的数据,但这个障碍物的位姿一定是在 t 1 t1 t1时间点的位姿吗,不一定,因为不是实时系统,数据传输存在延时,所以决策规划在 t 1 t1 t1时间点收到的感知障碍物数据很可能是更早的 t 0 t0 t0时间点的数据,这个时间错位可能是几毫秒到几十毫秒,这个时间错位对高速场景可能最终导致障碍物实际距离差出了几米。所以针对这种非实时系统导致的时间错位的情况,我们需要进行时间对齐,内插外推出感知障碍物更准确的位姿。

具体做法

因为感知和定位的需要,自动驾驶系统中往往存在一个全局里程计odometry,odometry是个相对概念,并不代表车辆真实的utm位姿,只是反映了不同时间点位姿的变化过程,这个里程计由translation和rotation组成,反映了车辆x y z yaw pitch roll六个维度的变化。

  1. 在决策规划节点里,我们需要记录odometry历史到现在的一段时间轴,时间轴设置几秒即可,因为延时不会太大,时间轴长了反而会降低程序效率。

  2. 假设在 t 1 t1 t1时刻,决策规划拿到了感知障碍物的数据,那么先读取感知障碍物自带的时间戳,假设为 t 0 t0 t0,这个时间戳是感知发布那一帧信息时打的,这个时间戳往往比此时决策规划的现在的时间更早,因为信息传递需要时间。拿到这个时间戳后,在第1步里记录的时间轴里去找对应的odometry的位姿,并记录为 p o s e 0 pose0 pose0

  3. 根据此时的 t 1 t1 t1时刻,在时间轴里去找对应的odometry的位姿,并记录为 p o s e 1 pose1 pose1

  4. p o s e 0 pose0 pose0 p o s e 1 pose1 pose1可计算出从 t 0 t0 t0时刻到 t 1 t1 t1时刻的位姿转移变化矩阵,记为 t f tf tf

  5. t f tf tf施加到 t 0 t0 t0时刻感知障碍物的位姿上,得到的结果是 t 0 t0 t0时刻感知障碍物在 t 1 t1 t1时刻时相对于本车的位姿

  6. 因为障碍物可能存在速度,因此在做完tf转换后还需预测推理更准确的位置,这里我们采用最简单的cv预测(恒定速度预测),注意在预测前还需对障碍物速度方向施加tf转换。预测时间为 t 1 − t 0 t1-t0 t1t0

  7. 预测的距离方向施加在第5步得到的位姿上,即可得到 t 1 t1 t1时刻,相对于本车,更准确的障碍物车辆的位姿坐标

相关文章:

自动驾驶中的障碍物时间对齐法

描述 自动驾驶算法使用的系统往往不是实时系统,因此每个节点间拿到的数据可能不是同一时间的数据,从而造成系统误差,针对这一现象,工程上往往采用时间对齐内插外推法。这里我们用感知障碍物来举例。 自动驾驶系统有许多重要模块…...

介绍 PIL+IPython.display+mtcnn for 音视频读取、标注

1. nn.NLLLoss是如何计算误差的? nn.NLLLoss是负对数似然损失函数,用于多分类问题中。它的计算方式如下:首先,对于每个样本,我们需要将其预测结果通过softmax函数转换为概率分布。softmax函数可以将一个向量映射为一个概率分布&…...

C语言中strstr函数的使用!

strstr函数的作用是什么&#xff1f; 查找子字符串 具体直接看下面的这段代码我相信你必明白 #define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> int main() { char *p1 "abcdefghijklmnopqrstuvwxyz"; char* p2 "abc"; char* r…...

Vue项目中,src目录下的vue.app文件介绍

在 Vue 项目中&#xff0c;src 文件夹通常包含了项目的核心代码。在这个文件夹下&#xff0c;App.vue 是一个特殊的文件&#xff0c;它代表了整个 Vue 应用的根组件。 App.vue 是一个单文件组件&#xff08;Single File Component, 简称 SFC&#xff09;&#xff0c;它允许你将…...

【Android】坐标系

Android 系统中有两种坐标系&#xff0c;分别为 Android 坐标系和 View 坐标系。了解这两种坐标系能够帮助我们实现 View 的各种操作&#xff0c;比如我们要实现 View 的滑动&#xff0c;你连这个 View 的位置都不知道&#xff0c;那如何去操作呢&#xff1f; 一、Android 坐标…...

OSCP靶场--Slort

OSCP靶场–Slort 考点(1.php 远程文件包含 2.定时任务提权) 1.nmap扫描 ┌──(root㉿kali)-[~/Desktop] └─# nmap 192.168.178.53 -sV -sC -p- --min-rate 5000 Starting Nmap 7.92 ( https://nmap.org ) at 2024-02-24 04:37 EST Nmap scan report for 192.168.178.53 …...

大数据职业技术培训包含哪些

技能提升认证考试&#xff0c;旨在通过优化整合涵盖学历教育、职业资格、技术水平和高新技术培训等各种教育培训资源&#xff0c;通过大数据行业政府引导&#xff0c;推进教育培训的社会化&#xff0c;开辟教育培训新途径&#xff0c;围绕大数据技术人才创新能力建设&#xff0…...

【Java程序设计】【C00313】基于Springboot的物业管理系统(有论文)

基于Springboot的物业管理系统&#xff08;有论文&#xff09; 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于Springboot的物业管理系统&#xff0c;本系统有管理员、物业、业主以及维修员四种角色权限&#xff1b; 管理员进入主页面&#xff0c;主要功能包…...

TensorFlow训练大模型做AI绘图,需要多少的GPU算力支撑

TensorFlow训练大模型做AI绘图&#xff0c;需要多少的GPU算力支撑&#xff01;这个问题就涉及到了资金投资的额度了。众所周知&#xff0c;现在京东里面一个英伟达的显卡&#xff0c;按照RTX3090(24G显存-涡轮风扇&#xff09;版本报价是7000-7500之间。如果你买一张这样的单卡…...

docker创建mongodb数据库容器

介绍 本文将通过docker创建一个mongodb数据库容器 1. 拉取mongo镜像 docker pull mongo:3.63.6版本是一个稳定的版本&#xff0c;可以选择安装此版本。 2. 创建并启动主数据库 容器数据卷配置 /docker/mongodb/master/data # 数据库数据目录&#xff08;宿主机&am…...

Python并发编程:多线程-线程理论

一 什么是线程 在传统操作系统中&#xff0c;每个进程有一个地址空间&#xff0c;而且默认就有一个控制线程 线程顾名思义&#xff0c;就是一条流水线工作的过程&#xff08;流水线的工作需要电源&#xff0c;电源就相当于CPU&#xff09;&#xff0c;而一条流水线必须属于一个…...

自定义Chrome的浏览器开发者工具DevTools界面的字体和样式

Chrome浏览器开发者工具默认的字体太小&#xff0c;想要修改但没有相关设置。 外观——字体可以自定义字体&#xff0c;但大小不可以调整。 github上有人给出了方法 整理为中文教程&#xff1a; 1.打开浏览器开发者工具&#xff0c;点开设置——实验&#xff0c;勾上红框设…...

人事|人事管理系统|基于Springboot的人事管理系统设计与实现(源码+数据库+文档)

人事管理系统目录 目录 基于Springboot的人事管理系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、管理员登录 2、员工管理 3、公告信息管理 4、公告类型管理 5、培训管理 6、培训类型管理 四、数据库设计 1、实体ER图 五、核心代码 六、论文参考 七、…...

React18源码: Fiber树中的优先级与帧栈模型

优先级{#lanes} 在全局变量中有不少变量都以Lanes命名 如workInProgressRootRenderLanes, subtreeRenderLanes其作用见上文注释它们都与优先级相关 React中有3套优先级体系&#xff0c;并了解了它们之间的关联关系现在来看下fiber树构造过程中&#xff0c;车道模型Lane的具体应…...

Hive 最全面试题及答案(基础篇)

基本知识 hive元数据存储 Hive 元数据存储了关于表、分区、列、分桶等信息。 在生产环境中,通常会将 Hive 的元数据存储在外部的关系型数据库中,如 MySQL 或 PostgreSQL。这样可以提供更好的性能、可扩展性和容错性。通过配置 Hive 的元数据存储为 MySQL 或 PostgreSQL,可以…...

【力扣】整数反转,判断是否溢出的数学解法

整数反转原题地址 方法一&#xff1a;数学 反转整数 如何反转一个整数呢&#xff1f;考虑整数操作的3个技巧&#xff1a; xmod10 可以取出 x 的最低位&#xff0c;如 x123 &#xff0c; xmod103 。x/10 可以去掉 x 的最低位&#xff0c;如 x123 &#xff0c; x/10 &#xf…...

Jmeter之内置函数__property和__P的区别

1. __property函数 作用 读取 Jmeter 属性 语法格式 ${__property(key,var,default)} 参数讲解 小栗子 ${__property(key)} 读取 key 属性如果找不到 key 属性&#xff0c;则返回 key&#xff08;属性名&#xff09; ${__property(key,,default)} 读取 key 属性如果找不到 k…...

GPT润色指令

1. GPT润色指令 Below is a paragraph from an academic paper. Polish the writing to meet the academic style,improve the spelling, grammar, clarity, concision and overall readability. When necessary, rewrite the whole sentence. Paragraph &#xff1a;你的句子…...

Ubuntu中matplotlib显示中文的方法

其实有很多朋友已经总结得很好了&#xff1a;Ubuntu下让matplotlib显示中文字体_ubuntu matplot 使用汉字-CSDN博客 这里我就是简单补充一下&#xff1a; 按照上面这篇博客&#xff0c;下载&#xff1a;GitHub - tracyone/program_font: fonts for programmer 然后运行&#…...

String类-equals和==的区别-遍历-SubString()-StringBuilder-StringJoiner-打乱字符串

概述 String 类代表字符串&#xff0c;Java 程序中的所有字符串文字&#xff08;例如“abc”&#xff09;都被实现为此类的实例。也就是说&#xff0c;Java 程序中所有的双引号字符串&#xff0c;都是 String 类的对象。String 类在 java.lang 包下&#xff0c;所以使用的时候…...

告别GPS信号弱:手把手教你用Android陀螺仪和加速度计做惯性导航避障小车

告别GPS信号弱&#xff1a;手把手教你用Android陀螺仪和加速度计做惯性导航避障小车 在室内、隧道或高楼林立的城市峡谷中&#xff0c;GPS信号常常变得不可靠甚至完全消失。这时&#xff0c;惯性导航系统&#xff08;INS&#xff09;就能大显身手。本文将带你一步步实现一个基于…...

C# + OpenCvSharp实战:用轮廓匹配搞定工业零件缺陷检测(附完整项目源码)

C# OpenCvSharp实战&#xff1a;工业零件缺陷检测的轮廓匹配技术解析 在工业自动化领域&#xff0c;视觉检测系统正逐渐取代传统人工质检&#xff0c;成为生产线上的"火眼金睛"。想象一下这样的场景&#xff1a;传送带上的金属零件以每分钟上百个的速度通过摄像头&a…...

Whoami开发者架构解析:深入理解模块化隐私保护系统设计

Whoami开发者架构解析&#xff1a;深入理解模块化隐私保护系统设计 【免费下载链接】whoami-project Whoami provides enhanced privacy, anonymity for Debian and Arch based linux distributions 项目地址: https://gitcode.com/gh_mirrors/wh/whoami-project Whoami…...

布拉格相位匹配项

液晶光栅PVG。 衍射效率计算。 (胆甾相)液晶光栅PVG&#xff08;偏振体积光栅&#xff09;这玩意儿在AR眼镜和全息显示里特别火&#xff0c;尤其胆甾相液晶那个螺旋结构&#xff0c;能把光的偏振玩出花来。今天咱们就掰开揉碎了说说它的衍射效率到底怎么算——别怕&#xff0c;…...

大模型应用开发岗、算法岗、C++/Java/Go开发岗到底什么区别?谁替代谁了吗?

现在大模型很火,也有了一个岗位叫做&#xff1a;大模型应用开发岗。 在boss上搜一下&#xff0c;现在 大模型应用开发 岗位很多&#xff0c;比普通开发岗位都多。下面我这还是仅仅深圳南山的结果&#xff1a; 很多粉丝&#xff0c;搞不懂 大模型应用开发就是是个啥&#xff1f…...

别再傻傻分不清了!Unity里Animation和Animator到底怎么选?附DoTween插件对比

Unity动画系统深度对比&#xff1a;Animation、Animator与DoTween的实战选择指南 当Unity开发者面对动画需求时&#xff0c;常常陷入选择困境&#xff1a;是用简单的Animation组件快速实现&#xff0c;还是构建复杂的Animator状态机&#xff1f;第三方插件DoTween是否更适合当前…...

如何高效管理微信好友与群组?WeChat Toolbox智能解决方案

如何高效管理微信好友与群组&#xff1f;WeChat Toolbox智能解决方案 【免费下载链接】wechat-toolbox WeChat toolbox&#xff08;微信工具箱&#xff09; 项目地址: https://gitcode.com/gh_mirrors/we/wechat-toolbox 你是否为微信好友管理而烦恼&#xff1f;面对成百…...

外企面试求生指南:除了刷LeetCode,Booking、eBay们还看重什么?(附系统设计/AB测试避坑点)

外企技术面试突围战&#xff1a;超越算法题的6个关键能力图谱 去年帮一位朋友复盘Booking.com的面试失败经历时&#xff0c;发现一个有趣现象&#xff1a;他在LeetCode周赛排名前5%&#xff0c;却倒在一道看似简单的流量控制算法题上。面试官给的反馈是"边界条件处理不成熟…...

手把手搭建你的第一个AI Agent(零基础实战教程)

看完上一篇,你可能觉得AI Agent很酷,但"这玩意儿是不是只有程序员才能玩?"答案是:不。今天我就带你从零开始,30分钟搭建一个真正能帮你干活的Agent。 一、先定个小目标:我们要做什么? 实战项目:做一个"周报助手Agent" 它能做什么? 你输入这周做…...

Applite镜像加速:为Homebrew Casks带来流畅的GUI管理体验

Applite镜像加速&#xff1a;为Homebrew Casks带来流畅的GUI管理体验 【免费下载链接】Applite User-friendly GUI macOS application for Homebrew Casks 项目地址: https://gitcode.com/gh_mirrors/ap/Applite Applite是一款专为macOS设计的开源GUI应用程序&#xff0…...