Tag: 谷歌项目探戈

(探戈项目)点云的旋转和平移与区域学习

我有一个java应用程序,当我按下按钮时,记录点云xyz坐标和正确的姿势。 我想要的是选择一个对象,在前面记录一个pointCloud,在后面记录一个,然后合并2个云。 显然,为了获得合理的结果,我需要翻译和旋转我记录的一个或两个云。 但我是Tango Project的新手,我应该遗漏一些东西。 我在这篇文章中读过这篇文章 。 在那里,@ Jason Guo谈到了那些矩阵: start_service_T_device , imu_T_device , imu_T_depth 我怎么能得到它们? 我应该使用getMatrixTransformAtTime()吗? 第一个矩阵是从服务开始到设备 ,但我正在使用区域学习,所以我的BaseFrame是TangoPoseData.COORDINATE_FRAME_AREA_DESCRIPTION 。 在我的情况下是否也可以使用相同的策略? 只是用area_description_T_device替换start_service_T_device ? 边题 我想扩展这种方法来进行对象的三维重建。 我想获得几个相同对象的不同视图的pointClouds,旋转并将它们转换成一些固定的轴。 然后我假设如果x~ = x’&& y~ = y’&& z~ = z’,则2点(x,y,z)和(x’,y’,z’)是相同的点。 这样我就能够得到整个物体的点云,我是对的吗? 这种方法适合吗? 有更好的选择吗?

如何在使用项目探戈感知深度的同时获取高分辨率图像

如何使用项目探戈拍照? 我读到了这个答案: 在Jacobi Google Tango API中使用onFrameAvailable() 它适用于抓取画面,但画质不是很好。 是否有任何takePicture等效? 注意java API public void onFrameAvailable(int cameraId) { if (cameraId == TangoCameraIntrinsics.TANGO_CAMERA_COLOR) { mTangoCameraPreview.onFrameAvailable(); } } 不提供rgb数据。 如果我使用Android相机拍照,探戈无法感知深度。 在那里我将不得不使用TangoCameraPreview。 谢谢

Project Tango onPoseAvailable()和getPoseAtTime()的差异

我发现onPoseAvailable()回调和Tango.getPoseAtTime()的姿势之间存在显着差异。 我写了一个测试程序,在onPoseAvailable()我记录了传递的姿势,并使用getPoseAtTime()使用之前2个回调的时间戳来请求姿势。 KEY_BOOLEAN_SMOOTH_POSE配置为false 。 这是执行该操作的代码( timestamps_成员变量是LinkedList ): @Override public void onPoseAvailable(TangoPoseData poseData) { if (poseData != null && poseData.statusCode == TangoPoseData.POSE_VALID) { Log.v(“bug”, String.format(“onPoseAvailable t: %f, base: %d, target %d, p: (%f, %f, %f)”, poseData.timestamp, poseData.baseFrame, poseData.targetFrame, poseData.translation[0], poseData.translation[1], poseData.translation[2])); timestamps_.add(poseData.timestamp); if (timestamps_.size() > 3) timestamps_.remove(); } if (timestamps_.isEmpty()) return; TangoCoordinateFramePair framePair = new TangoCoordinateFramePair( […]

检查区域是否已在加载的ADF中本地化

更新: 我找到了重新定位的行,但是设备没有本地化 。 加载ADF后,我总是得到状态码POSE_INITIALIZING 。 此外,Java Area_Description_Example中的重新本地化也不起作用。 谁有同样的问题? 唯一具有工作重新本地化的应用程序是“资源管理器”和“ADF检查器”,但我没有它的源代码。 这是我的第一个问题的解决方案,即加载ADF后检查重新定位的代码: TangoPoseData lastFramePose = mTango.getPoseAtTime(mRgbTimestampGlThread, FRAME_PAIR); if (lastFramePose.statusCode == TangoPoseData.POSE_VALID) { // Device is re-located! // Update the camera pose from the renderer mRenderer.updateRenderCameraPose(lastFramePose); mCameraPoseTimestamp = lastFramePose.timestamp; } else { Log.w(TAG, “Can’t get device pose at time: ” + mRgbTimestampGlThread); } 旧: 在我的应用程序中,用户可以决定是启动新会话还是加载先前记录的ADF(区域描述文件)。 我加载ADF(adfUUID)并将其添加到Tango类对象(mTango),如下所示: TangoConfig config […]