CN107844195B - 基于Intel RealSense的汽车虚拟驾驶应用的开发方法及系统 - Google Patents
基于Intel RealSense的汽车虚拟驾驶应用的开发方法及系统 Download PDFInfo
- Publication number
- CN107844195B CN107844195B CN201711010835.5A CN201711010835A CN107844195B CN 107844195 B CN107844195 B CN 107844195B CN 201711010835 A CN201711010835 A CN 201711010835A CN 107844195 B CN107844195 B CN 107844195B
- Authority
- CN
- China
- Prior art keywords
- gesture
- automobile
- scene
- switching
- virtual driving
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 58
- 238000011161 development Methods 0.000 title claims abstract description 23
- 238000013515 script Methods 0.000 claims abstract description 47
- 230000009471 action Effects 0.000 claims abstract description 30
- 238000004519 manufacturing process Methods 0.000 claims abstract description 19
- 238000012545 processing Methods 0.000 claims description 55
- 230000006870 function Effects 0.000 claims description 42
- 230000033001 locomotion Effects 0.000 claims description 23
- 230000008569 process Effects 0.000 claims description 22
- 210000004247 hand Anatomy 0.000 claims description 11
- 230000000007 visual effect Effects 0.000 claims description 11
- 230000003993 interaction Effects 0.000 claims description 10
- 210000003813 thumb Anatomy 0.000 claims description 8
- 230000007480 spreading Effects 0.000 claims description 7
- 238000003892 spreading Methods 0.000 claims description 7
- 230000008676 import Effects 0.000 claims description 5
- 230000001960 triggered effect Effects 0.000 claims description 3
- 230000001360 synchronised effect Effects 0.000 claims 2
- 238000010586 diagram Methods 0.000 description 11
- 238000004590 computer program Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 5
- 230000003238 somatosensory effect Effects 0.000 description 3
- 238000003860 storage Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 244000025254 Cannabis sativa Species 0.000 description 1
- 241000209504 Poaceae Species 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 208000002173 dizziness Diseases 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
- G06F3/014—Hand-worn input/output arrangements, e.g. data gloves
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/017—Gesture based interaction, e.g. based on a set of recognized hand gestures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/05—Geographic models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/006—Mixed reality
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Geometry (AREA)
- Human Computer Interaction (AREA)
- Computer Graphics (AREA)
- Remote Sensing (AREA)
- Computer Hardware Design (AREA)
- User Interface Of Digital Computer (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明涉及基于Intel RealSense汽车虚拟驾驶应用的开发方法及系统,该方法包括在Unity引擎中创建虚拟驾驶地形场景,制作道路;并制作汽车3D模型,置于上述场景中;通过Intel Realsense SDK完成Unity下感知设备的数据接入,并创建汽车前进、左转和右转的脚本;借助Intel Realsense 3D Camera跟踪和捕捉预设的用户手势动作,实现汽车虚拟驾驶。本发明实施例提供的开发方法,使得开发者编写少量代码来实现汽车虚拟驾驶,大大减少开发人员的工作量,且用户无需穿戴任何设备操作该应用,能够给用户带来娱乐性的驾驶体验,增强了趣味性。
Description
技术领域
本发明涉及互联网技术领域,特别涉及一种基于Intel RealSense汽车虚拟驾驶应用的开发方法及系统。
背景技术
目前,常见的人机交互方式主要是基于键盘、鼠标、触摸屏、遥控器等接触式的操作方式,交互过程需要借助中间设备,其传输方式单一。伴随着计算机软硬件技术的高速发展以及人们对人机交互的更高要求,语音识别、体感交互等新型人机交互方式开始出现,体感交互可以使得用户通过语音、手势等更加自然、直观地与计算机进行交流,该交互方式是一种非接触式的交互方式,不需要借助中间设备,更加符合人类交流方式。
但现有的体感虚拟驾驶应用往往需要借助虚拟现实头盔、手柄等其他外接设备,且程序开发量较大,而且操作该应用时佩戴该类型的设备具有一定的延时和眩晕等缺点,用户不能获得良好的体验。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种基于Intel RealSense汽车虚拟驾驶应用的开发方法及系统。
第一方面,本发明实施例提供一种基于Intel RealSense汽车虚拟驾驶应用的开发方法,包括:在Unity引擎中创建虚拟驾驶地形场景,并在所述场景中制作道路;
制作汽车3D模型,将所述汽车3D模型导入Unity中并将其置于所述场景中;
通过Intel Realsense SDK完成Unity下感知设备的数据接入,并创建汽车前进、左转和右转的脚本;
借助Intel Realsense 3D Camera跟踪和捕捉预设的用户手势动作信息,根据所述用户手势动作信息,实现汽车虚拟驾驶。
在一个实施例中,所述借助Intel Realsense 3D Camera跟踪和捕捉预设的用户手势动作信息,根据所述用户手势动作信息,实现汽车虚拟驾驶,包括:
使用UnityToolkit的SendMessage组件,借助Unity发送信息的功能设置预设的用户手势动作为触发条件,当通过Intel Realsense 3D Camera跟踪捕捉到用户双手展开、左手向左偏转和右手向右偏转的动作,根据所述用户双手展开、左手向左偏转和右手向右偏转的动作实现双手控制汽车的直线行驶、左手控制汽车左转和右手控制汽车右转。
在一个实施例中,在创建汽车前进、左转和右转的脚本之后,所述方法还包括:
添加汽车声音组件,使其在虚拟驾驶过程中发出发动机引擎的声音。
在一个实施例中,所述方法还包括:
在Unity引擎中创建虚拟驾驶地形场景之后,还包括:添加相机;
初始化时获取相机与汽车的相对偏移量,根据所述偏移量设置第一人称和第三人称驾驶视角,并通过第一预设的操作方式实现所述第一人称和第三人称驾驶视角的切换。
在一个实施例中,所述方法还包括:
通过第二预设的操作方式实现对所述虚拟驾驶地形场景和/或所述汽车3D 模型的切换。
第二方面,本发明实施例提供一种基于Intel RealSense汽车虚拟驾驶应用的开发系统,包括:
创建制作模块,用于在Unity引擎中创建虚拟驾驶地形场景,并在所述场景中制作道路;
制作导入模块,用于制作汽车3D模型,将所述汽车3D模型导入Unity 中并将其置于所述场景中;
数据接入模块,用于通过Intel Realsense SDK完成Unity下感知设备的数据接入;
创建脚本模块,用于创建汽车前进、左转和右转的脚本;
实现驾驶模块,用于借助Intel Realsense 3D Camera跟踪和捕捉预设的用户手势动作信息,根据所述用户手势动作信息,实现汽车虚拟驾驶。
在一个实施例中,实现驾驶模块,具体用于使用UnityToolkit的SendMessage组件,借助Unity发送信息的功能设置预设的用户手势动作为触发条件,当通过IntelRealsense 3D Camera跟踪捕捉到用户双手展开、左手向左偏转和右手向右偏转的动作,根据所述用户双手展开、左手向左偏转和右手向右偏转的动作实现双手控制汽车的直线行驶、左手控制汽车左转和右手控制汽车右转。
在一个实施例中,还包括:
添加组件模块,用于添加汽车声音组件,使其在虚拟驾驶过程中发出发动机引擎的声音。
在一个实施例中,还包括:添加相机模块和第一切换模块;
所述添加相机模块,用于在Unity引擎中创建虚拟驾驶地形场景之后添加相机;
所述第一切换模块,用于初始化时获取相机与汽车的相对偏移量,根据所述偏移量设置第一人称和第三人称驾驶视角,并通过第一预设操作方式实现所述第一人称和第三人称驾驶视角的切换。
在一个实施例中,还包括:第二切换模块,用于通过第二预设的操作方式实现对所述虚拟驾驶地形场景和/或所述汽车3D模型的切换。
本发明实施例提供的上述技术方案的有益效果至少包括:
本发明实施例提供的基于Intel RealSense汽车虚拟驾驶应用的开发方法,包括在Unity引擎中创建虚拟驾驶地形场景,并在所述场景中制作道路;制作汽车3D模型,将所述汽车3D模型导入Unity中并将其置于所述场景中;通过 Intel Realsense SDK完成Unity下感知设备的数据接入,并创建汽车前进、左转和右转的脚本;借助Intel Realsense 3DCamera跟踪和捕捉预设的用户手势动作,实现汽车虚拟驾驶。本发明实施例提供的基于Intel RealSense汽车虚拟驾驶应用的开发方法,制作虚拟驾驶的场景和汽车3D模型,创建汽车前进、左转和右转的脚本,借助RealSense SDK和Intel RealSense 3D摄像头,使得开发者编写少量代码来实现汽车虚拟驾驶,大大减少开发人员的工作量,且用户无需穿戴任何设备操作该应用,通过获取用户手势动作,可实现对屏幕中的汽车3D模型的虚拟驾驶,能够给用户带来娱乐性的驾驶体验,增强了趣味性。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1为本发明实施例提供的基于Intel RealSense汽车虚拟驾驶应用的开发方法的流程图;
图2为本发明实施例提供的创建完成的草地场景和公路的示意图;
图3为本发明实施例提供的手势动作示意图;
图4为本发明实施例提供的举例的开发方法技术架构图;
图5为本发明实施例提供的基于Intel RealSense汽车虚拟驾驶应用的开发系统的框图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
参照图1所示,本发明实施例提供的基于Intel RealSense汽车虚拟驾驶应用的开发方法,根据英特尔的实感技术能够利用Intel RealSense 3D摄像头能够实时输出深度数据,借助RealSense SDK提供手势识别、脸部交互、场景感知等一系列计算机视觉算法,实现高精度的手势追踪、面部分析、语音识别等感知计算。该方法包括:步骤S101~S104;
S101、在Unity引擎中创建虚拟驾驶地形场景,并在所述场景中制作道路;
S102、制作汽车3D模型,将所述汽车3D模型导入Unity中并将其置于所述场景中;
S103、通过Intel Realsense SDK完成Unity下感知设备的数据接入,并创建汽车前进、左转和右转的脚本;
S104、借助Intel Realsense 3D Camera跟踪和捕捉预设的用户手势动作信息,根据所述用户手势动作信息,实现汽车虚拟驾驶。
本实施例中,Unity,也可称Unity3D,是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。
步骤S101可以在Unity引擎中新建多个类型的虚拟驾驶地形场景文件,比如虚拟驾驶场景为城市、森林、沙漠和草原等,虚拟驾驶中,逼真的场景能给用户带来更加沉浸的驾驶体验。其中可以在场景中创建地形(Terrain),Unity 内置了强大的地形编辑器,可以对地形进行拔高、降低、平滑高度处理,利用这些功能可以制作高低起伏的地形。还可以丰富场景,以草原虚拟驾驶为例,比如可以在地形添加草地贴图,使整个地形呈现绿色的景象;然后加载多个草的纹理贴图,调整笔刷的大小、不透明度和强度,在地形上添加多种植被,使整个草地场景更加逼真。比如本步骤中使用EasyRoads 3D插件制作道路, EasyRoads3D是一款强大的造路插件,可以直接将道路参与到地形的构建当中,并且修改地形的外观以适应道路。使用之前,首先需要将Easyroads 3D插件导入Unity中,然后通过Hierachy(Hierachy视图,是主要放于游戏场景中具体的游戏对象,比如摄像机平面贴图、3D贴图等)窗口创建道路,在创建过程中按住Shift并点击鼠标即可完成公路的创建。在公路设置面板中,可以调整公路的宽度、需要激活的物体等,若要创建封闭的道路,需要勾选ClosedTrack选项,制作完成的草地场景的公路如图2所示,至此完成草地场景的搭建。
步骤S102中,通过三维软件也可以制作多个汽车3D模型,比如可以利用 Blender、3Dmax或maya等三维软件,其中:Blender是一款开源的跨平台全能三维动画制作软件,提供从建模、动画、材质、渲染、到音频处理、视频剪辑等一系列动画短片制作解决方案。
多个汽车3D模型,比如选择奥迪汽车作为虚拟驾驶对象时,可以制作奥迪车型中比较有代表性的几种车型,例如A8—大型公务轿车,A4—小型旅行车,S5—运动车,Q7—越野车,R8—GT跑车,TTS—跑车等。
例如将3Dmax中处理过的汽车模型导入Unity中,将模型放入虚拟驾驶地形场景中,可调整汽车在虚拟驾驶地形场景中的位置,通过调整汽车的大小,保证汽车模型在虚拟驾驶地形场景的大小比例符合现实中的比例。
步骤S103中,为了方便利用高度集成的Intel RealSense 3D摄像头,IntelRealSense技术还提供了丰富的SDK,通过Intel Realsense SDK完成Unity下感知设备的数据接入,并创建汽车前进、左转和右转的脚本。
步骤S104中,借助Intel Realsense 3D摄像头跟踪和捕捉预设的用户手势动作,转换为匹配的指令,实现控制汽车的移动、左转、右转和停止。
本发明实施例提供的基于Intel RealSense汽车虚拟驾驶应用的开发方法,制作虚拟驾驶的场景和汽车3D模型,创建汽车前进、左转和右转的脚本,借助RealSense SDK和Intel RealSense 3D摄像头,使得开发者编写少量代码来实现汽车虚拟驾驶,大大减少开发人员的工作量,且用户无需穿戴任何设备操作该应用,通过获取用户手势动作,可实现对屏幕中的汽车3D模型的虚拟驾驶,能够给用户带来娱乐性的驾驶体验,增强了趣味性。
在一个实施例中,步骤S104具体的实现需要使用Unity中的UnityToolkit 插件,它是一个由脚本、预制件和其他工具组成的套件。该工具集使得设计者能够通过编写少量的代码来添加交互操作,例如,当游戏中需要加入诸如手部跟踪、姿势检测等功能时,只需将Unity工具集提供的动作脚本(如tracking action或rotate action)附给场景中的游戏对象上。本实施例中,使用UnityToolkit 的SendMessage(发送信息)组件,借助Unity发送信息的功能设置预设的用户手势动作为触发条件,具体地可以选择触发类型为“TrackingSource”,增加追踪源为“Hand Tracking”即手势追踪。而SendMessage是一次性定制的触发条件动作,当触发条件被出发时仅能实现一种动作,因此需要为汽车增加多个SendMessage组件,参照图3所示,选择双手、左手、右手作为触发条件,分别触发MoveContrl()、TurnLeft()、TurnRight()三个函数的执行,并勾选连续追踪,即可通过手势控制汽车前进、左转、右转的连续运动,当通过Intel Realsense3D Camera跟踪捕捉到用户双手展开、左手向左偏转和右手向右偏转的动作,根据用户双手展开、左手向左偏转和右手向右偏转的动作,实现双手控制汽车的直线行驶、左手控制汽车左转和右手控制汽车右转。
在一个实施例中,为了进一步提高沉浸式体验,可以为汽车添加声音组件,使其在虚拟驾驶过程中发出发动机引擎的声音。具体地,比如可以发出正常行驶和急转弯等声音。
在一个实施例中,在Unity引擎中创建虚拟驾驶地形场景之后,还包括:添加相机;上述方法还包括对视角的切换,在虚拟驾驶中,相机相当于人眼,其视野跟随汽车的移动而移动,这时相机有一个参考对象,它会保持与该参考对象固定的位置,跟随改参考对象发生移动,这里的参考对象为汽车。相机跟随的实现原理是在初始化时获取相机与汽车的相对偏移,并在一个Update()更新函数中设置相机的位置为汽车的位置加初始偏移量。
为丰富驾驶视角,本设计提供了第一人称和第三人称两种驾驶视角体验,通过第一预设的操作方式,比如键盘、鼠标或获取头部动作,均可快速实现两种视角的切换。第三人称的视角中,用户视角始终在汽车的后上方,并与汽车保持一定距离,而在第一人称视角下,相机在汽车内部,可以模拟真实的驾驶视野,在两种视角下,相机跟随汽车的移动而移动。
在一个实施例中,上述方法还包括:通过第二预设的操作方式实现对虚拟驾驶地形场景和/或上述汽车3D模型的切换。
本实施例中,第二预设的操作方式,包括手势、键盘和鼠标三种方式实现对场景的切换,也可以实现对汽车3D模型的切换,比如参照图3所述的,上一个和下一个切换手势。比如在虚拟驾驶地形场景切换中,利用 SceneManger.LoadScene(场景切换)函数实现场景的切换,当利用鼠标切换场景时,通过给按钮添加点击事件,并传入所要跳转的场景名称,实现场景切换。利用键盘切换场景时,通过检测用户输入的按键而跳转不同的场景,还比如,可以选择键盘的1-6代表不同汽车3D模型,按下其中任意数字可选择车型,并可查看车型的详细信息。利用手势切换场景时,需要为摄像机添加Send Message组件,并选择EventSource,例如参照图2所示,选择大拇指向上(Thumb Up)和大拇指向下(Thumb Down)实现场景向上一级和下一级的切换,在Function Name中选择场景切换的函数。同样地由于SendMessage是一次性定制的触发条件动作,因此,若要在同一场景中实现多种手势控制,可以为场景中的对象添加多个Send Message组件,并在Function Name中传入函数,当摄像头检测到设定的手势,即可执行所传入的函数。
在一个实施例中,还包括:创建UI控制器脚本、音频控制器脚本、模型切换控制器脚本、颜色切换控制器脚本和手势控制脚本。
比如UI控制器脚本,应用程序UI界面的设计从用户的角度出发,界面简洁,结构清晰一致,便于用户理解和使用;比如界面的颜色以黑色、蓝色和为主,突出科技感;在UI界面的交互方面,根据系统的功能,设计各级界面,并通过鼠标或手势操作实现场景的切换。
比如音频控制器脚本包含对背景音乐和汽车发动机引擎声音的处理。
比如模型切换控制器脚本、颜色切换控制器脚本,包含对汽车类型以及颜色切换的处理。
下面具体说明手势控制脚本的实现过程:
手势控制一般需要经过四个步骤:初始化和配置手势模块,实现主处理循环,访问手动跟踪数据,处理手势。
(1)初始化和配置手势模块
在跟踪手势之前,必须初始化SenseManager以进行手势跟踪和配置手势。初始化SenseManager和手势模块的C#代码如下:
//创建SenseManager实例
PXCMSenseManager mysm=PXCMSenseManager.CreateInstance();
//使用手势跟踪
mysm.EnableHand;
//获得PXCHandModule实例
PXCHandModule MyHandModule=mysm.QueryHand();
//获得PXCHandConfiguration实例
PXCHandConfiguration
handConfig=handModule.CreateActiveConfiguration();
//改变配置并应用
handConfig.EnableEngagement(true);
handConfig.EnableAllGestures();
//设置其他配置选项
handConfig.ApplyChanges();
//初始化SenseManager流水线
mysm.Init();
(2)实现主处理循环
初始化和配置手势模块后,需要启动主处理循环。主处理循环用来在线获取每个图像帧并管理手势跟踪过程,同时响应每一帧中检测到的首部动作和手势。
实现主处理循环的方式有两种:同步函数和异步函数,同步函数可以跟踪和处理每一帧的输出,异步函数可以实现和注册一个或多个事件处理器,并初始化一个用于处理跟踪的新线程。同步函数实现主循环的核心代码如下:
//主循环处理
while(mysm.AcquireFrame(true).IsSuccessfull()){
//获取当前跟踪结果
HandData.Update();
//处理手部跟踪数据
……
//进行下一帧处理
Mysm.ReleaseFrame();
}
(3)访问手动跟踪数据
在主处理循环中,可以处理当前帧的手势跟踪数据,包括访问手部位置、手势跟踪状态、关节数据等。手势数据由IHand接口表示,可以从HandData 对象获取指定的手势数据。
(4)手势处理
手势处理是对具体的手部动作或姿势进行处理,可以让应用程序只响应预先定义的手势,而不必处理原始数据。手势的处理可以在手势被触发时,利用回调函数调用已注册的手势进行处理程序,或者在主处理循环中轮询手势。主处理循环中轮询指定手势的核心代码(C#)如下,其中handData是一个 PXCMHandData实例,IsGestureFired函数用来处理指定手势。
本发明提供的基于Intel RealSense汽车虚拟驾驶应用的开发方法,还包括对应用程序进行发布与测试,Unity3D可实现程序的多平台发布,本实施例是基于英特尔体感外设摄像头进行的开发,发布在PC端,并运行于Windows系统下。点击Build Settings,首先将主菜单场景加载进来,使其Index为0,随后把所有的场景加载进来,选择发布终端为PC端,将汽车虚拟驾驶应用发布为一个在PC端独立运行的应用程序。
参照图4所示,为本发明实施例提供的举例的开发方法技术架构图;举例说明汽车虚拟驾驶应用设计制作的技术架构,包括收集整理素材,比如音频素材、UI素材和贴图素材等,然后使用3Dmax制作汽车3D模型,再使用Unity 进行虚拟驾驶场景的构建;通过编写UI控制器、音频控制器、模型切换控制器和颜色切换控制器,接入Inter RealSense SDK,创建手势实现汽车虚拟驾驶、汽车放大缩小的脚本,最终进行测试、修改、完善、发布。
本发明实施例还提供了一种基于Intel RealSense的汽车虚拟驾驶应用的开发系统,该系统使用本发明实施例提供的上述基于Intel RealSense的汽车虚拟驾驶应用的开发方法。
基于同一发明构思,由于该系统所解决问题的原理与前述基于Intel RealSense的汽车虚拟驾驶应用的开发方法相似,因此该系统的实施可以参见前述方法的实施,重复之处不再赘述。
参照图5所示,上述系统包括:
创建制作模块51,用于在Unity引擎中创建虚拟驾驶地形场景,并在所述场景中制作道路;
制作导入模块52,用于制作汽车3D模型,将所述汽车3D模型导入Unity 中并将其置于所述场景中;
数据接入模块53,用于通过Intel Realsense SDK完成Unity下感知设备的数据接入;
创建脚本模块54,用于创建汽车前进、左转和右转的脚本;
实现驾驶模块55,用于借助Intel Realsense 3D Camera跟踪和捕捉预设的用户手势动作信息,根据所述用户手势动作信息,实现汽车虚拟驾驶。
在一个实施例中,实现驾驶模块55,具体用于使用UnityToolkit的 SendMessage组件,借助Unity发送信息的功能设置预设的用户手势动作为触发条件,当通过IntelRealsense 3D Camera跟踪捕捉到用户双手展开、左手向左偏转和右手向右偏转的动作,根据所述用户双手展开、左手向左偏转和右手向右偏转的动作实现双手控制汽车的直线行驶、左手控制汽车左转和右手控制汽车右转。
在一个实施例中,参照图5所示,还包括添加组件模块56,用于添加汽车声音组件,使其在虚拟驾驶过程中发出发动机引擎的声音。
在一个实施例中,参照图5所示,还包括:添加相机模块57和第一切换模块58;添加相机模块57,用于在Unity引擎中创建虚拟驾驶地形场景之后添加相机;
第一切换模块58,用于初始化时获取相机与汽车的相对偏移量,根据所述偏移量设置第一人称和第三人称驾驶视角,并通过第一预设操作方式实现所述第一人称和第三人称驾驶视角的切换。
在一个实施例中,参照图5所示,还包括:第二切换模块59,用于通过第二预设的操作方式实现对所述虚拟驾驶地形场景和/或所述汽车3D模型的切换。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和 /或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/ 或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (2)
1.基于Intel RealSense汽车虚拟驾驶应用的开发方法,其特征在于,包括:
在Unity引擎中创建虚拟驾驶地形场景,并在所述场景中制作道路;
制作汽车3D模型,将所述汽车3D模型导入Unity中并将其置于所述场景中;
通过Intel Realsense SDK完成Unity下感知设备的数据接入,并创建汽车前进、左转和右转的脚本;
借助Intel Realsense 3D Camera跟踪和捕捉预设的用户手势动作信息,根据所述用户手势动作信息,实现汽车虚拟驾驶;
在创建汽车前进、左转和右转的脚本之后,所述方法还包括:
添加汽车声音组件,使其在虚拟驾驶过程中发出发动机引擎的声音;
通过第二预设的操作方式实现对所述虚拟驾驶地形场景和/或所述汽车3D模型的切换;第二预设的操作方式,包括手势、键盘和鼠标三种方式;
所述借助Intel Realsense 3D Camera跟踪和捕捉预设的用户手势动作信息,根据所述用户手势动作信息,实现汽车虚拟驾驶,包括:
使用UnityToolkit的SendMessage组件,借助Unity发送信息的功能设置预设的用户手势动作为触发条件,当通过Intel Realsense 3D Camera跟踪捕捉到用户双手展开、左手向左偏转和右手向右偏转的动作,根据所述用户双手展开、左手向左偏转和右手向右偏转的动作实现双手控制汽车的直线行驶、左手控制汽车左转和右手控制汽车右转;
所述方法还包括:
在Unity引擎中创建虚拟驾驶地形场景之后,还包括:添加相机;
初始化时获取相机与汽车的相对偏移量,根据所述偏移量设置第一人称和第三人称驾驶视角,并通过第一预设的操作方式实现所述第一人称和第三人称驾驶视角的切换;
在虚拟驾驶地形场景切换中,利用SceneManger.LoadScene场景切换函数实现场景的切换,当利用鼠标切换场景时,通过给按钮添加点击事件,并传入所要跳转的场景名称,实现场景切换;利用键盘切换场景时,通过检测用户输入的按键而跳转不同的场景,选择键盘的1-6数字代表不同汽车3D模型,按下其中任意数字可选择车型,并可查看车型的详细信息;利用手势切换场景时,需要为摄像机添加SendMessage组件,并选择EventSource,选择大拇指向上ThumbUp和大拇指向下ThumbDown实现场景向上一级和下一级的切换,在FunctionName中选择场景切换的函数;SendMessage是一次性定制的触发条件动作,在同一场景中实现多种手势控制,为场景中的对象添加多个SendMessage组件,并在FunctionName中传入函数,当摄像头检测到设定的手势,即可执行所传入的函数;
所述方法还包括:创建UI控制器脚本、音频控制器脚本、模型切换控制器脚本、颜色切换控制器脚本和手势控制脚本;在UI界面的交互方面,根据系统的功能,设计各级界面,并通过鼠标或手势操作实现场景的切换;音频控制器脚本包含对背景音乐和汽车发动机引擎声音的处理;模型切换控制器脚本、颜色切换控制器脚本,包含对汽车类型以及颜色切换的处理;手势控制脚本的实现过程为,所述手势控制需要经过四个步骤:初始化和配置手势模块,实现主处理循环,访问手动跟踪数据,处理手势:
(1)初始化和配置手势模块
在跟踪手势之前,初始化SenseManager以进行手势跟踪和配置手势,初始化SenseManager和手势模块;
(2)实现主处理循环
初始化和配置手势模块后,启动主处理循环,主处理循环用来在线获取每个图像帧并管理手势跟踪过程,同时响应每一帧中检测到的手部动作和手势;
实现主处理循环的方式有两种:同步函数和异步函数,同步函数跟踪和处理每一帧的输出,异步函数实现和注册一个或多个事件处理器,并初始化一个用于处理跟踪的新线程;
(3)访问手动跟踪数据
在主处理循环中,处理当前帧的手势跟踪数据,包括访问手部位置、手势跟踪状态、关节数据,手势数据由IHand接口表示,从HandData对象获取指定的手势数据;
(4)手势处理
手势处理是对具体的手部动作或姿势进行处理,应用程序只响应预先定义的手势,而不处理原始数据;手势的处理在手势被触发时,利用回调函数调用已注册的手势进行处理程序,或者在主处理循环中轮询手势。
2.基于Intel RealSense汽车虚拟驾驶应用的开发系统,其特征在于,
创建制作模块,用于在Unity引擎中创建虚拟驾驶地形场景,并在所述场景中制作道路;
制作导入模块,用于制作汽车3D模型,将所述汽车3D模型导入Unity中并将其置于所述场景中;
数据接入模块,用于通过Intel Realsense SDK完成Unity下感知设备的数据接入;
创建脚本模块,用于创建汽车前进、左转和右转的脚本;
实现驾驶模块,用于借助Intel Realsense 3D Camera跟踪和捕捉预设的用户手势动作信息,根据所述用户手势动作信息,实现汽车虚拟驾驶;
还包括:
添加组件模块,用于添加汽车声音组件,使其在虚拟驾驶过程中发出发动机引擎的声音;
第二切换模块,包括手势、键盘和鼠标三种方式;用于通过第二预设的操作方式实现对所述虚拟驾驶地形场景和/或所述汽车3D模型的切换;
实现驾驶模块,具体用于使用UnityToolkit的SendMessage组件,借助Unity发送信息的功能设置预设的用户手势动作为触发条件,当通过Intel Realsense 3D Camera跟踪捕捉到用户双手展开、左手向左偏转和右手向右偏转的动作,根据所述用户双手展开、左手向左偏转和右手向右偏转的动作实现双手控制汽车的直线行驶、左手控制汽车左转和右手控制汽车右转;
添加相机模块和第一切换模块;
所述添加相机模块,用于在Unity引擎中创建虚拟驾驶地形场景之后添加相机;
所述第一切换模块,用于初始化时获取相机与汽车的相对偏移量,根据所述偏移量设置第一人称和第三人称驾驶视角,并通过第一预设操作方式实现所述第一人称和第三人称驾驶视角的切换;
在虚拟驾驶地形场景切换中,利用SceneManger.LoadScene场景切换函数实现场景的切换,当利用鼠标切换场景时,通过给按钮添加点击事件,并传入所要跳转的场景名称,实现场景切换;利用键盘切换场景时,通过检测用户输入的按键而跳转不同的场景,选择键盘的1-6数字代表不同汽车3D模型,按下其中任意数字可选择车型,并可查看车型的详细信息;利用手势切换场景时,需要为摄像机添加SendMessage组件,并选择EventSource,选择大拇指向上ThumbUp和大拇指向下ThumbDown实现场景向上一级和下一级的切换,在FunctionName中选择场景切换的函数;SendMessage是一次性定制的触发条件动作,在同一场景中实现多种手势控制,为场景中的对象添加多个SendMessage组件,并在FunctionName中传入函数,当摄像头检测到设定的手势,即可执行所传入的函数;
所述系统还包括:创建UI控制器脚本、音频控制器脚本、模型切换控制器脚本、颜色切换控制器脚本和手势控制脚本;在UI界面的交互方面,根据系统的功能,设计各级界面,并通过鼠标或手势操作实现场景的切换;音频控制器脚本包含对背景音乐和汽车发动机引擎声音的处理;模型切换控制器脚本、颜色切换控制器脚本,包含对汽车类型以及颜色切换的处理;手势控制脚本的实现过程为,所述手势控制需要经过四个步骤:初始化和配置手势模块,实现主处理循环,访问手动跟踪数据,处理手势:
(1)初始化和配置手势模块
在跟踪手势之前,初始化SenseManager以进行手势跟踪和配置手势,初始化SenseManager和手势模块;
(2)实现主处理循环
初始化和配置手势模块后,启动主处理循环,主处理循环用来在线获取每个图像帧并管理手势跟踪过程,同时响应每一帧中检测到的手部动作和手势;
实现主处理循环的方式有两种:同步函数和异步函数,同步函数跟踪和处理每一帧的输出,异步函数实现和注册一个或多个事件处理器,并初始化一个用于处理跟踪的新线程;
(3)访问手动跟踪数据
在主处理循环中,处理当前帧的手势跟踪数据,包括访问手部位置、手势跟踪状态、关节数据,手势数据由IHand接口表示,从HandData对象获取指定的手势数据;
(4)手势处理
手势处理是对具体的手部动作或姿势进行处理,应用程序只响应预先定义的手势,而不处理原始数据;手势的处理在手势被触发时,利用回调函数调用已注册的手势进行处理程序,或者在主处理循环中轮询手势。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711010835.5A CN107844195B (zh) | 2017-10-26 | 2017-10-26 | 基于Intel RealSense的汽车虚拟驾驶应用的开发方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711010835.5A CN107844195B (zh) | 2017-10-26 | 2017-10-26 | 基于Intel RealSense的汽车虚拟驾驶应用的开发方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107844195A CN107844195A (zh) | 2018-03-27 |
CN107844195B true CN107844195B (zh) | 2024-02-06 |
Family
ID=61663159
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711010835.5A Active CN107844195B (zh) | 2017-10-26 | 2017-10-26 | 基于Intel RealSense的汽车虚拟驾驶应用的开发方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107844195B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108897419A (zh) * | 2018-06-07 | 2018-11-27 | 肇庆高新区徒瓦科技有限公司 | 一种手势命令转换系统和方法 |
CN109856993B (zh) * | 2019-01-29 | 2022-05-31 | 北京奥特贝睿科技有限公司 | 一种自主驾驶仿真平台 |
CN113539010B (zh) * | 2020-09-28 | 2023-09-15 | 腾讯科技(深圳)有限公司 | 一种驾驶模拟方法、装置、设备及存储介质 |
CN113035011A (zh) * | 2021-04-02 | 2021-06-25 | 周浩洋 | 一种基于Realsense的3D沉浸式飞行座舱 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103914129A (zh) * | 2013-01-04 | 2014-07-09 | 云联(北京)信息技术有限公司 | 一种人机交互系统及方法 |
GB2533572A (en) * | 2014-12-22 | 2016-06-29 | Nokia Technologies Oy | Haptic output methods and devices |
CN106205273A (zh) * | 2016-09-20 | 2016-12-07 | 山西省交通科学研究院 | 一种基于vr模拟技术的汽车驾驶模拟系统及方法 |
CN106502416A (zh) * | 2016-11-09 | 2017-03-15 | 华南理工大学广州学院 | 一种智能识别双手手势的模拟驾驶系统及其控制方法 |
-
2017
- 2017-10-26 CN CN201711010835.5A patent/CN107844195B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103914129A (zh) * | 2013-01-04 | 2014-07-09 | 云联(北京)信息技术有限公司 | 一种人机交互系统及方法 |
GB2533572A (en) * | 2014-12-22 | 2016-06-29 | Nokia Technologies Oy | Haptic output methods and devices |
CN106205273A (zh) * | 2016-09-20 | 2016-12-07 | 山西省交通科学研究院 | 一种基于vr模拟技术的汽车驾驶模拟系统及方法 |
CN106502416A (zh) * | 2016-11-09 | 2017-03-15 | 华南理工大学广州学院 | 一种智能识别双手手势的模拟驾驶系统及其控制方法 |
Non-Patent Citations (2)
Title |
---|
基于Intel RealSense技术的实感游戏的研究与实现;刘建东;《中国优秀硕士学位论文全文数据库信息科技辑》;20170715;摘要、正文第8-24、29-42页 * |
汽车虚拟驾驶培训系统的设计开发;董春侠 等;《电脑知识与技术》;20160930;正文第88-90页 * |
Also Published As
Publication number | Publication date |
---|---|
CN107844195A (zh) | 2018-03-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107861714B (zh) | 基于Intel RealSense的汽车展示应用的开发方法及系统 | |
Nebeling et al. | The trouble with augmented reality/virtual reality authoring tools | |
Martinez-Gonzalez et al. | Unrealrox: an extremely photorealistic virtual reality environment for robotics simulations and synthetic data generation | |
CN107844195B (zh) | 基于Intel RealSense的汽车虚拟驾驶应用的开发方法及系统 | |
CN103246351B (zh) | 一种用户交互系统和方法 | |
JP6073058B2 (ja) | オーサリングシステムによる再生可能なシーンの生成 | |
US10068547B2 (en) | Augmented reality surface painting | |
CN103258338A (zh) | 利用真实数据来驱动仿真的虚拟环境的方法和系统 | |
US20120107790A1 (en) | Apparatus and method for authoring experiential learning content | |
Cannavò et al. | Immersive virtual reality-based interfaces for character animation | |
US11957995B2 (en) | Toy system for augmented reality | |
KR20120099017A (ko) | 디스플레이 환경의 장식 방법 | |
CN108762482A (zh) | 一种大屏幕和增强现实眼镜间数据交互方法和系统 | |
Lamberti et al. | Virtual character animation based on affordable motion capture and reconfigurable tangible interfaces | |
KR101323148B1 (ko) | Ucr 융합 컨텐츠 에디터 장치 | |
KR101052805B1 (ko) | 증강 현실 환경에서의 3차원 모델 객체 저작 방법 및 시스템 | |
CN109344504A (zh) | 一种基于vr的计算机组装方法及其系统 | |
CN116645850A (zh) | 记录的物理交互回放 | |
CN104020957A (zh) | 数字脸谱立体投影交互系统 | |
CN115375797A (zh) | 图层处理方法、装置、存储介质及电子装置 | |
Ledermann | An authoring framework for augmented reality presentations | |
Eitsuka et al. | Authoring animations of virtual objects in augmented reality-based 3d space | |
Bruno et al. | Mixed prototyping environment with different video tracking techniques | |
Wang et al. | Design and Implementation of Virtual Animation Based on Unity3D | |
CN114660918B (zh) | 全息立体影像的显示设备、方法、装置及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |