双机 Cartogtapher 建图文件配置

news2024/11/24 9:57:16

双机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

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Chrome 设置在新窗口中打开链接(已登录google账号版)

Chrome的链接默认是在原标签页中打开的,如果要在新窗口中打开,需要自己自行设置,在此,针对已经登录google账号的chrome浏览器怎么进行设置进行说明。 一、点击登录图标->更多设置 二、选择其他设置->在新窗口中打开搜索结果…

Linux上管理文件系统

Linux上管理文件系统 机械硬盘 机械硬盘由多块盘片组成,它们都绕着主轴旋转。每块盘片上下方都有读写磁头悬浮在盘片上下方,它们与盘片的距离极小。在每次读写数据时盘片旋转,读写磁头被磁臂控制着不断的移动来读取其中的数据。 所有的盘片…

一套C#自主版权+应用案例的手麻系统源码

手术麻醉信息管理系统源码,自主版权应用案例的手麻系统源码 手术麻醉信息管理系统包含了患者从预约申请手术到术前、术中、术后的流程控制。手术麻醉信息管理系统主要是由监护设备数据采集子系统和麻醉临床系统两个子部分组成。包括从手术申请到手术分配&#xff0c…

SSM框架学习——JSP语法入门

JSP语法入门 前提 在前一节中我们已经写过JSP的代码了,这一节将单独介绍JSP一些基础语法。当然,你可以跳过这一节,当后面有代码不太理解的时候再回来阅读。 中文编码问题 如果中文乱码,看看JSP是否是以UTF8的方式编码&#xf…

mysql建表必须知道的18个重点(荣耀典藏版)

大家好,我是月夜枫,又和大家见面了!!!! 目录 前言 1.名字 1.1 见名知意 1.2 大小写 1.3 分隔符 1.4 表名 1.5 字段名称 1.6 索引名 2.字段类型 3.字段长度 4.字段个数 5. 主键 6.存储引擎 7.…

计算机网络:数据链路层 - 点对点协议PPP

计算机网络:数据链路层 - 点对点协议PPP PPP协议的帧格式透明传输字节填充法零比特填充法 差错检测循环冗余校验 对于点对点链路,PPP协议是目前使用最广泛的数据链路层协议。比如说,当用户想要接入互联网,就需要通过因特网服务提供…

vulnhub靶机: DC-9

dc-9靶机下载 将靶机设置为NAT模式,本次实验使用的内网网段为192.168.198.0/24,kali的ip为192.168.198.172 信息搜集 ip主机扫描: nmap -sP 192.168.198.0/24 确定靶机ip为192.168.198.171 主机端口扫描: nmap -T4 -A -v 192…

【JVM】如何定位、解决内存泄漏和溢出

目录 1.概述 2.堆溢出、内存泄定位及解决办法 2.1.示例代码 2.2.抓堆快照 2.3.分析堆快照 1.概述 常见的几种JVM内存溢出的场景如下: Java堆溢出: 错误信息: java.lang.OutOfMemoryError: Java heap space 原因:Java对象实例在运行时持…

简单聊聊冯诺伊曼体系结构

我们常见的计算机,如笔记本。我们不常见的计算机,如服务器,大部分都遵守冯诺依曼体系结构。 简单聊一下,我们所认识的计算机,都是有一个个的硬件组件组成 中央处理器(CPU): a.运算器 :算数运算…

配置code-server和texlive实现网页写tex

使用overleaf太卡了,有云服务器或者nas小主机,配置自己的code-servertexlive,来写论文。 之前用服务器配置过自己的overleaf,感觉不是很好用,缺少东西。 一、思路 使用docker先安装一个ubuntu,用dockerfil…

施耐德 Unity Pro PLC 编程软件介绍

Unity Pro 软件基本介绍 Unity Pro 是施耐德中大型 PLC 的编程软件&#xff08;<–> 对应西门子 Step7&#xff09; 支持的 PLC&#xff1a;施耐德中大型 PLC 中型 PLC&#xff1a;Premium、M340&#xff08;<–> 对应西门子 S7-300、S7-1200&#xff09;大型 PL…

