Методическая статья

Контролируемое вращение человеческих наблюдателей в среде виртуальной реальности

DOI:

10.3791/63699

21 апреля 2022 г.

В этой статье

Краткое содержание

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

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

Аннотация

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Низкая стоимость и доступность систем виртуальной реальности (VR) способствовали недавнему ускорению исследований восприятия и поведения в более натуралистических, мультисенсорных и иммерсивных условиях. Одной из областей исследований, которая особенно выиграла от использования систем VR, является мультисенсорная интеграция, например, интеграция визуальных и вестибулярных сигналов для создания чувства самодвижения. По этой причине доступный метод контролируемого физического вращения наблюдателя в виртуальной среде представляет собой полезное нововведение. В этой статье представлен метод автоматизации вращения офисного поворотного кресла, а также метод интеграции этого движения в опыт VR. На примере эксперимента показано, что физическое движение, полученное таким образом, интегрируется с визуальным опытом наблюдателя таким образом, чтобы это соответствовало ожиданиям; высокая интеграция, когда движение конгруэнтно визуальному стимулу, и низкая интеграция, когда движение неконгруэнтно.

Введение

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Многие сигналы объединяются в естественных условиях, чтобы создать ощущение самодвижения1. Создание такого чувства является целью во многих развлекательных, оздоровительных и образовательных приложениях VR 2,3,4,5, и простое понимание того, как сигналы объединяются, чтобы дать ощущение самодвижения, было долгосрочным усилием нейробиологов 6,7,8,9,10,11 . Тремя наиболее важными классами сигналов для восприятия самодвижения являются визуальный, вестибулярный и проприоцептивный1. Все три объединяются конгруэнтно во время естественного активного движения в реальном мире, чтобы обеспечить надежное и богатое чувство собственного движения. Чтобы понять роль каждого класса сигналов и получить представление о том, как сигналы сочетаются, исследователи традиционно лишали экспериментальных наблюдателей одного или нескольких сигналов и / или помещали сигналы в конфликт друг с другом 1,12. Например, для обеспечения вращательных вестибулярных сигналов при отсутствии проприоцептивных сигналов наблюдатель может пассивно поворачиваться моторизованным креслом 13,14,15,16. Было показано, что такое пассивное движение обеспечивает очень убедительные сигналы к самодвижению17. Контролируемые визуальные сигналы, обеспечиваемые гарнитурой VR, могут быть конгруэнтными или несовместимыми с движением стула или вообще отсутствовать. Проприоцептивные сигналы могут быть добавлены путем того, чтобы наблюдатель вращал стул своим ходом, например, толкая стул ногами.

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

Также представлено психофизическое приложение для этой системы chair/VR. Этот пример приложения подчеркивает полезность контролируемого пассивного вращения наблюдателя для понимания того, как сигналы самодвижения взаимодействуют для получения общего восприятия. Конкретная цель состояла в том, чтобы получить представление о давно изученном движении, вызванном зрительной иллюзией18,19. При индуцированном движении неподвижная или движущаяся цель перцептивно «отталкивается» от движущегося фона. Например, если красная целевая точка движется вертикально вверх против поля синих точек, движущихся вправо, целевая точка будет двигаться вверх, как и ожидалось, но также и влево, в сторону от направления движущегося фона 20,21. Цель состояла в том, чтобы проверить, является ли отталкивание результатом интерпретации фонового движения как вызванного самодвижением22,23.

Если это так, то добавление физического вращения, которое согласуется с фоновым визуальным движением, должно привести к более сильному ощущению, что фоновое движение связано с самовоскручиванием через неподвижную среду. Это, в свою очередь, должно привести к большей тенденции вычитать фоновое движение из целевого движения, чтобы получить целевое движение относительно стационарного мира23. Эта повышенная тенденция к вычитанию приведет к большему воспринимаемому целевому отталкиванию. Для проверки этого было добавлено физическое самоповорота, которое либо соответствовало, либо не соответствовало фоновому движению. Представленная здесь система позволила точно контролировать физическое движение и соответствующее визуальное движение для проверки этой гипотезы. В этом примере движение стула находилось под непосредственным контролем наблюдателя с помощью ручного контроллера системы VR.

Хотя в литературе есть много примеров моторизованных вращающихся стульев для различных приложений VR 24,25,26,27,28,29, авторы не знают о кратком наборе инструкций по созданию такого стула и интеграции его в интерактивный опыт VR. Ограниченные инструкции доступны для SwiVRChair29, который похож по структуре на представленный здесь, но который разработан с другой целью, то есть управляется компьютерной программой для улучшения погружения в среду VR, где движение стула может быть переопределено пользователем, поместив ноги на землю. Учитывая стоимость коммерчески доступных стульев30,31, создание одного «внутреннего» может быть более жизнеспособным вариантом для некоторых исследователей. Для тех, кто находится в этой ситуации, протокол ниже должен быть полезен.

Обзор системы
Протокол состоит из инструкций по преобразованию офисного кресла в вращающееся кресло с электрическим приводом и интеграции движения стула в опыт VR. Вся система, после завершения, состоит из четырех частей: механической, электрической, программной и VR-подсистем. Фотография всей системы показана на рисунке 1. Показанная система была той, которая использовалась в примере эксперимента.

