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

相关文章

IDEA连接达梦数据库的详细配置指南

《IDEA连接达梦数据库的详细配置指南》达梦数据库(DMDatabase)作为国产关系型数据库的代表,广泛应用于企业级系统开发,本文将详细介绍如何在IntelliJIDEA中配置并连接达梦数据库,助力... 目录准备工作1. 下载达梦JDBC驱动配置步骤1. 将驱动添加到IDEA2. 创建数据库连接连接参数

MyBatis的配置对象Configuration作用及说明

《MyBatis的配置对象Configuration作用及说明》MyBatis的Configuration对象是MyBatis的核心配置对象,它包含了MyBatis运行时所需的几乎所有配置信息,这个对... 目录MyBATis配置对象Configuration作用Configuration 对象的主要作用C

IDEA与JDK、Maven安装配置完整步骤解析

《IDEA与JDK、Maven安装配置完整步骤解析》:本文主要介绍如何安装和配置IDE(IntelliJIDEA),包括IDE的安装步骤、JDK的下载与配置、Maven的安装与配置,以及如何在I... 目录1. IDE安装步骤2.配置操作步骤3. JDK配置下载JDK配置JDK环境变量4. Maven配置下

Springboot的自动配置是什么及注意事项

《Springboot的自动配置是什么及注意事项》SpringBoot的自动配置(Auto-configuration)是指框架根据项目的依赖和应用程序的环境自动配置Spring应用上下文中的Bean... 目录核心概念:自动配置的关键特点:自动配置工作原理:示例:需要注意的点1.默认配置可能不适合所有场景

Nginx配置系统服务&设置环境变量方式

《Nginx配置系统服务&设置环境变量方式》本文介绍了如何将Nginx配置为系统服务并设置环境变量,以便更方便地对Nginx进行操作,通过配置系统服务,可以使用系统命令来启动、停止或重新加载Nginx... 目录1.Nginx操作问题2.配置系统服android务3.设置环境变量总结1.Nginx操作问题

Keepalived+Nginx双机配置小结

《Keepalived+Nginx双机配置小结》本文主要介绍了Keepalived+Nginx双机配置小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1.1 软硬件要求1.2 部署前服务器配置调优1.3 Nginx+Keepalived部署1.3

Apache伪静态(Rewrite).htaccess文件详解与配置技巧

《Apache伪静态(Rewrite).htaccess文件详解与配置技巧》Apache伪静态(Rewrite).htaccess是一个纯文本文件,它里面存放着Apache服务器配置相关的指令,主要的... 一、.htAccess的基本作用.htaccess是一个纯文本文件,它里面存放着Apache服务器

nginx配置多域名共用服务器80端口

《nginx配置多域名共用服务器80端口》本文主要介绍了配置Nginx.conf文件,使得同一台服务器上的服务程序能够根据域名分发到相应的端口进行处理,从而实现用户通过abc.com或xyz.com直... 多个域名,比如两个域名,这两个域名其实共用一台服务器(意味着域名解析到同一个IP),一个域名为abc

nginx生成自签名SSL证书配置HTTPS的实现

《nginx生成自签名SSL证书配置HTTPS的实现》本文主要介绍在Nginx中生成自签名SSL证书并配置HTTPS,包括安装Nginx、创建证书、配置证书以及测试访问,具有一定的参考价值,感兴趣的可... 目录一、安装nginx二、创建证书三、配置证书并验证四、测试一、安装nginxnginx必须有"-

springboot rocketmq配置生产者和消息者的步骤

《springbootrocketmq配置生产者和消息者的步骤》本文介绍了如何在SpringBoot中集成RocketMQ,包括添加依赖、配置application.yml、创建生产者和消费者,并展... 目录1. 添加依赖2. 配置application.yml3. 创建生产者4. 创建消费者5. 使用在