ROS 2客户端接口 (客户端库)
ROS客户端接口,又名|客户端库|,是面向用户的接口,提供高级功能,并建立在 rcl
和 rosidl
的 APIs 基础上。 [Alyssa@9656]
rclcpp
包 [Alyssa@9657]
针对C++ ( rclcpp
) 的ROS客户端库是面向用户的,符合C++ 语言特定的接口,它提供所有ROS客户端功能,如创建节点、发布者和订阅者。 rclcpp
建立在 rcl
和 rosidl
API 的基础上,它被设计为与 rosidl_generator_cpp
生成的C++ 消息一起使用。 [Alyssa@9658]
[需手动修复的语法]``rclcpp`` makes use of all the features of C++ and C++11 to make the interface as easy to use as possible, but since it reuses the implementation in rcl
it is able maintain a consistent behavior with the other client libraries that use the rcl
| API |。 [待校准@9659]
[需手动修复的语法] rclcpp
仓库位于 | GitHub | _ at ros2/rclcpp ,包含 | 包 | [需手动修复的语法] rclcpp
。生成的 | API | 文档如下: [待校准@9660]
rclpy
包装 [待校准@9662]
Python的ROS客户端库 ( rclpy
) 是与cclient客户端库相对应的Python。像C client客户端库一样, rclpy
也在 rcl
C API的基础上构建以实现它。该界面提供了一种惯用的Python体验,它使用本地Python类型和模式,如列表和上下文对象,但是通过在实现中使用 rcl
| API |,它在特性奇偶校验和行为方面与其他客户端库保持一致。除了为每个消息提供围绕 rcl
| API | 和Python类的Python惯用绑定之外,Python客户端库还负责执行模型,使用 threading.Thread
或类似方法运行 rcl
| API | 中的函数。 [待校准@9663]
与C++ 一样,它为用户与之交互的每个ROS消息生成自定义Python代码,但与C++ 不同,它最终将本机Python消息对象转换为消息的C版本。所有操作都发生在Python版本的消息上,直到它们需要传递到 rcl
层,此时,它们将转换为消息的纯C版本,以便可以将其传递到 rcl
C | API |。当发布者和订阅者在同一过程中进行通信以减少Python的转换时,如果可能的话,可以避免这种情况。 [待校准@9664]
[需手动修复的语法] rclpy
仓库位于 | GitHub | _ at ros2/rclpy ,包含 | 包 | [需手动修复的语法] rclpy
。生成的 | API | 文档如下: [待校准@9665]