ROS学习记录:launch文件启动Hector_Mapping的建图功能

2024-06-19 02:12

本文主要是介绍ROS学习记录:launch文件启动Hector_Mapping的建图功能,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

SLAM软件包Hector_Mapping
在上一篇笔记中,通过Hector_Mapping软件包实现了SLAM功能,运行了四条指令,有些麻烦。本文通过launch文件的使用将指令整合起来,方便功能的实现。

一、打开终端,输入cd catkin_ws1/src/,进入工作空间的src目录。

在这里插入图片描述

二、输入catkin_create_pkg slam_pkg roscpp rospy std_msgs来新建一个软件包slam_pkg

在这里插入图片描述

三、输入code . 打开代码编辑器VSCode

在这里插入图片描述

四、在slam_pkg软件包下创建launch子文件夹

在这里插入图片描述

五、在launch文件夹下新建hector.launch文件

在这里插入图片描述

六、在launch文件中写入如下代码

<launch><!-- 载入 机器人 和 SLAM 的仿真场景 --><include file="$(find wpr_simulation)/launch/wpb_stage_slam.launch"/><!-- Hector SLAM --><node pkg="hector_mapping" type="hector_mapping" name="hector_mapping"/><!-- Rviz 显示 --><node pkg="rviz" type="rviz" name="rviz"/><!-- 运动控制 --><node pkg="rqt_robot_steering" type="rqt_robot_steering" name="rqt_robot_steering"/></launch>

七、打开终端,输入cd catkin_ws1进入工作空间

在这里插入图片描述

八、输入catkin_make进行编译,这里编译的目的是为了让slam_pkg进入ROS的软件包列表,防止在后面执行launch文件的时候提示找不到软件包

在这里插入图片描述

九、编译成功

在这里插入图片描述

十、输入source ./devel/setup.bash设置ROS的环境变量,以便在当前的终端窗口中正确运行ROS软件包。

在这里插入图片描述

十一、输入roslaunch slam_pkg hector.launch运行刚才编写的launch文件

在这里插入图片描述

十二、出来的效果和本文开头链接里的实验效果一样,区别就是本文只需运行一个launch文件便能运行了多个节点,较为方便

在这里插入图片描述

十三、现在这个RViz窗口里什么也没有,我们还需对其进行一些配置

在这里插入图片描述

1、添加Map

在这里插入图片描述

2、设置/map话题

在这里插入图片描述

3、添加机器人模型

在这里插入图片描述

4、添加激光雷达扫描

在这里插入图片描述

5、设置话题,更改扫描点大小

在这里插入图片描述

十四、可以将RViz的显示配置保存成文件,这样就不用每次打开都重新配置了,只需加载一下文件即可

1、点击Save Config As

在这里插入图片描述

2、在slam_pkg软件包中新建一个rviz文件夹,专门用来保存rviz文件

在这里插入图片描述

3、保存名字叫做slam.rviz然后点Save保存

在这里插入图片描述

十五、测试一下刚刚保存的rviz配置文件好不好用

1、先把rviz关掉

在这里插入图片描述

2、新分屏一个终端窗口,输入rosrun rviz rviz -d /home/panda/catkin_ws1/src/slam_pkg/rviz/slam.rviz,注意这句指令-d后面的一大串是刚刚保存的rviz文件的路径,你的路径跟我的不一定一样,需要你自己注意一下

在这里插入图片描述

3、启动后rviz便是配置好的

在这里插入图片描述

4、这里再提醒一下,如果你在启动rviz的时候出现了报错,或者启动后机器人模型加载不出来,就先在当前窗口输入source ./devel/setup.bash设置环境变量,再进行启动rviz

在这里插入图片描述

十六、接下来还可以再优化一下,把刚刚配置的rviz文件写入launch文件里,这样只需要启动launch文件,rviz也是配置好的了

1、对launch文件的如下位置进行修改,实质上就是添加了一个参数,即rviz文件的路径

在这里插入图片描述

2、将刚刚打开的仿真软件都关闭,然后重新打开一个终端,输入cd catkin_ws1进入工作空间

在这里插入图片描述

3、输入catkin_make编译一下

在这里插入图片描述

4、编译成功

在这里插入图片描述

5、输入source ./devel/setup.bash设置ROS的环境变量,以便在当前的终端窗口中正确运行ROS软件包。

在这里插入图片描述

6、输入roslaunch slam_pkg hector.launch运行launch文件

在这里插入图片描述

