从 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 获取视频
AR Drone系列之:使用ROS catkin创建package并使用cv_bridge实现对ar drone摄像头数据的处理