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

相关文章

Java使用Mail构建邮件功能的完整指南

《Java使用Mail构建邮件功能的完整指南》JavaMailAPI是一个功能强大的工具,它可以帮助开发者轻松实现邮件的发送与接收功能,本文将介绍如何使用JavaMail发送和接收邮件,希望对大家有所... 目录1、简述2、主要特点3、发送样例3.1 发送纯文本邮件3.2 发送 html 邮件3.3 发送带

Java实现数据库图片上传功能详解

《Java实现数据库图片上传功能详解》这篇文章主要为大家详细介绍了如何使用Java实现数据库图片上传功能,包含从数据库拿图片传递前端渲染,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1、前言2、数据库搭建&nbsChina编程p; 3、后端实现将图片存储进数据库4、后端实现从数据库取出图片给前端5、前端拿到

国内环境搭建私有知识问答库踩坑记录(ollama+deepseek+ragflow)

《国内环境搭建私有知识问答库踩坑记录(ollama+deepseek+ragflow)》本文给大家利用deepseek模型搭建私有知识问答库的详细步骤和遇到的问题及解决办法,感兴趣的朋友一起看看吧... 目录1. 第1步大家在安装完ollama后,需要到系统环境变量中添加两个变量2. 第3步 “在cmd中

SpringBoot项目启动错误:找不到或无法加载主类的几种解决方法

《SpringBoot项目启动错误:找不到或无法加载主类的几种解决方法》本文主要介绍了SpringBoot项目启动错误:找不到或无法加载主类的几种解决方法,具有一定的参考价值,感兴趣的可以了解一下... 目录方法1:更改IDE配置方法2:在Eclipse中清理项目方法3:使用Maven命令行在开发Sprin

Python使用DeepSeek进行联网搜索功能详解

《Python使用DeepSeek进行联网搜索功能详解》Python作为一种非常流行的编程语言,结合DeepSeek这一高性能的深度学习工具包,可以方便地处理各种深度学习任务,本文将介绍一下如何使用P... 目录一、环境准备与依赖安装二、DeepSeek简介三、联网搜索与数据集准备四、实践示例:图像分类1.

如何关闭 Mac 触发角功能或设置修饰键? mac电脑防止误触设置技巧

《如何关闭Mac触发角功能或设置修饰键?mac电脑防止误触设置技巧》从Windows换到iOS大半年来,触发角是我觉得值得吹爆的MacBook效率神器,成为一大说服理由,下面我们就来看看mac电... MAC 的「触发角」功能虽然提高了效率,但过于灵敏也让不少用户感到头疼。特别是在关键时刻,一不小心就可能触

Spring Retry 实现乐观锁重试实践记录

《SpringRetry实现乐观锁重试实践记录》本文介绍了在秒杀商品SKU表中使用乐观锁和MybatisPlus配置乐观锁的方法,并分析了测试环境和生产环境的隔离级别对乐观锁的影响,通过简单验证,... 目录一、场景分析 二、简单验证 2.1、可重复读 2.2、读已提交 三、最佳实践 3.1、配置重试模板

在 Spring Boot 中使用异步线程时的 HttpServletRequest 复用问题记录

《在SpringBoot中使用异步线程时的HttpServletRequest复用问题记录》文章讨论了在SpringBoot中使用异步线程时,由于HttpServletRequest复用导致... 目录一、问题描述:异步线程操作导致请求复用时 Cookie 解析失败1. 场景背景2. 问题根源二、问题详细分

MobaXterm远程登录工具功能与应用小结

《MobaXterm远程登录工具功能与应用小结》MobaXterm是一款功能强大的远程终端软件,主要支持SSH登录,拥有多种远程协议,实现跨平台访问,它包括多会话管理、本地命令行执行、图形化界面集成和... 目录1. 远程终端软件概述1.1 远程终端软件的定义与用途1.2 远程终端软件的关键特性2. 支持的

Java中实现订单超时自动取消功能(最新推荐)

《Java中实现订单超时自动取消功能(最新推荐)》本文介绍了Java中实现订单超时自动取消功能的几种方法,包括定时任务、JDK延迟队列、Redis过期监听、Redisson分布式延迟队列、Rocket... 目录1、定时任务2、JDK延迟队列 DelayQueue(1)定义实现Delayed接口的实体类 (