Hi,
I do not agree that the frame in QGroundControl  were consistent.
Line 686 of UAS.cc before my changes:
 emit speedChanged(this, hud.airspeed, 0.0f, hud.climb, time);
That is not NED.
Line 810, same.
Anyway a solution is just to make it NED. The information from the 2
local-frame emits in 686 and 810 is available from other signals anyway.


On Mon, Jun 3, 2013 at 5:41 PM, Lorenz Meier <notifications@github.com>wrote:

> In src/uas/UAS.cc:
>
> > @@ -707,7 +741,7 @@ void UAS::receiveMessage(LinkInterface* link, mavlink_message_t message)
> >                  // Emit
> >
> >                  emit localPositionChanged(this, pos.x, pos.y, pos.z, time);
> > -                emit speedChanged(this, pos.vx, pos.vy, pos.vz, time);
> > +                emit velocityChanged(this, MAV_FRAME_LOCAL_NED, pos.vx, pos.vy, pos.vz, time);
>
> This signal couples the communication protocol (MAVLink) to the UI layer.
> On top, QGroundControl uses consistently internally NED for body speeds,
> and this design pattern forces each and every subscriber to do the
> coordinate transformation himself, if he can't directly use it (at the
> point where it becomes pointless to transmit the frame).
>
> A better (and simpler) approach is to change this to velocityChangedNED()
> and to add signals for other frames as they become available (and emit
> both).
>
> —
> Reply to this email directly or view it on GitHub<https://github.com/mavlink/qgroundcontrol/pull/265/files#r4502383>
> .
>