【ROS2】中级-在单个进程中组合多个节点

 目录

  •  背景

  •  先决条件

  •  运行演示

    • 发现可用组件

    • 运行时使用 ROS 服务的发布者和订阅者组合

    • 运行时使用 ROS 服务的服务器和客户端组合

    • 编译时与硬编码节点组合

    • 运行时使用 dlopen 进行组合

    • 使用启动动作的组合

  •  高级主题

    •  卸载组件

    • 重映射容器名称和命名空间

    • 重映射组件名称和命名空间

    • 传递参数值到组件中

    • 向组件传递额外的参数

  • 可组合节点作为共享库

  • 组成非节点派生组件

目标:将多个节点组合成单一进程。

教程级别:中级

 时间:20 分钟

 背景

查看概念性文章 https://docs.ros.org/en/jazzy/Concepts/Intermediate/About-Composition.html 。

有关如何编写可组合节点的信息,请查看本教程 https://docs.ros.org/en/jazzy/Tutorials/Intermediate/Writing-a-Composable-Node.html 。

 先决条件

本教程使用来自 rclcpp_components、ros2component、composition 和 image_tools 包的可执行文件。如果您已经按照平台的安装说明进行了操作,这些应该已经安装好了。

运行演示

发现可用组件 

要查看工作区中注册和可用的组件,请在 shell 中执行以下操作:

ros2 component types

终端将返回所有可用组件的列表:

cxy@ubuntu2404-cxy:~/ros2_ws$ ros2 component types
rosbag2_transport
  rosbag2_transport::Player
  rosbag2_transport::Recorder
robot_state_publisher
  robot_state_publisher::RobotStatePublisher
tf2_ros
  tf2_ros::StaticTransformBroadcasterNode
quality_of_service_demo_cpp
  quality_of_service_demo::MessageLostListener
  quality_of_service_demo::MessageLostTalker
  quality_of_service_demo::QosOverridesListener
  quality_of_service_demo::QosOverridesTalker
point_cloud_transport
  point_cloud_transport::Republisher
  point_cloud_transport::Republisher
image_transport
  image_transport::Republisher
image_tools
  image_tools::Cam2Image
  image_tools::ShowImage
logging_demo
  logging_demo::LoggerConfig
  logging_demo::LoggerUsage
examples_rclcpp_wait_set
  Talker
  Listener
examples_rclcpp_minimal_subscriber
  WaitSetSubscriber
  StaticWaitSetSubscriber
  TimeTriggeredWaitSetSubscriber
demo_nodes_cpp_native
  demo_nodes_cpp_native::Talker
composition
  composition::Talker
  composition::Listener
  composition::NodeLikeListener
  composition::Server
  composition::Client
action_tutorials_cpp
  action_tutorials_cpp::FibonacciActionClient
  action_tutorials_cpp::FibonacciActionServer

使用 ROS 服务进行运行时组合,包括一个发布者和一个订阅者

在第一个 shell 中,启动组件容器:

ros2 run rclcpp_components component_container

打开第二个 shell 并通过 ros2 命令行工具验证容器是否在运行:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值