ROS:launch文件加载:已有地图(yaml)、rviz、turtlebot3模型、gazebo模型、move_base、amcl

news2024/12/27 11:34:29

一.下载turtlebot3、建立地图文件yaml和pgm

ROS:gazebo创建仿真地图,turtlebot3加载仿真地图进行建图,生成yaml和pgm地图信息_Charlesffff的博客-CSDN博客

 二.创建目录

 其中amcl.launch和move_base.launch目录在turtlebot3中:

 其中turtlebot3_navigation.rviz目录在turtlebot3中:

worlds对应gazebo模型;maps对应rviz模型;

一定要注意此处文件名:

 三.launch文件编写

amcl.launch和move_base.launch是不用修改的。

1、load_mapfile.launch 文件中对应修改内容如下:

1、 load_mapfile.launch 内容如下:

<launch>

  <!-- Arguments:参数设置,包括:加载turtlebot3机器人模型、是否打开rviz、地图文件 -->
  <arg name="model" default="burger" doc="model type [burger, waffle, waffle_pi]"/>
  <arg name="configuration_basename" default="turtlebot3_lds_2d.lua"/>

  <!--是否打开rviz -->
  <arg name="open_rviz" default="true"/>

  <!-- 设置地图文件yaml -->
  <arg name="map_file" default="$(find robot_setup_tf)/maps/house.yaml" />

  <!-- TurtleBot3:加载机器人模型 -->
  <include file="$(find turtlebot3_bringup)/launch/turtlebot3_remote.launch">
    <arg name="model" value="$(arg model)" />
  </include>

  <!--加载gazebo-->
  <include file="$(find robot_setup_tf)/launch/load_gazebo.launch"/>

  <!-- 启动导航系统,用作目标点路径规划,实现躲避小障碍物-->
  <include file="$(find robot_setup_tf)/launch/load_navigation.launch">
        <arg name="model" value="$(arg model)" />
        <arg name="map_file" value="$(arg map_file)"/>
    </include>

</launch>
 2、load_gazebo.launch 文件中 对应修改内容如下:

 

  2、load_gazebo.launch 内容如下:

<launch>
  <!-- Arguments:参数设置,包括:加载turtlebot3机器人模型、是否打开rviz、地图文件 -->
  <arg name="model" default="$(env TURTLEBOT3_MODEL)" doc="model type [burger, waffle, waffle_pi]"/>

  <!--机器人初始位置-->
  <arg name="x_pos" default="0.0"/>
  <arg name="y_pos" default="0.0"/>
  <arg name="z_pos" default="0.0"/>

  <!--配置gazebo模型-->
    <include file="$(find gazebo_ros)/launch/empty_world.launch">
      <arg name="world_name" value="$(find robot_setup_tf)/worlds/house.world"/>
      <arg name="paused" value="false"/>
       <arg name="use_sim_time" value="true"/>
      <arg name="gui" value="true"/>
      <arg name="headless" value="false"/>
      <arg name="debug" value="false"/>
  </include>

  <!--给gazebo加载turtlebot3模型-->
  <param name="robot_description" command="$(find xacro)/xacro --inorder $(find turtlebot3_description)/urdf/turtlebot3_$(arg model).urdf.xacro" />
  
  <!--运行gazebo结点-->
  <node pkg="gazebo_ros" type="spawn_model" name="spawn_urdf"  args="-urdf -model turtlebot3_$(arg model) -x $(arg x_pos) -y $(arg y_pos) -z $(arg z_pos) -param robot_description" />

</launch>

3、load_navigation.launch文件中对应修改内容如下:

 3、load_navigation.launch内容如下:

<launch>
  <!-- Arguments :机器人模型、地图文件、打开rviz、机器人运动-->
  <arg name="model" default="burger" doc="model type [burger, waffle, waffle_pi]"/>
  <arg name="map_file" default="$(find robot_setup_tf)/maps/house.yaml"/>
  <arg name="open_rviz" default="true"/>
  <arg name="move_forward_only" default="false"/>


  <!-- Map server :加载地图文件-->
  <node pkg="map_server" name="map_server" type="map_server" args="$(arg map_file)"/>

  <!-- AMCL :定位-->
  <include file="$(find robot_setup_tf)/launch/amcl.launch"/>

  <!-- move_base :机器人运动-->
  <include file="$(find robot_setup_tf)/launch/move_base.launch">
    <arg name="model" value="$(arg model)" />
    <arg name="move_forward_only" value="$(arg move_forward_only)"/>
  </include>

  <!-- rviz :打开riviz-->
  <group if="$(arg open_rviz)"> 
    <node pkg="rviz" type="rviz" name="rviz" required="true"
          args="-d $(find robot_setup_tf)/rviz/turtlebot3_navigation.rviz"/>
  </group>
