Welcome to Star Citizen - официальный сайт русскоязычного сообщества

Привет, пилот!

Тебя приветствует космическая станция русскоязычного сообщества Star Citizen. Здесь ты можешь найти ответы на все свои вопросы, ознакомиться с последними новостями игровой вселенной, узнать секреты из многочисленных гайдов и обзоров. Если же ты захочешь поблагодарить авторов, задать вопрос или высказать свое мнение, то тебе придется пройти процедуру регистрации, которая не отнимет у тебя много времени.

Инфо-бар TERRAтория

  • записи
    2
  • комментария
    24
  • просмотр
    59 921

Делаем Head Tracker своими руками (часть 2)

Nefigase

25 390 просмотров

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

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

"Маркер" я делаю трех точечный, для этого понадобится:

1) 3 диода инфракрасных (можно любых на самом деле, но инфракрасный человек не видит и поэтому он не отвлекает Вас, а обычный будет дико мешать... да и зрение сломаете из-за этого, т.к. будете коситься на свет как не крути). Я использую диоды SFH485P со сточенной головкой, т.к. это дает яркий свет со всех сторон (при повороте не тускнеет). Если Вы не смогли найти подобных, то круглую шляпку можно аккуратно сточить, получив все те же сточенные диоды.

2) Резистор 5.1Ohms 5% (питаться все это будет от USB у меня), но если у Вас другие диоды или источник питания будет иной, то посчитать и получить схему соединения можно тут: http://www.free-track.net/english/hardware/calcled/

3) Провода для соединения этого всего добра

4) Питание... я использую USB, поэтому взял провод 2 метра (169 руб) от USB->microUSB (он банально тоньше и легче), хотя кто-то возможно выберет батарейки

5) Паяльник и припой

6) Что-то для разнесения диодов на определенной расстояние друг от друга, а так же крепеж. Я использовал трубочку от воздушного шарика и какие-то колпачки от бытовой химии. Тут уже креативте сами :)

7) Драйвер типа "прямые руки" :)

2_5.jpg

Итак, поехали...

1) Для начала я нарисовал 1:1 схему расположения диодов (классическую). В дальнейшем советую увеличить расстояние между верхним и нижним диодами (относительно центрального) по вертикали, т.к. классическое показало себя не очень хорошо при наклоне вверх и вниз, а в программе потом эти расстояния можно отрегулировать будет. Например сделайте не 40 и 70, а 60 и 90... хотя нижний можно и не изменять, он вроде как нормально отрабатывает довольно.

2_1.gif

2) Далее я разместил на точках диоды (масштаб сделал 1:1) и нарисовал как должна проходить трубка и крепление, чтобы все было точно потом, а не придумывать по ходу пьесы. Это очень важно! Сначала подумайте, потом сделайте, иначе выйдет ерунда.

2_2.gif

3) Т.к. я использую для питания USB, т.е. 5V, то пришлось в цепь поставить резистор (ссылка на калькулятор была выше). Распайку USB привожу ниже... красный провод - плюс, черный - минус, остальные не нужны.

2_4.jpg

4) Проверяем, что все есть и на своих местах и ... и начинаем творить. Обращаю внимание, что у диода минус - это толстая пластинка, а плюс - потоньше. Если перепутаете, то просто не заработает, т.к. диод пропускает ток только в одну сторону. Сжечь не сожжете. Минус диода подключается к плюсу питания... т.е. ток идет как бы от плюса к минусу.

2_6.jpg

5) Резистор можно паять любой стороной, это не принципиально. Старайтесь делать крепления не тяжелыми (иначе голова устанет), но при этом не хлипкими... т.е. при повороте крепление должно жестко вставать, а не еще секунду "вибрировать".

У меня на фото цвета проводов не смотрите, они там намешаны (что было, то и использовал), т.е. красный местами минус, местами плюс... и т.д.

2_7.jpg

6) Для крепления диодов в трубке я использовал немного клея + термоусадочные трубки (последние не обязательно нужны... просто так эстетичнее и у меня они были :) ) Если обратите внимание, то диоды я нарочно немного по краям сместил, чтобы они смотрели вперед строго, как и центральный. Далее я залил все это дело клеем и скрепил крышки... получился бокс своеобразный.

