JoVE Logo

로그인

JoVE 비디오를 활용하시려면 도서관을 통한 기관 구독이 필요합니다. 전체 비디오를 보시려면 로그인하거나 무료 트라이얼을 시작하세요.

기사 소개

  • 요약
  • 초록
  • 서문
  • 프로토콜
  • 결과
  • 토론
  • 공개
  • 감사의 말
  • 자료
  • 참고문헌
  • 재인쇄 및 허가

요약

인간 관찰자의 제어된 물리적 회전은 특정 실험적, 레크리에이션적, 교육적 응용에 바람직하다. 이 백서에서는 사무실 회전 의자를 가상 현실 환경에서 제어된 물리적 회전을 위한 매체로 변환하는 방법을 간략하게 설명합니다.

초록

가상 현실 (VR) 시스템의 저렴한 비용과 가용성은보다 자연주의적, 다중 감각 및 몰입 형 조건에서 인식과 행동에 대한 최근의 연구 가속화를 지원했습니다. VR 시스템의 사용으로 특히 이익을 얻은 연구 분야 중 하나는 다중 감각 통합, 예를 들어 시각 및 전정 단서의 통합으로 자기 운동 감각을 불러 일으 킵니다. 이러한 이유로, 가상 환경에서 관찰자의 제어된 물리적 회전을 위한 접근 가능한 방법은 유용한 혁신을 나타낸다. 이 백서에서는 사무실 회전 의자의 회전을 자동화하는 방법과 함께 해당 동작을 VR 경험에 통합하는 방법을 제시합니다. 예제 실험을 사용하여, 이렇게 생성 된 물리적 움직임이 기대와 일치하는 방식으로 관찰자의 시각적 경험과 통합된다는 것이 입증됩니다. 움직임이 시각적 자극과 일치 할 때 높은 통합과 움직임이 일치하지 않을 때 낮은 통합.

서문

많은 단서가 자연 조건 하에서 결합하여 자기 운동의 감각을 생성합니다1. 이러한 감각을 생산하는 것은 많은 레크리에이션, 건강 및 교육 VR 응용 프로그램 2,3,4,5에서 목표이며, 단서가 어떻게 결합하여 자기 운동 감각을 부여하는지 이해하는 것은 신경 과학자 6,7,8,9,10,11의 장기적인 노력이었습니다. . 자기 운동 인식을위한 세 가지 가장 중요한 단서 클래스는 시각적, 전정 적 및 고유 한 수용1입니다. 세 가지 모두 현실 세계에서 자연스러운 활동을하는 동안 일치하게 결합하여 견고하고 풍부한 자기 운동 감각을 제공합니다. 각 종류의 단서의 역할을 이해하고 단서가 어떻게 결합되는지에 대한 감각을 얻기 위해 연구자들은 전통적으로 실험 관찰자에게 하나 이상의 단서를 박탈하고 / 또는 서로 충돌하는 단서를배치했습니다 1,12. 예를 들어, 고유 수용 단서가 없을 때 회전 전정 신호를 제공하기 위해, 관찰자는 전동 의자(13,14,15,16)에 의해 수동적으로 회전될 수 있다. 이러한 수동적 운동은 자기 운동(17)에 매우 설득력 있는 단서를 제공하는 것으로 나타났다. VR 헤드셋이 제공하는 제어된 시각적 단서는 의자 동작과 일치하거나 일치하지 않거나 전혀 없을 수 있습니다. 고유 수용 단서는 관찰자가 자신의 힘으로 의자를 회전시키는 것, 예를 들어, 의자를 발로 밀어 넣음으로써 추가 될 수 있습니다.

여기에 제시된 것은 사무실 회전 의자를 관찰자의 신체를 물리적으로 회전시키는 매체로 변환하고 그 움직임을 시각적 (그리고 잠재적으로 청각적인) 가상 경험에 통합하는 방법입니다. 의자의 회전은 관찰자, 컴퓨터 프로그램 또는 실험자와 같은 다른 사람의 통제하에 있을 수 있습니다. 관찰자-제어된 회전은 모터 구동 회전을 관찰자의 핸드헬드 제어기의 위치의 함수로 만들거나, 의자를 끄고 관찰자가 의자 자체를 회전시킴으로써 능동적으로 만들어서 수동적일 수 있다.

