通过GPS的android位置估计器
Posted
技术标签:
【中文标题】通过GPS的android位置估计器【英文标题】:android position estimator through GPS 【发布时间】:2014-10-20 22:02:52 【问题描述】:我是一名工科学生,我目前正在开发一个四旋翼飞行器,使用 android nexus 5 作为飞行控制器。
为了执行自主飞行,我需要实现一个合适的位置控制器和一个位置估计器,这是我的问题:已经用更便宜的硬件证明了它可以通过 GPS 和 IMU 测量获得良好的位置估计,但是对于电池节省策略 android 以非常低的频率 (1hz) 计算 GPS 更新,所以可以获得更高的频率 (20hz 之类)?如果有人有更好的解决方案可以告诉我吗?
编辑:
我的问题不是我能多快得到修复(在部署之前我可以等待一个可靠的修复)。问题是位置估计的准确性,而且我已经很伤心了,已经证明使用更便宜的硬件(例如使用 arduino mega、与 nexus 5 相同的 imu 和 ublox gps 的 ardupilot)可以获得非常好的精度,可以实现安全飞行和非常精确的悬停。
即使将最小时间设置为 0 的 requestLocationUpdate(),gps 数据也仅每 1000 毫秒更新一次
提前感谢洛伦佐
【问题讨论】:
requestLocationUpdate()的时间约束参数只是一个提示。设备可能会也可能不会使用此提示。 【参考方案1】:我认为频率是指在特定时期内位置更新的次数。
如果是这种情况,您显然可以在一定程度上控制它。但是,您请求位置更新的次数越多,对电池的压力就越大。函数 getLastKnownLocation() 和 requestLocationUpdates() 可以结合使用来快速更新纬度/经度坐标。阅读Location Manager。
但是 gps 锁定需要时间。根据我的经验,可以每 10 秒提供一个空旷地面(无障碍物)的位置。如果您在准确性上有余地,可以提供更快的估计。使用提供我的网络塔而不是 gps 的位置可以在 10 秒/位置以下获得位置。但是,我希望至少有 200 英尺的误差幅度。
最后,更新位置的最快方法是通过 wifi。如果您可以提供稳定的 wifi 连接,您的位置可以在 5 秒内以几乎确定的准确度更新。
还可以查看google maps api。它们具有一些很酷的功能,您可以利用它们来更快地获取您的位置,甚至可以将谷歌地图添加到您的应用程序中。
【讨论】:
以上是关于通过GPS的android位置估计器的主要内容,如果未能解决你的问题,请参考以下文章