python - 如何在我的ros系统中添加sensor_msgs.msg类型?

标签 python linux opencv raspberry-pi ros

我正在 Raspberry Pi 3 Model B 上使用 ROS Kinetic,其中包含 Raspbian Stretch Lite。好吧,当我在特定的 ws 中创建一个包以将流视频从 Raspberry Pi 传输到 Linux 远程 PC 时,我收到有关名为 sensor_msgs.msg 的 msg 类型的导入错误。当我在我的 Linux 电脑上运行相同的代码时,它可以工作。但由于这个错误(sensor_msgs.msg),它在 Raspberry Pi 上不起作用。

我想使用ros在树莓派上构建一个发布器。我该怎么做才能解决这个错误?当我使用此命令 $rosmsg list | 时,我在 rosmsg 列表中找不到此消息类型。 grepsensor_msgs

这是我在 Raspberry Pi 上的代码脚本

#!/usr/bin/env python

import cv2
import rospy
from sensor_msgs.msg **import** Image
from cv_bridge import CvBridge, CvBridgeError

def main():
    cap = cv2.VideoCapture(0)
    rospy.init_node('stream_video',anonymous=False)
    front_pub = rospy.Publisher('/image_front',Image,queue_size=1)
    rate = rospy.Rate(30)
    bridge = CvBridge()

    while not rospy.is_shutdown():

        try:
            ret, frame = cap.read()
            if ret == True:
                img = bridge.cv2_to_imgmsg(frame, 'bgr8')
                front_pub.publish(img)

        except KeyboardInterrupt:
            break
        rate.sleep()

if __name__ == '__main__':
    main()

**pi@raspberrypi**:**~/selfdriving_ws/src/camera_stream/src $** rosrun camera_stream stream_video.py 

Traceback (most recent call last):
  File "/home/pi/selfdriving_ws/src/camera_stream/src/stream_video.py", line 5, in <module>
    from sensor_msgs.msg import Image
**ImportError: No module named sensor_msgs.msg**

最佳答案

我从来没有在 RPI 上运行过它。在普通PC上,不存在这样的问题。顺便说一句,不应该有*

>>> from sensor_msgs.msg import Image
>>> 

可能有多种原因,例如 CMAKE 文件问题。 Sensor_msgs 未安装/不兼容、配置错误等

根据您的说法“当我使用此命令 $rosmsg list | grepsensor_msgs 时,我在 rosmsg 列表中找不到此消息类型。”我猜是因为你没有安装它或安装了不兼容的版本。

尝试使用 wstools 安装来获取它。 RPI 需要一些特殊的处理。

rosinstall_generator sensor_msgs --rosdistro indigo --deps -wet-only --tar > indigo-sensor_msgs-wet.rosinstall
wstool init src indigo-sensor_msgs-wet.rosinstall

关于python - 如何在我的ros系统中添加sensor_msgs.msg类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56411032/

相关文章:

c++ - 适用于 Linux(和 Windows)的异步 C++ 通信库

python - 如何修复 AWS EC2 Linux 中的 'No module named cv2',从命令行导入

python & CV2 : How do i draw a line on an image with mouse then return line coordinates?

python - 从二进制字符串python写入mp4文件

python - 在旧的 CE 设备上运行 Python 时遇到问题

python - 无法在 pandas 中使用数据框元素的平方

python - 如何从其索引和两个变量函数创建一个 pandas DataFrame?

python - 导入错误 : No module named gobject

python - 如何按列剪辑 Pandas 数据框?

linux - 使用 ksh 监控扭矩集群上的职位