4.3.1 节点设置

需求:launch 文件中配置节点的相关属性。

示例:

在 cpp01_launch/launch/xml 目录下新建 xml01_node.launch.xml 文件,输入如下内容:

<launch>
    <node pkg="turtlesim" exec="turtlesim_node" name="t1" namespace="t1_ns" exec_name="t1_label" respawn="true"/>
    <node pkg="turtlesim" exec="turtlesim_node" name="t2">
        <!-- <param name="background_r" value="255" />
            <param name="background_g" value="255" />
            <param name="background_b" value="255" /> -->
        <param from="$(find-pkg-share cpp01_launch)/config/t2.yaml" />
    </node>
    <node pkg="turtlesim" exec="turtlesim_node" name="t3">
        <remap from="/turtle1/cmd_vel" to="/cmd_vel" />
    </node>
    <node pkg="turtlesim" exec="turtlesim_node" ros_args="--remap __name:=t4 --remap __ns:=/group_2" />
    <node pkg="rviz2" exec="rviz2" args="-d $(find-pkg-share cpp01_launch)/config/my.rviz" />  

</launch>

在 cpp01_launch/launch/yaml 目录下新建 yaml01_node.launch.yaml 文件,输入如下内容:

launch:
- node:
    pkg: "turtlesim"
    exec: "turtlesim_node"
    name: "t1"
    namespace: "t1_ns"
    exec_name: "t1_label"
    respawn: "false"
- node:
    pkg: "turtlesim"
    exec: "turtlesim_node"
    name: "t2"
    param:
    # - 
    #   name: "background_r"
    #   value: 255
    # - 
    #   name: "background_b"
    #   value: 255
    -
      from: "$(find-pkg-share cpp01_launch)/config/t2.yaml"
- node:
    pkg: "turtlesim"
    exec: "turtlesim_node"
    remap:
    -
      from: "/turtle1/cmd_vel"
      to: "/cmd_vel"

- node:
    pkg: "turtlesim"
    exec: "turtlesim_node"
    ros_args: "--ros-args --remap __name:=t4 --remap __ns:=/t4"
- node:
    pkg: "rviz2"
    exec: "rviz2"
    args: "-d $(find-pkg-share cpp01_launch)/config/my.rviz"

代码解释:

在XML 实现中 node 标签用于表示节点,其属性包含:

  • pkg:功能包;
  • exec:可执行文件;
  • name:节点名称;
  • namespace:命名空间;
  • exec_name:流程标签;
  • respawn:节点关闭后是否重启;
  • args:调用指令时的参数列表;
  • ros_args:相当于 args 前缀 --ros-args。

node 标签的子级标签包含:

  • param,设置参数的标签,其属性包含:

    • name:参数名称;

    • value:参数值;

    • from:参数文件路径;

  • remap,话题重映射标签,其属性包含:

    • from:原话题名称;

    • to:新话题名称。

YAML 实现规则与之类似。

results matching ""

    No results matching ""