ros运行管理

本文详细解析了ROS中的launch文件结构,包括节点、参数、话题重映射等元素,并介绍了如何通过launch文件和命令行设置来避免节点和话题重名问题。此外,还探讨了ROS分布式通信中的命名空间和参数覆盖策略,以及如何通过话题重命名实现不同节点间的话题交互。最后,提到了键盘控制节点和乌龟模拟器话题订阅的实例。

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

1、launch。。

<launch deprecated=>

</launch>
<!-- 
    launch为根标签
    deprecated弃用属性  

    node标签:
        pkg:引用的包名,功能包
        type:节点类型
        name:节点名称
        args:节点参数
        machines:机器名
        ...
    include标签:
        用于将另一个xml格式的launch文件倒入到当前文件
        属性:file、ns
    remap标签:用于话题重命名
        属性:from、to
    将常用的方上面
    param标签:
        name:
        value:
        type:
    rosparam标签:
        command:
        file:
        param:
        ns:
    group标签:
        ns:
        clear_params:
    arg标签:
        name:
        default:
        value:
        doc:
    


 -->

 ns:命名空间,将节点包含在一个空间下,防止节点重名问题

include:复用文件,类似.launch文件作为函数进行调用

remap:节点改名,通过更改launch文件可以改变

例如:

键盘控制节点使用的话题:/cmd_vel(rosrun teleop_twist_keyboard teleop_twist_keyboard.py)

 乌龟运动订阅的话题:turtle1/cmd_vel(自带),可以通过更改node使用的话题来实现使用自定义的键盘控制

rosparam:加载参数、导出参数、删除参数,两种使用方法,导出数据有顺序问题,可以先启动等待导出launch,然后在打开rosparam(导出所有参数)

group:对节点分组,属性ns、clear_params,分组后可以重名,不会进行覆盖(因为前缀不一样),清晰层级结构

arg:方便设置参数

节点编写顺序并不能控制节点运行顺序

2、ros工作空间覆盖

第一:通过ter设置参数:设置参数私有化 (

rosrun turtlesim turtlesim_node _A:=100、 

rosrun turtlesim turtlesim_node __ns:=num1)注意"_"

第二:通过launch中的属性设置

        1、名称重映射

        2、命名空间

        3、命名空间 + 名称重映射

第三:编码(代码)设置参数

后刷新的环境变量优先,从下到上

重名:其别名(命名空间)或加前缀

话题重名:

A->话题->B

A是话题的发布方,B是话题的订阅方,改变乌龟节点的订阅的键盘话题

在ROS中提供了一个比较好用的键盘控制功能包: ros-noetic-teleop-twist-keyboard,该功能包,可以控制机器人的运动,作用类似于乌龟的键盘控制节点,可以使用 sudo apt install ros-noetic-teleop-twist-keyboard 来安装该功能包,然后执行: rosrun teleop_twist_keyboard teleop_twist_keyboard.py,在启动乌龟显示节点,不过此时前者不能控制乌龟运动,因为,二者使用的话题名称不同,前者使用的是 cmd_vel话题,后者使用的是 /turtle1/cmd_vel话题。

rosrun teleop_twist_keyboard teleop_twist_keyboard.py /cmd_vel:=/turtle1.cmd_vel

话题类型:根->命名空间->节点名称

        全局:根

        相对:命名空间

        私有:节点名称

也可以在启动wg节点的时候/turtle1.cmd_vel:=/cmd_vel

发布方和订约方都可以有多个,source ./devel/setup.bash用于刷新环境,一般第一次和重新编译后都需要使用

3、ros分布式通信

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值