Feasibility of Bluetooth Low Energy for motion capturing with Inertial Measurement Units

Wireless Inertial Measurement Units provide motion capture data with a low hardware cost while offering a lot of mobility for the user. The current solutions rely on Wi-Fi or custom radio protocols, which are usually access point-centre having all the traffic routed through a single access point, limiting direct interaction capabilities with the surrounding devices. Bluetooth Low Energy (BLE) forms point-to-point networks directly between two devices without additional networking, thus, a BLE based motion capture suit could enable seamless direct cooperation between two robots or a human and a robot. In this paper, the feasibility of BLE 5 for motion capturing is investigated by designing and testing an implementation of such a motion capture system using existing commercial hardware. More specifically, a mobile phone was utilized as the receiver device for real-time visualization, whereas BLE sensors were used in order to test the feasibility of the technology for actual use and to identify the bottlenecks in the system for future optimizations. The designed prototype system achieved similar or better performance for the static accuracy and delays in the system when compared to the currently existing commercial suits, while providing a feasible throughput for real-time motion capturing.


Introduction
Tracking of the human pose has been widely used in the entertainment sector for creating animation assets for movies and video games.In addition, motion capturing technology is essential for Virtual Reality (VR) and even some Augmented Reality (AR) applications, as the tracking of objects, human hands or full body pose are essential for controlling and emulating a virtual body in virtual environments.
Creating animation assets and performing online tracking present two completely different requirements for the precision, accuracy and the real-time performance of the pose estimation.For example, in animation, in which the data is not needed in real-time, the delays in the capture are irrelevant and the data can be heavily post-processed for temporal smoothing or even modified with translations, obviating the need for millimetre precision during data capture.However, realtime applications are often sensitive to delays in the system, whereas the precision and accuracy range that is needed for the location can vary from a couple meters to a sub-millimetre level depending on the application.
Currently, three state-of-the-art methods have been heavily used for pose estimation: optical measurements (Guerra-filho, 2005), raw camera image stream (Sarafianos et al., 2016) and the usage of Inertial Measurement Units (Aron et al., 2007) (IMUs).Optical measurements are the most accurate method for pose estimation, providing precision that is suitable even for surgical devices.However, they are prone to occlusion, thus, the scalability of the system is dependent on the setting of the scene and the amount of cameras present.Moreover, changing the scene location requires re-calibration of the cameras using special calibration panels.In addition, the cost of special optical measurement cameras is extremely high compared to alternative solutions.
Raw camera image stream utilizes computer vision, such as neural networks (Sarafianos et al., 2016), genetic algorithms (Rossi et al., 2005), particle filters (Sarafianos et al., 2016), and regression models (Sarafianos et al., 2016), and is often the most natural solution for the actors on the scene, as many of its techniques require no installation of additional hardware on the users.The price is heavily dependent on the quality and quantity of the cameras chosen, and multiple cameras must be utilized to obtain a good accuracy and a unique solution for the pose.As with optical measurements, using regular cameras require calibration on the scene, and they are prone to similar occlusion problems.
IMUs have a relatively low hardware cost, and they require special calibration procedures only once since the direction of the magnetic https://doi.org/10.1016/j.jnca.2022.103566Received 14 March 2022; Received in revised form 11 November 2022; Accepted 20 December 2022 field can be estimated online during regular operation (Madgwick et al., 2011).There are two approaches for IMU based pose estimation: either the data is gathered by a central device via wires and then sent wirelessly forward by the central device, or the data is directly sent forward wirelessly from each individual sensor unit.The former solution provides better cost efficiency and reliability in the presence of multiple devices whereas the latter offers better flexibility in how many sensors are used to form the suit or what kind of actors or objects can be tracked with it.
Furthermore, IMUs suffer very little from occlusion problems and allow better mobility for the user as they can freely change the scene.Unfortunately, the magnetometer in the IMU unit is prone to errors near ferromagnetic objects and strong magnetic fields, which reduces the accuracy and precision of the estimates near ferromagnetic objects.Moreover, IMU pose estimation is prone to heavy drift for the translation of the actor.Therefore, IMU-based solutions are often only used to capture the joint angles but not the location of the actor, requiring sensor fusion with a parallel system, such as optical measurements (He et al., 2015) or Ultra-wideband (UWB) positioning systems (Alarifi et al., 2016), in order to provide an accurate location estimate over a longer period of time.
The boom on Internet of Things and Flexible Manufacturing Systems are rapidly shaping the production environments and factories.Modern production automation offers the possibility of cooperation between humans and robots or between several robots in an environment where the machines can move and change their workstation.However, in order to enable the cooperation and to keep it safe, the poses of the moving actors around the machines must be known with varying accuracies depending on the task.
There are some wireless human pose and location estimation systems currently on the market (Rokoko, 2022;Xsens, 2022) that are mainly aimed towards animation capturing.However, they utilize Wi-Fi or custom radio protocols for transferring the sensor data, making it hard to directly communicate with different production devices as the interfaces are designed for a regular PC.The receiver device must run specific proprietary software to obtain and parse the data, which is collected from the special radio receiver card or over a Wi-Fi router.However, utilizing a standard radio protocol, such as Bluetooth, allows easy integration and fast local communication with nearby devices, right where the information is needed, offering the potential to reduce the end-to-end delays in the system and, hence, enhancing scalability.Despite all these appealing features, the feasibility of constructing such a system and its performance have not been investigated, thus, they are yet to be explored.
The aim of this paper is to investigate the feasibility of BLE 5 for motion capturing by developing such a system with commercial off-theshelf hardware without modifying their accompanying core software and drivers.The feasibility is determined by comparing the performance of the prototype system in terms of throughput, delays, and measurement synchronization against the existing commercial wireless IMU-based solutions.In addition, any potential bottlenecks that were found were also noted and future optimizations and workarounds suggested for such a system.
Towards this end, we make the following contributions: • The number of connections, sampling rates and latencies are detected to be limited by the properties of the receiver device, which lack proper documentation for most cases.The available connections and sampling rate limitations provided by the receiver device can be worked around to some extent by choice of topology for the sensor network at the cost of increased latency and decreased message reliability.• The currently developed synchronization accuracy for the suit was 62 μs on average with over 330 μs better worst case performance than CheepSync (Sridhar et al., 2016), offering suitable synchronization accuracy for a sampling rate up to 160 Hz with less than 1% error in the sample timing.However, the average synchronization accuracy over BLE can also be brought to 2 μs-10 μs via hardware and software optimizations on the sensor devices (Sridhar et al., 2016;Rheinländer and Wehn, 2016), which would allow the accuracy to be suitable for internally sampling the IMUs at a rate of 1 kHz or more with less than 1% error in the sample timing.• A single pose measurement can be encoded into 24 bytes and delivered via a single BLE 5 notification, which takes at least 6-7 ms to arrive at the application layer of the OSI model on a receiving device.• The maximum amount of pose measurements that can fit into a single notification of the selected sensor unit was 10, with room for a one byte identifier for data alignment.Therefore, the throughput of a single connection could be improved at the cost of latency by bundling multiple measurements into a single BLE notification, or alternatively, up to 10 prototype sensors could be connected to each others via wires for bundling the data within a single wireless link to increase the throughput and reliability of the suit without increasing latency.• The price and power consumption of a BLE based motion capture suit is noticeably lower than in the currently available commercial solutions.• Considering all the above contributions, BLE is determined as a feasible protocol for real-time motion capturing, however, the performance of a fully wireless suit depends heavily on the receiver device and an option to reduce the amount of wireless connections is necessary in order to guarantee a level of performance under varying conditions.
The remainder of the paper is organized as follows.In Section 2, the materials such as the hardware and software used for the research are presented.Section 3 presents the different methods for obtaining the results, which are reported in Section 4, together with analysis and comparison to current commercial products.Finally, Section 5 presents the conclusions of the research.

