cartographer专题

cartographer+turtlebot+hokuyo|安装配置

cartographer+turtlebot+hokuyo|安装配置 系统:ubuntu 14.04+ros indigo 或 ubuntu 16.04+ros kinetic 平台:turtlebot2 传感器:hokuyo UTM-30LX laser 本文假设已经成功安装ubuntu,ros,以及各种与turtlebot相关的ros package等。本文主要介绍,怎么安装配car

Ubuntu20.04+ros-noetic配置Cartographer

一、概述         因为要配置激光SLAM,Cartographer属于激光雷达SLAM 中比较经典的一款,在学习之前先将其在Ubuntu20.04首先配置出来并成功运行demo。 二、具体操作 (一)概述         使用平台是Windows的wsl2上的Ubuntu20.04子系统,双系统与虚拟机的安装原理与这个相同。主要依照的安装操作是官方文档,链接如下所示。 Runni

cartographer analysis - second chapter

第一章中的代码是ros-cartographer,实现了对cartographer的调用。通过trajectory_builder_ 的AddHorizontalLaserFan ,AddLaserFan3D ,AddImuData 方法向cartographer提供了传感器数据。 trajectory_builder_ 属于类 GlobalTrajectoryBuilderInterface.

cartographer analysis - first chapter

为了分析这个代码的运行原理,首先切到最初的版本,这样的简化代码有利于理解cartographer的运行基本方式。 如上是cartographer的调用入口。 Node 是一个类,run 函数调用了Node的三个接口:构造函数,以及SpinForever, Initialize. 可以看到仅开放了main函数调用的方法。 Initialize()方法: 1. subscribe t

cartographer source analysis

颓废了快半年了,换了工作,该重新开始对优秀代码的分析之旅了,最近好多想分析的代码没来得及看。 继上一次对ROS navigation的分析之后,接下来推出对google的cartographer源码分析。搜了一遍,没见到满意的源码分析,失望啊。 半年不上blog ,罪过罪过

Cartographer学习笔记

Cartographer 是一个跨多个平台和传感器配置提供 2D 和 3D 实时同步定位和地图绘制 (SLAM) 的系统。  1. 文件关系 2. 代码框架 common: 定义了基本数据结构和一些工具的使用接口。例如,四舍五入取整的函数、时间转化相关的一些函数、数值计算的函数、互斥锁工具等。详见Common部分源码分析 sensor: 定义了传感器数据的相关数据结构。详见sens

Cartographer前后端梳理

0. 简介 最近在研究整个SLAM框架的改进处,想着能不能从Cartographer中找到一些亮点可以用于参考。所以这一篇博客希望能够梳理好Cartographer前后端优化,并从中得到一些启发。carto整体是graph-based框架,前端是scan-map匹配,后端是SPA优化。前端又分为CSM+Ceres两个部分,完成匹配后则会进入子图生成维护中。在子图维护以及优化后放入后端优化,完成全

ROS2+TurtleBot3+Cartographer+Nav2实现slam建图和导航

0 引言 入门机器人最常见的应用就是slam建图和导航,本文将详细介绍这一流程, 便于初学这快速上手。 首先对需要用到的软件包就行简单介绍。 turtlebot3: 是一个小型的,基于ros的移动机器人。 学习机器人的很多示例程序都是基于turtlebot3。 Cartographer: 是一个流行的slam建图工具包。 Nav2: 是一个流行的导航工具包。 gazebo: 是一个基于ros的物

Cartographer 的前端算法思路

前一篇博客里面提到的是 Cartographer 前端实现中非常小的一个部分的算法思路,参照了《Real time correlative scan matching》里的算法实现了一部分实时scan match 的功能,不过这并不是Cartographer中前端的全部,甚至是可以通过参数disable的一部分功能。  在 Cartographer 对应的论文《Real-Time Loop Clo

ros安装cartographer

安装 当然是先去看cartograpger官方文档了,照着说明一步步下来。 执行以下语句会报错, wstool merge -t src https://raw.githubusercontent.com/cartographer-project/cartographer_ros/master/cartographer_ros.rosinstallwstool update -t src

cartographer问题处理

