struct Imu {
AccelerationFrd acceleration_frd{}; /**< @brief Acceleration */
AngularVelocityFrd angular_velocity_frd{}; /**< @brief Angular velocity */
MagneticFieldFrd magnetic_field_frd{}; /**< @brief Magnetic field */
float temperature_degc{float(NAN)}; /**< @brief Temperature */
uint64_t timestamp_us{}; /**< @brief Timestamp in microseconds */
};
where is AccelerationFrd is:
struct AccelerationFrd {
float forward_m_s2{
float(NAN)}; /**< @brief Acceleration in forward direction in metres per second^2 */
float right_m_s2{
float(NAN)}; /**< @brief Acceleration in right direction in metres per second^2 */
float down_m_s2{
float(NAN)}; /**< @brief Acceleration in down direction in metres per second^2 */
};
you can’t use exactly uorb message via mavlink, but you can get the exactly same data with mavlink using mavsdk.
_sensor_accel_sub(ORB_ID(sensor_accel), accel_index),
_sensor_gyro_sub(this, ORB_ID(sensor_gyro), gyro_index),
.
there are sensor_accel() and sensor_gyro() functions and I think AccelerationFrd is not using vehicle_acceleration() function.
I know I cannot use uorb messages directly via mavlink but I cannot sure a MAVSDK function called directly vehicle_acceleration(). Or I cannot see something.