Hardware
The receiver device was a Nokia 8 with a Qualcomm Snapdragon 835 octa-core processor with a clock speed of 1.8 GHz, which implements the Bluetooth Low Energy (BLE) version 5.0 (Bluetooth SIG Propriertary, 2016).The sensor device chosen for the prototype system was Arduino Nano 33 BLE Sense, which contains a BLE 5.2 (Bluetooth SIG Propriertary, 2019) capable nRF52840 SoC at its core, having 1MB of flash memory and a clock speed of 64MHz.The IMU sensor on the Arduino Nano 33 BLE Sense is the STMicroelectronics LSM9DS1 9-DOF IMU.
Mbed OS and regular C++ code were used for programming the Arduino Nano 33 BLE Sense instead of the regular Arduino environment in order to have better control over process scheduling and the BLE radio within the SoC than what is provided by the Arduino libraries.However, the default Arduino drivers were used for reading and configuring the LSM9DS1 IMU.The prototype system was built using Deltaco cable tie straps, battery holders, switches, and batteries to provide 16 wireless sensor units that can be placed on a human body.A Hantek DSO520P 200MHz two channel oscilloscope was used as a measurement device when determining the synchronization timings and latencies between two different devices.

System architecture and software
Fig. 1 represents the general architecture of the system.Each Mobile Pose Node (Mopo Node) contains identical software.However, the functionality of that device changes a bit if it is acting as a bridge as the bridge node will make one connection with the phone.This is because the characteristics of the connection from the bridge to the receiver is determined by the receiver and cannot be assumed or forced to have certain parameters, whereas the connection parameters between the sensors can be controlled.
The differentiation is done by the device naming tag in the end.The Mopo Nodes use an alphabet combined with a number to which group the Node belongs to and what is the purpose of that node.The system utilizes 1-based indexing where the node with ID of 1 is the one that connects to the receiver, which in this case was a mobile phone.This way it is straight forward to program how the nodes connect to each other.A single Mopo Node is responsible for: • Measuring and estimating the pose using the IMU on the node.
• Connecting to other devices.
• Relaying commands it receives to downstream.
• Relaying responses it receives to upstream.
• Relaying the measurements it receives to upstream and appending the measurement at the node to the message.
The software for Arduino Nano 33 BLE Sense was custom-made and written in C++ on top of the Arduino platform and Mbed OS code.For the Nokia 8, a custom software was designed and built utilizing Godot Engine that allowed the visualization of the sensor data on the phone in real-time with the help of a 3D humanoid model.The humanoid model was rigged and weighed in Blender, however, no restrictions were set to the joint angles in order to test the raw performance of the sensors.
The Arduino serial monitor was used to print out float values that were later parsed in MATLAB for analysis and plotting in order to take precise results out of the sensor system.The waveforms that were saved as CSV files during the synchronization measurements were processed using Python with Numpy and Matplotlib.The default Godot Engine does not provide access to the BLE radio on the phone, therefore, a custom Java-based Bluetooth communication library was written for the Android OS running on Nokia 8 to be compiled as a Godot plugin in order to expand the engine and expose the necessary Bluetooth functionality and communication messages on Nokia 8 for the visualization software.

