ros2--launch

是什么

ros2的多节点启动工具。

作用

通过launch工具执行launch文件,可以启动launch文件中配置的多个节点,以及这些启动的节点配置数据。

launch文件的实现

ROS2的launch文件有三种格式,python、xml、yaml。

链接

python语言创建launch文件:

1,创建launch文件

工作目录的src目录下创建launch功能包和launch目录,xxx.launch.py文件。

dev_ws/src/example_launch/launch/test.launch.py

一个功能包下的launch目录下可以有多个launch文件;

2,编写.launch.py文件

(1)导入两个库:

from launch_ros.actions import Node

from launch import LaunchDescription

Node

用于创建一个个的节点对象,这个python中的节点对象,这个节点的参数一个是需要启动节点所在的包,一个是包中的节点的名称:

action_robot_01 = Node(

                                      package="example_action_rclcpp" ,

                                      executable="action_robot_01" )

用于声明节点所在的位置。

包的路径需要指定到什么位置

因为包是在installl目录下的,所以我们只需要指定包名即可;

如果项目中包被放入到其他目录下,需要配置(待补充)。

LaunchDescription

用于对launch文件内容进行描述;

(2)实现函数

def generate_launch_description():

    launch_description = LaunchDescription( [action_robot_01, action_control_01])

    # 返回让ROS2根据launch描述执行节点

    return launch_description

这个函数的函数名不能写错,这个函数由执行ros2 launch时,由launch工具调用。

函数返回值:

函数的返回值中描述了需要启动的节点,launch工具执行这个函数,接受返回值就知道需要启动那些包中的哪些节点,以及进行什么配置。

3,cmake--install launch.py

cmake--install launch.py文件到工作空间install目录下的launch功能包下的share目录下。

install(DIRECTORY launch
  DESTINATION share/${PROJECT_NAME})

最后编译launch功能包:

colcon build --packages-select launch功能包名

launch运行launch文件

运行指令:

ros2 launch launch文件所在功能包 launch文件

launch文件可以是.py  .xml  .yaml文件

launch设置节点参数值

    parameters_basic2 = Node(
        package="example_parameters_rclpy",
        executable="parameters_basic",
        parameters=[{'rcl_log_level': 50}]
    )

launch设置节点命名空间

这个命名空间有什么作用:

当启动的节点名称相同,或者启动一个节点的多份的时候,我们需要加上一个namespace作为相同名称的节点的区分:

def generate_launch_description():
    #定义需要启动的第一个节点对象
    node_01=Node(package="node_namespace",namespace="instance_1",executable="node_01")
    #启动同一个节点的第二个对象
    node_02=Node(package="node_namespace",namespace="instance_2",executable="node_01")
    launch_description=LaunchDescription([node_01,node_02])
    return launch_description

运行这个launch之后,查看启动的节点:

小鱼教程

launch的更多用法

相关推荐

  1. ROS2笔记八】ROS2编写Python launch 文件

    2024-07-18 07:18:03       24 阅读
  2. ROS2+ROS_DOMAN_ID

    2024-07-18 07:18:03       45 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-18 07:18:03       49 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-18 07:18:03       53 阅读
  3. 在Django里面运行非项目文件

    2024-07-18 07:18:03       42 阅读
  4. Python语言-面向对象

    2024-07-18 07:18:03       53 阅读

热门阅读

  1. 设计模式-工厂设计

    2024-07-18 07:18:03       19 阅读
  2. 构建完成,通知我:在Gradle中配置构建通知

    2024-07-18 07:18:03       16 阅读
  3. Netty Websocket

    2024-07-18 07:18:03       16 阅读
  4. 【Android】传给后端的Url地址被转码问题处理

    2024-07-18 07:18:03       16 阅读