static void send_att(struct transport_tx *trans, struct link_device *dev) { /* compute eulers in int (IMU frame) */ struct FloatEulers ltp_to_imu_euler; float_eulers_of_quat(<p_to_imu_euler, &ahrs_float_inv.state.quat); struct Int32Eulers eulers_imu; EULERS_BFP_OF_REAL(eulers_imu, ltp_to_imu_euler); /* compute Eulers in int (body frame) */ struct FloatQuat ltp_to_body_quat; struct FloatQuat *body_to_imu_quat = orientationGetQuat_f(&ahrs_float_inv.body_to_imu); float_quat_comp_inv(<p_to_body_quat, &ahrs_float_inv.state.quat, body_to_imu_quat); struct FloatEulers ltp_to_body_euler; float_eulers_of_quat(<p_to_body_euler, <p_to_body_quat); struct Int32Eulers eulers_body; EULERS_BFP_OF_REAL(eulers_body, ltp_to_body_euler); pprz_msg_send_AHRS_EULER_INT(trans, dev, AC_ID, &eulers_imu.phi, &eulers_imu.theta, &eulers_imu.psi, &eulers_body.phi, &eulers_body.theta, &eulers_body.psi, &ahrs_finv_id); }
static void send_euler(struct transport_tx *trans, struct link_device *dev) { struct Int32Eulers *eulers = stateGetNedToBodyEulers_i(); pprz_msg_send_AHRS_EULER_INT(trans, dev, AC_ID, &ahrs_ice.ltp_to_imu_euler.phi, &ahrs_ice.ltp_to_imu_euler.theta, &ahrs_ice.ltp_to_imu_euler.psi, &(eulers->phi), &(eulers->theta), &(eulers->psi)); }
static void send_att(struct transport_tx *trans, struct link_device *dev) { struct FloatEulers ltp_to_imu_euler; float_eulers_of_quat(<p_to_imu_euler, &ahrs_impl.ltp_to_imu_quat); struct Int32Eulers euler_i; EULERS_BFP_OF_REAL(euler_i, ltp_to_imu_euler); struct Int32Eulers* eulers_body = stateGetNedToBodyEulers_i(); pprz_msg_send_AHRS_EULER_INT(trans, dev, AC_ID, &euler_i.phi, &euler_i.theta, &euler_i.psi, &(eulers_body->phi), &(eulers_body->theta), &(eulers_body->psi)); }