Encoding and decoding of measurements
In order to form a pose estimate, it is necessary to estimate the orientation and the location of the data point.The orientation consists of an axis of rotation and an angle around the axis, whereas the location consists of three individual coordinate values in a 3D space.There are many ways to represent rotations in a 3D space, however, quaternions were chosen as they avoid the gimbal lock of Euler angles, they are computationally more efficient than rotation matrices (Voight, 2021), and it is straight forward to perform conversions between an axis-angle representation and a rotation quaternion.
A quaternion is a 4-tuple consisting of a real scalar and an imaginary vector in I 3 where the following rules hold (Voight, 2021;Jia, 2013): Therefore, the basic form of a quaternion is expressed as (Voight, 2021;Jia, 2013) or as a quaternion vector where  is the scalar part of a quaternion  and  is the imaginary unit vector part of the quaternion.It should be noted that since the first element of the vector is a real and the three others are imaginary, not all the standard vector operations apply to the quaternion vectors (Voight, 2021;Jia, 2013).Any unit quaternion of the form expresses a rotation of  around the axis (  ,   ,   ) in a 3D space (Jia, 2013).The angle of the rotation  can be extracted form the quaternion with the two argument arcus tangent function as whereas the axis of rotation  can be extracted as the unit vector of where ‖‖ denotes the  2 -norm of vector .
Even though a quaternion provides good properties for updating the orientation estimate, it is not the most condense form of the orientation information.Since orientation axis is described by the relationship between the three perpendicular axes elements, the rotation around the axis can be encoded as the magnitude of the rotation vector.However, the encoded angle of rotation should be carefully defined so that the decoding is guaranteed to result in a unique and defined solution, in other words, projection to zero should be avoided: where  is any positive real number.The choice of  could be negative here as well, as long as the choice is consistent with the decoding step.
Decoding the axis and angle from the encoded value is performed then simply by In the prototype system  = 1 was chosen.It should be quite clear that if  = 0 it is possible that  +  = ‖ ‖   ‖ ‖ = 0, which would make the axis of rotation unobtainable and Eq. ( 12) unsafe to use in an algorithm without error checking for division by zero.
A float value for a 32-bit processor takes 4 bytes of storage.Encoding the orientation into 3 floats instead of 4 compresses the orientation data by 25% and the total pose data by 14%, which is important when trying to maximize the information that can be fit into a single BLE notification.A single GATT characteristic for the Arduino Nano 33 BLE Sense can contain 241 bytes of payload data.Without encoding, the pose data requires 7 floats for a single pose measurement, which equals to 28 bytes.A single notification can therefore send 8 measurements with a single notification with 17 bytes to spare.However, when using the encoding, there are only 6 floats to send for a single pose measurement, which equals to 24 bytes of data and allows up to 10 measurements to fit a single notification with a single byte to spare.The extra byte can be used for example as an identification counter for checking that the data is aligned in the receiver.

