Cartographer学习笔记

Cartographer 是一个跨多个平台和传感器配置提供 2D 和 3D 实时同步定位和地图绘制 (SLAM) 的系统。 

1. 文件关系

2. 代码框架

common: 定义了基本数据结构和一些工具的使用接口。例如,四舍五入取整的函数、时间转化相关的一些函数、数值计算的函数、互斥锁工具等。详见Common部分源码分析

sensor: 定义了传感器数据的相关数据结构。详见sensor源码分析

transform: 定义了位姿的数据结构及其相关的转化。如2d\3d的刚体变换等。详见:transform部分源码分析

mapping: 定义了上层应用的调用借口以及局部submap构建和基于闭环检测的位姿优化等的接口。这个文件也是算法的核心。其中mapping_2d和mapping_3d是对mapping接口的不同实现。详见mapping部分源码分析

io: 定义了一些与IO相关的工具,用于存读取数据、记录日志等。详见io部分源码分析

cloud: 该部分的功能我暂时还不清楚,打开看猜测是与云服务相关的功能。ground_truth、metrics这两个文件夹也还不清楚作用,目前该部分可以暂时不管,等我们后面碰到了再说。

参考文献

Cartographer源码阅读1——整体框架介绍 - 知乎

【Cartographer 专题讲解二】Cartographer_ros 代码讲解入门_哔哩哔哩_bilibili

Cartographer — Cartographer documentation

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/701712.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

变量的基本原理

目录 注意: 程序中 号的使用 数据类型 string类 变量相当于内存中一个数据存储空间的表示,你可以把变量看做是一个房间的门牌号,通过门牌号我们可以找到房 间,而通过变量名可以访问到变量(值)。 int age 30; double score …

iFlyCode:AI智能编程助手引领未来软件开发新趋势

体验地址 在当前软件行业飞速发展的背景下,开发效率和代码质量成为了衡量软件工程师工作效能的两大关键指标。为了应对日益增长的市场需求和紧迫的发布时间,科大讯飞推出了iFlyCode2.0——一款集AI技术于一身的智能编程助手,旨在引领未来软件…

Linux C语言:指针的运算

一、指针的算术运算 1、指针运算 指针运算是以指针所存放的地址作为运算量而进行的指针运算的实质就是地址的计算 2、指针的算数运算 指针加上整数,指针减去整数, 指针递增,指针递减和两个指针相减。 指针加减一个n的运算: px n px - n 移动步长…

Windows远程桌面连接

试验:使用Oracle VM VirtualBox创建虚拟机与物理机进行远程桌面连接实验 1. 准备 使用VirtualBox创建一台win10虚拟机,并与本地物理机相互ping通。(注意:如何存在ping不通,可以试一下关闭Windows的防火墙)…

【机器学习】机器学习与金融科技在智能投资中的融合应用与性能优化新探索

文章目录 引言机器学习与金融科技的基本概念机器学习概述监督学习无监督学习强化学习 金融科技概述股票预测风险管理资产配置 机器学习与金融科技的融合应用实时市场数据分析数据预处理特征工程 股票预测与优化模型训练模型评估 风险管理与优化深度学习应用 资产配置与优化强化…

突破管理瓶颈:基于前端技术的全面预算编制系统解析

前言 在现代商业环境中,预测销售数据和实际成本是每个公司CEO和领导都极为重视的关键指标。然而,由于市场的不断变化,准确地预测和管理这些数据变得愈发具有挑战性。为了应对这一挑战,建立一个高效的系统来管理和审查销售数据的重…

从PCB到芯片的电源控制

随着硅技术的进步,ASIC 密度更高,逻辑电压随之降低。较低的电压与较高的电流要求相结合,要求电源具有更严格的容差。从 PCB 到芯片的电源控制是本研究的主题。使用典型旁路值的频率扫描仿真表明,分立封装电容器并不是降低芯片电源…

Java面试八股之子类可以从父类继承哪些内容

Java子类可以从父类继承哪些内容 Java子类可以从父类继承以下内容: 属性(Fields/Variables): public:子类可以继承父类所有的public修饰的属性。 protected:子类可以继承父类所有的protected修饰的属性…