制作一个一键运行的10多M的go-cqhttp最简docker镜像

一直有个想自己部署一个QQ机器人&#xff0c;虽然成功完成在Windows环境下基于 go-cqhttp 的搭建工作。但考虑到我有一台常年在线的群晖 NAS&#xff0c;并且已经配置并启用了 Docke r服务&#xff0c;可否将go-cqhttp 迁移至 NAS 上的 Docker 容器中运行吗呢&#xff1f;同时&…

SSTI模板注入(jinja2)

前面学习了SSTI中的smarty类型&#xff0c;今天学习了Jinja2&#xff0c;两种类型都是flask框架的&#xff0c;但是在注入的语法上还是有不同 SSTI&#xff1a;服务器端模板注入&#xff0c;也属于一种注入类型。与sql注入类似&#xff0c;也是通过凭借进行命令的执行&#xff…

短袖有什么牌子可以推荐?五款每个人都必备的短袖分享

最近天气逐渐升温&#xff0c;大家都在挑选夏季的短袖了&#xff0c;但是因为市面上的短袖质量参差不齐&#xff0c;甚至有一些使用劣质面料&#xff0c;不仅不耐穿不耐洗&#xff0c;而且穿着还十分闷热。相信大家心里都非常想知道现在有哪些短袖品牌是可靠的&#xff0c;所以…

鸿蒙TypeScript入门学习第8天:【TypeScript 函数】

1、TypeScript 函数 函数是一组一起执行一个任务的语句。 您可以把代码划分到不同的函数中。如何划分代码到不同的函数中是由您来决定的&#xff0c;但在逻辑上&#xff0c;划分通常是根据每个函数执行一个特定的任务来进行的。 函数声明告诉编译器函数的名称、返回类型和参…

2.2.1.2-网格交易(python网格交易附实战交易记录)

跳转到根目录&#xff1a;知行合一&#xff1a;投资篇 已完成&#xff1a; 1、投资&技术   1.1.1 投资-编程基础-numpy   1.1.2 投资-编程基础-pandas   1.2 金融数据处理   1.3 金融数据可视化 2、投资方法论   2.1.1 预期年化收益率   2.1.2 一个关于yaxb的…

源浩流体设备与您相约2024年第13届生物发酵展

参展企业介绍 温州源浩流体设备科技有限公司是一家集设计、开发、制造、销售、服务于一体的高科技企业&#xff0c;公司主要生产各种不锈钢阀门、管件、卫生级流体设备(卫生级换向阀,卫生级减压阀,卫生级罐底阀)等。现为温州市泵阀协会会员&#xff0c;ISO9000 2008版质量质量…

Leaflet使用多面(MultiPolygon)进行遥感影像掩膜报错解决之道

目录 前言 一、问题初诊断 1、山重水复 2、柳暗花明 3、庖丁解牛 4、问题定位 二、解决多面掩膜问题 1、尝试数据修复 2、实际修复 3、最终效果 三、总结 前言 之前一篇讲解遥感影像掩膜实现&#xff1a;基于SpringBoot和Leaflet的行政区划地图掩膜效果实战&#xff0…

解锁金融数据中心场景,实现国产化AD替代,宁盾身份域管为信创电脑、应用提供统一管理

随着信创国产化改造持续推进&#xff0c;越来越多的金融机构不断采购信创服务器、PC、办公软件等&#xff0c;其 IT 基础设施逐渐迁移至国产化 IT 架构下。为支撑国产化 IT 基础设施的正常使用和集中管理运维&#xff0c;某金融机构数据中心的微软Active Directory&#xff08;…

Java入门教程||Java 多线程编程

Java 多线程编程 Java 给多线程编程提供了内置的支持。一个多线程程序包含两个或多个能并发运行的部分。程序的每一部分都称作一个线程&#xff0c;并且每个线程定义了一个独立的执行路径。 多线程是多任务的一种特别的形式。多线程比多任务需要更小的开销。 这里定义和线程…