Эксперименты
с 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)