Abstract

Vibration comfort is an important factor affecting the quality of service (QoS) of bus. In order to make people involved in supervising bus’s vibration comfort and improve passengers’ riding experience, a novel mode of passenger crowdsourcing is introduced. In this paper, comfort degree of bus vibration is calculated from bus’s vibration signals collected by passengers’ smartphones and sent through WiFi to the Boa web server which shows the vibration comfort on the LCD deployed in bus and maybe trigger alarm lamp when the vibration is beyond the threshold. Three challenges here have been overcome: firstly, space coordinate transformation algorithm is used to solve the constant drift of signals collected; secondly, a low-pass filter is designed to isolate gravity from signals real-timely via limited computing resources; thirdly, an embedded evaluation system is developed according to the calculation procedure specified by criterion ISO 2631-1997. Meanwhile, the model proposed is tested in a practical running environment, the vibration data in whole travel are recorded and analyzed offline. The results show that comfort degree of vibration obtained from the experimental system is identical with the truth, and this mode is proved to be effective.

1. Introduction

With the rapid development of the economy and continuing progress of automobile manufacturing process, the quantity of vehicles is increasing continually in whole society. It brings convenience to people’s work and life; at the same time it also has a negative impact on traffic congestion and environmental pollution. Priority to the public transport, improving the quality of service (QoS) of bus, and enhancing the bus ride comfort are important means to attract passengers to travel by public transport so as to ease traffic congestion and reduce environmental pollution [1]. The vibration from vehicle’s brake and acceleration, friction between tire and road surface, excitation of transmission shaft, engine, and other rotating parts are the main factors that affect vehicle ride comfort, which is called vibration comfort. Since the bus as an inexpensive tool for public travel is limited in structural design, cost, and other reasons, the bus’s ride comfort usually is lower than the sedan car.

The evaluation perspectives of the vehicle comfort are different from different researchers; there are some controversies, but all follow international criterion ISO 2631-1997 (Mechanical Vibration and Shock-Evaluation of Human Exposure to Whole-Body Vibration) basically, which uses weighted acceleration root mean square (RMS) as evaluation indicator of vibration comfort. Hensher et al. evaluate it based on the longitudinal impact on vibration comfort caused by improper operation of the driver during the bus acceleration and deceleration [2]. Eboli and Mazzulla proposed four independent impact factors for vehicle comfort; there are thermal comfort, noise, vibration comfort, and longitudinal acceleration, and they combined these factors with the influence of individual differences on the overall comfort to establish a bus comfort evaluation model [3]. Lee and White proposed an improved evaluation method based on the criterion ISO 2631-1997, in which wavelet analysis is used to filter the noise of the bus vibration signals, and subjective evaluation is added [4]. Palmer et al. use questionnaire to evaluate the effect of vibration on people’s health, and it is an effective method worthy of learning [5]. In these researches to evaluate vehicle vibration comfort, acceleration sensors are used to be fixed on the specific position in the vehicle to collect the vibration signals of the vehicle, and then the vibration signals will be analyzed in offline mode; finally, the results of vehicle vibration comfort are obtained combining with people’s experience. These methods that use fixed sensors at the specific location and analyze signals in offline mode cannot fully perceive the vibration signals in different positions of the vehicle, and the vehicle vibration comfort cannot be fed back to the driver in real time.

In the era of mobile Internet, smartphone as personal communication and office terminal becomes one kind of the indispensable equipment in people’s daily life; therefore, it becomes possible for passengers to collect bus’s vibration signals under the crowdsourcing mode using the sensors built-in smartphone such as accelerometer sensor and orientation sensor [6]. Crowdsourcing mode originated in 2006, which is a solution and production mode to solve the distributed problems by the public contribution [79]. In this paper, the passengers’ crowdsourcing mode was adopted through deploying Boa server and WiFi devices in the bus. Passengers use their smartphones to collect and process bus’s vibration signals and then transmit the results to Boa server to show the current vibration comfort through the LCD in real time. When the vibration degree exceeds the threshold, the alarm will be triggered and the alarm lamp is turned on time to remind the driver to drive cautiously. The crowdsourcing mode where passengers participate in the bus’s vibration comfort evaluation freely and voluntarily is an effective means to improve the QoS of bus to attract the public to travel by bus.

