diff --git a/src/modules/local_position_estimator/BlockLocalPositionEstimator.cpp b/src/modules/local_position_estimator/BlockLocalPositionEstimator.cpp index 30e51bab9d..1f8374209a 100644 --- a/src/modules/local_position_estimator/BlockLocalPositionEstimator.cpp +++ b/src/modules/local_position_estimator/BlockLocalPositionEstimator.cpp @@ -611,6 +611,9 @@ void BlockLocalPositionEstimator::publishLocalPos() _pub_lpos.get().vy = xLP(X_vy); // east _pub_lpos.get().vz = xLP(X_vz); // down + // this estimator does not provide a separate vertical position time derivative estimate, so use the vertical velocity + _pub_lpos.get().z_deriv = xLP(X_vz); + _pub_lpos.get().yaw = _eul(2); _pub_lpos.get().xy_global = _estimatorInitialized & EST_XY; _pub_lpos.get().z_global = !(_sensorTimeout & SENSOR_BARO); @@ -691,6 +694,10 @@ void BlockLocalPositionEstimator::publishGlobalPos() _pub_gpos.get().vel_n = xLP(X_vx); _pub_gpos.get().vel_e = xLP(X_vy); _pub_gpos.get().vel_d = xLP(X_vz); + + // this estimator does not provide a separate vertical position time derivative estimate, so use the vertical velocity + _pub_gpos.get().pos_d_deriv = xLP(X_vz); + _pub_gpos.get().yaw = _eul(2); _pub_gpos.get().eph = eph; _pub_gpos.get().epv = epv;