我将ARCore与Unity配合使用,并且成功跟踪了垂直和水平平面。
我有一个倾斜的平坦平台(很大:4米x 4米,因此应该可以检测到),它相对于地板倾斜约30度,但是平面检测似乎不适用于该平台。
是否可以跟踪倾斜的平面/平台,或者您对如何执行此操作有任何想法?
谢谢。
答案 0 :(得分:0)
我相信ARCore目前仅支持垂直和水平平面跟踪。
There is an open GitHub FR添加对常规平面检测的支持,但是与此同时,您可能必须自己分析点云并拟合平面。
我怀疑如果不对基本方向进行过滤,这将是昂贵的和/或嘈杂的,这将解释为什么尚未实施。
也就是说,如果您确定要查找的飞机始终与地面成30度角,则可以执行类似的操作。
您应该能够使用来自PointCloud
对象的静态属性Frame
来检索点云。 ARInterface是通过ARCore实现的:
public override bool TryGetPointCloud(ref PointCloud pointCloud)
{
if (Session.Status != SessionStatus.Tracking)
return false;
// Fill in the data to draw the point cloud.
m_TempPointCloud.Clear();
Frame.PointCloud.CopyPoints(m_TempPointCloud);
if (m_TempPointCloud.Count == 0)
return false;
if (pointCloud.points == null)
pointCloud.points = new List<Vector3>();
pointCloud.points.Clear();
foreach (Vector3 point in m_TempPointCloud)
pointCloud.points.Add(point);
return true;
}
现在您已经有了点云,您需要使其适应飞机。 This tutorial可能会为您提供一些解决方法,它涵盖了通过3点进行基本平面拟合以及使用RANSAC进行更稳健的多点平面拟合的方法。您可能还想看看this answer和this answer。