2. Bus Vibration Signals Collection

Under passenger crowdsourcing mode, the bus vibration signals are collected by the acceleration sensors built in the smartphone. However, the bus vibration signals collected are dependent on the smartphone own coordinate system; the signals will vary with the posture change of the smartphone, and the drift of bus acceleration signals is introduced in the inertial coordinate system in which the actual situation of the bus vibration is showed. To solve this problem, the space coordinate transformation is introduced to map acceleration signals collected by the smartphone in the smartphone’s coordinate space to the inertial coordinate space to overcome the drift of acceleration signals caused by the posture change of the smartphone [10], to ensure the acceleration signals accuracy and stability whichever posture the smartphone is.

2.1. Sensors to Collect Signals

The sensor of acceleration built-in smartphone is made from microelectromechanical systems (MEMS) which integrated on a silicon wafer to measure the acceleration along -axis, -axis, and -axis. Commonly, the acceleration sensors include BMA series of BOSCH, 897X series of AMK, and LIS3X series of ST. These sensors connect to smartphone’s microcontroller unit (MCU) by interintegrated circuit (I2C) or serial peripheral interface (SPI) interface and provide an acceleration measurement in the range of ±2G to ±16G usually, and the accuracy of signals is about 16 bits which is enough to meet the needs of the bus vibration comfort evaluation. However, the sensor of orientation built-in smartphone is implemented through the accelerometer sensor and geomagnetic sensor which also built in the smartphone, data provided by the accelerometer sensor and geomagnetic sensor are calculated, and the orientation sensor is realized, in which the angle data about the three axes, called azimuth, pitch and roll, is acquired. The algorithm detail to implement the orientation sensor is not opened to the public, it is the companies’ private property, and therefore, users can only obtain the measuring result of the orientation sensor.

The parameters of acceleration and orientation sensor built-in smartphone are listed in Table 1.

2.2. Coordinate System

Smartphone’s coordinate system is a relative coordinate system depending on the smartphone’s screen. When the mobile phone is placed horizontally and screen is upward, smartphone’s screen center is the origin of this coordinate, the direction parallel to the short side of the screen is the -axis, the direction parallel to the long side of screen is the -axis, and the direction vertical up to the screen is the -axis, as shown in Figure 1(a). However, the world coordinate system is an absolute coordinate system, which describes the position of each point on the earth by latitude, longitude, and elevation, as shown in Figure 1(b). The inertial coordinate system in which the bus vibration comfort will be calculated can be regarded as an intermediate status between the smartphone and the world coordinate system, while its origin is identical with the origin of the smartphone’s coordinate system and its axes are paralleling to the axes of the world coordinate system. Transformation from the smartphone’s coordinate system to the inertial coordinate system coordinate only needs rotating operation, while transformation from the world coordinate system to inertial coordinate system only needs shift operation.

The raw signals collected by smartphone only denote the acceleration quantity along the three axes on smartphone’s coordinate space. The rotation of smartphone’s coordinate system will occur in the inertial coordinate space while the posture of smartphone is changing due to the smartphone being placed and moved randomly by its owner; as a result, the mapping values of triaxial accelerometer will be changing simultaneously;in addition, with the impact of gravity, the raw signals collected by the smartphone cannot express the bus’s actual vibration. Therefore, the acceleration signals need to be transformed from smartphone coordinate system to inertial coordinate system.

2.3. Algorithm to Transform Coordinates

