Как добавить тип sensor_msgs.msg в моей системе ros? - PullRequest
0 голосов
/ 02 июня 2019

Я работаю с ROS Kinetic на Raspberry Pi 3 Model B, которая содержит Raspbian Stretch Lite. Что ж, когда я создаю пакет в определенном ws для потоковой передачи видео с Raspberry Pi на удаленный ПК с Linux, я получаю ошибку импорта о типе msg с именем sensor_msgs.msg . Когда я запускаю тот же код на моем компьютере с Linux, он работает. Но это не работает на Raspberry Pi из-за этой ошибки ( 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**

Ответы [ 2 ]

0 голосов
/ 07 июня 2019

Попробуйте установить пакет сообщений датчика ROS:

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

Например, если вы используете KOS-версию ROS:

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

После этого выполните импорт:

from sensor_msgs.msg import Image
0 голосов
/ 02 июня 2019

Я никогда не запускаю его на RPI. В нормальных ПК такой проблемы не было. Кстати, не должно быть *

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

Может быть несколько возможных причин, например, проблема с файлом CMAKE. sensor_msgs не установлен / не совместим, ошибка конфигурации и т. д.

от вашего слова "Я не могу найти этот тип сообщения в моем списке rosmsg, когда я использую эту команду $ rosmsg list | grep sensor_msgs." Я думаю, потому что вы не установили его или установили несовместимую версию.

Попробуйте установить, используя 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
...