Pull to refresh

AR-Go: носимый компьютер своими руками

DIY
С 2007 года я работаю над созданием странного девайса — носимого компьютера (wearable computer). Поначалу казалось, ничего сложного: ноутбук в рюкзак, дисплей-очки на нос — и вот у тебя какой-никакой, а вполне носимый компьютер, позволяющий развлекаться с дополненной реальностью и прочими любопытными фичами. Главное подобрать подходящее железо — и в путь! Но все оказалось не так-то просто.

Картинки есть (и много), но они долго грузятся (хабра-эффект?) перезаливаю их на habrastorage.org…

Одним из основных «камней преткновения» стал выбор наголовного дисплея. К сожалению, в тот момент мне не удалось найти подходящий вариант — все, находившиеся в доступности видеоочки блокировали обзор, имели невысокое разрешение и размытую, искаженную картинку — видео можно смотреть, а вот работать с текстом — увы: ru-wearable.livejournal.com/988.html

Гуглились и интересные модели, но все они были на мой взгляд неразумно дороги, продавались за кордоном, а пользоваться PayPal и Shipito я тогда не умела.


Teleglass T3-F

Teleglass T3-A


Teleglass T4-N


Наголовные дисплеи с полупрозрачными стеклами (seeing-through), позволявшие накладывать картинку на реальный мир, продавались исключительно за рубежом и имели цену, сравнимую со стоимостью автомобиля.

А уж какое количество отличнейших концептов попадалось в сети! Все они грозились «вот-вот появиться на рынке» — но проходили годы, а концепты так и не появлялись. Очень разочаровала меня фирма Lumus Opticals, представившая отличный концепт со впечатляющими фотографиями и видео, уверявшая, что прототип есть, работает и вот-вот появится на прилавках по демократичной цене. Годы шли, а Lumus продолжал кормить потенциальных покупателей «завтраками»…


В результате мне пришлось «раздвинуть границы» своего определения носимого компьютера (или сокращенно НК), допустив, что у него могут быть и иные пользовательские интерфейсы кроме наголовного дисплея (HMD, Head-Mounted Display) — например, аудиоинтерфейс (то есть обратная связь осуществляется через наушники) или интерфейс, где терминалом для управления НК служит смартфон.

На последнем варианте я и остановилась. Так появилась первая версия моего НК — ноутбук с лямками из стропы, который можно было насить как рюкзак + смартфон Nokia E61. Поиграться с дополненной реальностьтью на такой системе не удалось, зато я смогла вести полноценную разработку мобильных программ (J2ME) в дороге. На смартфоне я редактировала исходники. Потом «в один клик» отправляла сорцы по bluetooth на заплечный комп, где моя программа автоматом компилировала исходники и возвращала jar/jad на смартфон — где приложение и тестировалось.

Наконец-то мои усилия по созданию НК принесли хоть какую-то пользу! Я даже попробовала сделать что-то вроде пешеходного видеорегистратора, пишущего видео с внешней веб-камеры. Но все это было совсем не то, что мне хотелось. Найдя за $120 на eBay наголовный дисплей от носимого компьютера конца прошлого века, я решила рискнуть — и весной 2008 года купила его через интернет. Одноглазый наголовный зверь носил гордое имя Xybernaut Xyberview:



У этого дисплея оказался проприетарный разъем, несовместимый ни с VGA, ни с композитным видео. Пришлось отдать дисплей для небезвозмездной доработки знакомым умельцам, которые не спеша за полтора месяца «заточили» девайс под VGA. Правда, по мнению умельцев, девайсу потребовалось почему-то 2 источника питания — один для логики, второй для подсветки. Если один из источников был реализован в виде батарейного блока под 4 AA-аккумулятора, то второй должен был втыкаться в розетку 220В. Естественно, такой не-мобильный вариант меня не устраивал. Умельцы пообещали заменить гирлянду батареек и адаптер одним аккумуляторным блоком, но до Сайбернавта руки у них так и не дошли. В результате через год Xybernaut Xyberview вернулся ко мне все с той же гирляндой. Теперь этот наголовник лежит у меня, готовясь когда-нибудь стать донором неплохого Kopin'овского дисплея 640*480.

К тому времени мой НК был построен на миниатюрном нетбуке Eee 901, по сравнению с первой 12-дюймовой версией был вполне компактным и носился не за спиной, а элегантно помещался в дамскую сумочку. Но мне хотелось сделать системный блок НК поминиатюрнее. До этого я приглядывалась к таким девайсам на x86, как Aava Mobile, FitPC, EKing, Viliv, но купить не решалась. И тут знакомые моих знакомых предложили мне купить миниатюрный PC-совместимый комп iMpc за вполне приемлемые $300:


Покупки через интернет больше меня не пугали, и в январе 2010 я обзавелась новым наголовником. На этот раз выбор пал на вполне современную модель одного из лучших производителей — Vuzix Wrap 920:


К сожалению, Vuzix Wrap 920 нормально работал только с Windows, MasOS или iOS — девайс при первом подключении устанавливал на компьютер свои драйвера и активно взаимодействовал с ними. Можно его было подключить и к линуксу, но без драйверов нереально было не то что перейти в 3D-режим, но даже подрегулировать яркость — при выводе наэкранного меню наголовник «зависал», ожидая ответа от драйвера. Быстро хакнуть протокол девайса не удалось, времени на анализ протокола было жаль — и я продала наголовник. Тем более, что по квартире в нем еще можно было передвигаться, но о прогулках по улице не было и речи — вся верхняя половина поля зрения была наглухо перекрыта.

Моим третьим наголовником стал снятый с производства (но все еще продающийся на eBay) монокуляр Eyetop Centra.




И это оказалось самым удачным приобретением. Разрешение, конечно, невелико — 320*240, зато можно ходить по улице. Правда, подключить Eyetop Centra можно было только к источнику композитного сигнала, а у iMpc был только VGA. Купленный на DealXtreme за доллар (или три) переходник с VGA на RCA, но ни с одним из моих компов он не заработал. Пришлось покупать более дорогую штучку — AverMedia AverKey Lite.

В результате мой носимый компьютер превратился в гирлянду девайсов: iMpc -> AverKey Lite -> блок управления Eyetop Centra -> очки Eyetop Centra. Пришлось из картона и кожзаменителя конструировать корпус, в который упаковывался комп, преобразователь видеосигнала и блок наголовника:



Заодно я доукомплектовала iMpc модемом с голосовыми функциями — и НК стало можно пользоваться как телефоном. Расстраивало, что работал iMpc аккумулятора недолго — около часа. И сильно грелся. Впрочем, время работы можно было увеличить, подключив внешний аккумулятор AcmePower UC-5, но в результате размер и вес системы становился запредельным.


Через некоторое время периодически глючивший iMpc вообще перестал включаться — как выяснилось, в нем умер вентилятор. А вслед за кулером — выгорела видеоплата. Ребята, продавшие мне iMpc, месяц безуспешно пытались его чинить и в конце концов вернули деньги, удержав 10% за поюзанный вид девайса.

Возвращаться к кажущемуся теперь громоздким Eee 901 не хотелось — и передо мной стала проблема выбора новой платформы для носимого компьютера. Благо теперь у меня сформировался список критичных параметров:
— композитный видеовыход
— небольшие габариты
— несколько часов автономной работы
— отсутствие необходимости что-то прикручивать (например, к FitPC пришлось бы прикручивать аккумулятор)
— наличие телефонных и сетевых функций
— x86

В ноябре 2010 после долгих колебаний я решила отказаться от x86-й платформы и решила вместо ноутбука выбрать подходящий смартфон. Я лет 10 пользовалась нокиевскими мобильниками — так что над выбором производителя долго думать не пришлось. Тем более, что тогда это была еще та, неуэлопленная Nokia… Несколько раз я наведывалась в фирменный салон Nokia на Тверской, пробовала подключать наголовник к разным моделям телефонов. В итоге остановилась на 2 вариантах — Nokia N900 и Nokia N8. Первый — вроде бы не самая популярная, уже снятая с производства модель, будущее линейки — неясно. Второй — новый Symbian, с возможностью обновления ОС как на настоящем компьютере! Мне повезло, что у одного из моих коллег по работе был N900. Закидав человека вопросами, погоняв N900 в хвост и в гриву, я выбрала именно этот телефон. О чем ни разу не жалею. Тем более, что смарт оказался практически таким же универсальным и гибким, как комп. Мне удалось установить на него необходимые средства разработки — и нынешняя версия софта для НК писалась и компилировалась непосредственно на смартфоне — в основном в дороге между домом и офисом. Как и что устанавливать, можно прочесть здесь: telegamochka.livejournal.com/168424.html


Через пару месяцев после покупки телефон украли — обиднее всего была утрата исходников… Пришлось купить еще один N900. А после лыжных испытаний НК, когда переживаешь, вернется ли смарт живым и здоровым или же его поваляют в снегу, купила еще один. Про запас. И не зря — впоследствии второй телефон мне пригодился.

N900 оказался просто находкой! Linux на борту давал максимальную свободу. Многие из нас знакомы с «пакостями» мобильных производителей. То они не дают использовать флэшку телефона для записи mp3 или avi, то отказываются устанавливать java-программы по просоду или bluetooth — только через wap/gprs! То есть «могу — но не буду!» N900 начисто лишен подобного жлобства. Если его железо способно что-то сделать — вам скорее всего удастся найти способ это получить. К N900 по USB можно подключать практически что угодно — внешний DVD, клавиатуру, мышь, флэшки. Мне же требовалось подключить веб-камеру — и N900 позволил это сделать:
meegos.ru/forum/viewtopic.php?pid=66475#p66475
А еще мне удалось подключить к N900 робот-пылесос Roomba — но это совсем другая история :)

C подключенной по USB внешней веб-камерой аккумулятора N900 хватало на пару часов. Пришлось купить усиленный Mugen'овский аккумулятор, увеличивший время работы до вполне приемлемых (для прототипа) 4-5 часов. Без камеры время работы было вполне приемлемым — около суток (в зависимости от интенсивности использования смартфона).

Несмотря на то, что мне удалось получить с веб-камеры только видео 176x144 (320x240 уже начинала глючить, а бОльшие разрешения вместо картинки давали зеленый экран), видео даже в таком разрешении оказалось лучше, чем я ожидала.

Тест читабельности автомобильного номера
Поездка в автобусе

Однако, взять и сходу превратить N900 в носимый компьютер не удалось. Казалось бы, достаточно повесить N900 за ремешок на запястье, блок наголовника упаковать в какой-нибудь нашейный ксивник, воткнуть видеокабель очков в N900 — и все, но не тут-то было… Один раз я провела полчаса в такой конфигурации. Дико неудобно — и постоянно боишься, что жесткий видеокабель выломает гнездо смартфона. Пришлось вновь озадачиться созданием корпуса — но на этот раз я не возилась с картоном и кожзаменителем, а взяла готовую пластиковую коробку для радиодеталей. Пришлось проделать отверстия для проводов камеры и очков, выломать внутренние пластиковые перегородки, вставить новые из жесткого поролона, чтобы смартфон с блоком наголовника не болтались бы, а сидели как влитые. Заодно заказала пару кабелей — совсем короткий видеокабель вместо родного полутораметрового и провод взамен стандартного USB-переходника, не влезавшего в новый корпус.

Получившаяся система получила название AR-Go (ведь в ней можно будет гулять по дополненной реальности). По-моему, название удачное. И «аргонавт» — звучит выигрышнее, чем «виндузятник» или «линуксоид» :) На фото: слева корпус, в котором находятся «системный блок» AR-Go (смартфон Nokia N900, аккумуляторный блок наголовного дисплея и соединительные провода). Справа, сверху вниз: наголовная камера на базе Logitech Webcam C300, очки-дисплей Eyetop Centra, внешний пульт управления, сделанный на базе второго смартфона Nokia N900. В релизной версии в качестве пульта можно будет использовать дешевые телефоны с J2ME/Bluetooth, а также более удобные специально разработанные устройства.


Зимой 2010-2011 мы выезжали на «полевые испытания» с профессиональными биатлонистами, чтобы опробовать, будет ли удобен созданный нами прототип в качестве лыжного тренажера. Оказалось — вполне удобен и полезен!




Весной с окончанием лыжного сезона я продолжила испытания AR-Go на велосипеде. Чего не хватает велосипедисту во время поездки? Информации перед глазами — время, скорость, пульс. А если еще и карту добавить — вообще сказка. Можно, конечно пользоваться укрепленным на руле велокомпьютером. Но, бросая на него взгляд, отвлекаешься от дороги. Бросить взгляд еще можно, а вот всмотреться-вчитаться в карту — уже рискованно. Для начала я опробовала нужные мне возможности с помощью уже готовых программ. Записала видео с наголовной камеры, глядящей вперед (этакий видеорегистратор) и смотрящей назад (зеркало заднего вида). GPS-навигацию тестировала с помощью спортивного приложения eCoach. Оказалось, пользоваться всем этим — вполне удобно. Лично мне езда в очках Eyetop Centra комфортна. Широкие боковые дужки очков заслоняют боковой обзор — но при изготовлении своей версии наголовника мы это учтем и сделаем дужки или прозрачными, или с вырезом.

Для выступления на одном из летних стартап-пойнтов был подготовлен ролик. Каждый, надев очки носимого компьютера, мог увидеть, как выглядит «вживую» видео с камеры носимого компьютера, навигация:
Демо-ролик

Убедившись, что НК вполне может использоваться как спортивный компьютер, я приступила к написанию программы, которая превратила бы мою систему в носимый GPS-навигатор. Разработка велась на C++/Qt с использованием QtMobility. Правда, заставить работать bluetooth через QtMobility мне так и не удалось. Но у нас же линукс, верно? Поэтому синезубую часть удалось реализовать на BlueZ.

В конце концов, мне удалось сделать вполне работоспособный навигатор, еще не бета — но уже и не альфа. Программа умеет выводить карты (берутся из Google Maps, для минимизации трафика — кэшируются), позиционирует их по текущему положению, выводит время, текущую скорость, отрисовывает компас. Также навигатор умеет записывать текущий маршрут, сохранять его в файл, выводить на экран текущий маршрут и целевой маршрут, ведущий к нужной цели.

Сейчас интерфейс не назвать стильным — пока его не касалась рука дизайнера. Зернистость карты объясняется невысоким разрешением наголовного дисплея, используемого в прототипе — 320*240 — так что карту приходится масштабировать, чтобы названия улиц были читабельны. В релизной версии навигатора будет использоваться наголовный дисплей с разрешением 640*480 или выше.

Навигатор оказался вполне удобен — но не в виде носимого компьютера, а как обычное смартфонное приложение. Упаковов смартфон в корпус носимого компьютера, можно сесть на велосипед и ехать, время от времени сверяясь с висящей перед глазами картой. Но ни поменять масштаб, ни скроллировать, сидя на байке, не выйдет. Придется останавливаться, доставать смартфон из корпуса, возить пальцами по тачскрину — и, упаковав все обратно, можно продолжать поездку. Показать такое Стиву Манну — засмеет…

Я давно задумывалась, как организовать управление носимым компьютером. Пробовала построить «пальцевый» интерфейс (пока мой вариант годится лишь в качестве лабораторного образца):
Распозначание пальцев на AR-Go

Думала и над отдельным девайсом с bluetooth, парой кнопок и мини-джойстиком. Была мысль приспособить под дистанционный пульт носимого компьютера синезубую мышь. Но с моими кривыми руками все это оказалось запредельно сложно. Не помогло даже знакомство с Arduino. И тут я вспомнила про второй смартфон. Это, конечно, излишне мощный и дорогой вариант пульта — но зато написать его оказалось делом пары вечеров — 30 и 31 декабря. Теперь можно, не доставая смартфон из корпуса, управлять картой, переключать приложения и т.п. Главное, теперь я могу проработать и отладить протокол, прочувствовать юзабельность — и потом можно будет более конкретно сформулировать требования к релизной версии пульта.

Интерфейс беспроводного пульта:


Аргонавт в полной экипировке (наголовная камера, очки-дисплей, в сумке — носимый компьютер, в руках — пульт управления):


Итак, прототип носимой системы получен, его не стыдно показать. Можно было бы дополнить навигатор работой с камерой, медиаплеером и другими приятными штучками. Но, посоветовавшись со знакомыми, я решила переписать приложение под другую архитектуру, с возможностью подключения модулей-плагинов. Чтобы любой желающий смог дополнить AR-Go нужной ему функциональностью. Так что сейчас я понемногу переписываю софт. А параллельно — ищу единомышленников, которым было бы интересно присоединиться к разработке.

Ну и вместо эпилога. Я зарегистрировала свой проект в Lenovo Do Network. Буду благодарна, если вы проголосуете за AR-Go: donetwork.lenovo.com/ru/projects/view/id/2503#view-project. Ведь после переписывания софта впереди у нас уйма интересной работы:
— Создание собственного девайса (на базе Gumstix? Beagleboard? IGEP? Raspberry?), ибо ждать, что крупные производители продолжат линейку мобильников со всеми возможностями и свободой персонального компьютера — бессмысленно. Эра N900 закончилась, не успев начаться.
— Выпуск собственной версии очков-дисплеев — более удобной для пешеходов/велосипедистов/лыжников, с лучшим разрешением экрана, со встроенной камерой и процессором.
— Выпуск удобной мини-клавиатуры (концепт, который 1.5 года никак не могу реализовать, вобрал всебя лучшие черты аккордной клавиатуры и клавиатуры полноразмерной).

В одиночку с этим можно возиться еще годы и годы. И получить результат, когда «поезд уйдет».
Tags:
Hubs:
Total votes 179: ↑172 and ↓7 +165
Views 18K
Comments Comments 254