Artykuł metodologiczny

Kontrolowana rotacja ludzkich obserwatorów w środowisku wirtualnej rzeczywistości

DOI:

10.3791/63699

21 kwietnia 2022

W tym artykule

Podsumowanie

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

Kontrolowany fizyczny obrót ludzkiego obserwatora jest pożądany dla pewnych eksperymentalnych, rekreacyjnych i edukacyjnych zastosowań. W tym artykule przedstawiono metodę przekształcania biurowego krzesła obrotowego w medium do kontrolowanego obrotu fizycznego w środowisku rzeczywistości wirtualnej.

Streszczenie

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

Niski koszt i dostępność systemów wirtualnej rzeczywistości (VR) przyczyniły się do niedawnego przyspieszenia badań nad percepcją i zachowaniem w bardziej naturalistycznych, multisensorycznych i immersyjnych warunkach. Jednym z obszarów badań, który szczególnie skorzystał na wykorzystaniu systemów VR, jest integracja multisensoryczna, na przykład integracja sygnałów wzrokowych i przedsionkowych w celu uzyskania poczucia ruchu własnego. Z tego powodu dostępna metoda kontrolowanego fizycznego obrotu obserwatora w środowisku wirtualnym stanowi użyteczną innowację. W artykule przedstawiono metodę automatyzacji obrotu biurowego krzesła obrotowego wraz z metodą integracji tego ruchu z doświadczeniem VR. Na przykładzie eksperymentu wykazano, że wytworzony w ten sposób ruch fizyczny jest zintegrowany z doświadczeniem wzrokowym obserwatora w sposób zgodny z oczekiwaniami; Wysoka integracja, gdy ruch jest zgodny z bodźcem wzrokowym i niska integracja, gdy ruch jest niezgodny.

Wprowadzenie

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

Wiele wskazówek łączy się w naturalnych warunkach, aby wytworzyć poczucie własnego ruchu1. Uzyskanie takiego poczucia jest celem wielu rekreacyjnych, zdrowotnych i edukacyjnych aplikacji VR2,3,4,5, a proste zrozumienie, w jaki sposób wskazówki łączą się, aby dać poczucie ruchu własnego, było długoterminowym przedsięwzięciem neurobiologów6,7,8,9,10,11. Trzy najważniejsze klasy wskazówek dla percepcji własnego ruchu to wzrokowe, przedsionkowe i proprioceptywne1. Wszystkie trzy łączą się ze sobą podczas naturalnego, aktywnego ruchu w świecie rzeczywistym, zapewniając solidne i bogate poczucie własnego ruchu. Aby zrozumieć rolę każdej klasy wskazówek i zorientować się, w jaki sposób wskazówki się łączą, badacze tradycyjnie pozbawiali eksperymentalnych obserwatorów jednej lub więcej wskazówek i/lub umieszczali wskazówki w konflikcie ze sobą1,12. Na przykład, aby zapewnić rotacyjne wskazówki przedsionkowe w przypadku braku wskazówek proprioceptywnych, obserwator może być obracany pasywnie przez zmotoryzowane krzesło13,14,15,16. Wykazano, że taki pasywny ruch dostarcza bardzo przekonujących wskazówek do samodzielnego ruchu17. Kontrolowane sygnały wizualne dostarczane przez gogle VR mogą być zgodne lub niezgodne z ruchem krzesła lub całkowicie nieobecne. Sygnały proprioceptywne mogą być dodawane poprzez obracanie krzesła przez obserwatora o własnych siłach, np. poprzez popychanie krzesła stopami.

Przedstawiona tutaj jest metoda przekształcania biurowego krzesła obrotowego w medium do fizycznego obracania ciała obserwatora i integrowania tego ruchu z wizualnym (i potencjalnie słuchowym) wirtualnym doświadczeniem. Obrót krzesła może być pod kontrolą obserwatora, programu komputerowego lub innej osoby, takiej jak eksperymentator. Obrót sterowany przez obserwatora może być pasywny, polegający na tym, że obrót napędzany silnikiem jest funkcją położenia ręcznego kontrolera obserwatora, lub aktywny poprzez wyłączenie fotela i samodzielne obracanie krzesła przez obserwatora.

Również prezentowana jest psychofizyczna aplikacja dla tego krzesła/systemu VR. Ta przykładowa aplikacja podkreśla przydatność kontrolowanej rotacji biernej obserwatora w zrozumieniu, w jaki sposób sygnały dotyczące ruchu własnego oddziałują na siebie, tworząc ogólne doświadczenia percepcyjne. Konkretnym celem było uzyskanie wglądu w długo badany ruch wywołany iluzją wizualną18,19. W ruchu indukowanym nieruchomy lub ruchomy cel jest percepcyjnie "odpychany" od poruszającego się tła. Na przykład, jeśli czerwona kropka docelowa przesuwa się pionowo w górę na tle pola niebieskich kropek poruszających się w prawo, kropka docelowa będzie wyglądać tak, jakby poruszała się w górę, zgodnie z oczekiwaniami, ale także w lewo, od kierunku poruszającego się tła20,21. Celem było sprawdzenie, czy odpychanie jest wynikiem interpretacji ruchu tła jako spowodowanego ruchem własnym22,23.

Jeśli tak jest, to dodanie fizycznego obrotu, który jest zgodny z wizualnym ruchem tła, powinno prowadzić do silniejszego poczucia, że ruch tła jest spowodowany samoczynnym obracaniem się w nieruchomym środowisku. To z kolei powinno prowadzić do większej tendencji do odejmowania ruchu tła od ruchu celu, aby uzyskać ruch celu względem świata stacjonarnego23. Ta zwiększona tendencja do odejmowania skutkowałaby większym postrzeganym odpychaniem celu. Fizyczna autorotacja, która była zgodna lub niespójna z ruchem tła, została dodana, aby to przetestować. Prezentowany tutaj system pozwolił na precyzyjną kontrolę ruchu fizycznego i odpowiadającego mu ruchu wzrokowego w celu przetestowania tej hipotezy. W tym przykładzie ruch krzesła był pod bezpośrednią kontrolą obserwatora za pomocą ręcznego kontrolera systemu VR.

Chociaż w literaturze można znaleźć wiele przykładów zmotoryzowanych obrotowych krzeseł do różnych zastosowań VR 24,25,26,27,28,29, autorzy nie znają zwięzłego zestawu instrukcji, jak zrobić takie krzesło i zintegrować je z interaktywnym doświadczeniem VR. Dostępne są ograniczone instrukcje dla klasy SwiVRChair29, która ma podobną strukturę do tej przedstawionej tutaj, ale została zaprojektowana z myślą o innym celu, to znaczy ma być sterowana przez program komputerowy w celu poprawy immersji w środowisku VR, w którym ruch krzesła może być zastąpiony przez użytkownika, kładąc stopy na ziemi. Biorąc pod uwagę koszt dostępnych na rynku krzeseł30,31, stworzenie jednego "własnego" może być bardziej opłacalną opcją dla niektórych badaczy. Dla osób znajdujących się w takiej sytuacji powinien być przydatny poniższy protokół.

Przegląd systemu
Protokół składa się z instrukcji przekształcania krzesła biurowego w elektrycznie napędzane krzesło obrotowe i integrowania ruchu krzesła z doświadczeniem VR. Cały system, po skompletowaniu, składa się z czterech części: mechanicznej, elektrycznej, oprogramowania i podsystemu VR. Zdjęcie całego systemu jest pokazane w Rysunek 1. Pokazany system to ten sam system, który został użyty w przykładowym eksperymencie.

Zadaniem podsystemu mechanicznego jest fizyczne obracanie górnego wału krzesła obrotowego za pomocą silnika. Składa się z krzesła biurowego, do którego przymocowane są dwie rzeczy: koło pasowe przymocowane do górnego obrotowego wału krzesła biurowego oraz regulowana rama montażowa przymocowana do dolnej stałej części wału. Elektryczny silnik krokowy jest przymocowany do uchwytu, który ma koło pasowe przymocowane do wału, które pokrywa się z kołem pasowym na górnym wale krzesła biurowego. Pasek łączy koło pasowe silnika z kołem pasowym krzesła, umożliwiając silnikowi obracanie krzesła.

Podsystem elektryczny dostarcza moc do silnika i umożliwia elektroniczne sterowanie silnikiem. Składa się ze sterownika silnika, zasilacza dla silnika, płytki Arduino do połączenia sterownika z komputerem oraz zasilacza dla Arduino (opcjonalnie). Płytka Arduino to popularna mała płytka wśród hobbystów i profesjonalnych twórców wszystkiego, co elektroniczne, która zawiera programowalny mikroprocesor, kontrolery, piny wejściowe i wyjściowe oraz (w niektórych modelach) port USB (wymagany tutaj). Wszystkie komponenty elektryczne są umieszczone w specjalnie zmodyfikowanej, izolowanej elektrycznie skrzynce. Ponieważ zasilanie sieciowe jest wymagane dla transformatora, który dostarcza energię do silnika i dla (opcjonalnego) zasilacza Arduino, a także ponieważ silnik wymaga wysokich napięć roboczych, wszystkie prace elektroniczne z wyjątkiem niskonapięciowych (kroki protokołu 2.5 do 2.10 poniżej) powinny być wykonywane przez wykwalifikowaną osobę.

Podsystem oprogramowania składa się z oprogramowania Arduino do programowania Arduino, oprogramowania Unity do tworzenia środowiska VR, oprogramowania Steam do sterowania systemem VR oraz Ardity - wtyczki Unity, która pozwala Unity komunikować się z płytą Arduino. To oprogramowanie zostało zainstalowane na laptopie Gygabyte Sabre 15WV8 z systemem Microsoft Windows 10 Enterprise na potrzeby przykładowego eksperymentu (Rysunek 1).

