Cartographer总结

别再只用编码器了!用ROS的robot_localization包融合IMU与Odom,让你的Cartographer建图精度翻倍 本文详细介绍了如何利用ROS的robot_localization包融合IMU与Odom数据,显著提升Cartographer建图精度。通过多传感器融合技术,有效解决编码器里程计的累积误差问题,特别适用于长直走廊和低纹理环境下的SLAM应用。实战配置指南和调参技巧帮助开发者快速实现精度优化。 阅读详情

Cartographer总结

# 欢迎使用Markdown编辑器

由架构图知,Cartographer的建图过程是先获取scan输入,对其进行“体素过滤”下采样后再进行“自适应体素过滤”后进行scan matching(scan-to-submap)寻找scan在submap中的估计的最佳插入位置(本质是一个非线性最小二乘问题(使用双三次插值将二维的栅格像素位姿转为一维的像素概率得分)),使用滑动窗口更新submap。由于非线性二乘初始值越好结果越好,因此可以融合IMU和Odom的数据提供更好的初始值。
在通过CS公式计算得出scan插入submap的最优的位姿后(即前端Local SLAM做的事)。如果没有误差,那SLAM已经做完了。虽然submap中scan之间的误差很小可以忽略,但随时间推移,后面的submap中的scan与之前的submap之间的累积误差会很大。因此,需要对其进行优化,采用的优化算法是SPA(稀疏位姿调整),优化submap的全局位姿、scan的全局位姿、scan在submap中的插入位姿,约束是scan在submap中的位姿及两者间的协方差矩阵(实际的优化对象是Cartographer中的节点node(“scan的全局位姿”)。因为无论submap还是map地图,本质上都是激光scan在栅格化的地图中的观测结果,所以优化目标就是优化scan在全局坐标下的位姿,优化完所有的scan也就优化完了整个地图。顺便一提,Cartographer项目中使用自定义的容器MapById来存储需要优化的submaps和nodes)。如果检测到“回环约束”的话优化效果会更好,加速“回环检测”的方法是使用“预计算栅格像素约束得分”和“分支定界BBA”加速回环的检测,使用这两种方法加速的“回环检测”能够在当前scan插入submap之前就检测到回环而且做完对整个地图的全局优化,实现了实时的SLAM建图。这种高效率的回环检测方法就是Cartographer这个SLAM系统的最大创新之处,至于分支定界的“节点选择”(也就是某个scan全局位姿的选择)、“分支规则”、“上界计算”详见论文——“Real Time Loop Cluser in 2D Lidar SLAM”。
Cartographer性能:通过实验验证了Cartographer这种通过scan-to-submap并进行使用基于BBA和“栅格预计算”的回环检测,在检测到回环约束就进行Global SLAM全局优化的算法可以在较低的算力平台以及较低成本的传感器硬件上进行大场景的实时高精度SLAM建图定位。
在特征丰富的室内场景Cartographer可以有很好的实时高精度建图效果。但在特征稀疏的对称结构场景(eg.对称的长廊和办公室隔间)或室外场景性能退化严重(因为很容易出现“回环”的错误检测进行全局优化导致地图偏移)。之所以长廊办公室隔间等没有明显特征区别的环境导致Cartographer性能退化的原因是,在长廊或办公室隔间这种对称环境中行进时当前帧和之前的在长廊的帧都没有明显区别,所以只依赖scan会导致scan-to-submap匹配无法正确匹配也会导致错误的“回环检测”引发错误的全局优化,导致建图精度下降。

关键词:栅格占用概率&概率更新、CS(Scan-to-submap)、BBS(Loop Closer)、SPA(submap位姿、scan位姿、插入位姿、submap与scan之间协方差矩阵、Huber损失函数)

cartographer算法性能评估 cartographer算法性能评估 Evaluation 参考论文 性能评估是开发SLAM系统的关键部分,基于这一目的,Cartographer提供了内置工具,可以辅助调参过程或者被用于质量保证目的。 **即使没有专门的groundtruth 可以利用,也可以使用工具评估SLAM结果。**这与公共SLAM基准(例如KITTI数据集或TUM RGB-D数据集)形成对比,在这些数据中,高精度的gro... 阅读详情

相关推荐

cartographer使用landmark

cartographer使用landmark 打字不易,转载请注明。 1.在cartographer运行配置文件中打开 use_landmarks= true 2.运行cartographer。如果其他一切正常,会出现等待landmark的警告,且全局状态会报错(机器人模型错误是未加载机器人模型) 此时命令行窗口显示 此时程序会挂起,一直等到接收到landmark话题才开始运行。因此landm...

