@@ -199,6 +200,12 @@ describes mapping between concrete orientation sensors and permission tokens def
"accelerometer", "gyroscope", "magnetometer"
+
+
+
{{RelativeOrientationSensor}}
+
"accelerometer", "gyroscope"
+
+
A [=latest reading=] per [=sensor=] of orientation type includes an [=map/entry=]
@@ -213,20 +220,38 @@ is equal to cos(θ/2) goes after. This order is used for better compatibility wi
however other libraries could use a different order when exposing quaternion as an array, e.g. [q0, q1,
q2, q3].
-The {{AbsoluteOrientationSensor}} class is a subclass of {{OrientationSensor}} which represents the [=Absolute
-Orientation Sensor=].
-
-The absolute orientation sensor is a [=high-level=] sensor which is created through [=sensor-fusion=]
-of the [=low-level=] motion sensors:
+The concrete {{OrientationSensor}} subclasses that are created through [=sensor-fusion=] of the [=low-level=] motion sensors are
+presented in the table below:
- - accelerometer that measures [=acceleration=],
- - gyroscope that measures [=angular velocity=], and
- - magnetometer that measures [=magnetic field=].
+
-Note: Corresponding [=low-level=] sensors are defined in [[ACCELEROMETER]], [[GYROSCOPE]], and
-[[MAGNETOMETER]]. Regardless, the fusion is platform specific and can happen in software or
+Note: {{Accelerometer}}, {{Gyroscope}} and {{Magnetometer}} [=low-level=] sensors are defined in [[ACCELEROMETER]], [[GYROSCOPE]], and
+[[MAGNETOMETER]] specifications respectively. The [=sensor-fusion|sensor fusion=] is platform specific and can happen in software or
hardware, i.e. on a sensor hub.
+The AbsoluteOrientationSensor Model {#absoluteorientationsensor-model}
+----------------------------------------------------------------------
+
+The {{AbsoluteOrientationSensor}} class is a subclass of {{OrientationSensor}} which represents the [=Absolute
+Orientation Sensor=].
+
For the absolute orientation sensor the value of [=latest reading=]["quaternion"] represents the rotation of a
device hosting motion sensors in relation to the Earth's reference coordinate system defined as a
three dimensional Cartesian coordinate system (x, y, z), where:
@@ -242,6 +267,19 @@ orientation sensor's [=latest reading=] would represent 0 (rad) [[SI]] rotation
+The RelativeOrientationSensor Model {#relativeorientationsensor-model}
+----------------------------------------------------------------------
+
+The {{RelativeOrientationSensor}} class is a subclass of {{OrientationSensor}} which represents the [=Relative
+Orientation Sensor=].
+
+For the relative orientation sensor the value of [=latest reading=]["quaternion"] represents the rotation of a
+device hosting motion sensors in relation to a stationary reference coordinate system.
+
+Note: The relative orientation sensor data could be more accurate than the one provided by absolute orientation sensor,
+as the sensor is not affected by magnetic fields. However, the stationary reference coordinate system may drift due to
+the bias introduced by gyroscope sensor.
+
API {#api}
===
@@ -340,6 +378,18 @@ The AbsoluteOrientationSensor Interface {#absoluteorientationsensor-interface}
To Construct an AbsoluteOrientationSensor Object the user agent must invoke the
construct a Sensor object abstract operation.
+The RelativeOrientationSensor Interface {#relativeorientationsensor-interface}
+-------------------------------------
+
+