System VR składa się z wyświetlacza montowanego na głowie (HMD), kontrolera ręcznego oraz stacji bazowych do określania pozycji i orientacji gogli i kontrolera w przestrzeni. Systemem VR wykorzystanym w tym projekcie był HTC Vive Pro (Rysunek 1).

Poniżej opisana jest procedura łączenia tych komponentów w celu uzyskania wirtualnego doświadczenia, które obejmuje fizyczną rotację (eksperyment lub inną) z ruchem krzesła kontrolowanym przez obserwatora za pomocą ręcznego kontrolera lub przez gospodarza/eksperymentatora za pomocą myszy komputerowej lub potencjometru. Ostatnia część protokołu składa się z kroków niezbędnych do zainicjowania doświadczenia VR. Należy pamiętać, że metoda kodowania aparatu Unity w celu umożliwienia prób i zbierania danych wykracza poza zakres tego manuskryptu. Niektóre etapy, szczególnie w przypadku podsystemu mechanicznego, wymagają określonego wyposażenia warsztatowego i pewnego poziomu umiejętności. Zasadniczo przedstawione metody mogą być dostosowywane do dostępności tych zasobów. Oferowane są alternatywy dla niektórych bardziej technicznych kroków.

Dostęp ograniczony. Zaloguj się lub rozpocznij wersję próbną, aby wyświetlić tę treść.

Protokół

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

UWAGA: Prace elektryczne powinny być wykonywane przez wykwalifikowaną osobę.

1. Procedura konfiguracji systemu mechanicznego

  1. Przymocuj główne koło pasowe do górnego wału krzesła obrotowego.
    1. Usuń górny wał.
      UWAGA: Zazwyczaj polega to na umieszczeniu krzesła na boku i usunięciu kołka u podstawy krzesła, który zapobiega wysuwaniu się górnego wału z dolnego wału.
    2. Dopasuj ciernie koło pasowe do wału.
      1. Użyj suwmiarki z noniuszem, aby uzyskać średnicę wału. Użyj tokarki, aby wywiercić otwór koła pasowego tak, aby pasował do średnicy wału.
      2. Utwórz gwintowane otwory na, które przymocują koło pasowe do wału. Wywierć dodatkowe otwory w piaście koła pasowego, aby uzyskać w sumie 4, dopasowując średnicę do średnicy. Nagwintuj otwory za pomocą gwintownika, aby można było użyć do zamocowania koła pasowego do wału, dopasowując gwint do gwintu
        UWAGA: ALTERNATYWĄ, jeśli utworzenie gwintu nie jest możliwe, jest przewiercenie do końca piasty koła pasowego i wału krzesła i przekręcenie do końca po ustaleniu prawidłowego umieszczenia koła pasowego (po kroku 1.4.6).
      3. Wsuń koło pasowe na wał krzesła.
      4. Włóż luźno (dokręć po wyrównaniu koła pasowego głównego i małego).
    3. Umieść pasek napędowy luźno na górnym wale krzesła (aby później pasował do głównego i małych kół pasowych).
    4. Ponownie przymocuj górny trzon krzesła do podstawy krzesła.
  2. Przymocuj mocowanie silnika do dolnego wału krzesła obrotowego.
    1. Wykonać regulowany zacisk, do którego można przymocować wsporniki montażowe silnika.
      1. Wykonaj dwa pasujące elementy zacisku - po jednym z każdej strony wału (do ściśnięcia czterema). Zobacz Rysunek 2 dla wymiarów.
      2. Dla każdego elementu przytnij kątownik 90° na długość. Przymocuj 4 skrzydła, przez które będą przebiegać.
      3. Zaokrąglij krawędzie każdego skrzydła (metalowy pręt) dla bezpieczeństwa. Wywierć otwory w pobliżu końca każdego pręta wystarczająco duże, aby zmieściły się w nich. Wykonaj zgięcie pod kątem 45° w odpowiedniej pozycji (naciąć pręt, aby zagięcie było bardziej precyzyjne). Przyspawaj punktowo każdy pręt do kątowych otworów na żelazne na zewnątrz.
        UWAGA: ALTERNATYWNIE skrzydła można przykręcić, uważając, aby nie spowodować występu, który uniemożliwi kątownikowi kontakt z wałem krzesła.
    2. Wykonaj dwa wsporniki montażowe silnika. Zobacz Rysunek 3 dla wymiarów. Dla każdego wspornika wywierć dwa otwory w pręcie do zamocowania do zacisku właśnie opisanego. Zegnij pod kątem 90° w odpowiedniej pozycji (naciąć pręt, aby zgięcie było bardziej precyzyjne).
    3. Przymocuj zacisk i uchwyt do dolnego wału krzesła, wkładając 4 przez clamp elementy i wsporniki i dokręć. Upewnij się, że nie są zbyt mocno dokręcone, jeśli mocowanie wymaga regulacji, aby dostosować się do procesu wyrównywania w kroku 1.4.6.
  3. Przymocuj małe koło pasowe do wału silnika.
    1. Zeszlifuj klucz na wale silnika płasko (już nie wystaje).
      UWAGA: Zapewni to płaską powierzchnię, do której można dokręcić koła pasowego, aby zapobiec ślizganiu się koła pasowego wokół wału silnika.
    2. Wywierć otwór w kole pasowym, aby dopasować go do średnicy wału silnika.
    3. Nasuń koło pasowe na wał i luźno dokręć do płaskiej powierzchni wału.
  4. Przymocuj silnik do wspornika silnika opisanego powyżej.
    1. Przygotuj każdą z 4 listew mocujących silnik, wiercąc dwa otwory w odpowiednich pozycjach (otwory muszą pokrywać się z otworami montażowymi w silniku). Zobacz Rysunek 4, aby zapoznać się z wymiarami.
    2. Jeśli jest to wymagane w celu uzyskania luzu, wytnij sekcję z górnej części dwóch prętów, aby umożliwić swobodne obracanie się koła pasowego na wale silnika (opcjonalnie).
    3. Umieść cztery małe wsporniki mocujące pokrywę nad czterema zewnętrznymi otworami. Użyj ich później, aby przymocować osłonę ochronną na pasek i koła pasowe.
    4. Luźno przymocuj osiem nakrętek i, pozostawiając miejsce między górnym i dolnym prętem, aby wsunąć między nie pręty wspornika montażowego.
    5. Wsuń pręty montażowe silnika na wspornik - każdy górny pręt powyżej pręta wspornika montażowego i każdy dolny poniżej.
    6. Ustawić i zacisnąć silnik.
      1. Przesuń główne koło pasowe, małe koło pasowe lub oba w górę iw dół, aż główne i małe koła pasowe zostaną wyrównane poziomo. W razie potrzeby przesuń zacisk.
      2. Umieść pasek napędowy na małych i głównych kołach pasowych.
      3. Odsuń zespół silnika od krzesła, aż pasek będzie napięty.
      4. Dokręć 8 na prętach mocujących silnik, aby przymocować silnik do wspornika silnika.
      5. Dokręcić zaciskowe i koła pasowego.
  5. Załóż osłonę, aby zapobiec zaplątaniu się czegokolwiek w system koła pasowego/paska.
    1. Zegnij boki akrylowej osłony ochronnej zgodnie z Rysunek 5.
      UWAGA: ALTERNATYWĄ, jeśli giętarka do akrylu nie jest dostępna, jest użycie giętarki do blach i blachy.
    2. Wytnij sekcję, która zmieści się wokół trzonu krzesła zgodnie z Rysunek 5.
    3. Wywierć otwory pasujące do otworów w małych wspornikach mocujących pokrywę.
    4. Użyj małych mocujących pokrywę, aby przymocować pokrywę.

