ROS入门学习三——launch文件

这篇具有很好参考价值的文章主要介绍了ROS入门学习三——launch文件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

launch作用:便于一次启动多个节点,可启动本地节点和远程节点及修改添加参数服务器参数。

<launch>            //<launch>是所有launch文件的根标签
            
    <node>          //node为子集标签
        
    </node>
</launch>

launch文件的建立

在功能包下,新建launch文件夹 ,在launch文件夹下添加后缀为launch的文件。

 launch文件的启动 

roslaunch 功能包名  launch文件名

一、 launch文件之node标签

<launch>
    <!-- pkg = "包名" -->
    <!-- type = "节点名称,可执行文件名称" -->
    <!-- name = "为节点其别名" -->
    <!-- output = "输出类似 log/screen" -->
    <!-- args = "将参数传递给节点" --> 
    <!-- machine = "启动不同设备上的节点" -->
    <!-- respawn = "退出后是否自动启动" -->
    <!-- required = "节点退出后,关闭roscore" -->
    <!-- ns = "设置节点命名空间,加前缀" -->
    <node pkg="turtlesim" type="turtlesim_node" name="turtle" output="screen"/>
    <node pkg="turtlesim" type="turtle_teleop_key" name="my_key" output="screen"/>
</launch>

上面例子中launch文件启动时是多线程的,不一定按照节点描述顺序启动。

二、launch文件之include标签

<launch>
   <!-- 用于文件复用,此例将文件node.launch复用 -->
   <!-- file="$(find 功能包名)/launch/launch文件名" -->
   <include file="$(find launch02)/launch/node.launch"  />

</launch>

三、launch文件之remap标签

<launch>
    <node pkg="turtlesim" type="turtlesim_node" name="turtle" output="screen">
        <remap from="/turtle1/cmd_vel" to="/cmd_vel"/>   //将话题"/turtle1/cmd_vel"修改                                                
                                                         //为"/cmd_vel"/>  
    </node>
    <node pkg="turtlesim" type="turtle_teleop_key" name="my_key" output="screen"/>
</launch>

四、launch文件之param标签

 <param>标签主要用于在参数服务器上设置参数,参数源可以在标签中通过 value 指定,也可以通过外部文件加载,在<node>标签中时,相当于私有命名空间。

<launch>
    <!-- 格式一,在launch内,node外 -->
    <!-- name为参数名 -->
    <!-- type为参数类型 -->
    <!-- value为参数赋值 -->
    <param name="param_A" type="int" value="100"/>      
    <node pkg="turtlesim" type="turtlesim_node" name="turtle" output="screen">
    <!-- 格式二,在node内 -->
        <param name="param_B" type="double" value="102.3"/>
    </node>
    <node pkg="turtlesim" type="turtle_teleop_key" name="my_key" output="screen"/>

</launch>

' 五、launch文件之rosparam标签

<rosparam>标签可以从 YAML 文件导入参数,或将参数导出到 YAML 文件,也可以用来删除参数,<rosparam>标签在<node>标签中时被视为私有。

  • command="load | dump | delete" (可选,默认 load)

    加载、导出或删除参数

  • file="$(find xxxxx)/xxx/yyy...."

    加载或导出到的 yaml 文件

  • param="参数名称"

  • ns="命名空间" (可选)

  • <launch>
        <!-- 导出服务器参数到文件(find launch02)/launch/params_out.yaml -->
        <rosparam command="dump" file="$(find launch02)/launch/params_out.yaml"/>
        <!-- 删除参数bg_B -->
        <rosparam command="delete" param="bg_B"/>
    
    </launch>

    六、launch文件之group标签

<group>标签可以对节点分组,具有 ns 属性,可以让节点归属某个命名空间

<launch>
    <!-- 节点分组,将不会出现节点覆盖问题 -->
    <group ns="first">
    <node pkg="turtlesim" type="turtlesim_node" name="turtle" output="screen"/>
    <node pkg="turtlesim" type="turtle_teleop_key" name="my_key" output="screen"/>
    </group>
    <group ns="second">
    <node pkg="turtlesim" type="turtlesim_node" name="turtle" output="screen"/>
    <node pkg="turtlesim" type="turtle_teleop_key" name="my_key" output="screen"/>
    </group>
</launch>

七、launch文件之args标签

<arg>标签是用于动态传参,类似于函数的参数,可以增强launch文件的灵活性

<launch>
    <!-- 相当于宏定义,定义参数car_length -->
    <arg name="car_length" default="0.55"/>  

    <param name="A" value="${arg car_length}"/>
    <param name="B" value="${arg car_length}"/>
    <param name="C" value="${arg car_length}"/>

</launch>

也可以动态传参

roslaunch launch02 _arg.launch car_length:=0.6

ROS分布式通信 

ros作为一个分布式的系统,一个运行的ros系统,多个节点可以分布在不同的设备中,并且节点之间可以相互通信。因此,配置需要满足以下条件

所有端口上的所有机器之间必须有完整的双向连接。

每台计算机必须通过所有其他计算机都可以解析的名称来公告自己。

实现:

1.准备

先要保证不同计算机处于同一网络中,最好分别设置固定IP,如果为虚拟机,需要将网络适配器改为桥接模式;首先通过终端输入命令ifconfig,获取本机的ip,掩码、网关,

launch文件中output,学习,机器人

再将其填入

launch文件中output,学习,机器人

点击应用即可,所有设备均做以上操作。 

 2.配置文件修改

分别修改不同计算机的 /etc/hosts 文件,在该文件中加入对方的IP地址和计算机名

launch文件中output,学习,机器人

 主机加入从机的IP及从机的计算机名, 从机加入主机的IP及主机的计算机名,

