Десяток человек однажды сидели вместе в баре. Общались, шутили и, вдруг, подумали: почему бы не сделать высокоточную и скоростную систему трекинга для мобильного VR.



На самом деле всё шло совсем не так. В 2010 году появилась компания Nettle. Мы стали разрабатывать голографические столы NettleBox. Основой для устройства была собственная система трекинга, отслеживающая положение пользователя. В планах команды было сделать девайс массовым. Для этого надо было создать условия для внешних контент студий, которые смогли бы перенести свои проекты на нашу платформу.

Но шло время и опыт показал, что дорогостоящее устройство ($28 000) сложно предоставить в качестве демо образца, который необходим партнерам, чтобы проверять контент. Нам нужно было облегчить доступ к технологии для небольших студий визуализации. В то время пришла мысль, что выходом станет недорогая версия системы трекинга для разработчика, создающая MotionParallax3D дисплей из того, что есть под рукой у многих, то есть 3D TV. Тогда и родилась концепция ALT (antilatency tracker) — гибридный оптико-инерциальный inside-out tracker, который должен был стать своеобразным DevKit’ом системы трекинга NettleBox. Размышляя над концептом устройства, мы пришли к выводу, что трекер это не только инструмент для решения нашей бизнес-задачи, но и полноценное пользовательское устройство для голографического гейминга. Это выглядело привлекательно: ААА проекты от третьего лица были заинтересованы в реализации своих продуктов в VR, а HMD изначально были задуманы для 1st-person games.

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

Отправной точкой были много желания и собственная камера для NettleBox с весьма достойными характеристиками.

Был выбран стандартный для стартапа путь. Печатать прототипы на 3D принтере, а в дальнейшем, после окончательной отладки дизайна, заказать пресс-форму. После некоторого времени обсуждения появился первый дизайн нашего прорывного устройства: гладкий, обтекаемый, похожий на космический корабль девайс. Вот такой.

И вот настал момент X. В офис приехала посылка с прототипом корпуса, напечатанным на 3D принтере.
Сладкие минуты распаковки, оторванные в предвкушении листы оберточной бумаги, обрывки скотча, летящие в рапиде по офису… И вот впервые наш венец творения, опускается в ладони к команде.
Отвратительная ересь! Единогласно решаем мы.

Ребристая поверхность напечатанной детали была ожидаемым явлением, но точность размеров оставляла желать лучшего, а напечатать резьбу М12х0.5 вообще оказалось нереальным. Пришлось долго дорабатывать деталь, чтобы просто вставить в неё электронику и оптику. Плюс мягкий пластик не позволял точно удерживать объектив относительно матрицы; в нашем случае смещение на несколько микрон уже было недопустимо — приходилось заново калибровать устройство. Стало ясно, что 3D печати нам не хватит даже для прототипирования. Технологию нужно было менять.

Кроме того, было много вопросов и к дизайну. Пытаясь разместить внутри обтекаемого корпуса неправильной формы относительно прямоугольную электронику, мы получали много пустот. Из-за этого при малом объёме комплектующих внешне девайс был больше, чем мог бы быть.

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

Параллельно модернизировалась и уменьшалась электроника. В первом корпусе можно было разместить аккумулятор только на 100 mАh, этого казалось мало. Уменьшали электронику мы с применением даже самых упоротых идей, вроде размещения одной из плат по диагонали корпуса.



В процессе работы была обнаружена интересная для производства корпусов электроники технология — экструдирование алюминия. По большей части она используется для производства алюминиевых труб. Мы решили, что после получения профиля нужной формы нам останется лишь отфрезеровать отверстия и распилить его. Дело в том, что длинный тонкий корпус крайне неподходящий объект для фрезеровки, поэтому, на заводе была заказана матрица для производства необходимого алюминиевого профиля, размерами 16х16мм и толщиной стенки в 1мм, к которой даже прилагались демонстрационные 8 метров профиля. Минимальной партии хватило бы на начало строительства небоскрёба или более чем на 55 000 корпусов, каждый из которых обошёлся бы в шесть с половиной центов.



Эврика! — в голову пришла следующая идея дизайна и мы не стали делать заказ, иначе новой темой для ресёрча стал бы сбыт пятисот килограмм алюминия. Несмотря на то, что мы отказались от решения задачи таким способом — данная технология является очень жизнеспособной в производстве hardware, поэтому расскажем о ней подробнее в одной из следующих статей.

