位姿图优化小记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 的相关文章

  • 高翔讲课2021/8/12

    一些笔记精选 xff1a ORBSLAM 学界业界受欢迎的 有些扫地机器人就是直接用ORBSLAM做的 从代码质量到开放程度 xff0c ORB是个不错的选择 GPS本身频率低 xff0c 精度差 xff08 10m左右 xff09 xff
  • 2021 CondaHTTPError: HTTP 000 CONNECTION FAILED for url 的问题终极解决方案

    一 首先执行命令 xff0c 查看自己的镜像源 conda config show channels 二 可以首先删除已经存在的镜像源 xff08 注 xff1a 上述三个镜像源无需删除 xff01 xff01 xff01 xff09 xf
  • Java面试复习体系总结(2021版,持续更新)

    Java面试复习体系总结 xff08 2021版 xff09 感谢各位点赞 xff0c 收藏 xff0c 关注 xff01 文章会持续更新 xff0c 继续输出更多优质内容 xff0c 希望各位都能拿到好的offer 如果在准备算法题的话
  • 2021-02-06 SONiC SAI结构 Adapter&Adapter Host

    SONiC SAI SAI 结构 SAI是SONiC系统最精华的部分 xff0c SAI spec对SAI如何定义的以及SAI如何被SONiC系统初始化和调用有一些具体的介绍 首先还是一个High Level Design的图 xff1a
  • 2021-08-29 SONiC中基于策略的哈希配置

    SONiC中基于策略的哈希配置 SONiC可以支持对不同类型的报文采取不同的Hash算法 对于多通道 多链路连接的情况 xff0c 如LAG和ECMP的接口上 xff0c 交换机和路由器采用Hash算法对报文中指定的字段进行Hash计算 x
  • Redis面试题(2021最新)

    文章目录 概述什么是RedisRedis有哪些优缺点为什么要用 Redis 为什么要用缓存 为什么要用 Redis 而不用 map guava 做缓存 Redis为什么这么快 数据类型Redis有哪些数据类型Redis的应用场景 持久化什么
  • MySQL数据库面试题(2021最新版)

    文章目录 1 数据库基础知识为什么要使用数据库什么是SQL 什么是MySQL 数据库三大范式是什么MySQL有关权限的表都有哪几个MySQL的binlog有有几种录入格式 xff1f 分别有什么区别 xff1f 2 引擎MySQL存储引擎M
  • 北航2系921 2021考研历年真题及参考答案(2020-2004)

    需要自取 百度网盘 提取码 xff1a iwbg 关于2020北航921试题 相信大家都听说了 xff0c 2020年的921试题整体难度较2019年小 2019考完后 xff0c 群里面怨声载道 xff0c 信号10年没考电路题了怎么就今
  • 2021电赛F题数字识别和巡线部分

    文章之前12月发了一次 xff0c 但是我后来申请的免毕设后 xff0c 用到了一些文字 xff0c 所以删了这篇文章 xff0c 但是还是查重了 xff0c 于是我把一些程序讲解先删了 xff0c 等毕设结束后再编辑加上 这次电赛我没有准
  • 2021-03-19

    switch语句实现成绩选择 注意强制转换 import java util Scanner public class Grade Switch 64 param args public static void main String ar
  • 2021-10-24(机器学习实战-ch09 map方法和int不兼容问题)

    机器学习实战 ch09 TypeError unsupported operand type s for map and int span class token operator gt gt span span class token o
  • 2021-02-13

    昨天学习了关于位运算的一些常识 xff0c 自己也跟着视频敲了一些位运算代码如下 xff1a package com raisecom tiap ems basic mgt domain acl import java util Array
  • 【日记 2021-05-01】 leetcode练习&& Linux修改文件权限

    题目 xff1a 1335 工作计划的最低难度 题目内容 xff1a 你需要制定一份 d 天的工作计划表 工作之间存在依赖 xff0c 要想执行第 i 项工作 xff0c 你必须完成全部 j 项工作 xff08 0 lt 61 j lt i
  • VsCode+LaTexWorkshop外置PDF预览配置(2021.3.3)

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

    今天在网上安装PR xff0c 网上下载的安装器把电脑默认装了一大堆垃圾工具 xff0c 依次删除后突然发现谷歌浏览器主页被篡改了 xff0c 随后用360等工具修复 xff0c 均提示无异常 通过浏览器设置和重置主页后仍然无效 xff0c
  • 2021-03-08

    大疆无人机自己动手更换电芯的注意事项 xff0c 当电池多电芯出现均大压差且调整数据无效后 xff0c 或发现某块或多块电芯鼓包 xff0c 说明电芯已经老化 xff0c 寿命用尽 xff0c 就需要更换电芯了 xff0c 厂家为保护消费者
  • 2021-05-14 Redis面试题 redis 部署生产环境

    redis 部署生产环境 redis cluster xff0c 10 台机器 xff0c 5 台机器部署了 redis 主实例 xff0c 另外 5 台机器部署了 redis 的从实例 xff0c 每个主实例挂了一个从实例 xff0c 5
  • 2021-10-07

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

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

    C 43 43 指针随便笔记 sizeof 先说一个没有成员函数和参数的类 xff0c 占用一个字节 类中的成员函数 xff0c 作为外部指针时 xff0c 需要记得delete xff0c 否则会内存泄漏 指针的sizeof是指针本身的数

随机推荐

  • 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 也就是每