如何正确实现 ROS2 架构(rclcpp、rcl、rmw)

How to correctly implement the ROS2 architecture (rclcpp, rcl, rmw)

本文关键字:rcl rmw rclcpp 何正确 实现 ROS2 架构      更新时间:2023-10-16

我是 ROS2 和 C++ 的初学者,我可以帮助理解 ROS 2 的架构是如何工作的。我想将 QoS 事件实现到一个简单的聊天程序中,凭借我的基本知识,我可以制作以下图表:

CODE (publisher.cpp( ==> RCLCPP(qos_event.cpp( 这包括 (qos_event.hpp( ==> RCL (event.c( 这包括 (event.h( ==> RMW (event.c( 这包括 (event.h( ==> DDS

我有以下问题:

  1. 如果我理解正确,头文件被用作某种库。因此,如果您将它们包含在程序中,则可以使用所需的所有功能。这意味着我不需要在我的程序中使用此代码,但我只需要实现这些功能?以下文件:qos_event.cpp/rcl event.c/rmw event.c 我可以在自己的程序中使用的代码示例吗?

  2. 服务质量 (QoS( 设置在 Ros 中间件 (rmw( 中声明。如果我想使用其中一个事件,我可以直接使用 rmw/event.h 头文件还是需要尊重架构,并且只能在您的程序中实现 rclcpp 代码?

1(通常,头文件具有可以使用的函数声明,.c或.cpp文件具有它们的定义,显示了函数的实际实现方式。这可能是一个很好的起点。为了在可执行文件或库中使用此函数,您必须通过 CMakeList 添加这些依赖项.txt 和 package.xml(对于 c++ 初学者来说是一个全新的世界(。

2(关于这个...我建议从 ROS2 检查这个 git 并研究如何使用这些函数。

通常人们说在使用ROS框架之前先学习c++,这是一个非常好的建议。