Sensor calibration
The gyroscopes were calibrated while in the stationary position for 15 min to get a good estimate of the gyroscope drifts.The magnetometers were calibrated by rotating the devices in hand around all the axes for 400 samples and performing the non-rotated ellipsoid fit algorithm (STMicroelectronics, 2018) in order to map the measurement vectors to a unit sphere.The reference vector directions for the magnetic North and Earth's Gravity were calculated via 1-point calibration by clamping each of the sensors to a 3D printed frame that was fixed to a table to ensure all the sensors were calibrated in as similar location and orientation as possible.

Synchronization and latency
The reliability of the regular advertisement messages was tested by sending a synchronization signal from the mobile phone and observing how many devices were able to obtain the package by changing the colour of an indication RGB LED on the sensor devices.The reliability of the periodic advertisement messages was tested similarly but instead of the phone, one of the sensor devices was used as the synchronization source since the mobile phone did not support periodic and extended advertising.There were a total of 18 Arduino Nano 33 BLE Sense devices that were listening to the synchronization signals and the more reliable method was selected for synchronizing the devices.
The synchronization was tested by programming two test sensor devices to pull down a digital pin when making a measurement and pull the pin back up after 2 ms, repeating this every 100 ms.Monotonic software clocks of the listener devices were synchronized to the clock of the broadcaster and if the predicted timestamp by a listener was within 10 μs of the timestamp sent by the broadcaster, the periodic measurements were restarted.The synchronization was performed multiple times and the quality of the synchronization was inspected with an oscilloscope, from which the waveforms were saved to a USB storage device for analysis.
The latency of obtaining a single sample and transferring the data over a BLE notification message was measured by programming two devices to connect to each other, where one device pulls a pin down when taking a sample at the application layer of the OSI model and the other device pulls a pin down immediately after receiving the sample on the application layer.The Hantek oscilloscope was used to measure the delay between the two falling edges.The input latency of the system for visualization, which is the time it takes for a screen to visualize a change since the change happened, was measured by sending the data at 50 Hz over BLE notifications while visualizing the output on a mobile phone (Nokia 8 at 60 Hz).The sensor device, which had an LED indication light on, was flicked with a finger, while the sensor and the screen were recorded with a 120 Hz camera.The frames were calculated by using the frame when the sensor LED starts moving as the start frame and the frame where the phone screen starts updating as the end frame.

Accuracy of the system
The accuracy of the measurement was determined by obtaining two stationary angle measurements with the help of a triangle ruler.The sensor was fixed to the ruler with tape and one cathetus was placed against a wall on top of a levelled shelf, allowing only one degree of freedom for the rotation of the device.The wall was known to not contain any elements that could cause magnetic interference.The device was allowed to settle for a few seconds, then the ruler was rotated by 90 degrees and the other cathetus placed against the same wall.
In order to determine when the rotation angle had settled, the absolute values of the difference signal were calculated and filtered by a moving average with a window size of 20 samples to help with the classification.The signal was considered settled when the filtered absolute difference signal went below a tolerance of 0.02 deg/sample and unsettled when the filtered difference signal went over the tolerance of 0.1 deg/sample.The values in between were used as dead-space to ensure that the signal is not considered settled when the device was under rotation.The average of the first raw settled signal was taken as the initial angle and the RMSE value from the second raw settled signal were calculated by comparing to the first angle measurement.

Effect of topologies
Three different topologies were chosen for testing the performance of the prototype suit, a server, a chain and a tree as seen in Fig. 2. In the tree topology, the phone was connected to one or multiple bridge nodes that had two leaf nodes each, where the leaf nodes were communicating with the phone through the bridge node.In the chain topology, the phone was connected to one or multiple bridge nodes that were each connected to a chain of sensors.The messages to and from the phone flew through the chain and tree topologies in the numerical ID order of the Mopo Node group (Fig. 1).In the server topology, the phone was only having direct communications to the bridge devices, therefore all the nodes had an ID of 1 and only a differing group alphabet.