</launch>

 三.最终运行结果

终端运行:

roslaunch robot_setup_tf load_mapfile.launch

结果:

 

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

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

相关文章

把二叉搜索树转换为累加树

1题目 给出二叉 搜索 树的根节点&#xff0c;该树的节点值各不相同&#xff0c;请你将其转换为累加树&#xff08;Greater Sum Tree&#xff09;&#xff0c;使每个节点 node 的新值等于原树中大于或等于 node.val 的值之和。 提醒一下&#xff0c;二叉搜索树满足下列约束条件…

jpg怎么转换成png格式?四种转换方式试试看

很多时候&#xff0c;我们需要将JPG&#xff08;Joint Photographic Experts Group&#xff09;格式转换成PNG&#xff08;Portable Network Graphics&#xff09;格式&#xff0c;从而便于图片的使用。那么&#xff0c;将JPG转换成PNG有什么作用呢&#xff1f;首先&#xff0c…

【LeetCode】203,移除链表元素。 难度等级:简单。链表入门题目,值得深入研究。

文章目录 一、题目二、解答&#xff1a;迭代法&#xff0c;引入一个新的头结点三、难点解释 【LeetCode】203&#xff0c;移除链表元素。 难度等级&#xff1a;简单。 本题是链表入门题目&#xff0c;值得深入研究。 一、题目 二、解答&#xff1a;迭代法&#xff0c;引入一个…

Kali-linux使用SET实施攻击

前面介绍了社会工程学工具包&#xff08;SET&#xff09;的简单使用。为了能帮助用户更容易的理解社会工程学的强大功能。本节将介绍使用社会工程学工具包实施各种攻击。 7.4.1 针对性钓鱼攻击向量 针对性钓鱼攻击向量通过构造特殊文件格式的漏洞进行渗透攻击&#xff0c;如利…

python实现神经网络之---构建神经元模型1(python3.7)

本文主要要以周志华的机器学习书为蓝本编写 第5章神经网络 5.1python 实现神经元模型 神经网络中最基本的成分是神经元 (neuro且)模型&#xff0c;如下图所示&#xff1a; 1943 年&#xff0c; [McCulloch and Pitts, 1943] 将上述情形抽象为国 5.1所示的简单模型&#xff0c…

全球分布式云大会:AntDB超融合流式实时数仓,打造分布式数据库新纪元

日前&#xff0c;全球分布式云大会北京站在北京金茂万丽酒店举办&#xff0c;亚信科技AntDB数据库受邀参会&#xff0c;会上技术负责人北陌发表以“AntDB超融合流式实时数仓&#xff0c;打造分布式数据库新纪元”为主题的演讲&#xff0c;通过分享AntDB在数据库前沿技术的研发实…

打印菱形(两种思路)

一、输入的行数等于上半部分的金字塔行数 思路&#xff1a; 仔细观察图形&#xff0c;可以发现&#xff0c;此图形中是由空格和*按照不同个数的输出组成的。 上三角&#xff1a;先输出空格&#xff0c;后输出*&#xff0c;每行中空格&#xff1a;从上往下&#xff0c;一行减少一…

国外各大学和学院对于ChatGPT使用立场总结

ChatGPT和生成式AI的快速普及对教育这个专业领域带来了威胁——全国各地的大学和学院都召开了紧急会议&#xff0c;讨论如何应对学生利用AI作弊的风险。 一部分学校和教授担心这项技术会成为学生在论文或其他写作作业和考试中寻求捷径的工具。而这种生成内容的方式往往能够绕开…

Deepstream使用Rabbitmq 和kafka发送消息(天坑)unable to connect to broker library

连接服务器失败&#xff0c;要么是是本地参数没设对, 要么服务器没开&#xff01; 使用Kafka发送消息好搞&#xff0c;按照 /opt/nvidia/deepstream/deepstream-6.2/sources/libs/kafka_protocol_adaptor/README 一步一步来就行了&#xff0c;前提是要搞kafka 环境搭建开启&am…

特殊区域在OSPF协议中的分析

