Kuruma: The Vehicle Automatic Data Capture for Urban Computing Collaborative Systems

Smartphones can provide coverage in large areas all around the world and with the availability of powerful operating systems they can become solid sensing infrastructures. In fact, static sensors are hard to deploy and maintain while modern mobile devices include many sensors that can be used to sense and benefit from collaborative communities. This project tries to improve urban computing by developing a framework able to create monitoring applications for mobile devices, focusing on obtaining the highest degree of interoperability between sensors. A prototype application has been developed to demonstrate the feasibility of creating multidisciplinary applications with several different approaches. The application developed consists of a Road Roughness Information System that measures smoothness and detects irregularities on the roads.


I. INTRODUCTION
owadays passenger vehicles are filled with technology; some modern cars have numerous different sensors that are continuously sensing. This converts vehicles into a great platform for urban sensing networks. All the amount of information that can be obtained from vehicles can be very valuable if it is shared and compared with other readings. This data can be used for numerous practical applications. Our intention is to collect as much information as possible and upload it to the cloud. We expect this information to be useful for many applications.
The motivation is originated with the generalization of the use of mobile phones that combined with the use of a cheap OBD (On Board Diagnosis) connector can be a very powerful tool, providing almost complete engine control as well as monitoring parts of the chassis, body and accessory devices, including the diagnostic control network of the carrier. Since these sensors are connected to vehicles that continuously move, we can achieve a much larger sensing areas than with a static sensor network. Static sensors can be deployed in main roads but it would be very expensive to install them in the road network. Covering wide areas of roads is part of the Nericell [1] project that consists on monitoring road and traffic conditions by using the sensors in the users smartphones.
Using the built-in accelerometers, microphone and GPS they are able to detect potholes, bumps, breaking and honking, the use of the Smartphone sensors in other mobile areas [2][3].
The idea of using a vehicle as distributed mobile sensors is not new. CarTel [4] has established a system that can be installed into vehicles. Each vehicle, when installed with an embedded computer, is considered a node that gathers and processes sensor readings locally. Data is sent to a central portal, where it is analyzed and visualized.
There are other researches that have shown the possible benefits of studying data collected by sensors in cars. Traffic can be efficiently monitored as proved by several researches [5,6] by recording the speed of several vehicles and comparing the information.
Even commercial products like TomTom HD Traffic record the speed of their users to make traffic estimations. TomTom claims that if 10% of vehicles in the road would drive with their system they would have a real time accurate description of the traffic conditions. Not only traffic can be monitored. Some researches such as ParkNet [7] and Fueoogle [8] have already demonstrated that sensing different parameters in vehicles can have many utilities. They established that by collecting data from sensors they can create the optimum routes for fuel efficiency or locate street parking spaces in an accurate way.
In addition, complex simulations on distributed systems, for instance, SignalGuru [9] consists on generating traffic light patterns that provide the optimum speed for vehicles to reduce fuel consumption and reduce the environmental impact.
All these collaborative systems aim for different objectives, but they all have a common base, they all sense from devices mounted in moving vehicles. We aim to create a common platform that can gather all kinds of different localized data that can be compared with data from other users to obtain some kind of common benefit.
The contributions of this work are the following: 1. The creation of a framework capable to help in the implementation and maintenance of sensor based applications. The framework is called NIKKO. 2. The creation of a user focused application that can sense and upload data by the use of Smartphones connected to the vehicles OBD port. This application is called Kuruma.
Kuruma: The Vehicle Automatic Data Capture for Urban Computing Collaborative Systems 3. The discussion of four possible uses that can be based on the Kuruma application, including black box applications, road hazard detections systems, automatic suspension setting recommendations and a study of the relationship between road roughness and fuel consumption. The remainder of this paper is structured as follows: first, in Section 2 we present an overview of the NIKKO framework. In Section 3 we describe the main concepts related to the Kuruma application. In Section 4 we show a practical use of Kuruma through a road roughness information system. Section 5 underlines other possible applications for Kuruma. Finally, in Section 6 we indicate our conclusions and future work to be done.

II. THE NIKKO FRAMEWORK
In order to satisfy the objectives of the project, we designed and created a new framework that helps us to generate a system in which sensors can be easily managed to create many kinds of applications that use different types of sensors ( Fig.  1).

