使用iBeacons在Android中进行三角测量

前端之家收集整理的这篇文章主要介绍了使用iBeacons在Android中进行三角测量前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我们希望使用iBeacons实现某种室内位置确定.
This article seems really interesting,其中作者使用Eigen C库和Levenberg Marquardt算法实现了非线性最小二乘三角剖分.由于Eigen是用C语言编写的,我试图使用JNI和Android NDK来使用它,但是它会抛出 lot of errors that I have no idea how to solve并且我在网上找不到任何东西.我也尝试使用Jeigen,但它没有我们需要的所有功能.

所以,我的问题是:

>有人曾经使用过实施某种Trilateration
Android中的信标?
>您认为使用Eigen JNI NDK是一个很好的解决方案吗?如是,
你有没有用Levenberg Marquardt实现它
组合?
>有没有比Levenberg Marquardt算法更好的选项来计算Android应用程序中的三边测量?

解决方法

看看这个库: https://github.com/lemmingapex/Trilateration

使用来自Apache Commons Math的Levenberg-Marquardt算法.

例如..
进入TrilaterationTest.java

你可以看到:

double[][] positions = new double[][] { { 1.0,1.0 },{ 2.0,1.0 } };
double[] distances = new double[] { 0.0,1.0 };

TrilaterationFunction trilaterationFunction = new TrilaterationFunction(positions,distances);
NonLinearLeastSquaresSolver solver = new NonLinearLeastSquaresSolver(trilaterationFunction,new LevenbergMarquardtOptimizer());

double[] expectedPosition = new double[] { 1.0,1.0 };
Optimum optimum = solver.solve();
testResults(expectedPosition,0.0001,optimum);

但是如果您看到objectivec示例https://github.com/RGADigital/indoor_navigation_iBeacons/blob/show-work/ios/Group5iBeacons/Debug/Managers/Location/NonLinear/NonLinear.mm,您可以注意到精度用作评估参数而不是距离.

猜你在找的Android相关文章