diff --git a/src/drivers/vmount/output.cpp b/src/drivers/vmount/output.cpp index e1f1c2b7fb..f804c631f9 100644 --- a/src/drivers/vmount/output.cpp +++ b/src/drivers/vmount/output.cpp @@ -46,6 +46,7 @@ #include #include #include +#include namespace vmount { @@ -186,11 +187,12 @@ void OutputBase::_calculate_output_angles(const hrt_abstime &t) orb_copy(ORB_ID(vehicle_attitude), _vehicle_attitude_sub, &vehicle_attitude); } - float att[3] = { vehicle_attitude.roll, vehicle_attitude.pitch, vehicle_attitude.yaw }; + matrix::Quaternion q(&vehicle_attitude.q[0]); + matrix::Euler euler(q); for (int i = 0; i < 3; ++i) { if (_stabilize[i]) { - _angle_outputs[i] = _angle_setpoints[i] - att[i]; + _angle_outputs[i] = _angle_setpoints[i] - euler(i); } else { _angle_outputs[i] = _angle_setpoints[i];