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

相关文章

Springboot项目启动失败提示找不到dao类的解决

《Springboot项目启动失败提示找不到dao类的解决》SpringBoot启动失败,因ProductServiceImpl未正确注入ProductDao,原因:Dao未注册为Bean,解决:在启... 目录错误描述原因解决方法总结***************************APPLICA编

深度解析Spring Security 中的 SecurityFilterChain核心功能

《深度解析SpringSecurity中的SecurityFilterChain核心功能》SecurityFilterChain通过组件化配置、类型安全路径匹配、多链协同三大特性,重构了Spri... 目录Spring Security 中的SecurityFilterChain深度解析一、Security

java中pdf模版填充表单踩坑实战记录(itextPdf、openPdf、pdfbox)

《java中pdf模版填充表单踩坑实战记录(itextPdf、openPdf、pdfbox)》:本文主要介绍java中pdf模版填充表单踩坑的相关资料,OpenPDF、iText、PDFBox是三... 目录准备Pdf模版方法1:itextpdf7填充表单(1)加入依赖(2)代码(3)遇到的问题方法2:pd

kkFileView启动报错:报错2003端口占用的问题及解决

《kkFileView启动报错:报错2003端口占用的问题及解决》kkFileView启动报错因office组件2003端口未关闭,解决:查杀占用端口的进程,终止Java进程,使用shutdown.s... 目录原因解决总结kkFileViewjavascript启动报错启动office组件失败,请检查of

Linux下在线安装启动VNC教程

《Linux下在线安装启动VNC教程》本文指导在CentOS7上在线安装VNC,包含安装、配置密码、启动/停止、清理重启步骤及注意事项,强调需安装VNC桌面以避免黑屏,并解决端口冲突和目录权限问题... 目录描述安装VNC安装 VNC 桌面可能遇到的问题总结描js述linux中的VNC就类似于Window

linux下shell脚本启动jar包实现过程

《linux下shell脚本启动jar包实现过程》确保APP_NAME和LOG_FILE位于目录内,首次启动前需手动创建log文件夹,否则报错,此为个人经验,供参考,欢迎支持脚本之家... 目录linux下shell脚本启动jar包样例1样例2总结linux下shell脚本启动jar包样例1#!/bin

Java实现预览与打印功能详解

《Java实现预览与打印功能详解》在Java中,打印功能主要依赖java.awt.print包,该包提供了与打印相关的一些关键类,比如PrinterJob和PageFormat,它们构成... 目录Java 打印系统概述打印预览与设置使用 PageFormat 和 PrinterJob 类设置页面格式与纸张

MySQL 8 中的一个强大功能 JSON_TABLE示例详解

《MySQL8中的一个强大功能JSON_TABLE示例详解》JSON_TABLE是MySQL8中引入的一个强大功能,它允许用户将JSON数据转换为关系表格式,从而可以更方便地在SQL查询中处理J... 目录基本语法示例示例查询解释应用场景不适用场景1. ‌jsON 数据结构过于复杂或动态变化‌2. ‌性能要

Zabbix在MySQL性能监控方面的运用及最佳实践记录

《Zabbix在MySQL性能监控方面的运用及最佳实践记录》Zabbix通过自定义脚本和内置模板监控MySQL核心指标(连接、查询、资源、复制),支持自动发现多实例及告警通知,结合可视化仪表盘,可有效... 目录一、核心监控指标及配置1. 关键监控指标示例2. 配置方法二、自动发现与多实例管理1. 实践步骤

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

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