Lighthouse空间定位,chaperone系统避免实际障碍物

HTC vive所用的Lighthouse技术属于激光定位技术,Oculus Rift以及索尼PlayStation VR所用的定位技术都属于光学定位技术,其中Oculus Rift是红外主动式光学技术,索尼PlayStation VR则是可见光主动式光学技术。

HTC Vive的Lighthouse室内定位技术

特点:低成本,定位消费级VR,有较高精度和较低延时

HTC Vive采用的激光定位技术,具体构成是利用光塔+头显/手柄上的光敏传感器共同完成定位

上图,对角线两个光塔会形成一个3D空间

描述数学模型:瞎猜 htc lighthouse 定位数学模型(一)

精度测试,定位精度可达0.3mm:外国专家告诉你Lighthouse追踪到底有多准确

HTC Vive的chaperone系统

可避免实际环境中家具及障碍物,利用头显上的前置摄像头

简单来说,当使用者连按两次控制器上的菜单键以后,Chaperone 便会启动,并将现实世界中的场景叠加到你眼前的虚拟画面之上。另外,当你走近预设区域的边界时,Chaperone 也会自动开启,以此来引起用户的注意。

预设区域:宽-高(隔离出一个区域)

定位空间:

chaperone view1

chaperone view2:Tron Mode(右侧)

How to use the Chaperone camera on the HTC Vive

如何检测墙和家具?

有人建议像扫地机器人一样,记录和学习用户行动过的轨迹,形成room mapping;或者用SDK手工做:

That kind of user-directed room mapping will be important for when positional tracking takes off in VR experiences. There are many ways to do this--user defined dimensions, Kinect-style room scanning, or positionally tracked boundary markers. I believe that the SteamVR boundary system--which looks very much like a holodeck wall grid, albeit blue--is defined by the user typing in the dimensional space of the room. I would prefer a system where I could use the SteamVR controllers to manually map out my play area, to take into account irregular obstacles like desks, beds, and other furniture. It’s good to hear from developers that the boundary system is part of the SDK--it’s software that will be made available for anyone making a Lighthouse-based game.

#补充:

1. sony VR 的object avoidance system

2. 头显前置摄像头API教程(OpenVR):Vive 前置摄像头浅析1,2,3

限制:

1). 摄像头分辨率太低600X400左右,放大画面后效果无法接受;

2). 打开摄像头后游戏帧率降低,实时调用会带来性能上的额外要求;

3).摄像头刷新率30-60HZ,有明显画面迟滞,调高刷新率会导致定位丢失;

4).无法感知深度信息,比如没法做到接到别人扔给你的水果。

HTC Vive的定位技术的更多相关文章

  1. Oculus Rift, HTC Vive, SONY PSVR的全面对比

    http://blog.csdn.net/xoyojank/article/details/50927572 这次有幸参加了GDC 2016, 终于把三大设备体验了个遍, 也试玩了很多不错的VR游戏. ...

  2. 如何低成本的打造HTC Vive虚拟演播室直播MR视频?

    http://m.toutiao.com/i6298923859378700802/?tt_from=weixin&utm_campaign=client_share&from=gro ...

  3. Unity 5.4大赞:HTC Vive经典The lab渲染器开源

    HTC Vive提供了一个不错的免费VR demo,最近1周仔细体验了一番. 仔细看了其安装文件,竟然是Unity 5.4beta版本(通过查log,知道Valve公司用的是最新的5.4.0b11版本 ...

  4. HTC VIVE固定头显位置

    用此方法可以限制HTC VIVE头显定位(即固定头显位置,但是视角是不固定的). UnityEngine.XR.InputTracking.disablePositionalTracking = fa ...

  5. HTC Vive 基础入门 基于Unreal Engine 4引擎

    主要以讲解介绍HTC Vive设备以及Unreal继承的Steam VR Plugin为主 使用最新的虚幻引擎与Plugin完成VR环境的搭建 然后完成一个基本的VR Games. 任务5: 04-配 ...

  6. LTE时代的定位技术:OTDOA,LPP,SUPL2.0

    LTE时代的定位技术:OTDOA,LPP,SUPL2.0 移动定位技术的发展历程 如今智能手机已经在整个社会普及,数量众多的手机应用成为了人们生活当中不可或缺的一部分.越来越多的手机应用都用到了手机定 ...

  7. HTC Vive小场地与大场景空间的解决方案

    本文章由cartzhang编写,转载请注明出处. 所有权利保留. 文章链接:http://blog.csdn.net/cartzhang/article/details/52780621 作者:car ...

  8. HTC VIVE SDK 中的例子 hellovr_opengl 程序流程分析

    最近Vive的VR头盔设备很火,恰逢项目需求,所以对 SDK 中的例子 hellovr_opengl 做了比较细致的代码分析,先将流程图绘制如下,便于大家理解. 在ViVe头盔中实现立体效果的技术核心 ...

  9. 头显HTC Vive北美直降100美元,中国区降价活动今日公布

    如果你现在想要购买一台VR头显,591ARVR资讯网www.591arvr.com的小编提醒大家可以等一等,在即将到来的年末促销中各种VR设备都将迎来大力度降价.目前北美市场的HTC Vive已经直降 ...

随机推荐

  1. golang多进程测试代码

    package main import ( "fmt" "runtime" ) func test(c chan bool, n int) { x := 0 f ...

  2. codeforces315Div1 B Symmetric and Transitive

    http://codeforces.com/contest/568/problem/B 题意就是给一个有n个元素的集合,现在需要求有多少个A的二元关系p,使得p是对称的,是传递的,但不是自反的. 首先 ...

  3. day40 python MySQL【四】 之 【索引】【视图】【触发器】【存储过程】【函数】

    MySQL[四] 之 [索引][视图][触发器][存储过程][函数]   1.索引 索引相当于图书的目录,可以帮助用户快速的找到需要的内容. 数据库利用各种各样的快速定位技术,能够大大提高查询效率.特 ...

  4. Codelf 变量取名

    Codelf 变量取名 可以看到别的变量是怎么命名的,站在巨人的肩膀上.

  5. Maven的dependency scope属性

    官方地址:https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Dependen ...

  6. MySQL中drop,truncate 和delete的区别

    注意:这里说的delete是指不带where子句的delete语句 相同点: truncate和不带where子句的delete, 以及drop都会删除表内的数据 不同点: truncate和 del ...

  7. button使用注意

    <button type="button" class="btn btn-primary" onclick="ChangePassword(); ...

  8. Visual Studio2010不能安装Silverlight4_Tools,提示语言不一致

    天在装Silverlight4_Tools时出现“必须先安装与 Silverlight Tools 4 语言版本相一致的 Visual Studio 2010.Visual Web Developer ...

  9. C#中如何把byte[]数组转换成其他类型

    http://bbs.csdn.net/topics/20447859 byte[] bytes = new byte[256]; //receive some stream from network ...

  10. winform 子窗体刷新父窗体的数据

    建一个接口 比如 iMainForm接口内声明个方法 比如 Refresh()主窗体 实现这个接口 主窗体打开子窗体时这样写 子窗体.Owner = this;子窗体.ShowDialog(); -- ...