如何用launch文件一键启动gazebo

【踩坑记录】Slam-Gmapping建图失败--已解决 仿真小车在Gazebo上进行Gmapping Slam 阅读详情

launch文件启动gazebo

<launch>
    <arg name="model" />
    <arg name="paused" default="false"/>
    <arg name="use_sim_time" default="true"/>
    <arg name="gui" default="true"/>
    <arg name="headless" default="false"/>
    <arg name="debug" default="false"/>
    <!-- 运行gazebo仿真环境 -->

    <include file="$(find gazebo_ros)/launch/empty_world.launch">
      <arg name="debug" value="$(arg debug)" />
      <arg name="gui" value="$(arg gui)" />
      <arg name="paused" value="$(arg paused)"/>
      <arg name="use_sim_time" value="$(arg use_sim_time)"/>
      <arg name="headless" value="$(arg headless)"/>
  </include>

    <!-- 加载机器人模型描述参数 -->
    <param name="robot_description" textfile="$(find cotek_rb)/urdf/cotek_body.urdf"/>


    <!-- 运行joint_state_publisher节点,发布机器人的关节状态  -->
    <node name="joint_state_publisher" pkg="joint_state_publisher" type="joint_state_publisher" ></node> 
    
    <!-- 运行robot_state_publisher节点,发布tf  -->
    <node name="robot_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher"  output="screen" >
        <param name="publish_frequency" type="double" value="50.0" />
    </node>
    
    <!-- 在gazebo中加载机器人模型-->
    <node name="urdf_spawner" pkg="gazebo_ros" type="spawn_model" respawn="false" output="screen"
          args="-urdf -model mrobot -param robot_description"/> 

</launch>

这里提供一些解释:

在“加载机器人模型这段code ”是利用pwn_mode的Python脚本向gazebo_ros节点发出服务请求,进而添加urdf文件到gazebo中。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MhmxX05u-1590025963767)(/home/zhongsy/Desktop/cotek_rb/Screenshot from 2020-04-28 09-40-13.png)]

roslaunch还支持启动参数,有时也简称为参数甚至args。在ROS中prarmeter和argument 是不同的,虽然翻译一样。parameter是运行中的ROS系统使用的数值,存储在参数服务器(parameter server)中,每个活跃的节点都可以通过 ros::param::get 函数来获取parameter的值,用户也可以通过rosparam来获得parameter的值而argument只在启动文件内才有意义他们的值是不能被节点直接获取的。

<arg name=“arg-name” default=“arg-value”/>与<arg name=“arg-name” value=“arg-value”/>两者的唯一区别在于命令行参数(roslaunch xx yy.launch dd:=t)可以覆盖默认值default,但是不能覆盖参数值 value。用$(arg arg-name)在每个该替换出现的地方,roslaunch 都将它替换成参数值。

roslaunch传参参考https://www.jianshu.com/p/02ee8f513295

发现其实生成模型使用python写的,这时候参考python传参的方式,参考

https://blog.youkuaiyun.com/dou3516/article/details/82912796

其他几个launch都挺简单的,如果你有自己的world,只需要覆盖掉empty_world.launch中的world_name参数就可以了。

<launch>
    <arg name="world_name" value="$(find cotek_rb)/worlds/room1.world" />
    <arg name="paused" default="false"/>
    <arg name="use_sim_time" default="true"/>
    <arg name="gui" default="true"/>
    <arg name="headless" default="false"/>
    <arg name="debug" default="false"/>
    <!-- 运行gazebo仿真环境 -->

    <include file="$(find gazebo_ros)/launch/empty_world.launch">
      <arg name="world_name" value="$(arg world_name)"/>
      <arg name="gui" value="$(arg gui)" />
      <arg name="debug" value="$(arg debug)" />
      <arg name="paused" value="$(arg paused)"/>
      <arg name="use_sim_time" value="$(arg use_sim_time)"/>
      <arg name="headless" value="$(arg headless)"/>
  </include>

    <!-- 加载机器人模型描述参数 -->
    <param name="robot_description" textfile="$(find cotek_rb)/urdf/cotek_body.urdf"/>


    <!-- 运行joint_state_publisher节点,发布机器人的关节状态  -->
    <node name="joint_state_publisher" pkg="joint_state_publisher" type="joint_state_publisher" ></node> 

    <!-- 运行robot_state_publisher节点,发布tf  -->
    <node name="robot_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher"  output="screen" >
        <param name="publish_frequency" type="double" value="50.0" />
    </node>

    <!-- 在gazebo中加载机器人模型-->
    <node name="urdf_spawner" pkg="gazebo_ros" type="spawn_model" respawn="false" output="screen"
          args="-file $(find cotek_rb)/urdf/cotek_body.urdf -urdf -model cotek_my -param robot_description -x 2 -y 5 -z 0"/> 

