1. Introduction
The driver’s condition can have a direct impact on his or her ability to operate the vehicle. The poor psychophysiological state of drivers is often the cause of car accidents. To address this problem, car manufacturers are increasing the level of automation in cars to support drivers. However, this raises other problems. Currently, partially automated cars are on the road (Level 2 automation as defined by the Society of Automotive Engineers (SAE; [
1]). Soon, conditional automated driving (L3-SAE) could be adopted on public roads, depending on technological and legislative advances. If so, this type of vehicle will take over the dynamic driving task and ask drivers to regain control if necessary. However, for long periods without intervention, the driver may doze off or engage in other activities and not be in optimal conditions to take over control. Before cars are fully autonomous, it is therefore necessary to develop tools to best assist the driver. One way to do this is to collect data that continuously assesses the driver’s condition and to use this information to provide optimal assistance. This can be done by using the driver’s condition as input to an intelligent model that can adapt the information provided to the driver through the human-vehicle interfaces [
2]. Physiological signals are one source of data providing intrinsic information about the driver’s condition. The relevance of these to assess the state of the driver according to various components such as fatigue and drowsiness [
3,
4,
5,
6,
7,
8], workload [
8,
9,
10,
11,
12,
13,
13] or stress [
8,
14,
15,
16,
17] has been proven in scientific literature.
In particular, the respiratory signal can be a valuable data source. The breathing pattern may change when drivers are drowsy [
18], when they are talking, or when their cognitive load increases [
12]. Measures of respiratory rate and respiratory variability can be calculated from the raw respiration signal. The latter can be recorded with reference laboratory respiratory sensors such as a respiratory belt transducer. Yet, it cannot be used in this context, although they have proven to be effective. If drivers are to be assessed for breathing under real-world driving conditions, it is not feasible to require them to wear a breathing belt every time they want to drive. Therefore, it is necessary to find a way to collect data in a robust, non-intrusive and continuous manner. Some contact-based systems were proposed in the literature, but either no quantitative analysis was made [
19,
20] or the performance (e.g., error rate) achieved was not reported [
21,
22]. Also, other solutions may be more expensive or more difficult to implement than the one proposed in this work [
23]. This paper aims at filling the research gap by proposing a low-cost contact-based solution evaluated in user tests during simulated driving. This solution can further be implemented for driver monitoring in real conditions of both manual and automated driving.
3. Conception and Implementation
3.1. System Architecture
Figure 1 shows an overview of the system architecture. Two FSRs were attached to the seat belt through the housings. Initially, one sensor was to be placed on the abdomen and one on the chest. However, the designed system allowed the sensors to slide along the seat belt. Hence, different sensor locations were tested. The sensors were connected to a microprocessor responsible for collecting the signals and smoothing them with a digital filter. The data was sent in real-time to a laptop computer via a serial connection. The design of the system’s parts is explained in the subsections below.
3.2. Sensor Housing Design
The sensor housing must be unobtrusive, reliable, concentrate chest (or abdominal) pressure on the sensor surface, and be adjustable. The design process was iterative to find the optimal shape that met all these requirements. It led to the consideration of three different designs: a “U” shape, a concave shape, and a round shape. The parts were designed in Creo Parametric 6.0, and cut in Ultimaker’s Cura software. The parts were printed in polylactic acid (PLA) using the Ultimaker 2+ printer and a 0.4 mm nozzle.
The first housing design was the “U” shape. The mechanical part could slide along the seat belt. The FSR was wedged between the belt and the part and attached to the latter. Pressure from the chest/abdomen was transferred to the sensor and captured by the system.
Figure 2a,b show the computer-designed prototype and the printed prototype of the “U” shape of the sensor housing, respectively. The sensors were assembled on the housing with small (5 mm diameter) rubber disks glued to them (see
Figure 2c). However, this design provided a small contact area with the driver, but lacked robustness under motion, and exposed the sensors to external disturbances.
The second housing design had a concave shape. The objective of this design was to increase the contact area with the driver’s body.
Figure 3a shows the computer-aided design (CAD) of the housing. The mold took a concave shape, consisting of two individual parts. The width was 5 centimeters, slightly larger than the international standards for seat belt width (46–49 mm). The length was 10 centimeters, for a total area of 50 cm
2 on the driver’s chest. A radius of 580° ensured sufficient comfort and ease of positioning. A 15 cm wide inclined extrusion in the median plane of the bottom plate allows the sensor wires to exit the housing without being obstructed.
Figure 3b,c show the printed concave housing assembled at the FSR with tape.
The third housing design had a round shape. This new shape was designed because of the disadvantages of the previous model during testing. The shape and size of the concave mold did not perform as expected (see
Section 4.1 and
Section 4.2.1). A smaller housing size was also required because it physically interfered with the chest strap.
Figure 4a shows the CAD of the round housing. It also consists of two parts, but the attachment mechanism has been simplified. This new design allows for better positional adaptability. The width and length were identical (5.2 cm), which is slightly larger than the seat belt. It was possible to easily slide the housing along the seat belt by positioning the belt between the upper surface of the housing and the L-shaped handles (see the upper left view in
Figure 4a). This smaller profile allows both housings to be positioned above or below the reference sensor located in the middle of the subject’s chest. A 3 mm deep circular extrusion was made inside the upper housing. This cylindrical hole guides the translation of a convex disc that is in contact with the subject, under the seat belt. There are two silicone discs between the lower and upper parts of the housing, with the FSR wedged between them. They are held together by a viscous contact adhesive, which allows for movement and elasticity of the connection. On the side of the bottom part, an extrusion was made to allow the sensor to exit the housing without impeding the movement of the disc. The edges of the square shape were rounded with a radius of 10 mm so as not to interfere with the sensor as it moves in the seat.
Figure 4b,c show the printed round housing assembled to the FSR with tape.
3.3. Electrical Circuitry
The electrical circuitry of the system is shown in
Figure 5. The two FSRs were wired on a breadboard and were powered by the microcontroller at 3.3 volts. The output of the sensors was fed into a resistor pulled to the ground. This voltage divider system was wired to the analog inputs of the microcontroller, where the signal can be sampled by the analog converters. For testing purposes, a button was added to start the microprocessor program. It also allowed for faster data analysis by setting the timestamp to 0 when starting the simulation.
3.4. Data Acquisition, Signal Processing and Data Transmission
The microcontroller sampled two sensors at a frequency of 100 Hz, filtered the data, and sent it serially. The sensor data were read by 2 ADC units in the Arduino Metro M4 microcontroller. Initially, the desired sampling rate was 1000 Hz to process the collected signal simultaneously with other physiological signals collected with the reference system (BioPac MP36). For performance reasons, it was lowered to 100 Hz, which is sufficiently high. BioPac recommends using a sampling rate of 50 Hz for proper analysis of respiratory signals. Thus, the choice of 100 Hz allowed for a margin of error while still having a properly recorded signal.
To smooth the respiratory signals before transmission, a transfer function for a low-pass exponential smoothing filter (RC filter) at the desired sampling rate (100 Hz) was created using Matlab. The cutoff frequency was set to 2 Hz. The transfer function was then discretized to obtain a discrete-time transfer function. It was applied to the two analog values collected by the sensors. Thus, the signal noise was filtered out above 2 Hz in real-time.
For the serial transmission, the baud rate (in bits per second) was set to 230,400 for fast data transmission. In addition, the packets should be as small as possible. The serial transmission was done through an 8-byte frame, containing a long variable for the time, and two integer values for the sensor readings. The variables must be of the same type (uint32_t in this case), which size the data frame to 12 bytes. Therefore, the ADC resolution was set to 12 bits, defining the range of respiration values from 0 to 4095. The column headings (Sensor 1, Sensor 2, Time) were sent through the serial port when the simulation started. Data was written as ASCII characters on the serial bus in the main loop.
3.5. Data Reception, Visualization and Storage
To visualize the signals in real-time to ensure the correct positioning of the sensors, the open-source serial logger SerialPlot was used. It allows for efficient data plotting and transmitting incoming data in a CSV file. The software recognizes active serial ports and simulation parameters can be recorded (baud rate and others). It facilitated system testing, especially in terms of speed and reproducibility. For each test session and participant, a separate CSV file was created containing the user’s breathing signals with time stamps. These files were saved on the laptop for subsequent calculation of indicators of respiratory rate variability.
3.6. Routine for the Calculation of Respiratory Rate Variability Indicators
An automatic routine was implemented in Python to calculate the participants’ respiratory rate from the signals collected during the test sessions. The signals collected by the two systems (the reference chest belt and the proposed system) were merged. Two additional signals were created from the signals captured with the proposed system: the average values of the two signals (sensor fusion), and the average value of the two signals after normalization between 0 and 1 (sensor fusion scaled). Using Neurokit [
31], a Python module used for physiological data processing with advanced biosignal processing routines, the respiration rate of each participant was calculated, for each period (baseline, deep breathing, manual driving, automated driving) and each signal (sensor 1, sensor 2, reference sensor, sensor fusion, scaled sensor fusion). Then, the mean absolute error (MAE) of the signals were calculated for each sensor and each period, following the following formula (with N the number of subjects tested):
5. Discussion
The results of test sessions 2 and 3 suggest that breathing rate can be measured with an average error of about one breath per minute on average across all activities (resting, deep breathing, manual driving, and non-driving-related task during automated driving). The results show that the sensor should be placed on the chest to optimize the system’s performance. As mentioned earlier, the data from the sensor located on the driver’s abdomen could be noisy, either because the subjects were wearing too much clothing or because their anatomy did not operate the sensor properly. Even with two sensors located on the driver’s chest, the results obtained in test session 3 were no better than those obtained in test session 2. The convex disc that was in contact with the subject, under the seatbelt, stands out clearly from the mold and remains in good contact with the subject, despite the clothing or movements. Some movements of the chest may be absorbed by a too big thickness of clothing. A solution is to push the convex disc slightly harder on the subject automatically if the signal’s amplitude is too low, thanks to a spring system or an actuator. For further research, the influence of the number of clothing layers on the accuracy of contact-based systems should be investigated.
Sensor fusion was tested to improve system performance, but this was not the case. In test sessions 2 and 3, the signal from one of the two sensors contained noise, which affected the results of sensor fusion. More advanced sensor fusion techniques should be explored to improve the results. For example, an intelligent system would analyze the quality of the signal collected by the two sensors, before using the more qualitative signal to calculate the respiration rate.
To remove the noise in the signals and reduce the error rate, the effect of the digital filter type applied to the signals was tested. Focusing on the results obtained by sensor 1, signal filtering reduced the error except for the automated driving period (see
Figure 7). The lowest mean absolute error (0.13 min
−1) was obtained by applying a 2-pole filter with a cutoff frequency of 1 Hz to data recorded by a sensor located on the chest (sensor 1) during deep breathing. The 4-pole filter with a cutoff frequency of 1 Hz appeared to be the best option for minimizing the error in all periods, achieving an average absolute error of 0.5 min
−1 during the resting and deep breathing periods, and 1 min
−1 during the driving periods. During manual driving or a non-driving task, drivers may be moving. Their bodies may not be in contact with the belt, which may distort the assessment of their breathing rate. Since we have seen that a filter can reduce the error measured during certain activities but not necessarily for all, an intelligent system could recognize the task performed by the driver and select the corresponding filter, the one that would give the most accurate measurement of the breathing rate.
Even with the fusion of the sensors and the different filters tested on the signals, the results obtained are slightly worse than those of a previous study using RFID tags, which can estimate the driver’s breathing rate with a median error of 0.10 to 0.15 bpm [
23]. The error increases with increasing respiratory rate. Another system that uses acoustic signals has also shown promising results (median error less than 0.35 breaths/min) [
28]. However, the system can be disturbed if other vehicle occupants are talking. Also, the cost of these solution may be higher than the solution proposed in this work. Another non-contact based system using antenna achieved 0 to 8% of error, but it was evaluated only during 30 s on 3 test subjects [
27]. Besides, results obtained in this work cannot be compared with some other systems, either because they did not perform a quantitative analysis [
19,
20], or because they statistically analyzed the results obtained by the proposed system with a reference system without reporting the error values in the manuscript [
21,
22].
Although the results obtained are encouraging, this work still has certain limitations. A larger sample of subjects would be necessary to obtain more consistent results. Indeed, with four to six subjects tested, the mean absolute error drastically increased when the sensor was not properly positioned for one subject. The results presented here provide an approximation of the performance that can be achieved by such an inexpensive contact solution to assess driver respiration rate. Another limitation concerns the reference chest belt. It was used as a reference value of breathing rate, but it could also be wrong and far from the actual breathing rate of drivers. Another reference measurement should be used to overcome this problem, using a non-contact method. Besides, no specific methodology was employed to choose the position of the sensors on the chest or the abdomen. It should be better defined to ensure that the sensor is positioned the same for all test subjects. Sensor’s placement could also have an influence on the system’s performance.