Работа механической подсистемы заключается в физическом вращении верхнего вала поворотного кресла с помощью двигателя. Он состоит из офисного кресла, к которому прикреплены две вещи: шкив, закрепленный на верхнем вращающемся валу офисного кресла, и регулируемая монтажная рама, прикрепленная к нижней неподвижной части вала. К креплению прикреплен электрический шаговый двигатель, который имеет шкив, прикрепленный к его валу, который выравнивается со шкивом на верхнем валу офисного кресла. Ремень соединяет шкив двигателя со шкивом стула, позволяя двигателю вращать стул.

Электрическая подсистема обеспечивает питание двигателя и позволяет осуществлять электронное управление двигателем. Он состоит из драйвера двигателя, блока питания для двигателя, платы Arduino для сопряжения драйвера с компьютером и блока питания для Arduino (опционально). Плата Arduino - популярная небольшая плата среди любителей и профессиональных производителей чего-либо электронного, которая содержит программируемый микропроцессор, контроллеры, входные и выходные контакты и (в некоторых моделях) USB-порт (требуется здесь). Все электрические компоненты размещены в специально модифицированной коробке с электрической изоляцией. Поскольку сетевое питание требуется для трансформатора, который обеспечивает питание двигателя и для (опционального) источника питания Arduino, и поскольку двигатель требует высокого рабочего напряжения, все, кроме низковольтной электронной работы (этапы протокола 2.5-2.10 ниже), должны выполняться квалифицированным специалистом.

Программная подсистема состоит из программного обеспечения Arduino для программирования Arduino, программного обеспечения Unity для создания среды VR, программного обеспечения Steam для управления системой VR и Ardity — плагина Unity, который позволяет Unity взаимодействовать с платой Arduino. Это программное обеспечение было установлено на ноутбуке Gygabyte Sabre 15WV8 под управлением Microsoft Windows 10 Enterprise для примера эксперимента (рисунок 1).

Система VR состоит из головного дисплея (HMD), ручного контроллера и базовых станций для определения положения и ориентации шлема и контроллера в пространстве. Система VR, используемая для этого проекта, была HTC Vive Pro (рисунок 1).

Ниже описана процедура объединения этих компонентов для достижения виртуального опыта, который включает в себя физическое вращение (эксперимент или иное) с движением стула, управляемым наблюдателем через ручной контроллер или хозяином / экспериментатором с помощью компьютерной мыши или потенциометра. Заключительная часть протокола состоит из шагов, необходимых для инициирования опыта VR. Обратите внимание, что метод кодирования Unity для проведения испытаний и сбора данных выходит за рамки данной рукописи. Некоторые этапы, особенно для механической подсистемы, требуют определенного оборудования мастерской и определенного уровня мастерства. В принципе, представленные методы могут быть скорректированы в соответствии с наличием этих ресурсов. Предлагаются альтернативы для некоторых из более технических шагов.

Доступ ограничен. Войдите в систему или начните пробный период, чтобы просмотреть этот контент.

Протокол

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

ПРЕДУПРЕЖДЕНИЕ: Электромонтажные работы должны выполняться квалифицированным специалистом.

