位姿图优化小记2021.10.18

2023-05-16

1.场景描述

现在有一个小车在运动,并搭载相机或激光雷达进行建图工作,由于SLAM的作用,在建图的同时小车也可以进行自身的定位,因此建立的地图的参考都是相对于自身坐标系的,也就是每一个时刻看到的地图点都是相对于小车当前的位姿的。注意建图的真实性反应在它要是全局一致(不知道这里用这个词对不对)的地图,或者简单来说建立的这个地图要对比GPS上的地图是一样的。但实际上由于建立的地图是相对于自身坐标系的,所以如果某个时刻的小车位姿不准确,此时虽然建立的相对于小车坐标系的位姿是准确的,但是看整个地图来说,其相比GPS定位的真实的地图就是不准确的了,原因就在于参考的小车自身坐标系就是不准的

为了小车自身位姿的不准确性这个问题,有两种办法可以解决。

  • 方式1:一个是SLAM中的回环检测,假设小车到达了之前到过的同一个地方,但是此时通过视觉里程计进行SLAM得到的小车的位姿和起始点的位姿并不相同,这就是之前每次SLAM过程都有误差,最后误差累积导致的。假设此时检测到回环的位姿顶点序号为N,初始的位姿为0。那么再进行后端优化的时候,就向把当前位姿L和初始位姿0对齐。
  • 方式2:一个是外加其他可以提供绝对参考的传感器,比如GPS。那么此时的场景就变成从初始位姿开始,小车得到一个与在GPS下定位的位姿(应该是位置,姿态是得不到的)。那么此时小车开始进行SLAM过程,假设此时进入了建筑群中GPS信号丢失,那么后面的整个过程就只能靠相机或激光雷达进行纯SLAM过程。假设过了一段时间之后GPS信号恢复,同样的道理,由于累计误差此时通过SLAM定位的小车位置和GPS反映的真实位置是不一样的。此时就想要把当前的位置N对齐到GPS定位的位置上。

2.位姿图优化过程(以GPS辅助定位为例)

2.1.思路概述

在这里插入图片描述
如上图所示,就描述了GPS辅助定位的场景。此时需要对SLAM过程中得到的小车的各个位姿进行优化,从而得到全局一致的地图。注意建立的地图点一般不优化也可以,因为每一个位姿中建立的地图点相对来说都是比较准确的,即使优化它的变化也不会太大。因此建立的地图和实际的全局地图不一样,主要原因还是在于小车的位姿不准确,也就是参考坐标系不准确,最后建立的全局地图自然也是不准确的。

那么此时要进行优化,优化的目标就是调整SLAM过程中小车的各个位姿,从而让使用SLAM得到的小车起始点和最终点的位姿和GPS的数据是一样的,也就是位姿图优化。注意位姿图优化的各个顶点是小车的位姿,边就是相邻两个位姿之间的观测关系,位姿图优化就是要调整各个顶点的位姿,让他们尽量能够满足各个边的观测关系

这个优化的本质思想就是固定住头和尾,让头尾的位姿等于GPS的真实位姿,然后把造成SLAM的位姿和这两个位姿不一样的误差加权分批到各个位姿定点上,调整这些位姿,从而让头尾的位姿和GPS的位姿相等。

2.2.实际操作

2.2.1.固定起始点

在rviz中,把起始点固定住,因为起始点的位姿是有GPS信息的,认为它是绝对准确的。

2.2.2.在最后一个位姿顶点新此时的GPS位姿顶点

在最后一个顶点的地方,给他新添加一个顶点,这个顶点的位姿就是GPS得到的位姿。也就是优化的目的就是想让最后这个顶点的位姿变成GPS定位给的位姿。

另外非常重要的是,需要固定这个顶点。因为最后优化需要有一个目标,就是让某个位姿顶点变成什么样子。所以起始和结束的位姿顶点都需要进行固定。

2.2.3.修改最后一个顶点和GPS顶点之间的边

注意这个非常重要。边表达的是相邻两个顶位姿之间的关系,这里是想要最后一个定点和GPS的顶点位姿相等,所以就相当于假想了一个观测,比如是里程计,观测到这两个顶点之间的位姿变换关系应该是0,因为最后想要的就是这两个位姿顶点是同一个位姿顶点,也就是他们之间并没有坐标变换关系。

对于这个边,另外一个很重要的是修改它的权重,也就是信息矩阵。信息矩阵相当于表明了这个边的观测有多可信,因为它是协方差的倒数,协方差越大说明数据越不可信,那么此时信息矩阵也就越小。反之,信息矩阵越大,说明协方差越小,也就是这个观测越可信。所以假设SLAM建立的其他边的协方差都是1,那么这里设置新加的这个GPS顶点和最后一个顶点之间的边的协方差是1000,也就是非常相信这个边的观测,相对于其他边的观测来说,这个边的观测非常准确。

从另一个角度来理解协方差矩阵,就是优化中定义的残差。残差的定义是
在这里插入图片描述
其中e是使用当前的两个位姿顶点算出来的边和观测到的边有多大的不一样。中间的就是信息矩阵,也就是信息矩阵越大,那么这一项的误差所占的权重就越大,也就是让这个误差变小,会对让整个误差变小做出很大的贡献。而这个误差是什么呢?就是使用当前两个位姿顶点算出来二者的位姿关系,和边所观测的位姿关系之间的差距。而新加的GPS位姿顶点又是固定的,所以最后让误差减小的结果就是把最后一个位姿顶点调整到新加的GPS位姿顶点一样。

注意:边是没有固定不固定这一个说法的,因为优化的变量是位姿顶点,固定顶点就是在优化的过程中不改变这个顶点的位姿。

2.3.进行优化

在进行了上面的优化准备操作之后,进行优化即可。最后优化的结果,是调整各个顶点的位姿,从而让最后一个顶点的位姿尽量对齐到GPS位姿上。

3.优化完成后重新建图

由于是对位姿进行优化,所以优化完成之后,得到位姿图一定是变化的。因为之前的位姿图相对真实的GPS位姿图是有很大偏差的,优化后得到的是相对真实的GPS位姿图误差很小的。

那么由于前面局部见图都是相对于小车的每一个位姿图,尽管这个局部建图是准确的,但是由于小车的位姿不准确,所以最后的建图和GPS的全局地图相比有误差。现在小车的位姿图已经进行了优化矫正,现在需要把原先建立的地图在新的小车位姿图上进行重建,从而得到和GPS全局一致的地图。

所以最后的结果就是看起来位姿图并没有变化,并且相对于地图来说位姿图也没有变化。其实位姿图的绝对位姿(相对GPS的真实位姿)是变化了的,而相对地图不变是因为地图是相对于小车的每一个位姿建立的,这些都是准确的,最后优化的是小车的位姿图,并没有优化局部的建图,自然重新建图之后地图相对于小车的位姿图也是不变的。但是实际上此时全局的地图已经变化了,已经变成了和GPS全局地图相近的地图。

4.视频记录

注意这个优化的视频,注意最后优化完毕之后,地图动了一下,其实就是此时在优化后的位姿图上,重新进行了建图。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