IP地址查看名: ifconfig

计算机名称查看: hostname

launch文件中output,学习,机器人

 设置成功后,重启计算机生效,主机可使用命令 ping 从机ip查看连接状态,同理从机

 也可使用命令 ping 从机ip查看连接状态。

 3.配置文件修改

配置主机的 IP 地址

~/.bashrc 追加文章来源地址https://www.toymoban.com/news/detail-579194.html

export ROS_MASTER_URI=http://主机IP:11311
export ROS_HOSTNAME=主机IP

4.配置从机IP

配置从机的 IP 地址,从机可以有多台,每台都做如下设置:

~/.bashrc 追加

export ROS_MASTER_URI=http://主机IP:11311
export ROS_HOSTNAME=从机IP

到了这里,关于ROS入门学习三——launch文件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【ROS2机器人入门到实战】ROS2话题入门

    当前平台文章汇总地址:ROS2机器人从入门到实战 获取完整教程及配套资料代码,请关注公众号鱼香ROS获取 教程配套机器人开发平台:两驱版| 四驱版 为方便交流,搭建了机器人技术问答社区:地址 fishros.org.cn 话题是ROS2中最常用的通信方式之一,话题通信采取的是订阅发布

    2024年02月04日
    浏览(48)
  • 【ROS机器人入门】1.1 ROS概念及环境配置

    ROS=Plumbing+Tools+Capabilities+Ecosystem 代码复用 :ROS的目标不是成为具有最多功能的框架,ROS的主要目标是支持机器人技术研发中的代码 重用。 分布式 :ROS是进程(也称为Nodes)的分布式框架,ROS中的进程可分布于不同主机,不同主机协同工 作,从而分散计算压力 。 松耦合 :ROS中功

    2023年04月22日
    浏览(35)
  • 【ROS2机器人入门到实战】

    当前平台文章汇总地址:ROS2机器人从入门到实战 获取完整教程及配套资料代码,请关注公众号鱼香ROS获取 教程配套机器人开发平台:两驱版| 四驱版 为方便交流,搭建了机器人技术问答社区:地址 fishros.org.cn 第 1 章 ROS2介绍与安装 基础篇-Linux基础 1.Linux与Ubuntu系统介绍 2.在

    2024年02月16日
    浏览(39)
  • 【ROS2机器人入门到实战】ROS2节点介绍

    当前平台文章汇总地址:ROS2机器人从入门到实战 获取完整教程及配套资料代码,请关注公众号鱼香ROS获取 教程配套机器人开发平台:两驱版| 四驱版 为方便交流,搭建了机器人技术问答社区:地址 fishros.org.cn ROS2中每一个节点也是只负责一个单独的模块化的功能(比如一个

    2024年02月06日
    浏览(40)
  • 【ROS2机器人入门到实战】ROS2接口介绍

    当前平台文章汇总地址:ROS2机器人从入门到实战 获取完整教程及配套资料代码,请关注公众号鱼香ROS获取 教程配套机器人开发平台:两驱版| 四驱版 为方便交流,搭建了机器人技术问答社区:地址 fishros.org.cn 本节小鱼将会带你学习认识一个新的概念,叫做interface,即接口。

    2024年02月05日
    浏览(35)
  • 【ROS2机器人入门到实战】RVIZ2可视化移动机器人模型

    当前平台文章汇总地址:ROS2机器人从入门到实战 获取完整教程及配套资料代码,请关注公众号鱼香ROS获取 教程配套机器人开发平台:两驱版| 四驱版 为方便交流,搭建了机器人技术问答社区:地址 fishros.org.cn 大家好,我是小鱼,上一节讲完joint和link,我们来把我们上面定义

    2024年02月03日
    浏览(31)
  • 【ROS2机器人入门到实战】2.ROS与ROS2对比

    当前平台文章汇总地址:ROS2机器人从入门到实战 获取完整教程及配套资料代码,请关注公众号鱼香ROS获取 教程配套机器人开发平台:两驱版| 四驱版 为方便交流,搭建了机器人技术问答社区:地址 fishros.org.cn 经过上一节的学习,相信你已经对ROS和ROS2的发展有了一定的了解

    2024年02月04日
    浏览(31)
  • 【ROS2机器人入门到实战】3.动手安装ROS2

    当前平台文章汇总地址:ROS2机器人从入门到实战 获取完整教程及配套资料代码,请关注公众号鱼香ROS获取 教程配套机器人开发平台:两驱版| 四驱版 为方便交流,搭建了机器人技术问答社区:地址 fishros.org.cn 到了这一节,终于可以开始安装ROS2了。安装ROS2本来是一件比较麻

    2024年02月13日
    浏览(41)
  • 【ROS2机器人入门到实战】4.ROS2初体验

    当前平台文章汇总地址:ROS2机器人从入门到实战 获取完整教程及配套资料代码,请关注公众号鱼香ROS获取 教程配套机器人开发平台:两驱版| 四驱版 为方便交流,搭建了机器人技术问答社区:地址 fishros.org.cn 通过几个简单的小例子来体验ROS2软件库和工具集。 游戏内容:很

    2024年02月04日
    浏览(55)
  • xacro机器人模型文件转urdf文件怎么编写launch文件启动gazebo仿真和在rviz2内显示模型

    urdf文件很直白,每个零件的/link  /joint都要编写一遍,每个零件数据都要自己算出来结果,很麻烦,但是用起来很简单。xacro写的模型文件可以把好多常量提前定义出来,不同大小的机器人只要只要改一下常量,机器人模型就可以重新生成,代码可以复用,编写起来简单多了

    2024年02月12日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包