ybg的博客 9099

cartographer定位方案优化

解决方案就是获取地图中某一位置的实际障碍物信息(模拟当前位置激光扫描一圈得到的障碍物信息),与实际的激光信息进行匹配计算就可以判断定位位置是否准确了。例如图1中黄色线表示的区域会被误匹配到图2中黄色线表示的区域,实际观察cartographer计算的图1、图2两个位置叶子节点得分也是较为相似的;我所使用的激光为70元左右的三角测距激光,应该是最便宜的一种激光了,并且激光数据未做任何处理,该方案效改善定位精度效果明显;但图2中位置的激光信息实际应为红色线表示的区域,图3、图4为原图;

qq_39544354的博客 1208

cartographer

记录一点小的问题根据官网要求安装的是gmock官网安装过程,但是make的时候是需要gtest的。 我前几天编译cartographer是能成功的,最近自己在学习gtest,不知道改错了什么,不管怎么编译cartographer都不能成功。遇到两个问题1.CMP0026在下载github上的代码后,直接cmake,因为我的cmake版本是3.5,会有问题。有一个warning就是CMP0026。按

u010566411的专栏 4804

cartographer_ceres_scan_matcher_2d

同样的以 M(x)M(x)M(x) 概率越大越好,通过 1−M(x)1-M(x)1−M(x)则转为求最小值,也就是转为了最优化问题。最终目标要求最优的 T=(Tx,Ty,Tθ)T = (T_x,T_y,T_{\theta})T=(Tx​,Ty​,Tθ​) 通过优化求解。 常数 2 不影响结果,直接丢掉。 cartographer 在代码实现过程中直接使用的 ceres 自动求导,没有对以上公式推导的细节进行代码实现。误差项的定义与计算在如下文件中: 对外接口实现在 中,核心函数...

fb_941219的博客 1921

调试 Cartographer Laser-SLAM -- Cartographer 算法流程

Cartographer Algorithm walkthrough for tuning @author 薛轲翰 @email1 kehan.xue@gmail.com @email2 17795832478@mail.nwpu.edu.cn 本文参考cartographer官方文档. cartographer基本思路简介 cartographer基本思路简介 cartographer的主要贡献...

一步一脚印 7772

Cartographer 代码阅读分析

cartographer 算法主要有三个文件夹 1、cartographer_ros (该文件件里的代码是cartographer 在 ros平台中的接口) 2、cartographer (核心slam算法) 3、ceres-solver (google 的开源 优化库)

这趋势是要成为IT男啊的博客 1万+

环境退化识别(长走廊)

点云识别环境退化

Leo_Xj的博客 1501

Cartographer ROS Integration

Cartographer ROS Integration一、Configuration配置二、调试2.1 两个系统2.2 局部SLAM2.3 验证三、ROS API3.1 Cartographer 节点3.2 离线节点3.3 占据栅格节点四、包含的资源?(Assets writer)4.1 采样指南4.2 配置4.3 点云的第一人称视角的可视化五、demos5.1 仅局部的5.2 Revo LDS...

小C的博客 9878

LOAM框架后端优化总结

LOAM框架后端优化总结

SLAM小学僧 1056

cartographer之turtlebot

cartographer之turtlebotcartographer是Google最新开源的SLAM框架,在一般的使用有着不俗的表现。Google出品,必属精品,怀着抱大腿的心态,决定用turtlebot跑一个漂亮的demo。准备:硬件方面,我现在手里有hokuyo laser一枚,turtlebot一个(底座是kobuki),笔记本一台,台式机一台。 软件方面,ROS是必需的,我的是操作系统是u

awww797877的博客 3250

Cartographer源码理解

cartographer源码理解与仿真环境配置

qq_37705385的博客 1359

cartographer使用笔记

cartographer-ros使用指南一、Cartographer-ros的安装:1.1 安装Cartographer1.2 安装cartographer-ros二、使用官方数据集跑cartographer三、使用VLP-16跑cartographer3.1 二维定位与建图:3.2 三维定位与建图: 一、Cartographer-ros的安装: 1.1 安装Cartographer    参考官方文档安装即可。    https://google-cartographer.readthedocs.io/e

不世峰兄 的博客 3730

cartographer运行步骤

先驱动雷达 $roslaunch rslidar_pointcloud rs_lidar_16.launch 再运行pointcloud_to_laserscan节点将三维数据转化成二维 $roslaunch pointcloud_to_laserscan point_to_scan.launch 最后运行cartographer $roslaunch cartographer_ros carto...