1. Процедура настройки механической системы

  1. Прикрепите основной шкив к верхнему валу поворотного кресла.
    1. Снимите верхний вал.
      ПРИМЕЧАНИЕ: Обычно это включает в себя размещение стула на боку и удаление штифта у основания стула, который предотвращает скольжение верхнего вала из нижнего вала.
    2. Фрикционное крепление шкива к валу.
      1. Используйте суппорты Вернье для получения диаметра вала. Используйте токарный станок для сверления отверстия шкива в соответствии с диаметром вала.
      2. Создайте резьбовые отверстия для винтов, которые будут крепить шкив к валу. Просверлите дополнительные отверстия в ступице шкива, чтобы сделать в общей сложности 4, соответствующих диаметру винтов. Проденьте отверстия с помощью крана, чтобы винты можно было использовать для фиксации шкива к валу, сопоставляя резьбу с резьбой винтов
        ПРИМЕЧАНИЕ: Альтернативой, если создание резьбы невозможно, является просверление до конца через ступицу шкива и вал стула и прокрутка болта до конца после определения правильного размещения шкива (после шага 1.4.6).
      3. Сдвиньте шкив на вал стула.
      4. Вставьте винты свободно (затяните после выравнивания основного и небольших шкивов).
    3. Свободно поместите приводной ремень на вал верхнего стула (чтобы позже он был прикреплен к основному и небольшому шкиву).
    4. Прикрепите верхнюю часть стула к основанию стула.
  2. Прикрепите крепление двигателя к нижнему валу поворотного кресла.
    1. Изготовьте регулируемый зажим, к которому могут быть прикреплены кронштейны крепления двигателя.
      1. Изготовьте два соответствующих компонента зажима – по одному для каждой стороны вала (сжимается вместе четырьмя болтами). Размеры см. на рисунке 2 .
      2. Для каждого компонента разрежьте угол 90° железа по длине. Прикрепите 4 листа, через которые будут проходить болты.
      3. Закруглите края каждого листа (металлический стержень) для безопасности. Просверлите отверстия вблизи конца каждого стержня, достаточно большие, чтобы болты могли пройти. Сделайте изгиб на 45° в соответствующем положении (оцените штангу, чтобы сделать изгиб более точным). Точечно приваривайте каждый стержень к угловым отверстиям железного болта наружу.
        ПРИМЕЧАНИЕ: В КАЧЕСТВЕ АЛЬТЕРНАТИВЫ, листья могут быть закреплены болтами на месте, соблюдая осторожность, чтобы не вызвать выступ, который предотвратит контакт углового железа с валом стула.
    2. Изготовьте два кронштейна для крепления двигателя. Размеры см. на рисунке 3 . Для каждого кронштейна просверлите два отверстия в стержне для крепления к только что описанному зажиму. Согните на 90° в соответствующем положении (забейте штангу, чтобы сделать изгиб более точным).
    3. Прикрепите зажим и установите на нижний вал кресла, вставив 4 болта через зажимные компоненты и кронштейны и затянув. Убедитесь, что болты не слишком тугие, если крепление необходимо отрегулировать для адаптации к процессу выравнивания на этапе 1.4.6.
  3. Прикрепите небольшой шкив к валу двигателя.
    1. Шлифуйте ключ на валу двигателя ровно (больше не выступая).
      ПРИМЕЧАНИЕ: Это обеспечит плоскую поверхность, к которой винт шкива может быть затянут, чтобы предотвратить проскальзывание шкива вокруг вала двигателя.
    2. Просверлите отверстие в шкиве, чтобы оно соответствовало диаметру вала двигателя.
    3. Проведите шкивом по валу и свободно затяните винт к плоской поверхности на валу.
  4. Прикрепите двигатель к кронштейну двигателя, описанному выше.
    1. Подготовьте каждый из 4 крепежных стержней двигателя, просверлив два отверстия в соответствующих положениях (отверстия должны совпадать с монтажными отверстиями в двигателе). Размеры см. на рисунке 4 .
    2. Если требуется зазор, вырежьте секцию из верхней части двух стержней, чтобы позволить шкиву на валу двигателя свободно вращаться (опционально).
    3. Поместите четыре небольших кронштейна крепления крышки над четырьмя внешними отверстиями. Используйте их позже, чтобы прикрепить защитную крышку поверх ремня и шкивов.
    4. Свободно прикрепите восемь гаек и болтов, оставив место между верхней и нижней планками, чтобы сдвинуть между ними монтажные кронштейны.
    5. Сдвиньте монтажные стержни двигателя на кронштейн - каждая верхняя планка над монтажным кронштейном и каждая нижняя внизу.
    6. Позиционируйте и зажимайте двигатель.
      1. Перемещайте основной шкив, малый шкив или оба вверх и вниз до тех пор, пока основной и маленький шкивы не будут горизонтально выровнены. При необходимости переместите зажим.
      2. Поместите приводной ремень над малым и основными шкивами.
      3. Сдвиньте двигатель в сборе со стула до тех пор, пока ремень не станет тугим.
      4. Затяните 8 болтов на крепежных стержнях двигателя, чтобы закрепить двигатель на кронштейне двигателя.
      5. Затяните зажимные болты и винты шкива.
  5. Прикрепите крышку, чтобы предотвратить попадание чего-либо в систему шкивов/ремней.
    1. Согните боковые стороны акрилового защитного чехла, как показано на рисунке 5.
      ПРИМЕЧАНИЕ: АЛЬТЕРНАТИВОЙ, если акриловый гиб недоступен, является использование металлического листа и листогиба.
    2. Вырежьте секцию, чтобы поместиться вокруг вала стула, как показано на рисунке 5.
    3. Просверлите отверстия в соответствии с отверстиями на небольших кронштейнах крепления крышки.
    4. Используйте небольшие болты крепления крышки для крепления крышки.

