Объёмная съёмка, анализ техники спортсмена со всех сторон, бесшовный проход голограммы между экранами — за всем этим стоит риг из нескольких камер глубины вокруг сцены. Восемь Femto по кольцу — типовая конфигурация, и две беды у неё типовые: кадры, снятые «примерно в одно время», и инфракрасные прожекторы, глушащие друг друга. Разбираем, как собрать систему, где кадры рождаются в один аппаратный момент, а облака сшиваются без дублей.
Расстановка восьми камер
Классика — кольцо или полукуб вокруг рабочей зоны: камеры на высоте 2–2,5 м, каждая видит сцену целиком, соседние ракурсы перекрываются на 30–50%. Крепление — только жёсткое: ферма или надёжные штативы, потому что любая вибрация после калибровки бьёт по швам склейки. По питанию и шине: не более трёх-четырёх USB-камер на контроллер и хаб с активным питанием. Если камеры стоят дальше пяти метров от машины — это уже территория Femto Mega: Ethernet и PoE тянут до сотни метров кабеля.
Аппаратная синхронизация: sync-кабель
Программного «запросили кадр — записали дату» объёмному захвату мало: у каждой камеры свой генератор и свой джиттер. У семейства Femto есть выделенный sync-порт: ведущая камера (primary) формирует триггерный сигнал по кабелю, ведомые (secondary) открывают затворы по нему — кадры всех восьми камер рождаются в один физический момент. Конфигурация ролей делается одной проходкой по устройствам:
from pyorbbecsdk import Context, OBSyncMode
ctx = Context()
devices = ctx.query_devices()
print("камер найдено:", len(devices))
for i, dev in enumerate(devices):
cfg = dev.get_multi_device_sync_config()
# имена полей — по Orbbec SDK v2; сверьте с examples вашего pyorbbecsdk
cfg.sync_mode = OBSyncMode.PRIMARY if i == 0 else OBSyncMode.SECONDARY
cfg.depth_delay_us = 0
cfg.frames_per_trigger = 1
dev.set_multi_device_sync_config(cfg)
# общий сброс внутренних часов: с задержками, чтобы сработал
# у всех камер в один физический момент
dev.set_timestamp_reset_delay(i * 1600) # мкс
dev.timestamp_reset()
Часы: SyncedClockTimer и метки времени
Аппаратный триггер синхронизирует экспозицию, но кадры ещё надо уметь сопоставлять в софте — по меткам времени устройства. В OrbbecViewer для семейства Femto есть SyncedClockTimer: синхронный сброс внутренних часов всех подключённых камер одним действием. Без общего сброса метки каждой камеры плывут относительно друг друга, и даже кадры, снятые одновременно, склеиваются с ошибкой в десятки миллисекунд. После сброса сравнивайте метки соседних ракурсов в логе — расхождение должно стоять на месте, а не накапливаться.
ИК-интерференция прожекторов
Вторая беда мультикамерности — прожекторы подсветки. Восемь лазерных паттернов в одной комнате дают перекрёстную засветку: карта глубины зарябит муаром, появляются ложные поверхности. Рецепты по возрастанию стоимости: физически разнести камеры, чтобы зоны подсветки перекрывались минимально; сместить фазы работы прожекторов; отключить подсветку у части камер, чьи зоны полностью перекрыты соседями — стереопары вроде Gemini 335Le при хорошем освещении держат глубину и без паттерна.

Калибровка и склейка облаков
Финальный шаг — внешние параметры между парами камер. В зоне перекрытия снимается ChArUco-мишень или шахматка, попарные преобразования собираются в единую систему координат рига. Контроль делайте по тонким жёстким предметам — стойка или рейка видна всем камерам сразу, и любой шов склейки на ней сразу заметен; люди для контроля не годятся, они дышат. Масштаб проверяется рулеткой: расстояние между двумя марками в склеенном облаке должно совпасть с измеренным. Для агрегации потока удобен ROS 2 с драйвером orbbec_camera — каждая камера получает свой namespace:
# ROS 2: каждая камера драйвера orbbec_camera — отдельный namespace
ros2 launch orbbec_camera femto.launch.py camera_name:=cam0
Femto Bolt или Femto Mega в риге
| Критерий | Femto Bolt | Femto Mega |
|---|---|---|
| Интерфейс | USB-C 3.x | Ethernet, PoE |
| Глубина | ToF 640×576 | ToF 640×576 |
| Бортовой вычислитель | нет | встроенный модуль NVIDIA Jetson |
| Монтаж | рядом с хост-ПК | по всему объекту, кабель до 100 м |
| Роль в риге из 8 камер | плотные ближние ракурсы | дальние и труднодоступные точки |
Частые вопросы
Хватит ли одного ПК на восемь камер?
По USB — впритык: восемь потоков глубины и цвета упираются и в полосу, и в питание. Практика — два-четыре контроллера. Femto Mega разгружает хост: часть обработки живёт на борту, трафик размазывается по коммутатору.
Можно синхронизироваться без sync-кабеля?
Можно — программно, по меткам времени после общего сброса часов. Для медленных сцен этого достаточно, но быстрое движение начнёт двоиться на швах; аппаратный триггер надёжнее.
Обязательно ли восемь камер?
Начните с четырёх по кругу: перекрытие соседних зон в 40% даст сшиваемое облако и ответ, нужны ли ещё ракурсы именно под вашу сцену.
Камеры для проекта
Femto Bolt — базовый кирпич рига, Femto Mega — Ethernet-версия для удалённого монтажа и бортовой обработки. Каталог Orbbec — счёт для юрлица, консультация по SDK, гарантия.
Камеры Orbbec в наличии на LUWAM
- Orbbec Femto Bolt — iToF 4K, замена Azure Kinect — 99 900 ₽
- Orbbec Gemini 335L — стерео для роботов и SLAM — 99 900 ₽
- Orbbec Astra 2 — структурированный свет, сканирование помещений — 99 900 ₽
Весь каталог Orbbec · консультация по SDK · счёт для юрлица в день обращения · гарантия 1 год.

