Patent Publication Number: US-11643099-B2

Title: Engaging and disengaging for autonomous driving

Description:
CROSS REFERENCE TO RELATED APPLICATIONS 
     The present application is a continuation of U.S. patent application Ser. No. 16/377,383, filed Apr. 8, 2019, which is a continuation of U.S. patent application Ser. No. 15/982,044, filed May 17, 2018, now issued as U.S. Pat. No. 10,300,926, which is a continuation of U.S. patent application Ser. No. 15/785,623, filed Oct. 17, 2017, now issued as U.S. Pat. No. 10,000,216, which is a continuation of U.S. patent application Ser. No. 15/498,886, filed Apr. 27, 2017, now issued as U.S. Pat. No. 9,821,818, which is a continuation of U.S. patent application Ser. No. 15/337,339, filed Oct. 28, 2016, now issued as U.S. Pat. No. 9,663,117, which is a continuation of U.S. patent application Ser. No. 15/075,878, filed Mar. 21, 2016, now issued as U.S. Pat. No. 9,511,779, which is a continuation of U.S. patent application Ser. No. 14/746,268, filed Jun. 22, 2015, now issued as U.S. Pat. No. 9,352,752, which is a continuation of U.S. patent application Ser. No. 14/333,839, filed Jul. 17, 2014, now issued as U.S. Pat. No. 9,075,413, which is a continuation of U.S. patent application Ser. No. 14/095,226, filed Dec. 3, 2013, now issued as U.S. Pat. No. 8,818,608, which is a continuation of U.S. patent application Ser. No. 13/792,774, filed on Mar. 11, 2013, now issued as U.S. Pat. No. 8,825,258, which claims the benefit of the filing date of U.S. Provisional Patent Application No. 61/731,717 filed Nov. 30, 2012, the entire disclosures of which are hereby incorporated herein by reference. 
    
    
     BACKGROUND 
     Autonomous vehicles use various computing systems to aid in the transport of passengers from one location to another. Some autonomous vehicles may require some initial input or continuous input from an operator, such as a pilot, driver, or passenger. Other systems, for example autopilot systems, may be used only when the system has been engaged, which permits the operator to switch from a manual driving mode (where the operator exercises a high degree of control over the movement of the vehicle) to an autonomous driving mode (where the vehicle essentially drives itself) to modes that lie somewhere in between. 
     BRIEF SUMMARY 
     Aspects of the disclosure provide a method. In such aspects, the method includes receiving a request to switch a vehicle from a manual driving mode to an autonomous driving mode. In response, protocol data is accessed. This protocol data is used by a processor to assess the status of the vehicle&#39;s environment, the vehicle and systems of the vehicle, and a driver and identify one or more conditions. The method also includes accessing task data which associates conditions with tasks that may be performed by a driver to change the condition. The task data is used to generate a set of tasks. Each task of the set of tasks is displayed in an ordered sequence. Once the tasks are complete, the switch from the manual driving mode to the autonomous driving mode may proceed. 
     In one example, assessing the status of the vehicle&#39;s environment, the vehicle and systems of the vehicle, and a driver includes accessing sensor data, accessing detailed map information, communicating with various systems of the vehicle, and communicating with a remote computer. 
     The assessments may include, for example, one or more of determining whether the current or future weather would make autonomous driving unsafe, uncomfortable for the vehicle&#39;s passengers or damage the vehicle, whether the vehicle&#39;s actual location agrees with the vehicle&#39;s location relative to the detailed map information, whether data received from the sensors of the detection system agrees with the corresponding detailed map information, whether the vehicle is currently driving in an area pre-approved for initiating the autonomous mode, whether the vehicle is currently driving in a lane pre-approved for initiating the autonomous mode, whether the roadway is paved (as opposed to dirt), whether the road is wide enough (as opposed to being too narrow for two vehicles to pass one another), whether the vehicle is on a straight roadway (as opposed to driving around a curve, down or up a hill, etc.), whether the vehicle is sufficiently centered in the lane, whether the vehicle is surrounded by or boxed in by other vehicles (for example, in dense traffic conditions), whether the vehicle is currently in a school zone, whether the vehicle is facing oncoming traffic (for example, driving northbound in a southbound lane according to the detailed map information), whether another vehicle is pulling into the vehicle&#39;s lane proximate to the vehicle, whether the vehicle is at least some pre-determined minimum distance from other vehicles or moving objects in the roadway, whether the vehicle must make any small maneuvers to avoid non-moving or slow moving objects in the roadway, whether the vehicle is traveling too fast or too slow, whether any upcoming maneuvers would prevent a switch from manual to autonomous driving mode, whether the vehicle can be driving in the autonomous mode for a minimum period of time before a switch to manual mode is required, whether the various features of the autonomous driving system of vehicle are working properly, whether the vehicle has met minimum maintenance standards (for example, oil changes are up to date), whether the vehicle&#39;s tires are properly inflated, whether the vehicle&#39;s doors are closed, whether the vehicle is currently in “drive” (as opposed to “neutral,” “reverse,” or “park”), whether the vehicle is in two wheel drive (for example, on a vehicle which allows for the driver to manually switch into four wheel or all wheel drive), whether the vehicle&#39;s automatic wipers are currently on, whether the vehicle&#39;s headlights or fog lights are on, and whether no other warning indicators (such as check engine lights) are currently active, and whether the driver&#39;s seatbelt is properly buckled. 
     Other conditions that prevent a switch from manual to autonomous mode may include that the vehicle is not in “drive,” that the automatic wipers are not on, that the automatic lights are not on, and that the vehicle is not in a lane pre-approved for initiating autonomous driving. In such cases, the generated set of tasks may include putting the vehicle in drive, turning on automatic wipers, turning on automatic lights, and moving the vehicle to a lane pre-approved for initiating autonomous driving. In this example, the sequence of displayed tasks includes a first displayed task for putting the vehicle in drive, a second displayed task for turning on automatic wipers, a third displayed task turning on automatic lights, and a fourth displayed task moving the vehicle a lane pre-approved for initiating autonomous driving. The first displayed task is displayed until confirmed completed. When the first displayed task is completed, the second displayed task is displayed until the second task is completed. When the second displayed task is completed, the third displayed task is displayed until the third task is completed. When the third displayed task is completed, the fourth displayed task is displayed until the fourth task is completed. 
     In another example, the preventive conditions may include that the vehicle is not in “drive,” that the automatic wipers are not on, that the automatic lights are not on, that the vehicle is not in a lane pre-approved for initiating autonomous driving, that the vehicle is not centered in a lane, that the vehicle is then moving too fast, and that the vehicle is too close to another object in the roadway. In this example, the generated set of tasks may include putting the vehicle in drive, turning on automatic wipers, turning on automatic lights, moving the vehicle a lane pre-approved for initiating autonomous driving, centering the vehicle in the lane, slowing the vehicle down, and increasing the distance between the vehicle and the another object in the roadway. 
     In another example, the method also includes, before using the task data to generate the set of tasks, correcting by the processor any of the identified one or more conditions pre-approved for correction by the processor. In another example, assessing the status is performed continuously while the tasks are being completed. In this regard, additional conditions may be identified and used to add additional tasks to the set of tasks. 
     In another example, the method may also include, after switching to the autonomous driving mode, maneuvering the vehicle in the autonomous driving mode and receiving a request to switch from the autonomous driving mode to the manual driving mode. This request may be not recommended or denied when the vehicle is performing an action that cannot be safely or easily transferred to the driver before the action is complete. In this example and in response to an indication by the user that the user wants to return to manual mode, a warning may be displayed to the driver when switching to manual driving mode is not recommended. 
     Other aspects of the disclosure provide systems including a processor which performs some or all of the various features of the methods described above. Further aspects of the disclosure provide a non-transitory, tangible computer-readable storage medium on which computer readable instructions of a program are stored. The instructions, when executed by a processor, cause the processor to perform some or all of the various features of the methods described above. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG.  1    is a functional diagram of a system in accordance with aspects of the disclosure. 
         FIG.  2    is an interior of an autonomous vehicle in accordance with aspects of the disclosure. 
         FIG.  3    is an exterior of an autonomous vehicle in accordance with aspects of the disclosure. 
         FIG.  4    is an illustration of a highway used by way of example in accordance with aspects of the disclosure. 
         FIG.  5    is an example of map information in accordance with aspects of the disclosure. 
         FIG.  6    is another example of map information in accordance with aspects of the disclosure. 
         FIG.  7 A  is a pictorial diagram of a system in accordance with aspects of the disclosure. 
         FIG.  7 B  is a functional diagram of a system in accordance with aspects of the disclosure. 
         FIG.  8    is a series of screen images in accordance with aspects of the disclosure. 
         FIG.  9    is a series of screen images in accordance with aspects of the disclosure. 
         FIG.  10    is a flow diagram in accordance with aspects of the disclosure. 
     
    
    
     DETAILED DESCRIPTION 
     A vehicle may make a variety of determinations before allowing a driver to operate a vehicle in an autonomous driving mode, such as handing off control of the vehicle to the vehicle&#39;s computer, or allowing the driver to switch from the autonomous driving mode to the manual driving mode. This may include conducting a series of environmental, system, and driver checks and also providing a driver with a checklist of tasks before allowing the driver to hand off control of the vehicle to the vehicle&#39;s computer. 
     In one example, a computer associated with a vehicle having an autonomous driving mode and a manual driving mode may receive a request to switch from a manual driving mode to an autonomous driving mode. The computer may then respond by accessing protocol data and using it to assess status of the vehicle&#39;s current environment, the vehicle&#39;s likely future environment, the vehicle, and the driver. The computer may then determine if these assessments have identified any conditions that the system uses to prevent vehicle from being placed into an autonomous driving mode (hereafter, “preventive conditions”). If not, the computer may proceed with the switch from the manual to the autonomous driving mode. 
     If, as a result of the assessments, the computer identifies one or more preventive conditions, the computer may determine whether the computer or driver can change those identified conditions immediately or within a certain period of time. If the preventive conditions cannot be so changed, the computer may display a failure message to the driver. In some examples, this failure message may indicate the particular issue for the failure. 
     If the computer can change the identified preventive conditions, the computer may take the actions necessary to do so. Even if the computer is otherwise capable of changing the preventive condition, the vehicle may be designed to require the driver to change the condition. For example, the driver may be in a better position to assess if and how the preventive condition can be changed. If no identified preventive conditions remain, the computer may proceed with the switch from the manual to the autonomous driving mode. 
     If after the computer corrects any of the preventive conditions other preventive conditions remain, the computer may generate a corresponding task or task for each of the remaining problem conditions. The computer may then display the tasks in order of priority to the driver. For example, the computer may be programmed to always display the tasks one at a time in a predetermined order, or dynamically determine the order in which the remaining tasks should be displayed. Once the task is completed, the computer may display the next task for completion. The compute may continue to display the tasks until each is corrected, and the computer may then proceed with the switch from manual to autonomous driving mode. In addition, this list may be recomputed periodically such that if one of the steps is completed while another step is being shown, then the completed task may be removed. 
     While the driver is performing the tasks, the computer may continue to make the aforementioned assessments to identify any additional preventive conditions. These conditions may then cause the computer to display the error message, correct the additional preventive conditions, or generate and display additional tasks for completion by the driver. Again, if all of the preventive conditions have been corrected, the computer may proceed with the switch from the manual to the autonomous driving mode. 
     The computer may similarly make assessments to determine whether switching the vehicle from the autonomous driving mode to the manual driving mode is not currently recommended. 
     As shown in  FIG.  1   , an autonomous driving system  100  in may include a vehicle  101  with various components. While certain aspects of the disclosure are particularly useful in connection with specific types of vehicles, the vehicle may be any type of vehicle including, but not limited to, cars, trucks, motorcycles, busses, boats, airplanes, helicopters, lawnmowers, recreational vehicles, amusement park vehicles, farm equipment, construction equipment, trams, golf carts, trains, and trolleys. The vehicle may have one or more computers, such as computer  110  containing a processor  120 , memory  130  and other components typically present in general purpose computers. 
     The memory  130  stores information accessible by processor  120 , including instructions  132  and data  134  that may be executed or otherwise used by the processor  120 . The memory  130  may be of any type capable of storing information accessible by the processor, including a computer-readable medium, or other medium that stores data that may be read with the aid of an electronic device, such as a hard-drive, memory card, ROM, RAM, DVD or other optical disks, as well as other write-capable and read-only memories. Systems and methods may include different combinations of the foregoing, whereby different portions of the instructions and data are stored on different types of media. 
     The instructions  132  may be any set of instructions to be executed directly (such as machine code) or indirectly (such as scripts) by the processor. For example, the instructions may be stored as computer code on the computer-readable medium. In that regard, the terms “instructions” and “programs” may be used interchangeably herein. The instructions may be stored in object code format for direct processing by the processor, or in any other computer language including scripts or collections of independent source code modules that are interpreted on demand or compiled in advance. Functions, methods and routines of the instructions are explained in more detail below. 
     The data  134  may be retrieved, stored or modified by processor  120  in accordance with the instructions  132 . For instance, although the claimed subject matter is not limited by any particular data structure, the data may be stored in computer registers, in a relational database as a table having a plurality of different fields and records, XML documents or flat files. The data may also be formatted in any computer-readable format. By further way of example only, image data may be stored as bitmaps comprised of grids of pixels that are stored in accordance with formats that are compressed or uncompressed, lossless (e.g., BMP) or lossy (e.g., JPEG), and bitmap or vector-based (e.g., SVG), as well as computer instructions for drawing graphics. The data may comprise any information sufficient to identify the relevant information, such as numbers, descriptive text, proprietary codes, references to data stored in other areas of the same memory or different memories (including other network locations) or information that is used by a function to calculate the relevant data. 
     The processor  120  may be any conventional processor, such as commercially available CPUs. Alternatively, the processor may be a dedicated device such as an ASIC or other hardware-based processor. Although  FIG.  1    functionally illustrates the processor, memory, and other elements of computer  110  as being within the same block, it will be understood by those of ordinary skill in the art that the processor, computer, or memory may actually comprise multiple processors, computers, or memories that may or may not be stored within the same physical housing. For example, memory may be a hard drive or other storage media located in a housing different from that of computer  110 . Accordingly, references to a processor or computer will be understood to include references to a collection of processors or computers or memories that may or may not operate in parallel. Rather than using a single processor to perform the steps described herein, some of the components, such as steering components and deceleration components, may each have their own processor that only performs calculations related to the component&#39;s specific function. 
     In various aspects described herein, the processor may be located remote from the vehicle and communicate with the vehicle wirelessly. In other aspects, some of the processes described herein are executed on a processor disposed within the vehicle and others by a remote processor, including taking the steps necessary to execute a single maneuver. 
     Computer  110  may include all of the components normally used in connection with a computer such as a central processing unit (CPU), memory (e.g., RAM and internal hard drives) storing data  134  and instructions such as a web browser, an electronic display  152  (e.g., a monitor having a screen, a small LCD touch-screen or any other electrical device that is operable to display information), user input  150  (e.g., a mouse, keyboard, touch screen and/or microphone), as well as various sensors (e.g., a video camera) for gathering explicit (e.g., a gesture) or implicit (e.g., “the person is asleep”) information about the states and desires of a person. 
     In one example, computer  110  may be an autonomous driving computing system incorporated into vehicle  101 .  FIG.  2    depicts an exemplary design of the interior of an autonomous vehicle. The autonomous vehicle may include all of the features of a non-autonomous vehicle, for example: a steering apparatus, such as steering wheel  210 ; a navigation display apparatus, such as navigation display  215  (which may be a part of electronic display  152 ); and a gear selector apparatus, such as gear shifter  220 . The vehicle may also have various user input devices  140  in addition to the foregoing, such as touch screen  217  (which may be a part of electronic display  152 ), or button inputs  219 , for activating or deactivating one or more autonomous driving modes and for enabling a driver or passenger  290  to provide information, such as a navigation destination, to the autonomous driving computer  110 . 
     The autonomous driving computing system may be capable of communicating with various components of the vehicle. For example, returning to  FIG.  1   , computer  110  may be in communication with the vehicle&#39;s central processor  160  and may send and receive information from the various systems of vehicle  101 , for example the braking system  180 , acceleration system  182 , signaling system  184 , and navigation system  186  in order to control the movement, speed, etc. of vehicle  101 . In one example, the vehicle&#39;s central processor  160  may perform all of the functions of a central processor in a non-autonomous computer. In another example, processor  120  and  160  may comprise a single processing device or multiple processing devices operating in parallel. 
     In addition, when engaged, computer  110  may control some or all of these functions of vehicle  101  and thus be fully or partially autonomous. It will be understood that although various systems and computer  110  are shown within vehicle  101 , these elements may be external to vehicle  101  or physically separated by large distances. 
     The vehicle may also include a geographic position component  144  in communication with computer  110  for determining the geographic location of the device. For example, the position component may include a GPS receiver to determine the device&#39;s latitude, longitude and/or altitude position. Other location systems such as laser-based localization systems, inertial-aided GPS, or camera-based localization may also be used to identify the location of the vehicle. The location of the vehicle may include an absolute geographical location, such as latitude, longitude, and altitude as well as relative location information, such as location relative to other cars immediately around it, which can often be determined with better accuracy than absolute geographical location. 
     The vehicle may also include other devices in communication with computer  110 , such as an accelerometer, gyroscope or another direction/speed detection device  146  to determine the direction and speed of the vehicle or changes thereto. By way of example only, acceleration device  146  may determine its pitch, yaw or roll (or changes thereto) relative to the direction of gravity or a plane perpendicular thereto. The device may also track increases or decreases in speed and the direction of such changes. The device&#39;s provision of location and orientation data as set forth herein may be provided automatically to the user, computer  110 , other computers and combinations of the foregoing. 
     The computer  110  may control the direction and speed of the vehicle by controlling various components. By way of example, if the vehicle is operating in a completely autonomous driving mode, computer  110  may cause the vehicle to accelerate (e.g., by increasing fuel or other energy provided to the engine), decelerate (e.g., by decreasing the fuel supplied to the engine or by applying brakes) and change direction (e.g., by turning the front two wheels). 
     The vehicle may also include components for detecting objects external to the vehicle such as other vehicles, obstacles in the roadway, traffic signals, signs, trees, etc. The detection system  154  may include lasers, sonar, radar, cameras or any other detection devices which record data which may be processed by computer  110 . For example, if the vehicle is a small passenger vehicle, the car may include a laser mounted on the roof or other convenient location. 
     As shown in  FIG.  3   , vehicle  101  may include a small passenger vehicle having lasers  310  and  311 , mounted on the front and top of the vehicle, respectively. Laser  310  may have a range of approximately 150 meters, a thirty degree vertical field of view, and approximately a thirty degree horizontal field of view. Laser  311  may have a range of approximately 50-80 meters, a thirty degree vertical field of view, and a 360 degree horizontal field of view. The lasers may provide the vehicle with range and intensity information which the computer may use to identify the location and distance of various objects. In one aspect, the lasers may measure the distance between the vehicle and the object surfaces facing the vehicle by spinning on its axis and changing its pitch. 
     The vehicle may also include various radar detection units, such as those used for adaptive cruise control systems. The radar detection units may be located on the front and back of the car as well as on either side of the front bumper. As shown in the example of  FIG.  3   , vehicle  101  includes radar detection units  320 - 323  located on the side (only one side being shown), front and rear of the vehicle. Each of these radar detection units may have a range of approximately 200 meters for an approximately 18 degree field of view as well as a range of approximately 60 meters for an approximately 56 degree field of view. 
     In another example, a variety of cameras may be mounted on the vehicle. The cameras may be mounted at predetermined distances so that the parallax from the images of 2 or more cameras may be used to compute the distance to various objects. As shown in  FIG.  3   , vehicle  101  may include 2 cameras  330 - 331  mounted under a windshield  340  near the rear view mirror (not shown). Camera  330  may include a range of approximately 200 meters and an approximately 30 degree horizontal field of view, while camera  331  may include a range of approximately 100 meters and an approximately 60 degree horizontal field of view. 
     In addition to the sensors described above, the computer may also use input from other sensors and features typical to non-autonomous vehicles. For example, these other sensors and features may include tire pressure sensors, engine temperature sensors, brake heat sensors, break pad status sensors, tire tread sensors, fuel sensors, oil level and quality sensors, air quality sensors (for detecting temperature, humidity, or particulates in the air), door sensors, lights, wipers, etc. This information may be provided directly from these sensors and features or via the vehicle&#39;s central processor  160 . 
     Many of these sensors provide data that is processed by the computer in real-time, that is, the sensors may continuously update their output to reflect the environment being sensed at or over a range of time, and continuously or as-demanded provide that updated output to the computer so that the computer can determine whether the vehicle&#39;s then-current direction or speed should be modified in response to the sensed environment. 
     In addition to processing data provided by the various sensors, the computer may rely on environmental data that was obtained at a previous point in time and is expected to persist regardless of the vehicle&#39;s presence in the environment. For example, returning to  FIG.  1   , data  134  may include detailed map information  136 , e.g., highly detailed maps identifying the shape and elevation of roadways, lane lines, intersections, crosswalks, speed limits, traffic signals, buildings, signs, real time traffic information, vegetation, or other such objects and information. For example, the map information may include explicit speed limit information associated with various roadway segments. The speed limit data may be entered manually or scanned from previously taken images of a speed limit sign using, for example, optical-character recognition. 
       FIG.  4    is an example of a highway  400 . In this example, highway  400  includes 3 northbound lanes  410 - 412  and  3  southbound lanes  420 - 22  defined by broken lane lines  430 - 33  and solid lane lines  440 - 43 . Highway  400  also includes shoulders  450 - 51  defined between solid lane line  440  and barrier  460  and solid lane line  441  and barrier  461 , respectively. Between the northbound and southbound lanes, highway  400  includes a median  470 . 
       FIG.  5    is an example of map information  500  for highway  400  of  FIG.  4   . Map information includes data indicating the location and orientation of the various features of highway  400 . For example, map information  500  includes northbound lane data  510 - 512  identifying northbound lanes  410 - 412  as well as southbound lane data  520 - 522  identifying southbound lanes  420 - 22 . Map information  500  also includes broken lane line data  530 - 33  and solid lane lines  540 - 43  representing broken lane lines  430 - 33  and solid lane lines  440 - 43 . Shoulders  450 - 51  are also represented by shoulder data  550 - 551 . Barriers  460 - 61  are represented by barrier data  560 - 61 , and median  470  is represented by median data  570 . 
     The map information may also include three-dimensional terrain maps incorporating one or more of objects listed above. For example, the vehicle may determine that another object, such as a vehicle, is expected to turn based on real-time data (e.g., using its sensors to determine the current GPS position of another vehicle and whether a turn signal is blinking) and other data (e.g., comparing the GPS position with previously-stored lane-specific map data to determine whether the other vehicle is within a turn lane). 
     The map information  136  may also include autodrive zones which are currently available for autonomous driving. Autodrive zones may include for examples, areas within the map information which have been pre-approved or otherwise designated for initiating driving in an autonomous driving mode. These areas may include, for example, specific lanes on a highway, residential streets, etc. In this regard, autodrive zones may include pre-determined autodrive lanes. Areas which may be excluded from autodrive zones may include, by way of example only, acceleration lanes, exit lanes, merges, intersections, toll booths, known construction zones, and school zones and portions of roadway near such areas. Although computer  110  may restrict initiating the autonomous driving mode in areas which are not designated as autodrive zones, the computer  110  may actually be fully capable of maneuvering the vehicle through such areas or actually initiating the autonomous driving mode. 
     For example, map information  600  of  FIG.  600    includes map information  500  and also autodrive zones  610  and  620 . In this example, autodrive zone  610  includes the southbound lanes  430 - 32  (represented by southbound lane data  530 - 32 ) of highway  400  while autodrive zone  620  includes only a portion of the northbound lanes  420 - 22  (represented by northbound lane data  520 - 22 ) of highway  400 . Autodrive zone  610  includes the zones of lanes  410 - 22  (represented by lanes  510 - 22 ); however, in this example, only lanes  410  ( 510 ) and  411  ( 511 ) include autodrive lanes  611  and  612 , respectively. Similarly, autodrive zone  620  includes portions of the zones of lanes  420 - 22  (represented by lanes  520 - 22 ); however, in this example, only lanes  421  ( 521 ) and  422  ( 522 ) include autodrive lanes  621  and  622 , respectively. Thus, not all portions of highway  400  are autodrive zones, and not all lanes within autodrive zones are autodrive lanes. 
     Although the detailed map information  136  is depicted herein as an image-based map, the map information need not be entirely image based (for example, raster). For example, the map information may include one or more roadgraphs or graph networks of information such as roads, lanes, intersections, and the connections between these features. Each feature may be stored as graph data and may be associated with information such as a geographic location whether or not it is linked to other related features. For example, a stop sign may be linked to a road and an intersection. In some examples, the associated data may include grid-based indices of a roadgraph to promote efficient lookup of certain roadgraph features. 
     Computer  110  may also receive or transfer information to and from other computers. For example, the map information stored by computer  110  (such as the examples of map information  500  and  600  shown in  FIGS.  5  and  6   ) may be received or transferred from other computers and/or the sensor data collected from the sensors of vehicle  101  may be transferred to another computer for processing as described herein. As shown in  FIGS.  7 A and  7 B , data from computer  110  within vehicle  101  may be transmitted via a network to stationary computer  720  for further processing. Similarly, data from computer  720 , such as software updates or weather information as described below, may be transmitted via the network to computer  110 . The network, and intervening nodes, may comprise various configurations and protocols including the Internet, World Wide Web, intranets, virtual private networks, wide area networks, local networks, private networks using communication protocols proprietary to one or more companies, Ethernet, WiFi and HTTP, and various combinations of the foregoing. Such communication may be facilitated by any device capable of transmitting data to and from other computers, such as modems and wireless interfaces. In another example, data may be transferred by storing it on memory which may be accessed by or connected to computers  110  and  720 . 
     In one example, computer  720  may comprise a server having a plurality of computers, e.g., a load balanced server farm, that exchange information with different nodes of a network for the purpose of receiving, processing and transmitting the data to and from computer  110 . The server may be configured similarly to the computer  110 , with a processor  730 , memory  740 , instructions  750 , and data  760 . 
     As noted above, data  760  of server  720  may provide software updates and/or weather related information. For example, server  720  may provide software updates to computer  110  including, for example, updating the various data stored in memory  130  such as instructions  132 , detailed map information  136 , protocol data  138 , and/or task data  140 . In another example, server  720  may receive, monitor, store, update, and transmit various information related to weather. This information may include, for example, precipitation, cloud, and/or temperature information in the form of reports, radar information, forecasts, etc. 
     Computer  110  may use protocol data  138  for assessing whether changing to or from autodrive mode will be permitted based on an assessment of the status of the vehicle&#39;s environment, the vehicle, as well as the driver. As described in more detail below, computer  110  may use protocols  138  to identify preventive conditions and whether those preventive conditions may be corrected by the computer or the driver. 
     Task data  140  may include a series of tasks that can be performed by a driver controlling a vehicle such as vehicle  101 . As discussed in more detail below, these tasks may include closing a door, buckling a seatbelt, changing lanes, etc. Each task may be associated with a corresponding preventive condition such that the performance of the task by a driver of a vehicle will correct a preventive condition identified using protocol data  138 . In this regard, task data may be stored as a part of protocol data  138  or separately. 
     The computer  110  may determine a proper order for each task. In this regard, buckling a seatbelt may have a higher rank than changing lanes, as it would be unsafe for the driver to control the vehicle without wearing a seatbelt, etc. The task data may also include instructions and display data for presenting tasks to the driver. For ease of reference, this disclosure will refer to the ranking data as being part of the task data  140 , but the information required to determine the order of each task may be stored as part of protocol data  138 , elsewhere in data  134  and as part of the instructions  132 . 
     In addition to the operations described above and illustrated in the figures, various operations will now be described. It should be understood that the following operations do not have to be performed in the precise order described below. Rather, various steps can be handled in a different order or simultaneously, and steps may also be added or omitted. 
     In one example, a driver of vehicle  101  may activate the autonomous driving system  100  and use a user input  150  to request that the vehicle switch from a manual driving mode to an autonomous driving or autodrive mode. Before granting the request, the computer  110  may determine whether any conditions exist that will be used to prevent the switch. This may include accessing protocol data  138  and assessing the status of the vehicle&#39;s environment (current and likely future), the status of the vehicle and the vehicle systems, as well as the status of the driver to identify any preventive conditions. For example, preventive conditions may include conditions indicating that it might be unsafe to switch from manual to autonomous driving mode, that the vehicle is an area in which autonomous driving is prevented by law, or that vehicle is not designed for autonomous driving in the current environment (e.g., off-road travel). 
     The assessment of the status of the vehicle&#39;s environment may rely on information collected by the vehicle&#39;s various sensors, stored map information, as well as information from a remote computer. For example, the assessments may include determining the status of the weather in the vehicle&#39;s immediate environment and whether this information indicates that it would be safer for the driver to retain full control of the vehicle. This may include receiving weather data from computer  720  and/or detecting weather conditions from the vehicle&#39;s sensors. Generally, driver may be in a better position to navigate the vehicle than the computer  110  when there is heavy or accumulating precipitation such as rain, snow, hail, etc. Thus, under such weather conditions, computer  110  may identify a preventive condition. 
     Other current environmental assessments may include examining the current location and speed of the vehicle and determining whether the vehicle is at an acceptable location and speed for switching from manual to autonomous driving mode. The vehicle&#39;s location may be received or determined from data generated by geographic position component  144  and/or acceleration device  142 . This location may be combined with data from the various sensors of the detection system  154  as well as map information  136 . For example, computer  110  may assess whether the vehicle&#39;s actual location agrees with the vehicle&#39;s location relative to the detailed map information, whether data received from the sensors of the detection system agrees with the corresponding detailed map information, whether the vehicle is currently driving in an autodrive zone, whether the vehicle is currently driving in an autodrive lane, whether the roadway is paved (as opposed to dirt), whether the road is wide enough (as opposed to being too narrow for two vehicles to pass one another), whether the vehicle is on a straight roadway (as opposed to driving around a curve, down or up a hill, etc.), whether the vehicle is sufficiently centered in the lane, whether the vehicle is surrounded by or boxed in by other vehicles (for example, in dense traffic conditions), whether the vehicle is currently in a school zone, whether the vehicle is facing oncoming traffic (for example, driving northbound in a southbound lane according to the map information  136 ), whether another object is pulling into the vehicle&#39;s lane proximate to the vehicle, whether the vehicle is at least some pre-determined minimum distance from other vehicles or moving objects in the roadway, whether the vehicle must make any small maneuvers to avoid non-moving objects in the roadway, whether the vehicle is traveling too fast or too slow, etc. If any of these conditions are not true, computer  110  may identify that condition as a problem condition. 
     In addition to the vehicle&#39;s current environment, computer  110  may assess the driving environment that the vehicle is likely to encounter in the future. In this regard, rather than relying on data from the vehicle&#39;s detection system  154 , computer  110  may receive and/or access data from a remote computer, stored map information, and user input. 
     In one example, the computer  110  may assess whether any upcoming situations or maneuvers are likely to create a prevention condition. For instance, the computer may check the map data for upcoming prevention conditions if the driver were to maintain the vehicle&#39;s current trajectory or stay on a recommended route. The fact that a prevention condition is likely to occur in the future may, itself, be considered a prevention condition that will prevent the user from activating the autodrive mode. 
     The amount of time that is expected to elapse until the future prevention condition is likely to occur may be used to determine whether the user will be prevented from placing the vehicle into autodrive mode. In one example, there may be some minimum amount of time during which the vehicle can be driven autonomously before it reaches a location where manual driving mode would be required, such as at a traffic intersection or merge. The lane of the road may continue, but the current lane may cease to be an autodrive lane at the intersection. The computer may thus estimate, based on the speed of vehicle or other data (such as the road&#39;s speed limit), the amount of time it will take for the vehicle to reach the intersection. If the estimated duration is less than a threshold, the upcoming intersection may be considered a current prevention condition. The threshold may be predetermined or dynamically calculated. For example, the threshold may be set to approximately 50 seconds since users may consider it disruptive to put the car into autodrive mode and then be forced out of autodrive mode within a span of 50 seconds. The threshold may also be dynamically determined, i.e., the threshold may be increased in bad weather. 
     Computer  110  may also use protocol data  138  to assess the status of the vehicle and the vehicle&#39;s various systems and determine whether there is a prevention condition. For example, computer  110  may determine whether the various features of the autonomous driving system  100  are working properly. This may include communicating with a remote computer, such as computer  720 , to determine whether computer  110  has the most up to date software. In addition, computer  110  may also communicate with the various components of autonomous driving system  100  to ensure that both the computer  110  is able to communicate with these systems and also to determine whether those systems are working properly. For example, computer  110  may determine whether the various sensors of detection system  154  are working properly, responsive, properly calibrated, etc. In not, computer  110  may identify a problem condition. 
     In addition to communicating with the components of autonomous driving system  100 , computer  110  may also determine the status of the vehicle&#39;s various non-autonomous components. This may include querying the vehicle&#39;s central processor  160  for information regarding the status of the vehicle. In this regard, the vehicle&#39;s central processor  160  may be in communication with other vehicle features or sensors, such as the lights, drive system, tire pressure monitors, door sensors, etc. 
     Computer  110  may then use this information regarding the other vehicle features and sensors to make various assessments. For example, computer  110  may determine whether the vehicle has met minimum maintenance standards (for example, oil changes are up to date), whether the vehicle&#39;s tires are properly inflated, whether the vehicle&#39;s doors are closed, whether the vehicle is currently in “drive” (as opposed to “neutral,” “reverse,” or “park”), whether the vehicle is in two wheel drive (for example, on a vehicle which allows for the driver to manually switch into four wheel or all wheel drive), whether the vehicle&#39;s automatic wipers are currently on, whether the vehicle&#39;s headlights or fog lights are on, and whether no other warning indicators (such as check engine lights) are currently active. In not, computer  110  may identify a prevention condition. 
     Computer  110  may also use protocol data  138  to assess the status of the vehicle driver. For example, computer  110  may also query central processor  160  to determine whether the driver&#39;s seatbelt is properly buckled. Other examples may include using sensors or other methods to determine driver sleepiness, driver intoxication, or whether the driver is authorized or not to use the vehicle. 
     The assessments need not be organized into distinct environmental, vehicle, or driver conditions but may actually comprise a larger collection or list of features for assessment. Alternatively, some features identified as being associated with a particular status assessment may be associated with other status assessments or checked multiple times. For example, whether the driver door is open may be an assessment made as part of a vehicle status assessment as well as a driver status assessment. 
     The assessments made by computer  110  according to protocol data  138  may be performed in any order. In addition, many of these assessments may be made simultaneously, for example by multiple processors operating in parallel. The assessments may be made repeatedly before receiving an autodriving request (or a request to use the autodrive mode), may be made at the time of receiving an autodriving request, may be checked repeatedly after receiving an autodriving request, and any combination of the foregoing. 
     Once computer  110  has identified a prevention condition that would prevent the transition from manual to autonomous driving mode, the computer may determine whether the computer or the driver can take immediate corrective action. If not, the computer  110  may generate a notification to the driver informing him that the autonomous driving mode is currently unavailable. This notification may also include information indicating the reason why the autonomous driving mode is unavailable. The notification may also be displayed to the driver, for example, using electronic display  152 . 
     For example, referring to the assessments regarding the status of the vehicle&#39;s environment, neither the computer  110  nor the driver could change current weather conditions. In this regard, computer  110  may generate and display a notification explaining that the autonomous driving mode is currently unavailable due to the weather conditions. 
     In another example, referring to the status of the vehicle, neither the computer  110  nor the driver may be able to immediately change vehicle maintenance issues, such as an oil change indicator, low tire pressure indicator, or other more serious issues with regard to the various sensors of detection system  154 . Similarly, neither computer  110  nor the driver may be able to immediately change a prevention condition caused by the failure of sensor to provide data. For example, if the computer  110  is unable to determine whether the driver is wearing his seatbelt, simply asking the driver may not be sufficient to ensure that the seatbelt is actually operational and that the driver is wearing it. Accordingly, neither computer  110  nor the driver may be able to correct such a problem condition, and again, computer  110  may generate and display a notification explaining that the autonomous driving mode is currently unavailable due to the prevention condition. 
     If the computer  110  is able to take corrective action to address the prevention condition, the computer may do so. For example, if the assessment of the vehicle&#39;s status indicates a problem with the vehicle&#39;s sensors which can be corrected by computer calibration, the computer  110  may recalibrate the sensors and continue with any items remaining to be assessed. In another example, if computer  110  determines that it does not have the most up to date software, this prevention condition may be corrected by getting a software update, for example, from computer  720 . In another example, computer  110  may correct some prevention conditions with a short delay. Various other problem conditions may also be corrected by computer  110 . In addition, the computer may also perform some or all of these corrective actions proactively, rather than waiting for the driver to request a switch from manual driving mode to autonomous driving mode. The computer corrective actions may also be performed in parallel with one another and/or in parallel with driver performed corrective actions. 
     While computer  110  may be capable of correcting many different problem conditions, it may be safer to request the driver to address at least some prevention conditions rather than computer  110 . In this regard, for at least some prevention conditions, computer  110  may use task data  140  to generate tasks for such conditions. 
     For example, referring to the status of the vehicle&#39;s environment, computer  110  may generate tasks for changing the vehicle&#39;s location and/or speed. Depending upon the prevention condition, these tasks may include moving the vehicle to an autodrive lane, centering the vehicle in a lane, creating a sufficient space between the vehicle and some other moving object in the roadway, and speeding up or slowing down the vehicle. Similarly, referring to the status of the vehicle, computer  110  may generate tasks for correcting prevention conditions with regard to an improperly closed or open door, using the gear shift to put the vehicle into “drive”, turning on automatic wipers, turning on lights, etc. Regarding the status of the driver, the computer  110  may generate a task requesting the driver to put on his seatbelt, etc. 
     As noted above, each task generated by the computer  110  using the task data  140  may be ranked. Thus, after generating all of the required tasks to correct any identified prevention conditions, the computer  110  may use the rankings to order the tasks and then present the ordered tasks to the driver. This may allow the computer  100  to provide the checklist to the driver in an order that promotes safety and is consistent with prerequisites. For example, a driver might be instructed to put on his seatbelt before being asked to put the vehicle in “drive” and before asked to move to an autodrive lane. 
     Similarly, although the driver may be presented with multiple tasks at the same time, it may be more helpful to provide each task to the driver one at a time, waiting until each task has been completed before providing the driver with the next task. In addition, tasks which require a longer time to complete may need to be followed by another driver request to switch to the autonomous mode while other tasks which may be completed in a shorter time may not. 
       FIG.  8    depicts a series of screen images  810 ,  820 ,  830 , and  840  which may be displayed to a driver, for example on electronic display  152 . These screen images may identify tasks required to correct identified problem conditions. In this example, computer  110  has already determined that each of these prevention conditions should and can be corrected by the driver. The conditions include that the vehicle is not in “drive,” that the automatic wipers are not on, that the automatic lights are not on, and that the vehicle that the vehicle is not in an autodrive lane. Thus, computer  110  has generated a set of tasks and associated screen images  810 ,  820 ,  830 , and  840 . As noted above, these tasks and screen images are presented in a certain order. 
     In this example, the first task includes shifting the vehicle into “drive” as shown in screen image  810 . Once the first task is completed by the driver, the computer  110  may determined that the corresponding condition has been corrected. As a result, the computer  110  may show the next task. In this example, the next task includes turning on automatic wipers as shown in screen image  820 . Again, once the task of screen image  820  is completed, the next task turning on automatic lights may be displayed as shown in screen image  830 . Once this task is completed, computer  110  may display the next task, moving to an autodrive lane, as shown in screen image  840 . 
     Accordingly, as described above, each screen image may be shown in sequence, one at a time, until each task  810 ,  820 ,  830 , and  840  has been completed and the computer determines that the corresponding prevention condition no longer apply. 
     Once the identified problem conditions have been corrected by the driver, the computer may allow the driver to switch from the manual driving mode to the autonomous driving mode. For example, once all of the required tasks have been completed by the driver (such as those shown by screen images  810 ,  820 ,  830 , and  840 ), computer  110  may display a message, such as that shown in screen image  850 , indicating that the autonomous driving system  100  and computer  110  is ready to take control of the vehicle. In addition, computer  110  may change the color of all or a portion of the display to further indicate that the vehicle is ready for autonomous driving mode. In this regard, screen image  850  may include a different background color from screen images  810 ,  820 ,  830 , and  840 . Once ready, the computer may automatically switch from the manual driving mode to the autonomous driving mode or may wait for a further request from the driver to ensure the driver is actually ready. 
     Before switching from manual to autonomous driving mode, computer  110  may conduct the aforementioned assessments continuously. In this regard, even though the driver or computer  110  has corrected various impediments to placing the vehicle in autodrive mode, new problems may arise (or as noted above, some problems may be corrected). For example, once the driver has moved the vehicle  101  into an autodrive lane in response to the task depicted by screen image  840  of  FIG.  8   , the computer  110  may identify additional problems. In one example, these additional preventive conditions may include that the vehicle is not centered in a lane, that the vehicle is then moving too fast, and that the vehicle is too close to another object in the roadway. 
     Based on these additional conditions, computer  110  may generate additional tasks including centering the vehicle in the lane, slowing the vehicle down, and increasing the distance between the vehicle and the another object in the roadway. As with the example of  FIG.  8   , computer  110  may also generate corresponding screen images to encourage the driver to correct each of the conditions. As shown in  FIG.  9   , computer  110  may display to the driver, for example on electronic display  152 , a series of screen images  910 ,  920 , and  930  identifying tasks to be completed by the driver. As with the example of  FIG.  8   , each screen image may be displayed one at a time until the driver has completed the task and the computer determines that the corresponding condition has been corrected. Again, once the computer  110  determines that there are no remaining or newly identified preventive conditions, computer  110  may display a message, such as that shown in screen image  940 , indicating that the autonomous driving system  100  and computer  110  is ready to take control of the vehicle. 
     Flow diagram  100  of  FIG.  10    is an example of some of the aspects described above which may be performed by a computer associated with a vehicle having an autonomous driving mode and a manual driving mode. For example, computer  110  of vehicle  101  may receive an autodrive request or a request to switch from a manual driving mode to an autonomous driving mode at block  1002 . The computer  110  then responds by accessing protocol data at block  1004 . The protocol data is then used to assess the status of the vehicle&#39;s current environment, the vehicle&#39;s future environment, the vehicle, and the driver at blocks  1006 ,  1008 ,  1010 , and  1012 , respectively. Again, these assessments may be conducted in any order. The computer  110  then determines if these assessments have identified any problem conditions at block  1014 . If not, the computer  110  proceeds with the switch from the manual to the autonomous driving mode at block  1016 . 
     If as a result of the assessments, the computer  110  does identify one or more preventive conditions, the computer determines whether the computer or a driver can correct those identified conditions at block  1018 . If the conditions cannot be corrected, the computer  110  displays a failure message to the driver at block  1020 . As noted above, this failure message may indicate the particular issue for the failure. 
     If the computer  110  or a driver can sufficiently promptly correct the identified problems, the computer may correct problems that can be corrected by the computer at block  1022 . If at block  1024  no identified preventive conditions remain, the computer  110  proceeds with the switch from the manual to the autonomous driving mode at block  1016 . 
     Returning to block  1024 , if after the computer corrects any of the problems, other problems remain, the computer  110  generates a corresponding task or task using pre-ranked task data for each of the remaining problems at block  1026 . The computer  100  then displays the highest ranking task for completion by the driver of vehicle  101  at block  1028 . The computer continues to display the task until it is completed at block  1030 . In this example, once the task is completed, the computer returns to block  1004  to access the protocol data and reassess the status of the various features of blocks  1006 ,  1008 ,  1010 , and  1012 . The process may continue until all of the identified problems are corrected and the computer  110  proceeds with the switch from manual to autonomous driving mode at block  1016 . 
     Alternatively, once a task is completed at block  1030 , the computer may simply display the next highest ranking task until all of the identified problem conditions are corrected. Once this occurs, the computer  110  proceeds with the switch from manual to autonomous driving mode. 
     Conducting the aforementioned assessments and performing corrective actions can prevent certain problems, such as potential safety issues, actions that the user would consider disruptive, actions that may damage the car over time, etc. For example, if computer  110  is unable to drive autonomously in a particular lane or a shoulder because of some known condition, it may be dangerous to begin driving autonomously in that location. In another example, if the vehicle is too close to another vehicle or driving too fast, switching directly into autonomous driving mode may cause the computer to slow the vehicle down immediately and dramatically. This may be uncomfortable and also disconcerting for the driver. In yet another example, if the vehicle is not sufficiently centered in a lane, computer  110  may surprise the driver by moving into a lane in which the driver did not intend to drive. Abrupt lane changes may make the driver nervous or uncomfortable. Thus, the features described herein allow the driver to maintain control until both the computer  110 , and the driver, are assured that it is safe to switch driving modes. 
     Once the vehicle is in the autonomous driving mode, if any conditions arise which require a switch to manual driving mode, computer  110  may continue at least some of the assessments as described above and also made other assessments regarding the continued safety of driving in autonomous driving mode. If any preventive conditions are identified which cannot or should not be corrected immediately by computer  110 , the computer  110  may inform the driver of the need to switch back into the manual driving mode. For example, if the computer  110  detects some emergency or some preventive condition such as a loss of communication with some component of the autonomous driving system, the computer  110  may immediately inform the driver of the need to switch to the manual driving mode. By doing so quickly, even when the preventive condition does not require immediate attention, the computer may provide the driver with as much time as possible to take control of the vehicle. 
     Under certain specific conditions, the computer  110  may also discourage the driver from switching from autonomous mode and into the manual driving mode. Each vehicle may include an emergency manual override that allows the driver to switch to the manual driving mode under any conditions, but under normal operation there may be instances where switching to manual mode is prevented or delayed. 
     For example, after the first few seconds in autonomous driving mode, the computer  110  may detect that the driver is attempting to disengage the autonomous driving mode, such as by turning the steering wheel or hitting the accelerator. Because the request to disengage occurs so quickly after the request to engage, the computer  110  may determine that the request to disengage was unintentional. In this regard, rather than automatically disengaging, computer  110  may provide a warning to the driver that the autonomous driving mode is disengaging and also continue to control some aspects of the vehicle until further actions by the driver, such as by continuing to turn the steering wheel or hit the accelerator, which indicate that the driver was indeed attempting to disengage the autonomous driving mode. 
     In another example, the computer  110  may prevent the driver from switching to manual driving mode when the vehicle is performing an action that cannot be easily transferred to the driver before the action is complete. For example, it may not be easy to safely return control to the driver in the middle of a sharp turn. In this regard, computer  110  may continuously make this assessment and provide a warning during those times when the computer determines that switching to manual driving mode would be unsafe or uncomfortable for the driver. This warning may be changed or removed during times when the computer determines that switching to manual driving mode would be safe and comfortable. 
     As these and other variations and combinations of the features discussed above can be utilized without departing from the subject matter as defined by the claims, the foregoing description of exemplary embodiments should be taken by way of illustration rather than by way of limitation of the subject matter as defined by the claims. It will also be understood that the provision of the examples described herein (as well as clauses phrased as “such as,” “e.g.”, “including” and the like) should not be interpreted as limiting the claimed subject matter to the specific examples; rather, the examples are intended to illustrate only some of many possible aspects.