问题1 : CMake Error: The following variables are used in this project, but they are set to NOTFOUND.Please set them or make sure they are set and tested correctly in the CMake files:GMOCK_LIBRARY (AD

cartographer代码学习-概率栅格地图(栅格地图的更新)

在cartographer中,地图的更新是很重要的一部分内容,如何将一帧一帧的激光点云转换成子图,则是其中的核心部分。 栅格地图的更新流程 根据前面所学,我们知道在local_trajectory_builder_2d中,函数在对点云预处理后调用了扫描匹配模块: // Step: 7 对 returns点云 进行自适应体素滤波,返回的点云的数据类型是PointCloudconst sen

cartographer_ros+Ubuntu14.04 安装

cartographer_ros+Ubuntu14.04安装 最近接手SLAM这块相关的工作,进行了非常浅显的研究。最近谷歌开源了cartographer库,基于雷达数据进行室内场景地图重建。抱着试一试的心理,安装了cartographer和cartographer_ros。主要步骤包括: Ubuntu基本设置安装ROS_Indigo安装Cartographer_ROS安装Cartograph

cartographer实时显示三维点云地图

cartographer不能实时显示三维点云地图, 这是大家公认的cartographer 3d建图的弊端. 这篇文章就带着大家将cartographer三维地图显示出来. 这部分的代码已经开源在 https://github.com/xiangli0608/cartographer_detailed_comments_ws 1 需要的数据 既然想要显示三维点云地图, 就必须要有每帧数据的

cartographer保存地图

参考链接 https://www.ncnynl.com/archives/201904/2915.html 操作步骤 不再接受进一步数据 rosservice call /finish_trajectory 0 序列化保存其当前状态 rosservice call /write_state "{filename: '${HOME}/Downloads/mymap.pbstream'}

cartographer 常见问题及解决方法

1. Check failed: status == 0 (2 vs. 0) [string “include “map_builder.lua”…”]:36: attempt to index global ‘SPARSE_POSE_GRAPH’ (a nil value) 问题描述:出现这个问题的原因是map_builder.lua文件中没有SPARSE_POSE_GRAPH这个参数,这是由

ROS编译时cartographer,cartographer-ros did not find

对工作空间进行初次编译时,出现错误,运行了以下命令: sudo apt-get install ros-melodic-navigation 再次编译时,出现以下错误 sudo apt-get install ros-melodic-cartographer sudo apt-get install ros-melodic-cartographer-ros

ROS cartographer的安装

ROS cartographer的安装与一些坑 安装前先检查是否安装过了proto,执行 protoc --version 看看有没有,有的话可能会报错 根据官方文档开始安装 # Install wstool and rosdep.sudo apt-get updatesudo apt-get install -y python-wstool python-rosdep ninja

cartographer ceres后端优化

这里引用一篇文章 https://zhuanlan.zhihu.com/p/567635409 因为cartographer中的代码有的地方添加了AddParameterBlock,有的地方没有添加,会引起歧义,原来AddParameterBlock可以隐式添加优化变量,这篇文章介绍了具体原因,核心内容如下: AddParameterBlock的作用 作用一:用户可以选择使用Problem:

Cartographer 多分辨率地图和分支定界算法

多分辨率地图 函数调用 PrecomputationGridStack2D 这个图直接让我想起了图像处理中的膨胀操作。膨胀就是求局部最大值的操作,核B与图形卷积,即计算核B覆盖的区域的像素点的最大值,并把这个最大值赋值给参考点指定的像素。 滑窗操作会导致地图变大。 假设原始栅格地图尺寸为[h, w],经过width的滑动窗口处理后,将采样后地图尺寸变为[h+width-1, w+width-

移动机器人激光SLAM导航(五):Cartographer SLAM 篇

参考 Cartographer 官方文档Cartographer 从入门到精通 1. Cartographer 安装 1.1 前置条件 推荐在刚装好的 Ubuntu 16.04 或 Ubuntu 18.04 上进行编译ROS 安装:ROS学习1:ROS概述与环境搭建 1.2 依赖库安装 资源下载完解压并执行以下指令 https://pan.baidu.com/s/1LWqZ4SOK

Noetic-cartographer跑自己的数据包----记录(脑子不好容易忘记)

根据官网的提示 和大佬:https://blog.csdn.net/qq_40216084/article/details/104599308?的文章 1.在/cartographer_ws/install_isolated/share/cartographer_ros/目录下 (1)在上面的目录下urdf中建立你自己的urdf文件my_robot_.urdf <!--Copyright 201

Cartographer学习

官方文档:Compiling Cartographer ROS — Cartographer ROS documentation  动手学ROS2 1、源码安装 git clone https://ghproxy.com/https://github.com/ros2/cartographer.git -b ros2git clone https://ghproxy.com/h

cartographer编译失败

cartographer编译失败 cartographer在编译的过程中,报错:multiple rules generate CMakeFiles/ ,提示编译pb.cc 文件冲突;把ninja换成1.8版本。报错消失。 Base path: /home/sukai/workspace/0/137/cartographer_noeti

cartographer切换地图显示问题,临时解决方案

注意:该方案只在2张地图的子图数量不同时才有效,即通过检测子图的不同来清除路径变量,是临时的解决方案,正确的思路应该再写一个话题或服务通知rviz更新数据 附代码 void SubmapsDisplay::processMessage(const ::cartographer_ros_msgs::SubmapList::ConstPtr& msg) {absl::MutexLock locke

Cartographer中的2D扫描匹配算法

Cartographer中的2D扫描匹配算法 基础知识 Ceres Solver 入门教程 Ceres的Options详解 原理公式 待续。。。 Cartographer中代码实现详细注释 位置:cartographer_ws/src/cartographer/cartographer/mapping/internal/2d/scan_matching/ceres_scan_match