Несколько камер на Jetson Xavier NX: решения для мультиплексирования камер на NX Dev Kit
Сколько модулей камер можно подключить к одному комплекту Xavier NX

На официальном комплекте разработчика NX есть два разъёма MIPI CSI (J1 и J9) и четыре порта USB — вариантов подключения камер несколько. Очевидно, что все шесть можно занять модулями камер с подходящим интерфейсом, а опытные пользователи могут задействовать ещё и сетевой разъём RJ45 для любых IP-камер.
У каждого типа подключения свои плюсы и минусы. Главный вопрос — можно ли использовать все три интерфейса одновременно.
Ответ — да: можно задействовать все доступные разъёмы, открыть все модули камер и даже обращаться к ним одновременно.
Всего к комплекту NX можно подключить только 7 камер: 4 через порты USB, 2 через разъёмы MIPI CSI-2 и 1 через порт RJ45.
Это предел? Есть ли решения получше? Разберёмся.
Как работают несколько камер на Xavier NX
Если знать, как подключить камеры, установить драйверы и управлять ими командами, получится лишь первая рабочая схема. Чтобы решать на комплекте NX реальные задачи, нужно понимать, как работают несколько камер.
В целом при использовании больше 2 модулей камер с Jetson NX возможны 3 ситуации (независимо от интерфейса):
- Все камеры работают одновременно и синхронно: снимают в один и тот же момент, модули синхронизированы на уровне кадров. Это нужно для проектов со стереозрением — построения карт глубины, SLAM, VR и т. д.
- Камеры работают по очереди: пока работает одна, остальные в режиме ожидания. Если переключение между модулями достаточно быстрое, кажется, что камеры работают синхронно и одновременно. Этот вариант подходит для задач, где нужны несколько источников изображения, а синхронизация не важна.
- Все камеры работают одновременно, но с заметными задержками и несовпадающими кадрами. Хуже того, вы упрётесь в предел пропускной способности, и для уменьшения задержек придётся снижать разрешение и частоту кадров. Чтобы такая схема заработала в конкретной задаче, нужен опытный разработчик.
С учётом этого посмотрим на решения, которые выбрала Arducam.
Решения для нескольких камер на Jetson NX
Все рекомендации даны для официального комплекта разработчика Xavier NX. Сам модуль NX очень мощный: у него 14 линий MIPI CSI-2 (3 × 4 или 6 × 2), а D-PHY v1.2 обрабатывает до 30 Гбит/с. Но на официальном комплекте разработчика выведено лишь два разъёма MIPI CSI-2, поэтому, чтобы задействовать интерфейс MIPI в полной мере, нужны несущие платы сторонних производителей. Все выбранные решения с ними совместимы.
Использовать несколько IP-камер не рекомендуется: у них выше энергопотребление и нет управления экспозицией, балансом белого и другими параметрами.
Важно также учитывать:
Синхронизация на уровне кадров: синхронизированы ли все камеры.
Поддержка разных сенсоров: можно ли выбирать из разных сенсоров.
Если вас интересует и Jetson Nano, прочитайте статью:
- Решения для нескольких камер на NVIDIA Jetson Nano
1. Мультиплексоры камер MIPI на 2 и 4 камеры

Эти адаптеры расширяют число интерфейсов MIPI CSI-2 на штатном комплекте NX. Допустим, у вас 6 или 8 камер Camera Module V2 или камер Raspberry Pi HQ, и раз они хорошо поддерживаются, вы хотите подключить их все к NX. Мультиплексоры — именно то, что нужно.
Их можно использовать и с фирменными камерами Arducam Jetvariety, камерами OBISP и всеми остальными модулями Arducam для платформы NX.
Недостаток — между камерами приходится переключаться: одновременно работает только одна.

- Адаптер-даблплексор для нескольких камер, стереомодуль V2 для Raspberry Pi Camera V3, Raspberry Pi Zero, Pi 5/4/3B+/3 (снят с производства)
2. Камеры глубины и комплекты со стереоплатой HAT

