双机 Cartogtapher 建图文件配置

2024-04-01 11:20

本文主要是介绍双机 Cartogtapher 建图文件配置,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

双机cartogtapher建图

最近在做硕士毕设的最后一个实验,其中涉及到多机建图,经过调研最终采用cartographer建图算法,其中配置多机建图的文件有些麻烦,特此博客以记录

非常感谢我的同门 ”叶少“ 山上的稻草人-CSDN博客的帮助,经过他的点拨,第二天终于将搞明白了如何修改frame_id使得多机启动后tf不冲突,从而实现多机建图


本文不讲原理(因为我目前也不懂很多哈哈哈),只记录如何修改launch等文件实现多机使用cartographer建图不冲突

主要就是修改 frame_id,frame_id是TF坐标的参考

要修改的地方主要在:

无人车(或无人机等)的 urdf 文件

无人车启动相关launch 启动文件

底盘控制 launch 文件

描述 TF 关系的 launch文件

雷达launch文件

cartographer使用到的 lua 文件

PS:建议都把源文件复制一份,重新改名,这样能保存源文件,不至于修改后回不到开始原状态了

目录

一、修改cartographer的launch文件

二、修改无人车相关launch文件

三、修改后的TF树

四、双机运行展示效果

一、修改cartographer的launch文件

该文件名为:revo_lds.lua,路径为 /opt/ros/melodic/share/cartographer_ros/configuration_files

建议复制一份修改名字,我这里复制了一份,重命名为 hc_revo_lds.lua

修改如下三个地方
在这里插入图片描述

tracking_frame:一般设置为发布频率最高的传感器的frame_id

published_framecartographer发布的tf树最后将指向 published_frame,这个必须设置正确,否则TF树连接不成功,一般设置为地盘的 link name

为了区别其他的无人车,我这里加了前缀 “car1/”

odom_frameodom_frame与实际的里程计话题及消息没有什么关系,只是cartographer的一个中间话题,如果将 provide_odom_frame 设置为 true,则 TF 为 map -> odom_combined1 -> car1/base_footprint

如果将 provide_odom_frame 设置为 false,则 TF 为 map -> car1/base_footprint

这取决于是否需要 cartographer 来提供 odom信息

PS:修改建图 launch文件
在这里插入图片描述

如果第一步你修改了文件名,则这里需要修改一下


二、修改无人车相关launch文件
  1. 修改无人车底盘 frame_id

    hc_base_serial.launch
    在这里插入图片描述

  2. 修改无人车的 urdf 文件 hc_mini_mec_robot.urdf

    主要修改 link 的名字

    hc_mini_mec_robot.urdf

    在这里插入图片描述

  3. 修改 TF 坐标变化的 launch 文件,替换使用到的 URDF 文件名

    hc_robot_model_visualization.launch
    在这里插入图片描述

  4. 在 turn_on 功能包中修改用于建图、导航的 TF 关系与小车外形 launch文件(跟你自己的对应上即可)hc_turn_on_wheeltec_robot.launch
    在这里插入图片描述

  5. 修改雷达 launch 文件 hc_rplidar.launch,frame_id 加上前缀即可
    在这里插入图片描述

  6. 修改 mapping 建图 launch文件 ,修改几个launchw文件,添加 group 命名空间,与其他智能体区分

    hc_mapping.launch

在这里插入图片描述


三、修改后的TF树效果

所有的TF树

在这里插入图片描述

无人车1的TF树

在这里插入图片描述

无人车2的TF树(只改了无人车1,所以无人车2不动它了)

在这里插入图片描述

四、双机运行展示效果

无人车1

在这里插入图片描述

无人车2

在这里插入图片描述

这篇关于双机 Cartogtapher 建图文件配置的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/867037

相关文章

配置springboot项目动静分离打包分离lib方式

