Quantcast
Channel: Raspberry Pi Forums
Viewing all articles
Browse latest Browse all 4825

General discussion • Pi 5 and USB cameras

$
0
0
Hello.

I have the Raspberry Pi 5 8 GB running Raspbian 64-bit (bookworm), which I'm trying to get to work with an Astra Pro HD Camera. Issue is I cannot get picamera2 or opencv to find the camera. After some research I've found USB camera support for the RPi 5 is quite limited as of now.

Code:

pi@raspberrypi:~ $ libcamera-hello --list-camerasNo cameras available!

Code:

pi@raspberrypi:~ $ v4l2-ctl --list-devicespispbe (platform:1000880000.pisp_be):        /dev/video20        /dev/video21        /dev/video22        /dev/video23        /dev/video24        /dev/video25        /dev/video26        /dev/video27        /dev/video28        /dev/video29        /dev/video30        /dev/video31        /dev/video32        /dev/video33        /dev/video34        /dev/video35        /dev/video36        /dev/video37        /dev/media1        /dev/media2rpivid (platform:rpivid):        /dev/video19        /dev/media0Astra Pro HD Camera: Astra Pro  (usb-xhci-hcd.0-2.1):        /dev/video0        /dev/video1        /dev/media3
Changing hardware is sort of not an option, but does Ubuntu or 32-bit Raspbian work differently? I have to run ROS2, but this could be done in a Docker container. Being able to use the camera is essential.

Using OpenCV

Code:

import cv2camera_index = 0cam = cv2.VideoCapture(camera_index)while True:    ret, image = cam.read()    k = cv2.waitKey(1)    if k != -1:        breakcv2.imwrite("./testimage.jpg", image)cam.release()cv2.destroyAllWindows()

Code:

(.venv) pi@raspberrypi:~/robot $ python3 test_camera.py [ WARN:0@0.011] global cap_v4l.cpp:997 open VIDEOIO(V4L2:/dev/video0): can't open camera by index[ WARN:0@0.011] global obsensor_stream_channel_v4l2.cpp:82 xioctl ioctl: fd=-1, req=-2140645888[ WARN:0@0.011] global obsensor_stream_channel_v4l2.cpp:138 queryUvcDeviceInfoList ioctl error return: 9[ WARN:0@0.011] global obsensor_stream_channel_v4l2.cpp:82 xioctl ioctl: fd=-1, req=-2140645888[ WARN:0@0.011] global obsensor_stream_channel_v4l2.cpp:138 queryUvcDeviceInfoList ioctl error return: 9[ WARN:0@0.011] global obsensor_stream_channel_v4l2.cpp:82 xioctl ioctl: fd=-1, req=-2140645888[ WARN:0@0.011] global obsensor_stream_channel_v4l2.cpp:138 queryUvcDeviceInfoList ioctl error return: 9[ WARN:0@0.011] global obsensor_stream_channel_v4l2.cpp:82 xioctl ioctl: fd=-1, req=-2140645888[ WARN:0@0.011] global obsensor_stream_channel_v4l2.cpp:138 queryUvcDeviceInfoList ioctl error return: 9[ WARN:0@0.012] global obsensor_stream_channel_v4l2.cpp:82 xioctl ioctl: fd=-1, req=-2140645888[ WARN:0@0.012] global obsensor_stream_channel_v4l2.cpp:138 queryUvcDeviceInfoList ioctl error return: 9[ WARN:0@0.012] global obsensor_stream_channel_v4l2.cpp:82 xioctl ioctl: fd=-1, req=-2140645888[ WARN:0@0.012] global obsensor_stream_channel_v4l2.cpp:138 queryUvcDeviceInfoList ioctl error return: 9[ WARN:0@0.012] global obsensor_stream_channel_v4l2.cpp:82 xioctl ioctl: fd=-1, req=-2140645888[ WARN:0@0.012] global obsensor_stream_channel_v4l2.cpp:138 queryUvcDeviceInfoList ioctl error return: 9[ WARN:0@0.012] global obsensor_stream_channel_v4l2.cpp:82 xioctl ioctl: fd=-1, req=-2140645888[ WARN:0@0.012] global obsensor_stream_channel_v4l2.cpp:138 queryUvcDeviceInfoList ioctl error return: 9[ WARN:0@0.012] global obsensor_stream_channel_v4l2.cpp:82 xioctl ioctl: fd=-1, req=-2140645888[ WARN:0@0.012] global obsensor_stream_channel_v4l2.cpp:138 queryUvcDeviceInfoList ioctl error return: 9[ WARN:0@0.012] global obsensor_stream_channel_v4l2.cpp:82 xioctl ioctl: fd=-1, req=-2140645888[ WARN:0@0.012] global obsensor_stream_channel_v4l2.cpp:138 queryUvcDeviceInfoList ioctl error return: 9[ WARN:0@0.012] global obsensor_stream_channel_v4l2.cpp:82 xioctl ioctl: fd=-1, req=-2140645888[ WARN:0@0.012] global obsensor_stream_channel_v4l2.cpp:138 queryUvcDeviceInfoList ioctl error return: 9[ WARN:0@0.012] global obsensor_stream_channel_v4l2.cpp:82 xioctl ioctl: fd=-1, req=-2140645888[ WARN:0@0.012] global obsensor_stream_channel_v4l2.cpp:138 queryUvcDeviceInfoList ioctl error return: 9[ WARN:0@0.012] global obsensor_stream_channel_v4l2.cpp:82 xioctl ioctl: fd=-1, req=-2140645888[ WARN:0@0.012] global obsensor_stream_channel_v4l2.cpp:138 queryUvcDeviceInfoList ioctl error return: 9[ WARN:0@0.012] global obsensor_stream_channel_v4l2.cpp:82 xioctl ioctl: fd=-1, req=-2140645888[ WARN:0@0.012] global obsensor_stream_channel_v4l2.cpp:138 queryUvcDeviceInfoList ioctl error return: 9[ WARN:0@0.012] global obsensor_stream_channel_v4l2.cpp:82 xioctl ioctl: fd=-1, req=-2140645888[ WARN:0@0.012] global obsensor_stream_channel_v4l2.cpp:138 queryUvcDeviceInfoList ioctl error return: 9[ WARN:0@0.012] global obsensor_stream_channel_v4l2.cpp:82 xioctl ioctl: fd=-1, req=-2140645888[ WARN:0@0.012] global obsensor_stream_channel_v4l2.cpp:138 queryUvcDeviceInfoList ioctl error return: 9[ WARN:0@0.012] global obsensor_stream_channel_v4l2.cpp:82 xioctl ioctl: fd=-1, req=-2140645888[ WARN:0@0.012] global obsensor_stream_channel_v4l2.cpp:138 queryUvcDeviceInfoList ioctl error return: 9[ WARN:0@0.012] global obsensor_stream_channel_v4l2.cpp:82 xioctl ioctl: fd=-1, req=-2140645888[ WARN:0@0.012] global obsensor_stream_channel_v4l2.cpp:138 queryUvcDeviceInfoList ioctl error return: 9[ WARN:0@0.012] global obsensor_stream_channel_v4l2.cpp:82 xioctl ioctl: fd=-1, req=-2140645888[ WARN:0@0.012] global obsensor_stream_channel_v4l2.cpp:138 queryUvcDeviceInfoList ioctl error return: 9[ERROR:0@0.012] global obsensor_uvc_stream_channel.cpp:159 getStreamChannelGroup Camera index out of range^CTraceback (most recent call last):  File "/home/pi/robot/test_camera.py", line 8, in <module>    ret, image = cam.read()                 ^^^^^^^^^^KeyboardInterrupt
Using picamera2

Code:

from picamera2 import Picamera2, Previewpicam2 = Picamera2()config = picam2.create_preview_configuration({"format": "MJPEG"})picam2.configure(config)picam2.start_preview(Preview.QT)picam2.start()jpeg_buffer = picam2.capture_buffer()

Code:

(.venv) pi@raspberrypi:~/robot $ /usr/bin/python /home/pi/robot/test_camera2.py[1:50:28.703419437] [6022]  INFO Camera camera_manager.cpp:284 libcamera v0.1.0+118-563cd78e[1:50:28.707094992] [6025] ERROR MediaDevice media_device.cpp:483 /dev/media0[]: Failed to open media device at /dev/media0: Permission denied[1:50:28.707132900] [6025]  INFO DeviceEnumerator device_enumerator.cpp:218 Unable to populate media device /dev/media0 (Permission denied), skipping[1:50:28.707145011] [6025]  WARN DeviceEnumerator device_enumerator_udev.cpp:174 Failed to add device for '/sys/devices/platform/axi/1000800000.codec/media0', skipping[1:50:28.707233270] [6025] ERROR MediaDevice media_device.cpp:483 /dev/media1[]: Failed to open media device at /dev/media1: Permission denied[1:50:28.707245529] [6025]  INFO DeviceEnumerator device_enumerator.cpp:218 Unable to populate media device /dev/media1 (Permission denied), skipping[1:50:28.707254640] [6025]  WARN DeviceEnumerator device_enumerator_udev.cpp:174 Failed to add device for '/sys/devices/platform/axi/1000880000.pisp_be/media1', skipping[1:50:28.707301048] [6025] ERROR MediaDevice media_device.cpp:483 /dev/media2[]: Failed to open media device at /dev/media2: Permission denied[1:50:28.707312566] [6025]  INFO DeviceEnumerator device_enumerator.cpp:218 Unable to populate media device /dev/media2 (Permission denied), skipping[1:50:28.707321492] [6025]  WARN DeviceEnumerator device_enumerator_udev.cpp:174 Failed to add device for '/sys/devices/platform/axi/1000880000.pisp_be/media2', skippingTraceback (most recent call last):  File "/home/pi/robot/test_camera2.py", line 3, in <module>    picam2 = Picamera2()             ^^^^^^^^^^^  File "/usr/lib/python3/dist-packages/picamera2/picamera2.py", line 242, in __init__    camera_num = self.global_camera_info()[camera_num]['Num']                 ~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^IndexError: list index out of rangeException ignored in: <function Picamera2.__del__ at 0x7fff9cd50180>Traceback (most recent call last):  File "/usr/lib/python3/dist-packages/picamera2/picamera2.py", line 404, in __del__    self.close()  File "/usr/lib/python3/dist-packages/picamera2/picamera2.py", line 604, in close    if self._preview:       ^^^^^^^^^^^^^AttributeError: 'Picamera2' object has no attribute '_preview'

Statistics: Posted by bscstudent — Wed Feb 07, 2024 3:17 pm



Viewing all articles
Browse latest Browse all 4825

Trending Articles