# Elbow Joint Angle Estimation Using a Low-Cost and Low-Power Single Inertial Device for Daily Home-Based Self-Rehabilitation

Manon Fourniol, Rémy Vauché, Guillaume Rao, Eric Watelain, Edith Kussener

► To cite this version:

Manon Fourniol, Rémy Vauché, Guillaume Rao, Eric Watelain, Edith Kussener. Elbow Joint Angle Estimation Using a Low-Cost and Low-Power Single Inertial Device for Daily Home-Based Self-Rehabilitation. Journal of Low Power Electronics and Applications, 2025, 15 (2), pp.33. 10.3390/jl- pea15020033. hal-05529043

HAL Id: hal-05529043

https://hal.science/hal-05529043v1

Submitted on 26 Feb 2026

HAL is a multi-disciplinary open access
archive for the deposit and dissemination of sci-
entific research documents, whether they are pub-
lished or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.

L'archive ouverte pluridisciplinaire HAL, est
destinée au dépôt et à la diffusion de documents
scientifiques de niveau recherche, publiés ou non,
émanant des établissements d'enseignement et de
recherche français ou étrangers, des laboratoires
publics ou privés.

<figure><img src="image_1.png" /></figure>

Distributed under a Creative Commons CC BY 4.0 - Attribution - International License
Article

# Elbow-Joint Angle Estimation Using a Low-Cost and Low-Power Single Inertial Device for Daily Home-Based Self-Rehabilitation

Manon Fourniol<fnref n="1" /> ID, Rémy Vauché<fnref n="1" />,*, ID, Guillaume Rao<fnref n="2" /> ID, Eric Watelain<fnref n="3" /> ID and Edith Kussener<fnref n="1" /> ID

**Abstract:** In the context of aging populations, it has become necessary to develop new methods and devices for the daily home-based self-rehabilitation of elderly people. To this end, this paper proposes and evaluates the use of an easy-to-use single battery-powered device including a 3D accelerometer and a 3D gyroscope where light algorithms, such as the complementary filter and the Kalman filter, were implemented to estimate the elbow-joint angle. During experiments, a robotic arm and a human arm were used to obtain an error interval for each tested algorithm; the robotic arm allows for reproducible movements and reproducible results, which allows us to verify independently the impact of parameters such as the sensor movement speed on algorithm precision. Experimental results show that the algorithm using only accelerometer data is one of the most relevant since it allows us to obtain a Root Mean Square Error between 1.83° and 5.52° at a sensor data rate of 100 Hz, which is similar to the results obtained with the tested data fusion algorithms. Nevertheless, it has lower power consumption since it requires only 58 cycles when using an ARM Cortex-M4 processor (which is lower than other tested data fusion algorithms by a factor of at least two) and it does not necessitate the additional sensor required by other tested data fusion algorithms (such as a gyroscope or a magnetometer). The algorithm using only accelerometer data also seems to be the algorithm with the lowest power consumption and should also be preferred. Moreover, its power consumption can be reduced by more than the error increase when reducing the sensor output data rate. In this work, a data rate reduction from 100 Hz to 10 Hz increased the RMSE by a factor of 1.8 but could reduce the power consumption associated with the sensor and the algorithm computing by a factor of 10. Finally, experimental results show that, the higher the sensor motion speed, the higher the error obtained with only accelerometer data. Nevertheless, the algorithm using only accelerometer data remains well-suited for rehabilitation exercises or mobility evaluation since sensor movement speed is also moderate.

**Keywords:** daily home-based autonomous rehabilitation; single inertial device; joint angle estimation; embedded processing; sensor output data rate; accelerometer; gyroscope; drift-corrected gyroscope; complementary filter; Kalman filter

<figure><img src="image_2.png" /></figure>

check for
updates

Academic Editor: Firstname Lastname

Received:

Revised:

Accepted:

Published:

**Citation:** Fourniol, F.; Vauché, R.; Rao, G.; Watelain, E.; Kussener, E. Elbow-Joint Angle Estimation Using a Low-Cost and Low-Power Single Inertial Device for Daily Home-Based Self-Rehabilitation. *J. Low Power Electron.* **2025**, *1*, 0.
https://doi.org/

**Copyright:** © 2025 by the authors.
Licensee MDPI, Basel, Switzerland.
This article is an open access article
distributed under the terms and
conditions of the Creative Commons
Attribution (CC BY) license
(https://creativecommons.org/
licenses/by/4.0/).

## 1. Introduction

In most of countries of the Organisation for Economic Co-operation and Development (OECD), an aging population has been observed for many years, and this phenomenon continues to increase. In 2021, according to statistics from OECD published in 2023 [1], 18 % of the OECD population was at least 65 years old and 4.8 % was at least 80 years

<footnote n="1">¹ Aix Marseille Univ, Université de Toulon, CNRS, IM2NP, Marseille, 13453, France; fourniolmanon@gmail.com (M.F.); edith.kussener@im2np.fr (E.K.)</footnote>

<footnote n="2">² Aix-Marseille Univ, CNRS, ISM, Marseille, 13288, France; guillaume.rao@univ-amu.fr</footnote>

<footnote n="3">³ Université de Toulon, J-AP2S, Toulon, 83041, France; eric.watelain@univ-tln.fr</footnote>

<footnote>* Correspondence: remy.vauche@univ-amu.fr</footnote>
old. According to OECD projections for 2050, 27 % of the OECD population will be at least 65 years old and 9.8 % will be 80 years old or older. This proportion is expected to be especially high in Korea, Japan, Italy, Greece, and Portugal, where more than a third of the population will be greater than 65 (and 10% greater than 80) years old by 2050.

Population aging is accompanied by an increase in healthcare costs due to the increased need for medical care and specialized infrastructure for elderly care. Thus, it is necessary to increase the autonomy of elderly persons so that they can receive their daily care at home [2]. This implies an evolution of medical devices and especially their miniaturization to enable easy home use. Research has also been conducted on the design of biomedical signal acquisition devices that can be used at home, such as the electrocardiogram (ECG), which reflects the electrical activity of the heart [3], or the photoplethysmogram (PPG), which allows one to deduce the heart rate and the blood oxygen level [4]. Other works have also been carried out to prevent the risk of falling when walking in everyday life, such as a three-axis accelerometer placed on the thorax [5] or the equipping of a wheelchair with sensors and cameras to detect unusual events and prevent possible falls or accidents [6].

In this context, the rehabilitation of people must evolve to offer the possibility of carrying out daily exercises at home in complete autonomy while following the evolution of their mobility. This has become possible due to the miniaturization of low-cost embedded systems, allowing movement tracking, and providing user feedback in addition to appropriate medical monitoring. Many systems developed for rehabilitation consist in monitoring the movement of a person. From the literature, these systems mainly use methods based on inertial sensors [7–10]. However, they can also be based on the measurement of surface electromyography (sEMG) signals [11–14]. Unfortunately, these are less integrated and require more power-consuming electronic front-ends compared to inertial sensors, in addition to requiring heavy algorithms such as artificial neural networks (ANNs). The methods based on inertial sensors, which are usually composed of a three-axis accelerometer and a three-axis gyroscope, use at least two devices fixed to the human body or a single device coupled with a mechanical solution, such as in [15], which uses a mechanical system based on a potentiometer to measure the movements of the patient’s elbow. These research works have led to marketable solutions such as the one proposed by Xsens [16], which embeds a three-axis magnetometer in each device in addition to a three-axis accelerometer and a three-axis gyroscope. This has begun to be considered for rehabilitation, even though it was initially developed for motion capture, entertainment, sports, and machine control.

The purpose of these devices is to precisely know the joint angle between two limbs, for example, the angle of the elbow or the absolute orientation of a limb. However, accelerometer data have an important noise and bias that can change over time whereas gyroscope data have an important bias. Magnetometers can be used with inertial sensors too but are sensitive to ambient magnetic field. Therefore, these sensors need to be calibrated and their data must be fused to compensate their error and to obtain a relevant assessment of the targeted angle or absolute orientation. For this, specific algorithms can be used such as the complementary filter (CF) or the Kalman filter (KF).

However, the use of a specific filter does not guarantee a relevant estimation. Indeed, among the examples given here concerning the elbow angle, [17] studies the kinematics of the whole body using several sensors and keeps a maximum Root Mean Square Error (RMSE) of 5° using a KF. Another example is [18] where an RMSE higher than 20° is obtained despite calibration and the use of a KF.

Nevertheless, better results have also been obtained. In [19], a KF is used with a specific static calibration method which allows the authors to reach an RMSE of 2.7°. Reference [20] obtains an RMSE of 2.62° using a KF too. In [21], the dimensions of people’s bodies are measured before proceeding to experiments, which allows the authors to obtain an RMSE
of 2.4°. Moreover, it should be noted that the RMSE value does not foresee the correlation of the estimated angles. Indeed, it generally stays high when using a KF even in the case of high RMSE (in [17], correlation is higher than 0.95 for an RMSE higher than 20°). Finally, [22], which studies the knee joint angle during walk using two magneto-inertial devices (and also include a magnetometer in addition to an accelerometer and a gyroscope), obtains a RMSE between 0.5° and 3° in addition to a correlation between 0.97 and 0.99.

The accuracy of a CF is generally close to the accuracy of a KF. [23], thanks to its particular implementation of the CF, and obtains an RMSE between 1.8° and 2.16° for all experiment sessions. [24], which studied simultaneously the bilateral knee joint angles using four inertial devices, get a RMSE between 1.62° and 3.30°.

Finally, in the context of daily home-based self-rehabilitation, the patient must execute movements without the help of other people. It is also necessary to provide a solution easy to set up, simple to use, and nor constraining to maintain (especially devices battery charging). In addition, it is necessary that the device be minimally intrusive, and inexpensive but accurate enough to obtain relevant data. Thus, small and low-cost sensors, such as Micro-ElectroMechanical Systems (MEMS), which can be integrated in compact devices, must be preferred. Moreover, the solution must be low power enough to avoid that the patient be frequently disturbed by battery issues during exercises. Finally, the number of devices fixed to the human body must also be as low as possible to offer the most seamless user experience.

Thus, an ideal device for joints rehabilitation would be composed of a single band-type device, with a limited number of sensors to limit the power consumption and the cost. This device should be placed on a limb without necessitating a precise positioning thanks to a simple attachment system such as Velcro straps. Moreover, it could communicate for instance via Bluetooth with the patient's cell phone, or with a dedicated smart device to provide a feedback to the user. The smart device would also give instructions to the patient so that they can correct them movements, follow simple and adapted exercises, and visualize the evolution of the limb mobility. In addition, the smart device should allow a healthcare professional to follow the patient's progress by securely transmitting the data onto the cloud. Finally, the sensors calibration process must be as simple as possible.

The work presented in this paper also aims at quantifying the orientation error that can be obtained, with a 3-axis accelerometer and/or a 3-axis gyroscope, and light algorithms embedded in a single device, during rehabilitation movements such as elbow flexion/extension as illustrated in Figure 1. In order to only evaluate the impact on the precision of angular speed and sensor placement (which can be linked to sensor movement speed), algorithms are firstly evaluated with a robotic arm able to move in a reproducible manner. Next, they are evaluated with a human arm to determine achievable performances for real cases. Finally, the sensor type, the number of arithmetic operations required by each algorithm and the sensor data rate are particularly investigated since the rehabilitation device power consumption highly depends of them.

Thus, the aim of this work is to identify the most relevant sensors and algorithms, in terms of precision and power consumption, in the context of the limbs rehabilitation and the evaluation of their mobility. To allow it, Section 2 presents the device which has been fixed to an arm during experiments and the hardware it includes such as the sensor. This is followed by a presentation of the kinematics associated to the elbow angle estimation, and the algorithms tested in this paper for its estimation from accelerometer and gyroscope data. The outcome metrics and the tested configurations are also presented. Next, results are presented in Section 3 and discussed in Section 4. The discussions notably include the algorithm performances compared to the number of required arithmetic operations, but
also, the sensor data rate, the angular speed during motions, and the sensor-joint distance (and also the sensor movement speed). Finally, results are compared with other works.

<figure><img src="image_3.png" /><figcaption>**Figure 1.** Description of human arm flexion/extension movements: (a) unfolded arm (elbow angle of about 180°); (b) arm with an elbow angle of 90°; (c) arm folded to its maximum bend (elbow angle about 30°).</figcaption></figure>

## 2. Materials and Methods

The experiments have been conducted using the SensorTile development kit (STDK) from STMicroelectronics shown in Figure 2. It includes the SensorTile reference design board (STRDB) which mainly embeds the Bluetooth Low Energy (BLE) network processor BlueNRG-MS from STMicroelectronics, the ARM Cortex-M4 32-bit microcontroller STM32L476, the iNEMO inertial module LSM6DSL including a 3D gyroscope, and the ultra-compact high performance module LSM303AGR including an ultra-low power 3D accelerometer. The STDK also includes the SensorTile cradle board (STCB) on which the STRBD has been soldered. The STCB board allows the STRBD to be supplied by a battery provided in the STDK in addition to battery recharge through a micro USB connector. Moreover, the STDK includes a plastic case where the STRBD, the STCB and the battery were mounted to obtain the inertial device used during experiments. Finally, a Velcro bandstrip were added to fix the device to an arm.

<figure><img src="image_4.png" /><figcaption>**Figure 2.** SensorTile development kit used during experiments : (a) the SensorTile reference design board embedding a BLE module, an ARM Cortex-M4 microcontroller, and inertial sensors; (b) the SensorTile cradle board for programming and battery supply of the SensorTile reference design board; (c) a 100 mAh LiPO battery; (d) the SensorTile boards and the battery in the plastic box fixed to an arm using Velcro during experiments.</figcaption></figure>

### 2.1. Kinematics

The determination of the elbow joint angle $\theta(t)$ can be done with help of Figure 3 where the arm is represented by a blue thick line. In this figure, the elbow joint is placed at the coordinates (0,0,0) of the XYZ coordinate system and the upper arm is considered parallel to the ground (which is true when elbow rehabilitation exercises are done on a table). It is also assumed that the elbow introduces a Y-axis pin joint between the forearm and the upper arm. Thus, possible forearm movements are only rotations around Y axis and so are limited to the XZ plane.
<figure><img src="image_5.png" /><figcaption>Figure 3. Kinematic diagram for the elbow joint angle estimation assuming the upper arm in the XY plane parallel to the ground: (a) XZ plane diagram when part of A<sub>Z1</sub> related to gravity is negative; (b) XZ plane diagram when part of A<sub>Z1</sub> related to gravity is positive; (c) YZ plane diagram.</figcaption></figure>

2.1.1. Accelerometer

During the experiments proposed here, the SensorTile inertial device is fixed to the
forearm at a distance D of the elbow. It is equally fixed to the coordinate system formed
by the X1, Y1, and Z1 axes. For these conditions and assuming that the part of the Z1
coordinate of the sensor acceleration related to motions is negligible compared to the one
due to gravity (stationary sensor or subjected to a slow enough movement), the estimate
$\bar{\theta}_A(t)$ of elbow joint angle from accelerometer data is given by:

$$
\bar{\theta}_A(t) = \frac{\pi}{2} + \operatorname{sgn}[A_{Z1}(t)] \cdot \bar{\theta}_{X1Z,A}(t) \quad (1)
$$

where $A_{Z1}(t)$ is the acceleration measured on Z1 axis, $\bar{\theta}_{X1Z,A}(t)$ is estimate of the angle between X1 and Z axis using accelerometer data, and sgn() is the sign function. For a discrete time system such as a system built around a microcontroller, this equation becomes:

$$
\bar{\theta}_A(n) = \frac{\pi}{2} + \operatorname{sgn}[A_{Z1}(n)] \cdot \bar{\theta}_{X1Z,A}(n) \quad (2)
$$

with *n* the discrete time variable.

According to Figure 3, the angle $\theta_{X1Z}$ is an image of the sensor orientation with respect to the gravitational acceleration vector **g**. Thus, $\bar{\theta}_{X1Z,A}(n)$, which is the estimate of $\theta_{X1Z}(n)$ from accelerometer data, can be computed as follows:

$$
\bar{\theta}_{X1Z,A}(n) = \arctan\left[\frac{A_{Y1Z1}(n)}{A_{X1}(n)}\right] = \arctan\left[\frac{\sqrt{A_{Y1}^2(n) + A_{Z1}^2(n)}}{A_{X1}(n)}\right] \quad (3)
$$

where $A_{X1}(n)$, $A_{Y1}(n)$, and $A_{Z1}(n)$ are the acceleration data provided by the SensorTile 3-axis accelerometer (filtered with a 2 Hz low-pass filter), and $A_{Y1Z1}(n)$ is the modulus of the measured acceleration vector projected in the Y1Z1 plane (this allows to take into account a rotation around the X1 axis of the sensor due for instance to its misplacement as visible in Figure 3c [25]). The estimate of $\theta(n)$ from accelerometer data only can also be obtained using Equations (2) and (3).
### 2.1.2. Gyroscope

Assuming here that the arm relative SensorTile orientation implies Y axis and Y1 axis are collinear, the angle $\theta$ can be estimated as follows:

