Обычное дело: мы используем cookie. Здесь можно узнать зачем
Хорошо

Разработка прошивки для очков дополненной реальности

Заказчику требовалась помощь в завершении проекта очков виртуальной реальности. Поскольку его собственная команда была занята другим срочным проектом, он обратился к КЕДР Solutions. Мы доработали прошивку устройства: написали драйверы для управления акселерометром, гироскопом и дисплеями. Команда смогла добиться хорошего быстродействия устройства.
Технологии виртуальной и дополненной реальности стремительно трансформируют не только игровую индустрию, но и профессиональные сферы – от медицины до аэрокосмических систем. Эти инструменты позволяют визуализировать сложные данные в реальном времени, моделировать сценарии и взаимодействовать с цифровыми объектами в физическом пространстве.

Разработка AR-очков требует нестандартных инженерных решений. Здесь важна синхронизация с аппаратными компонентами и адаптация под конкретные задачи. Именно такие проекты, сочетающие инновации в программировании, оптике и микроэлектронике, задают новые стандарты для всей отрасли. Они демонстрируют, как VR/AR-технологии выходят за рамки потребительского сегмента и решают глобальные вызовы.

Запрос

В КЕДР Solutions обратилась зарубежная компания, проектирующая электронику для аэрокосмической отрасли, оптические системы, а также решения виртуальной и дополненной реальности. Клиент работал над новой моделью смарт-очков на базе Android и спроектировал аппаратное обеспечение. Однако ему не хватало компетенций для разработки программного обеспечения, поэтому к проекту присоединилась наша команда.

Перед КЕДР Solutions были поставлены следующие задачи:
  • Разработать драйвер для акселерометра и гироскопа;
  • Разработать видео-драйвер для управления дисплеями очков.

К проекту выдвигались следующие требования:
  • Поддержка 8-битного режима в градациях серого;
  • Настройка контрастности изображения в режиме реального времени;
  • Поддержка калибровочных таблиц для корректировки яркости;
  • Поддержка таблиц для переназначения координат пикселей;
  • Поддержка 4 экранов одновременно.

Решение

Мы разработали драйвер для акселерометра и гироскопа, который поддерживает передачу данных по протоколу I2C.

Команда заказчика применила в проекте стандартный контроллер дисплея, совместимый с драйвером для одноплатных компьютеров Raspberry Pi. Мы использовали его в качестве основы для реализации собственного драйвера. Разработчики добавили возможность передавать данные на четыре экрана одновременно и настраивать контрастность изображения в диапазоне значений от 0 до 255 в режиме реального времени.

Поскольку операционные системы семейства Android не позволяют приложениям напрямую взаимодействовать с драйверами, от нас также требовалось разработать HAL-модуль. Hardware Abstraction Layer (т.е. слой аппаратных абстракций) – это программный модуль, который служит посредником между пользовательскими приложениями и драйвером. HAL предоставляет Android приложениям удобный интерфейс для работы с аппаратным обеспечением и транслирует их вызовы в команды, понятные драйверу, а тот уже напрямую управляет экраном.

В ходе работы мы собрали кастомный образ ОС на базе Android Open Source Project, включив в него разработанные драйвер и HAL-модуль.

Сложности проекта и их решение

Обход системы безопасности Linux

Предполагалось, что смарт-очки будут закрытым устройством: без доступа к прошивке, без возможности устанавливать на него приложения. Они предназначались для корпоративных клиентов, а не для массового рынка. Поэтому продвинутый функционал SELinux – встроенной системы безопасности, которая контролирует доступ приложений и модулей к ресурсам ОС Android – выглядел избыточным. Для ускорение и удешевления разработки мы его отключили.

8-битный режим и быстродействие

В устройстве использовались специально изготовленные дисплеи, по умолчанию работающие в режиме 24 бита на пиксель, но без цветовой маски. Чтобы картинка корректно отображалась на таких экранах, в драйвере потребовалось реализовать поддержку 8-битного режима в градациях серого.

Мы также уделили особое внимание оптимизации работы ПО, чтобы повысить быстродействие решения. Требования составляли не менее 10 fps, но команде удалось достичь средней частоты кадров в 20 fps при одновременной работе четырех дисплеев.

Таблицы для переназначения пикселей

Из-за особенностей оптической системы устройства потребовалось реализовать в драйвере поддержку таблиц для переназначения координат пикселей.

Выполненные работы

  • Разработка драйвера для акселерометра и гироскопа.
  • Разработка видео-драйвера.
  • Разработка HAL-модуля.
  • Модификация Android Open Source Project.

Использованные технологии

  • Драйверы написаны на языке C.
  • HAL-модуль разработан на языках C++ и Java.

Итоги

В результате работы над проектом заказчик смог завершить прошивку для очков дополненной реальности, отвечающую всем заявленным требованиям: поддержка нескольких режимов цветности, одновременная работа с четырьмя экранами, настройка контрастности в реальном времени и интеграция калибровочных таблиц.

Благодаря нашему участию в проекте клиент:
  • компенсировал нехватку экспертизы в нужной ему области и ускорил разработку устройства на несколько месяцев;
  • получил надежное ПО, полностью совместимое с аппаратной платформой и особенностями Android, что повысило стабильность работы устройства;
  • смог превысить ожидаемые показатели быстродействия: 20 fps вместо требуемых 10 fps.

Компания КЕДР Solutions помогла клиенту ускорить разработку нового устройства, а команда смогла поработать над актуальной и интересной технологией. Полученное решение закладывает основу для дальнейшего развития продуктов заказчика в сфере высокотехнологичной электроники.