2. Procedura konfiguracji systemu elektrycznego

  1. Podłącz włącznik/wyłącznik i wyłącznik awaryjny do zasilania sieciowego. Użyj odpowiednich o napięciu i prądzie, aby podłączyć łącznik IEC (męskie złącze do zasilającego) do wyłącznika awaryjnego i wyłącznika awaryjnego i włącznika/wyłącznika szeregowo (tak, że przerwanie obwodu za pomocą któregokolwiek z nich spowoduje odcięcie zasilania pozostałych komponentów).
    UWAGA: Może być wymagane.
  2. Podłącz zasilacz 5 V DC dla Arduino do włącznika/wyłącznika (opcjonalnie).
    UWAGA: Wymagane jest i zasilający.
  3. Podłącz zasilacz 48 V DC sterownika krzesła do włącznika/wyłącznika równolegle do zasilacza 5 V.
    UWAGA: Wymagany jest zasilający.
  4. Dokonaj odpowiednich ustawień przełącznika DIP dla sterownika hybrydowego silnika krokowego. Na przykład:
    1. Ustaw przełączniki 1-4 odpowiednio na ON, OFF, ON i ON na 1,600 impulsów na obrót dla silnika krokowego (im wyższa liczba, tym dokładniejsze sterowanie, ale tym niższy limit prędkości obrotowej w zależności od tego, jak szybko Arduino może wytwarzać impulsy).
    2. Przełącz 5 na OFF, aby uzyskać domyślny kierunek obrotu w kierunku przeciwnym do ruchu wskazówek zegara.
    3. Przełącznik 6 w pozycji ON dla trybu ruchu punktu napędu (PM), w przeciwieństwie do trybu sterowania wektorem przestrzennym (lub sterowania zorientowanego na pole, FOC).
    4. Ustaw przełączniki 7 i 8 na OFF i OFF, aby dopasować sterownik do silnika z zamkniętą pętlą serii 86 12 NM.
  5. Podłącz sterownik hybrydowego silnika krokowego do zasilacza i sterownika krzesła.
    1. Podłącz o odpowiednich parametrach z zacisków wyjściowych zasilacza 48 V do obudowy złącza wejściowego zasilania sterownika silnika i włóż obudowę.
    2. Podłącz dwa silnika przez ich obudowy złączy do sterownika.
  6. Podłącz Arduino do sterownika hybrydowego silnika krokowego.
    1. Użyj przypinanych przewodów rozruchowych, aby połączyć zaciski PUL+ ("impuls" +), DIR+ ("kierunek" +) i ENA+ ("włącz" +) na obudowie złącza sterownika silnika z pinami 2, 3 i 5 (numery pinów opcjonalne, ale podane tutaj jako przykłady do użycia w całym tekście) na Arduino.
    2. Użyj krótkich przewodów, aby połączyć zaciski PUL-, DIR- i ENA- obudowy złącza sterownika silnika, a dłuższy przewód rozruchowy z pinami, aby podłączyć ENA- do pinu GND (masy) w Arduino.
    3. Włóż obudowę złącza do sterownika silnika.
  7. Podłącz Arduino do zasilacza 5 V DC (opcjonalnie). Użyj pinowych przewodów rozruchowych, aby połączyć piny GND i Vin na Arduino z zaciskami wyjściowymi 5 V zasilacza 5 V.
  8. Podłącz potencjometr do Arduino. Użyj przypinanych przewodów rozruchowych, aby podłączyć GND A1 (zacisk "wejścia analogowego") i piny 5 V na Arduino do trzech zacisków potencjometru.
    UWAGA: Wymagane.
  9. Podłącz przełącznik dwustabilny do Arduino. Podłącz pin 6 i GND w Arduino do dwóch zacisków przełącznika za pomocą przypiętych przewodów rozruchowych.
    UWAGA: Wymagane.
  10. Podłącz diodę LED do Arduino.
    1. rezystor do jednego zacisku diody LED (aby obniżyć napięcie w obwodzie diody LED).
    2. Podłącz piny 7 i GND na Arduino do końca rezystora i drugiego zacisku LED za pomocą przypiętych przewodów rozruchowych.
      UWAGA: Wymagane.
  11. Zaizoluj i umieść komponenty elektryczne/elektroniczne. Zobacz Rysunek 6 dla obrazu kompletnego systemu mieszkaniowego.
    UWAGA: Istnieje wiele sposobów izolowania wysokonapięciowych elementów układu elektrycznego, ochrony delikatnych elementów elektronicznych przed uszkodzeniem i przechowywania wszystkich tych elementów w łatwej do opanowania przestrzeni. Poniżej znajduje się jedna z sugerowanych metod.
    1. Wywierć/wytnij otwory z boku obudowy przyrządu na złącze zasilania IEC, główny włącznik/wyłącznik, dwa sterujące silnikiem, mały przełącznik, diodę LED, potencjometr i port USB Arduino (powinien być duży, aby umożliwić przepływ powietrza do obudowy w celu chłodzenia).
    2. Przymocuj każdy z tych elementów za pomocą odpowiednich środków (np.,, pistoletu do klejenia na gorąco).
    3. Wytnij otwory wentylacyjne (jeden nad wentylatorem w zasilaczu 48 V) oraz otwór na wyłącznik awaryjny w pokrywie obudowy, a następnie zamocuj filtry wentylacyjne i wyłącznik.
    4. Przymocuj Arduino do podstawy obudowy za pomocą podkładek dystansowych i. Ustaw tak, aby port USB był wyrównany z otworem portu USB w obudowie.
    5. Przymocuj zasilacze 48 V i 5 V oraz sterownik silnika do podstawy obudowy za pomocą rzepów i bloków piankowych.