또한이 의자 / VR 시스템을위한 정신 물리학 적 응용 프로그램도 제시됩니다. 이 예제 응용 프로그램은 자기 동작 단서가 상호 작용하여 전반적인 지각 경험을 생성하는 방법을 이해하는 데 관찰자의 제어된 수동 회전의 유용성을 강조합니다. 구체적인 목표는 오랫동안 연구 된 시각적 환상 유발 운동18,19에 대한 통찰력을 얻는 것이 었습니다. 유도 된 움직임에서, 고정 또는 움직이는 표적은 움직이는 배경으로부터 지각 적으로 "격퇴"됩니다. 예를 들어, 적색 타겟 점이 오른쪽으로 이동하는 청색 점들의 필드에 대해 수직으로 위쪽으로 이동하면, 타겟 도트는 예상대로 위쪽으로 이동하는 것처럼 보일 뿐만 아니라, 이동 배경(20,21)의 방향으로부터 멀어지면서 왼쪽으로 이동하는 것처럼 보일 것이다. 목표는 반발이 배경 운동을 자기 운동22,23에 의해 야기 된 것으로 해석 한 결과인지 여부를 테스트하는 것이 었습니다.

이 경우, 배경 시각적 움직임과 일치하는 물리적 회전을 추가하면 배경 운동이 고정 된 환경을 통한 자체 회전으로 인한 것이라는 더 강한 감각으로 이어져야합니다. 이것은, 차례로, 정지 세계(23)에 비해 타겟 운동을 얻기 위해 타겟 운동으로부터 배경 운동을 뺄 더 큰 경향으로 이어져야 한다. 이러한 뺄셈 경향의 증가는 더 큰 지각 된 목표 반발을 초래할 것입니다. 배경 운동과 일치하거나 일치하지 않는 물리적 자기 회전이 이것을 테스트하기 위해 추가되었습니다. 여기에 제시된 시스템은 물리적 운동과 그에 상응하는 시각 운동의 정확한 제어가이 가설을 테스트 할 수있게 해주었습니다. 이 예에서 의자 동작은 VR 시스템의 핸드 헬드 컨트롤러를 사용하여 관찰자의 직접 제어하에 있었다.

문헌 24,25,26,27,28,29에는 다양한 VR 응용을위한 전동 회전 의자의 많은 예가 있지만, 저자는 그러한 의자를 만들고 인터랙티브 VR 경험에 통합하기위한 간결한 지침을 알지 못합니다. SwiVRChair(29)에 대해 제한된 명령어가 제공되는데, 이는 구조적으로 여기에서 제시된 것과 유사하지만 다른 목적을 염두에 두고 설계된, 즉 VR 환경에서의 몰입을 개선하기 위해 컴퓨터 프로그램에 의해 구동되는 것, 즉 의자 움직임이 바닥에 발을 올려 놓음으로써 사용자에 의해 재정의될 수 있다. 상업적으로 이용 가능한 의자30,31의 비용을 감안할 때, 하나의 "사내"를 만드는 것이 일부 연구자에게보다 실용적인 옵션 일 수 있습니다. 이 상황에 처한 사람들에게는 아래 프로토콜을 사용해야합니다.

시스템 개요
이 프로토콜은 사무실 의자를 전기 구동 회전 의자로 변환하고 의자 움직임을 VR 경험에 통합하기위한 지침으로 구성됩니다. 전체 시스템은 일단 완료되면 기계, 전기, 소프트웨어 및 VR 서브 시스템의 네 부분으로 구성됩니다. 전체 시스템의 사진은 그림 1에 나와 있습니다. 표시된 시스템은 실시예 실험에 사용된 시스템이었다.

