GO63

5DOF инерционник со смещениями.

1 минуту назад, Ufopter сказал:

На компьютере ставится FreePIE и в нем производится обработка кнопок или кнопок хатки джойстика. Я уже писал об этом ранее. Можно сделать настройку на три положения, можно сделать плавное перемещение.

Управлять в симуляторе движением головы пальцами это извращение ! Всё должно быть естественно . К тому же у меня на хатке механизация , воздушный тормоз , шасси ... и куда их переносить не знаю . 

medal

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Изменено пользователем shumm2014
ошибка
medal

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
26 минут назад, shumm2014 сказал:

Тогда отражатель должен быть тоже полусфера деаметром равным максимальному перемещению головы , а это наверное до пол метра ! выглядеть со стороны это будет смешно мягко сказанно :D

Раза в 2-3 меньше, и это не полусфера, а одна их вершин тетраэдра с прилегающими сторонами.

25 минут назад, shumm2014 сказал:

вот ммджой я и имел ввиду . Вот к инерционнику и надо будет добавить три аналоговые оси !

У инерционника тоже должно остаться достаточно свободных входов для 3-х аналоговых осей.

Изменено пользователем Ufopter
medal medal medal medal medal medal medal medal medal medal medal medal medal medal

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
1 минуту назад, Ufopter сказал:

Раза в 2-3 меньше, и это не полусфера, а одна их вершин куба с прилегающими сторонами.

У инерционника тоже должно остаться достаточно свободных входов для 3-х аналоговых осей.

Вот главное их в програме прописать .

medal

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

инерционник использует на ардуино только две ноги и две питания , на остальные вешай сколько влезет;)

medal

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
7 минут назад, shumm2014 сказал:

Управлять в симуляторе движением головы пальцами это извращение ! Всё должно быть естественно . К тому же у меня на хатке механизация , воздушный тормоз , шасси ... и куда их переносить не знаю . 

Так и шея у нас не как у жирафа. По сути дела, речь идет всего лишь о нескольких сантиметрах, получаемых за счет вытягивания шеи и выпрямления позвоночника.

Что касается механизации, триммеров и т.д., то для этого как раз и можно приспособить MMJOY2.

8 минут назад, shumm2014 сказал:

Вот главное их в програме прописать .

Насчет этого к автору трекера.

medal medal medal medal medal medal medal medal medal medal medal medal medal medal

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
2 минуты назад, Ufopter сказал:

Так и шея у нас не как у жирафа. По сути дела, речь идет всего лишь о нескольких сантиметрах, получаемых за счет вытягивания шеи и выпрямления позвоночника.

Что касается механизации, триммеров и т.д., то для этого как раз и можно приспособить MMJOY2.

Насчет этого к автору трекера.

Я искал как связаться с автором инерционного трекера , не нашёл . Вот решил тут эту тему поднять .

medal

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я предлагаю полностью отказаться от второго гироскопа , ведь гораздо удобней будет , если всё устройство будет в одной коробочке на наушниках , ободке , либо в нутри очков . 

medal

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ведь если эксперимент получится с одним датчиком , то их можно будет поставить три ! И все смещения будут работать на этих датчиках .

medal

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Только что, shumm2014 сказал:

Я предлагаю полностью отказаться от второго гироскопа , ведь гораздо удобней будет , если всё устройство будет в одной коробочке на наушниках , ободке , либо в нутри очков . 

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

medal medal medal medal medal medal medal medal medal medal medal medal medal medal

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Только что, Ufopter сказал:

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

Три одинаковых датчика приемника , вот три сигнала 

medal

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я спать . Завтра начну заниматься . Ардуино про микро под ммджой я уже приобрёл , осталось микропередатчик собрать и приёмник . Думаю всё получится .

medal

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
8 минут назад, shumm2014 сказал:

Я спать . Завтра начну заниматься . Ардуино про микро под ммджой я уже приобрёл , осталось микропередатчик собрать и приёмник . Думаю всё получится .

Удачи!