《配置springboot项目动静分离打包分离lib方式》本文介绍了如何将SpringBoot工程中的静态资源和配置文件分离出来,以减少jar包大小,方便修改配置文件,通过在jar包同级目录创建co... 目录前言1、分离配置文件原理2、pom文件配置3、使用package命令打包4、总结前言默认情况下,

VScode连接远程Linux服务器环境配置图文教程

《VScode连接远程Linux服务器环境配置图文教程》:本文主要介绍如何安装和配置VSCode,包括安装步骤、环境配置(如汉化包、远程SSH连接)、语言包安装(如C/C++插件)等,文中给出了详... 目录一、安装vscode二、环境配置1.中文汉化包2.安装remote-ssh,用于远程连接2.1安装2

Redis多种内存淘汰策略及配置技巧分享

《Redis多种内存淘汰策略及配置技巧分享》本文介绍了Redis内存满时的淘汰机制,包括内存淘汰机制的概念,Redis提供的8种淘汰策略(如noeviction、volatile-lru等)及其适用场... 目录前言一、什么是 Redis 的内存淘汰机制?二、Redis 内存淘汰策略1. pythonnoe

windos server2022的配置故障转移服务的图文教程

《windosserver2022的配置故障转移服务的图文教程》本文主要介绍了windosserver2022的配置故障转移服务的图文教程,以确保服务和应用程序的连续性和可用性,文中通过图文介绍的非... 目录准备环境:步骤故障转移群集是 Windows Server 2022 中提供的一种功能,用于在多个

windos server2022里的DFS配置的实现

《windosserver2022里的DFS配置的实现》DFS是WindowsServer操作系统提供的一种功能,用于在多台服务器上集中管理共享文件夹和文件的分布式存储解决方案,本文就来介绍一下wi... 目录什么是DFS?优势:应用场景:DFS配置步骤什么是DFS?DFS指的是分布式文件系统(Distr

关于Maven中pom.xml文件配置详解

《关于Maven中pom.xml文件配置详解》pom.xml是Maven项目的核心配置文件,它描述了项目的结构、依赖关系、构建配置等信息,通过合理配置pom.xml,可以提高项目的可维护性和构建效率... 目录1. POM文件的基本结构1.1 项目基本信息2. 项目属性2.1 引用属性3. 项目依赖4. 构

龙蜥操作系统Anolis OS-23.x安装配置图解教程(保姆级)

《龙蜥操作系统AnolisOS-23.x安装配置图解教程(保姆级)》:本文主要介绍了安装和配置AnolisOS23.2系统,包括分区、软件选择、设置root密码、网络配置、主机名设置和禁用SELinux的步骤,详细内容请阅读本文,希望能对你有所帮助... ‌AnolisOS‌是由阿里云推出的开源操作系统,旨

mysql-8.0.30压缩包版安装和配置MySQL环境过程

《mysql-8.0.30压缩包版安装和配置MySQL环境过程》该文章介绍了如何在Windows系统中下载、安装和配置MySQL数据库,包括下载地址、解压文件、创建和配置my.ini文件、设置环境变量... 目录压缩包安装配置下载配置环境变量下载和初始化总结压缩包安装配置下载下载地址:https://d

gradle安装和环境配置全过程

《gradle安装和环境配置全过程》本文介绍了如何安装和配置Gradle环境,包括下载Gradle、配置环境变量、测试Gradle以及在IntelliJIDEA中配置Gradle... 目录gradle安装和环境配置1 下载GRADLE2 环境变量配置3 测试gradle4 设置gradle初始化文件5 i

SpringCloud配置动态更新原理解析

《SpringCloud配置动态更新原理解析》在微服务架构的浩瀚星海中,服务配置的动态更新如同魔法一般,能够让应用在不重启的情况下,实时响应配置的变更,SpringCloud作为微服务架构中的佼佼者,... 目录一、SpringBoot、Cloud配置的读取二、SpringCloud配置动态刷新三、更新@R