将 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)
我目前无法尝试,所以如果一切正常请给我反馈。
我是 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)
我目前无法尝试,所以如果一切正常请给我反馈。