【问题标题】:How to include ros msg outside of ros environment?如何在 ros 环境之外包含 ros msg?
【发布时间】:2021-01-21 00:38:16
【问题描述】:

我正在使用 g++ 在 ros 工作区之外使用 ros,并且我想包含我制作的自定义 msg。通常我只会做 "#include "msg_filter/my_msg.h"" 但这似乎在环境之外不起作用。我应该怎么做?

【问题讨论】:

    标签: ros


    【解决方案1】:

    让我们深入了解正在发生的事情。如果你有一个catkin_ws/src/my_pkg/msg/CustomMessage.msg,并且你正确编译了它(你可以在 ROS 中正常使用它),你会在catkin_ws/devel/include/my_pkg/CustomMessage.h 找到它的头文件,在catkin_ws/devel/lib/python2.7/dist-packages/my_pkg/msg/_MyMsg.py 找到一个 python msg 文件。如果您在 cmd 行或 .bashrc 中有 source catkin_ws/devel/setup.bash,您仍然可以在另一个工作区中看到它们。

    但是尝试在 catkin 构建系统之外编译和使用 ROS msgs 可能是不明智的 - 在这一点上,在一个公共头文件中创建自己的数据结构并使用它来连接库或程序(只是猜测你的用例)。 作为记录,虽然您可以使用 g++ 在 cmd 行上编译 ROS 相关的东西(其余的头文件/库位于 /opt/ros/<distro>/),但我怀疑这比更改依赖项/接口或在其中执行它更痛苦柳絮。

    【讨论】:

      【解决方案2】:

      一种非常肮脏的方法是对 IP 流量进行陷阱。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-01-23
        • 2020-08-16
        • 1970-01-01
        • 2017-03-12
        • 2023-04-05
        相关资源
        最近更新 更多