$$ \bar{\theta}_G(t) = \int_0^t \dot{\theta}_{Y1}(\tau) d\tau \quad (4) $$

where $\dot{\theta}_{Y1}(t)$ is the angular velocity around the X1 axis measured by the SensorTile 3-axis gyroscope and filtered with a 2 Hz low-pass filter. This equation can be written in discrete time using the trapezoidal rule as follows:

$$ \bar{\theta}_G(n) = \frac{\dot{\theta}_{Y1}(n) + \dot{\theta}_{Y1}(n-1)}{2F_S} + \bar{\theta}_G(n-1) \quad (5) $$

where $F_S$ is the output data rate of the system. To initialize $\bar{\theta}_G(n)$, it is possible to use the estimate obtained from the accelerometer data when there is no movement or to impose a starting position (e.g., the arm is fully extended before to begin the rehabilitation exercise).

### 2.2. Data Processing

In addition of these two estimations, three other light estimations algorithms were been considered in this work: a basic Gyroscope Bias Correction Algorithm (CG), a Complementary Filter (CF), and a Kalman Filter (KF).

#### 2.2.1. Gyroscope Bias Correction Algorithm

The main issue with gyroscope data is their bias. For example, the angular velocity around the Y1 axis measured by a gyroscope can basically be written as follows:

$$ \dot{\theta}_{Y1}(n) = \dot{\Theta}_{Y1}(n) + \dot{\epsilon}_{Y1}(n) \quad (6) $$

where $\dot{\Theta}_{Y1}(n)$ is the real angular velocity around the Y1 axis and $\dot{\epsilon}_{Y1}(n)$ is the gyroscope angular velocity offset associated to the Y1 axis.

However, gyroscope angular velocity offsets are sensitive to several factors such as the speed and the direction of movement. Nevertheless, this offset can be considered constant in the context of rehabilitation since rehabilitation movements are generally followed by its opposite movement and they are not done with a chaotic speed. In this case, $\bar{\theta}_G(n)$ is equal to:

$$ \bar{\theta}_G(n) = \frac{\dot{\Theta}_{Y1}(n) + \dot{\Theta}_{Y1}(n-1)}{2F_S} + \bar{\theta}_G(n-1) + \frac{\dot{\epsilon}_{Y1}(n) + \dot{\epsilon}_{Y1}(n-1)}{2F_S} \quad (7) $$

and can be written as follows:

$$ \bar{\theta}_G(n) = \frac{\dot{\Theta}_{Y1}(n) + \dot{\Theta}_{Y1}(n-1)}{2F_S} + \bar{\theta}_G(n-1) + \frac{\dot{\epsilon}_{Y1}}{F_S} \quad (8) $$

since $\dot{\epsilon}_{Y1}(n)$ can be considered equal to a constant $\dot{\epsilon}_{Y1}$. For this reason, the estimate $\bar{\theta}_{CG}(n)$ of $\theta(n)$, when the Gyroscope Bias Correction Algorithm (GBCA) is used, is computed as follows:

$$ \bar{\theta}_{CG}(n) = \bar{\theta}_{G}(n) - \frac{\dot{\epsilon}_{Y1}}{F_S} \quad (9) $$

In this paper, the parameter $\dot{\epsilon}_{Y1}$ was optimized to obtain the best results.
### 2.2.2. Complementary Filter

The complementary filter (CF) is a simple filter which enables an estimation from several estimations using a weighted arithmetic mean. The estimate $\bar{\theta}_{CF}$ of $\theta$ (when the complementary filter is considered) is computed here from the estimate $\bar{\theta}_A$ (obtained with accelerometer data) and the estimate $\bar{\theta}_{CG}$ (obtained with gyroscope data including a bias correction). It can also be written as follows:

$$ \bar{\theta}_{CF} = \alpha_{CF} \cdot \bar{\theta}_{CG}(n) + (1 - \alpha_{CF}) \cdot \bar{\theta}_{A}(n) \quad (10) $$

where the corrected gyroscope weight $\alpha_{CF}$ is a real number between 0 and 1. In this paper, the parameter $\alpha_{CF}$ was optimized to obtain the best results.

### 2.2.3. Kalman Filter

The Kalman filter (KF) is an implementation of the Bayes filter, which assumes that the treated problem is in accordance with the Markov rule (the future evolution of a Markov chain depends on the past only through the present state). It is therefore a loop including a prediction step followed by a correction step which can be written as shown in Figure 4.

**Start of the loop:**

**Prediction step:**

$$ \bar{\mu}_n = A_n \mu_{n-1} + B_n u_n \\ \bar{\Sigma}_n = A_n \Sigma_{n-1} A_n^T + Q_n $$

**Correction step:**

$$ K_n = \bar{\Sigma}_n C_n^T (C_n \bar{\Sigma}_n C_n^T + R_n)^{-1} \\ \mu_n = \bar{\mu}_n + K_n (z_n - C_n \bar{\mu}_n) \\ \Sigma_n = \bar{\Sigma}_n (I - K_n C_n) $$

**Return $\mu_n$ and $\Sigma_n$**

**End of the loop**

<caption>Figure 4. Kalman filter algorithm.</caption>

For the prediction step, $\bar{\mu}_n \in \mathbb{R}^p$ with $p \in \mathbb{N}^*$ is the predicted system state vector at the discrete time $n$, $\mu_{n-1} \in \mathbb{R}^p$ with $p \in \mathbb{N}^*$ is the corrected system state vector at the discrete time $n-1$, and $u_n \in \mathbb{R}^q$ with $q \in \mathbb{N}^*$ is the control vector at the discrete time $n$. $A_n \in \mathbb{R}^{p \times p}$ (resp. $B_n \in \mathbb{R}^{p \times q}$) links the previous corrected state $\mu_{n-1}$ (resp. the command $u_n$) to the current predicted state $\bar{\mu}_n$. In addition, $\bar{\Sigma}_n \in \mathbb{R}^{p \times p}$ is the current predicted covariance error, $\Sigma_{n-1} \in \mathbb{R}^{p \times p}$ is the previous corrected covariance error, and $Q_n \in \mathbb{R}^{p \times p}$ is the current covariance of the process noise. Finally, $A_n^T$ is the transpose of $A_n$.

For the correction step, $K_n \in \mathbb{R}^{p \times p}$ is the optimal Kalman gain, $C_n \in \mathbb{R}^{p \times p}$ is the measurement model, $C_n^T$ is the transpose of $C_n$, $R_n \in \mathbb{R}^{p \times p}$ is the covariance matrix of the measurement noise, and $z_n$ is the measurement at the discrete time $n$. A more advanced description of this algorithm has been presented in [26].

In this work, the vectors are uni-dimensional to lighten the Kalman filter as much as possible ($p = q = 1$). In addition, gyroscope data are used in the prediction step as the control vector $u_n$ and accelerometer data are used in the correction step as measurement vector $z_n$. This allows advantages of the both sensors to be combined (angles extracted from gyroscope data have a drift but are low noise and angles extracted from accelerometer data are noisy but have a low drift). The vectors $u_n$ and $z_n$ are also defined as follows:

$$ \mathbf{u}_n = [ \dot{\theta}_{Y1}(n) ] \quad \text{and} \quad \mathbf{z}_n = [ \bar{\theta}_A(n) ] \quad (11) $$

Moreover, since data from the 3-axis gyroscope and the 3-axis accelerometer are considered independent between each other and between sensor axes, and since gyroscope
data must be integrated to translate the measured angular velocity in angle, the transition matrices $\mathbf{A}_n, \mathbf{B}_n$ and $\mathbf{C}_n$ used in this work are:

$$ \mathbf{A}_n = \mathbf{I} ; \quad \mathbf{B}_n = \left[ \frac{1}{F_S} \right] \quad \text{and} \quad \mathbf{C}_n = \mathbf{I} \qquad (12) $$

where $\mathbf{I}$ is the identity matrix.

In addition, the sensor noises are considered Gaussian and uncorrelated to each other in this work. Thus, the covariance of the process noise $\mathbf{Q}_n$ and the covariance matrix of the measurement noise $\mathbf{R}_n$ were defined as follows:

$$ \mathbf{Q}_n = \left[ \frac{\sigma_{\theta_{Y1}}^2}{F_S} \right] \qquad (13) $$

$$ \mathbf{R}_n = \left[ \frac{\sigma_{\theta_A}^2}{F_S} \right] \qquad (14) $$

where $\sigma_{\theta_{Y1}}^2$ is the variance of the noise associated to the angular velocity measured by the gyroscope around the Y1 axis, and $\sigma_{\theta_A}^2$ is the variance of the noise associated to the angle extracted from accelerometer data. In this paper, the both parameters were optimized to obtain the best results.

