注意:这个问题是针对iOS11 11/高塞拉利昂预发布期的ARKit测试版编写的。仅为历史利益而保存的
当我将ARWorldTrackingSessionConfiguration.worldAlignment设置为.gravityAndHeading时,我看到了世界起源的不稳定的位置和方向。
现场打开后原点的位置是稳定的。但轴通常绕Y轴旋转180度或90度。
还有我错过的另一种环境吗?我运行的是2017年的iPad (香草版,不是专业版)和Xcode 9 beta 2。我在这个iPad上测试了几个指南针应用程序,它们给了我正确的结果,所以我相信硬件是正确的。
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轴分别指向东、上和南。)
发布于 2018-12-13 16:39:48
我意识到这是一个旧的线程,但是即使在ARKit 2版本中,我使用的是iOS 12,Xcode 10.1和iPhone 8,我的世界起源仍然不一致。在某些情况下,蓝线应该指向南方,实际上是指向东方或西方。
我确实尝试了桑德的建议,使用位置经理的标题,但它仍然不是100%的保证,我得到正确的方向开始。
还有人有其他建议吗?
发布于 2017-10-25 14:40:01
我得到了偶然的随机世界起源,其中Y轴不是与重力对齐,而是在一个45度的倾斜。这是在Xcode 9.1 (beta)和iOS 11.0.3上。如果我重置会话,它将重新正确地检测Y轴。(我正在使用gravityAndHeading)。
至于方向,我在市中心的一栋新的多层金属/砖/灰泥建筑里。室内磁北探测几乎是不可能的。我已经用许多不同的设备对此进行了广泛的测试。(我在做无人机导航)。由于磁场极低,其症状是向北漂浮。所以有时它可以工作,但可以在几秒钟内改变甚至+-90度。
看起来你在室内测试,用砖墙.
发布于 2017-10-26 14:11:55
我也面临着同样的问题。作为解决办法,我建议使用CLLocationManager的委托方法来得到真正的北方。
func locationManager(_ manager: CLLocationManager, didUpdateHeading newHeading: CLHeading)在我的实验中显示出更稳定和正确的结果,尽管有时它们和.gravityAndHeading的北方一样错误。
https://stackoverflow.com/questions/44896627
复制相似问题