从 Ar Drone 2.0 获取 GPS 数据

Posted

技术标签:

【中文标题】从 Ar Drone 2.0 获取 GPS 数据【英文标题】:Get GPS data from Ar Drone 2.0 【发布时间】:2014-06-11 19:17:53 【问题描述】:

我需要来自 AR Drone 2.0 的实时 GPS 坐标,其中包含飞行记录器。我找不到任何方法可以直接从 GPS 获取值。有什么方法可以从 AR Drone 获取 GPS 数据

【问题讨论】:

【参考方案1】:

这对我有用:

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(); .....

仅此代码并没有让我获得 GPS 信息。我还必须注释掉部分 parseNavdata.js(在 ar-drone/lib/navdata 中)代码。在我的文件中查找:“'gps': function(reader) ”~第 546 行。 注释掉该函数的下半部分:

'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()
    ;

其他帖子 (https://github.com/felixge/node-ar-drone/issues/75) 暗示此问题已得到修复和合并,但事实并非如此。

【讨论】:

以上是关于从 Ar Drone 2.0 获取 GPS 数据的主要内容,如果未能解决你的问题,请参考以下文章

AR Drone 2.0、Gstreamer、C++ RTMP 服务器(无需 SDK 的流式传输)

没有从 Parrot AR Drone 的 cv2.VideoCapture 获取视频

A.R Drone 2.0 视频流延迟

AR Drone系列之:使用ROS catkin创建package并使用cv_bridge实现对ar drone摄像头数据的处理

如何使用 nodejs 从 ar 无人机获取纬度信息?

AR.Drone 功能在 Android 中的使用