【问题标题】:How to add sensor_msgs.msg type in my ros system?如何在我的 ros 系统中添加 sensor_msgs.msg 类型?
【发布时间】:2019-10-18 01:04:31
【问题描述】:

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

我想使用 ros 在树莓派上建立一个发布者。我能做些什么来解决这个错误?当我使用此命令时,我在 rosmsg 列表中找不到此消息类型 $rosmsg list | grep sensor_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**

【问题讨论】:

    标签: python linux opencv raspberry-pi ros


    【解决方案1】:

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

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

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

    根据您的说法“当我使用此命令 $rosmsg list | grep sensor_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
    

    【讨论】:

      【解决方案2】:

      尝试安装ROS传感器消息包:

      sudo apt-get install ros-<distro>-sensor-msgs
      

      例如,如果您使用的是 Kinetic 版本的 ROS:

      sudo apt-get install ros-kinetic-sensor-msgs
      

      然后导入:

      from sensor_msgs.msg import Image
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-02-19
        • 2018-11-19
        • 1970-01-01
        • 2017-05-19
        • 1970-01-01
        • 2018-03-22
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多