将 C++ 包中的 ROS .msg 导入 python

Import ROS .msg from C++ package into python

我是 ROS 的新手,遇到了一些麻烦。我在 GitHub 上找到了一个我想使用的 ROS 包 'video_stream_opencv',我想编写一些 python 代码来订阅包创建的图像主题之一。

如何将消息定义导入我的 python 代码?我在该包中找不到任何 *.msg 文件。

但是,如果我 运行:

    rosmsg show sensor_msgs/Image

我得到消息定义:

    std_msgs/Header header
      uint32 seq
      time stamp
      string frame_id
    uint32 height
    uint32 width
    string encoding
    uint8 is_bigendian
    uint32 step
    uint8[] data

然后我可以使用该信息创建我自己的 .msg 文件,对吗?但是我该如何将其导入 python?

sensor_msgs 是一个应该自动包含在您的 ros 发行版中的软件包。由于我不熟悉 python 语法,下面是如何在 roscpp 节点中包含正确的 header:

#include "sensor_msgs/Image.h"

根据简短的 google 研究,相应的 python 语法类似于

from sensor_msgs.msg import Image

此外,您需要通过在您的包 CMakeLists.txt 中添加 sensor_msgs-package 来让 CMake 知道在哪里搜索包,如下所示:

find_package(catkin REQUIRED COMPONENTS roscpp rospy std_msgs genmsg sensor_msgs)

我目前无法尝试,所以如果一切正常请给我反馈。