In space analytic geometry, another new coordinate system can be generated through the initial coordinate system which is rotated one or more times relative to the third coordinate system, and the relationship between the new and old coordinate system can be described with direction cosine. According to this theory, the triaxial acceleration is regarded as a vector, whose three direction cosines are the cosines of three angles between the vector and the three axes, and then the coordinate transformation from the smartphone’s coordinate system to the inertial coordinate system will be realized. The following three formulas will explain how to use the cosine matrix to describe the relationship between two vectors, and they are also beneficial to understand the principle of acceleration’s space coordinate conversion by using direction cosine.

, , and are used to denote the triaxial accelerations in smartphone’s coordinate system, and , , and are used to denote triaxial accelerations in inertial coordinate system, because the acceleration vector is unique, so they satisfy

The latter two expressions in (1) can be expressed as matrix forms, and then (2) could be obtained through transposition

According to the rules of vector multiplication, the multiplication result of two unit vectors is equal to the cosine of angle between them. In (2), , , , , , and are all unit vectors, so (2) can be described as (3), where , , , , , , , , and are the angles between each two unit vectors, respectively:

It is the key step to solve the rotation matrix . In (3), matrix depends on 9 angle parameters. Although its principle is simple, smartphone’s built-in sensors cannot measure these angle data. Therefore, the derived formula of matrix will be described by three Euler angles which can be measured by smartphone.

Known from Table 1, the smartphone’s orientation sensor can provide current device’s attitude datum, which are azimuth, pitch, and roll angle, respectively, and they are denoted as Greek letters , , and , respectively. According to spatial geometric principles, if the smartphone is at a certain posture status, the status can be achieved through rotating the three angles in turn from the inertial coordinate system, and the rotation process is shown in Figure 2.

In the right-hand Cartesian coordinate system, the three-dimensional transformation of rotations around the axis can be described by matrix form. Equation (4) has come from the rotation around the -axis, where is the value of O_values[0] provided by orientation sensor:

Equation (5) has come from the rotation around the -axis, where is the value of O_values[1] provided by orientation sensor:

Equation (6) has come from the rotation around the -axis, where is the value of O_values[2] provided by orientation sensor:

The three basic rotation sequences are connected in the general rotation sequence called --, and then the combined rotation matrix can be generated, as shown in

Finally, (8) could be obtained through a transformation of (7):

The values of , , and are provided by acceleration sensor shown in Table 1. According to (8), the acceleration in inertial coordinates can be obtained; they are , , and , respectively. Then, the acceleration time history will be recorded for the evaluation of vibration comfort.

3. Evaluation of Bus Vibration Comfort

A bus is a complicated vibration system with characteristics of multidegree freedom and nonlinear feature. Vibration from bus is transmitted to passenger’s body mainly through three portions: seat’s lazyback, seat’s support surface, and passenger’s feet, respectively; many scholars have a lot of research works in human body vibration, especially Michael Griffin and his teams. Their paper mainly refers to the generally accepted international criterion ISO 2631-1997. According to this criterion, the method of total weighted value is recommended to evaluate the effects of vibration on human comfort [11]. This method is based on Fourier transform, by which the total weighted acceleration RMS is calculated using vibration signals of seat collected during the bus running, and then the bus vibration comfort value is acquired. In a further study, R. A. Lee et al. proposed that human body can be regarded as an elastic damping system; they recommended a method, using mechanical vibration received by human body, to denote the vibration input of human body, and therefore it is reasonable by using smartphone’s sensor to evaluate bus vibration comfort.

3.1. Methods to Calculate Comfort Value

The model of vibration received by human body in seated status is specified by international criterion ISO 2631-1997, as shown in Figure 3. During the evaluation of comfort, the criterion specifies that not only the three-direction linear vibration of the three portions, seat’s lazyback, seat’s support surface, and passenger’s feet, respectively, but also the three-direction angular vibration of the seat’s support surface should be considered; that is, there are a total of 3 points of vibration input and 12 axial vibrations should be calculated in order to completely describe the vibration. Studies show that vibration acceleration transmitted from seat’s support surface contributes the most effect to the human body among these factors, and its vibration acceleration belongs to the category of whole-body vibration [12]. While the angular vibration of the seat’s support surface and the linear vibration of seat’s lazyback and feet contribute quite small effect to the human’s body [13], they can be neglected in general.

