【问题标题】:What is the orientation of ARKit's camera space?ARKit 的相机空间方向是什么?
【发布时间】:2020-04-27 12:32:11
【问题描述】:

我想更好地了解在 ARKit 的 ARCamera 转换中的相机坐标空间。In the documentation,它说

此变换为相机创建了一个相对于设备方向恒定的局部坐标空间。在相机空间中,当设备处于UIDeviceOrientation.landscapeRight 方向时,x 轴指向右侧——也就是说,x 轴始终指向设备的长轴,从前置摄像头指向 Home 按钮。 y 轴指向上方(相对于 UIDeviceOrientation.landscapeRight 方向),z 轴指向远离屏幕一侧的设备。

接着,the UIDeviceOrientation.landscapeRight documentation 说:

设备处于横向模式,设备保持直立, 左侧的主页按钮。

当我试图理解这一点时,"the x-axis points to the right when the device is in UIDeviceOrientation.landscapeRight orientation""that is, the x-axis always points along the long axis of the device, from the front-facing camera toward the Home button" 之间似乎存在冲突。前者在右边有 +x,而后者在左边有 +x。

这是我对"the x-axis points to the right when the device is in UIDeviceOrientation.landscapeRight orientation"的图片:

这就是我对"that is, the x-axis always points along the long axis of the device, from the front-facing camera toward the Home button"的看法:

感谢任何帮助,谢谢!

更新:它不会影响这个问题,但为了更清楚起见,我之所以问这个问题是因为我有兴趣从Core Location 获取 x、y 和 z 地磁数据值。在 Core Location 中,如果手机处于纵向模式,+x 是向右,+y 是向上,+z 是朝向用户。所以看起来 ARKit 的相机坐标系与 Core Location 中的相机坐标系不同。

【问题讨论】:

    标签: ios swift transform augmented-reality arkit


    【解决方案1】:

    让我们先解决一件事,landscapeRight 的主页按钮位于右侧,手机顶部位于左侧,而不是您在图片中显示的内容。所以在你的图纸中,手机应该翻转 180 度。 landscapeRight 在这种情况下与设备方向不同

    首先,Arkit 会话的坐标系将取决于world alignment setting of your AR session

    所以你有三个选择

    Gravity

    • 在这种情况下,Y 将指向上方,与重力平行,无论您的设备方向如何

    对于 z 轴,ARKit 选择一个基向量 (0,0,-1),指向设备摄像头所面对的方向并垂直于重力轴

    • 据此,z 轴将指向摄像头朝向的方向(因此对于前置摄像头,z 轴将指向屏幕,而对于后置摄像头,z 轴将从电话和远离你)

    • 然后用右手定则确定 X 轴

    Gravity and Heading

    • y 轴将向上平行于重力方向
    • z 轴将指向南方(-z 将指向真正的北方)
    • x 轴将指向东方

    Camera

    在这种情况下,相机将始终位于您的世界坐标空间中的 (0,0,0) y 轴将指向上方(如果您的手机处于纵向模式,则指向右侧),x 轴将从手机顶部指向主页按钮,z 轴将指向远离设备

    【讨论】:

    • 几个问题:#1 当您说“landscapeRight 的主页按钮在右侧,手机的顶部在左侧,而不是您在图片中显示的内容”。你从哪里得到这个?当我阅读UIDeviceOrientation.landscapeRight 的文档时,它显示“设备处于横向模式,设备直立,主页按钮位于左侧。”
    • #2 您共享的链接是关于世界坐标空间在会话开始时的方向。在某些选项(即重力和相机)中,相机的位置和方向会影响世界节奏的对齐方式。但我要问的是相机空间,而不是世界空间,是如何对齐的。
    • 忘记给你加标签了,@Mart10,现在就开始吧!另外,感谢您的评论,如果我在问题 / cmets 中所做的假设有误,请告诉我!
    【解决方案2】:

    好的,正如@Mart10 正确指出的那样,我的初始图表不正确。 ARKit 相机上下文中的横向意味着手机处于横向,主页按钮位于右侧。 This post 更详细地解释了这一点。

    这意味着相机坐标系约定是,当在右侧主页按钮处于横向时:+x:向右,+y:向上,+z:向后。

    这与“传感器坐标系”不同,后者是x, y, and z geomagnetic data values from Core Location 进入的坐标系。“传感器坐标系”是,当在右侧带有主页按钮的横向时:+x:向上,+y:向左,+z:向后。您可以使用转换在它们之间移动。

    【讨论】:

      猜你喜欢
      • 2018-12-17
      • 1970-01-01
      • 1970-01-01
      • 2018-05-23
      • 1970-01-01
      • 2020-10-04
      • 2018-02-22
      • 2019-09-03
      • 1970-01-01
      相关资源
      最近更新 更多