Перейти к содержанию
Скачать руководство PDF

Камеры и источники изображения

SmartCamera принимает изображения от V4L2-камер, Intel RealSense и внешних ROS-издателей. Для V4L2 и RealSense проект управляет устройством; для ROS-топика подписывается на уже работающий внешний драйвер. Сначала запустите приложение, затем откройте Камеры.

Добавление V4L2-камеры

Форма добавления камеры с выбором источника и параметрами

  1. Нажмите Добавить камеру справа вверху. Откроется форма Новая камера.
  2. Задайте ID камеры, например entrance, и Название, например Вход. ID используется в конфигурации и адресах API; название удобно сделать понятным оператору.
  3. В поле Источник камеры выберите V4L2, а в Устройство — нужную камеру. Если список устройств пуст, форма позволяет ввести путь вручную.
  4. Укажите ROS topic, например /smart_camera/entrance/image_raw, и Frame ID, например entrance_camera_optical_frame.
  5. Заполните Ширина, Высота и FPS согласно режиму, который поддерживает камера. Для первого подключения используйте проверенный режим, например 640 × 480, 30 FPS, если он присутствует у устройства.
  6. Выберите Формат захвата V4L2 и Транспорт, проверьте флаг Камера включена, затем нажмите Сохранить и применить.
  7. Дождитесь изображения в сетке. Откройте камеру и на вкладке Камера сравните фактические разрешение и FPS с заданными.

Предпочтителен стабильный путь /dev/v4l/by-id/...: номер /dev/videoN может измениться после переподключения. Некоторые устройства создают несколько узлов; нужен узел захвата изображения, а не служебный интерфейс. Список форматов можно проверить без запуска SmartCamera:

v4l2-ctl --list-devices
v4l2-ctl --device=/dev/video0 --list-formats-ext

Формат захвата V4L2 задаёт передачу от устройства к компьютеру: auto, MJPG или YUYV. MJPG часто снижает нагрузку на USB при нескольких камерах, но его можно выбирать только при поддержке конкретным устройством. Транспорт задаёт публикацию в ROS: raw · cv_bridge или compressed · JPEG. Для compressed используется <ROS topic>/compressed, для raw — имя без добавленного суффикса. JPEG quality имеет диапазон 1–100 и доступно для compressed. Это отдельная настройка от USB-формата.

В Параметры UVC отображаются только доступные параметры устройства. Для ручной экспозиции выберите Автоэкспозиция → Вручную и задайте поддерживаемое значение. Шкала exposure, gain и brightness определяется устройством; её нельзя без проверки трактовать как миллисекунды. Пустые значения и Не изменять сохраняют настройку драйвера.

Внешний ROS-поток

  1. Запустите внешний драйвер камеры в том же ROS-домене, что и SmartCamera.
  2. Нажмите Добавить камеру, задайте ID и название, выберите Источник камеры → ROS-топик.
  3. В Доступные топики выберите поток. При необходимости нажмите Обновить топики или введите полное имя в ROS topic.
  4. Проверьте Тип сообщения: sensor_msgs/msg/Image или sensor_msgs/msg/CompressedImage.
  5. Нажмите Сохранить и применить и дождитесь кадра.

Для такого источника имя задаётся целиком, включая /compressed, если оно есть у издателя. SmartCamera не дописывает его автоматически. Например, для /external_camera/image_raw/compressed выбирают тип CompressedImage. Разрешение и частота определяются входящими кадрами; менять экспозицию и режим нужно во внешнем драйвере. Поле Частота сохраняемого видео, FPS относится к MP4, а не к перенастройке издателя.

Проверить фактический тип и наличие публикации можно командами:

ros2 topic info /external_camera/image_raw -v
ros2 topic hz /external_camera/image_raw

Если поток не появился, проверьте окружение, ROS_DOMAIN_ID, тип сообщения и совместимость QoS. Подробные примеры приведены в ROS 2 управлении.

Intel RealSense

  1. В форме добавления выберите Intel RealSense.
  2. В списке Камера RealSense выберите подключённое устройство по модели и serial.
  3. Выберите Готовый RGB-D профиль из обнаруженных профилей. Это согласованный набор режимов RGB и глубины.
  4. При необходимости включите Публиковать облако точек и проверьте Topic облака точек.
  5. Задайте Минимальная глубина для карты, м, Максимальная глубина для карты, м и Палитра карты глубины. Эти поля управляют визуализацией карты.
  6. Нажмите Сохранить и применить.

Расширенные параметры устройства

В блоке Расширенные настройки устройства числовое значение отправляется устройству при выходе из поля. Для этих параметров не нужно ждать кнопки сохранения всей формы. Поля только чтение изменить нельзя; диапазон и шаг поступают от SDK.

Для L515 проект проверен с firmware 1.5.8.1, SDK 2.50.0, USB 3.2 и профилем RGB 640 × 480 @ 30 + depth 640 × 480 @ 30. Это проверенная комбинация проекта, а не обещание совместимости любых SDK. Установку отдельного SDK и параметр realsense_sdk_prefix смотрите в инструкции установки. L500 использует LiDAR; параметры Advanced Mode и межкамерной синхронизации D400 к ней не применяются.

В отдельном просмотре RealSense можно переключать RGB и карту глубины. Нажмите на исходное изображение: появятся координаты X/Y и Depth. В Единицы глубины доступны мм, см, м и дюймы. RGB-измерение использует глубину, совмещённую по заводской калибровке, и последний кадр. Нет данных означает отсутствие измерения в точке, а не нулевую дистанцию. Сбросить измерение убирает отметку.

Изменение и удаление

Для изменения нажмите шестерёнку в сетке либо Камера → Настройки в рабочей области. После сохранения изменённый V4L2-worker перезапускается отдельно; если новая конфигурация не дала первого кадра, менеджер возвращает последнюю рабочую конфигурацию. Не считайте сохранение успешным, пока не проверены сообщение сервера и поток.

Если показано YAML доступен только для чтения, редактирование заблокировано. Проверьте права на фактический файл конфигурации. При параллельном редактировании из двух окон сервер может отклонить устаревшую версию: перечитайте настройки и повторите правку.

Удалить в форме убирает камеру после подтверждения. Для временной остановки достаточно снять Камера включена и сохранить. Поле Calibration YAML задаёт внутреннюю калибровку; порядок её получения и применения описан в следующей главе.