23enum class axis : std::size_t {
51 fp32 acceleration(
const axis a)
const {
return a == device::axis::x || a == device::axis::roll ? acc_.x : (a == device::axis::y || a == device::axis::pitch ? acc_.y : acc_.z); }
54 fp32 gyro(
const axis a)
const {
return a == device::axis::x || a == device::axis::roll ? gyro_.x : (a == device::axis::y || a == device::axis::pitch ? gyro_.y : gyro_.z); }
56 fp32 angle(
const axis a)
const {
return a == device::axis::x || a == device::axis::roll ? angle_.roll : (a == device::axis::y || a == device::axis::pitch ? angle_.pitch : angle_.yaw); }
58 inline explicit imu_base(
const std::chrono::nanoseconds offline_timeout) :
device_base{offline_timeout} {}
63 std::derived_from<T, imu_base>;
fp32 gyro(const axis a) const
指定轴的角速度。
euler_angle angle() const
获取欧拉角。(rad)
three_axis gyro() const
获取三轴角速度。(rad/s)
fp32 acceleration(const axis a) const
指定轴的加速度。
fp32 angle(const axis a) const
指定轴的欧拉角。
three_axis acceleration() const
获取三轴加速度。(rad/s^2)