Documentation Search
Godot Apple Plugins Class

CMDeviceMotion

Inherits: RefCounted < Object

Fused sensor data combining accelerometer, gyroscope and magnetometer into attitude, gravity, user acceleration and bias-corrected rotation rate.

Description

Wraps Apple’s CMDeviceMotion. Use this instead of raw accelerometer/gyro data when you need device attitude, gravity-separated user acceleration, or bias-corrected rotation. Emitted by both CMMotionManager (handheld device) and CMHeadphoneMotionManager (AirPods).

See Apple’s CMDeviceMotion reference.

Tutorials

Properties

Quaternion

attitude_quaternion

Vector3

attitude_roll_pitch_yaw

Vector3

gravity

float

heading

Vector3

magnetic_field

MagneticFieldCalibrationAccuracy

magnetic_field_accuracy

Vector3

rotation_rate

float

timestamp

Vector3

user_acceleration


Enumerations

enum MagneticFieldCalibrationAccuracy: 🔗

MagneticFieldCalibrationAccuracy UNCALIBRATED = -1

The magnetometer has not been calibrated; magnetic_field is not reliable.

MagneticFieldCalibrationAccuracy LOW = 0

Low calibration accuracy.

MagneticFieldCalibrationAccuracy MEDIUM = 1

Medium calibration accuracy.

MagneticFieldCalibrationAccuracy HIGH = 2

High calibration accuracy.


Property Descriptions

Quaternion attitude_quaternion 🔗

Device attitude as a quaternion, relative to the reference frame chosen when starting updates.


Vector3 attitude_roll_pitch_yaw 🔗

  • void set_attitude_roll_pitch_yaw(value: Vector3)

  • Vector3 get_attitude_roll_pitch_yaw()

Device attitude as Euler angles in radians: x is roll, y is pitch, z is yaw.


Vector3 gravity 🔗

The gravity component of the acceleration, in G-forces, in device coordinates.


float heading 🔗

  • void set_heading(value: float)

  • float get_heading()

Heading in degrees, where 0° is the reference attitude. Returns -1 on platforms where heading is not available (e.g. macOS headphone motion, iOS < 11).


Vector3 magnetic_field 🔗

  • void set_magnetic_field(value: Vector3)

  • Vector3 get_magnetic_field()

Bias-corrected magnetic field in microteslas. Check magnetic_field_accuracy to interpret reliability.


MagneticFieldCalibrationAccuracy magnetic_field_accuracy 🔗

Calibration accuracy of magnetic_field.


Vector3 rotation_rate 🔗

Bias-corrected rotation rate around each axis in radians per second.


float timestamp 🔗

  • void set_timestamp(value: float)

  • float get_timestamp()

The time at which the sample was taken, in seconds since device boot.


Vector3 user_acceleration 🔗

  • void set_user_acceleration(value: Vector3)

  • Vector3 get_user_acceleration()

Acceleration imparted by the user, in G-forces, with gravity removed.