如何将GPS数据发送到parrot ar无人机并转到我的无人机到gps位置?

时间:2017-03-20 07:18:31

标签: node.js gps ar.drone

我正在使用node ar drone modules。我的无人机是parrot ar drone 2.0 gps版本我成功获得了parrot ar drone gps数据。我想将parrot ar无人机送到操纵的gps位置。但是我无法将gps数据发送给parrot ar无人机。

有没有办法将操纵的gps数据发送到我的parrot ar无人机?

1 个答案:

答案 0 :(得分:2)

有两种方法可以做到这一点。

首先,艰难的方式。 node-ar-drone与AR.Drone交谈时使用的协议无法直接让无人机坐标飞到,但您可以自己进行计算。

  1. 启用无人机的磁力计(参见https://github.com/wiseman/webflight-traffic/blob/master/index.js#L19)。
  2. 校准磁力计:命令无人机起飞,然后client.calibrate(0)(见https://github.com/felixge/node-ar-drone#clientcalibratedevice_num)。
  3. navdata.magneto.heading.fusionUnwrapped获取无人机的磁力航向。
  4. navdata.gps.latitudenavdata.gps.longitude获取无人机的当前坐标。
  5. 计算从无人机当前位置到目标的所需航向。这有些微妙之处,但对于大多数应用程序,您可以按照http://www.movable-type.co.uk/scripts/latlong.html

    中描述的过程进行操作

    θ= atan2(sinΔλ·cosφ2,cosφ1·sinφ2-sinφ1·cosφ2·cosΔλ)其中φ1,λ1为起点,φ2,λ2为终点(Δλ为差值)在经度)。

    由于atan2返回的范围为-π... +π(即-180°... + 180°),因此将结果标准化为罗盘方位(范围为0°... 360° °,将-ve值转换为180°范围... 360°),转换为度数,然后使用(θ+ 360)%360,其中%是(浮点)模数。

  6. 确定无人机是需要顺时针还是逆时针旋转以达到所需的航向,并根据需要拨打client.clockwiseclient.counterClockwise

  7. 当无人机面向正确的航向时,请告诉它继续前进client.front

  8. 一旦无人机向正确方向前进,每次获得新的导航数据时,都应检查当前航向,重新计算所需的航向,并告知无人机在需要时顺时针或逆时针转动。一旦你在你想要的目的地的某个门槛(5英尺?50英尺?)之内,告诉无人机停在client.stop

    node-ar-drone使用的协议外,AR.Drone还支持许多业余爱好者和商业无人机使用的MAVLink协议。该协议有一种方法可以告诉无人机直接移动到特定的坐标。您可以使用像QGroundControl这样的应用程序将无人机发送到特定的纬度,经度,或者您可以使用现有的MAVLink库之一向无人机发送消息来执行相同的操作。

    DroneKit-Python,例如,  是一个高级库,可以让你编写这样的代码(取自this example):

    # set the default travel speed
    vehicle.airspeed=3
    
    point1 = LocationGlobalRelative(-35.361354, 149.165218, 20)
    vehicle.simple_goto(point1)