ROS 2客户端接口 (客户端库)

ROS客户端接口,又名|客户端库|,是面向用户的接口,提供高级功能,并建立在 rclrosidlAPIs 基础上。 [Alyssa@9656]

rclcpp[Alyssa@9657]

针对C++ ( rclcpp ) 的ROS客户端库是面向用户的,符合C++ 语言特定的接口,它提供所有ROS客户端功能,如创建节点、发布者和订阅者。 rclcpp 建立在 rclrosidl API 的基础上,它被设计为与 rosidl_generator_cpp 生成的C++ 消息一起使用。 [Alyssa@9658]

rclcpp 利用所有 C++ 和C++11 的特性使接口尽可能容易去使用,但是因为它复用了 rcl 的实施,它可以和其它使用 rcl API 的客户端库保持一致的行为方式。 [Alyssa@9659]

rclcpp 仓库位于 GitHub 在`ros2/rclcpp <https://github.com/ros2/rclcpp>`_ ,并且包含 rclcpp |包| 。生成的 API 文档如下: [Alyssa@9660]

api/rclcpp/index.html

rclpy

Python的ROS客户端库 ( rclpy ) 是与C++客户端库相对应的Python客户端库。像C++客户端库一样, rclpy 的实现也是在 rcl C API的基础上构建的。该接口提供了一种惯用的Python体验,它使用地道的Python类型和模式,如列表和上下文对象,但是通过在实现中使用 rcl API,它在功能和行为方面与其他客户端库保持一致。除了为每个消息提供围绕 rcl API 和Python类的Python惯用绑定之外,Python客户端库还负责执行模型,使用 threading.Thread 或类似方法运行 rcl API 中的函数。 [Alyssa@9663]

与C++ 一样,它为用户与之交互的每个ROS消息生成自定义Python代码,但与C++ 不同,它最终将Python自身的消息对象转换为C版本的消息。所有操作都发生在Python版本的消息上,直到它们需要传递到 rcl 层,此时,它们将转换为消息的纯C版本,以便可以将其传递到 rcl C API。当发布者和订阅者在同一进程中进行通信,如果可能的话,可以避免这种情况,以减少消息转入和转出Python的过程。 [Alyssa@9664]

rclpy 仓库位于 GitHubros2/rclpy ,包含 rclpy |包| 。生成的 API 文档如下: [Alyssa@9665]

api/rclpy/index.html