通过GPS的android位置估算器

时间:2014-10-20 22:02:53

标签: android gps position estimation

我是一名工科学生,我目前正在开发一款带有android nexus 5作为飞行控制器的四旋翼飞行器。

为了执行自主飞行,我需要实现一个合适的位置控制器,因此需要一个位置估算器,这里我的问题是:已经用更便宜的硬件证明可以通过GPS和IMU消息获得良好的位置估算但是对于电池节省策略android计算GPS更新频率非常低(1hz)所以可以获得更高的频率(20hz像)?如果有人有更好的解决方案,请告诉我吗?

编辑:

我的问题不在于我能获得多快的修复(在部署之前我可以等待一个可靠的修复)。问题在于位置估计的准确性,而且令人遗憾的是,已经证明,通过使用更硬的硬件(例如使用arduino mega的ardupilot,与nexus 5和ublox gps相同的imu),可以获得非常好的准确性,允许安全飞行和非常精确的悬停。

即使requestLocationUpdate()的最小时间设置为0,gps数据每1000ms只更新一次

先谢谢Lorenzo

1 个答案:

答案 0 :(得分:0)

我认为,根据频率,您的意思是在某个时期内该位置的更新次数。

如果是这种情况,您显然可以稍微控制一下。但是,您要求更新位置的次数越多,电池的压力就会越大。函数getLastKnownLocation()和requestLocationUpdates()可以结合使用,以更快地更新纬度/经度坐标。阅读Location Manager

然而gps锁定需要时间。根据我的经验,每10秒可以提供一个开放式场地(无障碍物)的位置。如果您有准确的余地,可以提供更快的估算。使用位置提供我的网络塔而不是gps可以获得10secs /位置以下的位置。但是我预计至少会有至少200英尺的误差幅度。

最后,更新位置的最快方法是通过wifi。如果您可以提供稳定的WiFi连接,您的位置可以在5秒内以几乎一定的准确度更新。

同时查看google maps api。它们具有一些很酷的功能,您可以利用这些功能更快地获取您的位置,甚至可以将谷歌地图添加到您的应用程序中。