# rmw_fastrtps **Repository Path**: src-openeuler/rmw_fastrtps ## Basic Information - **Project Name**: rmw_fastrtps - **Description**: Implementation of the ROS Middleware (rmw) Interface using eProsima's Fast RTPS. - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 5 - **Created**: 2022-01-25 - **Last Updated**: 2025-10-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: sig-ROS ## README # rmw_fastrtps #### 介绍 rmw_fastrtps节点 使用 eProsima 的快速 RTPS 实现 ROS 中间件 (rmw) 接口。 rmw_fastrtps在所有ROS2发行版中都可用,包括来自二进制文件和源代码。您无需执行任何操作即可使用Fast-RTPS作为 ROS2中间件层(因为它是默认实现)。 但是,您仍可以通过两种不同的方式指定它: 1. 输入环境变量 `RMW_IMPLEMENTATION` : ```bash export RMW_IMPLEMENTATION=rmw_fastrtps_cpp ``` 2. 或者在启动节点的时候添加环境变量: ```bash RMW_IMPLEMENTATION=rmw_fastrtps_cpp ros2 run ``` #### 软件架构 软件架构说明 https://github.com/ros2/rmw_fastrtps.git 文件内容: ``` rmw_fastrtps/ ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── rmw_fastrtps_cpp │   ├── CHANGELOG.rst │   ├── CMakeLists.txt │   ├── Doxyfile │   ├── include │   │   └── rmw_fastrtps_cpp │   ├── package.xml │   ├── QUALITY_DECLARATION.md │   ├── README.md │   ├── rmw_fastrtps_cpp-extras.cmake │   ├── src │   │   ├── get_client.cpp │   │   ├── get_participant.cpp │   │   ├── get_publisher.cpp │   │   ├── get_service.cpp │   │   ├── get_subscriber.cpp │   │   ├── identifier.cpp │   │   ├── init_rmw_context_impl.cpp │   │   ├── publisher.cpp │   │   ├── rmw_client.cpp │   │   ├── rmw_compare_gids_equal.cpp │   │   ├── rmw_count.cpp │   │   ├── rmw_event.cpp │   │   ├── rmw_get_gid_for_publisher.cpp │   │   ├── rmw_get_implementation_identifier.cpp │   │   ├── rmw_get_serialization_format.cpp │   │   ├── rmw_get_topic_endpoint_info.cpp │   │   ├── rmw_guard_condition.cpp │   │   ├── rmw_init.cpp │   │   ├── rmw_logging.cpp │   │   ├── rmw_node.cpp │   │   ├── rmw_node_info_and_types.cpp │   │   ├── rmw_node_names.cpp │   │   ├── rmw_publish.cpp │   │   ├── rmw_publisher.cpp │   │   ├── rmw_request.cpp │   │   ├── rmw_response.cpp │   │   ├── rmw_serialize.cpp │   │   ├── rmw_service.cpp │   │   ├── rmw_service_names_and_types.cpp │   │   ├── rmw_service_server_is_available.cpp │   │   ├── rmw_subscription.cpp │   │   ├── rmw_take.cpp │   │   ├── rmw_topic_names_and_types.cpp │   │   ├── rmw_trigger_guard_condition.cpp │   │   ├── rmw_wait.cpp │   │   ├── rmw_wait_set.cpp │   │   ├── serialization_format.cpp │   │   ├── subscription.cpp │   │   ├── type_support_common.cpp │   │   └── type_support_common.hpp │   └── test │   ├── test_get_native_entities.cpp │   └── test_logging.cpp ├── rmw_fastrtps_dynamic_cpp │   ├── CHANGELOG.rst │   ├── CMakeLists.txt │   ├── Doxyfile │   ├── include │   │   └── rmw_fastrtps_dynamic_cpp │   ├── package.xml │   ├── QUALITY_DECLARATION.md │   ├── rmw_fastrtps_dynamic_cpp-extras.cmake │   ├── src │   │   ├── client_service_common.cpp │   │   ├── client_service_common.hpp │   │   ├── get_client.cpp │   │   ├── get_participant.cpp │   │   ├── get_publisher.cpp │   │   ├── get_service.cpp │   │   ├── get_subscriber.cpp │   │   ├── identifier.cpp │   │   ├── init_rmw_context_impl.cpp │   │   ├── publisher.cpp │   │   ├── rmw_client.cpp │   │   ├── rmw_compare_gids_equal.cpp │   │   ├── rmw_count.cpp │   │   ├── rmw_event.cpp │   │   ├── rmw_get_gid_for_publisher.cpp │   │   ├── rmw_get_implementation_identifier.cpp │   │   ├── rmw_get_serialization_format.cpp │   │   ├── rmw_get_topic_endpoint_info.cpp │   │   ├── rmw_guard_condition.cpp │   │   ├── rmw_init.cpp │   │   ├── rmw_logging.cpp │   │   ├── rmw_node.cpp │   │   ├── rmw_node_info_and_types.cpp │   │   ├── rmw_node_names.cpp │   │   ├── rmw_publish.cpp │   │   ├── rmw_publisher.cpp │   │   ├── rmw_request.cpp │   │   ├── rmw_response.cpp │   │   ├── rmw_serialize.cpp │   │   ├── rmw_service.cpp │   │   ├── rmw_service_names_and_types.cpp │   │   ├── rmw_service_server_is_available.cpp │   │   ├── rmw_subscription.cpp │   │   ├── rmw_take.cpp │   │   ├── rmw_topic_names_and_types.cpp │   │   ├── rmw_trigger_guard_condition.cpp │   │   ├── rmw_wait.cpp │   │   ├── rmw_wait_set.cpp │   │   ├── serialization_format.cpp │   │   ├── subscription.cpp │   │   ├── type_support_common.cpp │   │   ├── type_support_common.hpp │   │   ├── type_support_proxy.cpp │   │   ├── type_support_registry.cpp │   │   └── type_support_registry.hpp │   └── test │   ├── test_get_native_entities.cpp │   └── test_logging.cpp └── rmw_fastrtps_shared_cpp ├── CHANGELOG.rst ├── CMakeLists.txt ├── Doxyfile ├── include │   └── rmw_fastrtps_shared_cpp ├── package.xml ├── QUALITY_DECLARATION.md ├── README.md ├── rmw_fastrtps_shared_cpp-extras.cmake ├── src │   ├── create_rmw_gid.cpp │   ├── custom_publisher_info.cpp │   ├── custom_subscriber_info.cpp │   ├── demangle.cpp │   ├── demangle.hpp │   ├── init_rmw_context_impl.cpp │   ├── listener_thread.cpp │   ├── namespace_prefix.cpp │   ├── participant.cpp │   ├── publisher.cpp │   ├── qos.cpp │   ├── rmw_client.cpp │   ├── rmw_compare_gids_equal.cpp │   ├── rmw_count.cpp │   ├── rmw_event.cpp │   ├── rmw_get_gid_for_publisher.cpp │   ├── rmw_get_topic_endpoint_info.cpp │   ├── rmw_guard_condition.cpp │   ├── rmw_init.cpp │   ├── rmw_logging.cpp │   ├── rmw_node.cpp │   ├── rmw_node_info_and_types.cpp │   ├── rmw_node_names.cpp │   ├── rmw_publish.cpp │   ├── rmw_publisher.cpp │   ├── rmw_request.cpp │   ├── rmw_response.cpp │   ├── rmw_security_logging.cpp │   ├── rmw_service.cpp │   ├── rmw_service_names_and_types.cpp │   ├── rmw_service_server_is_available.cpp │   ├── rmw_subscription.cpp │   ├── rmw_take.cpp │   ├── rmw_topic_names_and_types.cpp │   ├── rmw_trigger_guard_condition.cpp │   ├── rmw_wait.cpp │   ├── rmw_wait_set.cpp │   ├── subscription.cpp │   ├── types │   └── TypeSupport_impl.cpp └── test ├── CMakeLists.txt ├── test_dds_attributes_to_rmw_qos.cpp ├── test_guid_utils.cpp ├── test_logging.cpp ├── test_names.cpp ├── test_rmw_init_options.cpp ├── test_rmw_qos_to_dds_attributes.cpp └── test_security_logging.cpp ``` #### 安装教程 1. 下载rpm包 aarch64: ``` wget https://117.78.1.88/build/home:Chenjy3_22.03/openEuler_22.03_LTS_standard_aarch64/aarch64/rmw_fastrtps/ros-foxy-ros-rmw_fastrtps-1.2.6-2.oe2203.aarch64.rpm ``` x86_64: ``` wget https://117.78.1.88/build/home:Chenjy3_22.03/openEuler_22.03_LTS_standard_x86_64/x86_64/rmw_fastrtps/ros-foxy-ros-rmw_fastrtps-1.2.6-2.oe2203.x86_64.rpm ``` 2. 安装rpm包 aarch64: ``` sudo rpm -ivh --nodeps --force ros-foxy-ros-rmw_fastrtps-1.2.6-2.oe2203.aarch64.rpm ``` x86_64: ``` sudo rpm -ivh --nodeps --force ros-foxy-ros-rmw_fastrtps-1.2.6-2.oe2203.x86_64.rpm ``` #### 使用说明 依赖环境安装: ``` sh /opt/ros/foxy/install_dependence.sh ``` 安装完成以后,在/opt/ros/foxy/目录下如下输出,则表示安装成功。 输出: ``` rmw_fastrtps_cpp ├── include │   └── rmw_fastrtps_cpp │   ├── get_client.hpp │   ├── get_participant.hpp │   ├── get_publisher.hpp │   ├── get_service.hpp │   ├── get_subscriber.hpp │   ├── identifier.hpp │   ├── init_rmw_context_impl.hpp │   ├── MessageTypeSupport.hpp │   ├── publisher.hpp │   ├── serialization_format.hpp │   ├── ServiceTypeSupport.hpp │   ├── subscription.hpp │   ├── TypeSupport.hpp │   └── visibility_control.h ├── lib │   └── librmw_fastrtps_cpp.so └── share ├── ament_index │   └── resource_index ├── colcon-core │   └── packages └── rmw_fastrtps_cpp ├── cmake ├── environment ├── hook ├── local_setup.bash ├── local_setup.dsv ├── local_setup.sh ├── local_setup.zsh ├── package.bash ├── package.dsv ├── package.ps1 ├── package.sh ├── package.xml └── package.zsh rmw_fastrtps_dynamic_cpp ├── include │   └── rmw_fastrtps_dynamic_cpp │   ├── get_client.hpp │   ├── get_participant.hpp │   ├── get_publisher.hpp │   ├── get_service.hpp │   ├── get_subscriber.hpp │   ├── identifier.hpp │   ├── init_rmw_context_impl.hpp │   ├── macros.hpp │   ├── MessageTypeSupport.hpp │   ├── MessageTypeSupport_impl.hpp │   ├── publisher.hpp │   ├── serialization_format.hpp │   ├── ServiceTypeSupport.hpp │   ├── ServiceTypeSupport_impl.hpp │   ├── subscription.hpp │   ├── TypeSupport.hpp │   ├── TypeSupport_impl.hpp │   └── visibility_control.h ├── lib │   └── librmw_fastrtps_dynamic_cpp.so └── share ├── ament_index │   └── resource_index ├── colcon-core │   └── packages └── rmw_fastrtps_dynamic_cpp ├── cmake ├── environment ├── hook ├── local_setup.bash ├── local_setup.dsv ├── local_setup.sh ├── local_setup.zsh ├── package.bash ├── package.dsv ├── package.ps1 ├── package.sh ├── package.xml └── package.zsh rmw_fastrtps_shared_cpp ├── include │   └── rmw_fastrtps_shared_cpp │   ├── create_rmw_gid.hpp │   ├── custom_client_info.hpp │   ├── custom_event_info.hpp │   ├── custom_participant_info.hpp │   ├── custom_publisher_info.hpp │   ├── custom_service_info.hpp │   ├── custom_subscriber_info.hpp │   ├── guid_utils.hpp │   ├── init_rmw_context_impl.hpp │   ├── listener_thread.hpp │   ├── locked_object.hpp │   ├── names.hpp │   ├── namespace_prefix.hpp │   ├── participant.hpp │   ├── publisher.hpp │   ├── qos.hpp │   ├── rmw_common.hpp │   ├── rmw_context_impl.hpp │   ├── rmw_init.hpp │   ├── rmw_security_logging.hpp │   ├── subscription.hpp │   ├── TypeSupport.hpp │   └── visibility_control.h ├── lib │   └── librmw_fastrtps_shared_cpp.so └── share ├── ament_index │   └── resource_index ├── colcon-core │   └── packages └── rmw_fastrtps_shared_cpp ├── cmake ├── environment ├── hook ├── local_setup.bash ├── local_setup.dsv ├── local_setup.sh ├── local_setup.zsh ├── package.bash ├── package.dsv ├── package.ps1 ├── package.sh ├── package.xml └── package.zsh ``` #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)