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,掩码、网关,

再将其填入

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

 2.配置文件修改

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

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

IP地址查看名: ifconfig

计算机名称查看: hostname

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

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

 3.配置文件修改

配置主机的 IP 地址

~/.bashrc 追加

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

怕输、就别认真了
关注 关注
  • 5
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ROS2入门到精通—— 2-4 ROS2实战:自定义全局规划插件——StraightLine
BigDavid123的博客
07-16 115
本文可作为自定义规划插件的参考,助于Nav2规划器相关开发
ROS2入门到精通—— 2-10 ROS2实战:自定义规划插件——基于录制的固定路径的全局规划
BigDavid123的博客
07-24 535
本文实现了自定义规划插件:基于录制的固定路径的全局规划
ROS学习笔记11:launch启动文件ROS常用组件)
qq_71734878的博客
11-23 1712
launch文件中通过元素加载parameter,launch文件执行后,parameter就加载到ROS的参数服务器上了。启动文件ROS中一种可以通过xml文件,同时启动多个节点并可以实现每个节点的各种配置的途径,它还可以自动启动ROS Master节点管理器,为多个节点的操作提供很大的便利。XML文件必须包含一个根元素,launch文件中的根元素采用标签定义,文件。5)required=“ture”:必要节点,当该节点终止时,launch文件中的其他节点也被终止。
ROS Launch文件
m0_73640344的博客
05-27 1333
使用launch文件可以有效地管理和启动ROS系统中的多个节点,这对于调试和运行复杂的ROS应用程序非常有用。通过在launch文件中指定节点配置和行为,可以实现高度的自定义和自动化,简化了ROS系统的使用。运行相同类型的多个ROS节点时,确保每个节点都有一个独特的名称是关键。你可以通过指定不同的节点名称、使用不同的命名空间或利用arg参数和foreach循环(在支持的ROS版本中)来实现这一点。这些方法都确保了系统的灵活性和可扩展性。虽然C++和Python编写的ROS节点在.launch
【自动驾驶】ROS运行管理:元功能包、launch文件、param 、rosparam、args
最新发布
种一棵树最好的时间是十年前,其次是现在
08-13 1088
rosparam总是在launch文件中最先执行,故要想让其最后执行,要把其单独放在另一个launch文件内,这样人为控制该launch文件最后执行。该节点是否必须,如果为 true,那么如果该节点退出,将杀死整个 roslaunch启动的节点。在指定命名空间 xxx 中启动节点,为节点名称设置前缀如/hello/jiedian。如果定义在node节点下,对应参数为/节点名/参数名,即变量加入了私有的命名空间。重新映射话题,使得两个节点使用的话题名称相同,让两个节点能通讯。
ROS运行管理之launch文件
mxh3600的博客
06-09 8254
launch文件的详细解释
ROS launch文件
2301_79503228的博客
12-26 1036
每个活跃的节点都可以通过 ros::param::get()接口来获取parameter的值,用户也可以在终端中通过 rosparam 命令获得 parameter的值。argument是另外一个概念,类似于launch文件内部的局部变量,仅限于launch文件使用,便于launch文件的重构,与ROS节点内部的实现没有关系。其中pkg定义节点所在的功能包名称,type定义节点的可执行文件名称,这两个属性等同于在终端中使用rosrun命令执行节点时的输入参数。参数服务器是一个全局的数据存储服务,
ROS运行管理---launch文件
LoongEmbedded的专栏
05-07 1543
文章目录1. launch文件概述1.1 luanch文件概念1.2 luanch文件作用2. launch文件启动示例3. launch文件语法 1. launch文件概述 1.1 luanch文件概念 launch 文件是一个 XML 格式的文件,可以启动本地和远程的多个节点,还可以在参数服务器中设置参数。 1.2 luanch文件作用 简化节点的配置与启动,提高ROS程序的启动效率。 luanch文件需求背景举例: 一个程序中可能需要启动多个节点,比如:ROS 内置的小乌龟案例,如果要控制乌龟运动,
ros入门——launch启动文件的使用方法
weixin_42732240的博客
09-01 2126
launch文件:通过xml文件实现多节点的配置和启动(可自动启动ROS Master) 1、起始<launch>与结束</launch>之间为定义 2、参数设置 3、重映射和嵌套
ROS自主导航学习———ROS通信机制
向阳而生的博客
12-02 1791
前言 前面ROS很多都忘记了 ,现在来重新回顾一下内容 ROS 中的基本通信机制主要有如下种实现策略: 话题通信(发布订阅模式) 服务通信(请求响应模式) 参数服务器(参数共享模式) 话题通信(发布订阅模式) 以发布订阅的方式实现不同节点之间数据交互的通信模式。 话题通信实现模型是比较复杂的,该模型如下图所示,该模型中涉及到个角色: ROS Master (管理者) Talker (发布者) Listener (订阅者) ROS Master 负责保管 Tal
ROS入门教程(五)—— RViz仿真
热门推荐
吾门的博客
03-18 1万+
本文将介绍如何在RViz仿真环境中让我们的机器人动起来。
ROS launch文件编写说明
10-19
ROS launch文件编写说明
ros中的launch文件
weixin_45868890的博客
03-20 6383
ros中的launch文件
ROSlaunch文件
诗筱涵的博客
07-27 186
ROSlaunch文件 看了ROS的书之后再去看他们无人机SLAM的一些配置操作就感觉好一些。很多是ROS里面的一些基础操作。 rivs也是的。
ROS学习笔记--深入理解roslaunchROS启动文件详解
zcw_jszs的博客
07-25 4762
ROS机器人操作系统)中,roslaunch是一个至关重要的工具,它能够帮助我们高效地启动ROS节点、参数服务器和其他必要的组件。本博客仅记录且作为笔记。提示:以下是本篇文章正文内容,下面案例可供参考在ROS中,一个复杂的机器人项目通常由多个节点(Node)组成,每个节点负责不同的任务,例如传感器数据处理、运动控制、用户界面等。在项目启动时,需要同时启动这些节点,并且要确保它们之间的通信和协调工作。这时,roslaunch派上用场。
ROS学习笔记2——launch文件
Simulink_的博客
01-13 1012
一个程序中可能需要启动多个节点,比如ROS内置的小乌龟程序,实现这个案例需要开启roscore节点、小乌龟可视化节点、键盘控制节点,显然是一个很繁琐的方法。launch文件的根标签,每个launch文件都需要有这样一个根标签,并且文件的所有内容必须包含在这个标签内,只要i有这样一个根标签,运行launch文件时,就会开启roscore。launch中的标签远不止这些,并且launch文件ros工程中使用非常频繁,在后续的学习中,慢慢完善更新标签及其作用。pkg、type、name是个最主要的参数。
课3、ROSlaunch文件
weixin_30388677的博客
01-16 90
1、launch 参数说明: pkg为节点的功能包,type为需要运行的那个节点,name为节点的名字,后面的参数可选 举个launch文件的例子: 在工作空间中新建一个包: 然后再回到工作空间中去编译: 再在包目录下创建一个launch文件: 把type=turtlesim_teleop_key改成type=turtle_teleop_key,在这里的typ...
[ROS 系列学习教程] launch文件
淋曦的进击手记
02-25 1253
launch文件用于管理ros节点,它使用 XML 语法,可以同时启动多个节点,也可以对节点做一些配置。launch文件启动时,会判断是否启动了 roscore,如果启动了,则不再启动,否则,会自动调用 roscore。它主要用于声明远程计算机的 SSH 和 ROS 环境变量设置,但也可以使用它来声明有关本地计算机的信息。,则当前上下文中设置的所有参数,都将添加到为处理包含的文件而创建的子上下文中。该节点是否必须,如果为 true,那么如果该节点退出,将杀死整个 roslaunch,默认为 false。
当使用include标签调用多个launch文件时,如何使调用的launch文件具有先后顺序
09-26
可以使用`<include>`标签的`wait`属性来控制调用的多个launch文件的先后顺序。`wait`属性默认为`true`,表示等待被调用的launch文件执行完毕,才会继续执行下一个launch文件。如果将`wait`属性设置为`false`,则表示不等待,会同时启动所有被调用的launch文件。举个例子,比如有两个launch文件`file1.launch`和`file2.launch`,`file2.launch`依赖于`file1.launch`,则可以按照以下方式编写调用文件`master.launch`: ``` <launch> <include file="file1.launch"> <arg name="arg1" value="value1"/> </include> <include file="file2.launch" wait="true"> <arg name="arg2" value="value2"/> </include> </launch> ``` 在这个例子中,先调用`file1.launch`,并传递参数`arg1`,等待其执行完毕后再调用`file2.launch`,并传递参数`arg2`。`file2.launch`会等待`file1.launch`执行完毕后再启动。如果将`wait`属性设置为`false`,则表示不等待,`file2.launch`会立即启动,而不管`file1.launch`是否执行完毕。
写文章