medal medal medal medal medal medal medal medal medal medal medal medal medal medal

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Razor AHRS 5DOF [20190111]: Самодельный инерционный 5DOF трекер

   Предыдущая версия трекера Razor AHRS 5DOF [20180715] хорошо работает в проводном исполнении.
   Многие товарищи, собиравшие беспроводной Bluetooth вариант этого трекера, сообщили, что столкнулись с некоторыми проблемами. Я решил это проверить, и тоже столкнулся с трудностями. В результате появилась новая версия Razor AHRS 5DOF [20190111], в которой исправлены баги и добавлены новые возможности при работе через Bluetooth и при питании трекера от литиевой батареи.

Вариант Razor AHRS 5DOF [20190111] подходит для любых вариантов исполнения трекера, 3DOF или 5DOF:

  • Проводной версии трекера,
  • Bluetooth версии трекера с питанием от повербанка,
  • Bluetooth версии трекера с питанием от литиевой батареи.

Razor AHRS 5DOF [20190111]: Самодельный инерционный 5DOF трекер

Tracker-Demo.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
В 02.03.2019 в 17:11, GO63 сказал:

Razor AHRS 5DOF [20190111]: Самодельный инерционный 5DOF трекер

Почему 5DOF, что не дает использовать еще одну ось для смещения?

 

У меня вопрос по MPU 5060, разве он не предусмотрен для 6 DOF судя по его описанию? Раз уж  можно получить углы наклонов гироскопа в 3-х осях, а с помощью акселерометра корректировать некоторые шумы гироскопа, то как мне кажется можно сделать и обратное. Получить смещение акселерометра в пространстве в единицу времени по 3-м направлениям, а гироскоп использовать для корректировки возможных шумов акселерометра. К тому же в этом датчике есть температурный датчик, который так же можно использовать в расчетах как корректирующий параметр против шумов.

 

зы Я конечно не специалист и с английским у меня напряг, без переводчика никак. Просто размышления "в слух"  ;-)

 

Почему модераторы не закрепили эту тему. По моему очень полезная штука.

Изменено пользователем meritus

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Собрал по инструкции Head - GY-9250 Neck - GY-521, Обзор работает на отлично, автору благодарность за девайс и подробную инструкцию по сборке!

В процессе эксплуатации возникли такие вопросы:

1. Почему не используется ось Y?

2. После установки OpenTrack, в тундре перестали работать все оси обзора назначенные на кнопки - смещение прицела лево/право вверх/низ, работают только те что включаются в OpenTrack, и только по тем осям что идут с трекера, вопрос - а как мне сделать работу смещений лево/право вверх низ на кнопках?

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

4. Кто как закрепляет Neck модуль? я пока зацепил на пластиковую прищепку - но блин не удобно, и постоянно натирает/царапает кожу.

medal medal medal medal medal medal

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
2 минуты назад, GoodPlan сказал:
Скрытый текст

Собрал по инструкции Head - GY-9250 Neck - GY-521, Обзор работает на отлично, автору благодарность за девайс и подробную инструкцию по сборке!

В процессе эксплуатации возникли такие вопросы:

1. Почему не используется ось Y?

2. После установки OpenTrack, в тундре перестали работать все оси обзора назначенные на кнопки - смещение прицела лево/право вверх/низ, работают только те что включаются в OpenTrack, и только по тем осям что идут с трекера, вопрос - а как мне сделать работу смещений лево/право вверх низ на кнопках?

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

4. Кто как закрепляет Neck модуль? я пока зацепил на пластиковую прищепку - но блин не удобно, и постоянно натирает/царапает кожу.

 

Инерционники плохо обрабатывают вертикальную ось, поскольку для компенсации ошибок дрейфа используются показания магнитометров. Магнитное поле по вертикали на таких масштабах перемещения головы меняется слабо. Также надо учитывать, что именно по вертикальной оси действует сила гравитации, которая используется для работы модулей в качестве опорной величины. Поэтому с помощью гироскопов можно отслеживать перемещения только по двум осям. По вертикали можно отслеживать перемещения только с помощью акселерометра, дважды проинтегрировав показания величины ускорения, но это ведет к накоплению ошибки дрейфа, которую нечем скомпенсировать, поскольку сигнал с других датчиков невозможно использовать. По другим осям все три канала датчиков работают совместно, обеспечивая взаимную компенсацию ошибок дрейфа. Я понимаю это так.