</launch>

注意加载的world必须在你生成的这个机器人时候构建的,如果加载了别的机器人构造的世界会生成多个机器人。

  <!-- 运行robot_state_publisher节点,发布tf  -->
    <node name="robot_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher"  output="screen" >
        <param name="publish_frequency" type="double" value="50.0" />
    </node>

上面只发布关节,link为fixed的坐标转换

通过launch文件启动gazebo和urdf模型 自己写的一个加载世界和模型到gazebo的launch文件,绝对路径:/ugv_simulation/launch/gazebo.launch。gazebo_ros中自带launch的位置:/opt/ros/noetic/share/gazebo_ros/launch。所有的world文件:/usr/share/gazebo-11/worlds。彻底关闭gazebo再重新roslaunch。 阅读详情

相关推荐

Gazebo室内环境建模实战:从零构建到launch文件一键启动

本文详细介绍了如何使用Gazebo进行室内环境建模,从基础结构搭建到模型保存与管理,再到ROS集成与launch文件配置,实现一键启动。通过实战案例和优化技巧,帮助开发者快速掌握Gazebo室内建模技术,提升机器人仿真效率。

weixin_29088655的博客 213

【ROS】从入门到急眼--launch文件详解

launch在ros仿真开发中是非常的常见,相比于逐个打开节点,launch更像是一键启动,只要打开一个文件就能启动、连接所有的节点、话题、服务器等。 xml语法格式如下: 第一行可写不可写一般写上xml文件的声明,因为launch文件的本质也是xml文件,所以在用编译器或者记事本打开的时候编译器会自动识别到这是xml文件(编译器识别不出launch文件是什么样的格式),若没有加的话可以手动更改显示语法。 ​ <?xml version="1.0"?> 后面的段落开始要严格按照xml格式书写如

fgdgddg的博客 3711

Gazebo新手必看:5分钟搞定室内模型搭建与launch文件配置(附完整代码)

本文为Gazebo新手提供室内模型搭建与launch文件配置的快速入门指南。通过5分钟教程,学习如何创建带门窗的室内场景,并配置一键启动的launch文件,附完整代码示例,帮助ROS开发者高效掌握Gazebo仿真工具的核心功能。

weixin_30576827的博客 381

roslaunch中的代码理解

roslaunch gazebo_ros empty_world.launch roslaunch robot_sim_demo robot_spawn.launch <launch> <!--相当于全局变量,主要用于定义变量和值,便于后面修改参数,对下面include中的文件里面的参数不会起作用--> <arg name="robot" d...

weixin_42099082的博客 1023

ROS小车与机械臂Gazebo仿真:基于YOLO目标检测的自动化抓取系统Python实现

本文详细介绍了在Gazebo仿真环境中,如何整合ROS移动小车与机械臂,并利用darknet_ros(YOLO)实现目标检测,最终通过Python脚本构建一个完整的自动化抓取系统。内容涵盖从仿真环境搭建、darknet_ros配置、到Python决策节点编写与系统集成的全流程,为机器人视觉抓取应用提供了清晰的实践指南。

sql99的博客 509

教程 | 阿克曼结构移动机器人的gazebo仿真(八)

01前言 上一节通过配置小车的里程计,用gmapping算法建了房间的二维栅格地图;这一节通过配置AMCL定位以及move_base实现小车在房间中的自主导航。在mini小车仿真的章节讲到导航主要分为机器人定位和路径规划两大部分。ROS分别提供了功能包 1、move_base:实现机器人导航中的最优路径规划。 2、amcl:实现二维地图中的机器人定位。 首先安装导航的功能包: sudo apt-get install ros-melodic-navigation 02配置AMCL ..

TIANBOT的博客 2301

launch文件详解

哇居然有小朋友关注我,为我唯一的粉丝更新一下hhh。考虑以后把记录都写在上面好啦 看到一篇写的很全的文章,mark一下,也是方便以后查阅 https://blog.youkuaiyun.com/qq_33444963/article/details/77893881 wiki连接 http://wiki.ros.org/roslaunch/XML   机器人是一个系统工程,通常一个机器人运行操作时...

qq_32115419的博客 1568

Gazebo仿真实战:从.obj到.world的自建场景全流程解析

