Первый запуск¶
Сначала выполните установку через CLI или установку из исходников. Дальше можно проверить интерфейс без оборудования, подключить одну камеру и сохранить первый снимок. Модель нейросети, GPU и калибровочный шаблон для этого не нужны.
Запустите приложение¶
smartcamera run
CLI сам подключает окружения и использует сохранённые настройки. Создавать YAML вручную не нужно: первичная настройка уже подготовила пустой список камер. Повторная настройка не удаляет добавленные источники.
Откройте http://127.0.0.1:8000/cameras.
Если вы изменили порт при установке, подставьте своё значение.
Оставьте терминал открытым. Для фонового запуска вместо обычного используйте
smartcamera run --detach, а журнал смотрите через smartcamera logs --follow.

Скриншот показывает страницу с уже добавленными камерами; названия и доступные потоки зависят от вашей конфигурации. Обзор остальных разделов находится в руководстве по интерфейсу.
Во втором терминале проверьте, что веб-сервер видит пустую конфигурацию:
curl --fail --silent http://127.0.0.1:8000/api/v1/cameras \
| python3 -m json.tool
В JSON должны быть revision и пустой список cameras. Swagger с актуальной схемой HTTP-запросов доступен по адресу http://127.0.0.1:8000/docs.
Добавьте одну USB-камеру¶
Подключите камеру к компьютеру с сервером SmartCamera. При локальном запуске её устройства можно проверить командами:
v4l2-ctl --list-devices
ls -l /dev/v4l/by-id/
При запуске в Docker сначала разрешите доступ к устройству:
smartcamera stop
smartcamera configure --yes --device /dev/video0
smartcamera run --detach
Замените /dev/video0 своим устройством. Для RealSense используйте
инструкцию Docker, поскольку доступ к USB настраивается иначе.
На странице Камеры откройте добавление камеры и выберите V4L2-устройство. Предпочитайте стабильный путь /dev/v4l/by-id/...: номер /dev/videoN может измениться после переподключения. У одного устройства бывает несколько video-узлов; выбирайте узел, который действительно предоставляет нужный видеопоток.
Для первой камеры задайте ID front, понятное название и топик /smart_camera/front/image_raw. Выберите разрешение и FPS из списка поддерживаемых режимов. Не задавайте произвольный режим только потому, что он помещается в форму: драйвер должен подтвердить получение первого кадра. Для начала достаточно 640×480 и 30 FPS, если этот режим есть у устройства.
Для нескольких USB-камер MJPG часто уменьшает нагрузку на шину. Выбирайте его только при наличии в режимах устройства. Параметр transport: compressed управляет передачей изображения в ROS и не заменяет выбор формата захвата pixel_format.
Сохраните камеру и дождитесь изображения. При неудачном применении приложение пытается вернуть предыдущую конфигурацию; прочитайте сообщение формы и журнал launch, прежде чем повторять сохранение. Подробности RealSense, внешних ROS-потоков, depth и калибровки — в руководстве по камерам.
Проверьте поток и сохранение¶
Для камеры front с compressed transport:
Эти команды выполняются в терминале с окружением ROS 2.
ros2 topic info /smart_camera/front/image_raw/compressed -v
ros2 topic hz /smart_camera/front/image_raw/compressed
ros2 topic echo /diagnostics --once
Для raw transport используйте /smart_camera/front/image_raw. Камера может работать, даже если конкретный ROS-подписчик не получает изображения: сравните QoS. Изображения передаются с best-effort, volatile и глубиной очереди 1; для подписки используйте совместимую политику.
Сделайте одиночный снимок через интерфейс и найдите материал в разделе Архив. Это проверяет не только просмотр, но и запись в выбранный каталог. Если запущена запись видео, серия фото или ROS bag, сначала остановите её: операции записи взаимоисключающие. Для первого теста достаточно одной камеры — групповая фотография дополнительно требует свежих кадров с допустимым расхождением timestamps.
Остановите приложение через smartcamera stop (или Ctrl+C в терминале запуска), затем снова выполните smartcamera run. Камера должна остаться в конфигурации, а снимок — в архиве. Закрытие вкладки браузера сервер не останавливает. При штатном завершении лучше сначала закончить запись, чтобы материал успел получить окончательный статус.
Подключите нейросеть и внешнее управление¶
Когда обычный поток работает, откройте библиотеку моделей, скачайте стандартную модель в библиотеку и добавьте запуск в Камеры → Нейросети. Выбор модели относится к конкретному запуску: одной камере можно назначить несколько моделей. Успешное включение ещё не означает, что веса уже загружены — дождитесь состояния и обработанного кадра. После перезапуска сервера запуски остаются выключенными.
Для команд ROS ниже сначала подключите окружение ROS 2. Для ROS-управления браузер не нужен, но web_server должен продолжать работать. Он предоставляет общую конфигурацию для веб-панели и ROS-команд:
ros2 service call /smart_camera/control smart_camera_interfaces/srv/Control \
'{command: {operation: cameras.list}}'
Команды выбора модели, включения камеры и подписки на результаты приведены в ROS 2 API. Для HTTP-клиента используйте справочник HTTP API.
Доступ с другого компьютера¶
Остановите приложение и измените адрес веб-сервера:
smartcamera stop
smartcamera configure --yes --host 0.0.0.0 --port 8000
smartcamera run --detach
Откройте http://IP_СЕРВЕРА:8000/cameras на другом компьютере. В приложении нет встроенной аутентификации и TLS; такой запуск предназначен для доверенной сети. Если локальная страница открывается, а удалённая нет, проверьте адрес сервера и сетевой фильтр. Ошибки установки и потоков разобраны в диагностике.