VicoVR — тонкости разработки российского контроллера для мобильной виртуальной реальности

Компания 3DiVi недавно представила свой проект VicoVR на краудфандинговой площадке IndieGoGo, где планирует собрать $75 000.


На мои вопросы отвечал технический директор компании 3DiVi, Андрей Валик.
343b8046bdeb48469fcf7eb231ab48de.png

VicoVR — это сенсор для мобильной виртуальной реальности. Можно сказать, что это 3D сенсор со встроенной обработкой карты глубины, который передает уже готовые данные по Bluetooth в смартфон или любое другое устройство, тем самым перенося ваше тело в виртуальную реальность.

Расскажите подробнее о продукте


В hardware-части сенсор состоит из 3D сенсора (мы используем OEM-модуль Orbbec) и контроллера для обработки карты глубины, получаемой с сенсора, и передачи данных на смартфон.

ПО состоит из двух частей:
firmware, которая работает на контроллере сенсора. Здесь основная ценность — ПО, которое содержит наше middleware по обработке карты глубины, выделению сегментов людей, дальнейшее выделение скелетов и распознавание жестов. Разработкой middleware мы занимаемся уже больше четырех лет.

Клиентская часть, которая работает на смартфоне, фактически принимает данные и передает в верхнее приложение.

Таким образом, мы убрали тяжеловесную обработку карты глубины из смартфона, освободив все его ресурсы для работы с VR. Мы много работали и продолжаем работать над уменьшением задержки при обработке и передаче данных. Большая работа проделана по оптимизации и компрессии данных при передаче по Bluetooth.

Какие цели ставили перед собой, запуская краудфандинговую кампанию?


Мы ставили перед собой 2 цели:

  • прощупать рынок и выяснить заинтересованность людей в подобном решении для Mobile VR.
  • набрать пред-заказы и собрать средства для запуска производства сенсоров.

04d4bbd1ef5a47a2960c166370572b58.png

В чем отличие от Microsoft Kinect?


Физический принцип работы сенсора тот же самый, но при этом вся обработка карты глубины перенесена в сам сенсор. Таким образом, мы освобождаем хост-устройство от обработок карты глубины и распознавания жестов, оставляя все ресурсы для конечного приложения. Кроме этого у нас беспроводной интерфейс для связи с хост-устройством.

Также мы делали упор на оптимизацию нашего middleware для ARM-платформ, которые более энергоэффективны, чем десктопные решения, дешевле и компактнее, что позволяет нам обрабатывать данные в реалтайме на встроенном контроллере. Более того, Microsoft не позиционирует Kinect как сенсор для VR-приложений.

А почему решили сконцентрироваться на мобильной виртуальной реальности?


Мы видим будущее в мобильной виртуальной реальности, а не в десктопных VR-решениях.

Преимущества платформы мобильного VR перед тяжеловесными десктопными VR-решениями следующие:

  • дешевизна
  • отсутствие проводов
  • постоянное обновление смартфонов и постепенное приближение их возможностей к десктопным решениям
  • увеличение доли рынка мобильных игровых приложений

59275a388828449da2932a18083e9e93.jpg

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

Всю разработку сами вели или обращались к сторонним компаниям?


Дизайн корпуса сенсора для нас разработала компания Innozen Design, а остальное все сами.
По железу мы получили поддержку от Samsung — их заинтересовал наш проект и в итоге мы сделали контроллер на процессоре Exynos.

21e2a8597e664ccdb6c7c7e882f55605.jpg

Производство и сборка где будут происходить?


Производство и сборка будут в Китае и Тайване. Финальная сборка, тестирование и упаковка будут проходить в компании Foxconn, в Тайване. Данная компания консолидирует у себя производство большинства 3D сенсоров, присутствующих на рынке. Для начинающих проектов, подобных нашему, первые пробные партии они производят в Тайване на головном предприятии, затем по мере увеличения объема производства переводят его в другие страны.
Печатные платы производятся, монтируются и тестируются тоже в Тайване у партнеров Foxconn. Корпусные детали производятся в Китае.

Расскажите про первые прототипы


Начинали мы с прототипов с использованием сенсоров Asus Xtion и отладочных плат Odroid U3, первая демонстрация была сделана на выставке MWC в марте 2015-го года. После этого мы начали разработку своего контроллера. В октябре 2015 запустили первую ревизию прототипа уже на нашем контроллере. Пока еще без корпуса, в виде отдельной платы

21491354cd494bb6a285b5fe64f45090.jpg

В декабре изготовили корпуса и вторую ревизию контроллера, собрали первый образец и демонстрировали его на CES 2016. В данный момент тестируется третья ревизия контроллера с сопроцессором для авторизации подключения к iOS, судя по всему это финальная ревизия, которая пойдет в массовое производство, если не возникнут проблемы с сертификациями по электромагнитной совместимости.

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

С какими сложностями сталкивались в процессе проектирования? Что претерпело значительные изменения?


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

Технологическая сложность платы обусловлена применяемыми компонентами — это микросхемы в BGA корпусе: PMIC с шагом выводов 0,4 мм и SoC (Samsung Exynos) с шагом 0,5 мм. Эти корпуса предполагают использование HDI (High Density Interconnection) PCB — печатных плат с высокой плотностью межсоединений.

В рамках этой технологии применяются «глухие» (blind) и «скрытые» (buried) переходные отверстия. Их особенность заключается в том, что они выполняются не сквозь всю печатную плату, а только на глубину нескольких слоев. «Глухие» отверстия связывают один из внешних слоев с внутренними (выполняются лазером), а «скрытые» — связывают топологию между внутренними слоями, выхода на внешние слои они не имеют (в зависимости от диаметра и глубины, выполняются либо лазером, либо традиционным сверлением).

Данные виды отверстий вводят ограничение на толщину диэлектриков — глубина отверстия не может превышать его диаметр. Толщина диэлектрика между слоями металлизации в свою очередь влияет на конфигурацию высокоскоростных трасс (в нашем случае это DDR3). При тонком диэлектрике эти трассы должны иметь малую ширину (в нашем случае до 79 мкм) для обеспечения требуемого импеданса. Также малая ширина проводников требуется для вывода связей между контактными площадками Exynos — у нас это 65 мкм. Зазоры между элементами топологии в зоне трассировки Exynos и оперативной памяти самые жесткие и составляют до 65 мкм.

Для HDI-плат характерно введение нескольких циклов металлизации отверстий, заполнение полостей микроотверстий (для выполнения т.н. stacked via — составные переходные отверстия). Все это, в совокупности с малыми размерами топологии, требует более жестких допусков на взаимное расположение слоев, процессы прессования тонких диэлектрических материалов, процессы химического травления и осаждения меди на фольгу, нанесения финишного покрытия на контактные площадки.

Один из производителей в РФ сначала согласился выполнить необходимые работы, но потом стал выдвигать требования по переделке печатной платы для уменьшения сложности, мы сделали несколько итераций, которые заняли в итоге практически 2 месяца, и в результате решили обратиться напрямую к китайским производителям. Первый прототип платы был сделан в Китае, а затем Foxconn порекомендовал нам своего партнера для производства печатных плат в Тайване.

Монтаж печатных плат для прототипов и тестирования во время разработки мы делаем в Челябинске на Технокоме.

Затем были проблемы с покупкой комплектовки для прототипов. Например некоторые компоненты, которые были рекомендованы в девките от Самсунга, просто не поставляются в Россию.

Отдельная песня с растаможкой и комплектовкой. Например, партию сенсоров Orbbec мы практически месяц растаможивали.

Следующую подобную железную разработку мы скорее всего поедем делать в Китай, там можно сократить срок разработки примерно в два раза, несмотря на текущую «тенденцию» к импортозамещению и переводу производств в Россию.

В итоге сначала подняли U-Boot во внутренней памяти процессора, потом недели две заводили DDR, пока не наткнулись в описании в три с половиной тысячи страниц на легкое упоминание о специальных регистрах защиты памяти, и методом научного тыка нашли нужную конфигурацию :)
Дальше загрузили ядро и собрали минимальный дистрибутив на основе убунты.
Потом была долгая борьба с bluetooth-wifi-контроллером и его firmware.

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

26e2b2bded9e42e2aea5a734a841a9ff.jpg