本文详细解析了如何将.obj格式的三维重建模型转换为Gazebo可用的仿真世界,实现从数字孪生场景构建到仿真训练的全流程。内容涵盖利用Blender进行模型格式转换、创建Gazebo模型配置文件、解决纹理丢失与性能优化等常见问题,帮助机器人开发者高效搭建逼真的自定义仿真环境。

weixin_29038155的博客 198

Ubuntu16.04下Gazebo室内建模全攻略:从零搭建到launch文件一键启动

本文详细介绍了在Ubuntu 16.04系统下,使用Gazebo仿真软件进行室内环境建模的完整流程。从环境准备、Building Editor工具使用、模型保存管理,到最终编写ROS launch文件实现仿真环境的一键启动,为机器人算法(如SLAM、导航)的虚拟测试提供了高效、可复用的解决方案。

l3m4n的博客 415

第119篇 ROS2 Launch系统入门——一键启动你的机器人

本文介绍了ROS2 Launch系统的核心功能和使用方法。Launch文件用于批量启动机器人系统中的多个节点,解决了逐个启动的繁琐问题。ROS2的Launch文件采用Python脚本格式,支持启动节点、传递参数、条件判断、包含子Launch文件等高级功能。文章详细讲解了Launch文件的结构、参数传递方法、分层组织策略以及调试技巧,并提供了面试回答建议。通过合理使用Launch系统,可以统一团队开发规范,提高复杂机器人系统的启动效率。

郑伟强dev的专栏 178

MuJoCo 关节角速度记录与可视化,监控机械臂运动状态

1. 手动计算关节速度,其中timestep为仿真步长。2. 使用data.qvel直接取得关节速度。

darcsdn 767

fusion2urdf 玩转 Gazebo 仿真:gazebo.launch 一键启动机器人,附关节位置控制器配置清单

fusion2urdf 是一款开源的 Fusion 360 脚本,能把三维机器人模型直接导出为 URDF/xacro 机器人描述包,并自动生成 Gazebo 仿真所需的 launch 文件与关节控制器配置。只需一条 `gazebo.launch` 命令,机器人就会出现在 Gazebo 空世界中;配合 controller.yaml 里的关节位置控制器,还能进一步发送位置控制指令。本文面向新手,完整

gitblog_00220的博客 686

图腾柱无桥PFC控制逻辑解析:从双闭环到电压前馈的设计演进

本文深入解析图腾柱无桥PFC控制逻辑的设计演进,从经典双闭环控制到电压前馈技术的实现。通过分析功率波动问题和动态响应慢的症结,提出引入电压前馈的解决方案,并详细探讨数字实现中的关键注意事项。文章还涵盖控制框图的构建、稳定性分析方法及实际应用中的调参技巧,为开关电源设计提供实用指导。

weixin_29268267的博客 572

GAZEBO房屋模型和无人机一键启动

这一步是先把房屋模型从之前的隐藏文件夹里拷贝到prometheus的模型文件夹下。

qq_53015543的博客 417

问题解决:打开VMware创建的虚拟机,电脑立刻蓝屏并重启

VMware Workstation 与 Device/Credential Guard 不兼容。在禁用 Device/Credenti

weixin_55118477的博客 3万+

使用TinyProxy搭建代理服务器

背景 办公电脑所在网络无法连接外网,机房服务器可以连接外网,通过服务器代理上网; 一、CentOS下TinyProxy安装–搭建代理服务器 TinyProxy是个轻量级简单的HTTP/HTTPS代理程序,GitHub和官网,安装方式这里主要介绍两种 CentOS下yum安装,参考:TinyProxy安装 Docker安装 先安装docker环境yum install docker -y 二、Win10下使用 ...

椰汁菠萝 1万+

ubuntu使用bash脚本启动不同功能包下的多个launch文件

ubuntu使用bash脚本启动多个launch文件 1.创建launch_2.bash文件 2.source 工作空间环境变量 #!/bin/bash source /home/wyf/catkin_ws/devel/setup.bash roslaunch gazebo gazebo.launch & sleep 2 roslaunch navigation gmapping.launch sleep 2 wait exit 0 解析:roslaunch gazebo gazebo.l

qq_40113966的博客 1294

海思Hi3061M MCU:为高速吹风筒市场注入智能动力

此外,海思还提供了丰富的软件开发工具和生态环境组件,帮助开发者快速实现复杂功能。高速吹风筒因其高效的风力和快速的干燥效果,近年来在市场上越来越受欢迎。然而,传统的高速吹风筒在性能、噪音和使用寿命等方面仍有改进的空间。凭借其高性能、低功耗、低噪声和易用的开发工具,为高速吹风筒市场带来了全新的解决方案。这不仅提高了用户的使用体验,还延长了电机的使用寿命。这不仅减少了电机的电磁噪声,还提高了电机的运行效率。还支持风机顺逆风启动适配多种电阻范围的电机,进一步提高了吹风筒的适用性和灵活性。

