ROS2中launch文件的Node用法

ROS 2中,launch文件用于同时启动多个节点,并配置各个节点的参数、重映射话题等。在ROS 2中,launch文件通常使用Python或者XML格式编写。

其中,Node 是 launch 文件的核心部分,用于描述要启动的 ROS 2 节点。下面详细讲解 Node 在 launch 文件中的各个参数及使用方式。


1. Node 在 launch 文件中的基本用法

Python Launch 文件中的 Node

在 Python launch 文件中,launch_ros.actions.Node 是启动节点的类。示例如下:

from launch import LaunchDescription
from launch_ros.actions import Node

def generate_launch_description():
    return LaunchDescription([
        Node(
            package='demo_nodes_cpp',  # 节点所在的包名
            executable='talker',       # 可执行文件名
            name='my_talker',          # 节点名,可选
            namespace='demo',          # 命名空间,可选
            output='screen',           # 输出方式(screen 表示打印到终端)
            parameters=[
                {
   'param1': 'value1'},  # 参数列表
                {
   'param2': 'value2'}
            ],
            remappings=[
                ('/chatter', '/my_topic')  # 话题重映射
            ],
            arguments=['--ros-args', '--log-level', 'DEBUG'],  # 传递额外的参数
            emulate_tty=True            # 用于显示彩色输出(终端仿真)
        )
    ])

2. Node 参数详解

参数 类型 描述
package str 包含节点的包名。例如:demo_nodes_cpp
executable str 可执行节点的名称(可执行文件名),例如:talker
name str 节点的名称(节点名),用于覆盖默认节点名,默认为空
namespace str 节点的命名空间。默认为空,设置后会影响节点的话题、服务等的前缀
output str 节点输出位置。screen 表示输出到终端,log 表示保存到日志文件
parameters list 传递参数给节点。可以是字典或 YAML 文件路径列表。
remappings list 话题、服务或参数的重映射。格式为列表,元素是元组:('旧名称', '新名称')
arguments list 额外的命令行参数,通常用于 --ros-args 传递日志级别等配置
emulate_tty bool 终端仿真。如果设置为 True,可以在终端显示带颜色的输出(对彩色日志有帮助)
prefix str 在启动节点前添加命令前缀,例如 gdbvalgrind 等,用于调试
cwd str 节点运行的工作目录,如 'node''launch'
env dict 指定启动节点时的环境变量,格式为字典:{'env_var1': 'value1', ...}
respawn bool 是否在节点崩溃时自动重启。默认值为 False
respawn_delay float 节点崩溃后重启的延迟时间,单位为秒

3. 参数设置方式

在 launch 文件中,parameters 参数支持两种方式:

  1. 字典形式

    parameters=[
        {
         'param1': 'value1'},
        {
         'param2': 42}
    ]
    
  2. YAML 文件

    parameters=[
        '/path/to/config.yaml'
    ]
    

    YAML 文件中格式如下:

    param1: "value1"
    param2: 42
    

4. 话题重映射

Node 中,可以通过 remappings 参数来重映射话题名称。格式为 ('旧名称', '新名称')

例如:

remappings=[
    ('/chatter', '/new_chatter')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值