Fig. 1. NIKKO Overview
The framework was designed to obtain as much flexibility as possible with sensors. In order to enable a quick and efficient way to change the destination of the sensor notifications, a configuration file has been kept separated from the source code so that it can be easily modified without the need of recompiling. NIKKO has the ability of adding, deleting and interchanging sensor notifications with a simple file that can change the complete behavior of the applications. That way, the applications that use the framework can be very flexible and valuable tools that are easily maintainable.
The core function is to monitor the events that the sensors generate and to create the specific response actions included in the configuration file (Fig. 2).

Fig. 2. NIKKO Modules
When the module receives a new event, it checks if the received event is one of the events that it has to handle. If it is included on the list, it calls the method of the actions it has assigned.
NIKKO is conFig.d by an XML file. The file provides the relationships between the sensors events and the actions they have to trigger. The configuration file can be obtained from a local file in the device or a remote location in a web server.
Internal and external sensors are encapsulated in events that are triggered when sensors reading reach a specific measure.
The Device Actions module is used to send the actions when an event is triggered. This module can be highly conFig.d and can create all sorts of actions, including uploading to servers or notifications in applications.

III. KURUMA
The Kuruma application senses the information from vehicle surroundings. The application is based on the NIKKO framework developed for Android devices. It uses an OBD Bluetooth port to connect to the sensors of the vehicle that is monitored.
Taking in consideration all the sensors that can be connected to a phone with the OBD port, it points out the need to collect data and upload it to share it with other users. There could be hundreds of possible applications.
Our intention is to create the base for an application that gathers localized data from vehicles to show the feasibility of these kinds of systems.
The developed application can monitor any standard parameter such as speed or engine load (called PIDs) from an OBD port of a vehicle. Likewise, any nonstandard PIDs could be easily added and monitored (Fig. 3). Once the application is started it will begin searching for paired Bluetooth devices. If it finds an ELM327 Compatible Bluetooth OBD adapter it will start sending requests to obtain the sensors indicated in the configuration file. Then, the application will show in the device screen the values obtained from the vehicle's OBD port.
The application uses the NIKKO framework to manage the different sensors. With NIKKO, the actions that the application has to perform when there is a specific event are easily configurable. By changing the XML configuration file the application can show in the application screen or upload to a server the monitored sensors.

IV. PRACTICAL APPLICATION
To demonstrate the Kuruma's potential we have developed a naïve system that could lead to future research lines of investigation.

A. Road Roughness Information System
The application consists on developing a cheap system to create and maintain information of the roughness in roads. Pothole Patrole [10] focuses on detecting potholes and bumps, but does not measure the state of the roads. In a deteriorated road there could be no potholes at all, so this system would not find any irregularities. Potholes appear in weakened roads, so the ideal system would help detecting irregular roads and potholes. Our objective is to not only focus in detecting potholes but also adding the ability to track the state and smoothness of the roads.
To achieve these objectives the system uses Smartphones with built-in accelerometers and GPS receivers. The mobile phone users will record with the accelerometers the alterations of the roads and will report them to a centralized server. This information is useful to generate a detailed map of cracking, rutting, patching and potholes without the need of special expensive vehicles that measure roughness of the roads.
The motivation is to create a system that monitors in real time the smoothness of the roads by the help of phone accelerometers. Fig. 4 shows an example. Phone users obtain data that will be able to generate a more detailed and realistic map of the actual state of the roads. Thus, by increasing the accuracy of the information on the roads, maintenance can be done in a much more efficient way, selecting only the roads that really need a service. In addition, after the conservation works the road evolution can also be monitored.

B. Implementation
To implement the system we have used an application that runs in an Android phone that will collect data from the accelerometers using our special algorithm and emit it to the system data server.
The data is sent to the server and must be collected while driving a vehicle. The Android application will be in standby mode without transmitting data; only when the accelerometer sensors detect a perturbation, the data will be sent. The data that the application sends will be the intensity of the acceleration, the speed of the vehicle in the acceleration moment and the location provided by the GPS. Providing the speed is crucial because the same bump at different speeds can cause different accelerations. For example, a big bump at a very low speed could be inappreciable for the accelerometer sensors. That is why speed data is necessary to ensure that the data is valid. The user can forget to stop the application and while he is walking, the application will be aware of this and discard this data without sending it. After the data is classified it is shown in a map available through an Internet browser.
To test the application, a small deployment of the system with one vehicle was done. The preliminary results obtained are shown in the Fig. 5. They were obtained on the University of South Florida campus and show the bumps and smoothness of some roads