热门文章

  • CMake入门二——子目录的嵌套 3350
  • ROS入门学习三——launch文件 2546
  • ROS入门学习一 1085
  • ROS入门学习二——通信模型 235
  • CMake入门三——常见的变量 193

分类专栏

  • CMake 3篇

大家在看

  • 代码即策略:具身控制的语言模型程序
  • 文字版格斗游戏
  • 【ChatGPT】提示词助力广告文案、PPT制作与书籍推荐的高效新模式
  • ROS组合导航笔记1:融合传感器数据 903
  • win dos指令 322

最新文章

  • C++函数探幽
  • 操作系统简明
  • ROS入门学习二——通信模型
2023年8篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

玻璃钢生产厂家泉州潮州玻璃钢花盆品牌盐城玻璃钢雕塑定制价格中式玻璃钢雕塑公司哪家好玻璃钢石榴娃雕塑吉祥物仕女玻璃钢雕塑河北通道商场美陈研发公司玻璃钢雕塑十二生肖价格贵阳玻璃钢果蔬雕塑名人玻璃钢卡通雕塑现货浙江多彩玻璃钢雕塑定制天津玻璃钢动物雕塑厂四川定制玻璃钢雕塑设计佛山led发光玻璃钢雕塑定做玻璃钢铜鹿雕塑佛山透光玻璃钢雕塑工艺商场美陈装饰皮卡丘花朵玻璃钢景观雕塑定做价格清远景观玻璃钢雕塑公司室内商场美陈生产企业广安玻璃钢仿铜雕塑价格河南价值观玻璃钢彩绘雕塑小品通州玻璃钢雕塑厂家金华景区玻璃钢雕塑定做价格蚌埠酒店装饰玻璃钢雕塑南京鼓楼商场美陈万源玻璃钢雕塑定制信阳标识玻璃钢仿铜雕塑西安玻璃钢花盆批发价格表商城艺术玻璃钢雕塑玻璃钢海洋雕塑哪家专业香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化