User experience
The user experience of the prototype suit was evaluated by a single user.He was wearing the suit during the development and when obtaining validation data.A broader range user experience study was not conducted as that was out of the scope of the research target of determining the feasibility of BLE as a communication protocol for a real-time motion capture suit.

Results
In order to determine the feasibility of the developed system, the key performance metrics such as latency, accuracy and the synchronization timing were measured and compared against the currently existing commercial products; namely MTw Awinda (Xsens, 2022) and Rokoko Smartsuit Pro II (Rokoko, 2022).In addition, the quality of the synchronization accuracy was also compared with CheepSync (Sridhar et al., 2016).The systems used for the comparison are described next in better detail.
MTw Awinda is a commercial motion capture suit manufactured by Xsens.It is a fully wireless IMU tracking system that measures the orientation of the user (Xsens, 2022) using the patented Awinda communication protocol, having an excellent accuracy for sensor synchronization but requiring a proprietary dongle or station as the receiver device, thus it also comes with relatively high latency.
The Rokoko Smartsuit Pro II is a wired IMU commercial motion capture suit estimating the full pose of the user, where the data is collected via wires and sent wirelessly to the receiver only by the central unit via Wi-Fi.However, the Smartsuit Pro II offers integration possibilities with other Rokoko products for simultaneous finger tracking via gloves and facial expression tracking with a mobile phone camera (Rokoko, 2022), as well as extremely high sampling rates with a latency that depends on the Wi-Fi router and network properties.CheepSync is an open source time synchronization service with custom beacons that is compatible with BLE 4.0 and by itself it provides no data for motion capturing (Sridhar et al., 2016).

Synchronization
A traditional advertisement package was rather unreliable in delivering a simultaneous message to more than 10 devices whilst the periodic advertisements were reliably captured by at least 18 devices, as the devices were actively looking for the payload packages during the correct transmission windows.Therefore, sending an advertisement message is noticeably more reliable and consumes less power on the receiver devices when the periodic advertisement packages were used instead of the regular advertisements.
The synchronization delay between two listeners, as seen in Fig. 3, had a mean of around 62 μs and a standard deviation of around 52 μs, with the minimum value of 1 μs and a maximum value of 202 μs(see Fig. 4).
Around 25% of the synchronizations had an accuracy of 15 μs or less, but on the other hand a same amount of synchronizations had an accuracy of around 96 μs to 202 μs.The median synchronization delay was 49 μs and 95% of the synchronizations set the devices to sample within 162 μs of each others.The drift between the clocks of two listeners was visually determined from the oscilloscope, and it seemed to be around 2 μs/s.
Interestingly, the 95% quantile for CheepSync with 1 source and 2 listeners was 5 ms for the error between the listeners whereas for the unoptimized implementation with periodic advertisements the 95% quantile was 162 μs, causing the chosen synchronization method to have better worst case performance than CheepSync by at least 330 μs.However, this is most likely due to the reliability of the periodic advertisements that were taken to the optional standard since BLE 5.0, as CheepSync was implemented at a time when BLE 4 was the newest version of the standard.
The unoptimized mean synchronization accuracy was noticeably worse than the claimed 10 μs of MTw Awinda (Xsens, 2022), which uses a custom wireless communication protocol for the communication and synchronization.However, the typical relative error in sampling timings when sampling at 100 Hz is around 0.60%, therefore, the synchronization is more than feasible on the current sampling rate of the prototype suit.In addition, it is possible to further increase the accuracy of the synchronization over BLE by combining some optimizations on the hardware and software levels (Sridhar et al., 2016;Rheinländer and Wehn, 2016).
CheepSync (Sridhar et al., 2016) has proved that the synchronization over Bluetooth can reach the 10 μs range for the mean accuracy by sending a timestamp and a sending delay measurement in the synchronization payload while approximating the receiving delay on the receiver device, instead of simply synchronizing when the package is noticed on the application layer of the OSI model by the end devices.Furthermore, it has been proven that BLE can achieve a standard deviation of 0.9 μs in the synchronization between the synchronization source and a listener by using a hardware interrupt circuit that is connected to the BLE radio on the SoC (Rheinländer and Wehn, 2016).These optimizations were not implemented due to the research being limited to the system design level with no changes to the hardware or core software that are available off-the-shelf.