Вы наверняка слышали о камерах Intel RealSense или ZED, а может, и работали с ними. Эти камеры глубины, без сомнения, хороши во многом и совместимы со всем семейством Jetson.
Но если важны гибкость и цена, стоит поискать другие варианты. Arducam выбрала два типа камер глубины:
Модули камер глубины. Всё собрано на одной плате: две камеры точно синхронизированы и занимают один интерфейс MIPI CSI-2. Изображение выводится либо бок о бок, либо одним склеенным кадром с суммарным разрешением. Такие модули хорошо подходят для ROS и многих других проектов на NX со стереозрением.
Комплекты из стереоплаты HAT и камер. С таким набором вы управляете всем: длиной базы, взаимным расположением двух модулей и даже выбором сенсоров. Этого не дают D455 или ZED 2.


- Стереокомплект 1MP*2: две монохромные камеры OV9281 с глобальным затвором для Raspberry Pi и NVIDIA Jetson AGX Orin/Orin Nano/Orin NX
- Комплект синхронизированной стереокамеры Arducam 12MP*2 для NVIDIA Jetson AGX Orin/Orin Nano/Orin NX: два модуля камер 477P на 12,3 Мп с объективами CS и плата Camarray Stereo Camera HAT
3. Объединитель синхронных камер: Camarray HAT

Плата Camarray HAT позволяет подключить к Xavier NX больше 2 синхронизированных камер. Это обновлённая версия стереоплаты HAT, несущая плата для камер MIPI и расширяемая основа для стереозрения на платформе NX.

- Комплект 1MP*4 Quadrascopic: четыре монохромные камеры OV9281 с глобальным затвором для Raspberry Pi и NVIDIA Jetson AGX Orin/Orin Nano/Orin NX
Подробнее о Camarray:
- Как создавалась плата Camarray HAT
4. Несколько USB-камер UVC

Самое удобное решение, им пользуются многие владельцы NX. Вы берёте несколько USB-камер и подключаете их к комплекту, а с USB-хабами можно добавить и дополнительные порты. Главное преимущество — ко всем камерам можно обращаться одновременно.


- Широкоугольная USB-камера Arducam 16MP, CMOS-сенсор IMX298 1/2.8″, веб-камера 4K с микрофоном
- Модуль USB-камеры 1080P день/ночь, 2 Мп, с автоматическим переключением ИК-фильтра и ИК-светодиодами, USB 2.0 (снят с производства)
Без ограничений, конечно, не обходится:
Синхронизация невозможна. Чтобы все модули камер работали действительно синхронно, нужны USB-камеры с поддержкой внешнего запуска (trigger).
Общая пропускная способность. Сколько бы ни было портов USB, все камеры делят общую полосу: 40 МБ/с для USB 2.0 и 5 Гбит/с для USB 3.0. Например, если подключить 10 одинаково настроенных камер USB 3.0, каждой достанется 0,5 Гбит/с.
Эти проблемы решают шилды USB-камер Arducam, которые работают с десятками сенсоров. С ними можно использовать всю полосу USB 3.0, чтобы подключить больше модулей, а внешний запуск обеспечивает синхронизацию.

- Шилд USB 3.0 для камер Arducam
Подробнее о USB-камерах:
- Шилды USB 3.0 для камер Arducam
- Модули камер Arducam USB 2.0 с поддержкой UVC
Что учесть при проектировании системы с несколькими камерами на NX
Пропускная способность против разрешения и частоты кадров. Из-за ограниченной пропускной способности чем больше камер, тем ниже разрешение и частота кадров у каждого модуля.
Нужна ли синхронизация. Если все модули камер должны снимать одновременно с точностью до миллисекунд, их нужно синхронизировать.
Какой интерфейс выбрать. MIPI CSI-2 даёт наибольшую пропускную способность и лучший контроль задержек, а с точки зрения бюджета его стоит рассматривать в первую очередь.
Кластер камер на Jetson Xavier NX

Недостатки смешанных интерфейсов мы уже разобрали. Как же построить на Xavier NX кластер камер, готовый к реальному применению?
Нужны всего две вещи: платы Camarray HAT и много камер MIPI.
Каждая плата Camarray HAT поддерживает 4 камеры. На официальном комплекте разработчика 2 разъёма MIPI CSI-2 (D-PHY); если подключить по плате Camarray HAT к каждому, получится 8 модулей.
А на несущей плате с большим числом линий MIPI можно без труда собрать кластер больше чем из 8 камер.


