Получение инструментов rpicam-* (rpicam-apps), работающих на Ubuntu 22.04 LTS для Raspberry Pi 5 для взаимодействия с IMX219-83.

Вопрос или проблема

Документация, представленная на 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, расширяя возможности для разработки роботов и интеллектуальных устройств. Основываясь на предоставленном примере, можно гибко подойти к решению задач совместимости между аппаратным обеспечением и ОС, что открывает большие перспективы для создания сложных систем.

Оцените материал
Добавить комментарий

Капча загружается...