Finally, the corrected state $\mu_t$ is also of the form:

$$ \mu_n = \left[ \bar{\theta}_{KF}(n) \right] \qquad (15) $$

where $\bar{\theta}_{KF}(n)$ is the estimate of $\theta$ obtained with the help of the Kalman filter.

## 2.3. Experiments

To evaluate the best possible performances in addition to the impact of angular speed and sensor placement in a reproducible manner for each algorithm, algorithms are firstly evaluated with a robotic arm. Next, they are evaluated with a human arm to determine achievable performances during real rehabilitation exercises.

Thus, the robotic arm was implemented to mimick the elbow flexion-extension movement with precise control of the movement. This robotic arm is shown in Figure 5. Concerning the movements done by the human arm, they consist in flexion-extension movements of the arm in the sagittal plane with the starting position shown in Figure 6.

As shown in Figures 5 and 6, a single SensorTile device, embedding an accelerometer, a gyroscope, a Bluetooth module, and a battery as described previously, was placed on the robotic arm and on the human arm. Data were collected on a computer using a Bluetooth at a rate of about 100 Hz and the five estimates of the elbow joint angle $\theta(n)$ have been computed with the help of Matlab. Finally, the results were compared with the very accurate estimation obtained with an infrared motion capture system which requires optical markers.

<figure><img src="image_6.png" /><figcaption>Figure 5. Movements acquisition of the robotic arm using optical markers and the tested inertial device.</figcaption></figure>
<figure><img src="image_7.png" /><figcaption>**Figure 6.** Movements acquisition of the human arm using an infrared camera system, the required optical markers and the tested inertial device.</figcaption></figure>

## 2.4. Comparison Metrics

Three metrics are generally used to evaluate an angle estimation algorithm: (1) the Root Mean Square Error (RMSE), (2) the Standard Deviation (STD) of the error, and (3) the correlation with the real angle, the error being computed using the real angle as reference. This reference angle must also be accurately estimated.

In this work, the reference elbow joint angle $\theta_{MCS}(n)$ was determined using a high precision motion capture system from Qualisys Motion Capture System which has an output data rate of 100 Hz. For this reason, optical markers were placed on the robotic arm and the human arm as shown in Figures 5 and 6. The angle error induced by the motion capture system was evaluated to less than 0.1° when there is no movement and less than 0.5° during movements.

Thus, after synchronization of the data from the SensorTile and the motion capture system, the error $\epsilon_{\bar{\theta}}(n)$ induced by each tested light algorithm was estimated for each discrete time $n$ as follows:

$$ \epsilon_{\bar{\theta}}(n) = \bar{\theta}(n) - \theta_{MCS}(n) \qquad (16) $$

where $\bar{\theta}(n)$ is replaced by the estimate of the elbow joint angle $\bar{\theta}_A(n), \bar{\theta}_G(n), \bar{\theta}_{CG}(n), \bar{\theta}_{CF}(n)$, or $\bar{\theta}_{KF}(n)$ according to the studied algorithms.

Considering a number of sample $N$, the RMSE and the STD of the error was determined for each acquisition as it is usually done in literature using:

$$ \text{RMSE} = \sqrt{\frac{1}{N} \sum_{n=1}^{N} [\epsilon_{\bar{\theta}}(n)]^2} \qquad (17) $$

and:

$$ \text{STD} = \sqrt{\frac{1}{N} \sum_{n=1}^{N} [\epsilon_{\bar{\theta}}(n) - \langle \epsilon_{\bar{\theta}}(n) \rangle]^2} \qquad (18) $$

where $\langle \epsilon_{\bar{\theta}}(n) \rangle$ is the mean error computed as follows:

$$ \langle \epsilon_{\bar{\theta}}(n) \rangle = \frac{1}{N} \sum_{n=1}^{N} [\epsilon_{\bar{\theta}}(n)]. \qquad (19) $$

Finally, the sample correlation coefficient $r$ between $\bar{\theta}(n)$ and $\theta_{MCS}(n)$ was computed as follows:
$$r_{\bar{\theta}, \theta_{\text{MCS}}} = \frac{\sum_{n=1}^{N} [\bar{\theta}(n) - \langle \bar{\theta}(n) \rangle] [\theta_{\text{MCS}}(n) - \langle \theta_{\text{MCS}}(n) \rangle]}{\sqrt{\sum_{n=1}^{N} [\bar{\theta}(n) - \langle \bar{\theta}(n) \rangle]^2 \sum_{n=1}^{N} [\theta_{\text{MCS}}(n) - \langle \theta_{\text{MCS}}(n) \rangle]^2}} \quad (20)$$

where $\langle \theta_{\text{MCS}}(n) \rangle$ is the mean value of $\theta_{\text{MCS}}(n)$ computed as follows:

$$\langle \theta_{\text{MCS}}(n) \rangle = \frac{1}{N} \sum_{n=1}^{N} [\theta_{\text{MCS}}(n)] \quad (21)$$

and $\langle \bar{\theta}(n) \rangle$ is the mean value of $\bar{\theta}(n)$ computed as follows:

$$\langle \bar{\theta}(n) \rangle = \frac{1}{N} \sum_{n=1}^{N} [\bar{\theta}(n)]. \quad (22)$$

## 2.5. Analysed Parameters

As shown in Table 1, the five joint angle estimation methods were tested for 8 configurations: 5 for the robotic arm and 3 for the human arm. The various configurations for each arm were done to evaluate the impact on the accuracy of the average angular speed (during movements) and the distance between the sensor and the elbow joint. The tested angular speeds are about 30°/s, 60°/s, and 100°/s for the robotic arm and 80°/s, and 220°/s for the human arm. The tested sensor-joint are 19 cm, 11.5 cm, and 6 cm for the robotic arm and 21 cm and 11 cm for the human arm. Moreover, the angle span is 180° for the robotic arm but about 150° only for the human arm since human tissues and bones do not allow a full arm flexion. Finally, it should be noted that the configurations II and VI, are the closest to the targeted rehabilitation use case since they consider a medium speed (60–80°/s) and a sensor joint-distance of about 20 cm. Their results are also particularly discussed.

<table><caption>Table 1. Tested configurations.</caption><thead><tr><th>Configuration</th><th>Arm Type</th><th>Average Angular Speed During Motions (°/s)</th><th>Sensor-Joint Distance (cm)</th><th>Angle Span (°)</th></tr></thead><tbody><tr><td>I</td><td>Robotic</td><td>30.9</td><td>19</td><td>180</td></tr><tr><td>II</td><td>Robotic</td><td>61.3</td><td>19</td><td>180</td></tr><tr><td>III</td><td>Robotic</td><td>99.9</td><td>19</td><td>180</td></tr><tr><td>IV</td><td>Robotic</td><td>61.5</td><td>11.5</td><td>180</td></tr><tr><td>V</td><td>Robotic</td><td>61.3</td><td>6</td><td>180</td></tr><tr><td>VI</td><td>Human</td><td>83.3</td><td>21</td><td>150</td></tr><tr><td>VII</td><td>Human</td><td>222.6</td><td>21</td><td>150</td></tr><tr><td>VIII</td><td>Human</td><td>79.8</td><td>11</td><td>150</td></tr></tbody></table>

## 3. Results

The RMSE, the STD of the error, and the correlation obtained during experiments are given for each configuration in Tables 2–4, respectively. It appears directly that the use of gyroscope data without bias correction leads to the worst results in terms of RMSE or STD of the error. However, the correlation stays higher than 98 %. The relevance of the correlation in the literature for algorithms comparison should also be questioned.
<table><caption>**Table 2.** RMSE obtained for the 8 configuration with the 5 algorithms.</caption><thead><tr><th>Configuration</th><th>Accelero.<br>Only<br>(RMSE in °)</th><th>Gyroscope<br>Only<br>(RMSE in °)</th><th>Corrected<br>Gyroscope<br>(RMSE in °)</th><th>Complem.<br>Filter<br>(RMSE in °)</th><th>Kalman<br>Filter<br>(RMSE in °)</th></tr></thead><tbody><tr><td>I</td><td>1.63</td><td>17.0</td><td>3.29</td><td>1.60</td><td>1.62</td></tr><tr><td>II</td><td>1.83</td><td>16.0</td><td>3.24</td><td>1.69</td><td>1.80</td></tr><tr><td>III</td><td>2.54</td><td>13.4</td><td>3.16</td><td>1.99</td><td>2.52</td></tr><tr><td>IV</td><td>1.07</td><td>19.1</td><td>1.27</td><td>0.59</td><td>1.05</td></tr><tr><td>V</td><td>0.74</td><td>20.0</td><td>1.26</td><td>0.59</td><td>0.74</td></tr><tr><td>VI</td><td>5.52</td><td>15.0</td><td>5.62</td><td>5.20</td><td>5.20</td></tr><tr><td>VII</td><td>21.9</td><td>6.46</td><td>7.75</td><td>7.47</td><td>21.9</td></tr><tr><td>VIII</td><td>5.86</td><td>11.4</td><td>9.43</td><td>5.86</td><td>5.67</td></tr></tbody></table>

