# ros2 plugin examples
## protobuf rpc
一个基于 protobuf 协议、协程型接口与 ros2 后端的 rpc 示例,演示内容包括:
- 如何在配置文件中加载**ros2_plugin**;
- 如何使用 ros2 类型的 rpc 后端;
- 如何与原生 ros2 humble 节点进行 protobuf 协议的 rpc 相互调用;
核心代码:
- [rpc.proto](../../../protocols/example/rpc.proto)
- aimrt code:
- [normal_rpc_co_client_module.cc](../../cpp/protobuf_rpc/module/normal_rpc_co_client_module/normal_rpc_co_client_module.cc)
- [normal_rpc_co_server_module.cc](../../cpp/protobuf_rpc/module/normal_rpc_co_server_module/normal_rpc_co_server_module.cc)
- [service.cc](../../cpp/protobuf_rpc/module/normal_rpc_co_server_module/service.cc)
- native ros2 humble code:
- [native_ros2_protobuf_rpc_client/main.cc](./assistant/native_ros2_protobuf_rpc_client/main.cc)
- [native_ros2_protobuf_rpc_server/main.cc](./assistant/native_ros2_protobuf_rpc_server/main.cc)
配置文件:
- [examples_plugins_ros2_plugin_protobuf_rpc_server_cfg.yaml](./install/linux/bin/cfg/examples_plugins_ros2_plugin_protobuf_rpc_server_cfg.yaml)
- [examples_plugins_ros2_plugin_protobuf_rpc_client_cfg.yaml](./install/linux/bin/cfg/examples_plugins_ros2_plugin_protobuf_rpc_client_cfg.yaml)
运行方式(linux):
- 开启 `AIMRT_BUILD_EXAMPLES`、`AIMRT_BUILD_ROS2_PLUGIN` 选项编译 AimRT;
- aimrt client 调用 aimrt server:
- 在终端运行 build 目录下`start_examples_plugins_ros2_plugin_protobuf_rpc_server.sh`脚本启动服务端(srv 进程);
- 开启新的终端运行 build 目录下`start_examples_plugins_ros2_plugin_protobuf_rpc_client.sh`脚本启动客户端(cli 进程);
- 分别在两个终端键入`ctrl-c`停止对应进程;
- aimrt client 调用 native ros2 server:
- 在终端运行 build 目录下`native_ros2_protobuf_rpc_server`进程启动原生 ros2 服务端;
- 开启新的终端运行 build 目录下`start_examples_plugins_ros2_plugin_protobuf_rpc_client.sh`脚本启动客户端(cli 进程);
- 分别在两个终端键入`ctrl-c`停止对应进程;
- native ros2 client 调用 aimrt server:
- 在终端运行 build 目录下`start_examples_plugins_ros2_plugin_protobuf_rpc_server.sh`脚本启动服务端(srv 进程);
- 开启新的终端运行 build 目录下`native_ros2_protobuf_rpc_client`进程启动原生 ros2 客户端;
- 分别在两个终端键入`ctrl-c`停止对应进程;
说明:
- 此示例创建了以下两个 aimrt 模块:
- `NormalRpcCoClientModule`:会基于 `work_thread_pool` 执行器,以配置的频率,通过协程 Client 接口,向 `ExampleService` 发起 RPC 请求;
- `NormalRpcCoServerModule`:会注册 `ExampleService` 服务端,通过协程 Server 接口,提供 echo 功能;
- 此示例在 Rpc Client 端和 Server 端分别注册了两个 Filter 用于打印请求日志和计算耗时;
- 此示例将 `NormalRpcCoClientModule` 和 `NormalRpcCoServerModule` 分别集成到 `protobuf_rpc_client_pkg` 和 `protobuf_rpc_server_pkg` 两个 Pkg 中,并在两个配置文件中分别加载对应的 Pkg 到 srv 和 cli 进程中;
- 此示例加载了**ros2_plugin**,并使用 ros2 类型的 rpc 后端进行通信,并在客户端配置了 `timeout_handle` 执行器作为超时执行器;
- 此示例还创建了两个原生 ros2 节点,用于展示如何使用原生 ros2 程序与 aimrt 程序通过 ros2 后端 进行 rpc 通信;
## ros2 rpc
一个基于 ros2 srv 协议、协程型接口与 ros2 后端的 rpc 示例,演示内容包括:
- 如何在配置文件中加载**ros2_plugin**;
- 如何使用 ros2 类型的 rpc 后端;
- 如何与原生 ros2 humble 节点进行 ros2 srv 协议的 rpc 相互调用;
核心代码:
- [example_ros2/srv/RosTestRpc.srv](../../../protocols/example_ros2/srv/RosTestRpc.srv)
- aimrt code:
- [normal_rpc_co_client_module.cc](../../cpp/ros2_rpc/module/normal_rpc_co_client_module/normal_rpc_co_client_module.cc)
- [normal_rpc_co_server_module.cc](../../cpp/ros2_rpc/module/normal_rpc_co_server_module/normal_rpc_co_server_module.cc)
- [service.cc](../../cpp/ros2_rpc/module/normal_rpc_co_server_module/service.cc)
- native ros2 humble code:
- [native_ros2_rpc_client/main.cc](./assistant/native_ros2_rpc_client/main.cc)
- [native_ros2_rpc_server/main.cc](./assistant/native_ros2_rpc_server/main.cc)
配置文件:
- [examples_plugins_ros2_plugin_ros2_rpc_server_cfg.yaml](./install/linux/bin/cfg/examples_plugins_ros2_plugin_ros2_rpc_server_cfg.yaml)
- [examples_plugins_ros2_plugin_ros2_rpc_client_cfg.yaml](./install/linux/bin/cfg/examples_plugins_ros2_plugin_ros2_rpc_client_cfg.yaml)
运行方式(linux):
- 开启 `AIMRT_BUILD_EXAMPLES`、`AIMRT_BUILD_ROS2_PLUGIN` 选项编译 AimRT;
- aimrt client 调用 aimrt server:
- 在终端运行 build 目录下`start_examples_plugins_ros2_plugin_ros2_rpc_server.sh`脚本启动服务端(srv 进程);
- 开启新的终端运行 build 目录下`start_examples_plugins_ros2_plugin_ros2_rpc_client.sh`脚本启动客户端(cli 进程);
- 分别在两个终端键入`ctrl-c`停止对应进程;
- aimrt client 调用 native ros2 server:
- 在终端运行 build 目录下`native_ros2_rpc_server`进程启动原生 ros2 服务端;
- 开启新的终端运行 build 目录下`start_examples_plugins_ros2_plugin_ros2_rpc_client.sh`脚本启动客户端(cli 进程);
- 分别在两个终端键入`ctrl-c`停止对应进程;
- native ros2 client 调用 aimrt server:
- 在终端运行 build 目录下`start_examples_plugins_ros2_plugin_ros2_rpc_server.sh`脚本启动服务端(srv 进程);
- 开启新的终端运行 build 目录下`native_ros2_rpc_client`进程启动原生 ros2 客户端;
- 分别在两个终端键入`ctrl-c`停止对应进程;
说明:
- 本示例与 **protobuf rpc** 示例基本一致,除了业务层使用的是 ros2 srv 形式的协议;
## ros2 rpc with qos
一个基于 ros2 srv 协议、协程型接口与 ros2 后端的 rpc 示例,演示内容包括:
- 如何在配置文件中加载**ros2_plugin**;
- 如何使用 ros2 类型的 rpc 后端;
- 如何配置 qos;
核心代码:
- [example_ros2/srv/RosTestRpc.srv](../../../protocols/example_ros2/srv/RosTestRpc.srv)
- [normal_rpc_co_client_module.cc](../../cpp/ros2_rpc/module/normal_rpc_co_client_module/normal_rpc_co_client_module.cc)
- [normal_rpc_co_server_module.cc](../../cpp/ros2_rpc/module/normal_rpc_co_server_module/normal_rpc_co_server_module.cc)
- [service.cc](../../cpp/ros2_rpc/module/normal_rpc_co_server_module/service.cc)
配置文件:
- [examples_plugins_ros2_plugin_ros2_rpc_server_with_qos_cfg.yaml](./install/linux/bin/cfg/examples_plugins_ros2_plugin_ros2_rpc_server_with_qos_cfg.yaml)
- [examples_plugins_ros2_plugin_ros2_rpc_client_with_qos_cfg.yaml](./install/linux/bin/cfg/examples_plugins_ros2_plugin_ros2_rpc_client_with_qos_cfg.yaml)
运行方式(linux):
- 开启 `AIMRT_BUILD_EXAMPLES`、`AIMRT_BUILD_ROS2_PLUGIN` 选项编译 AimRT;
- 在终端运行 build 目录下`start_examples_plugins_ros2_plugin_ros2_rpc_server_with_qos.sh`脚本启动服务端(srv 进程);
- 开启新的终端运行 build 目录下`start_examples_plugins_ros2_plugin_ros2_rpc_client_with_qos.sh`脚本启动客户端(cli 进程);
- 分别在两个终端键入`ctrl-c`停止对应进程;
说明:
- 本示例与 **ros2 rpc** 示例基本一致,只是在启动时配置了通信 QOS;
## protobuf channel
一个基于 protobuf 协议与 ros2 后端的 channel 示例,演示内容包括:
- 如何在配置文件中加载**ros2_plugin**;
- 如何使用 ros2 类型的 channel 后端;
- 如何与原生 ros2 humble 节点进行 protobuf 协议的 topic 发布与订阅;
核心代码:
- [event.proto](../../../protocols/example/event.proto)
- aimrt code:
- [normal_publisher_module.cc](../../cpp/protobuf_channel/mod
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
AimRT 是一个面向现代机器人领域的运行时开发框架。 它基于 Modern C++ 开发,轻量且易于部署,在资源管控、异步编程、部署配置等方面具有更现代的设计。AimRT 致力于整合机器人端侧、边缘端、云端等各种部署场景的研发。 它服务于现代基于人工智能和云的机器人应用,提供完善的调试和性能分析工具链,以及良好的可观测性支持。AimRT 还提供了全面的插件开发接口,具有高度可扩展性。 它与 ROS2、HTTP、Grpc 等传统机器人生态系统或云服务生态系统兼容,并支持对现有系统的逐步升级。
资源推荐
资源详情
资源评论
收起资源包目录
一个面向现代机器人领域的运行时开发框架 它基于ModernC++开发,轻量且易于部署 (1171个子文件)
url_cn.bashrc 2KB
build.bat 1KB
test.bat 1KB
build.bat 234B
start_examples_plugins_record_playback_plugin_playback_signal.bat 105B
start_examples_plugins_opentelemetry_plugin_protobuf_channel.bat 104B
start_examples_plugins_record_playback_plugin_record_signal.bat 103B
start_examples_plugins_net_plugin_protobuf_rpc_http_client.bat 102B
start_examples_plugins_net_plugin_protobuf_rpc_http_server.bat 102B
start_examples_plugins_record_playback_plugin_playback_imd.bat 102B
start_examples_plugins_record_playback_plugin_record_imd.bat 100B
start_examples_plugins_opentelemetry_plugin_protobuf_rpc.bat 100B
start_examples_cpp_protobuf_channel_benchmark_single_pkg.bat 100B
start_examples_plugins_zenoh_plugin_protobuf_channel_pub.bat 98B
start_examples_plugins_zenoh_plugin_protobuf_channel_sub.bat 98B
start_examples_plugins_iceoryx_plugin_protobuf_channel_sub.bat 96B
start_examples_plugins_iceoryx_plugin_protobuf_channel_pub.bat 96B
start_examples_plugins_ros2_plugin_ros2_channel_pub.bat 95B
start_examples_plugins_ros2_plugin_ros2_channel_sub.bat 95B
start_examples_plugins_ros2_plugin_ros2_rpc_client.bat 94B
start_examples_plugins_ros2_plugin_ros2_rpc_server.bat 94B
start_examples_plugins_time_manipulator_plugin.bat 90B
start_examples_cpp_protobuf_channel_single_pkg.bat 90B
start_examples_plugins_mqtt_plugin_protobuf_rpc_client.bat 89B
start_examples_plugins_mqtt_plugin_protobuf_rpc_server.bat 89B
start_examples_cpp_protobuf_channel_benchmark.bat 89B
start_examples_cpp_helloworld_app_registration_mode.bat 88B
start_examples_cpp_ros2_channel_single_pkg.bat 86B
start_examples_cpp_logger_specify_executor.bat 86B
start_examples_cpp_protobuf_rpc_single_pkg.bat 86B
start_examples_plugins_log_control_plugin.bat 85B
start_examples_plugins_parameter_plugin.bat 83B
start_examples_cpp_ros2_rpc_single_pkg.bat 82B
start_examples_cpp_logger_rotate_file.bat 81B
start_examples_cpp_protobuf_channel.bat 79B
start_examples_cpp_protobuf_rpc_co.bat 78B
start_examples_cpp_ros2_channel.bat 75B
start_examples_cpp_logger_bench.bat 75B
start_examples_cpp_ros2_rpc_co.bat 74B
start_examples_cpp_helloworld.bat 73B
start_examples_cpp_parameter.bat 72B
start_examples_cpp_executor.bat 71B
start_examples_cpp_helloworld_app_mode.bat 70B
start_examples_cpp_logger.bat 69B
string_util_test.cc 45KB
json_convert_test.cc 45KB
mqtt_rpc_backend.cc 24KB
main.cc 24KB
ros2_channel_backend.cc 20KB
grpc_rpc_backend.cc 20KB
http_rpc_backend.cc 18KB
channel_backend_manager.cc 18KB
ros2_rpc_backend.cc 18KB
rpc_manager.cc 18KB
channel_manager.cc 17KB
record_playback_plugin.cc 17KB
asio_http_test.cc 16KB
playback_action.cc 16KB
record_action.cc 15KB
module_manager.cc 15KB
local_rpc_backend.cc 15KB
rpc_backend_manager.cc 15KB
http_channel_backend.cc 14KB
iceoryx_channel_backend.cc 13KB
mqtt_channel_backend.cc 13KB
opentelemetry_plugin.cc 12KB
ros2_adapter_rpc_server.cc 12KB
benchmark_rpc_client_module.cc 12KB
server_session.cc 12KB
net_plugin.cc 11KB
aimrt_core.cc 11KB
ros2_adapter_rpc_client.cc 11KB
tcp_channel_backend.cc 11KB
udp_channel_backend.cc 11KB
time_manipulator_executor.cc 10KB
time_wheel_executor.cc 10KB
logger_manager.cc 9KB
client_session.cc 9KB
stl_tool_test.cc 9KB
executor_manager.cc 9KB
local_channel_backend.cc 8KB
zenoh_channel_backend.cc 8KB
asio_thread_executor.cc 7KB
benchmark_publisher_module.cc 7KB
benchmark_subscriber_module.cc 7KB
rotate_file_logger_backend.cc 7KB
plugin_manager.cc 7KB
console_logger_backend.cc 7KB
mqtt_plugin.cc 7KB
module_loader.cc 6KB
configurator_manager.cc 6KB
http_dispatcher_test.cc 6KB
tbb_thread_executor.cc 6KB
session.cc 6KB
url_parser_test.cc 5KB
normal_rpc_co_client_module.cc 5KB
grpc_plugin.cc 5KB
thread_tools.cc 5KB
simple_thread_executor.cc 5KB
guard_thread_executor.cc 5KB
共 1171 条
- 1
- 2
- 3
- 4
- 5
- 6
- 12
资源评论
Java程序员-张凯
- 粉丝: 1w+
- 资源: 7527
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- springboot项目酒店管理系统.zip
- springboot项目旧物置换网站.zip
- springboot项目家具销售电商平台.zip
- springboot项目简历系统.zip
- springboot项目交流互动系统().zip
- MATLAB代码:含电热联合系统的微电网运行优化火 关键词:微网 电热联合系统 优化调度 综合能源系统 仿真平台:MATLAB yalmip+cplex 主要内容:提出基于电热联合调度的区域并
- phpenc加密程序源码
- springboot项目家具网站.zip
- springboot项目汉服推广网站.zip
- springboot项目火车订票管理系统.zip
- 用PHP完整的网站开发视频教程最新版本
- springboot项目二手交易平台.zip
- springboot项目点餐平台网站.zip
- springboot项目滴答拍摄影项目.zip
- springboot项目大学生社团活动平台.zip
- 1553b 源码 代码 支持所有 模式 asic FPGA
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功