2401_83448585的博客 2016

别再傻傻分不清了!Gazebo和Rviz到底怎么选?一个Launch文件搞定双仿真(附避坑清单)

本文深入解析Gazebo和Rviz在ROS机器人开发中的核心差异与应用场景,帮助开发者清晰选择适合的工具。Gazebo作为物理仿真引擎,适合测试真实环境中的机器人行为;而Rviz则是高效的数据可视化平台,专注于调试与监控。通过智能launch文件实现两者的协同工作,提升开发效率,并附有避坑清单和优化技巧。

weixin_30752699的博客 465

python实现DoIP基本通信(收发报文)

python实现DoIP基本通信(收发报文)

天赐好车的博客 898

【回答问题】ChatGPT上线了!如何安装python-ipopt?python-ipopt有哪些用法?

python-ipopt是一种基于Python语言的求解非线性最优化问题的软件包。它使用了Interior Point Optimizer(IPOPT)算法来求解最优化问题。这段代码使用python-ipopt求解了一个无约束的非线性最小化问题,其目标函数为(x[0] - 1) ** 2 + (x[1] - 2) ** 2,求解结果为x_opt。求解线性规划问题、二次规划问题、二次范数最小化问题等类型的最优化问题。对于给定的最优化问题,可以设置不同的求解参数来控制求解的精度和效率。

源代码杀手的博客 2146

ROS:launch文件一站式集成:从地图加载到自主导航的完整仿真环境搭建

本文详细介绍了如何使用ROS的launch文件一站式集成从地图加载到自主导航的完整仿真环境搭建。通过整合Gazebo、TurtleBot3、RViz、move_base和AMCL等核心组件,实现高效的机器人导航仿真。文章提供了环境准备、launch文件架构设计、Gazebo集成、导航系统实现和RViz可视化等实用技巧,帮助开发者快速搭建标准化仿真环境。

weixin_33720956的博客 421

《Unity DOTS之ECS从入门到不香》(1)基本概念

文章目录一、什么是DOTS?二、什么是ECS?三、Hello World 一、什么是DOTS? Data Oriented Tech Stack(DOTS)是unity推出的多线程面向数据的技术堆栈 。它是一套高性能解决方案,包含三个部分: 1.ECS:ECS是一种有别于面向对象的编程模式,是面向CPU Cache友好的编程模式。要求代码都要按照 实体+组件+系统 的框架构建。官方链接 2.JobSystem:JobSystem是unity推出的一套先进的多线程任务管理系统,结合ECS可以获得最佳性能。当然

Cxihu田树东的游戏开发博客 2732

PX4仿真开发新姿势:用VSCode调试Gazebo SITL的5个高效技巧

本文面向PX4开发者,详细介绍了如何利用VSCode高效调试Gazebo SITL仿真的5个核心技巧。内容涵盖从一键自动化构建、多无人机协同仿真配置,到实时数据可视化、自定义场景切换以及性能剖析的完整工作流,旨在帮助开发者基于V1.14及以上版本,大幅提升PX4仿真开发与算法迭代的效率。

weixin_29284201的博客 89

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

ROS2学习笔记五

本文介绍了在ROS2中打包URDF/Xacro模型并发布TF的标准流程。主要内容包括: 核心原理:通过robot_state_publisher解析URDF,结合joint_states数据发布TF变换 手动测试方法: 通过终端启动robot_state_publisher和joint_state_publisher_gui 使用tf2_tools和rviz2验证TF发布 RViz配置: 设置Fixed Frame和RobotModel显示 保存配置文件供复用 创建标准功能包: 建立合理的目录结构 配置CM

2504_91328249的博客 323

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

【ROS2】从xacro到Gazebo:一站式launch文件配置与机械臂仿真避坑指南

本文提供了一份完整的ROS2机械臂Gazebo仿真配置指南。详细讲解了从xacro模型解析、ros2_control配置、控制器yaml文件编写,到一站式launch文件集成的全流程。重点剖析了Gazebo仿真中“模型散架”等常见问题的根源,并给出了添加关节动力学参数、修正惯性矩阵等实战解决方案,帮助开发者快速搭建稳定的机械臂仿真环境。

rgv234567的博客 440

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

上一篇: gazebo物理仿真环境搭建
下一篇: 库的理解
黑猫爱小鹿
博客等级 码龄8年 1万+粉丝 205原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值