기계식 서브 시스템의 임무는 모터를 통해 회전 의자의 상부 샤프트를 물리적으로 회전시키는 것입니다. 그것은 두 가지가 부착되는 사무실 의자로 구성됩니다 : 사무실 의자의 상부 회전 샤프트에 고정 된 풀리와 샤프트의 하단 고정 부분에 부착 된 조정 가능한 장착 프레임. 전기 스테퍼 모터가 마운트에 부착되어 있으며, 샤프트에 풀리가 부착되어 사무실 의자의 상부 샤프트에있는 풀리와 일렬로 정렬됩니다. 벨트는 모터 풀리를 의자 풀리에 결합시켜 모터가 의자를 회전시킬 수 있도록 합니다.

전기 서브 시스템은 모터에 전력을 공급하고 모터의 전자 제어를 허용합니다. 모터 드라이버, 모터용 전원 공급 장치, 드라이버와 컴퓨터를 인터페이싱하기 위한 Arduino 보드 및 Arduino용 전원 공급 장치(옵션)로 구성됩니다. Arduino 보드는 프로그래밍 가능한 마이크로 프로세서, 컨트롤러, 입력 및 출력 핀, USB 포트 (일부 모델에서는 여기에 필요)가 포함 된 전자 제품의 애호가 및 전문 제조업체 사이에서 인기있는 소형 보드입니다. 모든 전기 부품은 맞춤형 수정 전기 절연 상자에 보관됩니다. 모터에 전력을 공급하는 변압기 및 (옵션) Arduino 전원 공급 장치에 주 전원이 필요하고 모터에 높은 작동 전압이 필요하기 때문에 저전압 전자 작업 (아래의 프로토콜 단계 2.5 ~ 2.10)을 제외한 모든 것은 자격을 갖춘 개인이 수행해야합니다.

소프트웨어 서브시스템은 아두이노 프로그래밍을 위한 아두 이노 소프트웨어, VR 환경을 만들기 위한 Unity 소프트웨어, VR 시스템을 구동하기 위한 Steam 소프트웨어, Unity가 아두 이노 보드와 통신 할 수있게 해주는 Unity 플러그인 인 Ardity로 구성됩니다. 이 소프트웨어는 예제 실험을 위해 Microsoft Windows 10 Enterprise를 실행하는 Gygabyte Sabre 15WV8 노트북에 설치되었습니다(그림 1).

VR 시스템은 헤드 마운트 디스플레이(HMD), 핸드헬드 컨트롤러, 우주에서 HMD 및 컨트롤러의 위치와 방향을 결정하기 위한 기지국으로 구성됩니다. 이 프로젝트에 사용된 VR 시스템은 HTC Vive Pro였습니다(그림 1).

아래는 이러한 구성 요소를 결합하여 물리적 회전(실험 또는 기타)을 핸드헬드 컨트롤러를 통해 관찰자가 제어하거나 컴퓨터 마우스 또는 전위차계를 통해 호스트/실험자가 제어하는 의자 모션과 통합하는 가상 경험을 달성하는 절차입니다. 프로토콜의 마지막 부분은 VR 경험을 시작하는 데 필요한 단계로 구성됩니다. 시험 및 데이터 수집을 허용하기 위해 Unity를 코딩하는 방법은 이 원고의 범위를 벗어납니다. 일부 단계, 특히 기계 서브 시스템의 경우 특정 작업장 장비와 일정 수준의 기술이 필요합니다. 원칙적으로, 제시된 방법들은 이들 자원의 가용성에 적합하도록 조정될 수 있다. 좀 더 기술적 인 단계 중 일부에 대한 대안이 제공됩니다.

프로토콜

경고 : 전기 작업은 자격을 갖춘 사람이 수행해야합니다.

