自驾总结_Localization

article/2025/6/8 5:56:28

综述:

Localizaiton的主要功能是根据车身姿态信息,Lidar数据,点云高精度地图,组合导航信息,在点云高精度地图覆盖的区域内(时速<30km/h)完成高精度的位姿输出。
在场景适应能力上,着重解决整体区域有部分RTK覆盖,但存在密集高楼GPS信号不好区域(半封闭或者全封闭场景)

需求与约束:

隐含约束及需求:
车辆上电后,定位初始化过程,暂定通过GPS来进行;如果长期没有GPS信号,初始化失败的情况下,可以提供人工初始化,实现给定相应的初始化站点和位姿信息方式,即车辆事先开到我们给定位姿区域,完成初始化工作。
出现定位异常时,定位模块若不能及时恢复,车辆则自动停下来。

总体结构和功能:

输入:主要包括车身姿态信息,lidar数据,点云高精地图,组合导航信息(视觉未加入)
输出:位姿以及位姿质量信息
内部子系统主要包含2部分:运动估计,定位信息融合
运动估计:输入车身,惯性器件的运动信息,上一个状态的位姿信息,对车辆运动进行建模,得到车辆运动状态(坐标变化,加速度变化)
定位信息融合:输入lidar数据,点云高精度地图,组合导航信息,运动估计的结果,得到输出位姿以及位姿质量信息

输入输出信号:

序号

传感器/模块

输入信号

输出信号

1

车身

Chassis(主要使用轮速信号)

2

惯导

Localization_ins

3

高精度地图

PointCloud2

4

4*补盲激光雷达

PointCloud2

5

运动估计

Localization_ins,Chassis

Odometry

6

定位信息融合

Localization_ins, Odometry

LocalizationMsg

    7    融合定位结果     LocalizationEstimate
   8 融合定位模块状态     LocalizationStatus

运动估计

输入:车身姿态信息(Chassis),组合导航信息(LocalizaitonMsg)
输出:递推位姿信息
内部子系统主要包含俩块:1)通过轮速里程和惯导进行递推,2)记录历史多帧,算出运动的速度和角速度来基于运动模型递推

处理运动畸变校正及位姿优化

关于激光雷达点云处理中运动畸变校正与位姿优化的数学推导,这是 SLAM(同步定位与地图构建)算法中的核心环节

  • 姿态表示:用平移向量 \(\tau\) 和旋转向量 \(\theta\)(罗德里格斯变换为矩阵 R)描述 6 自由度运动。
  • 时间插值:通过线性插值计算每个点云时刻的姿态 \(T_{(k,i)}^L\),消除运动畸变。
  • 点云去畸变:将点云从采集时刻投影到扫描起始时刻,得到校正后的点云 \(\tilde{\epsilon}_k, \tilde{H}_k\)。
  • 非线性优化:基于边缘点和平面点的几何距离误差,用 Levenberg-Marquardt 算法迭代优化姿态 \(T_K^L(t)\)

⑴ 标签匹配:由于角特征点和平面特征点中的每一个特征在分割后都用其标签进行编码,所以我们只需找到上一帧这两种特征点种具有相同标签的对应点。对于Fpt中的平面特征,只使用Ftp - 1中标记为地面点的点来寻找平面patch作为对应。对于Fet中的边缘特征,其对应的边缘线可以在分割后的簇的Ft e - 1中找到。通过这种方法找到匹配点,可以提高匹配精度。换句话说,相同对象的匹配对应更有可能是在两次扫描中发现。这个过程也缩小了通信的潜在候选范围。

⑵ 两步L-M优化:(阻尼高斯牛顿优化方法),将当前扫描到的边缘与平面特征点之间的距离及其与前一次扫描的对应关系的一系列非线性表达式编译成一个综合距离向量。采用Levenberg-Marquardt (L-M)方法求出两个连续扫描之间的最小距离变换。

⑶ GPS回环检测,通过每10秒提取一个GPS准确信息加入到位姿图中,相当于每隔10秒我们就获得一个准确的位置,把位姿的传播误差平均分配到这段时间内的每一个关键帧上面,做一个位姿的优化。

定位融合信息

输入:运动估计结果,组合导航信息,点云高精度地图,点云信息
输出:位姿信息以及位姿质量信息
内部子系统主要包含俩部分:融合结果估计和融合状态管理
融合结果估计包括:激光点云拼接,NDT匹配,点云地图加载,初始化,
融合状态管理:置信度涉及,错误发现恢复,定位错误侦测


        GPS优先模式下,gps_level≤ndt_level,则使用GPS定位,否则使用NDT定位;
        NDT优先模式下,ndt_level≤gps_level,则使用NDT定位,否则使用GPS定位。
        当gps_level和ndt_level均为3时,发送Error故障码,车辆减速停车。车辆正常运行时,实时校核GPS位置和NDT位置,当两者偏差较大时,限速行驶

        Kalman滤波器

