使用之前 Tango 会话的数据进行平面拟合
Plane fitting with data from previous Tango session
我在开发 Tango 应用程序时遇到以下问题,不确定我是否在正确的轨道上。
我想要达到的目标:
- 用户拍照。在后台,应用程序保存以持久保存当前点云和姿势。
- 服务器正在获取该图像并在幕后进行一些神奇的处理,并将 (x,y) 坐标发送回应用程序(异步且与当前 Tango 会话无关)。
- 重新启动应用程序,开始新的探戈会话并使用点云和姿势的持久副本在 (x,y) 处显示 3d 对象。
我希望我能够在以下算法中使用这些参数 - (x,y)、点云和 Pose 并获得一个 Pose,这是 RajawaliRenderer 知道如何渲染的 Rajawali 对象。
tango初始化是根据以下坐标系:
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 会话的纯算法,但我不能确定,因为我没有它的实现。
非常感谢任何帮助。
好吧,这完全是我的错误。
序列化点云时出现错误。
Gson 库不知道如何反序列化为 subclass 并始终构造为父 class - 在这种情况下会创建损坏的数据
我在开发 Tango 应用程序时遇到以下问题,不确定我是否在正确的轨道上。
我想要达到的目标:
- 用户拍照。在后台,应用程序保存以持久保存当前点云和姿势。
- 服务器正在获取该图像并在幕后进行一些神奇的处理,并将 (x,y) 坐标发送回应用程序(异步且与当前 Tango 会话无关)。
- 重新启动应用程序,开始新的探戈会话并使用点云和姿势的持久副本在 (x,y) 处显示 3d 对象。
我希望我能够在以下算法中使用这些参数 - (x,y)、点云和 Pose 并获得一个 Pose,这是 RajawaliRenderer 知道如何渲染的 Rajawali 对象。
tango初始化是根据以下坐标系:
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 会话的纯算法,但我不能确定,因为我没有它的实现。
非常感谢任何帮助。
好吧,这完全是我的错误。
序列化点云时出现错误。 Gson 库不知道如何反序列化为 subclass 并始终构造为父 class - 在这种情况下会创建损坏的数据