Summary
人类观察者的受控物理旋转对于某些实验,娱乐和教育应用是可取的。本文概述了将办公室转椅转换为在虚拟现实环境中进行受控物理旋转的介质的方法。
Abstract
虚拟现实(VR)系统的低成本和可用性支持了最近在更自然,多感官和沉浸式条件下对感知和行为的研究的加速。使用VR系统特别受益的一个研究领域是多感官整合,例如,视觉和前庭线索的整合,以产生自我运动感。因此,在虚拟环境中控制观察者物理旋转的可访问方法代表了一项有用的创新。本文介绍了一种自动旋转办公室转椅的方法,以及一种将该运动集成到VR体验中的方法。使用示例实验来证明,由此产生的物理运动以符合期望的方式与观察者的视觉体验相结合;当运动与视觉刺激一致时,积分高;当运动不协调时,积分低。
Introduction
许多线索在自然条件下结合在一起,产生自我运动的感觉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体验中的一套简洁的说明。SwiVRChair29可用的指令有限,其结构与此处介绍的说明相似,但设计时考虑到了不同的目的,即由计算机程序驱动以改善VR环境中的沉浸感,用户可以通过将脚放在地面上来覆盖椅子的移动。鉴于市售椅子的费用为30,31,对于一些研究人员来说,制作一把“内部”椅子可能是一个更可行的选择。对于处于这种情况的人,下面的协议应该是有用的。
系统概述
该协议包括将办公椅转换为电动旋转椅并将椅子运动集成到VR体验中的指令。整个系统一旦完成,就由四部分组成:机械、电气、软件和VR子系统。整个系统的照片如图 1所示。所示的系统是示例实验中使用的系统。
机械子系统的工作是通过电机物理旋转转椅的上轴。它由一把办公椅组成,上面连接着两件东西:固定在办公椅上旋转轴上的滑轮和连接到轴下部固定部分的可调节安装框架。安装座上装有电动步进电机,其轴上有一个皮带轮,该皮带轮与办公椅上部轴上的皮带轮对齐。皮带将电机皮带轮连接到椅子滑轮上,使电机旋转椅子。
电气子系统为电机提供电力,并允许对电机进行电子控制。它由一个电机驱动器,一个电机电源,一个用于将驱动器与计算机连接在一起的Arduino板以及一个用于Arduino的电源(可选)组成。Arduino板是任何电子产品的业余爱好者和专业制造商中流行的小板,它包含可编程微处理器,控制器,输入和输出引脚以及(在某些型号中)USB端口(此处需要)。所有电气元件都装在定制改良的电绝缘盒中。由于为电机供电的变压器和(可选的)Arduino电源需要主电源,并且由于电机需要高工作电压,因此除低压电子工作(协议步骤2.5至2.10)之外的所有工作都应由合格的个人执行。
软件子系统包括用于对Arduino进行编程的Arduino软件,用于创建VR环境的Unity软件,用于驱动VR系统的Steam软件以及Ardity(允许Unity与Arduino板进行通信的Unity插件)。该软件安装在运行Microsoft Windows 10 Enterprise的Gygabyte Sabre 15WV8笔记本电脑上,用于示例实验(图1)。
VR系统由头戴式显示器(HMD),手持控制器和基站组成,用于确定HMD和控制器在空间中的位置和方向。该项目使用的VR系统是HTC Vive Pro(图1)。
下面描述的是组合这些组件以实现虚拟体验的过程,该体验结合了物理旋转(实验或其他方式),椅子运动由观察者通过手持控制器控制,或由主机/实验者通过计算机鼠标或电位计控制。协议的最后一部分包括启动VR体验所需的步骤。请注意,编码Unity以允许试验和数据收集的方法超出了本文的范围。有些步骤,特别是对于机械子系统,需要一定的车间设备和一定的技能水平。原则上,可以调整所介绍的方法以适应这些资源的可用性。为一些技术性更强的步骤提供了替代方案。
Subscription Required. Please recommend JoVE to your librarian.
Protocol
警告:电气工作应由合格的人员执行。
1. 机械系统设置程序
- 将主滑轮连接到转椅的上轴上。
- 卸下上轴。
注意:这通常涉及将椅子放在其侧面,并卸下椅子底部的销钉,以防止上轴滑出下轴。 - 将皮带轮摩擦贴合到轴上。
- 使用游标卡钳获取轴的直径。使用车床镗入滑轮孔以匹配轴的直径。
- 为螺钉创建螺纹孔,将皮带轮固定在轴上。在皮带轮的轮毂上钻额外的孔,总共4个,使直径与螺钉的直径相匹配。使用丝锥螺纹螺纹孔,以便可以使用螺钉将皮带轮固定到轴上,使螺纹与螺钉的螺纹相匹配
注意:如果无法创建螺纹,另一种方法是一直钻过皮带轮的轮毂和椅子的轴,并在确定皮带轮的正确位置后(在步骤1.4.6之后)一直使用螺栓。 - 将滑轮滑到椅轴上。
- 松动插入螺钉(主皮带轮和小皮带轮对齐后拧紧)。
- 将传动带松松地放在上部椅子轴上(以后适合主皮带轮和小皮带轮)。
- 将上部椅子轴重新连接到椅子底座上。
- 卸下上轴。
- 将电机安装座连接到转椅的底部轴上。
- 制造一个可调节的夹具,电机安装支架可以连接到该夹具上。
- 制造夹具的两个匹配组件 - 轴的每侧一个(用四个螺栓挤压在一起)。有关尺寸,请参见 图 2 。
- 对于每个组件,将 90° 角铁切割成一定长度。连接螺栓将穿过的4个叶子。
- 圆润每个叶子的边缘(金属棒)以确保安全。在每个棒材末端附近钻出足够大的孔,使螺栓能够穿过。在适当位置进行 45° 弯曲(对条形进行评分以使弯曲更精确)。将每个棒材向外的角铁螺栓孔进行点焊。
注意:或者,可以将叶子用螺栓固定到位,注意不要造成突出物,从而防止角铁接触椅子轴。
- 制造两个电机安装支架。有关尺寸,请参见 图 3 。对于每个支架,在棒材上钻两个孔,以连接到刚才描述的夹具上。在适当位置弯曲 90°(对条形进行评分以使弯曲更精确)。
- 通过将4个螺栓插入夹具组件和支架并拧紧,将夹具和安装座连接到椅子的底部轴上。如果需要调整安装以适应步骤 1.4.6 中的对准过程,请确保螺栓不要太紧。
- 制造一个可调节的夹具,电机安装支架可以连接到该夹具上。
- 将小皮带轮连接到电机轴上。
- 将电机轴上的键平磨(不再突出)。
注:这将提供一个平坦的表面,滑轮螺钉可以拧紧,以防止皮带轮在电机轴周围打滑。 - 钻出皮带轮上的孔以匹配电机轴的直径。
- 将滑轮滑过轴,然后将螺钉松散地拧紧在轴上的平坦表面上。
- 将电机轴上的键平磨(不再突出)。
- 将电机连接到上述电机支架上。
- 通过在适当的位置钻两个孔(孔需要与电机中的安装孔对齐)来准备4个电机连接杆中的每一个。有关尺寸,请参见 图 4 。
- 如果需要间隙,从两根杆的上部切出一段,以允许电机轴上的皮带轮自由旋转(可选)。
- 将四个小盖板固定支架放在四个外孔上。稍后使用它们将保护盖固定在皮带和滑轮上。
- 松散地连接八个螺母和螺栓,在上下杆之间留出空间,以便在它们之间滑动安装支架杆。
- 将电机安装杆滑到支架上 - 每个上杆都位于安装支架杆上方,每个下部安装杆下方。
- 定位并夹紧电机。
- 移动主皮带轮、小皮带轮或上下移动,直到主皮带轮和小皮带轮水平对齐。如果需要,请移动夹具。
- 将传动带放在小皮带轮和主皮带轮上。
- 将电机组件从椅子上滑开,直到皮带紧固。
- 拧紧电机连接杆上的 8 个螺栓,将电机固定在电机支架上。
- 拧紧夹紧螺栓和滑轮螺钉。
- 安装盖子以防止任何东西卡在皮带轮/皮带系统中。
- 如图 5所示弯曲丙烯酸保护盖的侧面。
注意:如果没有丙烯酸折弯机,另一种方法是使用金属板和板材折弯机。 - 如图5所示,切出一段以适合椅子轴 的轴。
- 钻孔以匹配小盖附件支架上的孔。
- 使用小盖板连接螺栓固定盖板。
- 如图 5所示弯曲丙烯酸保护盖的侧面。
2. 电气系统设置程序
- 将开/关开关和紧急关断开关连接到主电源。使用适当的电压和电流额定电缆将IEC连接器(用于电源电缆的公连接器) 串联 连接到紧急关断和开/关开关(因此,用任何一个断开电路都会切断其余组件的电源)。
注:可能需要焊接。 - 将 Arduino 的 5 V DC 电源连接到开/关开关(可选)。
注:需要焊接和电源额定电缆。 - 将椅子驱动器的 48 V DC 电源连接到与 5 V 电源并联的开/关开关。
注:需要电源额定电缆。 - 为混合式步进电机驱动器进行适当的 DIP 开关设置。例如:
- 将开关 1-4 分别设置为 ON、OFF、ON 和 ON,步进电机每转 1,600 个脉冲(数字越高,控制越精细,但转速上限越低,具体取决于 Arduino 产生脉冲的速度)。
- 将 5 切换为 OFF 以表示逆时针方向默认旋转方向。
- 将 6 切换到 ON,用于驱动点运动 (PM) 模式,而不是空间矢量控制模式(或磁场定向控制,FOC)。
- 将开关 7 和 8 设置为 OFF 和 OFF,以将控制器与 86 系列 12 NM 闭环电机相匹配。
- 将混合式步进电机驱动器连接到电源和椅子驱动器电缆。
- 将适当额定值的电缆从 48 V 电源输出端子连接到电机驱动器电源输入连接器外壳,然后插入外壳。
- 将两根电机电缆通过其连接器外壳连接到驱动器。
- 将Arduino连接到混合步进电机驱动器。
- 使用固定跳线将电机驱动器连接器外壳上的 PUL+(“脉冲”+)、DIR+(“方向”+)和 ENA+(“使能”+)端子连接到 Arduino 上的引脚 2、3 和 5(引脚编号可选,但此处说明为要在整个过程中使用的示例)。
- 使用短线连接电机驱动器连接器外壳的 PUL、DIR 和 ENA 端子,并使用较长的引脚跳线将 ENA- 连接到 Arduino 上的 GND(接地)引脚。
- 将连接器外壳插入电机驱动器。
- 将 Arduino 连接到 5 V DC 电源(可选)。使用引脚跳线将 Arduino 上的引脚 GND 和 Vin 连接到 5 V 电源的 5 V 输出端子。
- 将电位计连接到Arduino。使用引脚跳线将Arduino上的A1(“模拟输入”端子)GND和5 V引脚连接到电位计的三个端子。
注:需要焊接。 - 将拨动开关连接到Arduino。使用引脚跳线将 Arduino 上的引脚 6 和 GND 连接到两个拨动开关端子。
注:需要焊接。 - 将 LED 连接到 Arduino。
- 将电阻器焊接到LED的一个端子上(以降低LED电路上的电压)。
- 使用引脚跳线将Arduino上的引脚7和GND连接到电阻器的末端,并使用引脚跳线将其他LED端子。
注:需要焊接。
- 绝缘并容纳电气/电子元件。有关已完成的托管系统的图像,请参见 图 6 。
注意:有许多方法可以对电气系统的高压组件进行绝缘,保护易碎的电子组件免受损坏,并将所有这些组件包含在可管理的空间中。以下是一种建议的方法。- 在仪器外壳的侧面钻孔/切割IEC电源连接器,主开/关开关,两根电机控制电缆,小拨动开关,LED,电位计和Arduino的USB端口(使这个大,允许空气流入外壳进行冷却)。
- 使用适当的方式(例如,螺钉,螺栓,热胶枪)连接这些组件中的每一个。
- 切开通风孔(48 V电源中风扇上方的一个)和外壳盖上的紧急开关孔;然后,连接通风过滤器和开关。
- 使用垫片和螺钉将Arduino连接到外壳的底部。使 USB 端口与机箱中的 USB 端口孔对齐的位置。
- 使用魔术贴和泡沫块将 48 V 和 5 V 电源和电机驱动器连接到机箱底座。
3. VR设置程序
- 按照制造商的说明设置VR系统。
4. 软件设置程序
- 安装并设置 Arduino 软件。
- 根据开发人员的说明下载并安装Arduino程序。
- 使用USB电缆将Arduino连接到计算机。
- 在 “工具” 下拉菜单下,选择 Arduino 开发板连接到的端口。
- 在同一菜单下,选择适当的主板和处理器。确保它与上面第 2 节中使用的主板和处理器匹配,例如,“Arduino Mega 2560” 主板和 “ATmega2560” 处理器。
- 对Arduino板进行编程,以允许椅子旋转1)通过电位计和2)通过计算机通过USB发出的命令。
- 编写要上传到 Arduino 处理器的代码。
注意:示例实验中的示例代码包含在 补充文件 1 中(文件名:hybrid_motor_controller.ino)。 - 记下波特率(Serial.Begin() 命令的参数),例如 9,600。
- 保存代码并使用上传按钮将其 上传到 Arduino板。
- 编写要上传到 Arduino 处理器的代码。
- 测试系统到目前为止是否正常工作。
- 插入并打开电气子系统。
- 将小拨动开关轻拂至小 LED 指示灯亮起的位置。
- 转动电位计,确保它控制椅子的速度和方向。
- 按照开发者的说明安装和配置 Steam 和 SteamVR。
- 安装和设置 Unity。
- 根据开发人员的说明安装和配置 Unity。
- 打开新的或现有的 Unity 项目(选择适合应用程序的类型,例如“3D”)。
- 设置 SteamVR 以在项目中使用。
- 打开资源商店(单击 窗口|资源商店)。
- 搜索 SteamVR 并选择 SteamVR 插件。
- 单击 添加到资产。
- 在Unity中,打开包管理器(单击 “窗口|包管理器)。
- 在“ 我的资产 ”选项卡下找到 SteamVR。
- 单击 导入 ,然后按照提示完成导入。
- 如果系统提示进行配置更改,请单击“ 全部接受 ”。
- 将 Steam VR 摄像机装备导入场景。在检查器屏幕上的项目窗口中查找名为 Steam VR 的新资源。打开 Steam VR |预制件。
- 将 [Camera Rig] 资源拖到层次结构或场景窗口中,以允许在游戏中使用 VR 头戴式设备和控制器。
- 从层次结构或场景中移除默认 的主摄像头 ,因为它会干扰 SteamVR 摄像头。
- 安装并设置 Ardity。
- 在 Unity 资源商店中搜索 Ardity 并选择它进行下载(上面的步骤 4.5.3.2)。
- 更新 API 兼容级别。
- 打开“编辑”菜单下的“项目设置”。
- 点击 玩家|其他设置。
- 在 API 兼容级别下拉菜单中选择 .NET 4.X。
- 退出 “设置” 并等待错误消息消失。
- 设置 Unity 游戏环境。
注意:用户需要以下最低步骤才能控制椅子,并将椅子运动与他们的VR体验集成。- 创建特定应用程序所需的对象和函数。
- 通过单击“ 游戏对象 ”并选择“ 2D 对象”或“3D 对象” 来创建 对象。
- 通过单击对象的“检查器”窗口中的“添加组件”按钮并选择其中一个选项,将功能添加到所创建对象。选择“新建脚本”以创建类似于补充文件 3(文件名:SetUpTrial.cs)中的 C# 脚本。
- 将串行控制器脚本导入游戏。
- 在“项目”窗口中的“资源”文件夹下,打开“Ardity”文件夹|“脚本”文件夹。
- 将 SerialController 脚本拖到 “继承” 窗口中所需的游戏对象中,例如, “背景” 游戏对象。
- 单击该对象,然后在 “检查器 ”窗口中向下滚动组件列表以找到 串行控制器 脚本。
- 确保 端口名称 和波特率与上述步骤 4.1 和 4.2 中设置的 Arduino 程序的端口名称和 波特率 相匹配。
- 将 SerialController 脚本附加到的对象从 层次结构 窗口拖到检查器窗口中 消息侦听器 旁边的输入框中。
- 编写 椅子控制器 脚本并将其导入到游戏中。
- 在同一游戏对象的 检查器 窗口底部,单击“ 添加组件 ”,然后选择“ 新建脚本”。将新脚本命名为 “主席控制器”。
- 编写获取控制器和鼠标命令所需的代码,并将它们转换为通过USB发送到Arduino的数字。
注意: 补充文件 2 (文件名:ChairController.cs)中包含所需代码的最小示例。 - 保存脚本。
- 填充“检查器”窗口中的空白框。将 HMD 对象从“层次结构”窗口拖到“检查器”窗口中“椅子控制器”脚本下的“头”旁边的输入框中。同样,将控制器(右)对象拖到“手”旁边的框中。
- 创建特定应用程序所需的对象和函数。
5. 实验(或体验)程序
- 选择输入法。
注意:提供的示例 ChairController 代码引用了一个名为 SetUpTrial 的脚本,其中设置了公共整数变量 inputType(其中 inputType 3 是 VR 控制器,inputType 4 是鼠标)。在以下步骤中已假定此脚本/变量排列。 - 单击 SetUpTrial 脚本附加到的游戏对象,例如“背景”。
- 在 检查器 窗口中向下滚动以查找 SetUpTrial 脚本公共变量。
- 对于 VR 控制器,将 inputType 设置为 3,对于鼠标控制,将 inputType 设置为 4。
- 在 Unity 中按下“ 播放 ”按钮,以控制器或鼠标控制的运动开始 VR 体验。
Subscription Required. Please recommend JoVE to your librarian.
Representative Results
示例实验的目的是确定物理旋转的添加 ( 与场景中的视觉背景运动一致或不一致 - 是否影响该场景中移动目标的感知方向。基于背景运动影响感知目标方向的假设,即根据参与者的视觉系统将背景运动的原因分配给自我运动的容易程度,预计同余和不一致的物理运动之间的差异32,33。如果背景和物理运动是一致的,那么预计会有更大的因果联系感,因此,在视觉显示中,感知到的目标方向与其实际方向的偏差更大。
观察者使用VR控制器控制椅子的旋转速度和方向。控制器从HMD的朝向方向向越左或越右,旋转速度就越大。在同余条件下,如果目标模式(始终具有正垂直运动分量)似乎向右漂移,则观察者会将控制器向左移动。这导致椅子向左旋转(逆时针),观察者上的HMD逆时针旋转,这导致视觉场景中的背景以适当的速度向右移动(就好像它是观察者旋转的静止背景一样, 图7A)。这种向右的背景运动“排斥”了目标,为感知到的目标运动增加了一个向左的运动分量,正如诱导的运动错觉所预期的那样。目标方向由计算机控制,总是向上,但以小的有规律间隔随机地顺时针或逆时针踩踏其当前方向(实现随机游走,从垂直开始并跨越欧几里得空间的上两个象限)。观察者的目的是调整自己的旋转速度和方向,从而调整背景的速度和方向,以便由背景引起的诱导运动完全抵消目标中任何向左或向右的运动分量。
在不均匀的情况下,控制器向左移动导致椅子向右旋转(顺时针),背景通过顺时针HMD旋转向右移动(图7B)。因此,向左的控制器运动引起了向右的背景运动,就像在同余条件下一样,但是椅子向相反的方向移动,与它在一致条件下所做的相反,也就是说,它与背景不协调地移动。例如,向右旋转伴随着向右的背景运动,这与观察者在静止背景上旋转不一致。
视觉刺激的屏幕截图如图 8所示。每个小圆形刺激元素上的图案以与同一对象(目标或背景)的其他图案相同的速度和方向移动,而元素本身却没有移动,就好像每个元素都是一个静止的窗口,通过它可以看到一个大的底层物体的运动。这允许运动感,而不会使目标和背景离开显示区域。显示区域是一架平面,设置在虚拟场景中距离观察者8米处,并锁定在相对于HMD的位置。目标元素位于视角半径为 5° 的环上,背景元素随机散布在显示平面上 20° x 20° 的区域上。目标的速度保持在6°/s,其方向从-10°左右变化到190°(即,通常保持在欧几里得空间的前两个象限中)。背景方向总是水平的,速度根据观察者的头部顺时针或逆时针旋转的速度而变化。通过实验室以前开发的用于分析连续心理物理数据的方法分析连续收集的数据。该方法是分析连续跟踪数据的现有方法33的扩展。
在等式和不余量运动条件下,诱导运动效应的强度由方程式(1)中β参数的值表示:
(1)
其中 p 是表示感知目标速度的向量, t 表示实际目标速度, b 表示背景速度。β控制从目标运动中减去背景速度以产生感知目标速度的程度。当观察者在现实世界中旋转,并且目标在其视野内移动时,必须从目标运动中完全减去背景运动,以获得相对于静止世界32的目标运动。因此 ,β值 1有利于视觉系统将背景运动的原因完全分配给自运动,而较低的值表示部分分配。两个条件下九个观察点的平均β值如图 9 所示。
对于除一个观察者以外的所有观察者,由于椅子与视觉刺激不协调地移动,平均β值都降低了(尽管变化仅对一个观察者显着,t(4) = 13.6,p = 0.000)。使用观察者和一致性作为两个因子的双向方差分析数据。观察者F (8, 32) = 2.857,p = 0.016,同余度F (1, 32) = 8.236,p = 0.007表示观察者之间的显着差异和椅子旋转方向的显着影响,这两个因素均显著。同余条件的预测均值β值为 1.03,不一致条件的预测均值为 0.87。这些结果符合上述预期。如果β值接近 1 表示已准备好将背景运动分配给自运动。不一致条件的值明显较低表示准备程度降低。这反过来又表明,主席提供的运动经验符合人们的期望。主席提供了一种有效的手段,以预期的方式让观察员感觉到身体运动。
图 1:完整系统的照片。请单击此处查看此图的大图。
图2:用于将电机连接到椅子底座的夹具。 (一)整夹具装配。(B) 角铁和叶片组合的尺寸。(C) 叶子尺寸。(四)角铁尺寸。所有尺寸均以毫米为单位 。请点击此处查看此图的大图。
图 3:用于将电机连接到夹具的支架。 (A) 组件。(B) 以毫米为单位的尺寸。缩写:直径=直径。 请点击此处查看此图的大图。
图 4:将电机连接到电机支架。 (A) 如何连接电机连接条。(B) 电机连接杆尺寸以毫米为单位 (C) 如何连接盖板支架。 请点击此处查看此图的大图。
图5:安装盖板。 (A)盖板连接过程。(二)完成的机械系统。(C) 封面尺寸(毫米), 请按此浏览此图的大图。
图 6:仪器箱中的所有电气和电子组件。 请注意,在此照片中,Arduino的5 V电源已断开连接。 请点击此处查看此图的大图。
图7:观察者的行动示意图以及实验过程中产生的椅子和场景的变化。(A)同余条件:如果控制器逆时针移动,椅子也逆时针移动,视觉背景向相反方向移动,就好像它是一个人旋转的静止场景一样。(B)不协调条件:与同余相同,只是椅子向相反方向移动,使椅子运动与视觉背景运动不协调。在图中,观察者顺时针旋转,场景相对于观察者的运动进一步顺时针旋转,这与自然经验不一致。请点击此处查看此图的大图。
图 8:视觉显示中包含运动刺激区域的屏幕截图。 该2D图像平面放置在距离观察者8米处,在VR环境中占据视觉场景的35°x 35°区域。目标环的视角半径为5°,背景区域为20°x 20°。缩写:VR =虚拟现实。 请点击此处查看此图的大图。
图 9:在一致和不一致条件下每个观察者的平均 beta 值。 对于除一个观察者之外的所有观察者,对于不协调的椅子/视觉运动条件,beta值都降低了,这表明将视觉背景运动视为由观察者的物理运动引起的的可能性降低。双向方差分析显示,该组的β值变化是显着的(有关详细信息,请参阅文本)。 请点击此处查看此图的大图。
补充文件 1:示例 Arduino 代码,hybrid_motor_controller.ino。请点击此处下载此文件。
补充文件 2:示例 Unity C# 脚本、主席控制器.cs。请点击此处下载此文件。
补充文件 3:示例 Unity C# 脚本,SetUpTrial.cs。请点击此处下载此文件。
Subscription Required. Please recommend JoVE to your librarian.
Discussion
本文介绍了一种在观察者或实验者控制下将自动旋转添加到办公椅上的方法,以及一种将该运动集成到虚拟体验中的随附方法。关键步骤包括将电机机械连接到椅子上,设置电机的电源和电气控制,然后配置Arduino和计算机来驱动电机控制器。机械连接步骤需要一些专门的设备和技能,尽管已经为最困难的任务提出了解决方法。根据硬件的可用性,可能需要进一步的修改。
高压电气工作应由合格的个人完成,如果法律要求,应由相关机构认证。低压工作可以由经验有限的人完成。以上是足够具体的说明,如果使用相同的设备,则允许复制,但不同的设备将需要对程序进行轻微修改。
提供了Arduino代码来补充此处建议的特定电子配置。请注意,提供的Arduino和其他软件指令适用于Arduino版本1.8.12,SteamVR版本1.18.7,Unity版本2020.2.7f1和Ardity版本1。其他软件版本可能需要修改协议。
该方法的一个局限性是角加速度需要阻尼。Arduino 代码中提供了执行此操作的方法。这是因为混合动力伺服器将试图“赶上”错过的电机步数(如果摩擦或惯性阻止电机加速到指示的速度),这可能导致过冲和旋转“反弹”。抑制来自计算机的加速命令是处理此问题的一种方法;这是在提供的示例代码中采用的方法。可以使用有刷或无刷直流电机来缓解此问题,但这些电机在低速时往往具有低扭矩,使得低速下的旋转控制非常困难。作者首先尝试了无刷直流电机,然后再切换到混合式步进电机。
这里提出的方法的替代办法是存在的。可以购买预制的旋转椅子30 和向其他方向移动的椅子31,例如,可以进行小平移34,35 或旋转36,37 运动的椅子,一直到执行大型多维运动的带入式椅子和笼子38,39,40.这些系统通常是为娱乐应用而构建的,但原则上可以适应进行实验,尽管在某些情况下,“解锁”系统以允许其与实验者的软件一起工作可能很困难。这些系统也往往很昂贵。最终,正是费用促使作者开发了自己的系统。相比之下,该项目中用于自动化办公椅运动的套件成本约为540澳元(不包括笔记本电脑,办公椅和VR系统的成本)。
代表性结果部分提供的数据表明,观察者在电动椅子上的物理运动可以对其视觉场景的体验产生重大影响。具体而言,旋转方向 - 同余与不一致 - 是驱动该组β值的一个非常重要的因素,当椅子向与视觉背景运动一致的方向旋转时,平均β值为1.03,当椅子旋转不协调时,β值(0.87)显着降低。个体之间效果的强度存在差异(甚至在一个个体中产生相反的效果,尽管微不足道)。然而,由切换自旋方向引起的平均变化非常显着,如方差分析(p = 0.007)所示。对椅子有效性的进一步支持是,在一致条件下,该组的平均β值接近1(与1没有显着差异;p = 0.89,成对 的t检验),表明观察者平均地看到视觉场景,就好像他们实际上在现实世界中旋转一样, 从目标运动中完全减去背景的运动,以获得目标相对于静止世界的真实运动。
鉴于对VR介导的实验的兴趣日益浓厚,这里介绍的方法的实验应用是广泛的。只要需要在虚拟环境中进行自动旋转运动,则该方法适用。椅子提供前庭和小动觉旋转提示,如压力、振动和惯性提示。控制这些线索对于理解自我运动感的机制以及理解前庭线索通常如何与其他感觉线索整合非常重要。示例实验表明,椅子提供的物理线索与视觉线索相结合,产生场景解释,即目标的感知方向,当线索一致时,这与现实世界的经验一致,当线索不一致时,则不一致。
Subscription Required. Please recommend JoVE to your librarian.
Disclosures
没有利益冲突。
Acknowledgments
这项工作得到了澳大利亚研究委员会DP160104211,DP190103474和DP190103103的支持。
Materials
Name | Company | Catalog Number | Comments |
48 V DC power supply (motor) | Meanwell | RSP-320-48 | https://www.meanwellaustralia.com.au/products/rsp-320 |
5 V DC power supply (arduino) | Jaycar | MP3295 | https://www.jaycar.com.au/15w-5v-3a-enclosed-power-supply/p/MP3295?pos=5&queryId=dda344422ab16c6 7f558551ac0acbd40 |
Ardity plugin for Unity | Open Source | https://ardity.dwilches.com/ | |
Arduino MEGA 2560 | Jaycar | XC4420 | https://www.jaycar.com.au/duinotech-mega-2560-r3-board-for-arduino/p/XC4420?pos=2&queryId=901771805f4bf6e0 ec31d41601d14dc3 |
Arduino software | Arduino | https://www.arduino.cc/en/software | |
Belt | Motion Dynamics | RFTB10010 | Choose 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 Factory | 161260 | x 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 Factory | 161258 | x 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 Iron | Austral Wright Metals | 50004813 | x 2. https://www.australwright.com.au/products/stainless-steel/stainless-steel-bar-round-flat-angle-square/ |
Clamp bolts | The Fastner Factory | 161265 | x 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 Metals | 50004687 | x 8. https://www.australwright.com.au/products/stainless-steel/stainless-steel-bar-round-flat-angle-square/ |
Cover (acrylic) | Bunnings Warehouse | 1010489 | https://www.bunnings.com.au/suntuf-900-x-600-x-5mm-grey-acrylic-sheet_p1010489 |
Cover bolts/nuts | Bunnings Warehouse | 247292 | x 4. https://www.bunnings.com.au/pinnacle-m3-x-16mm-stainless-steel-hex-head-bolts-and-nuts-12-pack_p0247292 |
Cover brackets | Bunnings Warehouse | 44061 | x 4. https://www.bunnings.com.au/zenith-20mm-zinc-plated-angle-bracket-16-pack_p0044061 |
Emergency shut-off switch | Jaycar | SP0786 | https://www.jaycar.com.au/latching-emergency-stop-switch/p/SP0786?pos=1&queryId=5abe9876cf78dc3d d26b9067fbc36f74 |
Hybrid stepper motor and driver | Vevor | ? | 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 connector | RS components | 811-7213 | https://au.rs-online.com/web/p/iec-connectors/8117213 |
Instrument case (housing) | Jaycar | HB6381 | https://www.jaycar.com.au/abs-instrument-case-with-purge-valve-mpv2/p/HB6381 |
LED | Jaycar | ZD0205 | https://www.jaycar.com.au/green-10mm-led-100mcd-round-diffused/p/ZD0205?pos=11&queryId=e596cbd3d71e86 37ab9340cee51175e7&sort= relevance |
Main pulley (chair) | Motion Dynamics | ALTP10020 | Choose 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 Metals | 50004687 | x 4. https://www.australwright.com.au/products/stainless-steel/stainless-steel-bar-round-flat-angle-square/ |
Mounting brackets (stainless flat bar) | Austral Wright Metals | 50004687 | x 2. https://www.australwright.com.au/products/stainless-steel/stainless-steel-bar-round-flat-angle-square/ |
Nuts | The Fastner Factory | 161989 | x 12. https://www.thefastenerfactory.com.au/stainless-steel-hex-nylon-insert-lock-nut-m6-100pc |
On/off switch | Jaycar | SK0982 | https://www.jaycar.com.au/dpdt-illuminated-rocker-large-red/p/SK0982?pos=4&queryId=88e0c5abfa682b74 fa631c6d513abc73&sort=relevance |
Potentiometer | Jaycar | RP8610 | https://www.jaycar.com.au/10k-ohm-logarithmic-a-single-gang-9mm-potentiometer/p/RP8610?pos=4&queryId=0d1510281ba100d 174b8e3d7f806a020 |
Pulley screws | The Fastner Factory | 155856 | x 5. https://www.thefastenerfactory.com.au/stainless-steel-hex-socket-head-cap-screw-m4-x-25mm-100pc |
resistor 150 Ohm | Jaycar | RR2554 | https://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 Dynamics | ALTP10020 | Choose 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 switch | Jaycar | ST0555 | https://www.jaycar.com.au/sealed-mini-toggle-switch/p/ST0555?pos=14&queryId=066b989a151d83 31885c6cec92fba517&sort= relevance |
Steam software | Valve Corporation | https://store.steampowered.com/ | |
SteamVR plugin for Steam | Valve Corporation | https://store.steampowered.com/app/250820/SteamVR/ | |
Unity software | Unity Technologies | https://unity3d.com/get-unity/download | |
VR system | Scorptec | 99HANW007-00 | HTC 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 |
References
- 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).
- 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).
- 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).
- 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).
- 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).
- Riecke, B. E., Sigurdarson, S., Milne, A. P. Moving through virtual reality without moving. Cognitive Processing. 13, Suppl 1 293-297 (2012).
- 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).
- 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).
- Gibson, J. J. The perception of the visual world. , Houghton Mifflin. (1950).
- 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).
- 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).
- 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).
- 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).
- 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).
- Tremblay, L., et al. Biases in the perception of self-motion during whole-body acceleration and deceleration. Frontiers in Integrative Neuroscience. 7, 90 (2013).
- 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).
- Harris, L., et al. Simulating self-motion I: Cues for the perception of motion. Virtual Reality. 6 (2), 75-85 (2002).
- Carr, H. A., Hardy, M. C. Some factors in the perception of relative motion: A preliminary experiment. Psychological Review. 27, 24-37 (1920).
- Reinhardt-Rutland, A. H. Induced movement in the visual modality: An overview. Psychological Bulletin. 103, 57-71 (1988).
- Zivotofsky, A. Z., et al. Tracking of illusory target motion: Differences between gaze and head responses. Vision Research. 35 (21), 3029-3035 (1995).
- 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).
- 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).
- 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).
- 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).
- 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).
- Koenig, E. A new multiaxis rotating chair for oculomotor and vestibular function testing in humans. Neuro-ophthalmology. 16 (3), 157-162 (1996).
- Mowrey, D., Clayson, D. Motion sickness, ginger, and psychophysics. The Lancet. 319 (8273), 655-657 (1982).
- 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).
- 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).
- Roto VR Ltd. Roto VR Chair. , Available from: https://www.rotovr.com/ (2021).
- Yaw VR Ltd. Yaw Motion Simulator. , Available from: https://www.yawvr.com/ (2021).
- 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).
- 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).
- SimXperience. , Available from: https://www.simxperience.com/ (2021).
- 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).
- DOF Reality Motion Simulators. , Available from: https://www.dofreality.com/ (2021).
- Next Level Racing. , Available from: https://nextlevelracing.com/ (2022).
- Motion Systems. , Available from: https://motionsystems.eu/ (2022).
- Redbird Flight Simulations. , Available from: https://simulators.redbirdflight.com/ (2022).
- 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).