I am working with ROS Kinetic on Raspberry Pi 3 Model B which contains Raspbian Stretch Lite. Well, when I create a package in a specific ws to make streaming video from Raspberry Pi to a Linux remote Pc I get an import error about the msg type named sensor_msgs.msg. When I run the same code on my linux pc, it works. But it is not works on the Raspberry Pi because of this error(sensor_msgs.msg).

I want to build a publisher on the raspberry pi using ros. What can I do to solve this error? I can't found this message type in my rosmsg list, when I use this command $rosmsg list | grep sensor_msgs.

This is my code scrip which is on the 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()

[email protected]:~/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 from sensor_msgs.msg import Image ImportError: No module named sensor_msgs.msg

1 Answers

0
Community On

I never run it on RPI. In normal PC, there wasn`t such issue.

There could be several possible causes e.g CMAKE file issue. sensor_msgs not installed/not compatible, config error etc

from your word " I can't found this message type in my rosmsg list, when I use this command $rosmsg list | grep sensor_msgs." I guess it because you didn`t install it or installed a non-compatible version.

Try to install using the wstools

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