Первые работающие устройства собрали, используя те 8 метров профиля, которые пришли с матрицей. Девайс вышел компактным, удобным и очень похожим на то, чего мы хотели достичь. Это позволило нам примерить на себя роль игрока. Из-за увеличившегося объёма батареи гаджет весил 34 грамма, что вызвало споры в команде. Не слишком ли тяжёлое устройство и не предпочтёт ли пользователь проводное устройство вдвое меньшего веса.

Дело в том, что время игровой сессии (Вспоминаем о том, что мы грезим концепцией голографического гейминга) — 3 часа, а то и более, при этом время жизни батарейки — не более двух. В этот момент пришла ТА САМАЯ идея: разделить девайс пополам!


Стремящийся к бесконечности перфекционизм нашего технического директора(*irony*) и здравый смысл помогли избавиться от контроллера, размещённого по диагонали и упихнуть электронику в 1 квадратный сантиметр платы. Ради этого был пересмотрен подход к процессу обработки изображения — мощный контроллер мы разменяли на контроллер поменьше плюс FPGA. Вот, что мы получили на выходе.



В передней части устройства находится железо: оптика, гироскоп, акселерометр, «вычислительные мощности», радио связь и управление питанием. Теперь 60% объема в основном модуле устройства занимала оптика.

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

Другая часть может стать чем угодно!

Например, это модуль с батареей или micro-usb адаптер. Это решило нашу «проблему» с проводным/беспроводным устройством. Оно стало одновременно и тем и другим. Мы решили задачу с зарядкой аккумулятора. Теперь, пока одна батарейка разряжается в устройстве — другая заряжается в заряднике. И нужно всего 4 секунды, чтобы поменять батарейки местами. Бонусом к решению наших текущих задач стало то, что такой подход сделал наше устройство трекером общего назначения. Задней частью девайса мог стать, например, квадрокоптер, что позволило бы повторять точное перемещение при видеосъёмке.

По новой концепции две половины устройства крепились друг к другу при помощи силы.



Одновременно с тем, как к нам пришла эта мысль в мире набирал критическую массу тренд виртуальной реальности. Все как сумасшедшие пытались причислить свои компании к лику адептов VR. Крупные корпорации ставили менеджерам в KPI новые непонятные задания, пользователи читали о невероятных успехах oculus и htc, google подарил миру cardboard, а samsung стал в бандле с флагманскими моделями смартфонов давать GearVR. И вот в этот самый момент мы поняли, что у нас в руках есть решение, которое достанет пыльный GearVR с полки. Оставалось только сделать для него заднюю платформу и портировать софт под андроид.

Что у нас есть сегодня:

Гибридный оптико-инерциальный трекер, который ориентируется по лентам с инфракрасными маркерами. Время инсталляции такой системы трекинга, при условии установленного на смартфон софта, не больше минуты. В отличие от привычных систем трекинга, где для увеличения площади нужно добавлять камеры — в inside-out подходе нужно только добавить новые линейки маркеров, что выходит сильно дешевле. По одним и тем же лентам ориентируются сразу несколько девайсов, что открывает многопользовательские сценарии. Ещё у линейки очень яркие светодиоды, поэтому трекер может работать на улице даже под прямым солнцем. Ну и приятной плюшкой станет наличие гейм-контроллеров, которые могут быть и пистолетом, и ракеткой для тенниса.



Эти две с небольшим страницы текста — на самом деле два года R&D.

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



Да пребудет с вами магнитик!
Поделиться с друзьями
-->

Комментарии (18)


  1. AllexIn
    23.01.2017 13:35

    Как эта штука поведет себя в движущемся автомобиле?


    1. PetrSevostianov
      23.01.2017 14:39

      Если автомобиль движется прямолинейно и равномерно, то все будет ок) Трекинг основывается на допущении, что окружение неподвижно. При ускорении окружения система будет трактовать рассогласование между инерциальными и оптическими данными как накопившуюся ошибку, и пытаться компенсировать ее изменением скорости и позиции/поворота. Таким образом во время ускорения автомобиля трекинг покажет неправильную скорость и позицию. Через 2 секунды после окончания ускорения, результат снова придет в норму.


      1. AllexIn
        23.01.2017 14:42

        Печально. :(
        Я давно хочу замутить вождение на площадке в вироуальном окружении.
        Но две проблемы(кроме денег) не дают реализовать:
        1) отсутствие трэкера работающего в условиях неравномерного движения
        2) лаг картинки не дающий нормально реагировать на движение

        Со сторым потихоньку борюсь своими силами. А вот первое пока не решено. Делать свой трэкер не хочется. а существующие не хотят работать в нужных условиях.


        1. PetrSevostianov
          23.01.2017 14:55

          В теории можно отдельно трекать автомобиль, и отдельно то, что внутри.


          1. AllexIn
            23.01.2017 14:58

            То есть трэкам глобально машину, трэкаем глобально шлем?
            Этот вариант идеальный, но тогда маркеры внутри кузова, которые позволили бы увеличить точность и отзывчивость трэкера шлема работать не будут.


            1. QDeathNick
              23.01.2017 15:13

              Шлем можно и локально, относительно автомобиля трекать.
              Но конечно хотелось бы глобальный трекер шлема, чтобы и на велике можно было покататься и побегать. И желательно чтобы без маркеров.


              1. AllexIn
                23.01.2017 15:15

                Хочется то много чего. :)
                Но можется пока не очень.
                Шлем локально как трэкать? По маркерам только. Потому что гироскопы и акселерометры с ума сходят. А я толковых решений с трэкингом чисто по маркерам не знаю. :(
                Хоть самому делай, на базе кинекта какого нибудь.


              1. PetrSevostianov
                23.01.2017 15:33

                С глобальным трекингом как раз все отлично. Покататься на велике и побегать — это как раз про Alt. В первых версиях у нас будет поддержка паттерна из 4х лент. Они должны будут распологаться по квадрату, ограничивая зону трекинга. Размер зоны до 10x10 метров. В дальнейщем будем делать поддержку более сложных композиций из лент, которые позволят застелить лентами очень большие площади.


                1. QDeathNick
                  23.01.2017 16:30

                  Ну я не про то. С лентами то конечно проще и пока качественней, но хочется свободы перемещения.
                  Мы ещё лет пять назад привязывали стереокамеру к стойке на спине и в очки транслировали картинку себя же от третьего лица, интересные ощущения, особенно на велосипеде.
                  Осталось дополнить это трекингом шлема и заставить крутится стереокамеру над тобой и будет интересный атракцион. А уж если качественно распознавать картинку и наложить AR на окружающий мир...


  1. skssxf
    23.01.2017 21:31

    Не окажется ли фиксация слабым местом? Если чиркнуть по одежде во время игры, например, это может привести к отсоединению?


    1. PetrSevostianov
      23.01.2017 22:34

      Тоже думали над этим. Скорее всего в финальной версии контроллера Alt будет вставляться в продолговатый канал с прорезями для пальцев по бокам (для извлечения устройства) Это точно удержит устройство при поперечном воздействии.


  1. insekt
    24.01.2017 08:36

    Какую ПЛИС используете?


    1. covsh
      24.01.2017 11:30

      Используем Lattice MachXO3, корпус 36-ball WLCSP (2.5 x 2.5 mm)


      1. insekt
        24.01.2017 13:06

        Как у них со средой разработки? До это был опыт разработки для xilinx/altera?


        1. covsh
          24.01.2017 16:34

          Опыт работы с altera около 5 лет.
          Среда неплоха, но до уровня Quartus ей конечно далеко. IDE слабовата, подсветка синтаксиса и навигация почти нулевая. Если свой аналог SignalTab — Reveal Analyzer. Можно собрать SoC c 8 или 32 битным ядром. Есть несколько десятков IP ядер в комплекте.

          Несмотря ни на что среда оставляет неплохое впечатление. Радует обилие документации и политика лицензирования (если вы работает с семейством MachXO то все вообще бесплатно).

          Так же Lattice предоставляет много исходников для конфигурации плис через MCU. Например у нас используется дешевая однократно программируемая плис. Естественно через JTAG ее можно переконфигурировать бесчисленное число раз, что мы собственно и делаем. Прошивка хранится во флеше контроллера и MCU при старте конфигурирует ПЛИС.


        1. covsh
          24.01.2017 16:40

          Добавлю, что не смотря на все «но», мне латтисе понравился. Начал присматриваться к их продукции для следующих разработок


  1. daserge
    30.01.2017 20:06

    Когда планируете выпустить систему для VR?
    Можете сравнить ALT с NOLO VR?


    1. antilatency
      31.01.2017 16:31

      Сейчас идет процесс интеграции системы трекинга с GearVR. Как только этот процесс завершится — мы обязательно расскажем об этом. Чтобы узнать об этом одним из первых — можно подписаться на ранний доступ на нашем сайте.
      Что же касается NOLO VR — само устройство мы не тестили, но по заявленным на их сайте характеристикам можем сказать, что наш девайс будет работать лучше. Как окажется на самом деле можно будет понять только в полевых испытаниях.