Нейросеть на полётном контроллере: что реально считается на борту
Модель в прошивке контроллера и модель на бортовом вычислителе — задачи разного масштаба, и путать их дорого.
Два разных уровня
Первый — модель прямо в прошивке полётного контроллера. В PX4 1.17 появился экспериментальный режим: в прошивку встроена библиотека TensorFlow Lite Micro, и обученную вне аппарата сеть — например, обучением с подкреплением в симуляторе Aerial Gym — можно загрузить вместо штатного регулятора мультиротора. Такая сеть маленькая и работает в контуре управления: она управляет, а не распознаёт.
Второй — распознавание на бортовом вычислителе: детекция объектов, сопровождение, навигация по изображению. Это отдельный модуль с нейроускорителем, свой поток данных с камеры и свой тепловой бюджет.
Как оценивать производительность
Заявленные операции в секунду снимаются на квантованных сетях в идеальных условиях. Практический ориентир другой: какой формат моделей поддерживает ускоритель, есть ли аппаратный видеокодек для разбора потока и что происходит с частотами под нагрузкой в закрытом корпусе.
Считать надо задержку всего тракта — от кадра камеры до решения, а не только время работы сети. Разбор потока на процессоре общего назначения при наличии аппаратного кодека — самая частая потеря времени в таких сборках.
И трезвая оценка задачи: управление в контуре — это про контроллер, распознавание — про вычислитель. Попытка уместить второе в первое заканчивается либо срывом частоты управления, либо отказом.
Что считают на борту, а что на земле
Разделение проходит по задержке. На борту держат то, что обязано отработать без канала связи и быстрее человека; всё остальное дешевле и точнее посчитать на земле.
- На борту: удержание объекта в кадре, обход препятствий, посадка по метке, отбраковка кадров съёмки. Задержка — десятки миллисекунд, модель ужата под целочисленные вычисления.
- На земле: разбор материала съёмки, классификация, построение карт, обучение и переобучение моделей. Здесь не жаль ни времени, ни точности.
- Спорная середина: детекция объектов на видео. На борту она нужна, если по её результату аппарат немедленно меняет поведение; если результат уходит оператору — канала обычно достаточно.
Сколько считают бортовые вычислители каталога
Разброс между вычислителями, которые реально ставят на борт, — больше чем на порядок и по производительности, и по потреблению. Отдельный ускоритель M.2 добавляет нейросетевую часть к любому одноплатному компьютеру с PCIe за 1,5–3 Вт; модуль Jetson даёт и ускоритель, и процессор, и видеокодеки, но в бюджете питания и тепла это уже 7–40 Вт.
| Вычислитель | Производительность | Потребление | Подключение |
|---|---|---|---|
| Hailo-8L M.2 | 13 TOPS | 1,5 Вт (чип) | PCIe Gen3 ×2 |
| Hailo-8 M.2 | 26 TOPS | 2,5 Вт (чип) | PCIe Gen3 ×4 |
| Radxa AICore DX-M1 | 25 TOPS | типично 3 Вт | PCIe Gen3 ×4 |
| Radxa ROCK 5A (RK3588S) | NPU 6 TOPS | — | одноплатный компьютер |
| Jetson Orin Nano 8 ГБ | 40 TOPS, в режиме SUPER 67 | 7–15 Вт | модуль SO-DIMM |
| Jetson Orin NX 16 ГБ | 100 TOPS, в режиме SUPER 157 | 10–40 Вт | модуль SO-DIMM |
По карточкам каталога. TOPS указаны при разной точности и для разрежённых сетей, поэтому сравнивают их условно; у Hailo потребление указано для чипа, у Jetson — для модуля целиком в заданном режиме питания.
Три числа вместо одного
При подборе бортового вычислителя смотрят не на пиковую производительность, а на три вещи сразу: поддерживаемые форматы моделей (целочисленные вычисления против плавающей точки решают, влезет ли сеть в память), наличие аппаратного видеокодека (без него декодирование потока съедает процессор целиком) и тепловой пакет в реальном корпусе.
Последнее проверяется только испытанием: модуль, выдающий паспортные числа на открытом стенде, в закрытом корпусе аппарата сбрасывает частоты через несколько минут. Разница между стендом и полётом здесь обычно больше, чем разница между соседними моделями вычислителей.
Источники
Другие новости
-
Pegasus пролетел почти 2 часа на литий-серной батарее: что подтверждено, а что посчитано
30 сентября австралийская Li-S Energy сообщила, что двухмоторный беспилотник Pegasus с размахом крыла 5 м пролетел почти 2 ч и более 75 км на одном литий-серном пакете и сел с запасом заряда. Главная цифра релиза — на 80 % больше дальности и времени полёта, чем дал бы LiPo-пакет при той же массе ячеек, — получена расчётом. Разбираем, что в релизе измерено, что посчитано и чего не хватает, чтобы судить о литий-серной химии для БПЛА.
-
ArduPilot 4.7.2 beta1: семь новых плат, IMU ADIS16607 и LSM6DSV — что проверить перед покупкой контроллера
1 октября ArduPilot выпустил первую бету 4.7.2 для Copter, Plane, Rover, Sub и Tracker. Это сервисный выпуск, но в нём есть то, что касается выбора железа: поддержка новых плат, включая CUAV X25 MEGA, драйвер промышленного IMU ADIS16607, датчики семейства LSM6DSV на Kakute H7 и Pixhawk 6X и исправления барометров.
-
Septentrio mosaic-G5: четырёхчастотный RTK-приёмник на 2,2 г получил готовые платы от двенадцати производителей
1 октября Septentrio расширила экосистему вокруг модуля mosaic-G5: к нему вышли платы двенадцати партнёров, включая Holybro, ARK Electronics, CUAV и 3DR, и четыре открытых референс-дизайна. Сам модуль — четырёхчастотный RTK-приёмник размером 22,8 × 16,4 мм, который весит 2,2 г и потребляет 0,44 Вт.