International criterion ISO 2631-1997 specifies that human body has different sensitivity for different frequencies of vibration, so different frequencies of vibration should be weighted, respectively. Appendix  A of Chinese national criterion GB 4970-1996 (Method of Random Input Running Test-Automotive Ride Comfort) gives an approximate frequency weighted function in each axial in the range of 0.5~80 Hz according to the frequency weighted curve. The weight values of vertical direction of -axis are shown in (9); the weight values of horizontal direction of -axis and -axis are shown in (10) as follows:where is the frequency of vibration, which is obtained by acceleration signals after FFT processing in frequency domain.

While acceleration signals data collected by smartphone are dealt with power spectrum analysis, the power spectral density function is obtained, and the uniaxial weighted acceleration RMS is a statistic within a period of time, which can be calculated from , as shown in where is the weight coefficient of frequency, and this function in each axial in the range of 0.5~80 Hz can be obtained from (9) and (10).

The calculation of total weighted acceleration RMS is shown in where , , and are weighted acceleration RMS of each axials, respectively, and coefficient 1.4 is the ratio of the vertical, longitudinal, and horizontal corresponding frequency weighted curve in the range of human body’s most sensitive frequency.

The relationships between the total weighted acceleration RMS and people’s subjective feelings are provided in the criterion ISO 2631-1991 draft, as shown in Table 2. Because of comfort with highly subjective, passengers’ individual differences, psychological and physical state and surroundings may all affect the result of comfort evaluation. Here the vibration comfort according to people’s subjective feelings is denoted by the range from 10 to 0, in which, value 10 denotes no uncomfortable feelings and value 0 denotes the extremely uncomfortable feelings. Then, the calculation equation of bus vibration comfort can be obtained by using the quadratic fitting with the data in Table 2; the relations between evaluation degree and total weighted acceleration RMS is shown in where is total weighted acceleration RMS and is the degree of comfort evaluation.

3.2. Signals Filtering

The raw acceleration signals collected by smartphone contain gravity, which has serious interference on the evaluation of bus vibration comfort. Because the component signals of gravity in acceleration signals are relatively stable, the gravity signals can be isolated as the low-frequency portion by using low-pass filter, then the isolated gravity signals are subtracted by the raw acceleration signals, and the vibration acceleration signals without gravity can be obtained finally. According to this method, one kind of low-pass filter is designed for processing the raw acceleration signals to filter the gravity signals in real time, and its algorithm is described in Algorithm 1.

(1) public void onSensorChanged(SensorEvent event)
(2) final float alpha = 0.8;
(3)   gravity[0] = alpha gravity[0] + (1 − alpha) event.values[0];
(4)   gravity[1] = alpha gravity[1] + (1 − alpha) event.values[1];
(5)   gravity[2] = alpha gravity[2] + (1 − alpha) event.values[2];
(6)   linear_acceleration[0] = event.values[0] − gravity[0];
(7)   linear_acceleration[1] = event.values[1] − gravity[1];
(8)   linear_acceleration[2] = event.values[2] − gravity[2];
(9)

The filter is realized with the method of differential iteration, and its difference equation is shown in where is the parameter of alpha in the filter, is the value of gravity during each of iterations, and is the raw acceleration signals collected by sensor.

The filter’s transfer function is shown in (15), where is the parameter of alpha in the filter:

4. Implementation of Experimental System