2. Процедура настройки электрической системы

  1. Подключите выключатель включения/выключения и аварийный выключатель к электросети. Используйте соответствующие кабели с номинальным напряжением и током для подключения соединительного устройства IEC (разъем для сетевого кабеля питания) к аварийному выключателю и выключателю включения / выключения последовательно (так что разрыв цепи с любым из них приведет к отключению питания остальных компонентов).
    ПРИМЕЧАНИЕ: Может потребоваться пайка.
  2. Подключите блок питания 5 В постоянного тока для Arduino к выключателю включения/выключения (опционально).
    ПРИМЕЧАНИЕ: Требуется пайка и сетевой кабель.
  3. Подключите блок питания 48 В постоянного тока для драйвера кресла к выключателю включения/выключения параллельно с блоком питания 5 В.
    ПРИМЕЧАНИЕ: Требуется сетевой кабель.
  4. Установите соответствующие настройки DIP-переключателя для драйвера гибридного шагового двигателя. Например:
    1. Установите переключатели 1-4 на ON, OFF, ON и ON, соответственно, для 1 600 импульсов на оборот для шагового двигателя (чем выше число, тем тоньше управление, но тем ниже предел скорости вращения в зависимости от того, как быстро Arduino может производить импульсы).
    2. Переключите 5 на ВЫКЛ для направления вращения против часовой стрелки по умолчанию.
    3. Переключите 6 на ON для режима Drive Point Motion (PM), в отличие от режима управления пространственным вектором (или Field-oriented Control, FOC).
    4. Установите переключатели 7 и 8 на OFF и OFF, чтобы соответствующий контроллер двигателю с замкнутым контуром серии 86 12 НМ.
  5. Подключите драйвер гибридного шагового двигателя к кабелям блока питания и драйвера кресла.
    1. Подключите соответствующие номинальные кабели от выходных клемм блока питания 48 В к корпусу входного разъема питания драйвера двигателя и вставьте корпус.
    2. Подключите два кабеля двигателя через корпуса разъемов к драйверу.
  6. Подключите Arduino к драйверу гибридного шагового двигателя.
    1. Используйте закрепленные переходные провода для подключения клемм PUL+ («импульсный» +), DIR+ («направление» +) и ENA+ («включить» +) на корпусе разъема драйвера двигателя к контактам 2, 3 и 5 (номера контактов опционально, но указаны здесь в качестве примеров для использования повсюду) на Arduino.
    2. Используйте короткие провода для подключения PUL-, DIR- и ENA- клемм корпуса разъема драйвера двигателя и более длинный закрепленный соединительный провод для подключения ENA- к контакту GND (заземление) на Arduino.
    3. Вставьте корпус разъема в драйвер двигателя.
  7. Подключите Arduino к источнику питания 5 В постоянного тока (опционально). Используйте закрепленные прыжковые провода для подключения контактов GND и Vin на Arduino к выходным клеммам 5 В блока питания 5 В.
  8. Подключите потенциометр к Arduino. Используйте закрепленные прыжковые провода для подключения GND A1 (аналоговая в» клемма) и контактов 5 В на Arduino к трем клеммам потенциометра.
    ПРИМЕЧАНИЕ: Требуется пайка.
  9. Подключите тумблер к Arduino. Подключите контакт 6 и GND на Arduino к двум клеммам тумблера с помощью закрепленных прыжковых проводов.
    ПРИМЕЧАНИЕ: Требуется пайка.
  10. Подключите светодиод к Arduino.
    1. Припаяйте резистор к одной клемме светодиода (для падения напряжения на светодиодной цепи).
    2. Прикрепите контакты 7 и GND на Arduino к концу резистора и другой светодиодной клеммы с помощью закрепленных прыжковых проводов.
      ПРИМЕЧАНИЕ: Требуется пайка.
  11. Изолируйте и разместите электрические/электронные компоненты. Изображение завершенной размещенной системы приведено на рисунке 6 .
    ПРИМЕЧАНИЕ: Существует много способов изоляции высоковольтных компонентов электрической системы, защиты хрупких электронных компонентов от повреждений и хранения всех этих компонентов в управляемом пространстве. Ниже приведен один из предлагаемых методов.
    1. Просверлите / вырежьте отверстия в боковой части корпуса прибора для разъема питания IEC, основного переключателя включения / выключения, двух кабелей управления двигателем, небольшого тумблера, светодиода, потенциометра и USB-порта Arduino (сделайте его большим, чтобы воздух поступал в корпус для охлаждения).
    2. Прикрепите каждый из этих компонентов с помощью соответствующих средств (например, винтов, болтов, термоклеевого пистолета).
    3. Вырезаны вентиляционные отверстия (одно над вентилятором в блоке питания 48 В) и отверстие для аварийного выключателя в крышке корпуса; затем прикрепите вентиляционные фильтры и выключатель.
    4. Прикрепите Arduino к основанию корпуса с помощью распорок и винтов. Расположите так, чтобы порт USB совпадал с отверстием порта USB в корпусе.
    5. Подключите блоки питания 48 В и 5 В и драйвер двигателя к основанию корпуса с помощью Velcro и пеноблоков.

3. Процедура настройки VR

  1. Настройте систему VR в соответствии с инструкциями производителя.