用反馈控制方法估计过程状态:滤波器估计过程某一时刻的状态,然后以(含噪声的)测量变量的方式获得反馈。
时间更新方程负责及时向前推算当前状态变量和误差协方差估计的值,以便为下一个时间状态构造先验估计。
测量更新方程负责反馈——也就是说,它将先验估计和新的测量变量结合以构造改进的后验估计。时间更新方程也可视为预估方程,测量更新方程可视为校正方程。最后的估计算法成为一种具有数值解的预估-校正算法

        NDT

先根据参考数据(reference scan)来构建多维变量的正态分布,如果变换参数能使得俩副激光数据匹配的很好,那么变换点在参考系中的概率密度会很大,需要用非线性优化方法使得概率密度之和最大的变换参数,此时俩副激光点云数据将匹配的最好。

        LOAM建图

具体包括:点云分割与特征提取、点云Odometry、点云Mapping、局部地图生成、因子图优化

  • 第一部分:Segmentation: 这一部分的主要操作是分离出地面点云;同时对剩下的点云进行聚类,滤除数量较少的点云簇。
  • 第二部分:Feature Extraction: 对分割后的点云(已经分离出地面点云)进行边缘点和面点特征提取,这一步和LOAM里面的操作一样。
  • 第三部分:Lidar 里程计: 在连续帧之间进行(边缘点和面点)特征匹配找到连续帧之间的位姿变换矩阵。
  • 第四部分:Lidar Mapping: 对feature进一步处理,然后在全局的 point cloud map 中进行配准。
  • 第五部分:Transform Integration: Transform Integration 融合了来自 Lidar Odometry 和 Lidar Mapping 的 pose estimation 进行输出最终的 pose estimate。

一文详解激光SLAM框架LeGO-LOAM - 知乎

注意GPS和NDT之间切换和约束,低速,偏差,以及可信度平衡


http://www.hkcw.cn/article/ZcNbdnxNOh.shtml

相关文章

Python数据可视化科技图表绘制系列教程(一)

目录 创建多个坐标图形&#xff08;坐标系&#xff09; 图表的组成 创建图形与子图 创建子图1 创建子图2 创建子图3 创建子图4 创建子图5 添加图表元素 极坐标图1 极坐标图2 【声明】&#xff1a;未经版权人书面许可&#xff0c;任何单位或个人不得以任何形式复制、…

星动纪元的机器人大模型 VPP,泛化能力效果如何?与 VLA 技术的区别是什么?

点击上方关注 “终端研发部” 设为“星标”&#xff0c;和你一起掌握更多数据库知识 VPP 利用了大量互联网视频数据进行训练&#xff0c;直接学习人类动作&#xff0c;减轻了对于高质量机器人真机数据的依赖&#xff0c;且可在不同人形机器人本体之间自如切换&#xff0c;这有望…

SOC-ESP32S3部分:28-BLE低功耗蓝牙

飞书文档https://x509p6c8to.feishu.cn/wiki/CHcowZMLtiinuBkRhExcZN7Ynmc 蓝牙是一种短距的无线通讯技术&#xff0c;可实现固定设备、移动设备之间的数据交换&#xff0c;下图是一个蓝牙应用的分层架构&#xff0c;Application部分则是我们需要实现的内容&#xff0c;Protoc…

动态规划-1143.最长公共子序列-力扣(LeetCode)

一、题目解析 对于给定了两个字符串中&#xff0c;需要找到最长的公共子序列&#xff0c;也就是两个字符串所共同拥有的子序列。 二、算法原理 1、状态表示 dp[i][j]&#xff1a;表示s1的[0,i]和s2的[0,j]区间内所有子序列&#xff0c;最长子序列的长度 2、状态转移方程 根…

EMQX 社区版单机和集群部署

EMQ 支持 Docker&#xff0c;宿主机&#xff0c;k8s部署&#xff1b;支持单机或集群部署。以下给出EMQX社区版单机和集群部署方法 1. Docker单机部署 官方推荐最小配置&#xff1a;2核 4G 下载容器镜像 docker pull emqx/emqx:5.3.2启动容器 docker run -d --name emqx \-…

小牛电动2025新品矩阵,引领技术普惠新风潮

自2014年成立以来&#xff0c;全球高端智能电动车领导品牌小牛电动已走过十个年头&#xff0c;在全球智能城市出行领域留下了深刻印记。秉持“科技、潮流、自由”的品牌理念&#xff0c;小牛电动致力于改变出行&#xff0c;让城市生活更美好。十年来&#xff0c;小牛电动推出多…

SU-03T1烧录使用教程

一、简介 SU-03T1模块是一款由深圳机芯智能开发的低成本、低功耗、小体积的离线语音识别模组&#xff0c;适用于智能家居、各类智能小家电、86盒、玩具、灯具等需要语音操控的场景。它是SU-03T的一个版本或后续产品&#xff0c;可能在功能或性能上有所改进或特定的应用优化。 该…

SOC-ESP32S3部分:27-设备OTA

飞书文档https://x509p6c8to.feishu.cn/wiki/Hd9TwkuZ3iEQiUkjaoic5p7Knuh ESO32S3应用程序可以在运行时通过网络从服务器下载新的固件&#xff0c;然后将其存储到某个分区中&#xff0c;从而实现固件的升级功能。 在ESP-IDF中有两种方式可以进行空中(OTA)升级: 使用 app_up…

Windows清理之后,资源管理器卡顿-解决方法

一、点击本地磁盘选择属性 二、选择工具 三、选择驱动器进行优化

VBA模拟进度条

在上一章中我跟大家介绍了ProgressBar控件的使用方法&#xff0c;但由于该控件无法在64位版本的Office中运行&#xff0c;为此我们可以采用Lable控件来模拟进度条的变化&#xff0c;以解决在64位版本的Office中无进度条控件的问题。 一、设计思路 添加两个重叠的Lable标签控件…

Linux(线程概念)

目录 一 虚拟地址到物理地址的转换 1. 操作系统如何管理物理内存&#xff1a; 2. 下面来谈谈虚拟地址如何转换到物理地址&#xff1a; 3. 补充字段&#xff1a; 二 Linux中的线程 1. 先来说说进程&#xff1a; 2. 线程&#xff1a; 3. 线程相比较于进程的优缺点&#x…

手把手教你用Appsmith打造企业级低代码平台:从部署到性能调优实战

文章目录 前言1.什么是Appsmith2.Docker部署3.Appsmith简单使用4.安装cpolar内网穿透5. 配置公网地址6. 配置固定公网地址总结 前言 在当今快速变化的商业环境中&#xff0c;企业正面临内部系统建设的双重挑战。传统开发模式不仅需要漫长的开发周期&#xff08;通常需要数月&a…

PyTorch 入门学习笔记(数字识别实战)

目录 一、关于 PyTorch 的一个重要概念——神经网络 二、PyTorch 是如何解决问题的&#xff08;解决案例&#xff09; 1 案例&#xff1a;手写一个数字&#xff0c;让计算机识别出是哪个数字。 2 PyThorch 解决问题大约需要以下几个步骤&#xff1a; 3 代码示例&#xff1…

OSCP备战-BSides-Vancouver-2018-Workshop靶机详细步骤

一、靶机介绍 靶机地址&#xff1a;https://www.vulnhub.com/entry/bsides-vancouver-2018-workshop%2C231/ 靶机难度&#xff1a;中级&#xff08;CTF&#xff09; 靶机发布日期&#xff1a;2018年3月21日 靶机描述&#xff1a; Boot2root挑战旨在创建一个安全的环境&…

CANopen转Profinet 全攻略:打通施耐德变频器与西门子 300PLC通讯链路

Profinet转CAN open西门子300PLC与施耐德变频器通讯 项目 福建某公司在国外的一个工业自动化项目中&#xff0c;控制中心系统通过监控变频器的不同状态发送不同的命令启动/停止变频器&#xff0c;设定变频器的运行速度进而控制变频器所连接的伺服电机。监控中心系统使用的是西…

Shell脚本编程

shell概述 什么是shell&#xff1f; 在Linux内核与用户之间的解释器程序 Linux默认解释器为/bin/bash负责向内核翻译及传达用户/程序指令相当于操作系统的“外壳” shell的使用方式 交互式-命令行 人工干预&#xff0c;智能化程度高逐条解释执行&#xff0c;效率低、 非交…

win11中使用grep

一、下载 https://nchc.dl.sourceforge.net/project/gnuwin32/grep/2.5.4/grep-2.5.4-setup.exe?viasf1 二、控制面板的环境变量 Path中增加 E:\software\GnuWin32\bin 三、测试使用

负载均衡相关基本概念

负载均衡在系统架构设计中至关重要&#xff0c;其核心目标是合理分配负载&#xff0c;提升系统整体性能和可靠性。本文简要介绍了负载均衡的基本概念&#xff0c;包括四层和七层负载均衡、负载均衡的使用场景和实现方式、负载均衡的常用算法以及一些配置相关知识。 1、负载均衡…

Houdini POP入门学习03

跟着教程学习降雪效果制作&#xff0c;这部分包含blast裁剪、外部引脚获取等。 阶段1 1.Geometry中创建grid&#xff0c;连接popnet。 2.双击进入popnet&#xff0c;在wire_pops_into_here前添加popforce&#xff0c;这一步并不是为了添加重力&#xff0c;而是增加一些乱流。 …

ULVAC DC-10-4P 400V input 10kW DC Pulse power supply 爱发科直流电源

ULVAC DC-10-4P 400V input 10kW DC Pulse power supply 爱发科直流电源