摄像头
Donkeycar通过CAMERA_TYPE
配置支持大量摄像头。对于大多数应用程序,广视野非常重要,因此您的摄像头应使用120度广角镜头或更好。建议使用160度广角镜头。
摄像头设置
如果您使用默认的深度学习模板或计算机视觉模板,则需要一个摄像头。默认情况下,myconfig.py假设使用树莓派摄像头。您可以通过编辑~/mycar
文件夹中的myconfig.py文件中的CAMERA_TYPE
值来更改此设置。
如果您使用GPS路径跟踪模板,则不需要(可能也不想要)摄像头。在这种情况下,您可以将摄像头类型更改为模拟摄像头;CAMERA_TYPE = "MOCK"
。
树莓派:
如果您使用的是树莓派并且使用推荐的树莓派摄像头("PICAM"),则不需要更改__myconfg.py__。
这适用于所有树莓派摄像头,包括基于5百万像素OV5647芯片组的原始树莓派摄像头模块和基于Sony IMX219芯片的树莓派摄像头模块v2。这些摄像头很容易获得,并且许多供应商提供通用(克隆)版本。
确保摄像头正常工作。摄像头连接问题很常见,特别是在组装新的Donkeycar、安装新的摄像头或发生碰撞后。在这些情况下,或者在使用Donkeycar软件时遇到摄像头错误时,您应该在向Discord寻求帮助之前确保您的摄像头正常工作。Raspberry Pi OS包含摄像头软件,可拍照或流视频。如果您的Raspberry Pi连接了键盘、鼠标和显示器,那么您可以运行rpicam-hello
实用程序来显示摄像头的视频流。如果您通过ssh登录到Raspberry Pi,那么您可以使用rpicam-jpeg
实用程序拍摄一张图像并将其保存为JPEG格式,然后将生成的JPEG文件复制到主机计算机上进行查看(通常,如果成功拍摄照片而没有报告错误,则摄像头应该正常工作)。
Jetson Nano:
Jetson Nano没有适用于基于5百万像素OV5647芯片的原始树莓派摄像头的驱动程序,但它有适用于基于IMX219芯片的v2摄像头的驱动程序。事实上,推荐的摄像头是基于IMX219芯片的。
默认设置CAMERA_TYPE = "PICAM"
在Jetson上不起作用,即使您使用的是8MP树莓派摄像头或基于Sony IMX219的摄像头。在这两种情况下,您需要编辑__myconfg.py__,将其设置为CAMERA_TYPE = "CSIC"
。
要垂直翻转图像,请设置CSIC_CAM_GSTREAMER_FLIP_PARM = 6
- 如果您必须将摄像头安装在旋转的位置上,这很有帮助。
USB摄像头
当设置了OpenCV时,CAMERA_TYPE = CVCAM
是适用于USB摄像头的摄像头类型。这需要额外设置Jetson Nano上的OpenCV或Raspberry Pi上的OpenCV。
如果您已安装了可选的pygame库,则可以通过将摄像头类型编辑为CAMERA_TYPE = "WEBCAM"
来连接到摄像头。请参阅pygame的必要附加设置。
如果您有多个摄像头,则可能需要设置CAMERA_INDEX
配置值。默认情况下,它为零。
注意:
CAMERA_TYPE = CVCAM
依赖于编译了GStreamer支持的OpenCV版本。这是Jetson计算机的默认设置,并且在Raspberry Pi的推荐版本的OpenCV中也受支持。
Intel Realsense D435
Intel Realsense摄像头是RGBD摄像头;它们提供RGB图像和深度图像。您可以将它们用作RGB摄像头,通过在myconfig.py设置中将CAMERA_TYPE = "D435"
来为深度学习模板或计算机视觉模板提供图像。您还需要查看适用于Intel Realsense摄像头的特定设置;
# Intel Realsense D435 and D435i depth sensing camera
REALSENSE_D435_RGB = True # True to capture RGB image
REALSENSE_D435_DEPTH = True # True to capture depth as image array
REALSENSE_D435_IMU = False # True to capture IMU data (D435i only)
REALSENSE_D435_ID = None # serial number of camera or None if you only have one camera (it will autodetect)
如果不使用深度图像,则需要设置REALSENSE_D435_DEPTH = False
,以便不保存深度数据。
故障排除
如果颜色看起来不对,可能是摄像头输出的是BGR颜色而不是RGB。您可以设置BGR2RGB = True
将BGR转换为RGB。
随着时间的推移,我们会添加其他摄像头,因此请阅读myconfig.py中的摄像头部分,了解可用的选项。
如果您在使用摄像头时遇到问题,请查看我们的Discord硬件频道以获取更多帮助。