React Native、IBECONS、RSSI 值到距离的转换
Posted
技术标签:
【中文标题】React Native、IBECONS、RSSI 值到距离的转换【英文标题】:React Native, IBECONS, RSSI value to distance conversion 【发布时间】:2020-06-07 12:04:22 【问题描述】:如何稳定低能量蓝牙信标(BLE)的RSSI(接收信号强度指示器)更准确的距离计算?
我们正在尝试开发室内导航系统,但遇到了 RSSI 波动如此之大以至于距离估计远未达到正确值的问题。我们尝试使用提前平均计算器,但没有用,
设备不断获取RSSI值,如何过滤,如何获取平均值,我完全迷路了,请帮忙。
任何人都可以建议任何 npm 库或指出正确的方向,我已经搜索了很多天但没有得到任何地方。
前端:ReactNative 后端:NODEJS
【问题讨论】:
【参考方案1】:除了@davidgyoung 的回答之外,我们想指出的是,任何过滤方法都是在降噪质量和此过滤引入的时间延迟之间的折衷(取决于您使用的特征过滤时间)你的方法)。正如@davidgyoung 所指出的,如果您采用特征过滤周期 T,您将获得大约 T/2 的平均时间延迟。
因此,我认为解决您的问题的最佳方法不是尝试找到最佳过滤方法,而是在发射器端本身进行更改。
首先,您可以增加信号数量,即每秒发射机(大多数现代信标允许通过使用制造商应用程序和 API 来做到这一点)。
其次,您可以增加信标的功率(这通常也是信标的设置之一),这通常会降低信噪比。
最后,您可以比较来自不同供应商的信标。在 Navigine 公司,我们对来自多家制造商的大量不同信标进行了试验和测试,看来现有制造商的信噪比可能存在显着差异。就我们而言,我们建议您查看 kontakt.io beacons (https://kontakt.io/) 作为在该领域拥有 5 年以上经验的公认领导者之一。
【讨论】:
【参考方案2】:由于您的需求非常具体,因此您不太可能找到可以满足您需求的预构建软件包。您很可能必须使用自己的过滤代码。
一个关键的挑战是确定过滤参数,因为室内导航用例通常会受到时间延迟的影响。例如,如果您在 30 秒内平均 RSSI,则过滤器的输出将有效地为您提供 15 秒前移动物体的平均 RSSI。如果处理移动对象,这可能不适合您的用例。将平均间隔减少到 5 秒可能会有所帮助,但在降低噪声平滑的同时仍会引入时间延迟。一个名为Auto-Regressive Moving Average Filter 的过滤器可能是一个不错的选择,但我只有一个 Java 实现,所以你需要翻译成 javascript。
最后,不要指望过滤器能解决你所有的问题。即使您消除了 RSSI 上的噪声,您也可能会发现距离估计对于您的用例来说不够准确。确保您了解这项技术的局限性。我写了a deep dive on this topic here.
【讨论】:
以上是关于React Native、IBECONS、RSSI 值到距离的转换的主要内容,如果未能解决你的问题,请参考以下文章
react-native init 指定 react 版本和 react-native 版本
添加 React-Native-Camera 和 React-Native-Push-Notification 后无法构建 React Native
react native 增加react-native-camera
更新 react-native-maps 以使用 create-react-native-app
react native 增加react-native-storage
React-Native 和 Expo:create-react-native-app 和 react-native init 之间的区别