1.问题出现
在虚拟机中进行ROS视觉方面的操作时,调用摄像头出现报错:
AttributeError: 'NoneType' object has no attribute 'shape'
[ERROR] [1665194860.752950024]: select timeout
[usb_cam-1] process has died [pid 49165, exit code 1, cmd /opt/ros/melodic/lib/usb_cam/usb_cam_node __name:=usb_cam __log:=/home/rosmelodic/.ros/log/469c5216-46a2-11ed-89a7-000c2969e545/usb_cam-1.log].
log file: /home/rosmelodic/.ros/log/469c5216-46a2-11ed-89a7-000c2969e545/usb_cam-1*.log
但从这个报错查出来的都是opencv的问题,读取摄像头信息失败了。
但是在opencv读取视频和图片全部成功,可能是摄像头的问题,或者调用摄像头的代码出现问题。
由于调用摄像头的代码往往潜藏在一个项目中,而且层层嵌套,而且一般情况下,官方打包好的代码一般都是自己的问题,而不是官方代码的问题。
2.排查
(1)虚拟机在默认设置下,电脑的摄像头是没连接的,通过设置把摄像头连接起来。