1. 기계 시스템 설정 절차

  1. 메인 풀리를 스위블 의자의 상부 샤프트에 부착하십시오.
    1. 상부 샤프트를 분리합니다.
      참고: 이것은 일반적으로 의자를 측면에 놓고 상부 샤프트가 하부 샤프트에서 미끄러지는 것을 방지하는 의자 바닥의 핀을 제거하는 것을 포함합니다.
    2. 풀리를 샤프트에 마찰 장착합니다.
      1. Vernier 캘리퍼를 사용하여 샤프트의 직경을 구하십시오. 선반을 사용하여 풀리 구멍을 보아 샤프트의 직경과 일치시킵니다.
      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. Arduino용 5V DC 전원 공급 장치를 켜기/끄기 스위치(옵션)에 연결합니다.
    주: 납땜 및 주 정격 케이블이 필요합니다.
  3. 의자 구동기의 48V DC 전원 공급 장치를 5V 전원 공급 장치와 병렬로 켜기/끄기 스위치에 연결합니다.
    주: 주 정격 케이블이 필요합니다.
  4. 하이브리드 스테퍼 모터 드라이버에 대해 적절한 DIP 스위치 설정을 만듭니다. 예를 들어:
    1. 스테퍼 모터의 회전당 1,600개의 펄스에 대해 각각 1-4개의 스위치를 ON, OFF, ON으로 전환합니다(숫자가 높을수록 제어는 더 미세하지만 Arduino가 펄스를 생성할 수 있는 속도에 따라 회전 속도의 캡은 낮아집니다).
    2. 시계 반대 방향 기본 회전 방향에 대해 5를 OFF로 전환합니다.
    3. 공간 벡터 제어 모드(또는 필드 지향 제어, FOC)가 아닌 PM(드라이브 포인트 모션) 모드의 경우 6을 ON으로 전환합니다.
    4. 스위치 7 및 8을 OFF 및 OFF로 설정하여 컨트롤러를 86 시리즈 12 NM 폐쇄 루프 모터와 일치시킵니다.
  5. 하이브리드 스테퍼 모터 드라이버를 전원 공급 장치 및 의자 드라이버 케이블에 연결합니다.
    1. 48V 전원 공급 장치 출력 단자의 적절한 정격 케이블을 모터 드라이버 전원 입력 커넥터 하우징에 연결하고 하우징을 삽입합니다.
    2. 커넥터 하우징을 통해 두 개의 모터 케이블을 드라이버에 연결합니다.
  6. Arduino를 하이브리드 스테퍼 모터 드라이버에 연결하십시오.
    1. 고정된 점프 와이어를 사용하여 모터 드라이버 커넥터 하우징의 PUL+("펄스" +), DIR+("방향" +) 및 ENA+("활성화" +) 단자를 Arduino의 핀 2, 3 및 5(핀 번호는 선택 사항이지만 여기서는 전체적으로 사용할 예제로 명시됨)에 연결합니다.
    2. 짧은 와이어를 사용하여 모터 드라이버 커넥터 하우징의 PUL-, DIR 및 ENA- 단자를 연결하고 더 긴 핀 점프 와이어를 사용하여 ENA-를 Arduino의 GND(접지) 핀에 연결합니다.
    3. 커넥터 하우징을 모터 드라이버에 삽입합니다.
  7. Arduino를 5V DC 전원 공급 장치에 연결합니다(옵션). 고정된 점프 와이어를 사용하여 Arduino의 핀 GND 및 Vin을 5V 전원 공급 장치의 5V 출력 단자에 연결합니다.
  8. 전위차계를 아두이노에 연결합니다. 고정된 점프 와이어를 사용하여 A1("아날로그 입력" 단자) GND 및 Arduino의 5V 핀을 전위차계의 세 단자에 연결합니다.
    참고: 납땜이 필요합니다.
  9. 토글 스위치를 Arduino에 연결합니다. 고정된 점프 와이어를 사용하여 Arduino의 핀 6과 GND를 두 개의 토글 스위치 단자에 연결합니다.
    참고: 납땜이 필요합니다.
  10. LED를 아두이노에 연결합니다.
    1. 저항기를 LED의 한 단자에 납땜합니다(LED 회로의 전압을 떨어뜨리기 위해).
    2. 핀 7 및 GND를 Arduino의 저항기 끝과 핀 점프 와이어를 사용하여 다른 LED 단자에 부착하십시오.
      참고: 납땜이 필요합니다.
  11. 전기/전자 부품을 절연하고 수용합니다. 완성된 하우징 시스템의 이미지는 그림 6 을 참조하십시오.
    주: 전기 시스템의 고전압 구성 요소를 절연하고, 깨지기 쉬운 전자 부품을 손상으로부터 보호하며, 관리 가능한 공간에 이러한 모든 구성 요소를 포함하는 방법에는 여러 가지가 있습니다. 다음은 제안 된 방법 중 하나입니다.
    1. IEC 전원 커넥터, 메인 온/오프 스위치, 두 개의 모터 제어 케이블, 소형 토글 스위치, LED, 전위차계 및 Arduino의 USB 포트용 계측기 케이스 측면에 구멍을 뚫거나 자릅니다(냉각을 위해 공기가 케이스로 유입될 수 있도록 이 구멍을 크게 만듭니다).
    2. 적절한 수단(예: 나사, 볼트, 핫 글루 건)을 사용하여 이러한 각 구성 요소를 부착합니다.
    3. 환기 구멍 (48V 전원 공급 장치의 팬 위 하나)을 자르고 케이스 뚜껑의 비상 스위치를위한 구멍을 절단하십시오. 그런 다음 환기 필터와 스위치를 부착하십시오.
    4. 스페이서와 나사를 사용하여 Arduino를 케이스 바닥에 부착하십시오. USB 포트가 케이스의 USB 포트 구멍과 정렬되도록 배치합니다.
    5. 벨크로 및 폼 블록을 사용하여 48V 및 5V 전원 공급 장치와 모터 드라이버를 케이스 바닥에 연결합니다.