После установки OpenTrack'а в реестре появляется ссылка на файл npclient.dll. Это приводит к переключению игры на использование опентрека. Штатные кнопки в самой игре перестают работать. Надо поковыряться с разделом настроек управления в клиенте игры во вкладке "Общее" раздел "Управление трекером", пункт" Отслеживание положения головы..." или что-то в этом роде.

Есть параллельные темы по Opentreck'у и по реализации смещения посредством кнопок.

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

medal medal medal medal medal medal medal medal medal medal medal medal medal medal

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Уважаемый Ufopter, почитав ваши посты - сделал связку 5DOF->OpenTreck->FreePIE, использовал ваш модифицированный кусок кода:

Скрытый текст

import socket
import time
import struct
import select

pyd = joystick["GTX Throttle "]
FT_PROTO_MAX_TRANSLATION = 500
OPENTRACK_MAX_TRANSLATION = 75

def remap(x, in_min, in_max, out_min, out_max):
  return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min
  
def angle(opentrack_angle):
    # в протоколе FreeTrack углы в радианах
    return math.radians(opentrack_angle)
def trans(opentrack_translation_value):
    # максимальное значение по осям смещения в Opentrack =75, а в протоколе 500
    return opentrack_translation_value*FT_PROTO_MAX_TRANSLATION/OPENTRACK_MAX_TRANSLATION
        
def open_socket(PORT):
    S = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    S.settimeout(1.0)
    S.setblocking(0)
    S.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
    S.bind(('127.0.0.1',PORT))
    return S
  
if starting:
    POINT = open_socket(4242)
    x, y, z, yaw, pitch, roll = 0,0,0,0,0,0
if stopping:
    POINT.close()
    
if select.select([POINT], [], [], 0.01)[0]:
    data = POINT.recv(48)
    (x, _, z, yaw, pitch, roll) = struct.unpack("dddddd", data)

diagnostics.watch(pyd.yRotation)
y = pyd.yRotation
y = remap(y, -1000, 1000, -OPENTRACK_MAX_TRANSLATION, OPENTRACK_MAX_TRANSLATION)

freeTrack.yaw = -angle(yaw)
freeTrack.pitch = -angle(pitch)
freeTrack.roll = -angle(roll)
freeTrack.x = trans(x)
freeTrack.y = trans(y)
freeTrack.z = trans(z)

 

 

Все работает просто отлично!!! Огромная благодарность за ваши труды. :good:

Изменено пользователем GoodPlan
medal medal medal medal medal medal

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
7 часов назад, GoodPlan сказал:

Уважаемый Ufopter, почитав ваши посты - сделал связку 5DOF->OpenTreck->FreePIE, использовал ваш модифицированный кусок кода:

  Показать содержимое


import socket
import time
import struct
import select

pyd = joystick["GTX Throttle "]
FT_PROTO_MAX_TRANSLATION = 500
OPENTRACK_MAX_TRANSLATION = 75

def remap(x, in_min, in_max, out_min, out_max):
  return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min
  
def angle(opentrack_angle):
    # в протоколе FreeTrack углы в радианах
    return math.radians(opentrack_angle)
def trans(opentrack_translation_value):
    # максимальное значение по осям смещения в Opentrack =75, а в протоколе 500
    return opentrack_translation_value*FT_PROTO_MAX_TRANSLATION/OPENTRACK_MAX_TRANSLATION
        
def open_socket(PORT):
    S = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    S.settimeout(1.0)
    S.setblocking(0)
    S.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
    S.bind(('127.0.0.1',PORT))
    return S
  
if starting:
    POINT = open_socket(4242)
    x, y, z, yaw, pitch, roll = 0,0,0,0,0,0
if stopping:
    POINT.close()
    
if select.select([POINT], [], [], 0.01)[0]:
    data = POINT.recv(48)
    (x, _, z, yaw, pitch, roll) = struct.unpack("dddddd", data)

diagnostics.watch(pyd.yRotation)
y = pyd.yRotation
y = remap(y, -1000, 1000, -OPENTRACK_MAX_TRANSLATION, OPENTRACK_MAX_TRANSLATION)

