-
Notifications
You must be signed in to change notification settings - Fork 0
リアカメラ エラーメモ
YuyaKimura edited this page May 15, 2024
·
1 revision
実際にあったエラーを記述する。
以下のエラーはカメラデバイスが既に他のプロセスによって使用されている可能性がある。
$ python3 camera_interface.py
[0:42:12.788071843] [2343] INFO Camera camera_manager.cpp:299 libcamera v0.0.4+22-923f5d70
[0:42:12.807667380] [2344] ERROR V4L2 v4l2_device.cpp:352 'imx219 10-0010': Unable to set controls: Device or resource busy
[0:42:12.819625151] [2344] WARN RPI raspberrypi.cpp:1357 Mismatch between Unicam and CamHelper for embedded data usage!
[0:42:12.820698907] [2344] INFO RPI raspberrypi.cpp:1476 Registered camera /base/soc/i2c0mux/i2c@1/imx219@10 to Unicam device /dev/media1 and ISP device /dev/media2
[0:42:12.822536324] [2343] INFO Camera camera.cpp:841 Pipeline handler in use by another process
[0:42:12.827411742] [2343] ERROR Camera camera.cpp:547 Camera in Available state trying configure() requiring state between Acquired and Configured
Traceback (most recent call last):
File "/home/et2023/work/RasPike/sdk/workspace/etrobocon2023/rear_camera_py/src/camera_interface.py", line 97, in <module>
camera.start_camera()
File "/home/et2023/work/RasPike/sdk/workspace/etrobocon2023/rear_camera_py/src/camera_interface.py", line 53, in start_camera
picam2.configure(conf)
File "/usr/lib/python3/dist-packages/picamera2/picamera2.py", line 1004, in configure
self.configure_(camera_config)
File "/usr/lib/python3/dist-packages/picamera2/picamera2.py", line 944, in configure_
raise RuntimeError(f"Configuration failed: {camera_config}")
RuntimeError: Configuration failed: {'use_case': 'preview', 'transform': <libcamera.Transform 'identity'>, 'colour_space': <libcamera.ColorSpace 'sYCC'>, 'buffer_count': 4, 'queue': True, 'main': {'format': 'RGB888', 'size': (1640, 1232), 'stride': 4992, 'framesize': 6150144}, 'lores': None, 'raw': {'format': 'SRGGB10_CSI2P', 'size': (1640, 1232), 'stride': 2080, 'framesize': 2562560}, 'controls': {'NoiseReductionMode': <NoiseReductionModeEnum.Minimal: 3>, 'FrameDurationLimits': (100, 83333)}, 'display': 'main', 'encode': 'main'}
以下では、pythonプロセスが /dev/media1 デバイスに対してアクセスしていることがわかります。
$ sudo lsof /dev/media1
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
python 590 root 11uW CHR 238,1 0t0 215 /dev/media1
上記のプロセスを終了するコマンドを以下に記述。590
はPIDの値。
sudo kill 590
もし、サーバー関連を実行している場合、接続が切れる場合があるので、以下を実行したら最初から実行することになるかも...
sudo pkill -9 python