3. VR 설정 절차

  1. 제조업체의 지침에 따라 VR 시스템을 설정하십시오.

4. 소프트웨어 설정 절차

  1. Arduino 소프트웨어를 설치하고 설정합니다.
    1. 개발자의 지침에 따라 Arduino 프로그램을 다운로드하여 설치하십시오.
    2. USB 케이블을 사용하여 아두 이노를 컴퓨터에 연결하십시오.
    3. 도구 드롭다운 메뉴에서 Arduino 보드가 연결된 포트를 선택합니다.
    4. 동일한 메뉴에서 적절한 보드와 프로세서를 선택합니다. 위의 섹션 2에서 사용된 보드 및 프로세서(예: "Arduino Mega 2560" 보드 및 "ATmega2560" 프로세서)와 일치하는지 확인합니다.
  2. 아두 이노 보드를 프로그래밍하여 1) 전위차계를 사용하고 2) USB를 통해 컴퓨터의 명령을 통해 의자를 회전 할 수 있도록하십시오.
    1. Arduino 프로세서에 업로드할 코드를 작성합니다.
      참고: 예제 실험의 예제 코드는 보충 파일 1(파일 이름: hybrid_motor_controller.ino)에 포함되어 있습니다.
    2. 전송 속도(Serial.Begin() 명령에 대한 인수)를 기록해 둡니다(예: 9,600).
    3. 코드를 저장하고 업로드 버튼을 사용하여 Arduino 보드에 업로드 하십시오.
  3. 시스템이 지금까지 작동하는지 테스트합니다.
    1. 전기 서브시스템을 연결하고 켭니다.
    2. 작은 토글 스위치를 작은 LED 표시등이 켜지는 위치로 휙니다.
    3. 전위차계를 돌려 의자의 속도와 방향을 제어하는지 확인하십시오.
  4. 개발자의 지시에 따라 Steam 및 SteamVR을 설치하고 구성합니다.
  5. Unity를 설치하고 설정합니다.
    1. 개발자의 지침에 따라 Unity를 설치하고 구성합니다.
    2. 새 Unity 프로젝트 또는 기존 Unity 프로젝트를 엽니다(예: 애플리케이션에 적합한 유형(예: "3D" 선택).
    3. 프로젝트에 사용할 SteamVR을 설정합니다.
      1. 자산 저장소를 엽니 다 ( 창 | 클릭 자산 저장소).
      2. SteamVR을 검색하고 SteamVR 플러그인을 선택하십시오.
      3. 자산에 추가를 클릭합니다.
      4. Unity에서 패키지 관리자를 엽니 다 ( 창 클릭 | 패키지 관리자).
      5. 내 자산 탭에서 SteamVR을 찾습니다.
      6. 가져오기를 클릭하고 프롬프트에 따라 가져오기를 완료합니다.
      7. 구성을 변경하라는 메시지가 표시되면 모두 수락 을 클릭합니다.
      8. Steam VR 카메라 리그를 장면으로 가져옵니다. 인스펙터 화면의 프로젝트 창에서 Steam VR 이라는 새로운 에셋을 찾으십시오. 프리팹| 스팀 VR을 엽니다.
      9. [Camera Rig] 자산을 계층 구조 또는 장면 창으로 드래그하여 게임에서 VR 헤드셋과 컨트롤러를 사용할 수 있도록 합니다.
      10. 계층 구조 또는 장면에서 기본 메인 카메라를 제거하면 SteamVR 카메라를 방해합니다.
  6. Ardity를 설치하고 설정합니다.
    1. Unity 에셋 스토어에서 Ardity를 검색하여 다운로드할 대상을 선택합니다(위의 4.5.3.2단계).
    2. API 호환성 수준을 업데이트합니다.
      1. 편집 메뉴에서 프로젝트 설정을 엽니다.
      2. 플레이어 |를 클릭하십시오. 다른 설정.
      3. API 호환성 수준에 대한 드롭다운 메뉴에서 .NET 4.X를 선택합니다.
      4. 설정을 종료하고 오류 메시지가 사라질 때까지 기다립니다.
  7. Unity 게임 환경을 설정합니다.
    참고: 사용자가 의자를 제어하고 의자 모션을 VR 경험과 통합하려면 다음 최소 단계가 필요합니다.
    1. 특정 응용 프로그램에 필요한 개체와 함수를 만듭니다.
      1. 게임 오브젝트를 클릭하고 2D 오브젝트 또는 3D 오브젝트를 선택하여 오브젝트를 생성합니다.
      2. 객체에 대한 검사기 창에서 구성 요소 추가 단추를 클릭하고 옵션 중 하나를 선택하여 생성된 객체에 기능을 추가합니다. 새 스크립트를 선택하여 보충 파일 3(파일 이름: SetUpTrial.cs)의 스크립트와 유사한 C# 스크립트를 만듭니다.
    2. 시리얼 컨트롤러 스크립트를 게임으로 가져옵니다.
      1. 프로젝트 창의 자산 폴더에서 Ardity 폴더를 열| 스크립트 폴더.
      2. SerialController 스크립트를 상속 창의 원하는 게임 오브젝트(예: 배경 게임 오브젝트)로 드래그하십시오.
      3. 개체를 클릭하고 검사 기 창에서 구성 요소 목록을 아래로 스크롤하여 SerialController 스크립트를 찾습니다.
      4. 포트 이름과 전송 속도가 위의 4.1 및 4.2 단계에서 설정 한 Arduino 프로그램의 포트 이름과 전송 속도와 일치하는지 확인하십시오.
      5. 계층 구조 창에서 SerialController 스크립트가 첨부된 개체를 검사기 창의 메시지 수신기 옆의 입력 상자로 끕니다.
    3. 의자 컨트롤러 스크립트를 작성하고 게임으로 가져옵니다.
      1. 동일한 게임 오브젝트에 대한 인스펙터 창 하단에서 컴포넌트 추가를 클릭하고 새 스크립트를 선택합니다. 새 스크립트의 이름을 ChairController로 지정합니다.
      2. 컨트롤러 및 마우스 명령을 수행하는 데 필요한 코드를 작성하고 USB를 통해 Arduino로 보낼 숫자로 변환하십시오.
        참고: 필요한 코드의 최소 예제는 보충 파일 2(파일 이름: ChairController.cs)에 포함되어 있습니다.
      3. 스크립트를 저장합니다.
      4. 검사기 창의 빈 상자를 채웁니다. HMD 오브젝트를 계층 구조 창에서 인스펙터 창의 의자 컨트롤러 스크립트 아래의 헤드 옆의 입력 상자로 드래그하십시오. 마찬가지로 Controller(오른쪽) 개체를 옆의 상자로 끕니다.

5. 실험(또는 경험) 절차

  1. 입력 방법을 선택합니다.
    참고: 제공된 예제 ChairController 코드는 공용 정수 변수 inputType이 설정된 SetUpTrial 이라는 스크립트를 참조합니다(여기서 inputType 3은 VR 컨트롤러이고 inputType 4는 마우스임). 이 스크립트/변수 배열은 아래 단계에서 가정되었습니다.
  2. SetUpTrial 스크립트가 첨부된 게임 오브젝트(예: 배경)를 클릭합니다.
  3. 검사기 창에서 아래로 스크롤하여 SetUpTrial 스크립트 공개 변수를 찾습니다.
  4. VR 컨트롤러의 경우 inputType3으로, 마우스 제어의 경우 4로 설정합니다.
  5. Unity의 재생 버튼을 눌러 컨트롤러나 마우스가 제어하는 동작으로 VR 경험을 시작합니다.

결과

예제 실험의 목적은 물리적 회전의 추가(장면의 시각적 배경 동작과 일치하거나 일치하지 않음)가 해당 장면에서 움직이는 대상의 인식 방향에 영향을 미치는지 여부를 확인하는 것이었습니다. 일치 및 부조화 물리적 운동 사이의 차이는 배경 운동이 참여자의 시각 시스템이 배경 운동의 원인을 자기 운동(32,33)에 얼마나 쉽게 할당하는지에 따라 인식?...

토론

이 백서에서는 관찰자 또는 실험자의 제어하에 사무실 의자에 자동 회전을 추가하는 방법과 해당 동작을 가상 환경에 통합하는 방법을 제시합니다. 중요한 단계에는 의자에 모터를 기계적으로 부착하고, 모터의 전원 및 전기 제어를 설정 한 다음 모터 컨트롤러를 구동하도록 Arduino와 컴퓨터를 구성하는 것이 포함됩니다. 기계적 부착 단계에는 몇 가지 특수 장비와 기술이 필요하지만 가장 어려운...

공개

이해 상충은 없습니다.

감사의 말

이 연구는 호주 연구위원회 보조금 DP160104211, DP190103474 및 DP190103103에 의해 지원되었습니다.

자료

NameCompanyCatalog NumberComments
48 V DC power supply (motor)MeanwellRSP-320-48https://www.meanwellaustralia.com.au/products/rsp-320
5 V DC power supply (arduino)JaycarMP3295https://www.jaycar.com.au/15w-5v-3a-enclosed-power-supply/p/MP3295?pos=5&queryId=dda344422ab16c6
7f558551ac0acbd40
Ardity plugin for 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
Arduino softwareArduinohttps://www.arduino.cc/en/software
BeltMotion DynamicsRFTB10010Choose a size that suits the application. We used 60 tooth. https://www.motiondynamics.com.au/polyurethane-timing-belts-16mm-t-10/
Bracket bolts (holding motor)The 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
Bracket bolts (not holding motor)The 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
Clamp Angle IronAustral Wright Metals50004813x 2. https://www.australwright.com.au/products/stainless-steel/stainless-steel-bar-round-flat-angle-square/
Clamp boltsThe Fastner Factory161265x 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  
Clamp leaves (stainless flat bar)Austral Wright Metals50004687x 8. https://www.australwright.com.au/products/stainless-steel/stainless-steel-bar-round-flat-angle-square/
Cover (acrylic)Bunnings Warehouse1010489https://www.bunnings.com.au/suntuf-900-x-600-x-5mm-grey-acrylic-sheet_p1010489
Cover bolts/nutsBunnings Warehouse247292x 4. https://www.bunnings.com.au/pinnacle-m3-x-16mm-stainless-steel-hex-head-bolts-and-nuts-12-pack_p0247292
Cover bracketsBunnings Warehouse44061x 4. https://www.bunnings.com.au/zenith-20mm-zinc-plated-angle-bracket-16-pack_p0044061
Emergency shut-off switchJaycarSP0786https://www.jaycar.com.au/latching-emergency-stop-switch/p/SP0786?pos=1&queryId=5abe9876cf78dc3d
d26b9067fbc36f74
Hybrid stepper motor and driverVevor?Closed Loop Stepper Motor Nema 34 12NM Servo Motor Hybrid Driver https://vevor.com.au/products/1712oz-in-nema34-closed-loop-stepper-motor-12nm-hybrid-servo-driver-hsc86-kit?variant=33058303311975
IEC mains power connectorRS components811-7213https://au.rs-online.com/web/p/iec-connectors/8117213
Instrument case (housing)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=
relevance
Main pulley (chair)Motion DynamicsALTP10020Choose a size that suits the application. More teeth = slower rotation. We used 36 tooth. https://www.motiondynamics.com.au/timing-pulleys-t10-16mm.html
Motor attachment bars (Stainless flat bar)Austral Wright Metals50004687x 4. https://www.australwright.com.au/products/stainless-steel/stainless-steel-bar-round-flat-angle-square/
Mounting brackets (stainless flat bar)Austral Wright Metals50004687x 2. https://www.australwright.com.au/products/stainless-steel/stainless-steel-bar-round-flat-angle-square/
NutsThe Fastner Factory161989x 12. https://www.thefastenerfactory.com.au/stainless-steel-hex-nylon-insert-lock-nut-m6-100pc
On/off switchJaycarSK0982https://www.jaycar.com.au/dpdt-illuminated-rocker-large-red/p/SK0982?pos=4&queryId=88e0c5abfa682b74
fa631c6d513abc73&sort=relevance
PotentiometerJaycarRP8610https://www.jaycar.com.au/10k-ohm-logarithmic-a-single-gang-9mm-potentiometer/p/RP8610?pos=4&queryId=0d1510281ba100d
174b8e3d7f806a020
Pulley screwsThe Fastner Factory155856x 5. https://www.thefastenerfactory.com.au/stainless-steel-hex-socket-head-cap-screw-m4-x-25mm-100pc
resistor 150 OhmJaycarRR2554https://www.jaycar.com.au/150-ohm-1-watt-carbon-film-resistors-pack-of-2/p/RR2554?pos=19&queryId=48c6317c73fd361
a42c835398d282c4a&sort=
relevance
Small pulley (motor)Motion DynamicsALTP10020Choose a size that suits the application. More teeth = faster rotation. We used 24 tooth. https://www.motiondynamics.com.au/timing-pulleys-t10-16mm.html
Small toggle switchJaycarST0555https://www.jaycar.com.au/sealed-mini-toggle-switch/p/ST0555?pos=14&queryId=066b989a151d83
31885c6cec92fba517&sort=
relevance
Steam softwareValve Corporationhttps://store.steampowered.com/
SteamVR plugin for SteamValve Corporationhttps://store.steampowered.com/app/250820/SteamVR/
Unity softwareUnity Technologieshttps://unity3d.com/get-unity/download
VR systemScorptec99HANW007-00HTC Vive Pro with controllers and base stations. https://www.scorptec.com.au/product/gaming-peripherals/vr/72064-99hanw007-00?gclid=Cj0KCQiA5OuNBhCRARIsA
CgaiqX8NjXZ9F6ilIpVmYEhhanm
GA67xLzllk5EmjuG0gnhu4xmiE
_RwSgaAhn8EALw_wcB

참고문헌

  1. Campos, J., Bülthoff, H., Murray, M. M., Wallace, M. T. Multimodal integration during self-motion in virtual reality. The Neural Bases of Multisensory. , (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, 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. , (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, 825-833 (2011).
  11. Badcock, D., Palmisano, S., May, J. G., Hale, K. S., Stanney, K. M. Vision and virtual environments. Handbook of Virtual Environments: Design, Implementation, and Applications. , 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. , 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. , (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. , (2016).
  30. . Roto VR Chair Available from: https://www.rotovr.com/ (2021)
  31. . 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). , (2007).

재인쇄 및 허가

JoVE'article의 텍스트 или 그림을 다시 사용하시려면 허가 살펴보기

허가 살펴보기

더 많은 기사 탐색

182

This article has been published

Video Coming Soon

JoVE Logo

개인 정보 보호

이용 약관

정책

연구

교육

JoVE 소개

Copyright © 2025 MyJoVE Corporation. 판권 소유