A. Relation between Consumption and Road Roughness
Working with Kuruma application, research could be developed to determine how irregular roads affect the consumption of vehicles. To generate this study, vehicle consumption in addition to the irregularities of roads should be monitored at all times.
To determine a correct relationship between the data many additional factors have to be considered. Not all drivers will drive with a manner of the same efficiency. Also different cars have different consumptions and their suspension differ in order to record the bumps. Hills have to be reflected, in terms of consumption is different to go uphill than to go downhill. Also external factors like weather conditions or traffic state have to be measured to ensure the correctness of the data.

B. Black Box
The idea is create a Black Box similar to those used in aircraft or railways locomotives. Its function is to capture all the possible information from vehicles and record it in case of an accident. Depending on the intensity of the crash the system will contact automatically with the emergency services providing relevant existing information that can collect from the accident. Also all the other data will be captured for it to be examined with more detail.
Depending on the vehicle it can record different parameters from the vehicle and its surroundings like video, audio, speed, accelerations, vehicle position, throttle position, DTC's (Trouble Codes) and other parameters obtained from the OBD port.
We have already done a first prototype that detects crashes and reports them by calling the emergency services. Fig. 6 shows the augmented reality application based on the Wikitude API that is used to find the crashed vehicles.

C. Road Hazard Detector
This system is destined to detect risks in the road like for example, slippery roads. To detect risky conditions of the road the system must be installed in modern vehicles that are equipped with some kind of Electronic Control System (ESP). The ESP improves the safety of a vehicle's stability by detecting and minimizing skids.
The idea to monitor the activity of the ESP and when it starts working determine the situation that made it trigger. Thanks to other parameters like speed, throttle position and the kind of road the vehicle is going though, it could be determined if it was an inadequate speed of the driver or if there was actually a danger in the road. This information would be sent to a server. So if other drivers report the same situation in the same place of the road, a notification would automatically be sent to alert other drivers around the areas. This information could be also very useful and effective for authorities not only to respond to a specific alert, but to determine in which parts of the roads it would be more likely to generate an accident.

D. Automatic Suspension Setting
Based on the information of the accelerometers provided by users a model of the irregularities of the road can be obtained. This is useful for vehicles that can set up their suspension settings changing its firm. If the road is very bumpy you would like to change your settings to a softer suspension, and if the road is very smooth you can change the setting for a stiffen suspension that increases safety.

VI. CONCLUSIONS AND FUTURE WORK
In this paper, we have presented a framework for urban computing monitoring that is aimed to develop collaborative user focused applications. The framework settles the base for future applications which creates a series of benefits such as standardization, integration, flexibility and maintainability.
Through a unified architecture we have been able to develop a base application and full working prototype that classifies the state of the firm of the roads. Road Roughness Information System is a naïve application that was created just as an example. Despite that, it could have great future potentials for different kinds of applications.
The framework is still in development, but with the developed applications and the examples provided we have demonstrated the feasibility of the framework and discovered new directions and features that need to be implemented for future versions. Additionally, because of the collaborative user focused nature of the framework, issues involving trust, privacy and security still have to be resolved in a near future.
In addition, we have observed that all sensors and events are treated equally. In real-world applications, not all the information has the same importance. Some events could be mere statistic Fig.s while other could be vital emergency information that has to be immediately sent. The obvious solution would be to make all the information important and send it as soon as possible; however this has terrible consequences in real-world applications viability. For these reasons we have designed, but not yet implemented, an improved version of NIKKO with priorities (Fig. 7). There are important because real users of mobile devices have data restriction limitations. Added to this problem is the issue of power consumption, that it could be mitigated when the Smartphone is plugged in a vehicle but still could be an interest to take into consideration for person centered applications.
The principal idea of flexibility is maintained, having the same basic scheme. The same three modules are preserved, but new components needs to be added to them.
The center module is still in charge of monitoring the events that the sensors generate and to create the specific respond actions included in the configuration file. Likewise, the configuration file or files are still managed by it and can be imported from the local device or from a remote location.
The main change is that the configuration file will include extra information concerning priorities. NIKKO will obtain information from the device such as, data connection availability, battery status and location information that will help decide the action that has to perform.
A Communication Manager and a new database will be added to store the obtained data. The communications manager would be in charge of making the connections with the NIKKO server. Depending on a 5 level priority scale it will upload the information when the requirements are met. Gathered information could be discarded, logged, saved, uploaded or urgently uploaded.