假设我有一个包含一些消息的 ROS 元数据包 A 和包含其他消息的其他元数据包 B。是否可以在不依赖彼此的情况下使用消息机制与 A 和 B 进行通信?我的目标是让用户克隆元数据包 A 并完全独立于数据包 B 构建它,对称地克隆数据包 B 并独立于数据包 A 构建它,并启动特定节点允许它们与一些复杂的消息进行通信。有可能吗?
丹尼尔
最佳答案
据我所知,这是不可能的。
假设包 A 使用包 B 中定义的消息类型。为了使用此消息类型,您需要包含生成的头文件,这只有在将 B 添加为 A 的依赖项时才有可能。
我能想到的解决方案有两种(不知道对你是否可行):
您可以将 A 和 B 的所有消息定义移动到一个单独的包 C(它只包含消息,仅此而已)。 A 和 B 必须依赖这个新包 C,但彼此之间没有依赖关系。
另一种解决方案可能是仅使用已由 ros 定义的标准消息类型。如果您发送的数据符合其中一种标准消息类型,这当然只是一个可行的解决方案。
关于c++ - 独立的 ROS 包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26940358/