4. Процедура настройки программного обеспечения

  1. Установите и настройте программное обеспечение Arduino.
    1. Загрузите и установите программу Arduino в соответствии с инструкциями разработчика.
    2. Подключите Arduino к компьютеру с помощью кабеля USB.
    3. В раскрывающемся меню Инструменты выберите порт, к которому подключена плата Arduino.
    4. В этом же меню выберите соответствующую системную плату и процессор. Убедитесь, что он соответствует плате и процессору, используемым в разделе 2 выше, например, плате "Arduino Mega 2560" и процессору "ATmega2560".
  2. Запрограммируйте плату Arduino так, чтобы она позволяла вращать стул 1) с помощью потенциометра и 2) с помощью команд с компьютера через USB.
    1. Напишите код для загрузки в процессор Arduino.
      ПРИМЕЧАНИЕ: Пример кода из примера эксперимента включен в дополнительный файл 1 (имя файла: hybrid_motor_controller.ino).
    2. Обратите внимание на скорость передачи данных (аргумент для команды Serial.Begin()), например, 9 600.
    3. Сохраните код и загрузите его на доску Arduino с помощью кнопки загрузки .
  3. Проверьте, что система работает до сих пор.
    1. Подключите и включите электрическую подсистему.
    2. Проведите маленьким тумблером в положение, в котором включается маленький светодиодный индикатор.
    3. Поверните потенциометр, чтобы убедиться, что он контролирует скорость и направление стула.
  4. Установите и настройте Steam и SteamVR в соответствии с инструкциями разработчика.
  5. Установите и настройте Unity.
    1. Установите и настройте Unity в соответствии с инструкциями разработчика.
    2. Откройте новый или существующий проект Unity (выберите тип, например, «3D», подходящий для приложения).
    3. Настройте SteamVR для использования в проекте.
      1. Откройте хранилище ресурсов (щелкните Окно | Хранилище активов).
      2. Найдите SteamVR и выберите плагин SteamVR.
      3. Нажмите кнопку Добавить в ресурсы.
      4. В Unity откройте Диспетчер пакетов (нажмите на Окно | Менеджер пакетов).
      5. Найдите SteamVR на вкладке Мои активы .
      6. Нажмите кнопку Импорт и следуйте инструкциям на экране, чтобы завершить импорт.
      7. Нажмите кнопку Принять все , если появится запрос на внесение изменений в конфигурацию.
      8. Импортируйте камеру Steam VR в сцену. Найдите новый актив под названием Steam VR в окне проекта на экране инспектора. Откройте Steam VR | префабами.
      9. Перетащите ресурс [Camera Rig] в иерархию или окно сцены, чтобы разрешить использование гарнитуры VR и контроллеров в игре.
      10. Удалите основную камеру по умолчанию из иерархии или сцены, так как это будет мешать работе камеры SteamVR.
  6. Установите и настройте Ardity.
    1. Найдите Ardity в Unity Asset Store и выберите его для загрузки (шаг 4.5.3.2 выше).
    2. Обновите уровень совместимости API.
      1. Откройте Настройки проекта в меню Правка .
      2. Нажмите на | игрока Другие настройки.
      3. Выберите .NET 4.X в раскрывающемся меню Для параметра Уровень совместимости API.
      4. Закройте настройки и дождитесь исчезновения сообщений об ошибках.
  7. Настройте игровую среду Unity.
    ПРИМЕЧАНИЕ: Следующие минимальные шаги потребуются для того, чтобы пользователь контролировал стул и интегрировал движение стула с его опытом VR.
    1. Создайте объекты и функции, необходимые для конкретного приложения.
      1. Создайте объекты, щелкнув GameObject и выбрав 2D-объект или 3D-объект.
      2. Добавьте функциональные возможности к созданному объекту, нажав кнопку Добавить компонент в окне инспектора для объекта и выбрав один из параметров. Выберите Новый сценарий , чтобы создать сценарий C#, аналогичный сценарию в дополнительном файле 3 (имя файла: SetUpTrial.cs).
    2. Импортируйте сценарий serial Controller в игру.
      1. В папке «Ресурсы » в окне «Проект» откройте папку Ardity | Папка "Скрипты ".
      2. Перетащите сценарий SerialController в нужный игровой объект в окне Heirarchy , например в игровой объект Background .
      3. Щелкните объект и прокрутите список компонентов вниз в окне инспектора , чтобы найти сценарий SerialController .
      4. Убедитесь, что имя порта и скорость передач соответствуют именам для программы Arduino, заданным в шагах 4.1 и 4.2 выше.
      5. Перетащите объект, к которому присоединен сценарий SerialController , из окна иерархии в поле ввода рядом с полем Прослушиватель сообщений в окне инспектора.
    3. Напишите и импортируйте скрипт контроллера стула в игру.
      1. В нижней части окна Инспектора для того же игрового объекта нажмите кнопку Добавить компонент и выберите Новый скрипт. Назовите новый скрипт ChairController.
      2. Напишите код, необходимый для принятия команд контроллера и мыши, и превратите их в номера, которые будут отправлены через USB на Arduino.
        ПРИМЕЧАНИЕ: Минимальный пример требуемого кода включен в дополнительный файл 2 (имя файла: ChairController.cs).
      3. Сохраните скрипт.
      4. Заполните пустые поля в окне инспектора . Перетащите объект HMD из окна Иерархия в поле ввода рядом с кнопкой Head под сценарием Chair Controller в окне Инспектор . Аналогичным образом перетащите объект Controller (справа) в поле рядом с полем Hand.

5. Процедура эксперимента (или опыта)

  1. Выберите метод ввода.
    ПРИМЕЧАНИЕ: Приведенный пример кода ChairController относится к скрипту с именем SetUpTrial , где задана публичная целочисленная переменная inputType (где inputType 3 — контроллер VR, а inputType 4 — мышь). Это расположение скрипта/переменной было принято в следующих шагах.
  2. Нажмите на игровой объект, к которому прикреплен скрипт SetUpTrial , например Фон.
  3. Прокрутите вниз в окне инспектора , чтобы найти открытые переменные сценария SetUpTrial .
  4. Установите inputType равным 3 для контроллера VR или 4 для управления мышью.
  5. Нажмите кнопку Воспроизведения в Unity, чтобы начать работу с виртуальной реальностью с движением, управляемым контроллерами или мышью.

Доступ ограничен. Войдите в систему или начните пробный период, чтобы просмотреть этот контент.