The experimental system of bus vibration comfort evaluation consists of two parts, an embedded server and smartphone clients, respectively, and they can communicate with each other through WiFi network inside the bus. The embedded server is installed with the open source operating system of Linux whose kernel was cut according to the need, in which the Boa server is deployed to process the requests from passengers with smartphones; Qt as the programming tool is used for designing the interface of the system. Firstly, the minimum system of embedded Linux was built on embedded hardware platform of ARM S3C6410 which includes the transplantation of Uboot, kernel, and root file system; then the drivers of alarming lamp and LCD were compiled into the kernel; secondly, the Boa server was deployed in this system, and the corresponding common gateway interface (CGI) code was realized; finally, the client program of smartphone was developed by Android development tools (ADT). The basic structure of the experimental system is shown in Figure 4.

In Figure 4, the embedded platform is Tiny6410 platform; WiFi network is provided by TP-LINK’s TL-WR842N wireless router.

PC development environment is Ubuntu 12, the kernel version of embedded Linux system is 2.6.22, the compiler is GCC-4.6.3, and the cross-compiler is ARM-Linux-GCC-4.3.2.

4.1. Server Design

Boa is a single task web server supporting for CGI programming based on UNIX or Linux, used for embedded systems widely for its open source and only 60 KB executive code. In Boa server, a HTTP request list is established to hold multiple HTTP connecting requests. When a connecting request from client arrives, the request will be queued in the list and be processed by the single process; rather than many processes that are created to process these requests, this mode saves system resources greatly for there are no additional processes to create and kill; therefore, Boa server has high efficiency to process the requests from clients; at the same time, Boa server also has the functions such as generating directory automatically and extracting files automatically, which has high utility value in the embedded system.

The server system works in the C/S mode, and the HTTP protocol is used to deal with the “request-response” communication between smartphone’s client and the embedded web server; the workflow is shown in Figure 5. When the bus vibration comfort value exceeds the threshold, the client App installed in passenger’s smartphone will send alarm request to the Boa server through WiFi network, and the CGI program will call the driver of alarming lamp to light the alarming lamp in order to remind the driver to drive cautiously.

4.2. Client Design

The smartphone’s client App collects the vibration signals through the sensors built-in smartphone during the bus running. Generally, the calling mechanism of sensor built-in smartphone is classified into four steps, getting a system service, setting the sensor type, registering listener, and implementing the callback function.

4.2.1. Getting a System Service

API provides a function of getSystemService to obtain a system service, which finds the specified system service objects by the String type parameter as an identifier.

4.2.2. Setting the Sensor Type

According the system service and the parameters, a specified kind of sensors can be bound to the system service.

4.2.3. Registering Listener

After binding the sensor’s type, a listener needs to be registered to transmit the signals collected by sensors to smartphone’s system while API provides an interface of registerListener for registering the listener.

4.2.4. Implementing The Callback Function

After accomplishing the previous three steps, the listener callback function including the subsequent operation needs to be implemented. The callback function is generally defined as the object of SensorEventListener, and the response methods of the system are written in the abstract method of onSensorChanged.

After collecting acceleration signals by sensors, the smartphone’s client needs to process the raw signals by using filtering algorithm to isolate gravity signals and then transform the coordinate. Finally, the total weighted acceleration RMS within one minute will be calculated. When the calculating result exceeds the threshold of 0.8, an alarm request will be sent to the Boa server. The workflow of client App is shown in Figure 6.

5. Experiment and Result Analysis

5.1. Experiment

The experiment was carried out in number 139 bus in Lanzhou. First, the experimental system was deployed in a number 139 bus, and the Boa server and WiFi network were started; then ten testers dispersed in different locations on the bus seats with their smartphones as the system clients to collect and process the bus vibration signals in the running bus.

The experiment route of number 139 bus is shown in Figure 7. Along the route, segments D1 (a to b) and D2 (c to d) are used as contrast test sections, site E is a crossing passed through by railway track, and the traffic status is seriously bad.

5.2. Result Analysis