<table><caption>**Table 3.** STD of the error obtained for the 8 configuration with the 5 algorithms.</caption><thead><tr><th>Configuration</th><th>Accelero.<br>only<br>(STD in °)</th><th>Gyroscope<br>only<br>(STD in °)</th><th>Corrected<br>gyroscope<br>(STD in °)</th><th>Complem.<br>filter<br>(STD in °)</th><th>Kalman<br>filter<br>(STD in °)</th></tr></thead><tbody><tr><td>I</td><td>1.45</td><td>9.55</td><td>2.03</td><td>1.32</td><td>1.44</td></tr><tr><td>II</td><td>1.69</td><td>9.27</td><td>2.04</td><td>1.32</td><td>1.66</td></tr><tr><td>III</td><td>2.45</td><td>7.81</td><td>2.21</td><td>1.50</td><td>2.42</td></tr><tr><td>IV</td><td>1.06</td><td>9.83</td><td>0.90</td><td>0.51</td><td>1.04</td></tr><tr><td>V</td><td>0.74</td><td>10.34</td><td>0.92</td><td>0.50</td><td>0.73</td></tr><tr><td>VI</td><td>5.52</td><td>15.2</td><td>5.26</td><td>5.09</td><td>5.20</td></tr><tr><td>VII</td><td>20.7</td><td>6.06</td><td>5.67</td><td>5.11</td><td>20.7</td></tr><tr><td>VIII</td><td>5.30</td><td>8.42</td><td>3.54</td><td>5.21</td><td>5.40</td></tr></tbody></table>

<table><caption>**Table 4.** Correlation with the reference obtained for the 8 configuration with the 5 algorithms.</caption><thead><tr><th>Configuration</th><th>Accelero.<br>only<br>(Corr. in %)</th><th>Gyroscope<br>only<br>(Corr. in %)</th><th>Corrected<br>gyroscope<br>(Corr. in %)</th><th>Complem.<br>filter<br>(Corr. in %)</th><th>Kalman<br>filter<br>(Corr. in %)</th></tr></thead><tbody><tr><td>I</td><td>99.977</td><td>98.978</td><td>99.999</td><td>99.981</td><td>99.977</td></tr><tr><td>II</td><td>99.973</td><td>99.145</td><td>99.999</td><td>99.983</td><td>99.974</td></tr><tr><td>III</td><td>99.956</td><td>99.508</td><td>99.996</td><td>99.983</td><td>99.956</td></tr><tr><td>IV</td><td>99.993</td><td>99.067</td><td>99.999</td><td>99.997</td><td>99.993</td></tr><tr><td>V</td><td>99.996</td><td>99.032</td><td>99.999</td><td>99.998</td><td>99.996</td></tr><tr><td>VI</td><td>99.622</td><td>98.687</td><td>99.673</td><td>99.670</td><td>99.665</td></tr><tr><td>VII</td><td>96.946</td><td>99.647</td><td>99.719</td><td>99.686</td><td>96.938</td></tr><tr><td>VIII</td><td>99.659</td><td>98.873</td><td>99.802</td><td>99.668</td><td>99.643</td></tr></tbody></table>

An example of the angles estimation obtained for each algorithm in time domain are shown in Figure 7a (resp. Figure 7b) for the configuration II (resp. VI). The drift of $\bar{\theta}_G$ (estimate from gyroscope data without drift correction) can be seen on both figures and explains clearly the bad results in terms of RMSE or STD of the error. Nevertheless, except the drift, the $\bar{\theta}_G$ shape stays similar to the one of $\bar{\theta}_{MCS}$, which explains the good correlation.

Moreover, RMSE obtained with the human arm are as expected higher than the one obtained with the robotic arm. Indeed, the elbow position is not fixed during experiments with the human arm. Nevertheless, in the case of a rehabilitation exercise or mobility evaluation of the elbow joint, the elbow is generally put on a table which fixes the arm position. It can be deduced that results obtained during real rehabilitation exercises should be between the one obtained with the robotic arm and the one obtained with the human arm. Considering configurations II and VI, RMSE should be also between 1.69° and 5.62°.
Finally, as shown in Figure 7a (configuration II), movements of the robotic arm are very regular, as expected, compared with the ones of the human arm shown in Figure 7b (configuration VI). This regularity validates the use of the robotic arm to evaluate the impact of the average angular speed during motion and the sensor-joint distance without being affected by uncontrolled movements and also, in a reproducible manner.

<figure><img src="image_8.png" /><figcaption>**Figure 7.** Examples of estimated elbow-joint angle: (a) configuration II (robotic arm); (b) configuration VI (human arm).</figcaption></figure>

# 4. Discussion

## 4.1. *Algorithms Accuracy, Computing Cost and Power Consumption*

Results in terms of RMSE shown in Table 2 indicate that the algorithm using only accelerometer data, the complementary filter, and the Kalman filter lead to the best results and are very close (1.69–1.83° for configuration II and 5.20–5.52° for configuration VI). They are followed by the algorithm using bias corrected gyroscope data which can have a RMSE twice as high. Finally, as discussed previously, the least accurate algorithm is the one using gyroscope data without bias correction since it leads to an RMSE up to ten times higher compared to the most accurate algorithms.

However, the algorithm using only accelerometer data, the complementary filter, and the Kalman filter do not require the same type and the same number of arithmetic operations as shown in Table 5. Considering the number of cycles required by an ARM Cortex-M4 processor to compute the result of each elementary arithmetic operation shown in Table 6, the total number of cycles required for each method is given in Table 7 (an ARM Cortex-M4 processor is implemented in the STDK development kit used during experiments). Since the energy consumption of a processor designed in a CMOS technology is directly proportional to the number of elapsed cycles [27,28], the algorithm using only accelerometer data should lead to 1.6 to 2.1 times lower energy consumption compared to the complementary filter and the Kalman filter. It must also be preferred when the three algorithms have the same performances in terms of RMSE.

In addition to the energy consumption associated to estimate computing, sensor power consumption should be considered too. Indeed, a gyroscope usually has a power consumption higher than an accelerometer. For instance, considering an output data rate of about 50 Hz and low-power mode, the gyroscope of the LSM6DSL has a power consumption of 477 µW [29] whereas the LSM303AGR accelerometer power consumption is only 13.9 µW [30] (the LSM6DSL also has an accelerometer but consumes 45 µW for
the same conditions). Thus, the use of a gyroscope should be avoided for the targeted use case where only one low power and low cost battery supplied device is fixed to limb extremity since a gyroscope can have a power consumption at least 10 times higher than the accelerometer one.

An other way to reduce the power consumption is to the reduce the sensor output data rate. Indeed, the reduction of the output data rate allows to increase the time when the sensor is power-down. For instance, the LSM6DSL accelerometer has a power consumption of 8.1, 16.2, and 45 µW for an output data rate of 1.6, 12.5, and 52 Hz, respectively (the power consumption versus the output data rate increases linearly). About the LSM303AGR accelerometer, it has a power consumption in normal mode of 6.66, and 22.7 µW for an output data rate of 1, and 50 Hz, respectively.

For this reason, the impact of the output data rate on the RMSE was studied considering configurations II and VI for the algorithm using only accelerometer data. As shown in Figure 8, an RMSE of only 3.2° (resp. 8.5°) is obtained for configuration II (resp. VI) with an output data rate of 10 Hz whereas its value is 1.83° (resp. 5.52°) for an output data rate of 100 Hz. As expected, the lower the sample frequency is, the higher the RMSE is. Comparatively to the angle span, this leads to a relative error of 1.78 % (resp. 5.6 %) at 10 Hz and 1.02 % (resp. 3.68 %) at 100 Hz. Thus, a reduction of the data rate from 100 Hz to 10 Hz leads only to an error up to 1.8 higher but to a division of the sensor power consumption by 4.1 considering the LSM303AGR accelerometer in normal mode and 5.6 considering the LSM6DSL accelerometer in low-power mode. In addition, the reduction of the sensor data rate equally induces a division of the processor active power consumption by ten since there are ten times fewer angle estimates to compute. Thus, the sensor output data rate has a great impact on the power consumption. It should also be chosen according the maximum permissible RMSE to keep the sensor power consumption and the processor power consumption as low as possible.