我们都知道OSPF路由器协议是基于SPF算法计算最优路径&#xff0c;当用于SPF算法的LSDB的越大&#xff0c;那么路由器的计算压力就越大&#xff0c;对于一些性能不佳的OSPF路由器来说&#xff0c;如何尽可能的减小LSDB规模也就成了OSPF设计时要考虑到的问题&#xff0c;为了进一…

DMA-STM32

DMA-STM32 DMA(Direct Memory Access)直接存储器存取 DMA可以提供外设和存储器或者存储器和存储器之间的高速数据传输&#xff0c;无须CPU干预&#xff0c;节省了CPU的资源 12个独立可配置的通道:DMA1 (7个通道),DMA2 (5个通道) 每个通道都支持软件触发和特定的硬件触发 STM32…

第七章.链接

概述 链接&#xff1a;将多个目标文件或库文件组合在一起&#xff0c;生成可执行文件或共享库 可以执行于编译时、加载时、运行时&#xff0c;使得分离编译成为可能&#xff0c;由链接器自动实现链接器&#xff1a;将各个模块之间的符号引用解析为实际的内存地址&#xff0c;生…

大厂面试官带你Get求职面试核心技巧

本文首发自[慕课网] &#xff0c;想了解更多IT干货内容&#xff0c;程序员圈内热闻&#xff0c;欢迎关注"慕课网"及“慕课网公众号”&#xff01; 作者&#xff1a;Brain|慕课网名师 Hello&#xff0c;大家好&#xff0c;我是Brian 老师&#xff0c;在开发领域摸爬滚…

Day01 关系型数据MySQL简介与多平台安装配置

在大数据的课程中&#xff0c;我们需要处理的数据来自不同的渠道&#xff0c;其中有一个很重要的渠道就是关系型数据库中存储的数据。在企业中&#xff0c;会把业务数据存储在关系型数据库中&#xff0c;一般以MySQL居多。另外&#xff0c;我们在后续的课程中需要学习Hive、Spa…

SpringBoot启动过程源码解析

一&#xff0c;构造SpringApplication对象 1、推测web应用类型 如果项目依赖中存在org.springframework.web.reactive.DispatcherHandler&#xff0c;并且不存在org.springframework.web.servlet.DispatcherServlet&#xff0c;那么应用类型为WebApplicationType.REACTIVE如果…

【PaLM2】PaLM2 大语言模型与 Bard 使用体验

欢迎关注【youcans的学习笔记】原创作品&#xff0c;火热更新中 【Google I/O 2023】PaLM2 大语言模型与 Bard 使用体验 1. PaLM2 大型语言模型1.1 谷歌发布 PaLM21.2 PaLM2 的功能与性能 2. 基于 PaLM2 的谷歌 AI 产品2.1 智能助手 Duet AI2.2 Gmail&#xff1a;帮我写邮件2.3…

【Spring框架四】——Spring AOP 注解实现和xml方式实现

系列文章目录 【Spring框架一】——Spring框架简介 【Spring框架二】——什么是Spring IOC、 什么是Spring 依赖注入 【Spring框架三】——Spirng IOC和DI的实现 Spring AOP 注解实现和xml方式实现 系列文章目录前言一、什么是Spring AOP&#xff08;Aspect-Oriented Progra…

OpenAI 宣布推出适用于 iPhone 和 iPad 的 ChatGPT 官方应用程序。

&#x1f680; OpenAI 宣布推出适用于 iPhone 和 iPad 的 ChatGPT 官方应用程序。 OpenAI 宣布推出适用于 iPhone 和 iPad 的 ChatGPT 官方应用程序。 该应用程序具备即时回答各种问题、量身定制的建议、创意灵感、专业意见和个性化学习等功能和特性&#xff0c;可以帮助提高…

【密码产品篇】服务器密码机密钥体系结构

【密码产品篇】服务器密码机密钥体系结构 标准GM/T 0030-2014中规定服务器密码机必须至少支持三层密码体系结构&#xff0c;包括&#xff1a;“管理密钥、用户密钥/设备密钥/密钥加密密钥、会话密钥”。除"管理密钥"外&#xff0c;其他密钥可被用户使用&#xff0c;…

在图片上添加水印的四个方法

如何在图片上添加水印&#xff1f;在当今开放的互联网环境中&#xff0c;平时对于图片的使用已经变成非常广泛&#xff0c;越来越多的人开始关注图片的版权问题。如今&#xff0c;人们越来越注重防盗意识&#xff0c;这是因为我们在网上发布的图片很容易被别有用心之人盗用&…