首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ARSessionConfiguration.WorldAlignment = .gravityAndHeading的不规则世界起源/对齐

ARSessionConfiguration.WorldAlignment = .gravityAndHeading的不规则世界起源/对齐
EN

Stack Overflow用户
提问于 2017-07-04 03:37:15
回答 4查看 1.9K关注 0票数 9

注意:这个问题是针对iOS11 11/高塞拉利昂预发布期的ARKit测试版编写的。仅为历史利益而保存的

当我将ARWorldTrackingSessionConfiguration.worldAlignment设置为.gravityAndHeading时,我看到了世界起源的不稳定的位置和方向。

现场打开后原点的位置是稳定的。但轴通常绕Y轴旋转180度或90度。

还有我错过的另一种环境吗?我运行的是2017年的iPad (香草版,不是专业版)和Xcode 9 beta 2。我在这个iPad上测试了几个指南针应用程序,它们给了我正确的结果,所以我相信硬件是正确的。

代码语言:javascript
复制
override func viewDidLoad() {
    super.viewDidLoad()
    
    // Set the view's delegate
    sceneView.delegate = self
    
    // Show statistics such as fps and timing information
    sceneView.showsStatistics = true
    
    // Create a new scene
    let scene = SCNScene()

    // debug options
    let debugOptions: SCNDebugOptions = [ARSCNDebugOptions.showFeaturePoints,ARSCNDebugOptions.showWorldOrigin]
    sceneView.debugOptions = debugOptions

    // Set the scene to the view
    sceneView.scene = scene
}

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)
    
    // Create a session configuration
    let configuration = ARWorldTrackingSessionConfiguration()
    configuration.worldAlignment = .gravityAndHeading
    configuration.planeDetection = .horizontal

    // Run the view's session
    sceneView.session.run(configuration)
}

这里有一些样品(在所有这些样品中,我都面向南方)。

正X点和Z点,向西和向北(不正确,与相位相距180度):

正X和Z指向东南偏东和西南偏南(接近正确):

正X和Z指向东和南(正确),但原点移动了几米:

正X点和Z点南面和西点(相距90度):

来自文件:

Y轴与设备的运动感测硬件检测到的重力方向相匹配,即矢量(0,-1,0)向下点。 X轴和z轴匹配位置服务测量的经度和纬度方向。向量(0,0,-1)指向真北,向量(-1,0,0)指向西。(也就是说,x-轴、y轴和z轴分别指向东、上和南。)

EN

回答 4

Stack Overflow用户

发布于 2018-12-13 16:39:48

我意识到这是一个旧的线程,但是即使在ARKit 2版本中,我使用的是iOS 12,Xcode 10.1和iPhone 8,我的世界起源仍然不一致。在某些情况下,蓝线应该指向南方,实际上是指向东方或西方。

我确实尝试了桑德的建议,使用位置经理的标题,但它仍然不是100%的保证,我得到正确的方向开始。

还有人有其他建议吗?

票数 2
EN

Stack Overflow用户

发布于 2017-10-25 14:40:01

我得到了偶然的随机世界起源,其中Y轴不是与重力对齐,而是在一个45度的倾斜。这是在Xcode 9.1 (beta)和iOS 11.0.3上。如果我重置会话,它将重新正确地检测Y轴。(我正在使用gravityAndHeading)。

至于方向,我在市中心的一栋新的多层金属/砖/灰泥建筑里。室内磁北探测几乎是不可能的。我已经用许多不同的设备对此进行了广泛的测试。(我在做无人机导航)。由于磁场极低,其症状是向北漂浮。所以有时它可以工作,但可以在几秒钟内改变甚至+-90度。

看起来你在室内测试,用砖墙.

票数 0
EN

Stack Overflow用户

发布于 2017-10-26 14:11:55

我也面临着同样的问题。作为解决办法,我建议使用CLLocationManager的委托方法来得到真正的北方。

代码语言:javascript
复制
func locationManager(_ manager: CLLocationManager, didUpdateHeading newHeading: CLHeading)

在我的实验中显示出更稳定和正确的结果,尽管有时它们和.gravityAndHeading的北方一样错误。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44896627

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档