Latency and input latency for visualization
The sampling latency of a single hop was measured as 6 ms to 7 ms as seen in Fig. 5. Notice that this value does not contain any synchronization delays, as the receiving device is reacting to the sending device as soon as it receives the message on the application layer of the OSI model.The 1 ms variance visible here on the yellow signal was most probably due to the resolution of the Mbed OS Event Queue, which was used for process scheduling as it has a resolution of 1 ms.
The latency of the MTw Awinda is 30 ms (Xsens, 2022) whereas Rokoko's Smartsuit Pro II claims to have a latency of approximately 15 ms depending on the Wi-Fi router (Rokoko, 2022), therefore, a BLE based motion capture suit has the potential to achieve similar or better latency for receiving the measurements.Ideally, the receiver would be capable of receiving all the samples in parallel via different BLE channels and have a sufficient processor to decode the data within a couple of milliseconds, pushing the practical limit of the latency to around 8 ms to 10 ms with supporting hardware.The input latency for visualizing the output of a sensor on a Nokia 8 was 13 frames when recorded with a 120 frames per second camera, therefore, the system had an input latency of less than 109 ms.It should be noted that the input latency is dependent on the sampling rate and the visualization hardware used.

Accuracy of the static angle estimates
Fig. 6 shows the measured rotation angles during the static angle measurement test.The first angle was taken by averaging the resulting samples from 197 to 787, shown as the yellow area in Fig. 6, surrounded by the dashed line.The first angle was measured as 112.8120 degrees around the yaw-axis of the device.The RMSE was then calculated comparing this value to the signal from samples 1470 to 1669, shown as the red area in Fig. 6, surrounded by the dash dotted line.
The resulting RMSE value was 89.8250 degrees.Assuming that the angle between the catheti of the triangle ruler was exactly 90 degrees and that there were in fact no significant disturbances in the magnetic field, the average magnitude of the estimation error for static angles was 0.1750 degrees.Thus, the static angle accuracy of the system was similar or better than many of the commercial traditional IMU suits that have a hardware cost of up to 10 times the designed suit (Ancans et al., 2021).

Effect of topology
The server topology is the most straight forward topology as the sensor devices are each connected directly to the receiver.However, the server topology connection and throughput is heavily dependent on the performance of the receiver.Utilizing tree or chain topologies allows fewer wireless links to the receiver with the cost of increased latency due to the repeated messages.In addition, utilizing any other topology than the server topology will introduce packet collision to the system as the BLE standard guarantees there are no collisions only within the same piconet.There is no single correct topology for all BLE based motion capturing systems.The important connection capabilities on the receiver device that set most of the major bottlenecks for the system are dependent on the parameters of the receiver radio, which are vendor specific.When it comes to the BLE radios on mobile phones, the parameters required for choosing the best topology are very poorly documented across the board, and at the moment, the only way to find the parameters is to systematically test the limits of the given receiver device.
For Nokia 8, the maximum amount of simultaneously connected devices was 7. Adding more devices also required increasing the communication interval between the devices.The Android OS does not give any interface for configuring the Bluetooth controller for the amount of notifications per communication interval, which was locked at 3 for the Nokia 8.Moreover, the Nokia 8 seems to accept and process only a total of 3 notifications from any amount of devices within 24 ms, and the minimum communication interval it agrees to yield is 11 ms, setting a hard limit of 125 Hz for the sampling rate of a single sending device.
Sending information at a faster rate than 3 messages per 24 ms caused the Bluetooth controller on the phone to throttle all connections by dropping a lot of packets, which was detected as a momentary increase in latency.In order for the Bluetooth controller on the Nokia 8 to be able to keep the connections alive with 6 or more devices, the communication interval had to be 60 ms or more, yielding a sampling rate of approximately 16.7 Hz for 6 sending devices instead of the 20.8 Hz, which is the theoretical value based on the number of notifications the controller can process.This is most likely due to the increased number of connection upkeep messages that the device needs to send and receive.
The Mbed OS that was used for the sensor devices set the total amount of simultaneous connections to 3, even though the manufacturer of the SoC device does list that it can support up to 20 simultaneous connections, therefore, the tree topology was limited to only 2 leaves.Since the worst case latency of the prototype system was measured as 7 ms, the theoretical worst case latencies for obtaining all the measurements in the prototype system can be estimated for each topology: where  is the extra delay the receiving device needs to process the messages that depend on the radio and is a function of the amount of connections, ℎ is the amount of units in the chain, the height of the chain.Assuming no delays  needed, the theoretical latencies for connecting a total of 10 devices would be 7 ms for the server topology, 70 ms for a single chain and 14 ms for the tree topology.The tree topology is an interesting choice in the sense that while having double the latency, it offers the possibility to bypass the limitations of the final receiver device in case the sensor devices have better and more optimized radios for the application of motion capturing.
Estimation and precise measurements of the packet loss with different combinations of tree and chain topologies were omitted as properly determining the packet loss with real devices calls for an optimized system, therefore, it fell out of the scope of this research.
The best throughput with multiple connected devices was obtained by using 2 chains of 2 devices as seen in Fig. 7(a), which provided a configuration of 4 devices at 50 Hz.An example of the visualization with such a set-up can be seen in Fig. 7(c), where the user has lifted their arms up in the air.The sending timings of the devices had to be carefully timed in order to avoid transmission collisions which resulted in packet loss and was detected visually from the real-time visualization.The theoretical sampling rate limit for 4 sensors in a server topology for Nokia 8 was 31.25 Hz, therefore, the chain topology greatly increased the sampling rate of the network with a minor extra 7 ms cost in latency.
In order to push the chain topology to its limits and get some idea of the performance in the presence of multiple nearby piconets, a network with 5 chains consisting of a bridge and a sensor was tested for a 10-node suit as seen in Fig. 7(b).The network was able to reach a sampling rate of 20 Hz.However, due to the channel hopping algorithms of Bluetooth, some of the devices eventually switched to the same channel, causing transmission collisions in the connection upkeep messages, which resulted in disconnections between the bridges and the sensors.
Sending the pose estimation data via periodic advertisements was not experimented with, but they could potentially be used to connect regular sensors to bridge sensors in order to avoid sending the connection upkeep messages completely, reducing the amount of empty payload transmissions on the BLE communication channels at the cost of latency or sampling rate.The minimum interval for periodic advertisements is 20 ms resulting in a maximum sampling rate of 50 Hz if only one measurement is sent per advertisement.