In this experiment, the 10 smartphones as clients to collect the vibration signals in the number 139 bus from site a (Central Laboratory) to site d (Zhongshan Bridge) and 10 groups of vibration acceleration data were gotten after dealing the signals with coordinate transformation. To average the 10 groups of vibration acceleration data, the waveforms of vibration signals are shown in Figure 8. Among them, the three subgraphs indicate the vertical acceleration along -axis, -axis, and -axis, respectively, the horizontal axis is the number of samples which is collected in 34 minutes during bus running, and it only depends on the travel speed and phone sensor’s acquisition frequency. Here, we set the acquisition frequency of 40 Hz and the speed of bus about 20 Km/h.

As shown in Figure 8, the vertical acceleration along -axis is in the range of −9.473~34.64 m/s2 and has the largest fluctuation, which indicates that the seat’s support surface has greatest impact on human body. Meanwhile, the lateral acceleration along -axis is in the range of −8.551~4.021 m/s2 and has less fluctuation than -axis, coming from the uneven road incentives. And the horizontal acceleration along -axis caused by the acceleration and deceleration of the bus is in the range of −4.884~7.59 m/s2 and has less fluctuation than -axis as well, which reflects the stability of driving.

The gravity component contained in the raw vibration signals will interfere with the acceleration along -axis, -axis, and -axis, especially along the -axis; therefore, the low-pass filtering was used to isolate the gravity component from the vibration signals; due to the limited computing ability of smartphone, this filtering does not need too much computation so as to balance the filtering effect and real time performance. The comparison waveforms of the vibration signals before and after filtering process along -axis are shown in Figure 9.

In the normal running speed of number 139 bus, the acceleration vibration signals in four specify locations of the bus were collected by the testers, and then the average weighted acceleration RMS could be obtained through calculation with these signals. The comparison results of the average weighted acceleration RMS between D1 segment (Central Laboratory to Small Lake) and D2 segments (West Lake Park to Zhongshan Bridge) are shown in Table 3.

From Table 3, the average weighted acceleration RMS in D1 segment is greater than D2 segment significantly for the different road condition of D1 and D2 segments. In D1 segment, Central Lab to Small Lake, the number 139 bus goes down along Lan-Gong-Ping Street which has a large slope, and the bus must cross the railway track nearby Shang-Xi-Yuan; because of the uneven road and large fluctuation in this segment the average weighted acceleration RMS is greater than D2 segment. While in D2 segment, Westlake Park to Zhongshan Bridge, the bus goes straight along the South Riverside Avenue all the way, and the road is in good quality; therefore the average weighted acceleration RMS is less than D1 segment. Figures 10 and 11 are the bus vibration comfort indicators displayed by LCD in the bus in real time, respectively. Figure 10 indicates that the bus is running in the D1 segment and Figure 11 is running in the D2 segment. The results in Table 3 and indicators in Figures 10 and 11 are identical with the people’s subjective feelings, which show that this system has better reliability.

6. Conclusions

In this paper, the evaluation method based on passenger crowdsourcing mode is proposed, which can fully perceive the vibration signals in different positions in the bus and indicate the vibration comfort in real time. Compared with traditional methods, passages’ participation and supervision to improve the QoS of bus are boosted. By this method, the experimental system was implemented and tested in number 139 bus in Lanzhou, and the results show that the bus vibration comfort gained by this experimental system is identical with the passengers’ subjective feelings, which verifies the feasibility of this evaluation method. This method provides a more scientific and cheaper measure means for evaluating the bus vibration comfort, which contribute to promote the development of public transport.

Competing Interests

The authors declare that they have no competing interests.

Acknowledgments

This work is supported by the Natural Science Foundation of China under Grant no. 61262016, the University Foundation of Gansu Province under Grant no. 04-056001, the Natural Science Foundation of Gansu under Grant no. 1208RJZA239, and the Technology Project of Lanzhou under Grant no. 2012-2-64.