Результаты

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Цель примера эксперимента состояла в том, чтобы определить, влияет ли добавление физического вращения — конгруэнтного или несовместимого с визуальным фоновым движением в сцене — на воспринимаемое направление движущейся цели в этой сцене. Различие между конгруэнтным и неконгруэнтным физическим движением было ожидаемо на основе гипотезы о том, что фоновое движение влияет на воспринимаемое целевое направление в соответствии с тем, насколько легко зрительная система участника приписывает причину фонового движения самодвижени...

Доступ ограничен. Войдите в систему или начните пробный период, чтобы просмотреть этот контент.

Обсуждение

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

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

Доступ ограничен. Войдите в систему или начните пробный период, чтобы просмотреть этот контент.

Раскрытие информации

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Конфликта интересов нет.

Благодарности

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Эта работа была поддержана грантами Австралийского исследовательского совета DP160104211, DP190103474 и DP190103103.

Доступ ограничен. Войдите в систему или начните пробный период, чтобы просмотреть этот контент.

Материалы

Список материалов, использованных в этой статье
ИмяКомпанияКаталожный номерКомментарии
Источник питания постоянного тока 48 В (двигатель)MeanwellRSP-320-48https://www.meanwellaustralia.com.au/products/rsp-320
источник питания 5 В постоянного тока (arduino)JaycarMP3295https://www.jaycar.com.au/15w-5v-3a-enclosed-power-supply/p/MP3295?pos=5&queryId=dda344422ab16c6
7f558551ac0ac0acbd40
Ardity плагин для UnityOpen Sourcehttps://ardity.dwilches.com/
Arduino MEGA 2560JaycarXC4420https://www.jaycar.com.au/duinotech-mega-2560-r3-board-for-arduino/p/XC4420?pos=2&queryId=901771805f4bf6e0
ec31d41601d14dc3
Программное обеспечениеArduinohttps://www.arduino.cc/en/software
BeltMotion DynamicsRFTB10010Выберите размер, который подходит для вашего приложения. Мы использовали 60 зубьев. https://www.motiondynamics.com.au/polyurethane-timing-belts-16mm-t-10/
Болты кронштейна (двигатель крепления)Завод крепежа161260x 4. https://www.thefastenerfactory.com.au/bolts-and-nuts/all-stainless-bolts/stainless-button-socket-head-cap-screws/stainless-steel-button-socket-head-cap-screw-m6-x-35mm-100pc
Болты кронштейна (не двигатель крепления)Завод крепежа161258х 4. https://www.thefastenerfactory.com.au/bolts-and-nuts/all-stainless-bolts/stainless-button-socket-head-cap-screws/stainless-steel-button-socket-head-cap-screw-m6-x-25mm-100pc
Зажимной уголок ЖелезоAustral Wright Metals50004813x 2. https://www.australwright.com.au/products/stainless-steel/stainless-steel-bar-round-flat-angle-square/
Зажимные болтыThe Fastner Factory161265х 4. https://www.thefastenerfactory.com.au/bolts-and-nuts/all-stainless-bolts/stainless-button-socket-head-cap-screws/stainless-steel-button-socket-head-cap-screw-m6-x-70mm-100pc  
Зажимные створки (плоский стержень из нержавеющей стали)Austral Wright Metals50004687x 8. https://www.australwright.com.au/products/stainless-steel/stainless-steel-bar-round-flat-angle-square/
Крышка (акрил)Bunnings Warehouse1010489https://www.bunnings.com.au/suntuf-900-x-600-x-5mm-grey-acrylic-sheet_p1010489
Болты/гайки крышкиBunningsWarehouse 247292х 4. https://www.bunnings.com.au/pinnacle-m3-x-16mm-stainless-steel-hex-head-bolts-and-nuts-12-pack_p0247292
Кронштейны крышкиBunnings Warehouse44061x 4. https://www.bunnings.com.au/zenith-20mm-zinc-plated-angle-bracket-16-pack_p0044061
Аварийный выключательJaycarSP0786https://www.jaycar.com.au/latching-emergency-stop-switch/p/SP0786?pos=1&queryId=5abe9876cf78dc3d<чел./> d26b9067fbc36f74
Гибридный шаговый двигатель и драйверVevor?Шаговый двигатель с замкнутым контуром Nema 34 12NM Серводвигатель Гибридный драйвер https://vevor.com.au/products/1712oz-in-nema34-closed-loop-stepper-motor-12nm-hybrid-servo-driver-hsc86-kit?variant=33058303311975
Сетевой разъем питания IECRS Components811-7213https://au.rs-online.com/web/p/iec-connectors/8117213
Кейс прибора (корпус)JaycarHB6381https://www.jaycar.com.au/abs-instrument-case-with-purge-valve-mpv2/p/HB6381
LEDJaycarZD0205https://www.jaycar.com.au/green-10mm-led-100mcd-round-diffused/p/ZD0205?pos=11&queryId=e596cbd3d71e86<чел/> 37ab9340cee51175e7& sort=
актуальность
Главный шкив (стул)Динамика движенияALTP10020Выберите размер, который подходит для вашего применения. Больше зубьев = медленнее вращение. Мы использовали 36 зуб. https://www.motiondynamics.com.au/timing-pulleys-t10-16mm.html
Планки крепления двигателя (плоский стержень из нержавеющей стали)Austral Wright Metals50004687x 4. https://www.australwright.com.au/products/stainless-steel/stainless-steel-bar-round-flat-angle-square/
Монтажные кронштейны (плоский стержень из нержавеющей стали)Austral Wright Metals50004687х 2. https://www.australwright.com.au/products/stainless-steel/stainless-steel-bar-round-flat-angle-square/
ГайкиThe Fastner Factory161989x 12. https://www.thefastenerfactory.com.au/stainless-steel-hex-nylon-insert-lock-nut-m6-100pc
ВыключательJaycarSK0982https://www.jaycar.com.au/dpdt-illuminated-rocker-large-red/p/SK0982?pos=4&queryId=88e0c5abfa682b74<чел/> FA631C6D513ABC73& sort=relevance
ПотенциометрJaycarRP8610https://www.jaycar.com.au/10k-ohm-logarithmic-a-single-gang-9mm-potentiometer/p/RP8610?pos=4&queryId=0d1510281ba100d
174b8e3d7f806a020
Винты шкиваЗавод Fastner 155856x 5. https://www.thefastenerfactory.com.au/stainless-steel-hex-socket-head-cap-screw-m4-x-25mm-100pc
резистор 150 ОмJaycarRR2554https://www.jaycar.com.au/150-ohm-1-watt-carbon-film-resistors-pack-of-2/p/RR2554?pos=19&queryId=48c6317c73fd361
a42c835398d282c4a& sort=
релевантность
Малый шкив (двигатель)Динамика движенияALTP10020Выберите размер, который подходит для приложения. Больше зубьев = более быстрое вращение. Мы использовали 24 зуба. https://www.motiondynamics.com.au/timing-pulleys-t10-16mm.html
Маленький тумблерJaycarST0555https://www.jaycar.com.au/sealed-mini-toggle-switch/p/ST0555?pos=14&queryId=066b989a151d83
31885c6cec92fba517& sort=
актуальность
Программное обеспечение SteamValve Corporationhttps://store.steampowered.com/
плагин SteamVR для SteamValve Corporationhttps://store.steampowered.com/app/250820/SteamVR/
Unity программное обеспечениеUnity Technologieshttps://unity3d.com/get-unity/download
система виртуальной реальностиScorptec99HANW007-00HTC Vive Pro с контроллерами и базовыми станциями. https://www.scorptec.com.au/product/gaming-peripherals/vr/72064-99hanw007-00?gclid=Cj0KCQiA5OuNBhCRARIsA<чел./> CgaiqX8NjXZ9F6ilIpVmYEhhanm
GA67xLzllk5EmjuG0gnhu4xmiE
_RwSgaAhn8EALw_wcB