2_8.jpg

7) Ну и в конце концов все это дело было установлено на наушники, а точнее прикреплено на двусторонний скотч... кто-то может будет использовать офисный зажим для бумаг для крепления на дужку наушников... кто-то еще что-то придумает.

Сразу обращаю внимание, что наверное потом переделаю на батарейки... лучше пусть будет 1-2 аккумулятора на 1.5 вольта, чем провод... мешает не сильно, но все же немного напрягает иногда.

2_9.jpg

Для проверки берем нашу камеру, запускаем в ней трансляцию видео (например через Скайп или еще какую-то тестовую программу из комплекта ПО к камере). Берем пульт от телевизора, направляем его на камеру и жмем кнопку любую... на изображении камеры Вы должны увидеть яркий свет от инфракрасного диода пульта во время нажатия. Если увидели, то все нормально, камера работает как надо. Теперь запускаем "маркер" и смотри, что его диоды точно так же светятся на камере.

ВНИМАНИЕ! Если камера используется PS3 Eye, то для ее работы смотрите инструкции далее!

Такс... с "маркером" закончили, теперь начнем с софтом.

1) Если Вы используете камеру PS3 Eye, то Вам понадобится специальный драйвер для Windows. Следующий драйвер я использую на Windows 8.1, но он должен работать по идее везде, если у кого-то не заработает, то придется погуглить. Причина в том, что PS3 Eye не предназначена для компьютера и банально Windows ее не видит изначально.

Ссылка на драйвер: http://e-shubin.ru/head_tracker/PS3eye.zip

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

2) Ставим программу FaceTrackNoIR со специальным модулем PointTracker 1.1.

Ссылка на это добро: http://e-shubin.ru/head_tracker/NoIR.zip

Инструкция:

1. Устанавливаем основную программу SetupFaceTrackNoIR_Full_v170.exe

2. Копируем библиотеку из папки PointTracker_1_1 в папку куда установили предыдущую программу (что-то вроде C:\Program Files (x86)\Abbequerque Inc\FaceTrackNoIR)

3) Инсталляция завершена. Запустим установленную программу (я запуская с правами администратора для надежности):

2_3.jpg

Выбираем в блоке "Tracker Source" пункт "PointTracker 1.1", в "Game protocol" выберем "FreeTrack 2.0". Далее заходим в "Settings" блока "Tracker Source" и проверяем, что на вкладке "Camera" у Вас выбрана именно Ваша камера и стоит максимальный FPS. А на вкладке "Model" в подвкладке "Clip" все расстояния выставлены так, как у Вас было по схеме... иначе подправьте. Там же есть кнопка калибровки (Calibrate) чтобы зафиксировать центр. Жмем "OK" и выходим в главное окно программы.

После этого всего жмем в блоке "GO!" кнопку "Start", должно запуститься отслеживание точек. Соответственно на голову надо уже натянуть и включить "маркер". При повороте головы у Вас будут меняться слева координаты, а сверху морда мужика должна двигаться так же, как и Ваши движения. На экране же в середине слева появятся точки от диодов с красными перекрестиями, которые означают, что точка поймана.

Возможный тюнинг:

Если свет от диодов очень яркий (вообще подгонку такую рекомендую сделать всем) и перекрестий на каждый диод красных отрисовывается очень много, то заходим в "Settings" блока "Tracker Source", вкладка "Camera" и играемся с ползунком "Threshold" до того, пока не получим самый малый радиус свечения диода на картинке, при этом на нем будет только одно перекрестие. Чуть ниже "Threshold" в блоке "Status" в "Extracted Points" у вас должно быть написано что 3 OK! Т.е. 3 точки найдено... если диодов больше, то точек будет соответственно больше.

Если в игре у вас перепутано право-лево или верх-низ, то в главном окне в блоке "Global Settings" ставим галочку на Invert для Yav или Pitch соответственно... возможно еще Roll где-то пригодиться (в SC наверняка).