freeTrack.yaw = -angle(yaw)
freeTrack.pitch = -angle(pitch)
freeTrack.roll = -angle(roll)
freeTrack.x = trans(x)
freeTrack.y = trans(y)
freeTrack.z = trans(z)

 

 

Все работает просто отлично!!! Огромная благодарность за ваши труды. :good:

Спасибо, но в первую очередь надо благодарить GO63 и CutzMF. 

medal medal medal medal medal medal medal medal medal medal medal medal medal medal

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Выбрал вариант 8

Купил все на али, собрал, откалибровал, настроил все по инструкции. Но...

1. Можно изложить настройку звена OpenTrack - ??? - WarThunder. После дня курения инета уяснил, что OpenTrack-WarThunder напрямую не работает, так? Есть эмуляторы устройств ввода - мыши, джойстика и т.п. Так какую все же лучше использовать?

2. Пока возился с настройкой инерционника, заметил частые вылеты (железа, драйвера?) при смещении датчиков в предельные положения, либо за них. Например, встал со стула с наушниками, или наклонился к системнику - даже в программе сканнера и калибровки происходит потеря устройства. При повторном нажатии КОННЕКТ устройств на этом порту не обнаружено. После переподключения в USB все видит, работает нормально. Это как-нибудь лечится?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

И еще вопрос.

3. При выборе положений датчиков не совсем понятно, какая стрелка куда должна смотреть. Я так понимаю, модуль HEAD исходящей из реальной грани стрелкой (зеленый верх, синий низ) на монитор, а NECK? Получается, что модуль смотрит в монитор стрелкой, выходящей одной из плоских граней с такими же верх и низ, правильно? Но в таком случае движение головы вперед-назад инвертировано. Как это лучше исправить, на уровне прошивки или уже в OpenTrack'е?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
1 час назад, SkyGin сказал:
Скрытый текст

Выбрал вариант 8

Купил все на али, собрал, откалибровал, настроил все по инструкции. Но...

1. Можно изложить настройку звена OpenTrack - ??? - WarThunder. После дня курения инета уяснил, что OpenTrack-WarThunder напрямую не работает, так? Есть эмуляторы устройств ввода - мыши, джойстика и т.п. Так какую все же лучше использовать?

2. Пока возился с настройкой инерционника, заметил частые вылеты (железа, драйвера?) при смещении датчиков в предельные положения, либо за них. Например, встал со стула с наушниками, или наклонился к системнику - даже в программе сканнера и калибровки происходит потеря устройства. При повторном нажатии КОННЕКТ устройств на этом порту не обнаружено. После переподключения в USB все видит, работает нормально. Это как-нибудь лечится?

 

1. Связка OT -> WT прекрасно работает. В качестве источника данных выбирается плагин Hatire Arduino, в его настройках устанавливается нужный COM порт и его параметры, соответствующие параметрам этого порта в диспетчере устройств Windows.

В качестве выходного интерфейса используется протокол FreeTrack 2.0 Enhanced. В его настройках надо указать путь до файла npclient.dll, находящегося в папке modules программы OpenTrack. В пути до этого файла не должно быть русских букв.

2. Может быть пропадает контакт? Можно попробовать переткнуть в другой порт, попробовать подключить через USB hub, может быть и с отдельным питанием хаба (это в случае, если в соседнем порту есть устройство с высоким потреблением тока). Какой порт USB - 2.0 или 3.0? Желательно втыкать в 2.0.

Естественно, не нужно допускать одновременной работы программы калибровки и ОТ.

2 часа назад, SkyGin сказал:
Скрытый текст

 

И еще вопрос.

3. При выборе положений датчиков не совсем понятно, какая стрелка куда должна смотреть. Я так понимаю, модуль HEAD исходящей из реальной грани стрелкой (зеленый верх, синий низ) на монитор, а NECK? Получается, что модуль смотрит в монитор стрелкой, выходящей одной из плоских граней с такими же верх и низ, правильно? Но в таком случае движение головы вперед-назад инвертировано. Как это лучше исправить, на уровне прошивки или уже в OpenTrack'е?

 

 

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

medal medal medal medal medal medal medal medal medal medal medal medal medal medal

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу