我在开发Tango应用程序时面临以下问题,并且不确定我是否在正确的轨道上。
我想要实现的目标:
我希望我能够在以下算法中使用这些参数 - (x,y),点云和Pose,并获得一个Pose,这是RajawaliRenderer知道如何渲染的Rajawali对象。
探戈初始化符合以下坐标系:
TANGO_WORLD_BASE_COORDINATE_FRAME = new TangoCoordinateFramePair(
TangoPoseData.COORDINATE_FRAME_AREA_DESCRIPTION,
TangoPoseData.COORDINATE_FRAME_DEVICE
);
使用交叉点计划适合 -
private void convertByIntersectionPoint(float x, float y,
TangoPointCloudData tangoPointCloudData, TangoPoseData devicePose,
TangoPoseData colorTdepthPose) {
if (tangoPointCloudData != null) {
TangoSupport.IntersectionPointPlaneModelPair intersectionPointPlaneModelPair =
TangoSupport.fitPlaneModelNearPoint(tangoPointCloudData,
colorTdepthPose, x, y);
if (devicePose.statusCode == TangoPoseData.POSE_VALID) {
mRenderer.updateObjectPose(
intersectionPointPlaneModelPair.intersectionPoint,
intersectionPointPlaneModelPair.planeModel,
devicePose);
}
}
}
它在TangoSupport.fitPlaneModelNearPoint上抛出TangoErrorException。
据我所知,fitPlaneModelNearPoint方法应该做纯算法,不依赖于当前的Tango会话,但我不能确定,因为我没有它的实现。
非常感谢任何帮助。
答案 0 :(得分:0)
好的,这完全是我的错误。
序列化点云有一个错误。 Gson库不知道如何反序列化为子类并始终构造成父类 - 在这种情况下会创建损坏的数据