2014-10-20 59 views
0

我是一名工程学学生,我目前正在开发一款带有android nexus 5飞行控制器的四旋翼飞行器。通过GPS的Android位置估算器

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

编辑:

我的问题不在于有多快我能得到修复(部署之前,我可以等待了坚实的修复)。问题在于位置估计的准确性,并且正如我悲伤的一样,事实证明,使用cheeper硬件(比如使用arduino mega的ardupilot,与nexus 5和ublox gps相同的imu),有可能获得一个非常好的准确性,允许安全的飞行和非常精确的悬停。

即使有requestLocationUpdate()的最小时间设置为0 GPS数据事先每1000毫秒

由于只更新一次洛伦佐

+0

requestLocationUpdate()的时间约束参数只是一个提示。该设备可能会或可能不会使用此提示。 – Stefan 2014-10-22 08:42:07

回答

0

我想通过的频率,你的意思是在一定时间内有多少次该位置已更新。

如果是这种情况,你可以明显控制这一点。然而,您要求更新位置的电池越多,电池的负担就越重。函数getLastKnownLocation()和requestLocationUpdates()可以联合使用以相当快地更新纬度/经度坐标。请阅读Location Manager

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

最后更新位置的最快方式是通过wifi。如果您可以提供固定的无线连接,您的位置可以在5秒内以几乎确定的精度进行更新。

也看看google maps api。他们有一些很酷的功能可以用来让你的位置更快,甚至可以添加谷歌地图到你的应用程序。