<figure><img src="image_9.png" /><figcaption>**Figure 8.** RMSE obtained for configuration II and VI with the algorithm using only accelerometer data versus the sensor output data rate.</figcaption></figure>
<table><caption>**Table 5.** Number of elementary arithmetic operations for the 5 algorithms.</caption><thead><tr><th>Arithmetic Operation</th><th>Accelero. Only <sup>1</sup></th><th>Gyroscope Only <sup>2</sup></th><th>Corrected Gyroscope <sup>3</sup></th><th>Complem. Filter <sup>4</sup></th><th>Kalman Filter <sup>5</sup></th></tr></thead><tbody><tr><td>+</td><td>2</td><td>2</td><td>2</td><td>5</td><td>8</td></tr><tr><td>-</td><td>0</td><td>0</td><td>1</td><td>2</td><td>3</td></tr><tr><td>×</td><td>3</td><td>1</td><td>1</td><td>6</td><td>16</td></tr><tr><td>/</td><td>1</td><td>1</td><td>2</td><td>3</td><td>4</td></tr><tr><td>√</td><td>1</td><td>0</td><td>0</td><td>1</td><td>1</td></tr><tr><td>arctan</td><td>1</td><td>0</td><td>0</td><td>1</td><td>1</td></tr></tbody></table>

<table><caption>**Table 6.** Number of cycles required for each elementary arithmetic operation considering an ARM Cortex-M4 processor [31].</caption><thead><tr><th>Arithmetic Operation</th><th>Cycles Number</th></tr></thead><tbody><tr><td>+</td><td>1</td></tr><tr><td>-</td><td>1</td></tr><tr><td>×</td><td>1</td></tr><tr><td>/</td><td>14</td></tr><tr><td>√</td><td>14</td></tr><tr><td>arctan <sup>1</sup></td><td>25</td></tr></tbody></table>

<table><caption>**Table 7.** Total number of cycles for the 5 algorithms assuming an ARM Cortex-M4 processor.</caption><thead><tr><th>Algorithm</th><th>Accelero. Only</th><th>Gyroscope Only</th><th>Corrected Gyroscope</th><th>Complem. Filter</th><th>Kalman Filter</th></tr></thead><tbody><tr><td>Cycles number</td><td>58</td><td>17</td><td>32</td><td>94</td><td>122</td></tr></tbody></table>

## 4.2. Angular Speed and Sensor-Joint Distance

As indicated previously, the robotic arm allows to evaluate the impact of the angular speed and the impact of the distance between the sensor and the limb joint, both can be linked to the sensor motion speed. The results obtained with the relevant configurations are presented together in Table 8 (resp. Table 9) to highlight effects of the angular speed (resp. distance between the sensor and the joint).

From Table 8, it appears that the higher the angular speed is, the higher the RMSE obtained using only accelerometer data is. The use of a standalone accelerometer is also relevant only when exercises are not done with an excessive angular speed (it should be noted that the sensor movement speed is proportional to the angular speed). However, the opposite behavior can be seen when only gyroscope data are used without correction. Nevertheless, the use of the gyroscope bias correction allows to obtain approximately an RMSE independent to the angular speed. The angular speed should have only an impact on the gyroscope drift when motions are regular. However, the RMSE obtained with the gyroscope bias correction remains higher than the RMSE obtained using only accelerometer data.

Finally, according to Table 8, the longer the distance between the sensor and the joint is, the higher the RMSE obtained using only accelerometer data is. As previously, the opposite behavior can be seen when only gyroscope data are used without correction.

<footnote n="1">¹ From Equations (2) and (3). ² From Equation (5). ³ From Equations (5) and (9). ⁴ From Equations (2), (3), (5), (9) and (10). ⁵ From Equations (2), (3), (5) and algorithm shown in Figure 4.</footnote>

<footnote n="1">¹ The number of cycles required to compute the result of the arctangent function is supposed to be equal to the one of the CORDIC (COordinate Rotation DIgital Computer) co-processor developed by STMicroelectronics and integrated in STM32G4 series microcontrollers based on an ARM Cortex-M4 processor [32].</footnote>
Nevertheless, the gyroscope drift correction allows again, the stabilization of the RMSE. These observations confirm the ones made previously since the sensor movement speed is proportional to the distance between the sensor and the joint.

<table><caption>**Table 8.** RMSE obtained with the algorithm using only accelerometer data according to the average angular speed during motions.</caption><thead><tr><th>Configuration</th><th>Arm Type</th><th>Average Angular Speed During Motions (°/s)</th><th>Distance From Elbow Joint (cm)</th><th>Accelero. Only (RMSE in °)</th><th>Gyroscope Only (RMSE in °)</th><th>Corrected Gyroscope (RMSE in °)</th></tr></thead><tbody><tr><td>I</td><td>Robotic</td><td>30.9</td><td>19</td><td>1.63</td><td>17.0</td><td>3.29</td></tr><tr><td>II</td><td>Robotic</td><td>61.3</td><td>19</td><td>1.83</td><td>16.0</td><td>3.24</td></tr><tr><td>III</td><td>Robotic</td><td>99.9</td><td>19</td><td>2.54</td><td>13.4</td><td>3.16</td></tr></tbody></table>

<table><caption>**Table 9.** RMSE obtained with the algorithm using only accelerometer data according to the distance between the sensor and the joint.</caption><thead><tr><th>Configuration</th><th>Arm Type</th><th>Average Angular Speed During Motions (°/s)</th><th>Distance From Elbow Joint (cm)</th><th>Accelero. Only (RMSE in °)</th><th>Gyroscope Only (RMSE in °)</th><th>Corrected Gyroscope (RMSE in °)</th></tr></thead><tbody><tr><td>V</td><td>Robotic</td><td>61.3</td><td>6</td><td>0.74</td><td>20.0</td><td>1.26</td></tr><tr><td>IV</td><td>Robotic</td><td>61.5</td><td>11.5</td><td>1.07</td><td>19.1</td><td>1.27</td></tr><tr><td>II</td><td>Robotic</td><td>61.3</td><td>19</td><td>1.83</td><td>16.0</td><td>3.24</td></tr></tbody></table>

### 4.3. Comparison with Other Works

The results obtained in this paper using only accelerometer data can be compared with other works in Table 10 for a sensor data rate of 10 Hz and 100 Hz. However, only results for configuration II and VI were reported since their angular speeds and sensor-joint distances are close to a real rehabilitation or mobility evaluation exercise.

From Table 10, it can be seen that most papers use at least two types of sensors and that accelerometers are generally associated to gyroscopes. Nevertheless, the use of an additional magnetometer seems to be relevant since two of the three best references in terms of RMSE equally use this type of sensor [22,33].

According to Table 10, a large number of devices does not inevitably lead to better results. Indeed, the best results were obtained with two devices. Moreover, the RMSE obtained in this paper using only one device are comparable to the ones obtained with a higher number of devices considering a sensor data rate of 100 Hz.

Similarly, the most complex algorithms such as Artificial Neural Network (ANN) or Extended Kalman Filter (EKF) do not necessarily lead to the best results. For instance, only one of the three best references in terms of RMSE uses a Kalman filter [22] whereas at least one of the two others uses standard low-pass and high-pass filtering [34].

