如何使用 nodejs 从 ar 无人机获取纬度信息?
Posted
技术标签:
【中文标题】如何使用 nodejs 从 ar 无人机获取纬度信息?【英文标题】:How do I get latitude info from ar drone using nodejs? 【发布时间】:2017-03-29 20:09:34 【问题描述】:当我使用它时,我得到一个未定义的错误。 纬度未定义。
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(); .....
但是,如果我更改 1 行,我可以取回所有 gps 数据。
console.log(navdata.gps);
为什么我不能专门取回纬度数据?
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);
// do stuff with the GPS information....
);
droneClient.takeoff(); .....
【问题讨论】:
请提供确切的错误信息。也可能是console.log(navdata.gps);
的输出 似乎纬度不是使用点运算符可访问的属性。
C:\data>node gpsLog.js C:\data\gpsLog.js:8 console.log(navdata.gps.latitude + ', ' + navdata.gps.longitude); ^ 类型错误:无法在 Client.emit (events.js) 的 emitOne (events.js:96:13) 处读取 Client. (C:\data\gpsLog.js:8:27) 处未定义的属性“纬度” :188:7) 在 Client._handleNavdata (C:\data\node_modules\ar-drone\lib\Client.js:194:8) 在 EmitOne (events.js:96:13) 在 UdpNavdataStream.emit (events.js :188:7) 在 UdpNavdataStream._handleMessage (C:\data\node_modules\ar-drone\lib\navdata\UdpNavdataStream.js:73:10)
此代码来自另一篇文章,表明它确实有效。 ***.com/questions/24170884/…
我只是试了一下。 droneClient.on('navdata', function(navdata) try console.log(navdata.gps.latitude + ', ' + navdata.gps.longitude); catch(err) console.log(err.message) ;
【参考方案1】:
你必须先调用gps,使用"if(navdata.gps),然后把gps属性放在上面。但是结果是0。即使使用数字激活gps。纬度和经度的值将为“0”。
【讨论】:
以上是关于如何使用 nodejs 从 ar 无人机获取纬度信息?的主要内容,如果未能解决你的问题,请参考以下文章