Patent Publication Number: US-9849882-B2

Title: Vehicle control based on crowdsourcing data

Description:
RELATED APPLICATIONS 
     The following U.S. Patent Application is related to the present application and is hereby specifically incorporated by reference: Provisional Patent Application No. 62/112,889, entitled “Vehicle Operator Prediction and Control Platform,” filed on Feb. 6, 2015. 
     DESCRIPTION 
     Background 
     Unless otherwise indicated herein, the materials described in this section are not prior art to the claims in this application and are not admitted to be prior art by inclusion in this section. 
     Modern vehicles often include navigational hardware or software to aid users when travelling from one location to another. A user can input a destination and the navigational hardware or software can present one or more routes from a start location to a destination location. Often route information will include the distance from the start location to the destination location. Sometimes the route information will include an estimate of the amount of time that it will take to travel from the current location to the destination location based on distance and speed. The user may select which route to take based on the distance or estimated time. Based on the user selection, the navigational hardware or software decides a route to the destination. 
     Meanwhile, various technologies can be utilized for the control of autonomous vehicles. Some systems involve placing a reference line for the vehicle to follow, while other systems may have a pre-defined route programmed into a vehicle. In some embodiments, an autonomous vehicle may be coupled to a track on the ground for guidance purposes. Other autonomous vehicles may be controlled by a computer and follow a route based on information stored in the computer. 
     An autonomous vehicle&#39;s navigational hardware or software may allow new route information to be programmed. A vehicle may be given a new route to follow based on maps or based on global position system (GPS) signals. Some autonomous vehicles may operate in non-autonomous mode where they can be driven similar to traditional human-controlled vehicles. When vehicles are driven in an autonomous mode, however, they may require more precise position information then when driven by a human operator. 
     SUMMARY 
     In some embodiments, a method for controlling a vehicle based on crowdsourcing data from vehicles includes at least: transmitting, by the vehicle, a request to a server, the request comprises a route to a destination; retrieving, by the server, navigation information for the request, the navigation information is autonomous navigation information; transmitting, by the server, the retrieved navigation information to the vehicle; controlling, by the vehicle, an operation of the vehicle based on the transmitted navigation information; collecting, by the vehicle, vehicle driving data, during driving according to the transmitted navigation information; transmitting, by the vehicle, the collected data to the server; generating, by the server, crowdsourcing data based on the collected data transmitted from a plurality of vehicles; receiving, by the vehicle, the generated crowdsourcing data from the server; updating, by the vehicle, the transmitted navigation information based on the received crowdsourcing data; and controlling, by the vehicle, the operation of the vehicle based on the updated navigation information. 
     In some embodiments, a vehicle includes at least: a communication unit configured to transmit a request for a route to a destination to a server, and receive navigation information retrieved according to the request from the server; a sensor configured to generate sending data; and a control unit configured to control an operation of the vehicle based on the received navigation information, collect, by the sensor, the sensing data during driving according to the received navigation information, generate driving data based on the collected sensor data, transmit the generated driving data to the server, receive crowdsourcing data from the server, update the received navigation information based on the received crowdsourcing data, and control the operation of the vehicle based on the updated navigation information. 
     In some embodiments, a server includes at least: a communication unit configured to receive a request for a route to a destination, from a vehicle; a storage unit configured to store route information; and a control unit configured to retrieve navigation information according to the received request, transmit the retrieved navigation information to the vehicle, receive collected data from a plurality of vehicles including the vehicle, combine the received data from each of the plurality of vehicles, extract a route-based data corresponding to the route of the vehicle, generate crowdsourcing data by using the extracted route-based data, and transmit the generated crowdsourcing data to the vehicle. 
     Details of one or more implementations are set forth in the accompanying drawings and the description below. Other features, aspects, and potential advantages will be apparent from the description and drawings, and from the claims. 
    
    
     
       DESCRIPTION OF DRAWINGS 
         FIG. 1  is an environment for controlling a vehicle based on crowdsourcing data collected by vehicles, in accordance with one or more embodiments. 
         FIG. 2  is a flow diagram of an embodiment of a process for controlling a vehicle based on crowdsourcing data from vehicles, in accordance with one or more embodiments. 
         FIG. 3  is a flow diagram of another embodiment of a process for controlling a vehicle based on crowdsourcing data from vehicles, in accordance with one or more embodiments. 
         FIG. 4  is a flow diagram of another embodiment of a process for controlling a vehicle based on crowdsourcing data from vehicles, in accordance with one or more embodiments. 
         FIG. 5  is a schematic illustrating a conceptual partial view of overlapping crowdsourcing data, in accordance with one or more embodiments. 
         FIG. 6  is a block diagram illustrating an embodiment of a vehicle, in accordance with one or more embodiments. 
         FIG. 7  is a block diagram illustrating an embodiment of an electronic control unit (ECU) embedded in a vehicle, in accordance with one or more embodiments. 
         FIG. 8  is a block diagram illustrating an embodiment of a server, in accordance with one or more embodiments. 
         FIG. 9  is a block diagram illustrating a system for controlling a vehicle based on crowdsourcing data collected by vehicles, in accordance with one or more embodiments. 
     
    
    
     All arranged in accordance with at least some embodiments of the present disclosure. 
     DETAILED DESCRIPTION 
     The following disclosure provides many different embodiments, or examples, for implementing different features of the disclosed subject matter. Specific examples of components and arrangements are described below to simplify the present disclosure. These are examples and are not intended to be limiting. 
     In the following detailed description, reference is made to the accompanying figures, which form a part hereof. In the figures, similar symbols typically identify similar components, unless context dictates otherwise. The illustrative embodiments described in the detailed description, figures, and claims are not meant to be limiting. Other embodiments are also utilized, and other changes are also made, without departing from the spirit or scope of the subject matter presented herein. It will be readily understood that the aspects of the present disclosure, as generally described herein, and illustrated in the figures, can be arranged, substituted, combined, separated, and designed in a wide variety of different configurations, all of which are explicitly contemplated herein. 
     The methods, vehicle, and server disclosed herein generally relate to control of a vehicle based on crowdsourcing data from other vehicles. In some embodiments, the methods, vehicle, and server disclosed herein relate to control of a vehicle in autonomous mode. 
       FIG. 1  is an environment for controlling a vehicle based on crowdsourcing data collected by vehicles, in accordance with one or more embodiments. 
     In an example embodiment, the crowdsourcing-based autonomous vehicle controlling environment  100  includes a plurality of vehicles  101 ,  102  and  103 , a wireless node  201  or  202 , and a server  300 . The wireless node  201  or  202  includes a transmitter and receiver. The vehicles  101 ,  102  and  103  are configured to perform autonomous driving based on navigation information received from server  300 , and the vehicles  101 ,  102  and  103  are equipped with a sensor which collects driving data, and equipped with a communication unit (not shown) configured to communicate with the wireless node  201  or  202 , via wireless network. The wireless node  201  or  202  is configured to transmit data between the vehicles  101 ,  102  and  103  and the server  300 . The server  300  is configured to analyze data transmitted from the vehicles  101 ,  102  and  103 , via the wireless node  201  or  202  or directly from the vehicles  101 ,  102  and  103 . 
     In some embodiments, each of the vehicles  101 ,  102  and  103  is equipped with a sensor configured to detect driving data. The driving data is based on the driver&#39;s actions or commands. For example, the driver&#39;s actions include at least one of timing of accelerating, braking or steering wheel rotating, and amount of accelerating, braking or steering wheel rotating. Navigation information is stored in and retrieved from a vehicle memory, in a database, or on the Internet. In some embodiments, new navigation information is received by server  300  wirelessly over a network such as a cellular network, an 802.11 network, or a Wireless Wide Area Network (WWAN), via the wireless node  201 ,  202  or directly from the vehicles. The vehicles transmit driving data to the server  300 , via the wireless node  201  or  202 , or directly. The driving data includes at least one of breaking data, acceleration data and steering data. In some embodiments, each of the vehicles  101 ,  102  and  103  communicates with the server  300 , in accordance with a predetermined cycle of time or, when the vehicles detect an event during the driving to the destination. In some embodiments, each of the vehicles  101 ,  102  and  103  includes a computer system to provide data processing. 
     In some embodiments, the autonomous driving of the vehicles  101 ,  102  and  103  are performed by a Motor Driven Power Steering (MDPS) system. The Motor Driven Power Steering (MDPS) system is a motor driven steering system assisting steering power by using power from a motor without using hydraulic pressure. The MDPS system is disposed in vehicles. The MDPS is equipped with a decelerator. The decelerator includes a worm-shaft/worm wheel rotated by a motor to assist a steering force. The decelerator further includes a motor driven column apparatus having a tilt motor. The decelerator further a telescopic motor to implement tilt and telescopic movement. The MDPS motor is controlled by an MDPS Electronic Control Unit (ECU). 
     In some embodiments, a driver of the vehicle accesses the server that is configured to control the vehicle based on crowdsourcing data through a software application. In some embodiments, the software application is a website or a web application compatible with a hardware system discussed subsequently. In some embodiments, the software application is, in-part, configured by a hardware system that is embedded in the vehicle. Though the present disclosure is written with reference to a device embedded in a vehicle, it should be understood that any computing device, in some embodiments, is employed to provide the various embodiments disclosed herein. 
     In some embodiments, the vehicles measure the driver&#39;s actions made by drivers of the vehicles, and store such actions. Such actions are interpreted to predict vehicle operator behavior in one or more driving situations. The aforementioned predictions are used to create semi-autonomous or autonomous control of the vehicles. In addition, the actions of drivers of the multiple vehicles are combined to provide a wider range of application. 
     In some embodiments, route data is collected from other vehicles and assists a vehicle to drive autonomously. A hardware system (e.g., computing device  1100  shown in  FIG. 7 ) is configured to store steering, acceleration, braking data in a memory storage of the hardware system, and then, the stored data is employed to drive vehicle autonomously. Moreover, embodiments comprise embedded software logic configured to override an autonomous driving system. Overrides are triggered if a data flag is raised by a connected sensor, for safety and instantly re-synchronizes route data to the driving system. 
     The detailed configuration of the vehicles  101 ,  102 , and  103  according to some embodiments will be described below with reference to below figures. In some embodiments, the wireless node  201  or  202  is at least one of a satellite, terrestrial repeater, Global Positioning System (GPS) signal repeater, and cellular signal repeater. The wireless node communicates with the server  300  or the vehicles, in accordance with a predetermined cycle or, when the wireless node receives a predetermined event signal from at least one of the vehicles. For example, the predetermined event signal includes a signal of departing of a vehicle and a signal of arriving of a vehicle. 
     In some embodiments, the server  300  is a cloud computing service. The server  300  performs aspects of computing such as, in some embodiments, data analysis. In some embodiments, the server  300  is centralized. In some embodiments, vehicles transmit the driving data to server  300  (e.g., navigation server) over network  400  (e.g., the internet), via a wireless node. In some embodiments, the vehicles  101 ,  102 , and  103  connect to the network  400  through cellular (or Wi-Fi) wireless node (or wireless access point)  201  or  202 . In some implementations, the driving data collected by vehicles  101 ,  102  and  103  is used to generate crowdsourcing data to be used for controlling the vehicles. In some embodiments, the server  300  collects driving data from a plurality of vehicles, correlates the traffic information, route condition information. The driving data is collected and organized based on location and time. The server  300  also generates the crowdsourcing data based on the collected driving data.  FIG. 2  is a flow diagram of an embodiment of a method for controlling a vehicle based on crowdsourcing data from vehicles, in accordance with one or more embodiments. 
     At operation S 201 , a vehicle (e.g., vehicle  101 ,  102 , or  103  shown in  FIG. 1 ) transmits a request for a route to a destination, to a server (e.g., server  300  shown in  FIG. 3 ). The server receives the request from the vehicle. In some embodiments, the request is input by a driver of the vehicle. The vehicle receives an input from the driver for the destination. The vehicle is configured to provide an interface for a driver by way of a data input device. In some embodiments, the interface is a touch screen. In some embodiments, the request is automatically generated by the vehicle. The vehicle determines the destination based on a travel log stored in the vehicle. Meanwhile, the vehicle is connected with the server via at least one of a cellular network, a Wi-Fi network and a satellite network. The request is transmitted via at least one of the cellular network, the Wi-Fi network and the satellite network. In some embodiments, the request is transmitted via a wireless node, or directly transmitted, to the server. 
     At operation S 202 , the server retrieves navigation information that includes the requested route. The navigation information is autonomous navigation information which includes vehicle controlling information. In some embodiments, the navigation information is stored in the server, or generated when the route request is transmitted from the vehicle. In some embodiments, the navigation information includes controlling information for steering wheel rotation, accelerating, and breaking. 
     At operation S 203 , the server transmits the retrieved navigation information, to the vehicle. The vehicle receives the retrieved navigation information from the server. In some embodiments, the retrieved navigation information is transmitted via at least one of the cellular network, the Wi-Fi network and the satellite network. In some embodiments, the retrieved navigation information is transmitted via a wireless node, or directly transmitted, to the vehicle. 
     At operation S 204 , the operation of the vehicle is configured to be controlled based on the transmitted navigation information. In some embodiments, based on the transmitted navigation system, a motor driven power steering (MDPS) in which an electric motor which does not use hydraulic pressure is used or electro-hydraulic power steering (EHPS) in which an electric pump which is actuated by a motor rather than by the driving power of the engine is used for controlling the vehicle. In some embodiments, the MDPS and the EHPS are combined. In some embodiments, the MDPS and the EHPS perform complementary functions and auxiliary steering power is provided at an emergency steering failure in order to guarantee stability. In this example, the vehicle includes the MDPS which assists steering power using the torque of a main motor and the EHPS which assists the steering power using hydraulic pressure that is generated by actuation of a hydraulic pump. The MDPS is used as a main steering device, and the EHPS is used as an auxiliary steering device in order to assist insufficient steering power during emergency malfunctioning of the motor or in heavy duty vehicles. For autonomous controlling motors of the MDPS and the EHPS are controlled by an Electronic Control Unit (ECU). In this example, controlling is performed based on controlling information included in the navigation information. An acceleration, and braking of the vehicle are also controlled by the ECU, with reference to the controlling information included in the navigation information. The detailed configuration of the vehicle to be controlled by the navigation information, according to some embodiments, is described in  FIG. 7 . 
     At operation S 205 , while driving, the vehicle collects data regarding the vehicle driving operation, according to the transmitted navigation information. The data regarding vehicle driving operation includes driving data. In some embodiments, the data of driver&#39;s action includes information on at least one of a steering rotation, accelerating and breaking. In some embodiments, the vehicle collects the data, during driving to the destination, in accordance with a predetermined cycle. In other embodiments, the vehicle collects the data, during driving to the destination when the vehicle detects an event during the driving to the destination. The event is detected based on data defining an event to be detected and based on sensing data. 
     In some embodiments, the vehicle generates sensing data by using a plurality of sensors equipped in the vehicle. In some embodiments, the sensors include at least some of a distance sensor, infra-red sensor, a pressure sensor, a speed sensor, a motion sensor, a light sensor, a proximity sensor, a global navigation satellite system (GNSS) (e.g., GPS receiver), a temperature sensor, a biometric sensor, or other sensing device, to facilitate related functionalities. The vehicle collects the generated sensing data, and generates the collected data based on the collected sensing data. 
     In some embodiments, the plurality of sensors transmits the sensing data to the driving control unit via a wireless network or wired network. A controller area network (CAN), a local area network (LAN), or a serial network is used for the transmission of the sensing data. 
     In some embodiments, at least one of the plurality of sensors detects a traffic light during driving of the vehicle, and a stop of the vehicle at a red right of the detected traffic light. The vehicle uses the detected traffic light information for controlling a speed of the vehicle. In some embodiments, the server transmits stop sign/stop light attribute information to the vehicle. In some embodiments, the vehicle receives stop sign/stop light attribute information for a geographic area as a navigation information from the server and the server transmits the stop sign/stop light attribute information to the vehicle for autonomous controlling. 
     At operation S 206 , the vehicle transmits the collected data to the server. The server receives the collected data from the vehicle. In some embodiments, the collected data is transmitted via at least one of the cellular network, the Wi-Fi network and the satellite network. In some embodiments, the collected data is transmitted via a wireless node, or directly transmitted, to the server. In some embodiments, the vehicle transmits the collected data in accordance with a predetermined cycle. In other embodiments, the vehicle transmits the collected data when the vehicle detects an event during the driving to the destination. The event is detected based on data defining an event to be detected and based on sensing data. 
     At operation S 207 , the server generates crowdsourcing data based on the collected data transmitted from a plurality of vehicles. Before generating the crowdsourcing data, the server receives the collected data from the vehicles. The server generates crowdsourcing data by using the received data. In some embodiments, the crowdsourcing data in generated by overlapping the collected data for overlapped route in the data from the vehicles. The detailed description of the overlapped information, according to some embodiments, will be described below with reference to  FIG. 3 . 
     At operation S 208 , the server updates stored navigation information based on the crowdsourcing data, and transmits the updated navigation information to the vehicle. In some embodiments, the server updates and transmits the navigation information when the crowdsourcing data is accumulated more than a threshold amount. At operation S 209 , the vehicle receives the crowdsourcing data from the server. In some embodiments, the data is transmitted via at least one of the cellular network, the Wi-Fi network and the satellite network. In some embodiments, the data is transmitted via a wireless node, or directly transmitted, to the vehicle. 
     In some embodiments, the server transmits the updated navigation information to the vehicle, and the vehicle receives the updated navigation information from the server. In some embodiments, the server processes the updated navigation information (e.g., filtering, noise cancelling, smoothing, or vectoring), and then transmits the processed navigation information to the vehicle. 
     At operation S 210 , the vehicle updates the navigation information based on the received external data. The vehicle combines the received crowdsourcing data and the collected data, and updates the navigation information based on the combined data. In some embodiments, the update is performed in accordance with a predetermined cycle. 
     At operation S 211 , the vehicle controls the operation of the vehicle based on the updated navigation information. During the driving based on the navigation information, when the vehicle detects a preset unusual event, the vehicle changes a driving mode of the vehicle to a driver-control mode. The preset unusual event, for example, includes an event that is not registered in the vehicle. The preset unusual event is detected based on data defining an event to be detected and based on sensing data. The controlling of the vehicle includes at least one of a speed controlling of the vehicle and a steering wheel angle controlling of the vehicle. 
       FIG. 3  is a flow diagram of another embodiment of a method  300  for overriding a vehicle based on crowdsourcing data from vehicles, in accordance with one or more embodiments. 
     Method shown in  FIG. 3  is performed during autonomous vehicle-driving. In some embodiments, in operation S 204  or in operation S 211  of  FIG. 2 , the ECU of the vehicle (e.g., vehicle  101 ,  102 , or  103  shown in  FIG. 1 ) is configured to override the autonomous vehicle-driving based on sensing data in accordance with the method shown in  FIG. 3 . 
     In operation S 301 , autonomous driving is performed. In the autonomous driving, a vehicle (e.g., vehicle  101 ,  102 , or  103  shown in  FIG. 1 ) is controlled based on crowdsourcing data, sensing data and/or navigation information, as described in  FIG. 2 . In some embodiments, in the autonomous driving, the vehicle&#39;s steering wheel, accelerator, and break are autonomously controlled. 
     At operation S 302 , the vehicle senses a surrounding area of the vehicle, during driving of the vehicle. In some embodiments, the vehicle generates sensing data regarding the surrounding area of the vehicle, by using a plurality of sensors equipped in the vehicle. The sensors include at least some of a distance sensor, infra-red sensor, pressure sensor, and speed sensor. 
     At operation S 303 , the vehicle detects an event based on sensing data. The event includes at least one of detecting obstacle in a route, impacting from the outside vehicle, impacting from the inside vehicle, vibrating of the vehicle, and waving of the vehicle. The event is detected based on a matching result between event data and sensing data. The data defining the event is stored in the vehicle or the sensor. In some embodiments, the vehicle detects the event when an amount of the sensing data of the event is greater than the predetermined threshold amount. 
     At operation S 304 , the vehicle checks whether the event is an event to override the autonomous driving of the vehicle. In some embodiments, information regarding the event to override the autonomous driving of the vehicle is stored in the vehicle, and the vehicle performs the checking by comparing the stored information with the sensing data. In some embodiments, the vehicle determines whether to override the autonomous driving when an amount of the sensing data of the event is greater than the predetermined threshold amount. In some embodiments, the vehicle determines whether to override the autonomous driving when a duration of sensing of the event is longer than the predetermined threshold duration. If the vehicle determines to override the autonomous driving of the vehicle, the operation proceeds to operation S 305 . If the vehicle determines to not override the autonomous driving of the vehicle, the operation proceeds to operation S 301 . 
     If the vehicle determines to override the autonomous driving of the vehicle, at operation S 305 , the vehicle halts the autonomous driving. In some embodiments, the vehicle outputs a notification to a driver of the vehicle before halting the autonomous driving. In some embodiments, after the halting operation, the vehicle performs a predetermined evasive action based on the navigation information. In some embodiments, the predetermined evasive action includes at least one of breaking, accelerating, and turning. 
     After the performing the predetermined evasive action, the vehicle, at operation S 306 , returns to the autonomous driving. In some embodiments, the autonomous driving is re-synchronized with reference to location data of the vehicle and navigation information. Meanwhile, when the vehicle determines that the detected event in the operation S 304  is not an event configured to override the autonomous driving of the vehicle, the vehicle keeps performing the autonomous driving S 301 . 
     At operation S 307 , the vehicle detects whether the vehicle arrives at a destination. The vehicle uses the navigation information and the current location of the vehicle for operation S 307 . If the vehicle determines arrival, the autonomous driving is ended. If the vehicle determines that arrival is not detected, the vehicle keeps performing the autonomous driving S 301 . In some embodiments, if the vehicle detects that a distance between the current location of the vehicle and the destination is less than a threshold distance, the vehicle outputs a notification. The notification includes at least one of message displaying, alarm sounding, vibrating, or alike which notify some information to a driver of the vehicle. 
       FIG. 4  is a flow diagram of another embodiment of a method  400  for controlling a vehicle based on crowdsourcing data from vehicles, in accordance with one or more embodiments. 
     In some embodiments, at the vehicle, before performing the autonomous vehicle-driving, in some embodiments, between operation S 201  and operation S 204  of  FIG. 2 , the ECU of the vehicle performs pre-operation for the autonomous driving. The operations of the pre-operation are described as below. 
     At operation S 401 , a vehicle receives a destination from a driver of the vehicle. For another example, the request is automatically generated by the vehicle. The vehicle determines the destination based on a travel log stored in the vehicle. 
     At operation S 402 , the vehicle detect a current location. In some implementations, the vehicle includes sensors, software and/or hardware for determining or tracking the location of the vehicle. In some embodiments, the vehicle includes a GNSS receiver for determining the location of the vehicle. The vehicle receives satellite signals from one or more GNSS satellites  106  and determine the location of the vehicle based on the satellite signals according to known methods. The vehicle include cellular and/or Wi-Fi transceivers for receiving and transmitting cellular and/or Wi-Fi signals. The cellular and/or Wi-Fi signals can be used to determine a location for the vehicle based on known locations for the cellular or Wi-Fi wireless nodes that are transmitting the cellular or Wi-Fi signals. In some embodiments, the vehicle uses triangulation or location averaging to determine the location of the vehicle based on the cellular and/or Wi-Fi signals. 
     At operation S 403 , the vehicle receives the navigation information from the server. The navigation information includes data for autonomous controlling the vehicle. In some embodiments, the data is crowdsourcing data for controlling the vehicle. In some embodiments, the navigation information is transmitted via at least one of the cellular network, the Wi-Fi network and the satellite network. In some embodiments, the navigation information is transmitted via a wireless node, or directly transmitted, to the vehicle. 
     At operation S 404 , the vehicle, when an amount of the crowdsourcing data related to the detected current location is less than a threshold amount, the ECU navigates or guides the vehicle to a different location associated with an amount of crowdsourcing data that is greater than the threshold amount. The different location is determined as a starting point. In some embodiments, the different location is the closest location from the current location of the vehicle, among the locations which have over-threshold amount crowdsourcing data. 
     In some embodiments, the server transmits information to the vehicle, such as, in some embodiments, the closest location for which the database has navigation information or crowdsourcing data. In this embodiment, the vehicle then displays to the driver the closest point and the driver then manually operates the vehicle in order to travel to the displayed location. In this embodiment, once the server or vehicle detects that the vehicle is in a location for which it has adequate data or adequate amount data, it performs some autonomous control of the vehicle. 
     At operation S 405 , the vehicle is controlled based on the navigation information, as described in the operation S 204  of  FIG. 2 . In some embodiments, the vehicle&#39;s steering wheel, accelerator, and break are autonomously controlled for autonomous driving of the vehicle. 
     At operation S 406 , the vehicle determines if a change of route occurred. In some embodiments, the vehicle detects the change of the route when the vehicle drives on a route other than the route determined by the navigation information. 
     At operation S 407 , when the vehicle detects the route change, the ECU navigates or guides the vehicle to a next location which is the closest location and is on the determined route. And then, at operation S 407 , the vehicle keeps performing autonomous driving. In some embodiments, the autonomous driving is re-synchronized with reference to location data of the vehicle and navigation information. 
     Meanwhile, if the vehicle does not detect the change of route, the ECU, at S 405 , keeps performing autonomous driving. 
     In some embodiments, when a distance between the detected current location and a location of which an amount of the crowdsourcing data is less than a threshold amount, is less than a threshold distance, the vehicle outputs a notification. The notification includes at least one of sound notification, vibration notification, text notification, and image notification. 
       FIG. 5  is a schematic illustrating a conceptual partial view of overlapping crowdsourcing data, in accordance with one or more embodiments. 
     In some embodiments, a vehicle or a server generates navigation information by overlapping a plurality of crowdsourcing data. In some embodiments, the server receives first crowdsourcing data from a first vehicle, and receives second crowdsourcing data from a second vehicle. The server generates the navigation information by overlapping the first crowdsourcing data and the second crowdsourcing data. The server sends the generated navigation information to vehicles for autonomous controlling. In some embodiments, the vehicle performs corresponding operations to the above of the server, to generate the navigation information. 
     In some embodiments, the server determines an overlapped section which is a part of the route to the destination and is included in each of the driving sections of the first crowdsourcing data and the driving section of the second crowdsourcing data. In this embodiment, the server then extracts third crowdsourcing data regarding the overlapped section, from the first crowdsourcing data, and extracts fourth crowdsourcing data regarding the overlapped section, from the second crowdsourcing data. The server generates the navigation information by combining the third and fourth crowdsourcing data. 
     The exemplary overlapping is described in  FIGS. 5( a ) and 5( b ) . As shown in  FIG. 5( a ) , a first driver drives a route D 1 , between  501  and  503 , a second driver drives a route D 2 , between  502  and  504 , and a third driver drives a route D 3 , between  501  and  504 . The route D 3  is covered by the route D 1  and the route D 2 , and the route between  502  and  503  is overlapped. 
     As shown in  FIG. 5( b ) , a first vehicle of the first driver collects driving data  505  for the route D 1 , and a second vehicle of the second driver collects driving data  506  for the route D 2 . Data (e.g. speeds, distances, vehicle operator actions, etc.) is collected by sensors embedded in the vehicles. Based on the driving data for the route D 1  and the driving data for the route D 2 , navigation information  507  for route D 3  is generated. 
       FIG. 6  is a block diagram illustrating an embodiment of a vehicle, in accordance with one or more embodiments. 
     In some embodiments, a hardware system includes one or more sensors  602  and  603 . The sensors  602  and  603  include sensors for receiving operator input. In some embodiments, sensors include one or more sensors for measuring steering torque and rotation, and gas pedal and brake pedal depression. In some embodiments, the vehicle further includes sensors  602  for detecting surrounding circumstances. Sensors  602  include cameras for detecting position relative to the road, traffic signs and signals, and obstacles in the road as well as velocity, acceleration and distance measuring devices. In some embodiments, sensors  603  include detecting surrounding sensors include, location determining devices, global positioning systems and triangulation systems. 
     At least one of sensors  602  and  603  interfaces with an electronic control unit (hereafter, ECU;  604 ). The ECU includes a computing device. Further, the ECU  604  includes volatile and non-volatile memory devices, such as, in some embodiments, RAM, ROM, flash memory, one or more hard drives and removable memory, and one or more devices for wirelessly transmitting data. The ECU  604  controls the motor  606  of the vehicle. The exemplary configuration of the ECU is described in  FIG. 7 . 
     In some embodiments, hardware  605  utilizes software for storing and transmitting the data. In some embodiments, the software incorporates methods for embedding metadata and transferring it wirelessly to a database. 
     The ECU  604  interfaces with the controls of the vehicle. In some embodiments, controls include motors, servos, pistons and computer controls that operate the speed and direction of the vehicle. Further controls operate auxiliary mechanisms, such as, in some embodiments, blinkers or horns to alert other vehicle operators. 
     In some embodiments, the vehicle further provide an interface for a driver of the vehicle by way of a data input device, such as, a touch screen. The driver, in some embodiments, select a destination on a data input device. The interface also displays relevant information to the vehicle operator, such as, in some embodiments, a map. 
     Data is acquired by sensors  602  and  603 , during some or all of the vehicle operation. Data is stored in local memory or external memory embedded in hardware  605 . Some or all of the acquired data is uploaded to the database in hardware  605 . The database analyzes the data or embed the data as metadata. In some embodiments, the database is embedded in the server (e.g., server  300  shown in  FIG. 1 ) which provides navigation information for the vehicle. 
     In some embodiments, recirculating ball  607  transmits power generated by the motor  606  to a worm gear of the vehicle for rotating the worm gear. The recirculating ball is a steering mechanism in older automobiles, off-road vehicles, and some trucks. By using the recirculating ball, vehicles use rack and pinion steering. The recirculating ball steering mechanism contains a worm gear inside a block with a threaded hole in it; this block has gear teeth cut into the outside to engage the sector shaft (also called a sector gear) which moves the Pitman arm. The steering wheel connects to a shaft, which rotates the worm gear inside of the block. Instead of twisting further into the block, the worm gear is fixed so that when it spins, it moves the block, which transmits the motion through the gear to the pitman arm, causing the road wheels to turn. 
       FIG. 7  is a block diagram illustrating an embodiment of an electronic control unit (ECU) embedded in a vehicle, in accordance with one or more embodiments. 
     Consistent with embodiments of the disclosure, the aforementioned memory storage and processing unit are implemented in a computing device, such as computing device  700  of  FIG. 7 . In some embodiments, the computing device  700  is an ECU or a part of the ECU. Any suitable combination of hardware, software, or firmware is used to implement the memory storage and processing unit. In some embodiments, the memory storage and processing unit is implemented with computing device  700  or any of other computing devices  718 , in combination with computing device  700 . The aforementioned system, device, and processors are examples and other systems, devices, and processors comprise the aforementioned memory storage and processing unit, consistent with embodiments of the disclosure. 
     In some embodiments, the computing device  700  controls an operation of the vehicle based on the received navigation information. The computing device collects the sensing data during driving according to the received navigation information, and generates driving data based on the collected sensing data. The computing device transmits the generated driving data to the server. The computing device receives crowdsourcing data from the server, and then, updates the received navigation information based on the received crowdsourcing data. The computing device controls the operation of the vehicle, based on the updated navigation information. 
     With reference to  FIG. 7 , an ECU consistent with embodiments of the disclosure includes a computing device, such as computing device  700 . In a basic configuration, computing device  700  includes at least one processing unit  702  and a system memory  704 . system memory  704  comprise volatile (e.g. random access memory (RAM)), non-volatile (e.g. read-only memory (ROM)), flash memory, or any combination. System memory  704  includes operating system  705 , one or more programming modules  706 , and includes a program data  707 . Operating system  705 , in some embodiments, is suitable for controlling computing device  700 &#39;s operation. In some embodiments, programming modules  706  includes application  720 . Furthermore, embodiments of the disclosure is practiced in conjunction with a graphics library, other operating systems, or any other application program and is not limited to any particular application or system. This configuration is shown in  FIG. 7 . 
     In some embodiments, computing device  700  also includes additional data storage devices (removable and/or non-removable) such as, in some embodiments, magnetic disks, optical disks, or tape. Such additional storage is illustrated in  FIG. 7  by a removable storage  709  and a non-removable storage  710 . Computer storage media includes volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information, such as computer readable instructions, data structures, program modules, or other data. System memory  704 , removable storage  709 , and non-removable storage  710  are all computer storage media examples (i.e., memory storage.) Computer storage media includes, but is not limited to, RAM, ROM, electrically erasable read-only memory (EEPROM), flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which is used to store information and which is accessed by computing device  700 . Computing device  700  has input device(s)  712  such as a keyboard, a mouse, a pen, a sound input device, a touch input device, etc. Output device(s)  714  such as a display, speakers, a printer, etc. is also included. The aforementioned devices are examples. 
     Computing device  700  also contains a communication connection  716  that allows computing device  700  to communicate with other computing devices  718 , such as over a network in a distributed computing environment, in some embodiments, an intranet or the Internet. Communication connection  716  is one example of communication media. Communication media is embodied by computer readable instructions, data structures, program modules, or other data in a modulated data signal, such as a carrier wave or other transport mechanism, and includes any information delivery media. The term “modulated data signal” describes a signal that has one or more characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, radio frequency (RF), infrared, and other wireless media. The term computer readable media as used herein includes both storage media and communication media. 
     A number of program modules and data files is stored in system memory  704 , including operating system  705 . While executing on processing unit  702 , programming modules  706  (e.g., application  720 ) performs processes including, in some embodiments, one or more of the methods as described above and illustrated in the figures. The aforementioned process is an example. Other programming modules that are used in accordance with embodiments of the present disclosure includes electronic mail and contacts applications, word processing applications, spreadsheet applications, database applications, slide presentation applications, drawing or computer-aided application programs, etc. 
       FIG. 8  is a block diagram illustrating an embodiment of a server, in accordance with one or more embodiments. 
     As shown in  FIG. 8 , the server  800  includes a communication unit  801 , storage  802 , a control unit  803 , and an analysis unit  804 . In some embodiments, the server  300  shown in  FIG. 1  has the same configuration with the server  800  shown in  FIG. 8 . 
     The communication unit  801  receives a request for a route to a destination, from a vehicle. Further, the communication unit  801  transmits crowdsourcing data or navigation information to the vehicle. 
     The storage  802  stores route/navigation information. 
     The analysis unit  804  generates navigation information based on the stored route information in the storage  802 . In some embodiments, the route information is map data. Further, the route information includes driving data collected by a plurality of vehicles. 
     In some embodiments, the control unit  803  retrieves navigation information, according to the received request from the vehicle. The control unit  803  transmits the retrieved navigation information to the vehicle, and receives collected data from a plurality of vehicles. Then, the control unit  803  combines the received collected data. The control unit  803  extracts a route-based data corresponding to the route of the vehicle, and generates the crowdsourcing data by using the extract route-based data. The control unit  803  transmits the generated crowdsourcing data to one or more vehicles. 
     In some implementations, a vehicle ( 101 ,  102  or  103  of  FIG. 1 ) transmits or reports driving data to the server  800  (e.g., navigation server) over network (e.g., the internet). In some embodiments, vehicles connect to the network through cellular (or Wi-Fi) wireless node or wireless access point ( 201  or  202  of  FIG. 2 ). In some implementations, the driving data collected from the vehicles is used to determine navigation information associated with steering wheel handling, accelerating and breaking. 
     In some implementations, the driving data is reported to the server  800  in real-time or near real-time. In some implementations, the driving data is stored on vehicles and reported to the server  800  at a later time. In some embodiments, vehicles are not connected to the network when the traffic information is collected. Thus, the vehicles stores the driving data to an internal storage device and report the driving data to the server  800  when the vehicles later establish a connection with the network. 
       FIG. 9  is a block diagram illustrating a system for controlling a vehicle based on crowdsourcing data collected by vehicles, in accordance with one or more embodiments. 
     In 1 st  layer, Self Driving Car corresponds to the vehicle  101 ,  102  or  103  of  FIG. 1 . Sensors correspond to the sensors  602  and  603  in  FIG. 6 , Analytics corresponds data stored in Hardware  605  in  FIG. 6 , and Vehicle Chassis correspond the MDPS which is aforementioned. In 2 nd  layer, Central Agent corresponds to control unit  803  in  FIG. 8 , Data Collector/Transmitter corresponds to analyzes unit  804  in  FIG. 8 , and Data Streaming corresponds to communication unit  801  in  FIG. 8 . In Vehicle Cloud, sensors correspond to the sensors  602  and  603  in  FIG. 6 , and Data Collector/Transmitter corresponds to Hardware  605  in  FIG. 6 . The above disclosed correspondences are non-limiting embodiments. 
     Each of the above identified instructions and applications can correspond to a set of instructions for performing one or more functions described above. These instructions need not be implemented as separate software programs, procedures, or modules. The memory  750  can include additional instructions or fewer instructions. Furthermore, various functions of the computing device  700  can be implemented in hardware and/or in software, including in one or more signal processing and/or application specific integrated circuits. 
     The terms “an embodiment”, “embodiment”, “embodiments”, “the embodiment”, “the embodiments”, “one or more embodiments”, “some embodiments”, and “one embodiment” mean “one or more (but not all) embodiments of the present disclosure(s)” unless expressly specified otherwise. 
     The terms “including”, “comprising”, “having” and variations thereof mean “including but not limited to”, unless expressly specified otherwise. 
     The enumerated listing of items does not imply that any or all of the items are mutually exclusive, unless expressly specified otherwise. 
     The terms “a”, “an” and “the” mean “one or more”, unless expressly specified otherwise. 
     Devices that are in communication with each other need not be in continuous communication with each other, unless expressly specified otherwise. In addition, devices that are in communication with each other may communicate directly or indirectly through one or more intermediaries. 
     A description of an embodiment with several components in communication with each other does not imply that all such components are required; a variety of optional components are described to illustrate the wide variety of possible embodiments of the present disclosure. 
     Further, although process operations, method operations, algorithms or the like may be described in a sequential order, such processes, methods and algorithms may be configured to work in alternate orders. Any sequence or order of operations that may be described does not necessarily indicate a requirement that the operations be performed in that order. The operations of processes described herein may be performed in any order practical. Further, some operations may be performed simultaneously. 
     When a single device or article is described herein, it will be readily apparent that more than one device/article (whether or not they cooperate) may be used in place of a single device/article. Similarly, where more than one device or article is described herein (whether or not they cooperate), it will be readily apparent that a single device/article may be used in place of the more than one device or article or a different number of devices/articles may be used instead of the shown number of devices or programs. The functionality and/or the features of a device may be alternatively embodied by one or more other devices which are not explicitly described as having such functionality/features. Thus, other embodiments of the present disclosure need not include the device itself. 
     The illustrated operations of  FIGS. 2-4  show certain events occurring in a certain order. In alternative embodiments, certain operations may be performed in a different order, modified or removed. Moreover, operations may be added to the above described logic and still conform to the described embodiments. Further, operations described herein may occur sequentially or certain operations may be processed in parallel. Yet further, operations may be performed by a single processor or by distributed processors. 
     The foregoing description of various embodiments of the disclosure has been presented for the purposes of illustration and description. It is not intended to be exhaustive or to limit the disclosure to the precise form disclosed. Many modifications and variations are possible in light of the above teaching. It is intended that the scope of the disclosure be limited not by this detailed description, but rather by the claims appended hereto. The above specification, examples and data provide a complete description of the manufacture and use of the composition of the disclosure. Since many embodiments of the disclosure can be made without departing from the spirit and scope of the disclosure, the disclosure resides in the claims hereinafter appended.