3. Procedura konfiguracji VR

  1. Skonfiguruj system VR zgodnie z instrukcjami producenta.

4. Procedura instalacji oprogramowania

  1. Zainstaluj i skonfiguruj oprogramowanie Arduino.
    1. Pobierz i zainstaluj program Arduino zgodnie z instrukcjami programisty.
    2. Podłącz Arduino do komputera za pomocą USB.
    3. W menu rozwijanym Narzędzia wybierz port, do którego podłączona jest płytka Arduino.
    4. W tym samym menu wybierz odpowiednią płytę główną i procesor. Upewnij się, że pasuje do płyty i procesora użytego w sekcji 2 powyżej, np. płyta "Arduino Mega 2560" i procesor "ATmega2560".
  2. Zaprogramuj płytkę Arduino tak, aby umożliwiała obracanie krzesła 1) za pomocą potencjometru oraz 2) za pomocą poleceń z komputera przez USB.
    1. Napisz kod, który ma zostać wgrany do procesora Arduino.
      UWAGA: Przykładowy kod z przykładowego eksperymentu znajduje się w pliku uzupełniającym 1 (nazwa pliku: hybrid_motor_controller.ino).
    2. Zwróć uwagę na szybkość transmisji (argument polecenia Serial.Begin()), np. 9 600.
    3. Zapisz kod i prześlij go na płytkę Arduino za pomocą przycisku przesyłania.
  3. Sprawdź, czy system działa do tej pory.
    1. Podłącz i włącz podsystem elektryczny.
    2. Przesuń mały przełącznik do pozycji, w której zaświeci się mała kontrolka LED.
    3. Obróć potencjometr, aby upewnić się, że kontroluje prędkość i kierunek krzesła.
  4. Zainstaluj i skonfiguruj Steam i SteamVR zgodnie z instrukcjami programisty.
  5. Zainstaluj i skonfiguruj aparat Unity.
    1. Zainstaluj i skonfiguruj aparat Unity zgodnie z instrukcjami programisty.
    2. Otwórz nowy lub istniejący projekt Unity (wybierz typ, np. "3D", który jest odpowiedni dla aplikacji).
    3. Skonfiguruj SteamVR do użycia w projekcie.
      1. Otwórz magazyn zasobów (kliknij Okno | Magazyn zasobów).
      2. Wyszukaj SteamVR i wybierz wtyczkę SteamVR.
      3. Kliknij przycisk Dodaj do zasobów.
      4. W środowisku Unity otwórz Menedżera pakietów (kliknij pozycję Okno | Menedżer pakietów).
      5. Znajdź SteamVR w zakładce "Moje zasoby".
      6. Kliknij przycisk Importuj i postępuj zgodnie z instrukcjami, aby zakończyć importowanie.
      7. Kliknij przycisk Zaakceptuj wszystko, jeśli pojawi się monit o wprowadzenie zmian konfiguracyjnych.
      8. Zaimportuj zestaw kamery Steam VR do sceny. Poszukaj nowego zasobu o nazwie Steam VR w oknie projektu na ekranie inspektora. Otwórz gotowców Steam VR |
      9. Przeciągnij zasób [Camera Rig] do hierarchii lub okna sceny, aby umożliwić korzystanie z gogli VR i kontrolerów w grze.
      10. Usuń domyślną kamerę główną z hierarchii lub sceny, ponieważ będzie ona kolidować z kamerą SteamVR.
  6. Zainstaluj i skonfiguruj Ardity.
    1. Wyszukaj Ardity w sklepie Unity Asset Store i wybierz go do pobrania (krok 4.5.3.2 powyżej).
    2. Zaktualizuj poziom zgodności interfejsu API.
      1. Otwórz Ustawienia projektu w menu Edycja.
      2. Kliknij Gracz | Inne ustawienia.
      3. Wybierz pozycję .NET 4.X z menu rozwijanego dla poziomu zgodności interfejsu API.
      4. Wyjdź z Ustawień i poczekaj, aż znikną komunikaty o błędach.
  7. Konfigurowanie środowiska gry Unity.
    UWAGA: Aby użytkownik miał kontrolę nad krzesłem i mógł zintegrować ruch krzesła z doświadczeniem VR, wymagane będą następujące minimalne kroki.
    1. Utwórz obiekty i funkcje potrzebne dla określonej aplikacji.
      1. Utwórz obiekty, klikając na GameObject i wybierając opcję 2D Object (Obiekt 2D) lub 3D Object (Obiekt 3D).
      2. Dodaj funkcjonalność do utworzonego obiektu, klikając przycisk Dodaj komponent w oknie Inspektor dla obiektu i wybierając jedną z opcji. Wybierz pozycję Nowy skrypt, aby utworzyć skrypt języka C# podobny do tego w pliku uzupełniającym 3 (nazwa pliku: SetUpTrial.cs).
    2. Zaimportuj skrypt kontrolera szeregowego do gry.
      1. W folderze Zasoby w oknie Projekt otwórz folder Ardity | Folder skryptów.
      2. Przeciągnij skrypt SerialController do żądanego obiektu gry w oknie Heirarchiy, np. obiektu gry Background.
      3. Kliknij obiekt i przewiń listę komponentów w oknie Inspector, aby zlokalizować skrypt SerialController.
      4. Upewnij się, że nazwa portu i szybkość transmisji są zgodne z tymi dla programu Arduino ustawionymi w krokach 4.1 i 4.2 powyżej.
      5. Przeciągnij obiekt, do którego jest dołączony skrypt SerialController, z okna hierarchii do pola wejściowego obok pozycji Odbiornik komunikatów w oknie Inspektor
      6. .
    3. Napisz i zaimportuj skrypt kontrolera krzesła do gry.
      1. U dołu okna Inspector dla tego samego obiektu gry kliknij Dodaj komponent i wybierz Nowy skrypt. Nazwij nowy skrypt ChairController.
      2. Napisz kod wymagany do przyjmowania poleceń kontrolera i myszy i przekształcania ich w liczby, które zostaną wysłane przez USB do Arduino.
        UWAGA: Minimalny przykład wymaganego kodu znajduje się w pliku uzupełniającym 2 (nazwa pliku: ChairController.cs).
      3. Zapisz skrypt.
      4. Wypełnij puste pola w oknie Inspector (Inspektor). Przeciągnij obiekt gogli z okna Hierarchia do pola wprowadzania obok pozycji Head w obszarze Skrypt kontrolera krzesła w oknie Inspector (Inspektor). Podobnie przeciągnij obiekt Kontroler (po prawej) do pola obok opcji Ręka.

5. Procedura eksperymentu (lub doświadczenia)

  1. Wybierz metodę wprowadzania.
    UWAGA: Podany przykładowy kod ChairController odnosi się do skryptu o nazwie SetUpTrial, w którym ustawiana jest publiczna zmienna całkowita inputType (gdzie inputType 3 to kontroler VR, a inputType 4 to mysz). Ten układ skrypt/zmienna został przyjęty w poniższych krokach.
  2. Kliknij obiekt gry, do którego dołączony jest skrypt SetUpTrial, np. Tło.
  3. Przewiń w dół w oknie Inspector (Inspektor), aby znaleźć zmienne publiczne skryptu SetUpTrial.
  4. Ustaw inputType na 3 dla kontrolera VR lub 4 dla sterowania myszą.
  5. Naciśnij przycisk Odtwórz w środowisku Unity, aby rozpocząć korzystanie z VR z ruchem sterowanym przez kontrolery lub mysz.

Dostęp ograniczony. Zaloguj się lub rozpocznij wersję próbną, aby wyświetlić tę treść.

Wyniki

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

Celem przykładowego eksperymentu było ustalenie, czy dodanie rotacji fizycznej - zgodnej lub niezgodnej z wizualnym ruchem tła w scenie - wpłynęło na postrzegany kierunek poruszającego się celu w tej scenie. Oczekiwano różnicy między przystającym i nieprzystającym ruchem fizycznym w oparciu o hipotezę, że ruch tła wpływa na postrzegany kierunek celu w zależności od tego, jak łatwo układ wzrokowy uczestnika przypisuje przyczynę ruchu tła ruchowi własnemu32,33. Jeś...