位姿图优化小记2021.10.18 的相关文章

  • FreeRTOS源码学习_01-任务调度器-2021-10-28

    FreeRTOS源码学习 01 任务调度器 一 写在前面二 源码分析1 开始任务调度 xff1a void vTaskStartScheduler 2 创建软件定时器任务 xff1a 3 检查链表队列是否有效 xff1a prvCheckF
  • 2021-06-25 SONiC 系统BGP配置命令

    2021 06 25 SONiC 系统BGP配置命令 SONiC系统BGP配置 SONiC系统所默认包含的BGP模块在201811版的SONiC之前是开源的Quagga软件 xff0c 之后改成了更流行的FRR FRR中的Show命令是以
  • 2021年8月14日 七夕节的相遇 SONiC+P4实现

    2021年8月14日 七夕节的相遇 SONiC 43 P4实现 ONF启动了PINS项目 xff0c P4 integrated network stack
  • 2021-09-17

    https d2lzkl7pfhq30w cloudfront net pub archive epel 6 x86 64 以上是epel的新地址
  • 2021-03-08

    解决大疆无人机电池电压不平衡出现电池错误提示无法起飞 一个简单的笨办法 xff0c 处理某块电芯偏低 xff0c 而另一块明显偏高 xff0c 经平衡和数据修正后 xff0c 在使用中反复 xff0c 说明各电芯之间容量发生物理不可逆的容量
  • 2021-09-14

    eclipse maven run 错误 xff1a Fatal error compiling 无效的标记 release maven compiler plugin 3 8 1 中使用release便签eclipse 使用 Run gt
  • 北航2系921 2021考研历年真题及参考答案(2020-2004)

    需要自取 百度网盘 提取码 xff1a iwbg 关于2020北航921试题 相信大家都听说了 xff0c 2020年的921试题整体难度较2019年小 2019考完后 xff0c 群里面怨声载道 xff0c 信号10年没考电路题了怎么就今
  • 2021蓝桥杯B组 第I题杨辉三角形

    第I题 杨辉三角形 题目大意 xff1a 解法一 xff1a xff08 得20 xff09 思路 xff1a 当指考虑小范围的值时 xff0c 我们可以直接根据杨辉三角形的规律 xff1a 第i行第j列的值 61 第i 1行第j列的值 4
  • 一文加强对React的记忆(2021 年 6 月更新),收藏再也不用查看文档、教程了

    我不经常使用 React xff0c 所以每当我需要在 React 中做最小的事情时 xff0c 我都必须查看文档 教程或在论坛上发布问题 这就是我决定做这个记忆辅助工具的原因 xff0c 鉴于我的记忆力不是那么好 xff0c 我想为什么不
  • 2021-02-13

    昨天学习了关于位运算的一些常识 xff0c 自己也跟着视频敲了一些位运算代码如下 xff1a package com raisecom tiap ems basic mgt domain acl import java util Array
  • 2021-02-19

    This node presents a fast and precise method to estimate the planar motion of a lidar from consecutive range scans It is
  • 2021-08-19-leetcode-00001

    二分查找 704 给定一个 n 个元素有序的 xff08 升序 xff09 整型数组 nums 和一个目标值 target xff0c 写一个函数搜索 nums 中的 target xff0c 如果目标值存在返回下标 xff0c 否则返回
  • VsCode+LaTexWorkshop外置PDF预览配置(2021.3.3)

    随着插件版本的升级有些配置命令发生了改变 xff0c 这里只是做个简单记录 xff0c 写的比较粗糙 后面有闲工夫再来做做美工 VsCode一侧配置 34 latex workshop view pdf viewer 34 34 exter
  • 2021-03-08

    大疆无人机自己动手更换电芯的注意事项 xff0c 当电池多电芯出现均大压差且调整数据无效后 xff0c 或发现某块或多块电芯鼓包 xff0c 说明电芯已经老化 xff0c 寿命用尽 xff0c 就需要更换电芯了 xff0c 厂家为保护消费者
  • 2021-11-11 机械臂路径规划学习进展

    机械臂关节空间和末端空间路径规划 关节空间路径规划简单障碍物情况 xff1a 之后搭建复杂障碍物场景 xff1a 测试发现路径规划的两个步骤 xff1a 采用了关节空间进行路径规划的方案 xff0c 原因主要是在关节空间也就是构型空间中 x
  • 2021-10-07

    舵机PWM信号转继电器开关信号 本文由 麦粒电子 撰写 xff0c 并提供相应产品服务 叙述 航模玩家经常需要DIY改装 譬如飞行器做一个投弹的开关 xff0c 船用模型做一个投食机关 再或者弄一些彩灯控制 往往这些功能只需要有一个简单的开
  • 2021-08-31

    二次规划求解器OOQP的基础使用 前言一 OOQP所包含参数的定义二 简单调用1 头文件2 参数设置3 进行求解4 取出计算结果 总结 前言 OOQP作为一款强大的开源凸优化库 支持C 43 43 Matlab调用 现在这里记录下其简单的使
  • 2021校招_海康威视

    2021届海康威视面试 一面 xff1a 1 https与http协议的区别 2 Spring的启动过程 3 Springboot相比较Spring的优点 4 Linux修改文件权限命令 5 项目中所用到的技术 6 Restful风格 7
  • 2021美赛 MCM\ICM D题

    自古以来 音乐就已成为人类社会的一部分 已成为文化遗产的重要组成部分 为了理解音乐在人类集体经验中所扮演的角色 我们被要求开发一种量化音乐发展的方法 在创作新音乐时 有许多因素会影响艺术家 包括其天赋的创造力 当前的社会或政治事件 使用新乐
  • Pixi.js 显示文字无法换行

    官方案例 message style wordWrap true wordWrapWidth 100 align center 中文无法换行 设置breakWords属性 sprite style wordWrap true wordWra

