Hector SLAM 原理详解、算法解析

2023-10-30

目录

  1.原理详解

  2.算法解析


1.原理详解

Hector整体算法很直接,就是将激光点与已有的地图“对齐”,即扫描匹配。扫描匹配就是使用当前帧与已经有的地图数据构建误差函数,使用高斯牛顿法得到最优解和偏差量。其工作是实现激光点到栅格地图的转换,t时刻所有的激光点都能变换到栅格地图中,也就意味着匹配成功。

  具体流程为:

首先初始时刻激光自身的坐标系与栅格地图坐标系重合,即激光在地图中的初始位姿(estimate)已知,激光的第一帧扫描数据在地图中的坐标已知。接着,获取到第二帧激光扫描数据,第二帧数据在激光雷达坐标系下的坐标是可以测出的(根据激光雷达的range、angle便可得到在激光坐标系下的坐标),但是不知道与第一帧的相对位置关系。

下一步就是实现这两帧数据的匹配,我们假设两帧数据无限接近,即激光点在栅格地图占用值接近1(占用值越大,匹配的效果越好)。然后构造最小二乘法,对函数先对括号内部展开,然后对使误差偏导为0,求解高斯牛顿方程(其中有用到地图求偏导的方程(双线性插值法),带入即可求出位姿增量(在hector位姿增量用变量searchDir)。

 接下来就可求出第二帧激光在地图坐标系下的位姿(第一帧位姿加上位姿增量即可得到,estimate += searchDir),slam中定位完成。

接下来建图,后一帧的激光位姿求出,因为已知后一帧激光点在激光坐标系下的坐标,所以可根据后一帧激光位姿得后一帧激光点在地图中坐标,即映射到地图中,完成slam建图过程。

cartographer中的前端匹配使用了双三次线性插值+ceres库求解非线性优化问题(构造最小二乘,优化匹配),而hector slam中使用了双线性插值+高斯牛顿求解非线性优化问题


hector存在的问题:
1、其中对于双线性差值,在理论上存在不连续的可能,Pm可能在计算的时候迭代的过程中跑出P00->P11围成的正方形。这个问题也被google的cartographer改进为三线性差值。

https://github.com.cnpmjs.org/googlecartographer/cartographer
2、没有对地图的修正能力,一旦地图出错,之后的匹配也都会出现问题。

2.算法解析

算法解析参考

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

Hector SLAM 原理详解、算法解析 的相关文章

随机推荐

  • ahut 周赛3

    A gzm判试卷 AhutOj 线段树 注意 一定要开到4 N 不然会RE 单点更新 求区间最值 单点更新不需要懒标记 区间修改是大量的点 需要懒标记 AC代码 include
  • 无需依赖Adobe Acrobat,在Java中进行PDF格式转换全新攻略

    将文档从一种格式转换为另一种格式是Spire PDF的主要功能之一 这种转换只不过是加载和保存操作的组合 因此 使用Spire PDF可以将文档从任何受支持的加载格式转换为任何受支持的保存格式 本文整理了包括在Java中以下文件格式的转换指
  • GNN、GCN、GAT图卷积神经网络学习

    一 GNN GNN能干什么 二 GCN 在GNN的基础上 GCN要解决的是一个什么问题呢 以求Xi的平均工资为例 更新后的节点信息 邻居节点的信息N 自身节点的信息 但是A只与B关联 B与很多节点关联 当计算A的平均工资时 按照上面的公式把
  • 4_makefile文件,gdb调试

    4 makefile文件 gdb调试 文章目录 4 makefile文件 gdb调试 1 makefile文件 2 gdb调试 4 makefile文件 gdb调试 1 makefile文件 依赖文件makefile操作 管理 自动化的编译
  • 安装与卸载pytorch

    目录 安装pytorch 方法一 安装pytorch 方法二 推荐 安装torchvision 查看当前pytorch版本 卸载pytorch 安装pytorch 方法一 运行以下命令 可将清华镜像添加至Anaconda仓库中 conda
  • Agents探索实践:自动写文章机器人

    最近几个周末都在写一个自动生成文章的机器人 经过上线实验之后 我的总结如下 1 基于Agents对业务流进行重构就是AI垂直应用的壁垒 2 Prompt的壁垒在于对业务关键环节的重构 可拆解为Role Goal Skill Constrai
  • 1.3.8 手写数字识别之动转静部署

    动静转换 动态图有诸多优点 比如易用的接口 Python风格的编程体验 友好的调试交互机制等 在动态图模式下 代码可以按照我们编写的顺序依次执行 这种机制更符合Python程序员的使用习惯 可以很方便地将脑海中的想法快速地转化为实际代码 也
  • 飞控调试_基于STM32F103开发的飞控系统设计(原理图+PCB+飞控源码)

    飞控是软件和硬件的集合体 没有了硬件或者软件都是不可以 但是上位机就不一样了 这只是一个调试的阶段 或者后期的美化阶段 没有了上位机我们照样可以使用 飞机也照样在天上飞行的 首先我们需要做的硬件设计 其中包括处理器 惯导模块 电源模块等 每
  • Webpack Sourcemap文件泄露漏洞

    Webpack Sourcemap文件泄露漏洞 前言 一 Webpack和Sourcemap 1 1 什么是Webpack 1 2 什么是Sourcemap 二 漏洞利用 2 1 使用reverse sourcemap工具 2 1 直接看前
  • 【教程】如何在标签打印工具TFORMer Designer中自定义布局?

    TEC IT的在线标签生成器TFORMer Designer提供标签打印服务 并提供即用型行业标签模板作为Web服务 使用此软件 您可以在几秒钟内创建您自己的标签和表格或在工业和物流业中使用即时可用的模板 TFORMer Designer的
  • 【源码】爬虫---西瓜视频

    1 瀑布流获取 import requests import json import time import math import hashlib import re import random from zlib import crc3
  • sklearn中RandomForest详解

    文章目录 随机森林基本原理 RandomForestClassifier 参数说明 实例 RandomForestClassifier 随机森林基本原理 随机森林是一种bagging算法 bagging是一种随机采样 bootsrap 算法
  • python画饼图加牵引线_python可视化---饼图添加图例

    原博文 2019 03 03 12 01 import matplotlib pyplot as plt import matplotlib as mpl mpl rcParams font sans serif SimHei mpl rc
  • 简析IBM联合NASA开源的地理空间基础模型

    8月4日 IBM在Hugging Face上开源了地理空间AI基础模型Prithvi Prithvi基于IBM的watsonx ai模型 使用NASA的Harmonized Landsat Sentinel 2 HLS 卫星数据进行训练 并
  • 红米8A 卡刷LineageOS-64位系统,需工具4g内存卡一张

    1 设备解锁 申请解锁小米手机 点击链接 下载解锁工具 根据提示进行解锁 解锁后重启等待5分钟进入系统 2 解锁成功后 刷入TWRP TWRP 请使用安卓10版本 https cloud 189 cn t uuIzymZZFbey 访问码
  • Java学生管理系统升级

    1 案例驱动模式 1 1案例驱动模式概述 通过我们已掌握的知识点 先实现一个案例 然后找出这个案例中 存在的一些问题 在通过新知识点解决问题 1 2案例驱动模式的好处 解决重复代码过多的冗余 提高代码的复用性 解决业务逻辑聚集紧密导致的可读
  • 使用Mutation Observer监听DOM变化(也许是最完全指南?)

    前言 打开自己的博客 猛然发现自己已经有快两个月没有更新了 一方面是因为确实没有遇到什么特别值得记录的问题及知识点 另一方面则是所在部门的组织架构调整 唉 日子难过啊 没啥心情更新 正题 众所周知 我们监听input值得变化 我们可以通过绑
  • Android开发—Fragment使用

    0 概述 是什么 Fragment是应用界面中可以重复使用的一部分 可以定义自己的布局 管理自己的生命周期以及处理自己的输入事件 如何存在 Fragment不能独立存在 必须由Activity或者另一个Fragment托管 特点 模块化 F
  • IntelliJ IDEA 入门到实战教程

    下载IDEA https www jetbrains com idea download section windows 显示一些页面设置 构建第一个普通java项目 默认使用java1 8环境 Next Next 自定义项目名称和路径 F
  • Hector SLAM 原理详解、算法解析

    目录 1 原理详解 2 算法解析 1 原理详解 Hector整体算法很直接 就是将激光点与已有的地图 对齐 即扫描匹配 扫描匹配就是使用当前帧与已经有的地图数据构建误差函数 使用高斯牛顿法得到最优解和偏差量 其工作是实现激光点到栅格地图的转