TOF方案在DW1000上的实现:DS-TWR方案

Posted simpleGao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TOF方案在DW1000上的实现:DS-TWR方案相关的知识,希望对你有一定的参考价值。

说明

在由DW1000芯片的制造原厂提供的示例代码中,同样提供了DS-TWR方案的实现示例:
Example 5a: double-sided two-way ranging (DS TWR) initiator
Example 5b: double-sided two-way ranging respond
该示例以C代码形式,演示了一个简单的双边双向测距的实现过程,本质上双边双向测距和单边单向测距没有太大的不同。
DS比SS方案多发了一次数据,并且测距结果变为了由responded来计算。

流程

测距流程如下,其中有六个关键的时间参数
poll_tx:initiator发送第一帧数据的时间点
poll_rx:responder接收第一帧数据的时间点
resp_tx:responder发送第二帧数据的时间点
resp_rx:initiator接收第二帧数据的时间点
final_tx:initiator发送第三帧数据的时间点
final_rx:responder接收第三章数据的时间点

通过三次收发数据,便算出两个设备之间的距离,公式如下:

\\[distance = speed\\_of\\_light * tof\\\\ \\]

代码分析

DS和SS代码类似,上一个博客已经对SS方案代码流程分析过一遍,这里就不作过多分析了

\\[tof = \\fracRa * Rb -Da * DbRa + Rb +Da + Db\\\\ \\]

\\[Ra = resp\\_rx - poll\\_tx \\]

\\[Rb = final\\_rx - resp\\_tx \\]

\\[Da = final\\_tx - resp\\_rx \\]

\\[Db = resp\\_tx - poll\\_rx \\]

是否可以从 Android 上的 TOF(飞行时间)传感器读取数据?

【中文标题】是否可以从 Android 上的 TOF(飞行时间)传感器读取数据?【英文标题】:Is it possible to read data from TOF (time-of-flight) sensor on Android? 【发布时间】:2019-08-18 06:26:49 【问题描述】:

最新型号的 Android 手机(Honor View 20、华为 P30 Pro、三星 Galaxy 10 5g)配备了 TOF(飞行时间)传感器。是否可以通过一些API或厂商SDK读取?

【问题讨论】:

【参考方案1】:

Android 确实包含用于与非传统视觉相机交互的操作系统级 API。以三星 S10 5G 为例,您可以使用 Camera2 API 访问相机并直接获取 DEPTH16 帧。这是一个示例:https://medium.com/swlh/working-with-the-3d-camera-on-the-samsung-s10-5g-4782336783c 这适用于所有三星设备,但该示例仅使用 S10 5G 上的前置 ToF 摄像头。 S10 和 Note 10+ 5G 也都有后置 ToF 摄像头。

我不知道华为或一加是否符合相同的 API(理论上应该,其他答案表明它们在一定程度上符合)。

【讨论】:

【参考方案2】:

华为可以使用 AR Engine SDK

https://developer.huawei.com/consumer/en/ar

SDK文档AREnginesdk-sample-2.0.0.6\HUAWEI AR Engine Function Manual.doc摘录

4.13 场景网格 华为AR Engine提供实时输出场景网格 能力。输出包括手机在 空间。当前相机视图的 3D 网格仅支持 指定可获取深度的华为机型(荣耀V20、P30Pro) 信息,支持的扫描场景是静态的。

SDK文档AREnginesdk-sample-2.0.0.6\java\HUAWEI AR Engine SDK Interface Manual.docx摘录

2.2.1.18.   ARSceneMesh
•   Description: The class used to return the tracking result when the environment Mesh is tracked. The result includes the Mesh vertex coordinates, the triangle subscript, and so on.
•   Methods: 
public ShortBuffer getSceneDepth()
        // Get the depth image of current frame(optimized).
public int getSceneDepthHeight()
        // Get the height of the depth image.
public int getSceneDepthWidth()
        // Get the width of the depth image.

可以在华为上使用 camera2 API

https://github.com/google-ar/arcore-android-sdk/issues/120#issuecomment-535413944

ARCore 中的这个 issue 包含很多信息!

在 S10 5G 上似乎也可以,但目前在 Note 10+ 上不行

摘自Night Vision / ToF Viewer app description:

此应用目前仅适用于华为 P30 Pro、Honor View 20 和三星 S10 5G。更多设备将通过未来的设备开始工作 软件更新。

新功能

增加了对三星 S10 5G 的兼容性(可能还适用于其他设备) 分辨率对话框已删除 已移除对正面的支持

注意:对三星 Note10+ 的支持做了很大的研究, 但是此设备似乎不支持 3rd 方应用的 ToF。

另一个有趣的应用:

使用华为 ToF 传感器的 3D 扫描仪应用 https://play.google.com/store/apps/details?id=com.lvonasek.arcore3dscannerpro

【讨论】:

【参考方案3】:

目前不可能。 由于 Android 尚未在官方最新的 SDK 中包含任何此类 API。

像华为、三星和一加这样的制造商也在使用他们定制的操作系统资源,我认为他们还没有公开。

我正在寻找相同的东西,我在三星社区遇到了这个帖子, https://developer.samsung.com/forum/board/thread/view.do?boardName=SDK&messageId=371359&listLines=40&startId=zzzzz~&searchType=ALL&searchText=tof

【讨论】:

以上是关于TOF方案在DW1000上的实现:DS-TWR方案的主要内容,如果未能解决你的问题,请参考以下文章

UWB芯片DW3000之双边双向测距法

有人了解DW1000这款室内定位芯片么

是否可以从 Android 上的 TOF(飞行时间)传感器读取数据?

三角测距激光雷达与TOF激光雷达大比拼

[激光原理与应用-43]:《光电检测技术-10》- 激光测距原理方案与案例分析:TOF VL53L0X模块

DW1000芯片定位技术解析