User experience
Fig. 8 depicts the test user wearing a 16-node suit.However, during testing, it was noticed that the available receiver device was not able to support the full 16-node suit without better optimizations for the software and hardware of the system.The sensor locations in Fig. 8 match the 4-node and 10-node suits as they are obtained by simply removing the extra sensors from the user.
The power storage in the prototype system was four NiMH 1.2 V 2450mAh AA batteries, which were excess in their capacity but chosen  because they were simple to integrate into the system and the batteries were readily available.The batteries could be exchanged for a much smaller profile and weight 3.3 V LiPo battery, as the expected activity time for the prototype system with the AA batteries was over 102 h.
The suit was easy to use in the sense that the sensors only needed to be in their approximate locations while the orientation could vary.The software included a pose synchronization procedure, where the user performs an initial position by standing straight with legs together and arms straight along the body.The pose is then initialized with a single click from the mobile application, which sets the relative orientations of the nodes.The complaints for the prototype system were the weight of the batteries as well as the non-elastic straps used.The non-elastic b The maximum number of devices connected is set by the manufacturer, not the standard.Thus, the maximum node count will be mostly dependent on the receiver device.The Nokia 8 was able to have a maximum of 7 simultaneous connections while the nRF52840 can have up to 20 simultaneous BLE connections, with even more possible by using the chain or tree topologies.The maximum range for Bluetooth depends on the application, the receiver and the sending device.
Only short ranges were tested with the prototype, as the receiver device was a mobile phone that could be carried around in a pocket when not held by an assistant, and short ranges are sufficient for the intended use cases of a BLE based motion capture suit.However, it is expected that for the application of motion capturing via BLE, the range must be kept rather short between the suit and the receiver device, arguably within 10 m indoors and 20 m outdoors.c The current market value of the MTw Awinda suit is not publicly available, as it is obtainable only by a request.Therefore, the latest publicly known price to our knowledge (Ancans et al., 2021) was converted to Euros according to the rate of 17th of January 2022.
straps were only comfortable for the users hip, shoulder and writs straps.The nodes stayed well in place even through some light activity such as lightly jumping and lunges.However, the user was very impressed by the ease of use especially when connecting the sensors.The sensors were capable of forming the topology and connecting the phone in a few seconds with just one click on the UI and the measurements started within few seconds of the user pressing the start button.The user considered it very fun to be able to see the virtual avatar replicating their movements in the virtual environment in real-time with only a little, around 100 ms, latency.The movements of the 4-node suit were considered very smooth and of pleasing quality for the refresh rate.

Comparison of the results
The comparison between the developed prototype system, MTw Awinda, and Smartsuit Pro II are combined here in a table for the convenience of the reader.The values marked with '-' were either not tested, unknown or not publicly available to our knowledge.At the time of writing, we were unable to find research paper on a system that utilizes BLE 5 for many simultaneous wireless connections while offering the required metrics for the comparison.There exist some papers discussing single or a pair of sensors behind a BLE link (Yang et al., 2018;Karimi and Shamim, 2017), which lack the important metrics for comparison, as well as papers discussing BLE throughput for motion capturing (Tosi et al., 2019).However, these utilize the BLE 4 standard which lacks the important throughput updates that were introduced with BLE 5.In addition, the data sent over the air is pure IMU sensor data and not encrypted quaternion estimates which require noticeably fewer bytes to send (see Table 1).

Conclusions
In this paper, the feasibility of BLE as a wireless pose estimation platform was tested by designing and manufacturing a prototype suit and visualizing the results in real time by using a mobile phone as a receiver device for the motion capture suit.The static angle accuracies, latencies and the accuracy of the synchronization were measured for the system and compared against the currently available commercial solutions.In addition, different shortcomings of the completely wireless BLE pose estimation suit were detected that should be considered in an optimal implementation of such a system in order to provide robust support for a broader range of applications and receiver devices.
The synchronization accuracy, latencies and throughput of the prototype system were sufficient for enabling high quality pose estimation data.In addition, the prototype suit costed a fraction of the current modern IMU based pose estimation suits, while still maintaining similar or better performance with the accuracy of the stationary angle estimates and the latency of the system and consuming considerably less power.The synchronization accuracy of the prototype suit had a mean of 62 μs with a latency of 6 to 7 ms for each wireless BLE hop between the topologically furthest sensor and the receiver.The input latency of the prototype suit with Nokia 8 as the receiver was determined to be 109 ms or less, and the price for a single node of the prototype suit was 35€.
The sampling rate of a fully wireless BLE motion capture suit is mostly determined by the receiver device and its ability to process BLE messages and manage different connections.Most Bluetooth radio modules on the market lack proper documentation for what parameters they actually support, thus, the only way to know for sure is to test it.Therefore, pure regular BLE connections should not be relied upon for streaming high rate pose estimation data with more than 4 to 6 capture nodes as the connections between the devices can become unstable and there most certainly is packet loss in the system, unless the receiver can support the required amount of devices in a server topology.Nevertheless, a single BLE wireless link is able to support at least 10 nodes that are linked together with or without wires for streaming data at high rates even to an older receiver, using only a single notification message for transferring the data.More can be possibly sent if several messages are allowed by the receiver.
The wireless clock synchronization of the capturing nodes should be performed using periodic advertisements and not the regular advertisements, as this greatly increases the accuracy of the synchronization by reducing the amount of stochastic delays in the synchronization messaging.Furthermore, receiving the periodic advertisements was noticeably more reliable than receiving the regular advertisement messages.
Utilizing a standard communication protocol for messaging enables the system to communicate with many kinds of systems in a point-topoint network without additional hardware or networking in between as long as they include a low cost BLE-capable radio.The BLE standard shows potential for providing a solid foundation to a single system that enables co-operation and safety of moving actors in Industry 4.0, allows artists to capture motion capture data in creating visual assets, and improves indoor navigation by utilizing the same low-cost and low-power system, therefore, we are in the process of implementing a fully featured and optimized BLE motion capturing system for future research.

Declaration of competing interest
The authors declare that they have no known competing financial interests or personal relationships that could have appeared to influence the work reported in this paper.

Fig. 3 .
Fig. 3.The histogram of delays between two listeners after a synchronization event.

Fig. 4 .
Fig. 4. The cumulative histogram of the synchronization delays between two listener devices after a synchronization event.

Fig. 5 .
Fig. 5.The latency between taking a sample (blue, below), estimating the orientation, encoding, sending and finally receiving (yellow, above) a single encoded sample.

Fig. 7 .
Fig. 7.An example of two topologies used for throughput testing with Nokia 8 and an example of a pose visualization.The text box field in the visualization was used for obtaining information on the messages that were actually received, such as the time difference between them.

Fig. 8 .
Fig. 8.The full manufactured 16-node suit on the test user.

Table 1
(Ancans et al., 2021)ained results.The accuracies for the Smartsuit Pro II were not published at the time of writing this paper, therefore, the values for the accuracies are the ones that exist for the first version of the Smartsuit Pro(Ancans et al., 2021). a