将ROS .msg从C ++包导入python

时间:2019-04-02 22:14:45

标签: ros

我是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中呢?

1 个答案:

答案 0 :(得分:1)

sensor_msgs是一个软件包,应自动包含在ros发行版中。由于我不熟悉python语法,因此您将在roscpp节点中包括正确的标头:

#include "sensor_msgs/Image.h"

根据谷歌的简短研究,相应的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)

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