如何在我的ros系统中添加sensor_msgs.msg类型?
How to add sensor_msgs.msg type in my ros system?
我正在使用 ROS Kinetic 在 Raspberry Pi 3 Model B 上工作,其中包含 Raspbian Stretch Lite。好吧,当我在特定的 ws 中创建一个包以将视频从 Raspberry Pi 流式传输到 Linux 远程 Pc 时,我收到一个关于名为 sensor_msgs.msg 的消息类型的导入错误。当我 运行 在我的 linux 电脑上使用相同的代码时,它可以工作。但由于此错误 (sensor_msgs.msg),它不适用于 Raspberry Pi。
我想使用 ros 在 raspberry pi 上构建一个发布器。我该怎么做才能解决这个错误?当我使用此命令 $rosmsg list | 时,我在 rosmsg 列表中找不到此消息类型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**
我从来没有 运行 它在 RPI 上。在普通PC中,没有这样的问题。顺便说一句,不应该有 *
>>> from sensor_msgs.msg import Image
>>>
可能有多种可能的原因,例如 CMAKE 文件问题。 sensor_msgs 不 installed/not 兼容,配置错误等
根据您的话“当我使用此命令 $rosmsg list | grep sensor_msgs 时,我在 rosmsg 列表中找不到此消息类型。”我猜是因为你没有安装它或安装了 non-compatible 版本。
尝试使用 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
尝试安装ROS传感器消息包:
sudo apt-get install ros-<distro>-sensor-msgs
例如,如果您使用的是 ROS 的 Kinetic 版本:
sudo apt-get install ros-kinetic-sensor-msgs
然后导入:
from sensor_msgs.msg import Image
我正在使用 ROS Kinetic 在 Raspberry Pi 3 Model B 上工作,其中包含 Raspbian Stretch Lite。好吧,当我在特定的 ws 中创建一个包以将视频从 Raspberry Pi 流式传输到 Linux 远程 Pc 时,我收到一个关于名为 sensor_msgs.msg 的消息类型的导入错误。当我 运行 在我的 linux 电脑上使用相同的代码时,它可以工作。但由于此错误 (sensor_msgs.msg),它不适用于 Raspberry Pi。
我想使用 ros 在 raspberry pi 上构建一个发布器。我该怎么做才能解决这个错误?当我使用此命令 $rosmsg list | 时,我在 rosmsg 列表中找不到此消息类型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**
我从来没有 运行 它在 RPI 上。在普通PC中,没有这样的问题。顺便说一句,不应该有 *
>>> from sensor_msgs.msg import Image
>>>
可能有多种可能的原因,例如 CMAKE 文件问题。 sensor_msgs 不 installed/not 兼容,配置错误等
根据您的话“当我使用此命令 $rosmsg list | grep sensor_msgs 时,我在 rosmsg 列表中找不到此消息类型。”我猜是因为你没有安装它或安装了 non-compatible 版本。
尝试使用 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
尝试安装ROS传感器消息包:
sudo apt-get install ros-<distro>-sensor-msgs
例如,如果您使用的是 ROS 的 Kinetic 版本:
sudo apt-get install ros-kinetic-sensor-msgs
然后导入:
from sensor_msgs.msg import Image