Вопрос или проблема
Документация, представленная на https://github.com/raspberrypi/libcamera и https://github.com/raspberrypi/rpicam-apps, описывает шаги по компиляции и установке из исходников на Raspberry Pi OS, но не специально для операционной системы, такой как Ubuntu 24.04 LTS, которая будет намного лучше работать с ROS.
В ответ на этот пост я указал, как мне удалось это сделать.
Ссылается на следующее: https://github.com/raspberrypi/libcamera, https://github.com/raspberrypi/rpicam-apps.git, Waveshare IMX219-83 – RP5 Docs
- Выполнил следующие команды
sudo apt install clang meson ninja-build pkg-config libyaml-dev python3-yaml python3-ply python3-jinja2 openssl
sudo apt install libdw-dev libunwind-dev libudev-dev libudev-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libpython3-dev pybind11-dev libevent-dev libtiff-dev qt6-base-dev qt6-tools-dev-tools liblttng-ust-dev python3-jinja2 lttng-tools libexif-dev libjpeg-dev pybind11-dev libevent-dev libgtest-dev abi-compliance-checker
Установка libcamera
из исходников
git clone https://github.com/raspberrypi/libcamera.git
cd libcamera
meson setup build --buildtype=release -Dpipelines=rpi/vc4,rpi/pisp -Dipas=rpi/vc4,rpi/pisp -Dv4l2=true -Dgstreamer=enabled -Dtest=false -Dlc-compliance=disabled -Dcam=disabled -Dqcam=disabled -Ddocumentation=disabled -Dpycamera=enabled
ninja -C build install
sudo ninja -C build install
Установка rpicam-apps
из исходников
Выполните cd ../
или эквивалент, чтобы перейти в другую директорию
git clone https://github.com/raspberrypi/rpicam-apps.git
cd rpicam-apps/
sudo apt install cmake libboost-program-options-dev libdrm-dev libexif-dev
sudo apt install ffmpeg libavcodec-extra libavcodec-dev libavdevice-dev libpng-dev libpng-tools libepoxy-dev
sudo apt install qt5-qmake qtmultimedia5-dev
meson setup build -Denable_libav=enabled -Denable_drm=enabled -Denable_egl=enabled -Denable_qt=enabled -Denable_opencv=disabled -Denable_tflite=disabled -Denable_hailo=disabled
meson compile -C build
sudo meson install -C build
Примечание: Возможно, я установил некоторые избыточные библиотеки, но я не уверен, какие из них избыточны, так как я установил все библиотеки, которые мог найти, чтобы устранить ошибки зависимости, с которыми я столкнулся при попытке запустить
meson setup build ...
Еще одно замечание: Обратитесь к репозиторию rpicam-apps на Github, чтобы увидеть другие доступные опции сборки. Например, есть настройки сборки для лучшего интерфейса с OpenCV.
Теперь выполните sudo ldconfig
и rpicam-still --version
, чтобы проверить, успешно ли установлены rpicam-apps
.
Запуск rpicam-hello
- Добавьте следующие строки в конец файла
/boot/firmware/config.txt
:
dtoverlay=imx219,cam0
dtoverlay=imx219,cam1
затем выполните sudo reboot
- (Предполагая, что стереокамера IMX219-83 физически подключена к RP5) Выполните
rpicam-hello --list-cameras
, чтобы увидеть каждую камеру, и, наконец, rpicam-hello --camera 0
илиrpicam-hello --camera 1
(в зависимости от того, к какому разъему камеры на RP5 подключен объектив камеры)
Ответ или решение
Настройка rpicam-* инструментов (rpicam-apps) на Ubuntu 22.04 LTS для Raspberry Pi 5, чтобы взаимодействовать с камерой IMX219-83, представляет собой задачу с рядом технических шагов, требующих внимания. Этот процесс включает установку и настройку основных библиотек, необходимых для работы с libcamera и rpicam-apps, и обеспечивает совместимость с Raspberry Pi, работающим под управлением операционной системы Ubuntu, что менее часто описывается в документации, ориентированной на Raspberry Pi OS.
Теория
Libcamera и rpicam-apps — это программные пакеты, используемые для работы с пиро-камерой в системах, построенных на базе Raspberry Pi. Libcamera обеспечивает низкоуровневый доступ к камерам, управляя потоками данных и аппаратным взаимодействием. rpicam-apps предоставляет пользовательские приложения, которые позволяют осуществлять съемку и обработку изображений. Несмотря на то, что Ubuntu не является основной целью этих программ, благодаря своей поддержке ROS (Robot Operating System) эта система популярна среди разработчиков, работающих с роботическими приложениями.
Пример
Для успешного развертывания этих инструментов на Ubuntu 22.04 LTS необходимо установить несколько пакетов для обеспечения всех зависимостей. Это включает компиляторы, инструменты сборки и графические библиотеки. Команды, которые нужно выполнить:
sudo apt install clang meson ninja-build pkg-config libyaml-dev python3-yaml python3-ply python3-jinja2 openssl
sudo apt install libdw-dev libunwind-dev libudev-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libpython3-dev pybind11-dev libevent-dev libtiff-dev qt6-base-dev qt6-tools-dev-tools liblttng-ust-dev python3-jinja2 lttng-tools libexif-dev libjpeg-dev pybind11-dev libevent-dev libgtest-dev abi-compliance-checker
Далее, необходимо установить libcamera из исходных кодов:
git clone https://github.com/raspberrypi/libcamera.git
cd libcamera
meson setup build --buildtype=release -Dpipelines=rpi/vc4,rpi/pisp -Dipas=rpi/vc4,rpi/pisp -Dv4l2=true -Dgstreamer=enabled -Dtest=false -Dlc-compliance=disabled -Dcam=disabled -Dqcam=disabled -Ddocumentation=disabled -Dpycamera=enabled
ninja -C build install
sudo ninja -C build install
После этого переходим к установке rpicam-apps:
cd ../
git clone https://github.com/raspberrypi/rpicam-apps.git
cd rpicam-apps/
sudo apt install cmake libboost-program-options-dev libdrm-dev libexif-dev
sudo apt install ffmpeg libavcodec-extra libavcodec-dev libavdevice-dev libpng-dev libpng-tools libepoxy-dev
sudo apt install qt5-qmake qtmultimedia5-dev
meson setup build -Denable_libav=enabled -Denable_drm=enabled -Denable_egl=enabled -Denable_qt=enabled -Denable_opencv=disabled -Denable_tflite=disabled -Denable_hailo=disabled
meson compile -C build
sudo meson install -C build
После этого рекомендуется запустить sudo ldconfig
и проверить установку rpicam-apps командой rpicam-still --version
.
Применение
Для завершения настройки необходимо изменить файл конфигурации /boot/firmware/config.txt, добавив камеры:
dtoverlay=imx219,cam0
dtoverlay=imx219,cam1
Затем перезагрузите систему с помощью sudo reboot
.
Чтобы гарантировать, что все компоненты работают правильно, подключите камеру IMX219-83 и выполните команду rpicam-hello --list-cameras
, чтобы просмотреть доступные камеры. Далее можно протестировать камеры, запустив rpicam-hello --camera 0
или rpicam-hello --camera 1
в зависимости от того, к какому слоту подключена камера.
Этот процесс демонстрирует, как благодаря установке и настройке необходимых зависимостей можно интегрировать Raspberry Pi с более широкими экосистемами программного обеспечения, такими как ROS на Ubuntu, расширяя возможности для разработки роботов и интеллектуальных устройств. Основываясь на предоставленном примере, можно гибко подойти к решению задач совместимости между аппаратным обеспечением и ОС, что открывает большие перспективы для создания сложных систем.