如何结合 gRPC 和 ROS2?

问题描述

在 ROS2 服务服务器节点内部构建用于 gRPC 客户端的包之一时,发生此错误

~ /project_ws/src/grpc_ros2_pkg/command_grpc_ros2_server/cmake/build/dog.pb.h:10:10: Fatal error: google/protobuf/port_def.inc: No such file or directory
   10 | #include <google/protobuf/port_def.inc>
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[2]: *** [CMakeFiles/.cpp.dir/build.make:95: CMakeFiles/.cpp.dir/dog.pb.cc.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:126: CMakeFiles/.cpp.dir/all] Error 2

我可以按照 gRPC c++ 教程在没有 ROS2 的情况下成功构建 gRPC 客户端和服务器。因此,我认为这是因为文件系统或ROS2的组合。

文件系统

project_ws
  |_ src
      |_ custom_service
      |_ grpc_ros2_pkg
              |_ command_grpc_ros2_server
                        |_ proto
                             |_ dog.proto
                        |_ src
                        |_ CMakeLists.txt 
                        |_ cmake
                              |_ build  <- $ make 
              |_ command_ros2_client
                        |_ src
                        |_ CMakeLists.txt 

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)