weixin_43211438的博客 2324

从零开始学习cartographer源码 | 番外:如何在wsl内使用clion阅读cartographer源码

笔者在安装的时候遇到报错找不到Sphinx,查了一下是一个文档生成的工具,我安装后也无法加载到clion的环境变量内,不装它也不影响我们正常学习cartographer源码。同样的安装步骤笔者笔记本电脑安装毫无问题,从win10升级的win11就无法使用GUI的应用程序,笔者翻遍了优快云,GitHub都没有解决。参考Windows官方文档安装wsl2,建议安装wsl2,wsl2默认支持wslg,支持ros的各种可视化工具,如rqt,Rviz等。,注意将下面的用户名替换成你自己的用户名。

lixuan19940620的博客 2596

(一)cartographer及cartographer ros安装

貌似没有按照官网的教程,至于官网的教程等有时间再来测,参照的文章如下: 链接: https://blog.youkuaiyun.com/TengYun_zhang/article/details/93753468 具体步骤 1.安装依赖 sudo apt-get update sudo apt-get install -y \ cmake \ g++ \ git \ goog...

南北粉面馆 779

torchsparse安装

torchsparse安装以及安装失败原因分析和解决

AI_BING_的博客 1万+

Ubuntu18.04快速安装Cartographer以及Cartographer_ros

任务动机:快速完成基于Ubuntu18.04的Cartographer以及Cartographer_ros安装。 任务描述:分步安装验证后,将步骤合并成安装脚本。 Cartographer由谷歌一直在维护,从之前的tf1到现在melodic版本上的tf2_ros都有更新支持。而且cartographer所依赖的库也在一直更新,包括abseil-cpp,ceres-solver,protobuf等,其依赖的版本混乱,并不能相互兼容。经过测试,在2019年的某个版本解决好依赖问题之后,同样的方法在2020年

火种源码的机器人技术专栏 4371

Robosuite实战:通过Xbox手柄实现机械臂6-DoF精准控制的完整指南

本文详细介绍了如何通过Xbox手柄实现机械臂的6-DoF精准控制,结合Robosuite仿真环境与MuJoCo物理引擎,提供从环境配置到代码实现的完整指南。文章重点解析了手柄映射原理、核心控制代码以及数据采集优化技巧,帮助开发者高效完成机械臂控制任务。

weixin_29169505的博客 419

Cartographer配置与安装

cartographer_ros实战安装

晓晨的博客 7225

Android开发者必看:F2FS文件系统如何优化你的手机存储性能(附实测数据对比)

本文深入解析了F2FS文件系统如何针对闪存特性优化Android设备存储性能。通过对比ext4,F2FS采用追加写和冷热数据分离策略,将随机写转化为顺序写,显著提升写入速度并减少GC卡顿。实测数据显示,其在随机写入和SQLite事务等场景下性能提升显著,为开发者提供了优化应用IO性能的关键思路。

weixin_29248313的博客 324

手把手教你用Github提交CVE漏洞(附完整截图流程)

本文提供了在GitHub平台提交CVE漏洞的完整实战指南。从前期准备、目标搜寻与漏洞验证,到撰写规范的GitHub Issue进行披露,最后通过官方渠道完成CVE提交,手把手教你如何将安全研究成果转化为获得国际认可的CVE编号。

weixin_28309571的博客 319

Cartographer安装

参考链接 https://doc.bwbot.org/zh-cn/books-online/xq-manual/topic/136.html https://google-cartographer-ros.readthedocs.io/en/latest/ 基本步骤 1.安装依赖 sudo apt-get update sudo apt-get install -y \ cmake \ ...

清风、腾云的博客 3669

Fortify SCA 24.4 最新可用版

Fortify Static Code Analyzer(Fortify SCA) 是一款由 Micro Focus(原惠普旗下)开发的 静态应用安全测试(SAST)工具,专注于在软件开发早期通过分析源代码或编译后的二进制文件,识别潜在的安全漏洞、代码缺陷和合规性问题。以下是其核心特点与功能:核心功能 静态代码分析 在不运行程序的情况下,通过语法、语义分析检测代码中的安全漏洞(如 SQL 注入、跨站脚本(XSS)、缓冲区溢出等)和代码质量问题。

棉花糖的博客 3180
上一篇: 最简单的李群-李代数的理解
EngineerHao
博客等级 码龄9年 7粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值