我正在通过基于this repo的python脚本从multiwii板上提取gps值
我已将此添加到init函数:
self.rawgps = {'fix':0,'numSat':0,'lat':0,'lon':0,'alt':0,'speed':0,'elapsed':0,'timestamp':0}
到getData函数:
elif cmd == MultiWii.RAW_GPS:
self.rawgps['fix']=float(temp[0]/10.0)
self.rawgps['numSat']=float(temp[1]/10.0)
self.rawgps['lat']=float(temp[2]/10.0)
self.rawgps['lon']=float(temp[3])
self.rawgps['alt']=float(temp[4])
self.rawgps['speed']=float(temp[5])
self.rawgps['elapsed']=round(elapsed,3)
self.rawgps['timestamp']="%0.2f" % (time.time(),)
return self.rawgps
以及getDataInf函数
elif cmd == MultiWii.RAW_GPS:
self.rawgps['fix']=float(temp[0])
self.rawgps['numSat']=float(temp[1])
self.rawgps['lat']=float(temp[2])
self.rawgps['lon']=float(temp[3])
self.rawgps['alt']=float(temp[4])
self.rawgps['speed']=float(temp[5])
self.rawgps['elapsed']="%0.3f" % (elapsed,)
self.rawgps['timestamp']="%0.2f" % (time.time(),)
我是基于我在:http://www.multiwii.com/wiki/index.php?title=Multiwii_Serial_Protocol上读到的输出
当我用
board.getData(MultiWii.RAW_GPS)
print board.rawgps
输出看起来很差。这就是我得到的
{'alt': -12738.0, 'timestamp': '1494887366.41', 'lat': 6434.0, 'speed': 208.0, 'fix': 2561.0, 'lon': 24919.0, 'numSat': -21303.0, 'elapsed': 0.009}
{'alt': -12738.0, 'timestamp': '1494887366.41', 'lat': 6434.0, 'speed': 208.0, 'fix': 2561.0, 'lon': 24919.0, 'numSat': -21303.0, 'elapsed': 0.009}
{'alt': -12738.0, 'timestamp': '1494887366.41', 'lat': 6434.0, 'speed': 208.0, 'fix': 2561.0, 'lon': 24919.0, 'numSat': -21303.0, 'elapsed': 0.009}
{'alt': -12738.0, 'timestamp': '1494887366.41', 'lat': 6434.0, 'speed': 208.0, 'fix': 2561.0, 'lon': 24919.0, 'numSat': -21303.0, 'elapsed': 0.009}
{'alt': -12738.0, 'timestamp': '1494887366.41', 'lat': 6434.0, 'speed': 208.0, 'fix': 2561.0, 'lon': 24919.0, 'numSat': -21303.0, 'elapsed': 0.009}
在我看来,lat和lon不像典型的lat/lon值。可能是另一种数据类型?固定的,我期待1或0。和numSats,虽然我没有看到一个定义,我觉得应该是我连接的卫星数量,这可能不会超过15。。。或者是否定的
高度也不应该是负的,这都是在静止时拍摄的,所以速度应该是零。Python不是我的标准语言,所以我可能在语法上丢失了一些
目前没有回答
相关问题 更多 >
编程相关推荐