Чтобы в игре не сломать шею крутя ее в разные стороны, можно поиграться с настройками "Curves". Так можно добиться, например, плавного поворота в самом начале поворота головы и более резкого в конце... это даст то, что при небольшом ходе головы при обзоре вперед у Вас не будет в кабине голова трястись постоянно, а будет смотреть вперед четко, но при повороте на определенный угол начнет все более резко меняться поворот головы. Углы надо делать так, чтобы не приходилось для поворота на 120 градусов выкручивать шею даже на 45... иначе косоглазие заработаете. Думаю в пределах 30 для 120 градусов и 10-15 для 90 - вполне удобно должно быть. Но тут все индивидуально...

Собственно все.

Итого бюджет решения составил:

1) Камера б/у - 400 рублей

2) 3 диода - 300 рублей (по факту 500 было и 5 диодов)

3) USB провод - 169 рублей

4) Резистор - 20 рублей

5) Остальное бесплатно было нарыто по шкафам и антресолям

Итого: 889 рублей, вместо 9 тыс. рублей... мне кажется оно того стоит :)

P.S. Сейчас играл в EuroTruckSimulator 2 с этой приблудой... все работает отлично, хотя надо все же кривые настроить для удобства будет. Очень непривычно я Вам скажу! С одной стороны намного удобнее и быстрее, да и точнее в разы стало головой крутить. С другой надо привыкать, т.к. часто во время езды на что-то отвлечешься, картинка сразу поворачивается и в мозгу паника, т.к. краем глаза дорогу уже не видишь :) В SC думаю такого не будет, там дороги не такие узкие :)


3


8 комментариев


А по времени сколько заняло?

 

Камеру переделывал минут 10-15. Этот агрегат с диодами... гм... рисовал 10 минут, паял 5-10 минут, саму конструкцию делал 10-15 минут. Итого 35-50 минут на все. Правда еще какое-то время ушло на принести все инструменты, найти что использовать. Плюс у меня полный комплект оборудования есть, чтобы сделать все быстро ("дремель", паяльник, фен, ножи специальные, пинцеты, зажимы), без этого думаю было бы раза в 2-3 дольше... к примеру отрезать ножом от крышки ровный круг (пластик там толстый и гибкий при этом) без дремеля довольно геморно.

1

Поделиться комментарием


Ссылка на комментарий

Пользуюсь подобным девайсом, оклло двух лет. Правдо у меня бисболка под это приспособленна, дело это не меняет. Девайс активно испльзуется в ИЛ2, DCS World Flaming Cliffs 3, x-plane. Все отлично работает. Трудность тут не в "хардваре", трудность настроить софт под себя. Дело в том что очень многое зависить от освещения, от того как "сел" напротив камеры, ну и еще пару мелочей. После небольшого "привыкания" без freetrack играть в авиасимуляторы, уже все равно что комп без клавы.

0

Поделиться комментарием


Ссылка на комментарий

Говорили, что TrackIR будут поддерживать, но пока еще видимо не реализовали.

0

Поделиться комментарием


Ссылка на комментарий

Кто-нибудь подобное уже использует в SC? У меня какие-то непонятные лаги, причём именно в игре, в самом трекере работает нормально всё, быстро. Производительности компа хватает под все задачи с переизбытком. Очень хотелось на трекинг головы повесить управление прицелом, но с инпут-лагом в полсекунды это нереально...

0

Поделиться комментарием


Ссылка на комментарий

Диоды у вас расположены вертикально, а если цеплять на наушники, то тоже должна быть выдержана определённая геометрия?

0

Поделиться комментарием


Ссылка на комментарий

Диоды у вас расположены вертикально, а если цеплять на наушники, то тоже должна быть выдержана определённая геометрия?

 

Програмку поставьте, там есть в настройках варианты расположения + насколько помню можно свою настроить геометрию. Сейчас под рукой нету, не посмотреть.

0

Поделиться комментарием


Ссылка на комментарий

Создайте аккаунт или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!


Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.


Войти сейчас