7、便能成功打开了多个节点,能够成功控制机器人进行建图扫描(这里记录一个问题,博主用的是虚拟机,有时候机器人仿真环境打开不成功,导致rviz的机器人模型也加载不出来,博主重启虚拟机后便解决了)

在这里插入图片描述

这篇关于ROS学习记录:launch文件启动Hector_Mapping的建图功能的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Qt使用QSqlDatabase连接MySQL实现增删改查功能

《Qt使用QSqlDatabase连接MySQL实现增删改查功能》这篇文章主要为大家详细介绍了Qt如何使用QSqlDatabase连接MySQL实现增删改查功能,文中的示例代码讲解详细,感兴趣的小伙伴... 目录一、创建数据表二、连接mysql数据库三、封装成一个完整的轻量级 ORM 风格类3.1 表结构

mysql表操作与查询功能详解

《mysql表操作与查询功能详解》本文系统讲解MySQL表操作与查询,涵盖创建、修改、复制表语法,基本查询结构及WHERE、GROUPBY等子句,本文结合实例代码给大家介绍的非常详细,感兴趣的朋友跟随... 目录01.表的操作1.1表操作概览1.2创建表1.3修改表1.4复制表02.基本查询操作2.1 SE

在Spring Boot中集成RabbitMQ的实战记录

《在SpringBoot中集成RabbitMQ的实战记录》本文介绍SpringBoot集成RabbitMQ的步骤,涵盖配置连接、消息发送与接收,并对比两种定义Exchange与队列的方式:手动声明(... 目录前言准备工作1. 安装 RabbitMQ2. 消息发送者(Producer)配置1. 创建 Spr

Golang如何用gorm实现分页的功能

《Golang如何用gorm实现分页的功能》:本文主要介绍Golang如何用gorm实现分页的功能方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录背景go库下载初始化数据【1】建表【2】插入数据【3】查看数据4、代码示例【1】gorm结构体定义【2】分页结构体

Java Web实现类似Excel表格锁定功能实战教程

《JavaWeb实现类似Excel表格锁定功能实战教程》本文将详细介绍通过创建特定div元素并利用CSS布局和JavaScript事件监听来实现类似Excel的锁定行和列效果的方法,感兴趣的朋友跟随... 目录1. 模拟Excel表格锁定功能2. 创建3个div元素实现表格锁定2.1 div元素布局设计2.

k8s上运行的mysql、mariadb数据库的备份记录(支持x86和arm两种架构)

《k8s上运行的mysql、mariadb数据库的备份记录(支持x86和arm两种架构)》本文记录在K8s上运行的MySQL/MariaDB备份方案,通过工具容器执行mysqldump,结合定时任务实... 目录前言一、获取需要备份的数据库的信息二、备份步骤1.准备工作(X86)1.准备工作(arm)2.手

HTML5实现的移动端购物车自动结算功能示例代码

《HTML5实现的移动端购物车自动结算功能示例代码》本文介绍HTML5实现移动端购物车自动结算,通过WebStorage、事件监听、DOM操作等技术,确保实时更新与数据同步,优化性能及无障碍性,提升用... 目录1. 移动端购物车自动结算概述2. 数据存储与状态保存机制2.1 浏览器端的数据存储方式2.1.

基于 HTML5 Canvas 实现图片旋转与下载功能(完整代码展示)

《基于HTML5Canvas实现图片旋转与下载功能(完整代码展示)》本文将深入剖析一段基于HTML5Canvas的代码,该代码实现了图片的旋转(90度和180度)以及旋转后图片的下载... 目录一、引言二、html 结构分析三、css 样式分析四、JavaScript 功能实现一、引言在 Web 开发中,

springboot下载接口限速功能实现

《springboot下载接口限速功能实现》通过Redis统计并发数动态调整每个用户带宽,核心逻辑为每秒读取并发送限定数据量,防止单用户占用过多资源,确保整体下载均衡且高效,本文给大家介绍spring... 目录 一、整体目标 二、涉及的主要类/方法✅ 三、核心流程图解(简化) 四、关键代码详解1️⃣ 设置

SpringBoot3应用中集成和使用Spring Retry的实践记录

《SpringBoot3应用中集成和使用SpringRetry的实践记录》SpringRetry为SpringBoot3提供重试机制,支持注解和编程式两种方式,可配置重试策略与监听器,适用于临时性故... 目录1. 简介2. 环境准备3. 使用方式3.1 注解方式 基础使用自定义重试策略失败恢复机制注意事项