随机推荐

  • UFA-FUSE:一种用于多聚焦图像融合的新型深度监督混合模型

    点击上方 小白学视觉 xff0c 选择加 34 星标 34 或 置顶 重磅干货 xff0c 第一时间送达 小白导读 论文是学术研究的精华和未来发展的明灯 小白决心每天为大家带来经典或者最新论文的解读和分享 xff0c 旨在帮助各位读者快速了
  • 实战 | 如何制作一个SLAM轨迹真值获取装置?

    点击上方 小白学视觉 xff0c 选择加 34 星标 34 或 置顶 重磅干货 xff0c 第一时间送达 本文知乎作者杨小东授权转载 xff0c 未经授权禁止二次转载 原文 xff1a https zhuanlan zhihu com p
  • 通俗易懂理解朴素贝叶斯分类的拉普拉斯平滑

    点击上方 小白学视觉 xff0c 选择加 34 星标 34 或 置顶 重磅干货 xff0c 第一时间送达 这个男生的四个特征是长相不帅 xff0c 性格不好 xff0c 身高矮 xff0c 不上进 xff0c 我们最终得出的结论是女生不嫁
  • 综述 | 激光与视觉融合SLAM

    点击上方 小白学视觉 xff0c 选择加 34 星标 34 或 置顶 重磅干货 xff0c 第一时间送达 SLAM包含了两个主要的任务 xff1a 定位与构图 xff0c 在移动机器人或者自动驾驶中 xff0c 这是一个十分重要的问题 xf
  • KITTI数据集简介与使用

    点击上方 小白学视觉 xff0c 选择加 34 星标 34 或 置顶 重磅干货 xff0c 第一时间送达 摘要 xff1a 本文融合了Are we ready for Autonomous Driving The KITTI Vision
  • DBSCAN聚类算法原理总结

    点击上方 小白学视觉 xff0c 选择加 34 星标 34 或 置顶 重磅干货 xff0c 第一时间送达 DBSCAN是基于密度空间的聚类算法 xff0c 在机器学习和数据挖掘领域有广泛的应用 xff0c 其聚类原理通俗点讲是每个簇类的密度
  • 深度学习GPU最全对比,到底谁才是性价比之王?

    点击上方 小白学视觉 xff0c 选择加 34 星标 34 或 置顶 重磅干货 xff0c 第一时间送达 本文转自AI新媒体量子位 xff08 公众号 ID QbitAI xff09 搞AI xff0c 谁又没有 GPU之惑 xff1f 张
  • 使用卡尔曼滤波器进行对象跟踪时最容易遗漏什么

    点击上方 小白学视觉 xff0c 选择加 34 星标 34 或 置顶 重磅干货 xff0c 第一时间送达 介绍 卡尔曼滤波器是一种复杂的算法 xff0c 在大多数情况下 xff0c 我们在没有完全理解其方程的情况下使用它 当我开始使用卡尔曼
  • 10分钟掌握异常检测

    点击上方 小白学视觉 xff0c 选择加 34 星标 34 或 置顶 重磅干货 xff0c 第一时间送达 异常检测 也称为离群点检测 是检测异常实例的任务 xff0c 异常实例与常规实例非常不同 这些实例称为异常或离群值 xff0c 而正常
  • 根据图像目标深度测试距离

    clc clear close all warning off addpath 39 func 39 计算物体的深度距离 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61
  • SLAM基础环境配置

    点击上方 小白学视觉 xff0c 选择加 34 星标 34 或 置顶 重磅干货 xff0c 第一时间送达 转自知乎作者 xff1a 佳浩 原文链接 xff1a https zhuanlan zhihu com p 385255026 如今
  • 多传感器融合定位:基于滤波的融合方法

    点击上方 小白学视觉 xff0c 选择加 34 星标 34 或 置顶 重磅干货 xff0c 第一时间送达 SLAM 后端的优化方式大体分为滤波和优化 近些年优化越来越成为主流 xff0c 在学习优化之前 xff0c 掌握滤波的工作原理也十分
  • 不要错过!顶会审稿人带读【大语言模型】前沿论文!

    LLaMA GLM 130B SELF INSTRUCT是三篇最新的语言模型相关的论文 xff0c 它们都展示了语言模型在不同方面的创新和突破 这三篇论文都体现了语言模型在双语 大规模 通用 快速 可复现等方面的重要进展 xff0c 对于语
  • 收藏 | 最全深度学习训练过程可视化工具

    点击上方 小白学视觉 xff0c 选择加 34 星标 34 或 置顶 重磅干货 xff0c 第一时间送达 仅作学术分享 xff0c 不代表本公众号立场 xff0c 侵权联系删除 转载于 xff1a 编辑丨极市平台 机器学习实验室 深度学习训
  • 为什么建议大家使用 Linux 开发?真的很很很优雅!

    点击上方 小白学视觉 xff0c 选择加 34 星标 34 或 置顶 重磅干货 xff0c 第一时间送达 编者荐语 Linux 开发不算简单 xff0c 要求同学们掌握的知识广且复杂 xff0c 有一定难度 但是同学们只要静下心来 xff0
  • favicon.ico不显示

    静态页面中 xff0c title前的favicon ico不显示的问题 原因还不详 解决办法 xff1a 清除浏览器缓存或者将favicon ico文件重命名
  • 树莓派系统镜像的下载和烧录

    一 树莓派镜像下载地址 树莓派官网的下载地址 xff1a 树莓派官网 软件安装 可在官网上下载最新的Raspbian树莓派系统 二 树莓派系统镜像烧写 准备 xff1a 一张2G以上的SD卡及读卡器 xff0c 最好是高速卡 xff0c 推
  • TF 坐标变换(已整理)

    文章目录 坐标msg消息静态坐标变换1 C 43 43 实现发布方 demo01 static pub cpp订阅方 demo02 static sub cpp 2 Python实现发布方 demo01 static pub p py订阅方
  • ROS Action通信

    文章目录 自定义action文件 类似msg和service 服务端 action01 server cpp客户端 action02 client cpp服务端 action01 server p py客户端 action02 client
  • 位姿图优化小记2021.10.18

    1 场景描述 现在有一个小车在运动 xff0c 并搭载相机或激光雷达进行建图工作 xff0c 由于SLAM的作用 xff0c 在建图的同时小车也可以进行自身的定位 xff0c 因此建立的地图的参考都是相对于自身坐标系的 xff0c 也就是每