发明内容
本发明的目的是:提供一个基于虚拟现实和手势检测的乘坐公交车训练系统,系统包括控制模块、显示模块、设置模块、检测模块和数据库。显示模块包括虚拟现实模块、声音播放模块和监控模块。教师或训练员通过设置模块确定受训者需要接受的训练内容,当开始训练后,控制模块根据设置模块输入的信息,从数据库中调取相应的场景、人物、声音、动画等,通过虚拟现实模块将场景视图显示给受训者,通过声音播放模块播放相应声音,以场景和声音共同引导受训者,同时检测模块实时检测受训者的位置和手势,控制场景中主角的行动,当检测模块检测到受训者完成整个任务或一个子任务时,控制模块调取数据库中的奖励效果,通过显示模块播放相应奖励,整个过程中,教师或训练员可以通过监控模块监控受训者在场景中的视野和完成任务情况,并且根据受训者的能力,通过设置模块调节以后的任务,如果教师或训练员未进行设置,则系统会自动根据受训者能力指派任务。
本发明公开了一种基于虚拟现实和手势检测的乘坐公交车训练系统,包括控制模块、显示模块、设置模块、检测模块和数据库。控制模块在硬件上是一台主机。显示模块包括虚拟现实模块、声音播放模块和监控模块,在硬件上,虚拟现实显示模块使用虚拟现实头戴显示器,声音播放模块使用耳机,监控模块是一个普通显示器。设置模块在硬件上由计算机外设组成,包括键盘、鼠标和显示器(与监控模块共用一个显示器),教师或训练员通过鼠标和键盘输入实现对训练任务的设置。检测模块包括位置检测模块、手势检测模块和触发检测模块,在硬件上,位置检测模块即虚拟现实头戴显示器自身带有的位置追踪传感器,手势检测模块使用手部动作采集设备,触发检测模块包含在软件环境中,在场景的不同的位置分别有不同的触发器。数据库包括场景模型库、物品模型库、人物模型库、运动轨迹库、动画及动作库、声音库、奖励效果库和训练信息库,每个库用于存放相应数据。
为实现本发明之目的,采用以下技术方案予以实现:
一种虚拟现实和手势检测的乘坐公交车训练系统,包括控制模块、显示模块、设置模块、检测模块和数据库,其中:
显示模块包括虚拟现实显示模块、声音播放模块和监控模块;
设置模块用于设置训练任务、任务的难度、噪音水平、奖励效果和训练阶段;
检测模块包括位置检测模块、手势检测模块和触发检测模块,其中位置检测模块用于检测受训者的移动,手势检测模块用于获得受训者的手部信息,触发检测模块用于探测场景中的物品是否进入预定的区域;
数据库包括场景模型库、物品模型库、人物模型库、运动轨迹库、动画及动作库、声音库、奖励效果库和训练信息库;
控制模块用于控制整个训练流程、调用其余模块的信息以及控制其余模块。
所述的基于虚拟现实和手势检测的乘坐公交车训练系统,其特征在于:
教师或训练员通过设置模块选择初始训练任务,控制模块启动调用数据库中的场景、物品、人物、轨迹、动画、动作和声音信息,通过虚拟现实显示模块和声音播放模块向受训者播放相关的画面和声音,指示受训者移动。在训练过程中,位置检测模块和手势检测模块实时检测受训者的位置和手势,并将信息反馈给控制模块,控制模块将手势信息建模,并控制场景中的主角进行相应的行动。当触发检测模块检测到受训者完成任务或一个子任务时,控制模块从数据库中调用奖励效果和奖励声音,通过虚拟现实显示模块和声音播放模块进行播放,之后控制模块将本次完成任务的情况记录到数据库中,并控制整个系统自动切换到下一个与受训者能力对应的任务或子任务,直至所有任务都完成。在训练的过程中,教师或训练员课可通过监控模块监控受训者完成任务的情况,并可通过设置模块实时手动调整训练进程。
所述的基于虚拟现实和手势检测的乘坐公交车训练系统,其中:
控制模块用于控制整个训练进程,当进入训练后,控制模块调用设置模块和数据库的信息,通过显示模块显示相应的画面和声音,并通过检测模块实时传回的数据控制训练进程。
所述的基于虚拟现实和手势检测的乘坐公交车训练系统,其中:
显示模块包括虚拟现实显示模块、声音播放模块和监控模块,虚拟现实显示模块和声音播放模块分别用于呈现整个训练过程中需要向受训者展示的画面和声音,而监控模块用于向教师或训练员呈现受训者相应的视角或在场景中主角的行动情况,以及显示一些相关的训练信息,当进入训练后,监控模块自动启动,退出训练或未进入训练时,监控模块不启动。
所述的基于虚拟现实和手势检测的乘坐公交车训练系统,其中:
设置模块可以设置任务的难度、噪音水平、奖励效果和阶段,并将设置的这些信息传输给控制模块,控制模块根据这些信息的不同展现不同的训练。难度分别简单、中等、困难、泛化四个级别,简单难度即对所需要做的动作进行具体的语音以及位置提示,中等难度即对所需要完成的动作进行语音提示,困难级别的难度即不对动作进行任何提示,泛化级别下,允许教师或训练员改变训练变量:乘车类型(及故事情节)、公交车类型、公交车颜色、座位类型、空位数、公交路线、出发地、目的地、上车人数、同行人和买票位置,如果教师或训练员未进行任何设置,则第一次训练时这些训练变量都表现为其初始值,在此后训练系统自动调整训练变量的至以适应受训者的能力,如果教师或训练员选择选择简单、中等或困难的难度,则训练变量都表现为初始值,训练变量的初始值为:老师带学生出游情节,只乘坐一辆固定形状、颜色和路数的公交车,公交车的路线和车上的物品固定,上车人物固定,只有一个空位或没有空位,上车站点和目的地只相距一至二站。由于某些特定人群的需要,如部分自闭症人士对噪音比较敏感,因此背景噪音水平有四个可选的级别,分别是无噪声、30%噪声、60%噪声和正常噪声。奖励效果共有十几种,可以多选,也可以选择无奖励。乘坐公交车技能训练共分为六个阶段的子任务,每个阶段针对不同的内容做出相应的训练,可以选择整体训练或对每个阶段分步训练,这六个阶段分别是:第一阶段、乘车任务下达;第二阶段、排队上车;第三阶段、买票;第四阶段、找座位或抓扶手;第五阶段、下车;第六阶段排队集合,其中第一阶段不单独出现,一般第二、第五阶段组合。教师或训练员可以通过设置模块选择进入整体训练或者分步训练,在乘车类型这一训练变量选择了老师带学生出游以外的情况下,则没有第六阶段。
所述的基于虚拟现实和手势检测的乘坐公交车训练系统,其中:
检测模块包括位置检测模块、手势检测模块和触发检测模块,在整个训练过程中,位置检测模块都会检测受训者的移动,并将信息实时传输给控制模块,控制模块控制场景中的主角进行相应移动,手势检测模块在第三、四阶段会启动,手势检测模块根据采集到图像识别出当前在可靠检测范围内出现的手掌坐标、方向和指尖位置等相关信息,并传输给控制模块,控制模块决定使用多少双手的数据(手势检测模块可识别复数双手,本发明中控制模块一般只使用手势检测模块优先识别到的第一双手),然后控制模块调用人物模型库中预先设置的手的模型,并将获取的手的相关信息与手的模型加以关联,通过显示模块显示出与受训者手势相同的手部模型,触发检测模块由许多触发器组成,触发器在不同阶段设置在不同的位置中,例如队伍后方、公交车车门、刷卡机、投币机、座位、扶手等,所有触发器都预先设定好了中心位置、检测范围和检测对象,当物品进入到某一个触发器的检测范围内,该触发器判断物品是否为检测对象,如果是则反馈给控制模块一个正确触发的信息,如果不是则不反馈信息,然后控制模块据此控制训练进程,播放相应的动画、奖励、任务失败字样、提示等。
所述的基于虚拟现实和手势检测的乘坐公交车训练系统,其中:
数据库由场景模型库、物品模型库、人物模型库、运动轨迹库、动画及动作库、声音库、奖励效果库和训练信息库组成。场景模型库包含一个城市场景,里面涵盖了家庭、公交站台、各种始发和到达站和旅途中的场景模型。物品模型库包括公交车和站牌,公交车内部有投币机、刷卡机、扶手、座位等。人物模型库包含几十个儿童、青少年、成年人的模型。运动轨迹库为每一个人物按照训练的要求规划了不同的运动轨迹,有上车、下车、随意走动等形式,同时存储有20多条公交车线路以及马路上其它汽车的移动轨迹。动作库记录了每个人物和物品的动作,如上下车抬脚动作、公交车门开闭等。声音库记录了训练过程中的指示语、提示语、奖励声音、背景音等。奖励效果库包含一些奖励动画。
所述的训练系统,其中每一训练阶段启动后,控制模块会加载相应的模型:首先控制模块根据设置模块中的难度、噪音水平、和训练阶段等信息,从数据库的场景模型库中调用相应的场景,再从物品模型库和人物模型库中调用相应的物品和人物模型,安置在事先设定的位置,并通过虚拟现实显示模块进行显示,然后通过调用动画动作库和运动轨迹库,控制物品和人物按事先设定好的轨迹和动作运动,之后通过奖励效果这一信息从奖励效果库和声音库中加载奖励需要用到的动画效果和声音,以便需要播放奖励时可以随时调用。
所述的训练系统,其中在二、三、四、五、六训练阶段,当控制模块加载完相应的模型后,控制模块控制位置检测模块启动,开始实时采集受训者的位置反馈给控制模块,控制模块根据接收到的受训者位置信息控制场景中的主角相应地移动。
所述的训练系统,其中在二、三、四、五、六训练阶段,控制模块控制触发检测模块启动,触发检测模块由许多触发器组成,每个触发器都预先设定好了中心位置、检测范围和检测对象,当物品进入到某一个触发器的检测范围内,该触发器判断物品是否为检测对象,如果是则反馈给控制模块一个正确触发的信息,如果不是则不反馈信息,控制模块接收到正确触发的信息后控制显示模块做出相应反应,例如播放奖励等。
所述的训练系统,其中训练的第三、四阶段启动后:控制模块控制手势检测模块启动,根据采集到图像识别出当前手势检测模块在可靠检测范围内出现的手掌坐标、方向和指尖位置等相关信息,并传输给控制模块,控制模块决定使用多少双手的数据(手势检测模块可识别复数双手,本发明中控制模块一般只使用手势检测模块优先识别到的第一双手),然后控制模块调用人物模型库中预先设置的手的模型,并将获取的手的相关信息与手的模型加以关联,并通过虚拟现实显示模块显示手的模型,当受训者的手势发生变化,显示的手部模型相应发生变化,从而实现手势检测。
所述的训练系统,其中在第二训练阶段:控制模块根据公交类型、公交颜色、上车人数和同行人,从数据库中调用相应的物品模型库和人物模型库中的公交车和人物模型并通过虚拟现实显示模块进行显示,然后位置检测模块启动,开始实时采集受训者的位置反馈给控制模块,控制模块根据接收到的受训者位置信息控制场景中的主角相应地移动。
所述的训练系统,其中控制模块还控制场景中的车辆和其它人物根据运动轨迹库中的轨迹进行运动,当任意一辆公交车快要到站时,控制一个或多个人物根据预先设定好的轨迹排队。
所述的训练系统,其中如果训练是在简单难度下,则控制模块调用数据库中的物品、声音等信息,通过语音播放模块语音提示受训者要进行排队以及通过显示模块显示排队的正确位置;在中等难度下只进行语音提示,在困难和泛化难度下不提示排队,之后在队伍周边的触发器判断主角是否正确地排队,如果队伍最后的触发器检测到主角,则反馈给控制模块一个正确排队的信息,控制模块调用奖励效果库和声音库的信息,通过虚拟现实显示模块显示一个奖励动画,如果队伍的头部或中部的触发器检测到主角,则反馈给控制模块一个插队的信息,控制模块调用数据库中的人物、声音、动作,通过虚拟现实显示模块显示一段不要插队的提示动画。
所述的训练系统,其中公交车前车门设置一个触发器,当前车门打开后,触发器开启,否则不开启,当其它角色陆续上车后,在简单难度下,语音播放模块提示请跟着前面的人上车语音,在中等难度下语音播放模块提示请上车语音,在困难难度下不提示,当公交车前车门的触发器检测到主角上车时,控制模块判断该公交车路数是否与第一阶段语音中的路数相同,如果相同,则说明上对了公交车,控制显示模块播放奖励动画,否则判断任务失败,控制显示模块显示上错公交车字样,控制模块将本次训练信息记录到数据库并退出训练,控制模块控制监控模块退出显示,并启动设置模块显示设置界面。
所述的训练系统其中在第三训练阶段:首先控制模块将主角安放在场景中公交车前部买票处的位置,根据买票位置这一训练变量从物品模型库库中调用相应的刷卡机和投币机模型,并放在相应的位置。
所述的训练系统,其中:
如果在简单难度下,则控制模块调用数据库中的物品、声音,通过语音播放模块语音提示受训者要进行刷卡或投币,以及通过显示模块提示刷卡机或投币机的位置;如果在中等难度下,控制模块仅通过语音模块进行语言提示;在困难和泛化难度下不提示;
控制模块启动位置检测模块和手势检测模块,控制模块根据两者的反馈信息控制主角的移动和手部动作,手势检测模块如果检测到受训者的一只或两只手,则从虚拟现实显示模块中显示一只或两只手的模型,并与受训者真实的手动作一致,左手模型的手掌中有一个钱包,钱包上安置一个触发器,当右手模型触碰到触发器时,触发器反馈给控制模块一个信号,控制模块从物品模型库中调用公交卡或者硬币的模型,并安放在右手模型上,如果物品是公交卡,则此后刷卡机上的触发器检测到公交卡靠近,则判断购票成功,如果物品是硬币,则此后投币机上的触发器检测到硬币靠近,则硬币会自动落入投币机中,判断购票成功,当控制模块接收到购票成功的信息后,控制显示模块显示奖励动画。
所述的训练系统,其中在第四训练阶段:控制模块首先根据座位类型、同行人这两个训练变量从数据库中调用相应的座位模型和人物模型,并根据空位数将人物安置在座位上,然后控制模块将主角安放在场景中公交车前部的位置,然后控制模块启动位置检测模块和手势检测模块启动,控制模块根据两者的反馈信息控制主角的移动和手部动作,手势检测模块如果检测到受训者的一只或两只手,则从虚拟现实显示模块中显示一只或两只手的模型,并与受训者真实的手动作一致。
所述的训练系统,其中:如果公交车内有一个的空位,在简单难度下,控制模块调用数据库中的物品、声音等,通过语音播放模块语音提示受训者要坐到该位置,并在位置上方显示提示信息;在中等难度下仅进行语言提示,困难难度下不提示,如果公交车内有多个空位,则属于泛化难度,不进行提示,如果公交车内没有空位,在简单难度下,控制模块调用数据库中的物品、声音等,通过语音播放模块语音提示受训者要抓住某根扶手,并将该扶手发光显示,在中等难度下仅进行语言提示,困难难度下不提示,当位置检测模块检测到受训者移动到空座位前方,并且向下移动,则判断受训者正确坐在了位置上,并反馈给控制模块找座位正确的信息,如果检测到受训者坐在有人坐的位置上,则控制模块调用数据库中的人物、声音信息,通过显示模块播放一个不能坐在他人身上的提示,如果多次检测到受训者坐在有人坐的位置上,则算任务失败,显示模块显示坐在他人身上字样,系统记录本次训练信息并退出训练。
所述的训练系统,其中:当扶手上的触发器探测到手部模型后,反馈给控制模块一个抓扶手正确的信息,当控制模块获得找座位正确或抓扶手正确的信息后,控制显示模块显示奖励动画。
所述的训练系统,其中在第五训练阶段:控制模块根据公交车路线、出发地点、目的地这三个训练变量,调取运动轨迹库中相应的公交车移动轨迹,控制公交车进行相应移动,并在公交车路线包含的站点进行停靠,每次停靠,控制模块随机抽取角色,通过运动轨迹库和动画动作库控制所述角色走下车,控制语音播放模块播放一次当前的站名。
所述的训练系统,其中:如果在简单难度下,公交车上车站和目的地只相隔一站,到达目的地后语音播放模块除了播放站名外,还循环播放请下车的提示语音;在中等难度下,公交车上车站和目的地相隔两站,到达目的地后语音播放模块仅播放一次请下车的提示语音;在困难难度下,公交车上车站和目的地相隔两站,语音播放模块仅播放站名;在泛化难度下,公交车上车站和目的地相隔的站的数目由出发地点、目的地和公交车路线这三个训练变量决定,语音播放模块仅播放站名。
所述的训练系统,其中:公交车后车门安置了一个触发器,当后车门打开后,触发器开启,否则不开启,如果公交车后车门的触发器检测到受训者在正确的车站下车,则反馈给控制模块一个在正确站下车的信息,控制模块控制显示模块播放相应奖励动画,如果在公交车从正确的车站启动后触发器仍未检测到受训者下车,或者在错误的车站检测到受训者下车,则算任务失败,显示模块显示提前下车或下车失败字样。
所述的训练系统,其中在第六训练阶段:控制模块从数据库中调用相应的人物模型,然后启动位置检测模块,开始实时采集受训者的位置反馈给控制模块,控制模块根据该位置信息控制场景中的主角相应地移动。
所述的训练系统,控制模块还控制场景中的其它人物根据运动轨迹库中的轨迹进行运动,即进行排队集合,如果训练是在简单难度下,则控制模块调用数据库中的物品、声音信息,控制语音播放模块语音提示受训者要进行排队以及排队的正确位置;在中等难度下仅进行语言提示;困难和泛化难度下不提示;之后在队伍周边的触发器判断主角是否正确地排队,如果队伍最后的触发检测主角,则反馈给控制模块一个正确排队的信息,控制模块调用奖励效果库和声音库的信息,通过显示模块显示一个奖励动画,如果队伍的头部或中部的触发器检测到主角,则反馈给控制模块一个插队的信息,控制模块调用数据库中的人物、声音、动作,通过显示模块显示一段不要插队的提示动画。
本发明易于操作,易于设置多种场景及易于设置不同难度的训练,训练针对性强,适于不同年龄、不同类型的受训者,对受训者的训练效果良好。
具体实施方式
下面结合附图1-8对本发明具体实施方式进行说明。
如图1所示,基于虚拟现实和手势检测的乘坐公交车训练系统,包括控制模块、显示模块、设置模块、检测模块和数据库。
如图2所示,显示模块包括虚拟现实显示模块、声音播放模块和监控模块。
如图3所示,设置模块可以设置训练任务、任务的难度、噪音水平、奖励效果和阶段。难度分为简单、中等、困难、泛化四个级别,在泛化级别下,允许教师或训练员改变训练变量:乘车类型(及故事情节)、公交车类型、公交车颜色、座位类型、空位数、公交路线、出发地、目的地、上车人数、同行人和买票位置。背景噪音水平有四个可选的级别,分别是无噪声、30%噪声、60%噪声和正常噪声。奖励效果包含几十种动画,可以多选,也可以选择无奖励。乘坐公交车技能训练共分为六个阶段的子任务,可以选择整体训练或分步训练,这六个阶段分别是:第一阶段、乘车任务下达;第二阶段、排队上车;第三阶段、买票;第四阶段、找座位或抓扶手;第五阶段、下车;第六阶段排队集合,其中第一阶段不单独出现,一般第二、第五阶段组合。
如图4所示,检测模块包括位置检测模块、手势检测模块和触发检测模块,位置检测模块用于检测受训者的移动,手势检测模块用于获得受训者的手部信息,触发检测模块由很多触发器组成,用于探测场景中的物品是否进入特定的区域,触发器在不同阶段设置在不同的位置中。
如图5所示,数据库由场景模型库、物品模型库、人物模型库、运动轨迹库、动画及动作库、声音库、奖励效果库和训练信息库组成。
如图6所示,训练中的第一阶段为通过虚拟现实显示模块和语音播放模块呈现一个段动画作为故事背景,并通过其中的人物下达乘车任务,控制模块根据乘车类型这个训练变量,从数据库中调用相应人物、动作和声音,通过显示模块播放对应动画和声音,其中声音包含了出发地、目的地、公交车路数等训练关键信息,根据所选难度不同,训练关键信息也不同。
训练中的第二阶段主要是排队上车的训练,要求受训者识别正确的公交车并排队上车。首先进入训练后,控制模块控制设置模块退出设置界面的显示,并启动监控模块显示训练的过程,控制模块根据公交类型、公交颜色、上车人数和同行人,从数据库中调用相应的物品模型库和人物模型库中的公交车和人物模型并通过虚拟现实显示模块进行场景显示,然后控制模块控制位置检测模块启动,开始实时采集受训者的位置反馈给控制模块,控制模块根据接收到的受训者位置信息控制场景中的主角相应地移动。控制模块还要控制场景中的车辆和其它人物根据运动轨迹库中的轨迹进行运动,当任意一辆公交车快要到站时,都会有一些人物根据提前设定好的轨迹排队,如果训练是在简单难度下,则控制模块调用数据库中的物品模型库和声音库中物品、声音等信息,通过语音播放模块语音提示受训者要进行排队以及排队的正确位置(队伍后会显示一个红圈作为排队提示),在中等、困难和泛化难度下不提示排队,之后在队伍周边的触发器判断主角是否正确地排队,如果队伍最后的触发器检测到主角,则反馈给控制模块一个正确排队的信息,控制模块调用奖励效果库和声音库的信息,通过显示模块显示一个奖励动画,如果队伍的头部或中部的触发器检测到主角,则反馈给控制模块一个插队的信息,控制模块调用数据库中的人物、声音、动作模型等,通过显示模块显示一段不要插队的提示动画,如果控制模块连续多次如3次获得插队的信息,就判断为任务失败,显示模块显示插队字样,控制模块将本次训练信息记录到数据库并退出训练,控制模块控制监控模块退出显示,并启动设置模块显示设置界面,教师或训练员可在显示设置界面对下一次训练的训练任务、任务的难度、噪音水平、奖励效果和阶段进行设置。
公交车前车门安置了一个触发器,当前车门打开后,触发器开启,否则不开启,当其它角色陆续上车后,在简单难度下,语音播放模块提示请跟着前面的人上车语音,在中等难度下语音播放模块提示请上车语音,在困难难度下不提示,简单、中等和困难三个难度下,出现的公交车只有一辆,即正确的公交车,在泛化难度下,可能出现多辆公交车,当公交车前车门的触发器检测主角上车,控制模块判断该公交车路数是否与第一阶段语音中的路数相同,如果相同,则说明上对了公交车,显示模块播放奖励动画,否则算任务失败,显示模块显示上错公交车字样,控制模块将本次训练信息记录到数据库并退出训练,控制模块控制监控模块退出显示,并启动设置模块显示设置界面,教师或训练员可在显示设置界面对下次训练的训练任务、任务的难度、噪音水平、奖励效果和阶段进行设置。每一路公交车都会根据预先设定好的轨迹在站台上停靠一段时间,公交车的开门关门动画存储在动画及动作库中,在公交车停下和启动时会调用,如果受训者在正确路数的公交车启动前没有上车,也算任务失败,显示模块显示上车失败字样,控制模块将本次训练信息记录到数据库并退出训练,控制模块控制监控模块退出显示,并启动设置模块显示设置界面,教师或训练员可在显示设置界面对下次训练的训练任务、任务的难度、噪音水平、奖励效果和阶段进行设置。第二阶段困难难度下的训练流程如图6所示。
训练中的第三阶段是买票训练,要求训练者从手上的钱包中拿出硬币或者公交卡,并根据拿出来的是硬币或者是公交卡,完成刷卡或者投币的动作,首先进入训练后,控制模块控制设置模块退出设置界面的显示,并启动监控模块显示训练的过程,控制模块将主角安放在场景中公交车前部买票处的位置,根据买票位置这一训练变量从物品库中调用相应的刷卡机和投币机模型,并放在相应的位置,根据买票位置这一训练变量的不同,刷卡机和投币机的外形以及位置会有相应不同,如果在简单难度下,则控制模块调用数据库中的物品、声音等信息,通过语音播放模块语音提示受训者要进行刷卡或投币,以及通过显示模块提示刷卡机或投币机的位置(刷卡机或投币机上方出现跳动的箭头),在中等难度下仅进行语言提示,困难和泛化难度下不提示,然后控制模块启动位置检测模块和手势检测模块,控制模块根据两者的反馈信息控制主角的移动和手部动作,手势检测模块如果检测到受训者的一只或两只手,则从虚拟现实显示模块中显示一只或两只手的模型,并与受训者真实的手动作一致,左手模型的手掌中有一个钱包,钱包上安置一个触发器,当右手模型触碰到触发器时,触发器反馈给控制模块一个信号,控制模块从物品库中调用公交卡或者硬币的模型,并安放在右手模型上,如果物品是公交卡,则此后刷卡机上的触发器检测到公交卡靠近,则算购票成功,如果物品是硬币,则此后投币机上的触发器检测到硬币靠近,则硬币会自动落入投币机中,算购票成功,当控制模块接收到购票成功的信息后,控制显示模块显示奖励动画,整个过程中控制模块会记录时间,如果受训者没在规定时间如30s内完成买票或刷卡,或者位置检测模块检测到受训者未买票直接移动到车厢内部,则算购票失败,显示模块显示购票失败字样,控制模块将本次训练信息记录到数据库并退出训练,控制模块控制监控模块退出显示,并启动设置模块显示设置界面,教师或训练员可在显示设置界面对下次训练的训练任务、任务的难度、噪音水平、奖励效果和阶段进行设置。第三阶段困难难度下的训练流程如图7所示。
训练中的第四阶段主要是找座位或抓扶手行为训练,要求训练者能正确判断当前车上空位情况,并根据空位情况完成在座位坐下或者找扶手抓住的动作。首先控制模块根据座位类型、同行人这两个训练变量从数据库中调用相应的座位模型和人物模型,并根据空位数将人物安置在座位上,然后控制模块将主角安放在场景中公交车前部的位置,然后控制模块启动位置检测模块和手势检测模块,控制模块根据两者的反馈信息控制主角的移动和手部动作,手势检测模块如果检测到受训者的一只或两只手,则从虚拟现实显示模块中显示一只或两只手的模型,并与受训者真实的手动作一致,如果公交车内有一个的空位,在简单难度下,控制模块调用数据库中的物品、声音等信息,通过语音播放模块语音提示受训者要坐到该位置,并在位置上方出现跳动的箭头,在中等难度下仅进行语言提示,困难难度下不提示,如果公交车内有多个空位,则属于泛化难度,不进行提示,如果公交车内没有空位,在简单难度下,控制模块调用数据库中的物品、声音等信息,通过语音播放模块语音提示受训者要抓住某根扶手,并将该扶手发光显示,在中等难度下仅进行语言提示,困难难度下不提示,当位置检测模块检测到受训者移动到空座位前方,并且向下移动,则判断受训者正确坐在了位置上(现实中教师或训练员需要根据空座位的情况在相应位置安放椅子),并反馈给控制模块找座位正确的信息,如果检测到受训者坐在有人坐的位置上,则控制模块调用数据库中的人物、声音信息,通过显示模块播放一个不能坐在他人身上的提示,如果多次如3次检测到受训者坐在有人坐的位置上,则算任务失败,显示模块显示坐在他人身上字样,控制模块将本次训练信息记录到数据库并退出训练,控制模块控制监控模块退出显示,并启动设置模块显示设置界面,教师或训练员可在显示设置界面对下次训练的训练任务、任务的难度、噪音水平、奖励效果和阶段进行设置。当扶手上的触发器探测到手部模型后,会反馈给控制模块一个抓扶手正确的信息,当控制模块获得找座位正确或抓扶手正确的信息后,控制显示模块显示奖励动画,整个过程中控制模块会记录时间,如果受训者未能在规定时间如30s内完成找座位或抓扶手的任务,或者在有空位的情况下抓扶手,都算任务失败,显示模块显示找座位失败或抓扶手失败字样,控制模块将本次训练信息记录到数据库并退出训练,控制模块控制监控模块退出显示,并启动设置模块显示设置界面,教师或训练员可在显示设置界面对下次训练的训练任务、任务的难度、噪音水平、奖励效果和阶段进行设置。第四阶段困难难度下的训练流程如图8所示。
训练中的第五阶段主要是在正确车站下车的训练,要求训练者能在记住第一阶段中播放的目的地的基础上,对公交车所显示的或播报的站名加以正确的识别,并在正确的站台下车,首先进入训练后,控制模块控制设置模块退出设置界面的显示,并启动监控模块显示训练的过程,控制模块根据公交车路线、出发地点、目的地这三个训练变量,调取运动轨迹库中相应的公交车移动轨迹,控制公交车进行相应移动,并在公交车路线包含的站点进行停靠,每次停靠,控制模块都是随机抽取一些角色,通过运动轨迹库和动画动作库控制这些角色走下车,控制语音播放模块播放一次当前的站名,如果在简单难度下,公交车上车站和目的地只相隔一站,到达目的地后语音播放模块除了播放站名外,还循环播放请下车的提示语音,在中等难度下,公交车上车站和目的地相隔两站,到达目的地后语音播放模块仅播放一次请下车的提示语音,在困难难度下,公交车上车站和目的地相隔两站,语音播放模块仅播放站名,在泛化难度下,公交车上车站和目的地相隔的站的数目由出发地点、目的地和公交车路线这三个训练变量决定,语音播放模块仅播放站名,公交车后车门安置了一个触发器,当后车门打开后,触发器开启,否则不开启,如果公交车后车门的触发器检测到受训者在正确的车站下车,则反馈给控制模块一个在正确站下车的信息,控制模块控制显示模块播放相应奖励动画,如果在公交车从正确的车站启动后触发器仍未检测到受训者下车,或者在错误的车站检测到受训者下车,则算任务失败,显示模块显示提前下车或下车失败字样,控制模块将本次训练信息记录到数据库并退出训练,控制模块控制监控模块退出显示,并启动设置模块显示设置界面,教师或训练员可在显示设置界面对下次训练的训练任务、任务的难度、噪音水平、奖励效果和阶段进行设置。第五阶段困难难度下的训练流程如图9所示。
训练中的第六阶段主要是下车排队集合,要求训练者能够在下车后在指定地点排队集合,第六阶段是否出现会根据乘车类型这个训练变量的不同而变化,仅当乘车类型选择老师带学生一起出行时,存在第六阶段,相应的,第二阶段和第五阶段中作为受训者的老师和同学的系统的人物模型会按照预先设定好的运动轨迹乘坐正确的公交车并在目的地下车,下车后排队的过程和上车前排队的过程相似,首先进入训练后,控制模块控制设置模块退出设置界面的显示,并启动监控模块显示训练的过程,控制模块从数据库中调用相应的人物模型,然后启动位置检测模块,开始实时采集受训者的位置反馈给控制模块,控制模块控制场景中的主角相应地移动。控制模块还要控制场景中的其它人物根据运动轨迹库中的轨迹进行运动,即进行排队集合,如果训练是在简单难度下,则控制模块调用数据库中的物品、声音等信息,控制语音播放模块语音提示受训者要进行排队以及排队的正确位置(队伍后会显示一个红圈),在中等难度下仅进行语言提示,困难和泛化难度下不提示,之后在队伍周边的触发器判断主角是否正确地排队,如果队伍最后的触发检测主角,则反馈给控制模块一个正确排队的信息,控制模块调用奖励效果库和声音库的信息,通过显示模块显示一个奖励动画,如果队伍的头部或中部的触发器检测到主角,则反馈给控制模块一个插队的信息,控制模块调用数据库中的人物、声音、动作模型等,通过显示模块显示一段不要插队的提示动画,如果控制模块连续多次如3次获得插队的信息,就算任务失败,显示模块显示插队字样,控制模块将本次训练信息记录到数据库并退出训练,控制模块控制监控模块退出显示,并启动设置模块显示设置界面,教师或训练员可在显示设置界面对下次训练的训练任务、任务的难度、噪音水平、奖励效果和阶段进行设置。第六阶段困难难度下的训练流程如图10所示。
本发明与传统人工训练教学系统和App软件等相比,有如下优点:第一、本发明能够逼真再现等公交、排队、上车、做座位和下车等场景,训练环节循序渐进,场景逐步变化,克服现实中场景搭建困难问题;第二、生活应用与训练内容一致,泛化更容易;第三、以视觉为主,尤其是学习抽象概念,视觉比听觉或触觉对他们来说更有效;第四、训练环境更安全,在VR中训练,即使有失败的情况,也不会造成对现实世界的影响;第五、零时间切换场景、训练密集、更有效;第六、教师不以实际身份加入训练,训练中能去除教师身份影响;第七、手势检测有利于训练用户进行精细手部动作的能力,比普通的动作识别精度更高,且手势检测设备体积小、便于携带。