热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

ros:cartographer(二)整体介绍

cartographer的doc中给出了这个图。现在我还没看过源码,所以只能猜测一些内容。待看完源码后,再详细介绍这个图。直观地说,左侧

在这里插入图片描述
cartographer的doc中给出了这个图。
现在我还没看过源码,所以只能猜测一些内容。
待看完源码后,再详细介绍这个图。

直观地说,左侧的是输入的数据,包括测距数据、码盘里程计和IMU数据。左下方的固定的姿态应该是作为整个sparse pose的锚点。

pose extrapolator的输入包括:里程计姿态、imu估计的姿态和扫描匹配输出的姿态。既然有三种关于姿态的信息(实际中可以配置,如没有IMU),那么可以通过滤波方法获得更准确的位姿估计。这里我的感觉还应该有其他的功能,如作为扫描匹配的初值。
这里的一个问题是:scan-matching是采用哪种方式?图中就有距离数据和位姿进入scan matching,感觉少一部分内容。

扫描匹配的姿态传递给运动滤波蒸馏(位姿变化或时间变化),也就是如果机器人一直静止不动的话,新来的数据是没有太大意义的,所以把这些数据扔掉。

如果运动了或者经过了一段时间,则把姿态和滤波后的激光数据加入到sub map中。
并插入结果(时间、姿态、数据和submaps)

然后传递给后端线程,创建位姿图。这里包括回环检测。

大体上从这个图中,若没有看过源码,很多细节还是不清楚。

由于我的下一步工作是做相关内容,所以我将重点关注:
采用里程计和2D激光雷达传感器,构建栅格地图。所以在后续的文章中,主要分析与之相关的源码内容。

这里我的问题:
1 扫描匹配采用何种方式?scan-scan,scan-map,map-map?
2 位姿图是如何构建的?
3 如何进行的回环检测?
4 里程计和扫描匹配的姿态融合采用何种方法?
5 …

cartographer 用到的库:

Boost:准标准的C++库。

Eigen3: 准标准的线性代数库。

Lua:非常轻量的脚本语言,主要用来做Configuration

Ceres:这是Google开源的做非线性优化的库,仅依赖于Lapack和Blas

Protobuf:这是Google开源的很流行的跨平台通信库

cartographer.xml
cartographer
1.0.0

Cartographer is a system that provides real-time simultaneous localization
and mapping (SLAM) in 2D and 3D across multiple platforms and sensor
configurations.


The Cartographer Authors

Apache 2.0

https://github.com/googlecartographer/cartographer

The Cartographer Authors

catkin

g+±static
google-mock
python-sphinx

boost
ceres-solver
eigen
libcairo2-dev
libgflags-dev
libgoogle-glog-dev
lua5.2-dev
protobuf-dev

cmake

cartographer_ros的xml

cartographer_ros
1.0.0

Cartographer is a system that provides real-time simultaneous localization
and mapping (SLAM) in 2D and 3D across multiple platforms and sensor
configurations. This package provides Cartographer’s ROS integration.


The Cartographer Authors

Apache 2.0

https://github.com/googlecartographer/cartographer_ros

The Cartographer Authors

catkin

google-mock
g+±static
protobuf-dev
python-sphinx

cartographer
cartographer_ros_msgs
eigen_conversions
geometry_msgs
libgflags-dev
libgoogle-glog-dev
libpcl-all-dev
message_runtime
nav_msgs
pcl_conversions
robot_state_publisher
rosbag
roscpp
roslaunch
roslib
sensor_msgs
std_msgs
tf2
tf2_eigen
tf2_ros
urdf
visualization_msgs


推荐阅读
  • Android商城应用开发指南(第二部分):创建启动欢迎页
    大多数商城应用程序在启动时会显示一个欢迎页面,以提升用户体验。本文将指导您如何实现一个基本的欢迎页,该页面会在用户打开应用后短暂展示,随后自动跳转至主界面。 ... [详细]
  • 在编译BSP包过程中,遇到了一个与 'gets' 函数相关的编译错误。该问题通常发生在较新的编译环境中,由于 'gets' 函数已被弃用并视为安全漏洞。本文将详细介绍如何通过修改源代码和配置文件来解决这一问题。 ... [详细]
  • 本题探讨了在一个有向图中,如何根据特定规则将城市划分为若干个区域,使得每个区域内的城市之间能够相互到达,并且划分的区域数量最少。题目提供了时间限制和内存限制,要求在给定的城市和道路信息下,计算出最少需要划分的区域数量。 ... [详细]
  • 本文详细探讨了HTML表单中GET和POST请求的区别,包括它们的工作原理、数据传输方式、安全性及适用场景。同时,通过实例展示了如何在Servlet中处理这两种请求。 ... [详细]
  • 利用决策树预测NBA比赛胜负的Python数据挖掘实践
    本文通过使用2013-14赛季NBA赛程与结果数据集以及2013年NBA排名数据,结合《Python数据挖掘入门与实践》一书中的方法,展示如何应用决策树算法进行比赛胜负预测。我们将详细讲解数据预处理、特征工程及模型评估等关键步骤。 ... [详细]
  • 实用正则表达式有哪些
    小编给大家分享一下实用正则表达式有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下 ... [详细]
  • 本文探讨了如何在 F# Interactive (FSI) 中通过 AddPrinter 和 AddPrintTransformer 方法自定义类型(尤其是集合类型)的输出格式,提供了详细的指南和示例代码。 ... [详细]
  • 本文将详细介绍如何在没有显示器的情况下,使用Raspberry Pi Imager为树莓派4B安装操作系统,并进行基本配置,包括设置SSH、WiFi连接以及更新软件源。 ... [详细]
  • 本文将带您了解Cocos家族的不同版本和分支,特别是Cocos Creator的发展历程及其核心特性,帮助初学者快速入门。 ... [详细]
  • YB02 防水车载GPS追踪器
    YB02防水车载GPS追踪器由Yuebiz科技有限公司设计生产,适用于车辆防盗、车队管理和实时追踪等多种场合。 ... [详细]
  • 微信小程序中实现位置获取的全面指南
    本文详细介绍了如何在微信小程序中实现地理位置的获取,包括通过微信官方API和腾讯地图API两种方式。文中不仅涵盖了必要的准备工作,如申请开发者密钥、下载并配置SDK等,还提供了处理用户授权及位置信息获取的具体代码示例。 ... [详细]
  • 地球坐标、火星坐标及百度坐标间的转换算法 C# 实现
    本文介绍了WGS84坐标系统及其精度改进历程,探讨了火星坐标系统的安全性和应用背景,并详细解析了火星坐标与百度坐标之间的转换算法,提供了C#语言的实现代码。 ... [详细]
  • 本文探讨了在JavaScript中执行字符串形式代码的多种方法,包括使用eval()函数以及跨页面调用的方法。同时,文章详细介绍了JavaScript中字符串的各种常用方法及其应用场景。 ... [详细]
  • 现代软件工程开发体验:结对编程
    距现代软件工程开课已经3周,按照课程安排,在最近的9天中,我们进行了极限编程模式的体验:pairwork(结对编程,具体见链接),对象是在academicsearchmap上添加一些新特性。经过选 ... [详细]
  • Python库在GIS与三维可视化中的应用
    Python库极大地扩展了GIS的能力,使其能够执行复杂的数据科学任务。本文探讨了几个关键的Python库,这些库不仅增强了GIS的核心功能,还推动了地理信息系统向更高层次的应用发展。 ... [详细]
author-avatar
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有