Ссылки

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,
  1. Campos, J., Bülthoff, H. Multimodal integration during self-motion in virtual reality. The Neural Bases of Multisensory. Murray, M. M., Wallace, M. T. , CRC Press. (2012).
  2. Radianti, J., Majchrzak, T. A., Fromm, J., Wohlgenannt, I. A systematic review of immersive virtual reality applications for higher education: Design elements, lessons learned, and research agenda. Computers & Education. 147, 103778(2020).
  3. Madshaven, J. M. Investigating the user experience of virtual reality rehabilitation solution for biomechatronics laboratory and home environment. Frontiers in Virtual Reality. 2, 645042(2021).
  4. Fan, Z. Design of physical training motion simulation system based on virtual reality technology. 2021 The 13th International Conference on Computer Modeling and Simulation. Association for Computing Machinery. , 81-86 (2021).
  5. Roettl, J., Terlutter, R. The same video game in 2D, 3D or virtual reality - How does technology impact game evaluation and brand placements. PLoS One. 13 (7), 0200724(2018).
  6. Riecke, B. E., Sigurdarson, S., Milne, A. P. Moving through virtual reality without moving. Cognitive Processing. 13, Suppl 1 293-297 (2012).
  7. Fauville, G., Queiroz, A. C. M., Woolsey, E. S., Kelly, J. W., Bailenson, J. N. The effect of water immersion on vection in virtual reality. Scientific Reports. 11 (1), 1022(2021).
  8. Bernhard, E. R., Jörg, S. -P., Marios, N. A., Markus Von Der, H., Heinrich, H. B. Cognitive factors can influence self-motion perception (vection) in virtual reality. ACM Transactions on Applied Perception. 3 (3), 194-216 (2006).
  9. Gibson, J. J. The perception of the visual world. , Houghton Mifflin. (1950).
  10. Angelaki, D. E., Gu, Y., Deangelis, G. C. Visual and vestibular cue integration for heading perception in extrastriate visual cortex. Journal of Physiology. 589, Pt 4 825-833 (2011).
  11. Badcock, D., Palmisano, S., May, J. G. Vision and virtual environments. Handbook of Virtual Environments: Design, Implementation, and Applications. Hale, K. S., Stanney, K. M. , CRC Press. 39-85 (2014).
  12. Kaliuzhna, M., Prsa, M., Gale, S., Lee, S. J., Blanke, O. Learning to integrate contradictory multisensory self-motion cue pairings. Journal of Vision. 15 (1), (2015).
  13. Wilkie, R. M., Wann, J. P. The role of visual and nonvisual information in the control of locomotion. Journal of Experimental Psychology: Human Perception and Performance. 31 (5), 901-911 (2005).
  14. Sinha, N., et al. Perception of self motion during and after passive rotation of the body around an earth-vertical axis. Progress in Brain Research. 171, 277-281 (2008).
  15. Tremblay, L., et al. Biases in the perception of self-motion during whole-body acceleration and deceleration. Frontiers in Integrative Neuroscience. 7, 90(2013).
  16. Nooij, S. A. E., Bockisch, C. J., Bülthoff, H. H., Straumann, D. Beyond sensory conflict: The role of beliefs and perception in motion sickness. PLoS One. 16 (1), 0245295(2021).
  17. Harris, L., et al. Simulating self-motion I: Cues for the perception of motion. Virtual Reality. 6 (2), 75-85 (2002).
  18. Carr, H. A., Hardy, M. C. Some factors in the perception of relative motion: A preliminary experiment. Psychological Review. 27, 24-37 (1920).
  19. Reinhardt-Rutland, A. H. Induced movement in the visual modality: An overview. Psychological Bulletin. 103, 57-71 (1988).
  20. Zivotofsky, A. Z., et al. Tracking of illusory target motion: Differences between gaze and head responses. Vision Research. 35 (21), 3029-3035 (1995).
  21. Farrell-Whelan, M., Wenderoth, P., Wiese, M. Studies of the angular function of a Duncker-type induced motion illusion. Perception. 41 (6), 733-746 (2012).
  22. Warren, P. A., Rushton, S. K. Optic flow processing for the assessment of object movement during ego movement. Current Biology. 19 (18), 1555-1560 (2009).
  23. Fajen, B. R., Matthis, J. S. Visual and non-visual contributions to the perception of object motion during self-motion. PLoS One. 8 (2), 55446(2013).
  24. Duminduwardena, U. C., Cohen, M. Controlling the Schaire Internet Chair with a mobile device. Proceedings CIT: The Fourth International Conference on Computer and Information Technology. , Wuhan, China. 215-220 (2004).
  25. Ashiri, M., Lithgow, B., Mansouri, B., Moussavi, Z. Comparison between vestibular responses to a physical and virtual reality rotating chair. Proceedings of the 11th Augmented Human International Conference. , Association for Computing Machinery. Winnipeg, Manitoba, Canada. (2020).
  26. Koenig, E. A new multiaxis rotating chair for oculomotor and vestibular function testing in humans. Neuro-ophthalmology. 16 (3), 157-162 (1996).
  27. Mowrey, D., Clayson, D. Motion sickness, ginger, and psychophysics. The Lancet. 319 (8273), 655-657 (1982).
  28. Sanmugananthan, P., Nguyen, N., Murphy, B., Hossieni, A. Design and development of a rotating chair to measure the cervico-ocular reflex. Cureus. 13 (10), 19099(2021).
  29. Gugenheimer, J., Wolf, D., Haas, G., Krebs, S., Rukzio, E. SwiVRChair: a motorized swivel chair to nudge users' orientation for 360 degree storytelling in virtual reality. 1996-2000. Proceedings of the 2016 CHI Conference on Human Factors in Computing Systems. , Association for Computing Machinery. San Jose, California, USA. (2016).
  30. Roto VR Ltd. Roto VR Chair. , Available from: https://www.rotovr.com/ (2021).
  31. Yaw VR Ltd. Yaw Motion Simulator. , Available from: https://www.yawvr.com/ (2021).
  32. Warren, P. A., Rushton, S. K. Perception of object trajectory: Parsing retinal motion into self and object movement components. Journal of Vision. 7 (11), 1-21 (2007).
  33. Bonnen, K., Burge, J., Yates, J., Pillow, J., Cormack, L. K. Continuous psychophysics: Target-tracking to measure visual sensitivity. Journal of Visualized Experiments: JoVE. (3), (2015).
  34. SimXperience. , Available from: https://www.simxperience.com/ (2021).
  35. Harris, L. R., Jenkin, M., Zikovitz, D. C. Visual and non-visual cues in the perception of linear self-motion. Experimental Brain Research. 135, 12-21 (2000).
  36. DOF Reality Motion Simulators. , Available from: https://www.dofreality.com/ (2021).
  37. Next Level Racing. , Available from: https://nextlevelracing.com/ (2022).
  38. Motion Systems. , Available from: https://motionsystems.eu/ (2022).
  39. Redbird Flight Simulations. , Available from: https://simulators.redbirdflight.com/ (2022).
  40. Teufel, H. J., et al. MPI motion simulator: development and analysis of a novel motion simulator. Proceedings of the AIAA Modeling and Simulation Technologies Conference and Exhibit (AIAA 2007). , Hilton Head, South Carolina. (2007).

Доступ ограничен. Войдите в систему или начните пробный период, чтобы просмотреть этот контент.

Перепечатки и разрешения

Запросить разрешение на повторное использование текста или иллюстраций этой статьи JoVE

Запросить разрешение

Теги

Virtual RealityControlled RotationMultisensory IntegrationVisual Vestibular CuesObserver MotionArduino ControlUnity IntegrationSteamVR PluginInduced MotionHead Mounted Display

Похожие статьи