Эксперименты с Head Tracker-ами

(Это, скорее, не статья, а так - заметки)

Коротая долгие зимние вечера и короткие зимние выходные дни в виртуальных полетах на симуляторах Condor и MS Flight Simulator, я вдруг внезапно обзавелся навязчивой идеей, что мне совершенно необходим Head Tracker и только с ним мне будет Щастье на большую букву "Щ". (Как назвать Head Tracker по-русски, я не знаю, да и суть от названия не меняется - устройство должно отслеживать положение головы и управлять чем-либо, например, обзором (POV) в симуляторах).

 

Способов построения Head Tracker-ов имеется великое множество, отличаются они принципом работы и применяемыми датчиками. У меня имелась возможность поэкспериментировать с датчиками ускорения, угловой скорости и датчиками магнитного поля. Кроме того, мне показались достойными внимания устройства FreeTrack, HeadJoy, а также программы faceAPI. (И еще вот в последний момент наткнулся на CamSpace). Вариант FaceAPI представлялся наилучшим решением с точки зрения удобства использования, т.к. не нуждался в никаких дополнительных примочках на голове и проводах к ним. Но это ПО, как и FreeTrack, требовало наличия WEB-камеры, которой в моем хозяйстве в тот момент почему-то не оказалось. Поэтому решено было начать с пытки датчиков.

Первыми в очереди стояли датчики ускорения, как наиболее простой и дешевый вариант. С их помощью я собирался измерять углы наклона головы, используя гравитационное поле нашей планеты и общеизвестные наработки товарища сэра Ньютона. Надо сказать, что некоторое время назад, для экспериментов с инерциальными системами стабилизации нами были заказаны как сэмплы трехосевые акселерометры MMA7261QR фирмы Freescale (Motorola). Поскольку упомянутая система стабилизации (как и остальные железные проекты) уныло ждала подключения к процессу Самого Главного По Железу Александра, то датчики банально пылились. И вот покой одного из них был грубо прерван мною следующим образом:

Полученное безобразие было подключено к какому-то старому макету с программным USB по мотивам Cesko и Milasauskas и прицеплено зажимом "крокодил" к зрительному прибору под названием очки:

Общую схему (безобразия и макета с USB) можно увидеть ниже:

Прошивка из проекта USB адаптер для передатчика была модифицирована под новую задачу, причем я поленился убрать из дескриптора HID ненужные оси и кнопки и они, нерабочие, продолжают сиротливо ютиться в HID input reports. А вот, собственно, и сама прошивка.

Предвкушая Щастье с большой буквы "Щ", я воткнул разъем макета в USB, водрузил на голову зрительный прибор с прицепленным безобразием и запустил любимый Кондор. Сразу же стало понятно, что первое Щастье оказалось совсем не с большой буквы "Щ", и даже не с маленькой буквы "с". Картинка ощутимо подергивалась и каким-то странным образом норовила направить мое зрение и сознание в немного разные стороны. В качестве работы над ошибками в схему были добавлены конденсаторы 4.7 мкФ параллельно С8 и С9 и кнопка S1, предназначенная для первоначальной "калибровки", а именно - "центрирования" взгляда при комфортном положении головы. После этого работа устройства стала формально именно такой, какой и ожидалась. На коротком видеоролике можно увидеть, как это примерно выглядит: ролик в формате avi (3 МБайт).

Положительные результаты:

1. Head Tracker на акселерометрах, в-принципе, работает. Управление "по тангажу" вполне приемлемое.

2. Датчик не дрейфует, имеет малые размеры и вес.

3. Не требуется наличие WEB-камеры

4. Работа устройства не зависит от расстояния и положения головы относительно экрана (камеры), а также условий освещенности.

5. Высокая скорость отработки.

Отрицательные результаты:

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

2. Управление "по курсу" осуществляется не поворотом, а наклоном головы влево-вправо, что не естественно интуитивно. Вероятно, к этому можно привыкнуть, но не очень хочется. Непреодолимый недостаток системы на акселерометрах.

3. Резкие перемещения головы влево-вправо и вперед-назад влияют на поведение системы, т.к. датчики не могут их отличить от наклонов. Непреодолимый недостаток системы на акселерометрах, впрочем, не очень мешающий.

4. Малое число рабочих степеней свободы - только 2.

5. Необходимость держать голову преимущественно в одном положении. Очевидный общий непреодолимый недостаток всех Head Tracker-ов, о котором я раньше как-то не задумывался.

Несмотря на равный счет по очкам, общее субъективное впечатление пока не слишком благоприятное, надо сравнивать с другими вариантами. Поэтому продолжение следует...

 

Интересное видео по теме: http://www.youtube.com/watch?v=_e5KpKyAweE

© Вадим Кушнир (aka Vad64)

На главную страницу

Hosted by uCoz