Finally, the RMSE values obtained in other work seem to follow the trend that the sensor data rate must be chosen according to the targeted precision. However, it should be noted that the third best results in terms of RMSE were obtained with a sensor data rate of only 20 Hz [33]. Nevertheless, results obtained in this paper with only accelerometer data and a sensor data rate of 10 Hz remain comparable with other works whereas it requires only one low-power accelerometer and a few number of processor cycles.
<table><caption>**Table 10.** Comparison table with other works.</caption><thead><tr><th>Config. or Reference</th><th>RMSE min/max (°)</th><th>STD min/max (°)</th><th>Correlation max/min (%)</th><th>Sensor <sup>1</sup>/ Algorithm <sup>2</sup></th><th>Devices Number</th><th>Studied Member</th><th>Angular Speed (°/s)</th><th>Angle Span (°)</th><th>Sensor Data Rate (Hz)</th></tr></thead><tbody><tr><td>II/VI</td><td>3.23/8.5</td><td>3.17/8.5</td><td>-</td><td>A/LPF</td><td>1</td><td>Arm</td><td>83.3</td><td>150</td><td>10</td></tr><tr><td>II/VI</td><td>1.83/5.52</td><td>1.69/5.52</td><td>99.9/99.6</td><td>A/LPF</td><td>1</td><td>Arm</td><td>83.3</td><td>150</td><td>100</td></tr><tr><td>[33]</td><td>0.87/1.37</td><td>0.83/1.24</td><td>-</td><td>AM/-</td><td>2</td><td>Arm</td><td>-</td><td>50</td><td>20</td></tr><tr><td>[21]</td><td>2.13</td><td>2.25</td><td>98</td><td>AG/KF</td><td>2</td><td>Arm</td><td>&lt; 80</td><td>90</td><td>25</td></tr><tr><td>[35]</td><td>1.36/3.33</td><td>-</td><td>97/87</td><td>AGM/-</td><td>2</td><td>Leg</td><td>-</td><td>50</td><td>100</td></tr><tr><td>[34]</td><td>0.63/2.92</td><td>-</td><td>-</td><td>AG/LPHP</td><td>2</td><td>Leg</td><td>-</td><td>70</td><td>100</td></tr><tr><td>[22]</td><td>0.5/3.0</td><td>-</td><td>99/97</td><td>AGM/KF</td><td>2</td><td>Leg</td><td>-</td><td>50</td><td>120</td></tr><tr><td>[36]</td><td>2.37/4.86</td><td>0.78/1.97</td><td>99</td><td>AG/CF</td><td>2</td><td>Leg</td><td>-</td><td>-</td><td>1500</td></tr><tr><td>[37]</td><td>4.37/6.45</td><td>-</td><td>-</td><td>G/EKF</td><td>4</td><td>Leg</td><td>-</td><td>-</td><td>50</td></tr><tr><td>[24]</td><td>1.62/3.30</td><td>-</td><td>-</td><td>AG/CF</td><td>4</td><td>Leg</td><td>≈ 180</td><td>80</td><td>60</td></tr><tr><td>[38]</td><td>3.89</td><td>-</td><td>98</td><td>AG/ANN</td><td>5</td><td>Leg</td><td>-</td><td>60</td><td>100</td></tr><tr><td>[39]</td><td>2.2/5.1</td><td>0.9/2.7</td><td>99/67</td><td>AG/ANN</td><td>5</td><td>Leg</td><td>-</td><td>-</td><td>100</td></tr></tbody></table>

## 5. Conclusions

In this paper, elbow joint angle estimation algorithms using a low-cost and low-power single inertial device for daily home-based self-rehabilitation were investigated. During experiments, a robotic arm and a human arm were used to obtain an error interval for each tested algorithm, the robotic arm allowing to have reproducible movements and also obtain reproducible results, which allows to verify the impact of parameters such as the sensor speed independently. Experiment results show that the algorithm using only accelerometer data, the complementary filter, and the Kalman filter lead to the best results which are very close in terms of RMSE. However, the complementary filter and the Kalman filter require an high number of computing cycles and also imply a higher power consumption. Moreover, the complementary filter and the Kalman filter require an additional sensor for data fusion (such as a gyroscope which can have a power consumption ten times higher than the accelerometer one), which increases the power consumption of both filters. Thus, the presented algorithm using only accelerometer data should be preferred to minimize power consumption.

Moreover, impact of the sensor output data rate was investigated. It appears that the sensor data rate can be reduced, thereby reducing power consumption more than the error is increased (a data rate reduction from 100 Hz to 10 Hz multiplied the RMSE obtained here by about 1.8 but can divide the power consumption associated to the sensor and the algorithm computing up to 10 times). However, experiment results show that the higher the sensor motion speed is, the higher the error obtained with only accelerometer data is. Nevertheless, the algorithm using only accelerometer data stays well-suited for rehabilitation exercises or mobility evaluation since sensor movement speed is also moderate.

Thus, at the time of the increasing complexity of algorithms (sensor fusion, neural networks, etc.) and the associated environmental cost, this result shows that simpler and less expensive solutions could be accurate enough to contribute to healthcare improvement. To go further, a miniature device containing only a BLE module, an accelerometer, and a battery needs to be designed. By using a state-of-the-art BLE module and accelerometer in terms of power consumption, the energy consumption, and therefore the autonomy of the designed device, could then be estimated and optimized. Then, clinical trials will have to be conducted on a significant number of patients to, on the one hand, validate the accuracy of the algorithm, and on the other hand, verify the ease of use of the device.

<footnote n="1">¹ Accelerometer (A), Gyroscope (G), and Magnetometer (M). ² Low-Pass Filter (LPF), Low-Pass & High-Pass filters (LPHP), Kalman Filter (KF), Complementary Filter (CF), Extended Kalman Filter (EKF), and Artificial Neural Network (ANN).</footnote>
**Author Contributions:** Conceptualization, M.F. and R.V.; methodology, M.F. and R.V.; software, M.F. and R.V.; validation, G.R. and E.W.; formal analysis, M.F. and R.V.; investigation, M.F., R.V., G.R. and E.W.; resources, G.R., E.W. and E.K.; data curation, R.V.; writing—original draft preparation, M.F. and R.V.; writing—review and editing, M.F., R.V., G.R., E.W. and E.K.; visualization, M.F. and R.V.; supervision, R.V. and E.K. All authors have read and agreed to the published version of the manuscript.

**Funding:** This research received no external funding.

**Data Availability Statement:** The raw data supporting the conclusions of this article will be made available by the authors on request.

**Conflicts of Interest:** The authors declare no conflict of interest.

## References

1. OECD. *Health at a Glance 2023: OECD Indicators*; OECD Publishing: Paris, France, 2023. https://doi.org/10.1787/7a7afb35-en.

2. Lee, S.I.; Adans-Dester, C.P.; O'Brien, A.T.; Vergara-Diaz, G.P.; Black-Schaffer, R.; Zafonte, R.; Dy, J.G.; Bonato, P. Predicting and Monitoring Upper-Limb Rehabilitation Outcomes Using Clinical and Wearable Sensor Data in Brain Injury Survivors. *IEEE Trans. Biomed. Eng.* **2021**, *68*, 1871–1881. https://doi.org/10.1109/TBME.2020.3027853.

3. Benjelloun, Z.; Vauche, R.; Rahajandraibe, W.; Bouchakour, R. Design of an energy detector for heartbeat localization in ECG signals. In Proceedings of the 2016 IEEE International Conference on Electronics, Circuits and Systems (ICECS), Monte Carlo, Monaco, 11–14 December 2016; pp. 73–76. https://doi.org/10.1109/ICECS.2016.7841135.

4. Ram, M.R.; Madhav, K.V.; Krishna, E.H.; Komalla, N.R.; Reddy, K.A. A Novel Approach for Motion Artifact Reduction in PPG Signals Based on AS-LMS Adaptive Filter. *IEEE Trans. Instrum. Meas.* **2012**, *61*, 1445–1457. https://doi.org/10.1109/TIM.2011.2175832.

5. Ihlen, E.; van Schooten, K.; Bruijn, S.; van Dieën, J.; Vereijken, B.; Helbostad, J.; Pijnappels, M. Improved Prediction of Falls in Community-Dwelling Older Adults Through Phase-Dependent Entropy of Daily-Life Walking. *Front. Aging Neurosci.* **2018**, *10*, 44. https://doi.org/10.3389/fnagi.2018.00044.

6. Siddharth, P.D.; Deshpande, S. Embedded system design for real-time interaction with Smart Wheelchair. In Proceedings of the 2016 Symposium on Colossal Data Analysis and Networking (CDAN), Indore, India, 18–19 March 2016; pp. 1–4. https://doi.org/10.1109/CDAN.2016.7570917.

7. Joukov, V.; Karg, M.; Kulic, D. Online tracking of the lower body joint angles using IMUs for gait rehabilitation. In Proceedings of the 2014 36th Annual International Conference of the IEEE Engineering in Medicine and Biology Society, Chicago, IL, USA, 26–30 August 2014; pp. 2310–2313. https://doi.org/10.1109/EMBC.2014.6944082.

8. Madgwick, S.O.H.; Harrison, A.J.L.; Vaidyanathan, R. Estimation of IMU and MARG orientation using a gradient descent algorithm. In Proceedings of the 2011 IEEE International Conference on Rehabilitation Robotics, Zurich, Switzerland, 29 June–1 July 2011; pp. 1–7. https://doi.org/10.1109/ICORR.2011.5975346.

9. Mihelj, M. Inverse Kinematics of Human Arm Based on Multisensor Data Integration. *J. Intell. Robot. Syst.* **2006**, *47*, 139–153. https://doi.org/10.1007/s10846-006-9079-8.

10. Lee, G.X.; Low, K.S. A Factorized Quaternion Approach to Determine the Arm Motions Using Triaxial Accelerometers With Anatomical and Sensor Constraints. *IEEE Trans. Instrum. Meas.* **2012**, *61*, 1793–1802. https://doi.org/10.1109/TIM.2011.2181884.

