## 3 Re-Usable Re-Constructible Sensor Device
### Software
#### 3.3.1 Intelligent Calibration  
Calibration is the process of adjusting the device to a specific target object or human specifications. This is a manual process in which individual sensors are manipulated, such as being pulled, pushed, or rotated, to align them in the correct direction and at the desired distance from the target object or human. This also involves humans moving themselves or the object within the expected range. Once a single sensor is installed, other sensors can be configured one by one until all the sensors are in place. The software needs to show a sequence of screens \(y_{i}\in Y\), each corresponding to one of the sensors \(s_{i}\in S\). Assuming there are S sensors, each is associated with a distinct colored shape \(c_{i}\) on the user's interface. Each shape must be initially located at its initial position \(p_{i}\). For calibration, the user has to move physically and move the on-screen shape \(c_{i}\) overlaps with a desired designated zone \(z_{i}\) (also marked by a lighter shade of the same color \(c_{i}^{\prime}\)). It is not necessary to have the shape always within this zone, but in a normal state, it should be within \(z_{i}\). The calibration happens by moving the shapes \(s_{i}\) to other target zones along a path. The movement of the shape \(c_{i}\) can be across a linear path, circular path, elliptic path, Bezier curve, etc. Note that the movement capturing algorithms use the sensor data to translate the movement of the human to the movement of the shape \(c_{i}\) plays a key role in the efficiency of this software. For the most straightforward implementation, the shape \(c_{i}\) can follow a linear path and be slid from its designated zone to another zone when users move. More complex implementations may utilize deep learning to identify patterns and then translate to more complex paths of moving the shape of its initial position \(p_{i}\) to the designated zone \(z_{i}\). This algorithm for the user interface design is shown below. The user interface should contain clear, concise instructions and information to keep it simple for users. The instructions must clearly state how the calibrated position should look at the end. It should also show the expected path of \(c_{i}\) from \(p\) to \(z_{i}\) as a picture. Algorithm 1 can be modified to collect targeted snippets of time series covering any expected posture and movements. In the end after line 9, a screen can be added asking the users to repeat an action a fixed number of times, recording the time series each time and labeling them according to the action that was asked of the user. This can be used later to detect specific users, posture, and movements in real time. ```
1 Input: an array of sensors \(S=(s_{0}\ldots s_{n})\)
2 Sort \(S\) such that, for \(s\in S\), the expected variation in the data is the lowest in
3 increasing order
4 for \(i=0\) to \(\left\lvert S\right\rvert\),
5 Display a new screen \(y_{i}\) containing
6 Colored zones \(z_{i}\) for each \(s_{0}\ldots s_{i-1}\)
7 Place all previous shapes \(c_{0}\ldots c_{i-1}\) in their respective calibrated zones
8 Place \(c_{i}\) in its initial location
9 Update the location of shape \(c_{i}\) according to \(s_{i}\)Wait until users can align all the sensor shapes \(c_{0}\ldots c_{i}\) to their corresponding zones \(z_{0}\ldots z_{i}\)

#### 3.3.2 Extended Software Features

While the primary focus of this work is the construction, installation, and calibration of the device, the device can generate real-time data, which can be used for further tasks. If the design is stable and the devices are correctly constructed, then it would be able to distinguish between users and postures easily with stable real-time data. With this streaming data, it is possible for:

* _User identification:_ This feature identifies individual users who are currently being observed. While the devices are typically built by individuals for their exclusive use, this is not always the case.