科研向(仿真验证) ROS 学习笔记四:ROS 运行管理

这篇博客详细介绍了ROS的launch文件结构和使用,包括<launch>、<group>、<node>、<include>等标签的属性及用法,以及如何处理节点、话题的重名问题。同时,讲解了ROS的MetaPackage概念,用于组织和集成多个软件包。此外,还阐述了ROS分布式通信的设置步骤,包括主机和从机的网络配置、.bashrc文件的修改以及ROS_MASTER_URI和ROS_HOSTNAME的设定。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

launch文件

  1. <launch> (根)标签:属性 deprecated = "弃用声明"
  2. <group> 标签:可以对节点分组,具有 ns 属性,可以让节点归属某个命名空间;ns="名称空间"
  3. <node> 标签:注意:无法按序启动节点; 属性:pkg = “包名”, type = “可执行文件”, name = “Name”, args = “xxx” (传递给节点的参数), machine = “机器名”, respawn = “true | false” (节点被关闭后自动重启), respawn_delay = " N" (延迟 N 秒后重启), required = “true | false” (必须节点退出则杀死整个roslaunch), ns = “xxx”, output=“log | screen”;
  4. <include> 标签:属性 file="$(find pkg_name)/xxx/xxx.launch"
  5. 子标签: <remap> 标签 from="原始话题名称", to="目标名称"<param> 标签 n ame="命名空间/参数名", value="xxx"<rosparam> 标签 command="load | dump | delete", file="$(find pkg_name)/launch/yyy.yaml"
  6. <arg> 标签用于动态传参,类似于函数的参数;属性 name="参数名称", default="默认值", value="数值", doc="描述"
    <launch>
        <arg name="xxx" />
        <param name="param" value="$(arg xxx)" />
    </launch>
    
    roslaunch hello.launch xxx:=值  # 命令行调用launch传参
    

ROS元功能包

MetaPackage是Linux的一个文件管理系统的概念。是ROS中的一个虚包,里面没有实质性的内容,但是它依赖了其他的软件包,通过这种方法可以把其他包组合起来,我们可以认为它是一本书的目录索引,告诉我们这个包集合中有哪些子包,并且该去哪里下载。

实现方法

首先:新建一个功能包

然后:修改package.xml ,内容如下:

<exec_depend>被集成的功能包1</exec_depend>
<exec_depend>被集成的功能包2</exec_depend>
 .....
<export>
   <metapackage />
</export>

最后:修改 CMakeLists.txt,内容如下(其他删除即可): PS:CMakeLists.txt 中不可以有换行。

cmake_minimum_required(VERSION 3.0.2)
project(pkg_name)
find_package(catkin REQUIRED)
catkin_metapackage()

节点&话题 重名问题

  • rosrun设置节点命名空间:__ns:=/xxx, 对应launch中的ns属性
    rosrun turtlesim turtlesim_node  __ns:=/xxx
    
  • rosrun节点名称重映射:__name:=t1, 对应launch中的name属性
    rosrun turtlesim  turtlesim_node __name:=t1
    
  • rosrun话题名称重映射: rorun 包名 节点名 话题名:=新话题名称 对应 launch 中的 <remap>

ROS分布式通信

  1. 准备:保证不同计算机处于同一网络中,最好分别设置固定IP,如果为虚拟机,将网络适配器改为桥接模式;

  2. 配置文件修改:分别修改不同计算机的 /etc/hosts 文件,加入对方的IP地址和计算机名;
    (IP地址查看名: ifconfig;计算机名称查看: hostname)

  3. 配置主机IP: ~/.bashrc 追加

    export ROS_MASTER_URI=http://主机IP:11311
    export ROS_HOSTNAME=主机IP
    
  4. 配置从机IP: ~/.bashrc 追加

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

参考资料如下ROS理论与实践

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值