Device and method for determining the orientation of an object
Patent Information
- Application Number
- PCT/EP2026/053931
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2025-02-25
- Filing Date
- 2026-02-13
- Publication Date
- 2026-09-03
Smart Images

Figure EP2026053931_03092026_PF_FP_ABST
Abstract
Description
[0001] P98193
[0002] 1
[0003] Description
[0004] Device and method for determining the orientation of an object
[0005] Various aspects concern a computer-implemented method for determining the orientation of a body, and a device comprising a processor set up for determining the orientation of a body.
[0006] In general, knowing the orientation of a body in three-dimensional space is of great importance for many different applications. For example, knowing the orientation of a vehicle allows for accurate estimation and prediction of its trajectory, thus facilitating the creation of appropriate driving instructions or warning messages. Similarly, knowing the orientation of a robot allows for the generation of instructions to control its operation in order to perform a specific task (e.g., moving to a location, picking up an object, and so on). As another example, knowing the orientation of a moving person allows for the precise tracking of their movement in the real world, for example, for navigation, health measurements, and the like. Therefore, improved approaches for accurately determining the orientation of a body in three-dimensional space are relevant for the further development of several technologies.
[0007] DE 10 2015 217 449 B3 describes a sensor combination method. This method combines measurements from different types of orientation sensors to estimate the orientation of an object.
[0008] DE 10 2012 011 632 Al describes a system for determining the spatial orientation and angular rate of a moving object by combining magnetic field and acceleration measurements using a kinematic model in a filter. .P98193
[0009] 2
[0010] DE 10 2004 057 933 Al describes a method and a device for the quasi-continuous determination and display of the relative position and orientation of a medical instrument to the patient using three-dimensional inertial sensors during an operation.
[0011] Typically, inertial measurement units (IMUs) and / or MARG sensors (where MARG stands for Magnetic, Angular Rate, and Gravity) are used to determine the orientation of a body. These sensor types include gyroscopes for measuring the body's angular velocity, accelerometers for measuring the body's (linear) acceleration (e.g., including gravity), and magnetometers for measuring the local magnetic field vector acting on the body. Measurement data from IMU-MARG sensors can be processed (e.g., fused) to derive the body's orientation and other relevant parameters.
[0012] One existing approach is based on the so-called gradient descent method, which is applied to the IMU-MARG measurement data. This method determines the direction of the steepest descent and a weighting factor, which is influenced by the maximum gyroscope measurement error of each axis. This approach has been used, for example, in aerospace, robotics, navigation, human motion analysis, machine interaction, and rehabilitation.
[0013] The gradient descent method is merely an optimization technique that does not guarantee an optimal solution. This means that while the method provides an approximation of the actual orientation, it does not necessarily deliver the best possible estimate. Furthermore, it can be susceptible to local minima, which can impair its accuracy.
[0014] 3
[0015] In contrast, other methods offer closed-form solutions, but these require more complex numerical calculations using matrices. These approaches are computationally more complex and resource-intensive, which is a disadvantage in real-time systems. Intuitively, closed-form solutions offer more precise results and attempt to solve the problem as an eigenvalue problem through mathematical transformations. However, these methods are computationally very expensive, which is particularly problematic in real-time systems.
[0016] Real-time applications are problematic. The high computational complexity of these methods can make them unsuitable for systems with limited computing resources.
[0017] Current solutions therefore include both the gradient method and other mathematically more complex methods, with the trade-off between accuracy and computational effort playing a crucial role.
[0018] In this context, the present disclosure focuses on a quaternion-based approach that enables the derivation of a body's orientation in a computationally simple yet accurate manner. Specifically, the present disclosure is based on the understanding that suitable processing of a quaternion-based representation of acceleration and magnetometer data (and in some aspects also of gyroscope data) allows for an accurate estimation of the body's orientation with relatively simple calculations. The approach proposed here is therefore suitable for real-time applications.
[0019] The method described herein provides a closed-form solution that does not reformulate the problem into an eigenvalue problem. Instead, the original problem is solved directly in closed form, without the use of complex numerical methods. P98193
[0020] 4
[0021] This results in higher accuracy, as the solution does not rely on iterative processes. As soon as new sensor data arrives, the closed-form solution always delivers the optimum. Furthermore, the low computational complexity of this method enables real-time orientation measurement with minimal resource expenditure, making it particularly suitable for applications with limited computing power, microcontrollers, or sensor integration.
[0022] This method provides a direct solution to the Wahba problem, which aims to determine the resulting orientation quaternion from acceleration and magnetometer measurement data. This improves the accuracy and stability of the orientation estimation. Furthermore, calculating the resulting orientation quaternion from these sensor data reduces the computational effort required compared to previously known methods.
[0023] According to various aspects, a computer-implemented method for determining the orientation of a body is provided, wherein the method comprises: determining a first measurement quaternion based on acceleration data representing an acceleration force acting on the body; determining a second measurement quaternion based on the acceleration data and magnetometer data, wherein the magnetometer data represent the intensity of a magnetic field around the body, the determination of the second measurement quaternion involving an orthogonalization of the acceleration data and the magnetometer data to each other; determining a first orientation quaternion based on the first measurement quaternion and a first reference quaternion, wherein the first reference quaternion represents a reference vector for the acceleration force acting on the body;Determining a second orientation quaternion based on the second measurement quaternion, the first orientation quaternion and a second reference quaternion, where the second reference quaternion is a reference vector for the magnetic field around P98193;
[0024] 5
[0025] the body, where the first reference quaternion and the second reference quaternion are orthogonal to each other; multiplying the second orientation quaternion with the first orientation quaternion to obtain a field quaternion; and using the field quaternion to define a resulting orientation quaternion that represents the orientation of the body.
[0026] According to various aspects, a suitable electronic device can be provided which includes a processor configured to perform the method for determining the orientation of the body. It is understood that the aspects described herein relating to the method apply accordingly to a configuration of the processor, and vice versa.
[0027] According to various aspects, a corresponding computer program [product] (e.g., a non-volatile, computer-readable medium) can be provided, containing instructions which, when the program is executed by a computer, cause it to perform the procedure for determining the orientation of the body.
[0028] In the approach described herein, the orthogonalization of the acceleration data with respect to the magnetometer data and the correspondingly defined quaternions ensures that the two datasets are independent of each other, leading to a precise estimation of the orientation.
[0029] In some scenarios, the field quaternion can be directly considered the resulting orientation quaternion, which (completely) represents the orientation of the body in three-dimensional space. In other scenarios, gyroscope data can be introduced to obtain the resulting quaternion via a linear combination of the field quaternion with a third orientation quaternion derived from the gyroscope data.
[0030] 6
[0031] Orientation determination can thus be flexibly adapted to the current scenario for the body. If the magnetometer and acceleration data are sufficient for a complete characterization, the body's orientation can be determined without relying on gyroscope data, thereby reducing computational effort. For example, the magnetometer and acceleration data may be sufficient if the body is stationary, in which case the information contained in the gyroscope data would not significantly influence the final result.
[0032] On the other hand, the possibility of using gyroscope data (additionally) ensures a reliable and accurate estimate over a wide range of body conditions. For example, gyroscope data can be included in the estimate when the body is not stationary.
[0033] In some aspects, the method may include the reception of measurement data from a sensor array. The measurement data may include acceleration data, magnetometer data, and, in some aspects, gyroscope data. The approach of the present disclosure may thus enable a precise
[0034] Real-time estimation of orientation using a sensor arrangement (e.g., a MEMS (Micro-Electro-Mechanical Systems) IMU-MARG sensor) which provides three-dimensional measurement data regarding rotation, acceleration, and magnetic field strength.
[0035] In some aspects, orientation determination may involve an initial evaluation of the measurement data to assess its plausibility. If the measurement data are sufficiently plausible, orientation determination may involve using the measurement data to determine the quaternions and perform the orientation determination. If the measurement data are not sufficiently plausible, orientation determination may instead rely on "derived data," such as acceleration data.
[0036] 7
[0037] Magnetometer data and, in some aspects, gyroscope data derived from a previous instance of orientation determination.
[0038] To illustrate, orientation determination can involve an initial decision-making step in which the reliability (in other words, the trustworthiness) of the measurement data from the sensor array is assessed. Orientation determination is then carried out based on the outcome of this decision-making process, for example, based on decisions about whether to use the measurement data or derive the data. This decision step thus allows for flexible adjustment of the orientation determination to ensure that the most suitable data is used in each case.
[0039] In this context, the present disclosure refers to "measurement data" (e.g., acceleration measurement data, magnetometer measurement data, and gyroscope measurement data) and to "data" (e.g., acceleration data, magnetometer data, and gyroscope data). The term "measurement data" is used to describe data originating from a corresponding sensor arrangement. To illustrate, a sensor in the sensor arrangement can perform a detection process to measure a physical quantity (e.g.,
[0040] to detect acceleration, magnetic field, rate of change of angular position) and deliver corresponding measurement data as a result, which represent the detected physical quantity. On the other hand, the term "data" is used to describe data that is used for orientation determination and either comes directly from the sensor array or is derived based on previous instances of orientation determination. The "data" can thus be either "measurement data," if the result of the detection process is used, or "derived data" (intuitively "constructed data" or "calculated data") based on previous P98193
[0041] 8
[0042] Information. The term "sensor data" can be used in the same way as the term "measurement data".
[0043] The “measurement data” are referred to herein by uppercase letters (e.g. A for the acceleration measurement data, M for the magnetometer measurement data and Q for the gyroscope measurement data) and the “data” are referred to by lowercase letters (e.g. a for the acceleration data, m for the magnetometer data and w for the gyroscope data).
[0044] As will be explained in more detail below, the use of a quaternion-based representation allows the orientation of a body to be determined using relatively simple mathematical operations, thereby reducing computational effort and time. The theory and properties of quaternions are generally known. A brief introduction is given here to discuss the aspects relevant to the present revelation. In this revelation, both the neuter article "das" and the feminine article "die" may be used with regard to the term "quaternion".
[0045] In general, "quaternions" are a mathematical concept used to extend complex numbers to a four-dimensional space. A quaternion q can be represented as follows,
[0046] q = Re (q) + / m(q) = s + xi + yj + zk = (s, x, y, zj where
[0047] s, x, y, z GR
[0048] Re(q) = s, Im(q) = xi + yj + zk
[0049] i 2 = j 2 = k 2 = ijk = — 1
[0050] In the expression above, s is the component of the scalar part of the quaternion (also called the scalar part), and x, y, z are the components of the vector part of the quaternion.
[0051] 9
[0052] Accordingly, a quaternion can also be expressed as a pair,
[0053] q = (s, v) = (s, xi + yj + zfc)
[0054] A conjugate quaternion q* can be obtained by taking the negative of the vector part,
[0055] q* = (s, — v) = (s, — xi — yj — zk')
[0056] A relevant property of quaternions is that multiplication is not commutative, so the result of a multiplication between a first quaternion ^ and a second quaternion q2 depends on the order of the operands, since in general
[0057]
[0058] As is generally known, quaternions offer a compact representation of rotations, thus enabling simpler and faster calculations compared to other representations (e.g., those based on matrices or Euler angles). Accordingly, a quaternion-based representation is particularly well-suited for determining the orientation of a body in a computationally efficient yet accurate manner.
[0059] The orientation determination described in this disclosure uses various quaternions, which are referred to by different names to facilitate differentiation. For example, quaternions may be given different names depending on how they are obtained or what they represent. However, it is understood that the basic properties of "quaternions" apply to every "quaternion" mentioned in this disclosure. The result of the orientation determination may be used for any suitable purpose and application. In general, the procedure may also include the output of a message representing the result of the orientation determination, e.g., a message containing information representative of the determined orientation of the body.
[0060] In a preferred configuration, the determined orientation of the body can be used to generate instructions for controlling the operation of a technical unit. In particular, the method can further include generating instructions for controlling the movement of an object based on the determined orientation of the body. The instructions can cause the object to move to specific coordinates determined / selected according to the orientation of the body.
[0061] It is understood, however, that the instructions can in principle be of any suitable type, depending on the desired application or functionality. As a further example, the method can involve generating instructions for controlling an automated task based on the determined orientation of the body, such as...
[0062] Opening / closing a door, turning a light on / off, turning a display on / off, emitting a sound, and the like.
[0063] The proposed algorithm is applicable to many technical applications requiring real-time tracking of body movement. Modern sensor arrays (e.g., modern MEMS IMU / MARG sensors) can be attached to clothing items such as gloves. The goal is to provide a flexible and versatile solution for precise, real-time motion tracking. Orientation estimation is achieved through a method of IMU / MARG sensor data fusion, with the aim of determining the 11
[0064] Orientation of an object is solved, on which a gyroscope, an accelerometer and a magnetometer are present.
[0065] Exemplary embodiments of the invention are shown in the figures and are explained in more detail below.
[0066] They show:
[0067] Figure 1A shows an electronic device and a method for determining the orientation of a body in a schematic view according to various aspects of the present disclosure;
[0068] Figure 1B shows a sensor arrangement in a schematic view according to various aspects of the present disclosure;
[0069] Figure 10 showing a body comprising the sensor arrangement, in a schematic view according to various aspects of the present disclosure;
[0070] Figure 2A, Figure 2B and Figure 20 show different aspects of orientation determination according to the present revelation;
[0071] Figure 3 shows a first decision-making process for determining orientation according to various aspects of the present disclosure;
[0072] Figure 4 shows a second decision-making process for determining orientation according to various aspects of the present disclosure; and
[0073] Figure 5A, Figure 5B, Figure 50 and Figure 5D are different block diagrams that represent the logic of orientation determination according to different aspects of the present revelation.
[0074] The following detailed description refers to the attached drawings, in which the 12
[0075] Specific details and embodiments are shown to illustrate how the invention can be implemented. It is understood that other embodiments may be used and structural or logical modifications may be made without deviating from the scope of protection of the present invention. It is understood that the features of the various exemplary embodiments described herein may be combined unless specifically stated otherwise. The following description is therefore not to be interpreted restrictively, and the scope of protection of the present invention is defined by the attached claims.
[0076] FIG.1A, FIG.1B and FIG. 1C provide an introduction to the orientation determination of the present disclosure.
[0077] In this context, Fig. 1A shows an electronic device 100 which has a processor 102 and a memory 104 connected to the processor 102. The memory 104 can be configured to store instructions (e.g.,
[0078] The software instructions are stored and executed by the processor 102. These instructions can cause the processor 102 to execute a method 110 for determining the orientation of a body, which is described in more detail below. Aspects described with regard to the configuration of the processor 102 can also apply to the method 110, and vice versa. The processor 102 can also be referred to as the processing circuit 102. The method 110 can generally be referred to as orientation determination 110.
[0079] The specific details of the orientation determination are discussed with reference to Figures 2A to 5D. In general, the processor 102 can be configured according to the procedure 110 to determine a resulting quaternion 130, which represents the orientation of a body, based on acceleration data 112, magnetometer data 114, and, in some aspects, gyroscope data 116. As above P98193
[0080] 13
[0081] As explained, data 112, 114, 116 can be measurement data from a sensor arrangement (see FIG.1B) or derived data reconstructed from a previous instance of orientation determination.
[0082] In particular, the processor 102 can determine a corresponding first orientation quaternion 122 from the acceleration data 112, a corresponding second orientation quaternion 124 from the magnetometer data 114 and in some aspects a corresponding third orientation quaternion 126 from the gyroscope data 116 and then calculate the resulting orientation quaternion 130 starting from the orientation quaternions 122, 124, 126.
[0083] The data 112, 114, 116 and the corresponding orientation quaternions 122, 124, 126 can provide a comprehensive picture of the body and thus enable an accurate determination of its orientation in three-dimensional space.
[0084] In this respect, the acceleration data 112 can be representative of an acceleration force acting on the body. Intuitively, the acceleration data 112 can represent an acceleration of the body along one or more axes, e.g., along three orthogonal axes. The acceleration data 112 can thus represent whether the body is accelerating or decelerating along a specific direction (corresponding to a particular axis). The acceleration data 112 can show a rate of change of the body's velocity along each of the one or more axes (e.g., due to movement or tilting of the body) and the influence of gravity on the body (e.g., gravitational acceleration). The acceleration data can therefore contain a multitude of acceleration values, representing the rate of change of velocity in a particular direction, e.g.,positive values for an increase in P98193.
[0085] 14
[0086] Speed, negative values for a decrease in speed and "zero" values for a constant or zero speed.
[0087] Accordingly, the first orientation quaternion 122 is representative of the orientation of the body in three-dimensional space, as it can be estimated (only) on the basis of the acceleration data 112 (see also FIG. 2A). For illustration, the first orientation quaternion 122 is representative of a first estimate of the orientation of the body, which can be obtained from the acceleration data 112.
[0088] The magnetometer data 114 can be representative of the intensity of a magnetic field around the body. Intuitively, the magnetometer data 114 can represent the strength and direction of the magnetic field acting on the body along one or more axes, e.g., along three orthogonal axes. The magnetometer data 114 can include the effects of the Earth's magnetic field and also the effects of local magnetic fields near the body. The magnetometer data 114 can thus encompass a multitude of magnetic field values, representing the strength of the magnetic field in a given direction. The magnetometer data 114 can also be referred to here as magnetic field data.
[0089] Accordingly, the second orientation quaternion 124 is representative of the orientation of the body in three-dimensional space, as it can be estimated on the basis of the magnetometer data 114 (see also FIG. 2A). For illustration, the second orientation quaternion 124 is representative of a second estimate of the orientation of the body, which can be obtained from the magnetometer data 114. In particular, the second orientation quaternion 124 can additionally be determined based on the acceleration data 112, so that the second orientation quaternion 124 is representative of a P98193
[0090] 15
[0091] second estimate of the orientation of the body, which can be obtained from the magnetometer data 114 and acceleration data 112.
[0092] The gyroscope data 116 can be representative of the rate of change of an angular position of the body over time. For example, the gyroscope data 116 can represent the circular velocity of the body about one or more axes, e.g., about three orthogonal axes. The gyroscope data 116 can represent the circular velocity of the body and the direction of rotation; e.g., positive gyroscope values can represent a rotation in a first direction about the axis (e.g., clockwise), and negative gyroscope values can represent a rotation in a second direction about the axis opposite to the first direction (e.g., counterclockwise). The gyroscope data 116 can thus indicate whether the body is rotating and how fast it is rotating about one or more axes. The gyroscope data 116 can also be referred to here as angular position data.
[0093] Accordingly, the third orientation quaternion 126 is representative of the orientation of the body in three-dimensional space, as it can be estimated based on the gyroscope data 116 (see also FIG. 2B). The third orientation quaternion 126 is representative of a third estimate of the body's orientation that can be obtained from the gyroscope data 116. In this context, it is worth noting that the gyroscope data 116 (and consequently the quaternion 126) represent relative changes in orientation over time (e.g., with respect to a known point) and not an absolute orientation.
[0094] The resulting quaternion 130 can thus represent the orientation of the body in the real world, as determined by taking into account the contributions of the acceleration data 112 and the magnetometer data 114 and in some aspects of the P98193
[0095] 16
[0096] Gyroscope data 116 was calculated. In this respect, the resulting quaternion 130 can represent the orientation of the body with respect to any suitable reference coordinate system.
[0097] In a preferred configuration, the reference coordinate system can be a global coordinate system; for example, the resulting quaternion 130 can represent the orientation of the body in Earth coordinates, which is the most relevant use case for the approach described herein. In other aspects, the reference coordinate system can be a local coordinate system defined within the specific context of the body. A local coordinate system can be defined, for example, with respect to a particular physical location (e.g., a site, a park, a street, etc.) or with respect to an object (e.g., a vehicle, a building, etc.). Intuitively, the resulting quaternion 130 can represent a rotation or degree of rotation of the body from any suitable reference position (e.g., the origin of the reference coordinate system).The term “alignment” can be used here in the same way as the term “orientation”.
[0098] According to various aspects, the orientation determination 110 can be based on measurement data from a sensor arrangement 150, which is shown in FIG. 1B. In general, the sensor arrangement 150 can be configured to detect an acceleration force acting on the body about one or more axes, a magnetic field acting on the body about one or more axes, and a rate of change of an angular position of the body about one or more axes, and to generate corresponding measurement data. In a preferred configuration, the sensor arrangement 150 can be configured to perform the detection along three orthogonal axes (e.g., x, y, z). The processor 102 can receive the measurement data from the sensor arrangement 150 to perform the orientation determination 110.
[0099] 17
[0100] In this respect, the device 100 and the sensor arrangement 150 can each have a communication circuit (not shown) to enable communication between the device 100 and the sensor arrangement 150 (e.g., for sending / receiving measurement data). The communication circuit can provide a communication link between the device 100 and the sensor arrangement 150 and can include a transmitter circuit and / or a receiver circuit. In a preferred configuration, the communication circuit can be configured to enable wireless communication between the device 100 and the sensor arrangement 150. However, it is understood that the device 100 and the sensor arrangement 150 can also communicate with each other via a wired connection.
[0101] The sensor arrangement 150 can include a first sensor 152, which is configured to detect the acceleration force acting on the body and to generate corresponding acceleration measurement data 162 (hereinafter also referred to as first measurement data or first sensor data).
[0102] The first sensor 152 can be configured as an accelerometer. The first sensor 152 can, for example, be an accelerometer, or another suitable sensor type, or a combination of sensors capable of providing measurement data 162 as a result of a detection process, which are representative of the acceleration force on the body.
[0103] The sensor arrangement 150 can further comprise a second sensor 154, which is configured to detect the magnetic field acting on the body and to generate corresponding magnetometer measurement data 164 (hereinafter also referred to as second measurement data or second sensor data). Intuitively, the second sensor 154 can be configured as a magnetometer. As an example, the second sensor 152 can be a magnetometer or another suitable sensor type or combination.
[0104] 18
[0105] of sensors which are able to provide measurement data 164 as a result of the detection process, which represent the magnetic field acting on the body.
[0106] The sensor arrangement 150 can further comprise a third sensor 156, which is configured to detect the rate of change of the angular position of the body and to generate corresponding gyroscope measurement data 166 (hereinafter also referred to as third measurement data or third sensor data). For example, the third sensor 156 can be configured as a gyroscope. As an example, the third sensor 156 can be a gyroscope or another suitable sensor type or combination of sensors capable of providing, as a result of the detection process, measurement data 166 representing the rate of change of the angular position of the body.
[0107] The general configuration, operating principles, and components of an accelerometer, a magnetometer, and a gyroscope are well-known in engineering. Therefore, the approach described herein can be implemented with any suitable configuration of these types of sensors.
[0108] Although not shown, the sensor arrangement 150 can further include a clock generator configured to generate a clock signal for timing the operation of the sensors 152, 154, 156. The clock signal can define the time intervals at which measurement data 162, 164, 166 are read (in other words, sampled) from a sensor 152, 154, 156 and delivered to the processor 102. In other words, the clock signal can define the times at which a sensor 152, 154, 156 performs its corresponding acquisition process and samples the physical quantity for which that sensor 152, 154, 156 is designed. In other words, the clock signal can define the time intervals in which the processor 102 reads the measurement data 162, 164, 166 or receives the measurement data 162, 164, 166 from the sensors 152, 154, 156. 19
[0109] Accordingly, the sensor arrangement 150 can supply the measurement data 162, 164, 166 as sequences of measurement data to the processor 102, which are updated at a frequency defined by the clock frequency of the clock signal and by the configuration of the specific sensors 152, 154, 156. In this respect, the first sensor 152, the second sensor 154, and the third sensor 156 can have different sampling frequencies to account for the different nature of the physical quantities being measured.
[0110] To illustrate, the first sensor 152 can have a first sampling frequency, such that it detects the acceleration force in first time intervals, which are spaced apart by a first period. The second sensor 154 can have a second sampling frequency, such that it detects the magnetic field in second time intervals, which are spaced apart by a second period. The third sensor 156 can have a third sampling frequency, such that it detects the rate of change of the angular position in third time intervals, which are spaced apart by a third period. Accordingly, the processor 102 can receive updated measurement data from sensors 152, 154, and 156 according to their respective sampling frequencies.
[0111] In some aspects, the first sampling frequency, the second sampling frequency, and the third sampling frequency can differ from one another. In particular, the third sampling frequency can be higher than the first sampling frequency, and the first sampling frequency can be higher than the second sampling frequency. Intuitively, the third sensor 156 can measure the rate of change of the angular position with the highest sampling frequency, since this quantity changes rapidly. The second sensor 154 can measure the magnetic field with the lowest sampling frequency, since this quantity is subject to only small fluctuations. However, it is understood that the 20
[0112] Sensors 152, 154, and 156 can generally have the same sampling frequency. It is also understood that the sampling frequencies can be dynamically adjusted.
[0113] As a numerical example, the third sampling frequency can be at least five times greater than the first sampling frequency, e.g., at least ten times greater, e.g., at least twenty times greater. As another numerical example, the first sampling frequency can be at least five times greater than the second sampling frequency, e.g., at least ten times greater, e.g., at least twenty times greater.
[0114] As an example, the third sensor 156 can measure the rate of change of the angular position at each clock cycle (e.g. at the beginning or end of each clock cycle period), the first sensor 152 can measure the acceleration force once every 10 clock cycles, and the second sensor 154 can measure the magnetic field once every 200 clock cycles.
[0115] In some aspects, the processor 102 can be configured to execute a new instance (in other words, a new repetition) of the orientation determination 110 according to the clock signal from the clock generator of the sensor array 150. Intuitively, the clock generator for the sensor array 150 and the processor 102 can be shared. For example, the processor 102 can perform a new orientation determination 110 each time it receives updated measurement data from the sensor array 150 (e.g., at each clock cycle). As mentioned earlier, the approach described herein enables a real-time evaluation of the orientation, allowing the processor 102 to track the real-time evolution of the body's state.
[0116] In other aspects, the processor 102 can perform a new orientation determination 110 at predetermined time intervals, independent of the sampling frequencies of the sensors 152, 154, 156. P98193
[0117] 21
[0118] In a preferred configuration, the sensor arrangement 150 can be implemented as an integrated circuit comprising the three sensors 152, 154, 156. Intuitively, the sensor arrangement 150 can be implemented as a single device. For example, the sensors 152, 154, 156 can be coupled to the same substrate (e.g., the same printed circuit board) and / or contained in the same housing. However, it is understood that the approach described herein can alternatively be implemented with a "shared configuration" of the sensors 152, 154, 156. In other words, the sensors 152, 154, 156 can be implemented as individual, separate sensors 152, 154, 156, e.g., each with its own housing, circuit arrangement (e.g., clock generator), etc.
[0119] The orientation determination 110 of the present disclosure can be used to determine the orientation of a “body” (also referred to herein as an “entity”). In some aspects, the body whose orientation is determined may be the sensor arrangement 150 itself.
[0120] In this scenario, the processor 102 can determine the orientation of the sensor array 150 in the real world, and the orientation of the sensor array 150 can be an indication of the orientation (or movement) of a host in which the sensor array 150 is installed (e.g., a host to which the sensor array 150 is attached).
[0121] In other aspects, the body whose orientation is determined can be a movable object 170 in which the sensor arrangement 150 is installed (e.g., to which the sensor arrangement 150 is attached), as shown in FIG. IC. In this context, the term “movable object” can be used to describe the fact that the object having the sensor arrangement 150 is movable or can be moved in one or more directions. Intuitively, a “movable object” can have an orientation that may change over time. P98193
[0122] 22
[0123] In this respect, the “body” can be any suitable type of “movable object” 170.
[0124] As an example, the body can be a garment 170a to which the sensor assembly 150 is attached. For example, the garment 170a can be a shirt, a glove, trousers, a bracelet, a headband, and the like. As another example, the body can be a mobile device 170b to which the sensor assembly 150 is attached or into which the sensor assembly 150 is built / integrated. For example, the mobile device 170b can be a smartphone, a smartwatch, a tablet, a laptop, smart glasses, and the like. As yet another example, the body can be a vehicle 170c to which the sensor assembly 150 is attached or into which the sensor assembly 150 is built / integrated. Vehicle 170c can be a land vehicle (e.g. a car, a bicycle, a motorcycle, etc.), an aircraft (e.g. a drone, an airplane, etc.) or a watercraft (e.g. a boat, a submarine, etc.).Furthermore, the body can be a living being 170d to which the sensor arrangement 150 is attached (e.g., by means of a suitable article of clothing). The living being 170d can be a human or an animal (e.g., a dog or a cat).
[0125] The device 100 and the processor 102 can be located at any suitable location. For example, the processor 102 can be located on the body whose orientation is being determined. For example, the processor 102 can be part of a processing system of a vehicle 170c in which the sensor arrangement 150 is installed / attached, or part of a processing system of a mobile device 170b in which the sensor arrangement 150 is installed / integrated.
[0126] As another example, the device 100 and the processor 102 can be arranged outside the body, whose P98193
[0127] 23
[0128] Orientation is determined. In this configuration, the processor 102 can be located at a remote location relative to the body and receive the measurement data 162, 164, 166 from the sensor array 150 to perform remote processing. For example, the processor 102 can be located in the cloud. As another example, the processor 102 can be part of a mobile device (e.g., a smartphone) that receives measurement data 162, 164, 166 from a sensor array 150 worn by a person, etc.
[0129] Orientation determination 110 is now described in more detail with reference to FIG. 2A to FIG. 5D. Various expressions for the quaternions used in the calculations are described below. These expressions were determined to provide an accurate estimate of the orientation and to enable a computationally efficient process, and thus represent a preferred representation of the orientation for performing the calculations.
[0130] It is understood, however, that in principle minor changes may be made to the expressions described herein without departing from the scope of the present disclosure.
[0131] FIG. 2A shows a first aspect 200a of the orientation determination 110. According to the first aspect 200a, the resulting quaternion 130 can be determined solely using acceleration data 112 and magnetometer data 114. This simpler approach can be applied, for example, when the processor 102 determines that the acceleration data 112 and magnetometer data 114 are sufficient to provide a characterization of the body, as further discussed with reference to FIG. 3.
[0132] As described in more detail below, the orientation determination 110, 200a is based on an orthogonalization of the acceleration data 112 and P98193
[0133] 24
[0134] Magnetometer data 114 are related to each other and based on a corresponding definition of the second orientation quaternion 124 derived from the magnetometer data 114, which takes into account the first orientation quaternion 122 associated with the acceleration data 112. These calculations lead to a time-efficient yet accurate estimation of the orientation.
[0135] According to the first aspect 200a, the orientation determination 110, in 210, can include the determination of a first measurement quaternion 212 based on acceleration data 112. The first measurement quaternion 212 can be understood as a measurement vector which exhibits acceleration values of the acceleration force acting on the body along one or more axes (either measured or derived from a previous instance, as further described with reference to FIG. 4).
[0136] In particular, the first measurement quaternion can be 212, w a, be a quaternion which has a vector as its vector part, which contains the acceleration values along three orthogonal axes (x, y, z). For example, the first measurement quaternion 212 can have zero as its scalar part (or any other scalar value). Furthermore, the acceleration values can be normalized to facilitate further calculations. Accordingly, the first measurement quaternion 212 w a have the following expression
[0137]
[0138] where a ■= (a x , a y , a z ~) has the acceleration values in the three orthogonal directions (intuitively, in a global coordinate system) and |a| is the norm of the vector a, e.g. . the Euclidean norm of the vector .
[0139] The orientation determination 110, 200a can furthermore in 220 the determination of a second measurement quaternion 214 (w m) based on the acceleration data 112 and on magnetometer data 114. In particular, the determination of the second measurement quaternion 214 exhibits an orthogonalization 215 of the P98193
[0140] 25
[0141] Acceleration data 112 and magnetometer data 114 are related to each other.
[0142] Intuitively, the second measurement quaternion 214 can be understood as a measurement vector which has the magnetic field values of the magnetic field strength which acts on the body along one or more axes (either measured or derived from a previous instance), and is further obtained by means of an orthogonalization 215 (e.g. calculated), which ensures that the acceleration values and the magnetic field values are independent of each other.
[0143] The orthogonalization approach 215 ensures that the inclination of the sensor's local magnetic field strength does not need to be known. This makes the algorithm independent of the sensor's position relative to the Earth (Earth's longitude and latitude). Furthermore, the orthogonalization approach ensures that the orientation changes 122 and 124 are decoupled from each other. Thus, the field quaternion 252 can be expressed as a product (Jfieid = ma will be determined.
[0144] The orthogonalization 215 ensures that the measurement quaternions 212, 214 (and correspondingly the orientation quaternions 122, 124) represent two orthogonal rotations, intuitively two changes of orientation that are independent of each other. The orthogonalization 215 can feature that the acceleration data 112 are oriented such that one axis (e.g., the z-axis) corresponds to the direction of gravity, and can feature that the magnetometer data 114 are oriented orthogonally to this orientation of the acceleration data 112.
[0145] In particular, the second quaternion of measurement can be 214, w m , be a quaternion which has a vector as its vector component, which is defined by the cross product of the vector containing the acceleration values and the vector containing the magnetic field values. For example, P98193
[0146] 26
[0147] The second measurement quaternion 214 has zero as its scalar component (or any other scalar value). The acceleration and magnetic field values can be normalized to facilitate further processing. Accordingly, the second measurement quaternion 214, w m , have the following expression
[0148]
[0149] where m ■= (m x ,m y ,m z ) has the magnetic field values in the three orthogonal directions and \a X m\ is the norm of the vector a X m, e.g. . the Euclidean norm of the vector . The symbol X represents the cross product between the vector a and the vector m.
[0150] As next steps, the orientation determination 110, 200a in 230 and 240 indicates that the first orientation quaternion 122 and the second orientation quaternion 124 are based on the measurement quaternions 212, 214 and corresponding
[0151] Reference quaternions 222 and 224 for the acceleration force and the magnetic field are determined. The measured quaternions 212 and 214 are then compared with corresponding reference vectors to determine the relative changes in body orientation.
[0152] Specifically, determining the orientation can involve finding the first orientation quaternion 122 q a based on the first quaternion of measurement 212 w a and a first
[0153] Reference quaternion 222 u a The first reference quaternion 222 u a is a reference vector for the acceleration force acting on the body. Visually, the first reference quaternion represents 222 u. a a known (e.g. predetermined) direction with which the acceleration data 112 (part of the measurement quaternion 212) are compared.
[0154] In particular, the first reference quaternion can be 222 u a have the following expression, P98193
[0155] 27
[0156] u a = (0,0,0, -1)
[0157] The first reference quaternion is 222 u. a a quaternion pointing towards the Earth's center.
[0158] According to the preferred configuration, the first orientation quaternion can be 122, q a , defined as a function of a sum and a product.
[0159] The sum can be the imaginary part of the addition of the first reference quaternion 222, u a , and the measurement quaternion 212, w a exhibit .
[0160] The product can be the multiplication of the imaginary part of the conjugate first reference quaternion 222, u a * , as the first operand, with the imaginary part of the first measurement quaternion 212, w a , as the second operand.
[0161] In particular, the first orientation quaternion 122 can have a linear combination of such a sum and the square root of such a product.
[0162] For example, the linear combination can have real coefficients c lt c2 exhibits which are set up (e.g. selected) such that the product of the coefficients c lt c2 is different from zero. Accordingly, the first orientation quaternion can be 122, q a , have the following expression,
[0163]
[0164] Similarly, the orientation determination 110, 200a can be used to determine the second orientation quaternion 124, q m , based on the second quaternion of measurement 214 w m and a second reference quaternion 224 u m exhibit the second reference quaternion 224 u. mis a reference vector for the magnetic field around the body. Visually, the second reference quaternion represents 224 u. m a known (e.g. predetermined) direction with which the magnetometer data 114P98193
[0165] 28
[0166] (Part of the measurement quaternion 214) will be compared. Furthermore, the second orientation quaternion 124q will be compared. m based on the first orientation quaternion 122 q a determined.
[0167] In particular, the second reference quaternion can be 224 u m have the following expression
[0168]
[0169] where h = (0, h Y , 0, h7~) , where h Y , h7 represent the horizontal and vertical components of the local geomagnetic field. Using the above expression, the first reference quaternion is 222 u a and the second reference quaternion 224 u m orthogonal to each other.
[0170] According to the preferred configuration, the second orientation quaternion can be 124, q m , defined as a function of a sum and a second product, where the sum and the second product result from a first product .
[0171] The first product can be the multiplication of the first orientation quaternion 122, q a , as the first operand, the imaginary part of the second measurement quaternion 214, w m , as the second operand and the conjugated first orientation quaternion 122, q* , as the third operand.
[0172] The sum can be the imaginary part of the addition of the second reference quaternion 224, u m , and of the first product.
[0173] The second product can have the multiplication of the imaginary part of the conjugate second reference quaternion 224, li^, as the first operand and the first product as the second operand. .P98193
[0174] 29
[0175] In particular, the second orientation quaternion 124 can have a linear combination of such a sum and the square root of such a second product.
[0176] For example, the linear combination can have real coefficients c3, c4 which are set up (e.g. selected) such that the first orientation quaternion 122 and the second orientation quaternion 124 are orthogonal.
[0177] Accordingly, the second orientation quaternion can be 124, q m , have the following expression,
[0178]
[0179] After the acceleration- and magnetic field-related orientation quaternions 122, 124 have been determined, the orientation determination 110, 200a in 250 can show the determination of a field quaternion 252, qfieid r based on the orientation quaternions 122, 124. The field quaternion 252 qfi eid can thus represent the orientation of the body as defined by the contributions of the acceleration data 112 and the magnetometer data 114 .
[0180] In particular, the orientation determination 100, 200a can be the multiplication of the second orientation quaternion 124 q m with the first orientation quaternion 122 q a exhibit the field quaternion 252 qfi e to obtain id. The field quaternion 252 qfieid can thus be the result of a multiplication where the second orientation quaternion 124 q m as the first operand and the first orientation quaternion 122 q a is used as the second operand
[0181] fieid ma
[0182] Finally, the orientation determination 110, 200a can be the use of the field quaternion 252 qfi e The resulting orientation quaternion 130, which represents the orientation of the body, is defined by the id. P98193
[0183] 30
[0184] In the scenario of FIG. 2A, the field quaternion 252 can fully characterize the orientation without needing to consider the gyroscope data 116, so that the resulting orientation quaternion 130 can correspond to the field quaternion 252. In other aspects, as discussed with respect to FIG. 2B, the gyroscope data 116 can be used to adjust the field quaternion 252 and obtain the resulting orientation quaternion 130.
[0185] The resulting orientation quaternion 130 can be described as follows:
[0186]
[0187] to indicate that it is the result of a k-th instance of the orientation determination 110 .
[0188] Accordingly, the term "previous" and the notation qk~ nused to describe a resulting orientation quaternion that was determined in a temporally preceding instance of orientation determination 110, e.g., an orientation determination 110 that was performed in a previous clock cycle. For example, the "previous instance" can be immediately before the current instance of orientation determination 110, and the corresponding resulting quaternion can be described as
[0189]
[0190] This can be described as follows: Intuitively, the previous resulting orientation quaternion qj^ in the instance of orientation determination 110 may have been determined immediately before the current one, without any further resulting quaternions being determined in between.
[0191] With regard to FIG.2B, in a second aspect 200b of the orientation determination 110, the gyroscope data 116 can be taken into account to refine the calculations.
[0192] In particular, a third measurement quaternion 216, w^, can be determined based on the gyroscope data 116 (in 210b). The third measurement quaternion 216 can be a quaternion which has a vector as a vector component that plots the gyroscope values along one or more axes (e.g., .P98193).
[0193] 31
[0194] (along three orthogonal axes) contains . Accordingly, the third measurement quaternion w can be M have the following expression
[0195]
[0196] According to the second aspect 200b, the orientation determination 110 may involve determining the third orientation quaternion 126 based on the third measurement quaternion 216 and a previous resulting quaternion 130-1 (in 230b). In particular, the previous resulting quaternion 130-1 may be the resulting quaternion qj^ of the immediately preceding instance of the orientation determination 110, thus ensuring that the most up-to-date information is used for determining the gyroscope-related orientation quaternion 126.
[0197] In particular, the third orientation quaternion can be 126
[0198]
[0199] a product of the preceding resulting quaternion 130-1 Qfc-i, as the first operand, with the third measurement quaternion 216, as the second operand, weighted by the number T / 2, where T denotes the third period of the third time intervals of the sampling of the third sensor. Accordingly, the third orientation quaternion 126 q^ can be expressed as follows,
[0200]
[0201] where 0) ■= ( ) x , ) y , <w z ) is a vector that displays the gyroscope values in the three orthogonal directions. Using the previously determined orientation of the body allows for consideration of the type of gyroscope data that provides relative rather than absolute information about the orientation.
[0202] After the third orientation quaternion 126 using the resulting quaternion 130-1 q k-i, which was determined from the previous instance, can be used to calculate the resulting quaternion 130q. k in theP98193
[0203] 32
[0204] to obtain the current instance of the orientation determination 110, 200b .
[0205] In this respect, the orientation determination 110, 200b can further in 260b the carrying out of a linear combination of the third orientation quaternion 126
[0206]
[0207] with the field quaternion 252 qfieid to obtain the resulting orientation quaternion 130 q k to obtain. Intuitively, the orientation determination 110, 200b can have a linear combination of the scalar and vector parts of the quaternions 126, 252 to define the resulting quaternion 130, which represents the orientation of the body.
[0208] The quaternion 130 resulting from the linear combination can thus have as its scalar part the sum of the scalar parts of the quaternions 126, 252 and as its vector part vector components which are given by the sum of the corresponding vector components of the quaternions 126, 252.
[0209] The linear combination can be weighted according to various aspects. For example, it can have a first weighting factor for the field quaternion 252 and a second weighting factor for the third orientation quaternion 126. As an example, the first and second weighting factors can vary in a range from 0 to 1, depending on the desired weight for each quaternion. The weighted combination can allow the calculations to be adapted to the current scenario.
[0210] For example, orientation determination 110 can define the first weighting factor and the second weighting factor depending on the plausibility of the respective data (see also FIG. 4). Intuitively, orientation determination 110 can assign a lower or higher weighting factor to a P98193
[0211] 33
[0212] Quaternion 126, 252, depending on whether the respective data are less or more plausible.
[0213] As described above, the result of the orientation assessment 110, 200a, 200b can be used for any suitable purpose, e.g. for any suitable decision-making process or any suitable task.
[0214] With reference to FIG.2C, the processor 102 can be set up in a preferred configuration to generate instructions 270 for controlling the operation of a technical unit based on the resulting quaternion 130, intuitively based on the determined orientation of the body.
[0215] In particular, processor 102 can be configured to generate an instruction 270 to control the movement of an object based on the determined orientation of the body. The resulting quaternion 130 can thus be used to generate an instruction 270 to control the movement of an object. Intuitively, instruction 270 can effect a movement of the object defined according to the orientation of the body; for example, processor 102 can select the coordinates of the movement based on the orientation.
[0216] For example, the object can be a physical object that is movable in one or more spatial directions. For example, the object can be the body whose orientation has been determined. As an example, the object can be a robot, and instructions 270 cause the robot to move to a specific location according to its orientation. As another example, the object can be a vehicle, and instructions 270 can cause the vehicle to move in a specific direction, or the instructions can be a guide for a driver on how to drive the vehicle, etc. P98193
[0217] 34
[0218] As another example, the object may have one or more movable parts, e.g., a robot arm. In this scenario, instruction 270 can cause a movable part of the object to move. Intuitively, instruction 270 can cause the movable part to move in a specific direction, e.g., to perform a particular task, such as picking up an object, pressing a button, and the like.
[0219] In other aspects, the object can be a digital object that is movable within a digital environment. For example, the object could be an indicator on a virtual map. In this scenario, tracking the orientation of a body in the real world can be used to control the corresponding movement of the indicator in the digital world. For instance, if the body is a person or a vehicle, instruction 270 can cause the indicator to move within the digital environment to follow the movement of the body in the real world.
[0220] Figures 3 and 4 illustrate further aspects 300 and 400 of the orientation determination 110, which represent possible decision-making processes in preparation for the calculations. These additional aspects 300 and 400 thus increase the flexibility of the orientation determination 110 to adapt to different scenarios while simultaneously ensuring an accurate orientation estimate. The aspects 300 and 400 described in Figures 3 and 4 can therefore be combined with any of the aspects 200a, 200b, and 200c described in relation to Figures 2A to 2C.
[0221] According to aspects 300, the orientation determination 110, 300 in 310 can involve determining whether the body whose orientation is to be determined is stationary.
[0222] Orientation assessment 110 can be illustrated by evaluating whether the body is in motion or stationary. In other words, orientation assessment 110, 300P98193
[0223] 35
[0224] the determination to show whether the body can be considered not in motion for the purpose of carrying out the current (k-th) instance of the orientation determination 110.
[0225] The orientation determination 110, 300 can further specify, based on the result of the determination, the selection of data 112, 114, 116 to be used for the calculation. If the body is stationary, the orientation determination 110 can be based solely on the acceleration data 112 and the magnetometer data 114. In this case, the resulting quaternion 130 can correspond to the field quaternion 252. Intuitively, if the body is not in motion, the orientation determination 110 can be performed according to aspect 200a of FIG. 2A. In this scenario, it can be assumed that the gyroscope data 116 do not provide sufficient information to be relevant for the calculations and can therefore be ignored for the current instance, thus simplifying the calculations.
[0226] If the body is not stationary, the orientation determination 110 can further involve the use of the gyroscope data 116 to refine the field quaternion 252. In this case, the resulting quaternion 130 can be the linear combination of the third orientation quaternion 126 with the field quaternion 252. Intuitively, if the body is in motion, the orientation determination 110 can be performed according to aspect 200b of FIG. 2B. In this scenario, it can be assumed that the gyroscope data 116 make a relevant contribution to the calculations and thus increase the accuracy of the orientation determination 110.
[0227] Determining whether the body is stationary can be carried out in any suitable way, e.g., based on suitable data. In a preferred configuration, determining whether the body is stationary can be based on the measurement data 166 of the gyroscope 152. As an example, if the P98193
[0228] 36
[0229] If the rate of change of the body's angular position along each axis (e.g., along each of the three orthogonal axes) is equal to or less than a predetermined threshold, it can be determined that the body is not in motion. In other words, if the gyroscope measurement data 166 indicate that the body's angular velocity along each axis is equal to or less than a predetermined threshold, the body can be considered stationary, and the orientation determination 110 can be based solely on the acceleration data 112 and magnetometer data 114. On the other hand, if the rate of change of the body's angular position along at least one axis (e.g., each axis) is greater than the predetermined threshold, it can be determined that the body is in motion (in at least one direction), and the gyroscope data 116 can be included in the orientation determination 110.
[0230] The threshold can be defined to be close to zero or essentially zero, e.g., taking into account the influence of noise on the gyroscope measurements. As a numerical example, the angular velocity can be expressed in radians per second (rad / s), where the threshold can be in the range of 0 rad / s to 0.1 rad / s, e.g., in the range of 0.01 rad / s to 0.05 rad / s.
[0231] With reference to FIG. 4, the orientation determination 110, according to aspects 400, can include a decision for each data type among the acceleration data 112, magnetometer data 114, and gyroscope data 116 as to whether the measurement data from the sensor arrangement 150 should be used for the current instance of the orientation determination 110, or whether the data should be derived (in other words, calculated) from the result of a previous instance of the orientation determination 110.
[0232] 37
[0233] In a visual representation, the orientation determination 110 can involve the decision as to whether the acceleration measurement data 162 should be used as acceleration data 112, the magnetometer measurement data 164 as magnetometer data 114 and / or the gyro measurement data 166 as gyroscope data 116, or whether the acceleration data 112, the magnetometer data 114 and / or the gyroscope data 116 should be derived on the basis of a previous resulting quaternion 130-1 (e.g., the one determined in the immediately preceding instance of the orientation determination 110).
[0234] According to Aspect 400, the orientation determination 110 can thus include obtaining the measurement data from the sensor arrangement 150, e.g., receiving or reading the measurement data from the sensor arrangement 150, and deciding whether the measurement data (or which data type among the measurement data) should be used for the current instance of the orientation determination 110. In particular, the orientation determination 110 can include evaluating the plausibility of the measurement data and deciding whether the measurement data should be used depending on its plausibility.
[0235] For example, orientation determination 110 may involve using a specific data type among the measurement data for the current instance of orientation determination 110 if the plausibility of that type of measurement data meets a plausibility criterion (e.g., if the plausibility is greater than a plausibility threshold). Conversely, orientation determination 110 may involve discarding that type of measurement data for the current instance and instead deriving the data to be used based on the result of a previous instance if the plausibility does not meet the plausibility criterion (e.g., if the plausibility is less than the plausibility threshold).
[0236] 38
[0237] In this respect, the term "plausibility" can describe a degree of trustworthiness of the measurement data. In other words, "plausibility" can describe the extent to which the measurement data can be considered to correspond to reality, i.e., the extent to which the measurement data are reliable, appropriate, and consistent. Intuitively, "plausible" measurement data can be seen as representative of what actually happens to the measured physical quantity, while "implausible" measurement data can be seen as "flawed" (e.g., containing artifacts) and falsely represent what happens to the measured physical quantity.
[0238] In this respect, "plausibility" can be expressed in any suitable way. For example, "plausibility" can be expressed as a numerical value, ranging from a low value like 0, representing low or no trustworthiness, to a high value like 10, representing high or complete trustworthiness. Alternatively, "plausibility" can be represented as a letter, a code, or in any other suitable manner.
[0239] In general, orientation determination 110 can assess the plausibility of the measurement data 162, 164, 166 according to any suitable approach. In various aspects, orientation determination 110 can involve determining, based on all data types among the measurement data, whether a data type among the measurement data 162, 164, 166 meets the plausibility criterion. Furthermore, the resulting quaternion 130-1 can also be considered for the plausibility assessment.
[0240] In a more intuitive way, the orientation determination 110 in 410 can involve determining whether the acceleration measurement data 162 meet the plausibility criterion, based on the acceleration measurement data 162, the magnetometer measurement data 164, the gyro measurement data 166 and the previous resulting P98193
[0241] 39
[0242] Quaternion 130-1. Accordingly, orientation determination 110 in 420 may include determining whether the magnetometer measurement data 164 meet the plausibility criterion, based on the acceleration measurement data 162, the magnetometer measurement data 164, the gyro measurement data 166, and the previous resulting quaternion 130-1. Finally, orientation determination 110 in 430 may include determining whether the gyroscope measurement data 166 meet the plausibility criterion, based on the acceleration measurement data 162, the magnetometer measurement data 164, the gyroscope measurement data 166, and the previous resulting quaternion 130-1. Orientation determination 110 may, in a given instance, include one, several, or all plausibility assessments.
[0243] The plausibility assessment may, for example, include determining whether the measurement data 162, 164, 166 comply with the physical limitations for the respective type of measurement (e.g., the physical limits for the measured quantity). As another example, the plausibility assessment may include determining whether the measurement data are statistically consistent with the previous resulting quaternion 130-1, e.g., depending on whether the "new" measurement data exhibit an excessive deviation with respect to the previously determined orientation. As yet another example, the plausibility assessment may include sensor-specific validation, e.g., to determine whether the measurement data of a particular data type are logically consistent with the measurement data of other data types. As a further example, the plausibility assessment may include a context-based evaluation, e.g., to determine whether the measurement data correspond to a known or expected scenario for the body.
[0244] Practice tuning in.
[0245] In 410, the orientation determination 110 can thus involve the acquisition (e.g., reading, receiving) of acceleration measurement data 162 from the first sensor 152. The P98193
[0246] 40
[0247] Orientation determination 110 may also involve using the acceleration measurement data 162 as acceleration data 112 for the current instance of orientation determination 110, provided the acceleration measurement data 162 meet the plausibility criterion and are thus considered sufficiently plausible. Alternatively, orientation determination 110 may involve deriving the acceleration data 112 for the current instance of orientation determination 110 based on the orientation quaternion 130-1 resulting from a previous one, provided the acceleration measurement data 162 do not meet the plausibility criterion.
[0248] Similarly, orientation determination 110 in 420 may involve obtaining magnetometer measurement data 164 from the second sensor 154. Orientation determination 110 may further involve using the magnetometer measurement data 164 as magnetometer data 114 for the current instance of orientation determination 110 if the magnetometer measurement data 164 meets the plausibility criterion and is thus considered sufficiently plausible. Alternatively, orientation determination 110 may involve deriving the magnetometer data 114 for the current instance of orientation determination based on the previous resulting orientation quaternion 130-1 if the magnetometer measurement data 164 does not meet the plausibility criterion.
[0249] Similarly, orientation determination 110 in 430 can involve receiving gyroscope measurement data 166 from the third sensor 156. Orientation determination 110 can further involve using the gyroscope measurement data 166 as gyroscope data 116 for the current instance of orientation determination 110, provided the gyroscope measurement data 166 meets the plausibility criterion and is thus considered sufficiently plausible.
[0250] Alternatively, the orientation determination 110 can derive the gyroscope data 116 for the current instance of the P98193.
[0251] 41
[0252] Orientation determination based on the previous resulting orientation quaternion 130-1, if the gyroscope measurement data 166 do not meet the plausibility criterion.
[0253] If the measurement data 162, 164, 166 are plausible, the orientation determination 110 may optionally include digital signal processing 452, 454, 456 on the measurement data to prepare it for use in determining the orientation. The digital signal processing 452, 454, 456 may include any suitable method for improving the quality of the measurement data 162, 164, 166.
[0254] For example, the digital signal processing 452, 454, 456 may include filtering to reduce or remove noise in the measurement data 162, 164, 166 (and then use "filtered data" in orientation determination). As one example, the digital signal processing 452, 454, 456 may include moving-average filtering of the measurement data 162, 164, 166, which has proven particularly suitable for preprocessing measurement data in orientation determination. Other examples include low-pass filtering, high-pass filtering, band-pass filtering, Kalman filtering, and the like.
[0255] As another example, the digital signal processing 452, 454, 456 can additionally or alternatively include a transformation of the measurement data 162, 164, 166, e.g., to convert information of one type into information of another type, depending on the desired processing. For example, the digital signal processing 452, 454, 456 can include performing a (fast) Fourier transform on the measurement data 162, 164, 166.
[0256] As another example, the digital signal processing 452, 454, 456 can additionally or alternatively perform pattern recognition P98193
[0257] 42
[0258] exhibiting features that make it possible to identify anomalies in the measurement data 162, 164, 166.
[0259] Regarding the scenario where the measurement data 162, 164, 166 are implausible, the orientation determination 110 may involve deriving the data 112, 114, 116 to be used based on the measurement data 162, 164, 166 and the previous resulting orientation quaternion 130-1. As an example, the orientation determination 110 may involve deriving the acceleration data 112 for the current instance based on the acceleration measurement data 162 and the previous resulting orientation quaternion 130-1. Similarly, the orientation determination 110 may include deriving the magnetometer data 114 for the current instance based on the magnetometer measurement data 164 and the previous resulting orientation quaternion 130-1 and / or deriving the gyroscope data 116 for the current instance based on the gyrometer measurement data 164 and the previous resulting orientation quaternion 130-1.
[0260] In other words, orientation determination 110 can involve adjusting the measurement data 162, 164, 166 based on the previously determined orientation of the body. In other words, orientation determination 110 can involve applying a correction to the measurement data 162, 164, 166, which are considered implausible, with the correction based on the previously resulting orientation quaternion 130-1. In this respect, the adjustment can follow any suitable criterion.
[0261] Thus, orientation determination 110 can involve determining the first orientation quaternion 122, the second orientation quaternion 124, and the third orientation quaternion 126, either based on measured data or derived data. In this context, it may happen that one data type is plausible and the corresponding orientation quaternion is based on the P98193
[0262] 43
[0263] The orientation determination is based on measured data, while another data type is implausible, and the corresponding orientation quaternion is based on the derived data. The orientation determination 110 can therefore be based entirely on measured data, entirely on derived data, or on combinations of measured and derived data.
[0264] A relevant scenario might involve the use (e.g., in at least one instance) of magnetometer measurement data 164 as magnetometer data 114 in combination with gyroscope measurement data 166 as gyroscope data 116 and with derived data as acceleration data 112. This combination might be used, for example, if the body is not stationary. In this case, the acceleration measurement data 162 might be less reliable for tracking the evolution of the body's acceleration, while the other data types could adequately characterize the body's orientation.
[0265] FIG.5A to FIG.5D show schematic block diagrams 500, 510, 520, 530, which illustrate the logic of orientation determination as described in relation to FIG.2A to FIG. 4.
[0266] The block diagram 500 in FIG.5A illustrates the decision process of whether to use a particular data type of measurement data 162, 164, 166 or rather the derived data.
[0267] As shown, the orientation determination 110, 500 can include receiving (e.g., reading) the measurement data, e.g., the acceleration measurement data 162 from the first sensor 152, the magnetometer measurement data 164 from the second sensor 154, and the gyro measurement data 166 from the third sensor 156. The orientation determination 110, 500 can further include in 502 determining whether the measurement data 162, 164, 166 are plausible, e.g., as a function of the measurement data 162, 164, 166 and P98193.
[0268] 44
[0269] a previous resulting orientation quaternion 130-1 (e.g. determined in the immediately preceding instance) .
[0270] Finally, the orientation determination 110, 500 can also include the output of a respective decision for each data type, which is representative of whether the measurement data of this data type should be used for the orientation determination 110. A "decision" can be understood as a logic signal that is representative of whether the measurement data 162, 164, 166 of this data type are plausible.
[0271] The orientation determination 110 can thus include the output of a first decision 512, which is representative of whether the acceleration measurement data 162 should be used as acceleration data 112 for the orientation determination, a second decision 514, which is representative of whether the magnetometer measurement data 164 should be used as magnetometer data 114 for the orientation determination, and a third decision 516, which is representative of whether the gyroscope measurement data 166 should be used as gyroscope data 116 for the orientation determination.
[0272] A decision 512, 514, 516 can be visualized as a yes / no flag indicating whether the data is plausible (yes) or implausible (no). A decision 512, 514, 516 can thus serve as a "logic switch" to selectively toggle between using the measured data and the derived data.
[0273] The block diagrams 510, 520 in FIG. 5B and FIG. 5C show that the orientation determination 110 switches between the use of measurement data 162, 164, 166 (e.g., which are processed by means of a corresponding digital processing 452, 454, 456) or derived data 412, 414, 416 as a function of the decisions 512, 514, 516, to determine the field quaternion 252 (by means of the steps 230, P98193).
[0274] 45
[0275] 240, 250 in FIG.2A) and to determine the third orientation quaternion 126 (using step 230b in FIG.2B) .
[0276] Block diagram 530 in FIG. 5C shows that the resulting quaternion 130 can be obtained as a linear combination of the field quaternion 252 and the third orientation quaternion 126, and the resulting quaternion 130 represents the orientation 540 of the body. As explained above, the linear combination can have corresponding weighting factors for the field quaternion 252 and the third orientation quaternion 126, which are determined on the basis of the measurement data 162, 164, 166.
[0277] The foregoing description is given only as an example, and the person skilled in the art will understand that modifications can be made without deviating from the broader scope of the invention as set out in the claims. The description and drawings are therefore to be understood in an illustrative rather than a restrictive sense.
Claims
1. P98193 46 Patent claims 1. Computer-implemented method ( 110 ) for determining an orientation of a body, wherein the method ( 110 ) comprises: Determine ( 210 ) a first measurement quaternion ( 212 ) based on acceleration data ( 112 ) which represent an acceleration force acting on the body; Determine ( 220 ) a second measurement quaternion ( 214 ) based on the acceleration data ( 112 ) and on magnetometer data ( 114 ) , where the magnetometer data ( 114 ) represent an intensity of a magnetic field around the body, where determining the second measurement quaternion ( 214 ) involves an orthogonalization ( 215 ) of the acceleration data ( 112 ) and the magnetometer data ( 114 ) to each other; Determine ( 230 ) a first orientation quaternion ( 122 ) based on the first measurement quaternion ( 212 ) and a first reference quaternion ( 222 ) , where the first reference quaternion ( 222 ) represents a reference vector for the acceleration force acting on the body; Determine ( 240 ) a second orientation quaternion ( 124 ) based on the second measurement quaternion ( 214 ) , the first orientation quaternion ( 122 ) and a second reference quaternion ( 224 ) , where the second reference quaternion ( 224 ) represents a reference vector for the magnetic field around the body , where the first reference quaternion ( 222 ) and the second reference quaternion ( 224 ) are orthogonal to each other; Multiplying (250) the second orientation quaternion (124) with the first orientation quaternion (122) to obtain a field quaternion (252); and P98193 47 Using (260) the field quaternion (252 ) to define a resulting orientation quaternion ( 130) which represents the orientation of the body .
2. Method ( 110) according to claim 1, wherein the first measurement quaternion (212 ) has acceleration values as a vector part which are representative of the acceleration force acting on the body along three orthogonal axes .
3. Method ( 110) according to claim 1 or 2, where the second measurement quaternion (214 ) has a cross product between a vector with acceleration values and a vector with magnetic field values as its vector part, where the acceleration values are representative of the acceleration force acting on the body along three orthogonal axes, and where the magnetic field values are representative of the magnetic field around the body along three orthogonal axes.
4. Method ( 110) according to any one of claims 1 to 3, where the first orientation quaternion ( 122 ) is a function of a sum and a product, where the sum has the imaginary part of the addition of the first reference quaternion (222 ) and the first measurement quaternion (212 ), and where the product comprises the multiplication of the imaginary part of the conjugated first reference quaternion (222 ) , as the first operand, with the imaginary part of the first measurement quaternion (212 ) , as the second operand, wherein preferably the first orientation quaternion ( 122 ) has a linear combination of the sum and the square root of the product,P98193 48 wherein preferably the linear combination has real coefficients which are selected such that the product of the coefficients is non-zero .
5. Method ( 110) according to any one of claims 1 to 4, where the second orientation quaternion ( 124 ) is a function of a sum and a second product, where the sum and the second product result from a first product, where the first product has the multiplication of the first orientation quaternion ( 122 ) , as the first operand, the imaginary part of the second measurement quaternion (214 ) , as the second operand, and the conjugate first orientation quaternion ( 122 ) , as the third operand, where the sum contains the imaginary part of the addition of the second reference quaternion (224 ) and the first product, and where the second product features the multiplication of the imaginary part of the conjugate second reference quaternion (224) as the first operand and the first product as the second operand, wherein preferably the second orientation quaternion ( 124 ) has a linear combination of the sum and the square root of the second product, wherein preferably the linear combination has real coefficients which are selected such that the first orientation quaternion ( 122 ) and the second orientation quaternion ( 124 ) are orthogonal to each other.
6. Method ( 110) according to any one of claims 1 to 5, further comprising: Determining (210b) a third measurement quaternion (216) based on gyroscope data (116) ,P98193 49 where the gyroscope data ( 116) represent a rate of change of an angular position of the body over time; Determine (230b) a third orientation quaternion (126) based on the third measurement quaternion (216) and on a previous resultant orientation quaternion (130-1); and perform (260b) a linear combination of the third orientation quaternion (126) with the field quaternion (252) to obtain the resultant orientation quaternion (130).
7. Method ( 110) according to claim 6, wherein the third orientation quaternion ( 126) is a product of the previous resulting orientation quaternion ( 130-1 ) with the third measurement quaternion ( 126), wherein the third measurement quaternion (216) has a vector as a vector component which has gyroscope values, where the gyroscope values are representative of the rate of change of the angular position of the body over time along three orthogonal axes.
8. Method ( 110) according to any one of claims 1 to 7, further comprising: Receiving measurement data ( 162, 164, 166) from a sensor arrangement ( 150 ); and Using the received measurement data (162, 164, 166) as acceleration data (112) and / or as magnetometer data (114) for orientation determination, if the plausibility of the received measurement data (162, 164, 166) satisfies a plausibility criterion; or deriving the acceleration data (112) and / or the magnetometer data (114) for orientation determination based on the received measurement data (162, 164, 166) and on a previous resulting orientation quaternion (130-1), if the plausibility P98193 50 the received measurement data ( 162 , 164 , 166 ) do not meet the plausibility criterion .
9. Method ( 110 ) according to claim 8, further comprising: Using the received measurement data (162, 164, 166) as gyroscope data (116) for orientation determination if the plausibility of the received measurement data (162, 164, 166) satisfies the plausibility criterion; or deriving the gyroscope data (116) for orientation determination based on the received measurement data (162, 164, 166) and on the previous resulting orientation quaternion (130-1) if the plausibility of the received measurement data (162, 164, 166) does not satisfy the plausibility criterion.
10. Method according to claim 8 or 9 , where the previous resulting orientation quaternion ( 130- 1 ) was determined in an immediately preceding clock cycle .
11. Method ( 110 ) according to any one of claims 1 to 10 , wherein the body has a sensor arrangement ( 150 ) which has: a first sensor ( 152 ) set up to generate acceleration measurement data ( 162 ) , a second sensor ( 154 ) set up to generate magnetometer measurement data ( 164 ), and a third sensor ( 156 ) set up to generate gyroscope measurement data ( 166 ).
12. Method ( 110 ) according to claim 11 , wherein the body is the sensor arrangement ( 150 ), or wherein the body is a movable object on which the sensor arrangement ( 150 ) is arranged .
13. Method ( 110 ) according to any one of claims 1 to 12 , further comprising: P98193 51 Generating a control signal to control the movement of an object based on the determined orientation of the body.
14. Method ( 110) according to claim 13, where the object is a physical object that can be moved in one or more spatial directions; or where the object is a digital object that can be moved in a digital environment.
15. Device (100) for data processing, comprising a processor (102) which is configured to perform the method (110) according to any one of claims 1 to 14.
16. Computer program comprising instructions which, when the program is executed by a computer, cause it to execute the method ( 110) according to any one of claims 1 to 14.
17. Computer-readable storage medium comprising instructions which, when executed by a computer, cause it to execute the method ( 110) according to any one of claims 1 to 14.