Расскажите про начинку, какой процессор используете и т.д.?


  • Процессор используется Samsung Exynos HEXA 5260 SCP-вариант, то есть без установленной на нем DDR памяти.
  • RAM тоже Самсунг DDR3 dual channel 1GB
  • EMMC тоже Самсунг 4GB
  • Bluetooth-WiFi модуль AP6210.

Как дизайн разрабатывали?


За разработкой дизайна сначала обратились к одной российской компании, получили эскизы, и как-то не зацепило.
Потом нам порекомендовали компанию Innozen Design, получили от них эскизы трех вариантов и большинству понравилась концепция Power Crystal.

755751cd21e34819903b6f31c367ef94.png

Сейчас конкретно над чем работаете?


Сейчас работаем над оптимизацией софта. Чтобы максимально загрузить ресурсы процессора и сократить время обработки. Кроме этого постоянно ведутся работы по улучшению качества скелетизации.

Отдельного внимания заслуживает разработка приложений и подходов к управлению в виртуальной реальности. В данный момент разработано более 10-ти приложений под наш сенсор и мобильную VR, часть делаем сами, часть наши партнеры. Приходится искать удобные, интуитивно понятные и простые способы взаимодействия с VR.

Основная проблема, с которой сталкиваются пользователи — тошнота, сейчас часто можно встретить термин Virtual reality sickness. Происходит это из-за несогласованности перемещений в VR с перемещениями в реале, вернее даже не перемещений, а ускорений, которые действуют на вестибулярный аппарат человека.

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

Вращение головой. По нашему опыту, они должны отрабатываться быстро, с минимальной задержкой, что в принципе решается тем, что они обрабатываются в смартфоне на основании его датчиков или на основании датчиков шлема, например в GearVR. Еще уменьшить данную задержку позволит недавно анонсированная платформа Google Daydream. Именно эта задержка очень критично влияет на комфорт в VR, потому что тут всегда есть ускорения и без них не обойтись.

Линейные перемещения. Данные перемещения не сильно критичны при условии что зачастую ускорения либо отсутствуют, либо они согласованы с действиями человека. Есть два варианта избежать дискомфортных ощущений в VR по время линейных перемещений:
Исключение ускорений. Исключить ускорения возможно — например игры типа раннеров с перемещением в одном направлении с постоянной скоростью или просто игры на месте без перемещений, или использование телепортации для перемещений в VR.
Согласованность перемещений человека в реале и в VR. Если мозг человека получает от органов зрения и от вестибулярного аппарата противоречивую информацию, то возникает тошнота и дискомфортные ощущения. По нашему опыту, если перемещения в реальности (приходящие от вестибулярного аппарата) согласованы с перемещениями в VR (приходящие от органов зрения), то мозг легко компенсирует задержку между ними и неприятных ощущений не возникает. Таким образом, главное как можно качественнее передать перемещения из реального мира в виртуальный, пусть и с небольшой задержкой. И максимально исключить не прогнозируемые ускорения в VR.

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

Какие дальнейшие планы?


Ближайшие планы — набрать достаточное количество предзаказов на краудфандинговой кампании и запустить производство. До конца года все довольно плотно расписано

1. EVT (Engineering Validation Test) 03/2016 — 05/2016, мы уже в самом конце этой фазы.
— тестирование и коррекция PCB
— изготовление пресс-форм
— разработка стендов тестирования для производства
— сборка 15ти EVT-сэмплов для тестирования
— производство девкитов для разработчиков

2. DVT (Design Validation Test) 05/2016 — 07/2016
— коррекция PCB
— коррекция пресс-форм
— изготовление 20ти DTV-сэмплов
— начала процедур сертификации, FCC, CE, Laser

3. Product Validation Test 07/2016 — 09/2016
— сборка и тестирование 100 PVT-сэмплов
— завершение сертификации, FCC, CE, Laser

4. MP — 11/2016, the first volume 5000pcs.
запуск производства первой партии размером 5000 штук

1f298cb483944288a2f477574682dc5d.jpg

В конце этого года уже необходимо будет начинать разработку следующего поколения контроллера с использованием нового процессора и нового сенсора. У нас есть предложения от компании Asus — использовать их новый модуль 3D сенсора в будущем, и Samsung выдвинул предложения по новым линейкам процессоров.Также мы с нетерпением ждем выхода платформы Google Daydream для портирования нашего SDK и приложений.

Страница проекта на Indiegogo.

© Geektimes