Luc*_*lho 7 android eigen levenberg-marquardt ibeacon altbeacon
我们希望使用iBeacons实现某种室内位置确定. 本文看起来非常有趣,其中作者使用Eigen C++库和Levenberg Marquardt算法实现了非线性最小二乘三角剖分.由于Eigen是用C++编写的,我试图使用JNI和Android NDK来使用它,但它会引发很多错误,我不知道如何解决,我也无法在网上找到任何东西.我也尝试使用Jeigen,但它没有我们需要的所有功能.
所以,我的问题是:
有人曾在Android中使用信标实现某种Trilateration吗?
您认为使用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);
Run Code Online (Sandbox Code Playgroud)
但如果您看到 Objectivec 示例https://github.com/RGADigital/indoor_navigation_iBeacons/blob/show-work/ios/Group5iBeacons/Debug/Managers/Location/NonLinear/NonLinear.mm您可以注意到,精度被用作评估参数而不是距离。
归档时间: |
|
查看次数: |
3620 次 |
最近记录: |