Dostęp ograniczony. Zaloguj się lub rozpocznij wersję próbną, aby wyświetlić tę treść.

Dyskusja

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

W artykule przedstawiono metodę dodawania automatycznego obrotu do krzesła biurowego pod kontrolą obserwatora lub eksperymentatora oraz towarzyszącą mu metodę integracji tego ruchu z wirtualnym doświadczeniem. Krytyczne kroki obejmują mechaniczne przymocowanie silnika do krzesła, ustawienie zasilania i elektrycznego sterowania silnikiem, a następnie skonfigurowanie Arduino i komputera do sterowania sterownikiem silnika. Krok mocowania mechanicznego wymaga specjalistycznego sprzętu i umiejętności, chociaż w przypadku najt...

Dostęp ograniczony. Zaloguj się lub rozpocznij wersję próbną, aby wyświetlić tę treść.

Oświadczenia

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

Nie ma konfliktu interesów.

Podziękowania

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

Ta praca była wspierana przez granty Australijskiej Rady ds. Badań Naukowych DP160104211, DP190103474 i DP190103103.

Dostęp ograniczony. Zaloguj się lub rozpocznij wersję próbną, aby wyświetlić tę treść.

Materiały

Lista materiałów użytych w tym artykule
NazwaFirmaNumer katalogowyKomentarze
Zasilacz 48 V DC (silnik)MeanwellRSP-320-48https://www.meanwellaustralia.com.au/products/rsp-320
Zasilacz 5 V DC (arduino)JaycarMP3295https://www.jaycar.com.au/15w-5v-3a-enclosed-power-supply/p/MP3295?pos=5&queryId=dda344422ab16c6
7f558551ac0acbd40
Wtyczka Ardity dla 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
Oprogramowanie Arduinohttps://www.arduino.cc/en/software
BeltMotion DynamicsRFTB10010Wybierz rozmiar, który pasuje do zastosowania. Użyliśmy 60 zębów. https://www.motiondynamics.com.au/polyurethane-timing-belts-16mm-t-10/
wspornika (silnik mocujący)Fastner Factory161260x 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
wspornika (nie trzymające silnika)Fastner Factory161258x 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
Kątownik zaciskowyŻelazko Austral Wright Metals50004813x 2. https://www.australwright.com.au/products/stainless-steel/stainless-steel-bar-round-flat-angle-square/
zaciskoweFabryka łączników161265x 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  
Listwy zaciskowe (płaskownik nierdzewny)Austral Wright Metals50004687x 8. https://www.australwright.com.au/products/stainless-steel/stainless-steel-bar-round-flat-angle-square/
Pokrywa (akrylowa)Bunnings Warehouse1010489https://www.bunnings.com.au/suntuf-900-x-600-x-5mm-grey-acrylic-sheet_p1010489
/nakrętki pokrywyBunnings Warehouse247292x 4. https://www.bunnings.com.au/pinnacle-m3-x-16mm-stainless-steel-hex-head-bolts-and-nuts-12-pack_p0247292
Wsporniki pokrywyBunnings Magazyn44061x 4. https://www.bunnings.com.au/zenith-20mm-zinc-plated-angle-bracket-16-pack_p0044061
Wyłącznik awaryjnyJaycarSP0786https://www.jaycar.com.au/latching-emergency-stop-switch/p/SP0786?pos=1&queryId=5abe9876cf78dc3d
d26b9067fbc36f74
Hybrydowy silnik krokowy i sterownikVevor?Silnik krokowy z zamkniętą pętlą Nema 34 12NM Silnik serwo Sterownik hybrydowy https://vevor.com.au/products/1712oz-in-nema34-closed-loop-stepper-motor-12nm-hybrid-servo-driver-hsc86-kit?variant=33058303311975
Złącze zasilania sieciowego IECKomponenty RS811-7213
https://au.rs-online.com/web/p/iec-connectors/8117213 Walizka przyrządu (obudowa)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=
trafność
Koło pasowe główne (krzesło)Dynamika ruchuALTP10020Wybierz rozmiar, który pasuje do zastosowania. Więcej zębów = wolniejsze obroty. Użyliśmy 36 zębów. https://www.motiondynamics.com.au/timing-pulleys-t10-16mm.html
Belki mocujące silnik (płaskownik ze stali nierdzewnej)Austral Wright Metals50004687x 4. https://www.australwright.com.au/products/stainless-steel/stainless-steel-bar-round-flat-angle-square/
Wsporniki montażowe (płaskownik nierdzewny)Austral Wright Metals50004687x 2. https://www.australwright.com.au/products/stainless-steel/stainless-steel-bar-round-flat-angle-square/
Nakrętki Fabrykazapięć161989x 12. https://www.thefastenerfactory.com.au/stainless-steel-hex-nylon-insert-lock-nut-m6-100pc
Włącznik/wyłącznikJaycarSK0982https://www.jaycar.com.au/dpdt-illuminated-rocker-large-red/p/SK0982?pos=4&queryId=88e0c5abfa682b74
FA631C6D513ABC73& sort=trafność
PotencjometrJaycarRP8610https://www.jaycar.com.au/10k-ohm-logarithmic-a-single-gang-9mm-potentiometer/p/RP8610?pos=4&queryId=0d1510281ba100d
174b8e3d7f806a020
koła pasowego Fabrykałączników155856x 5.
Rezystor https://www.thefastenerfactory.com.au/stainless-steel-hex-socket-head-cap-screw-m4-x-25mm-100pc 150 OhmJaycarRR2554https://www.jaycar.com.au/150-ohm-1-watt-carbon-film-resistors-pack-of-2/p/RR2554?pos=19&queryId=48c6317c73fd361
a42c835398d282c4a& sort=
trafność
Małe koło pasowe (silnik)Dynamika ruchuALTP10020Wybierz rozmiar, który pasuje do zastosowania. Więcej zębów = szybsza rotacja. Użyliśmy 24 zębów. https://www.motiondynamics.com.au/timing-pulleys-t10-16mm.html
Mały przełącznik dwustabilnyJaycarST0555https://www.jaycar.com.au/sealed-mini-toggle-switch/p/ST0555?pos=14&queryId=066b989a151d83
31885c6cec92fba517& sort=
odpowiedniość
Oprogramowanie SteamValve Corporationhttps://store.steampowered.com/
Wtyczka SteamVR dla SteamValve Corporationhttps://store.steampowered.com/app/250820/SteamVR/
Oprogramowanie UnityUnity Technologieshttps://unity3d.com/get-unity/download
system VRScorptec99HANW007-00HTC Vive Pro z kontrolerami i stacjami bazowymi. https://www.scorptec.com.au/product/gaming-peripherals/vr/72064-99hanw007-00?gclid=Cj0KCQiA5OuNBhCRARIsA
CgaiqX8NjXZ9F6ilIpVmYEhhanm
GA67xLzllk5EmjuG0gnhu4xmiE
_RwSgaAhn8EALw_wcB
: ,

Bibliografia

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).

Dostęp ograniczony. Zaloguj się lub rozpocznij wersję próbną, aby wyświetlić tę treść.

Przedruki i uprawnienia

Poproś o pozwolenie na ponowne wykorzystanie tekstu lub ilustracji tego artykułu JoVE

Poproś o pozwolenie

Tagi

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

Powiązane artykuły