Redisson 实现分布式锁

1、相关配置 Component public class RedissonDistributedLock {Autowiredprivate RedissonClient redissonClient;public boolean tryLock(String lockKey, long expireTime, long waitTime) throws InterruptedException {RLock lock redissonClient.getLock(lockKey);retu…

C++ 引用 - 引用的特点|在优化程序上的作用

引用是C 的一个别名机制,所谓别名,就是同一块内存共用多个名字,每个名字都指的是这片空间,通过这些别名都能访问到同样的一块空间。 就像鲁迅和周树人是同一个人。 ——鲁迅 一、引用的基本用法 int a 10; int& ref a; // …

Python实现base64加密/解密

实现原理:导入base64库 一、加密 import base64# 加密 username "admin" base64_username base64.b64encode(username.encode(utf-8)).decode() print(base64_username) password "123" base64_password base64.b64encode(password.encod…

腾讯云大数据ES Serverless

Elasticsearch:日志和搜索场景首选解决方案。 技术特点:分布式、全文搜索和数据分析引擎,可以对海量数据进行准实时地存储、搜索和统计分析。 ES的技术栈一共包含四个组件: 其中最核心的是Elasticsearch,可用于数据…

halcon算子之prepare_object_model_3d详解

为某一操作准备三维对象模型。 Description 操作符prepare_object_model_3d准备3D对象模型ObjectModel3D,用于下面目的中给出的操作。它计算操作所需的值并将其存储在ObjectModel3D中,从而加快了后续操作。没有必要调用prepare_object_model_3d。但是,如果要多次使用3D对象…

低成本和颜值兼顾的 HomeLab 设备:HPE MicroServer Gen10(二)

本篇文章,继续分享另外一台端午假期折腾的设备,HP MicroServer Gen10 一代。同样分享下我的折腾思路,希望能够帮助到有类似需求的你。 写在前面 Gen10 “标准版”(第一代)和 Plus 版本设计风格一致,同样颜…

onlyoffice在线预览加载优化

背景: 使用容器部署onlyoffice到linux服务器,使用内网访问速度还可以接受,但是如果放到外网路径访问起来,速度就会很慢,甚至加载失败; 优化方案: 预览的过程排除网络因素,可以发现打…

(1)图像识别yolov5—安装教程

目录 1、安装YOLOv5: 2、下载预训练模型: 3、识别示例图片: 1、安装YOLOv5: 首先,你需要在你的计算机上下载 YOLOv5 的文件包,下载链接:https://github.com/ultralytics/yolov5。下载后对压缩文件进行解压。 通常使用 YOLOv5 识别物体,需要安装必要的 依赖…

海外媒体发稿渠道和方法有哪些?如何选择靠谱的国外媒体发稿服务商?

在选择海外媒体发稿服务商时,以下是一些关键点可以帮助您找到靠谱的服务商: 服务商的经验和口碑:查找该服务商在行业内的声誉和客户评价。拥有丰富经验和良好口碑的服务商通常更可靠。 媒体资源和覆盖范围:了解服务商所能提供的媒…

如何快速学会互联网运营?

答案只有一个,那就是选项目,跟团队,直接实操,比你花几千几万的学费更实在。早上就有好几位伙伴加入,咱们团队几乎每天都有干货分享。 作为千益畅行旅游卡源头,咱们没有套路,唯有靠谱得人心。你…

Python AI 编程助手:Fitten Code插件

一. 简介 今天为大家推荐一款适配了 Viusal Studio,VS Code(本文使用),JetBrains 系列(本文使用)以及Vim等多种编译器环境的插件 Fitten Code,Fitten Code 是由非十大模型驱动的 AI 编程助手,它可以自动生成代码,提升…

肾合能量不足?揭秘手心热出汗的真相

想象一下,我们的身体如同一座精密的城堡,城堡内的每一个房间都代表着一个器官,而城堡的守卫——气血,则是维系城堡和谐稳定的重要力量。当城堡中的守卫力量不足,或是城堡内的环境出现紊乱时,城堡的某个角落…