从Ar Drone 2.0获取GPS数据 [英] Get GPS data from Ar Drone 2.0

查看:223
本文介绍了从Ar Drone 2.0获取GPS数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要具有飞行记录器的AR Drone 2.0的实时GPS坐标。并且我找不到任何方法直接从GPS获取值。有没有什么办法可以从AR Drone获得GPS数据?

这里有什么对我有用:

  var arDrone = require('ar-drone'); 
var droneClient = arDrone.createClient();
droneClient.config('general:navdata_demo','FALSE'); //取回直升机可以发送的所有数据
droneClient.config('general:navdata_options',777060865); //打开GPS

droneClient.on('navdata',function(navdata){
console.log(navdata.gps.latitude +','+ navdata.gps.longitude) ;
//完成GPS信息....
});
droneClient.takeoff(); .....

这个代码本身并没有给我带来GPS信息。我还必须注释掉部分parseNavdata.js(在ar-drone / lib / navdata中)代码。寻找:''gps':function(reader){〜我的文件中的第546行。
注释掉该函数的下半部分:

$ $ $ $ $ $ $ $''gps':function(reader){
返回{
latitude:reader.double64(),
longitude:reader.double64(),
elevation:reader.double64(),
hdop:reader.double64(),
data_available:reader.int32(),
unk_0:timesMap(8,reader.uint8,reader),
lat0:reader.double64(),
lon0:reader.double64 (),
lat_fuse:reader.double64(),
lon_fuse:reader.double64(),
gps_state:reader.uint32(),
unk_1:timesMap(40,reader .uint8,reader),
vdop:reader.double64(),
pdop:reader.double64(),
速度:reader.float32(),
last_frame_timestamp:droneTimeToMilliSeconds( reader.uin t32()),
degree:reader.float32(),
degree_mag:reader.float32()
// unk_2:timesMap(16,reader.uint8,reader),
// channels:timesMap(12,reader.satChannel,reader),
// gps_plugged:reader.int32(),
// unk_3:timesMap(108,reader.uint8,reader),
// gps_time:reader.double64(),
// week:reader.uint16(),
// gps_fix:reader.uint8(),
// num_satellites:reader .uint8(),
// unk_4:timesMap(24,reader.uint8,reader),
// ned_vel_c0:reader.double64(),
// ned_vel_c1:reader.double64( ),
// ned_vel_c2:reader.double64(),
// pos_accur_c0:reader.double64(),
// pos_accur_c1:reader.double64(),
// pos_accur_c2:reader.double64(),
//速度_accur:reader.float32(),
// time_accur:reader.float32(),
// unk_5:timesMap(72,reader.uint8,reader),
// temperature:reader .float32(),
//压力:reader.float32()
};

其他帖子( https://github.com/felixge/node-ar-drone/issues/75 )暗示这已经被修复和合并,但是不能是这样。


I need the real time GPS coordinates from the AR Drone 2.0 which has the flight recorder in it.And i couldn't find any method to get the values from GPS directly. Is there any way i could get the GPS data from the AR Drone

解决方案

Here is what's working for me:

var arDrone = require('ar-drone');
var droneClient = arDrone.createClient();
droneClient.config('general:navdata_demo', 'FALSE'); // get back all data the copter can send
droneClient.config('general:navdata_options', 777060865); // turn on GPS

droneClient.on('navdata', function(navdata) {
   console.log(navdata.gps.latitude + ', ' + navdata.gps.longitude);
   // do stuff with the GPS information....
});
droneClient.takeoff(); .....

This code alone did not get me the GPS information. I also had to comment out part of the parseNavdata.js (in ar-drone/lib/navdata) code. Look for: "'gps': function(reader) {" ~line 546 in my file. Comment out the bottom half of that function:

'gps': function(reader) {
    return {
      latitude:             reader.double64(),
      longitude:            reader.double64(),
      elevation:            reader.double64(),
      hdop:                 reader.double64(),
      data_available:       reader.int32(),
      unk_0:                timesMap(8, reader.uint8, reader),
      lat0:                 reader.double64(),
      lon0:                 reader.double64(),
      lat_fuse:             reader.double64(),
      lon_fuse:             reader.double64(),
      gps_state:            reader.uint32(),
      unk_1:                timesMap(40, reader.uint8, reader),
      vdop:                 reader.double64(),
      pdop:                 reader.double64(),
      speed:                reader.float32(),
      last_frame_timestamp: droneTimeToMilliSeconds(reader.uint32()),
      degree:               reader.float32(),
      degree_mag:           reader.float32()
//      unk_2:                timesMap(16, reader.uint8, reader),
//      channels:             timesMap(12, reader.satChannel, reader),
//      gps_plugged:          reader.int32(),
//      unk_3:                timesMap(108, reader.uint8, reader),
//      gps_time:             reader.double64(),
//      week:                 reader.uint16(),
//      gps_fix:              reader.uint8(),
//      num_satellites:       reader.uint8(),
//      unk_4:                timesMap(24, reader.uint8, reader),
//      ned_vel_c0:           reader.double64(),
//      ned_vel_c1:           reader.double64(),
//      ned_vel_c2:           reader.double64(),
//      pos_accur_c0:         reader.double64(),
//      pos_accur_c1:         reader.double64(),
//      pos_accur_c2:         reader.double64(),
//      speed_accur:          reader.float32(),
//      time_accur:           reader.float32(),
//      unk_5:                timesMap(72, reader.uint8, reader),
//      temperature:          reader.float32(),
//      pressure:             reader.float32()
    };

Other posts (https://github.com/felixge/node-ar-drone/issues/75) imply that this has been fixed and merged, but that must not be the case.

这篇关于从Ar Drone 2.0获取GPS数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