11. Du, G.; Ding, Z.; Guo, H.; Song, M.; Jiang, F. Estimation of Lower Limb Joint Angles Using sEMG Signals and RGB-D Camera. *Bioengineering* **2024**, *11*, 1026. https://doi.org/10.3390/bioengineering11101026.

12. Li, H.B.; Guan, X.R.; Li, Z.; Zou, K.F.; He, L. Estimation of Knee Joint Angle from Surface EMG Using Multiple Kernels Relevance Vector Regression. *Sensors* **2023**, *23*, 4934. https://doi.org/10.3390/s23104934.

13. Tang, Z.; Yu, H.; Cang, S. Impact of Load Variation on Joint Angle Estimation From Surface EMG Signals. *IEEE Trans. Neural Syst. Rehabil. Eng.* **2016**, *24*, 1342–1350. https://doi.org/10.1109/TNSRE.2015.2502663.

14. Putro, N.A.S.; Avian, C.; Prakosa, S.W.; Mahali, M.I.; Leu, J.S. Estimating finger joint angles by surface EMG signal using feature extraction and transformer-based deep learning model. *Biomed. Signal Process. Control* **2024**, *87*, 105447. https://doi.org/10.1016/j.bspc.2023.105447.

15. Taunyazov, T.; Omarali, B.; Shintemirov, A. A novel low-cost 4-DOF wireless human arm motion tracker. In Proceedings of the 2016 6th IEEE International Conference on Biomedical Robotics and Biomechatronics (BioRob), Singapore, 26–29 June 2016; pp. 157–162. https://doi.org/10.1109/BIOROB.2016.7523615.

16. Schepers, M.; Giuberti, M.; Bellusci, G. *Xsens MVN: Consistent Tracking of Human Motion Using Inertial Sensing*; Xsens: Enschede, Netherlands, 2018. https://doi.org/10.13140/RG.2.2.22099.07205.
17. Robert-Lachaine, X.; Mecheri, H.; Larue, C.; Plamondon, A. Validation of inertial measurement units with an optoelectronic system for whole-body motion analysis. *Med. Biol. Eng. Comput.* **2016**, *55*, 609–619. https://doi.org/10.1007/s11517-016-1537-2.

18. Bouvier, B.; Duprey, S.; Claudon, L.; Dumas, R.; Savescu, A. Upper Limb Kinematics Using Inertial and Magnetic Sensors: Comparison of Sensor-to-Segment Calibrations. *Sensors* **2015**, *15*, 18813–18833. https://doi.org/10.3390/s150818813.

19. Müller, P.; Bégin, M.A.; Schauer, T.; Seel, T. Alignment-Free, Self-Calibrating Elbow Angles Measurement Using Inertial Sensors. *IEEE J. Biomed. Health Inform.* **2017**, *21*, 312–319. https://doi.org/10.1109/JBHI.2016.2639537.

20. Meng, D.; Vejarano, G. Development of a wireless sensor network for the measurement of human joint angles. In Proceedings of the 2013 International Conference on Connected Vehicles and Expo (ICCVE), Las Vegas, NV, USA, 2–6 December 2013; pp. 356–361. https://doi.org/10.1109/ICCVE.2013.6799820.

21. Zhou, H.; Hu, H. Reducing Drifts in the Inertial Measurements of Wrist and Elbow Positions. *IEEE Trans. Instrum. Meas.* **2010**, *59*, 575–585. https://doi.org/10.1109/TIM.2009.2025065.

22. Mayorca, D.; Caicedo-Eraso, J.C.; Peluffo-Ordóñez, D. Knee Joint Angle Measuring Portable Embedded System based on Inertial Measurement Units for Gait Analysis. *Int. J. Adv. Sci. Eng. Inf. Technol.* **2020**, *10*, 430–437. https://doi.org/10.18517/ijaseit.10.2.10814.

23. Zhang, X.; Xiao, W. A Fuzzy Tuned and Second Estimator of the Optimal Quaternion Complementary Filter for Human Motion Measurement with Inertial and Magnetic Sensors. *Sensors* **2018**, *18*, 3517. https://doi.org/10.3390/s18103517.

24. Seel, T.; Raisch, J.; Schauer, T. IMU-Based Joint Angle Measurement for Gait Analysis. *Sensors* **2014**, *14*, 6891–6909. https://doi.org/10.3390/s140406891.

25. Fisher, C.J. AN-1057: Using an Accelerometer for Inclination Sensing; Analog Devices: Wilmington, MA, USA, 2010; Revision 0.

26. Thrun, S.; Burgard, W.; Fox, D. *Probabilistic Robotics*; MIT Press: Cambridge, MA, USA, 2005.

27. Zitouni, W.; Vauche, R.; Aziza, H.; Ayache, L.; Makdissi, A. Cortex-M0+-based Pacemaker: CMOS Technologies Benchmark to Achieve Ultra-Low Power Operations. In Proceedings of the 2023 IEEE International Conference on Design, Test and Technology of Integrated Systems (DTTIS), Gammarth, Tunisia, 1–4 November 2023; pp. 1–5. https://doi.org/10.1109/DTTIS59576.2023.10348200.

28. Zitouni, W.; Vauche, R.; Aziza, H.; Ayache, L.; Makdissi, A. Power Consumption Reduction in Integrated Pacemakers: Design Strategies for Cortex-M0+ Processors. In Proceedings of the 2024 IEEE International Conference on Design, Test and Technology of Integrated Systems (DTTIS), Aix-En-Provence, France, 14–16 October 2024; pp. 1–7. https://doi.org/10.1109/DTTIS62212.2024.10780382.

29. STMicroelectronics. LSM6DSL: iNEMO Inertial Module: Always-on 3D Accelerometer and 3D Gyroscope; STMicroelectronics: Plan-les-Ouates, Switzerland, 2010. Revision 7.

30. STMicroelectronics. LSM303AGR: Ultra-Compact High-Performance eCompass Module: Ultra-Low-Power 3D Accelerometer and 3D Magnetometer; STMicroelectronics: Plan-les-Ouates, Switzerland, 2022. Revision 11.

31. ARM. Cortex-M4: Technical Reference Manual; ARM: Cambridge, England, 2010. Revision r0p0.

32. STMicroelectronics. AN5325: How to Use the CORDIC to Perform Mathematical Functions on STM32 MCUs; STMicroelectronics: Plan-les-Ouates, Switzerland, 2024. Revision 6.

33. Meng, D.; Shoepe, T.; Vejarano, G. Accuracy Improvement on the Measurement of Human-Joint Angles. *IEEE J. Biomed. Health Inform.* **2016**, *20*, 498–507. https://doi.org/10.1109/JBHI.2015.2394467.

34. Wang, S.; Cai, Y.; Hase, K.; Uchida, K.; Kondo, D.; Saitou, T.; Ota, S. Estimation of knee joint angle during gait cycle using inertial measurement unit sensors: A method of sensor-to-clinical bone calibration on the lower limb skeletal model. *J. Biomech. Sci. Eng.* **2022**, *17*, 21-00196. https://doi.org/10.1299/jbse.21-00196.

35. Kun, L.; Inoue, Y.; Shibata, K.; Enguo, C. Ambulatory Estimation of Knee-Joint Kinematics in Anatomical Coordinate System Using Accelerometers and Magnetometers. *IEEE Trans. Biomed. Eng.* **2011**, *58*, 435–442. https://doi.org/10.1109/TBME.2010.2089454.

36. Feldhege, F.; Mau-Moeller, A.; Lindner, T.; Hein, A.; Markschies, A.; Zettl, U.K.; Bader, R. Accuracy of a Custom Physical Activity and Knee Angle Measurement Sensor System for Patients with Neuromuscular Disorders and Gait Abnormalities. *Sensors* **2015**, *15*, 10734–10752. https://doi.org/10.3390/s150510734.

37. Allseits, E.; Kim, K.J.; Bennett, C.; Gailey, R.; Gaunaurd, I.; Agrawal, V. A Novel Method for Estimating Knee Angle Using Two Leg-Mounted Gyroscopes for Continuous Monitoring with Mobile Health Devices. *Sensors* **2018**, *18*, 2759. https://doi.org/10.3390/s18092759.

38. Liang, F.Y.; Gao, F.; Liao, W.H. Synergy-based knee angle estimation using kinematics of thigh. *Gait Posture* **2021**, *89*, 25–30. https://doi.org/https://doi.org/10.1016/j.gaitpost.2021.06.015.

39. Hernandez, V.; Dadkhah, D.; Babakeshizadeh, V.; Kulić, D. Lower body kinematics estimation from wearable sensors for walking and running: A deep learning approach. *Gait Posture* **2021**, *83*, 185–193. https://doi.org/10.1016/j.gaitpost.2020.10.026.
**Disclaimer/Publisher's Note:** The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content.