Systems and methods for vehicles with limited destination ability
11720101 · 2023-08-08
Assignee
Inventors
- Dmitri A. Dolgov (Mountain View, CA, US)
- Sebastian Thrun (Los Altos Hills, CA, US)
- Luis Ricardo Prada Gomez (Hayward, CA, US)
- Christopher Paul Urmson (Mountain View, CA, US)
- Nathaniel Fairfield (Mountain View, CA)
- Anthony Scott Levandowski (Berkeley, CA, US)
Cpc classification
B60T7/22
PERFORMING OPERATIONS; TRANSPORTING
B60W50/14
PERFORMING OPERATIONS; TRANSPORTING
G06V20/58
PHYSICS
B60T17/221
PERFORMING OPERATIONS; TRANSPORTING
G05D1/0088
PHYSICS
G01S17/86
PHYSICS
B62D6/00
PERFORMING OPERATIONS; TRANSPORTING
G05D1/0276
PHYSICS
G05D1/0246
PHYSICS
B60R1/00
PERFORMING OPERATIONS; TRANSPORTING
B60W2555/60
PERFORMING OPERATIONS; TRANSPORTING
B60W2050/0292
PERFORMING OPERATIONS; TRANSPORTING
G06V10/255
PHYSICS
G06V20/588
PHYSICS
B60W30/186
PERFORMING OPERATIONS; TRANSPORTING
G06V20/56
PHYSICS
B60W2552/05
PERFORMING OPERATIONS; TRANSPORTING
B60T2201/022
PERFORMING OPERATIONS; TRANSPORTING
B60R2300/30
PERFORMING OPERATIONS; TRANSPORTING
G06T7/521
PHYSICS
B60T8/00
PERFORMING OPERATIONS; TRANSPORTING
G05D1/0214
PHYSICS
G07C9/00563
PHYSICS
G01C21/3617
PHYSICS
B60T8/17
PERFORMING OPERATIONS; TRANSPORTING
B60W30/08
PERFORMING OPERATIONS; TRANSPORTING
International classification
G05D1/00
PHYSICS
B60R1/00
PERFORMING OPERATIONS; TRANSPORTING
B60T17/22
PERFORMING OPERATIONS; TRANSPORTING
B60T7/22
PERFORMING OPERATIONS; TRANSPORTING
B60T8/00
PERFORMING OPERATIONS; TRANSPORTING
B60T8/17
PERFORMING OPERATIONS; TRANSPORTING
B60T8/88
PERFORMING OPERATIONS; TRANSPORTING
B60W30/08
PERFORMING OPERATIONS; TRANSPORTING
B60W50/14
PERFORMING OPERATIONS; TRANSPORTING
G01S17/86
PHYSICS
G06T7/521
PHYSICS
G06V20/58
PHYSICS
Abstract
Aspects of the present disclosure relate generally to limiting the use of an autonomous or semi-autonomous vehicle by particular occupants based on permission data. More specifically, permission data may include destinations, routes, and/or other information that is predefined or set by a third party. The vehicle may then access the permission data in order to transport the particular occupant to the predefined destination, for example, without deviation from the predefined route. The vehicle may drop the particular occupant off at the destination and may wait until the passenger is ready to move to another predefined destination. The permission data may be used to limit the ability of the particular occupant to change the route of the vehicle completely or by some maximum deviation value. For example, the vehicle may be able to deviate from the route up to a particular distance from or along the route.
Claims
1. A method comprising: causing, by one or more processors, a vehicle to drive to a rider at a pickup location in a fully autonomous mode, in response to a dispatch request; upon arriving at the pickup location, the one or more processors performing identification of the rider in accordance with profile data; upon identification, the one or more processors accessing permission data; determining, by the one or more processors, one or more permissible routes to a destination in accordance with the permission data; selecting, by the one or more processors, a given one of the permissible routes based on at least one of the profile data or permission data; and causing, by the one or more processors, the vehicle to drive towards the destination along the selected route in either a fully autonomous or partially autonomous driving mode.
2. The method of claim 1, wherein the permission data comprises a plurality of profiles, each profile being associated with a different user of the vehicle.
3. The method of claim 1, wherein the permission data includes information identifying maximum speed limits for the rider during a trip in either the fully autonomous or partially autonomous driving mode.
4. The method of claim 1, wherein the permission data includes a list of permissible destinations to which the rider may be driven.
5. The method of claim 4, wherein one or more destinations in the list of permissible destinations is specified as either latitude and longitude coordinates or as an address.
6. The method of claim 4, wherein one or more destinations in the list of permissible destinations is specified as a neighborhood or a municipality.
7. The method of claim 4, wherein each destination in the list of permissible destinations is associated with at least one predefined route.
8. The method of claim 7, wherein the at least one predefined route specifies which lane to use for at least a portion of the at least one predefined route.
9. The method of claim 1, wherein the permission data identifies at least one restriction including: a restricted destination, a restricted area through which the rider is not permitted to travel, one or more times during which the rider is not permitted to travel in the vehicle, or one or more locations at which the rider is not permitted to stop.
10. The method of claim 9, wherein the at least one restriction is a parental restriction or a guardian restriction.
11. The method of claim 9, wherein the at least one restriction is a law enforcement restriction.
12. The method of claim 1, wherein accessing the permission data comprises the vehicle receiving the permission data from a mobile device that is encoded with the permission data.
13. The method of claim 1, further comprising receiving the permission data from an authorized user who is not the rider.
14. The method of claim 13, wherein receiving the permission data comprises receiving the permission data via a transmission from a remote source.
15. The method of claim 13, wherein receiving the permission data comprises receiving input in the vehicle from the authorized user.
16. The method of claim 1, wherein selecting the given one of the permissible routes based on at least one of the profile data or permission data comprises determining whether the profile data includes a predefined route.
17. The method of claim 16, wherein, when the profile data does not include the predefined route, selecting the given one of the permissible routes includes evaluating how to operate the vehicle within one or more constraints of a set of predefined parental parameters.
18. The method of claim 16, wherein, when the profile data does include the predefined route, selecting the given one of the permissible routes includes selecting between the predefined route and one or more alternate routes.
19. The method of claim 18, wherein selecting between the predefined route and the one or more alternate routes includes determining whether the one or more alternate routes are allowable routes at a current trip time.
20. The method of claim 1, further comprising: after causing the vehicle to drive towards the destination along the selected route, stopping at an intermediary destination; after stopping at the intermediary destination, performing another identification of the rider in accordance with the profile data; and continuing to drive towards the destination after performing the other identification.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
DETAILED DESCRIPTION
(13) In one aspect of the disclosure, a vehicle's autonomous driving computer may receive profile data for a user. The profile data may be provided by an authorized administrator such as parent, guardian, law enforcement representative, etc. and may define the access rights and permissions of the user with respect to the vehicle. The profile data may be stored in memory accessible by the autonomous driving computer. Later, the vehicle may receive information identifying a user. For example, the user may present an identification card, biometric information, or other identifier.
(14) In response to receiving the identifying information, the autonomous driving computer may access the memory to determine whether the identifying information is associated with a particular user profile. If not, the autonomous driving computer may deny the user the ability to use the vehicle or may allow the user to operate the vehicle in an emergency mode to transport the user to a hospital, home, to a police or fire station, etc.
(15) If a user profile is identified, the autonomous driving computer may determine whether the user currently has permission to use the vehicle. For example, the autonomous driving computer may determine whether there are any date and/or time restrictions and if so, whether they indicate that the user currently has permission to use the vehicle. If not, the autonomous driving computer may deny the user the ability to use the vehicle or may allow the user to operate the vehicle in the emergency mode.
(16) If the user does have permission to use the vehicle, or if there are no particular date and/or time restrictions, the user may provide a destination. This destination may be provided to the autonomous driving computer. The autonomous driving computer may then determine, based on the identified profile, whether the destination is a permissible destination. If not, the vehicle may display a denial or warning message.
(17) The vehicle may allow the user to submit another destination. If the user does not submit a new destination, the autonomous driving computer may deny the user the ability to use the vehicle or may allow the user to operate the vehicle in the emergency mode.
(18) If the received destination is permissible, the autonomous driving computer may again check the user's profile to determine whether there is a predefined route to the destination. If not, the autonomous driving computer may generate a route based on any other relevant restrictions in the user's profile. The autonomous driving computer may then either display the generated route as a set of turn-by-turn directions to a user driving the vehicle manually or follow the generated route to the destination autonomously or semi-autonomously.
(19) If a predefined route is identified, the autonomous driving computer may determine from the identified profile whether the user has permission to take alternate routes to the destination. If not, the autonomous driving computer may either display the predefined route as a set of turn-by-turn directions to a user driving the vehicle manually or follow the generated route to the destination autonomously or semi-autonomously.
(20) If the user has permission to take an alternative route, the autonomous driving computer may calculate an alternate route. The autonomous driving computer may then calculate a deviation value (DV) based on the time, distance, and other deviation factors from the predefined route. The deviation value for the alternate route may be compared to a maximum deviation value (MDV) for alternative routes that may be associated with the identified profile. If the deviation value is greater than the maximum deviation value, the autonomous driving computer may either display the predefined route as a set of turn-by-turn directions to a user driving the vehicle manually or follow the generated route to the destination autonomously or semi-autonomously.
(21) If the deviation value is less than or equal to the maximum deviation value, the autonomous driving computer may display the route options, including the predetermined route and the alternate route. The user may then select from one of the route options. The selected route may be received by the autonomous driving computer. The autonomous driving computer may either display the selected route as a set of turn-by-turn directions to a user driving the vehicle manually or follows the generated route to the destination autonomously (or semi-autonomously).
(22) The vehicle may continue to follow and/or display the generated, predetermined, or selected route. If the destination is reached, the user may exit the vehicle. If the vehicle is continuing towards the destination, the autonomous driving computer may monitor whether the user is attempting to or actually leaving the route. For example, if the vehicle is being operated in a manual mode, the user may drive the vehicle off or away from the route. If the vehicle is being operated in an autonomous or semi-autonomous mode, the user may take manual control of the vehicle from the autonomous driving computer or indicate that a deviation is needed as described above. If there are no attempts to leave the route, the vehicle continues to follow and/or display the generated, predetermined, or selected route.
(23) If the user does attempt to or actually leave the route, the autonomous driving computer may determine whether the identified profile indicates that the user has permission to deviate from the route. If not, and the vehicle is operating in an autonomous mode, the autonomous driving computer may deny the user's ability to leave the route. If the vehicle is operating in a semi-autonomous mode, the vehicle may prevent the user from leaving the route by taking full control of the vehicle, warning the user, and/or recording a log of the user's actions. If the vehicle is being operated in a manual mode, the autonomous driving computer may respond by taking control of the vehicle autonomously, warning the user, and/or recording a log of the user's actions. If the user or the autonomous computer returns the vehicle to the route, the vehicle may continue to follow and/or display the generated, predetermined, or selected route. If the user continues to attempt to or actually deviate from the route, the autonomous computer may again respond by taking control of the vehicle autonomously (if it has not already done so), warning the user, and/or recording a log of the user's actions.
(24) If the identified profile indicates that the user does have permission to leave the route, the autonomous driving computer may begin to calculate another deviation value. This may be calculated in real time either based on a proposed route identified by the user as described above or based on the user's control of the vehicle. The new deviation value may then be compared to a maximum deviation value (MDV) which may be the same or a different maximum deviation value from the maximum deviation value used above to initially select a rotue. If the deviation value is greater than the maximum deviation value, the autonomous driving computer may respond based on the current mode of the operation as described above.
(25) If the new deviation value is less than or equal to the maximum deviation value, the autonomous driving computer may allow the deviation. If the vehicle is being operated in a manual mode, the autonomous driving computer then continues to monitor whether the deviation value remains at or below the maximum deviation value. If not, the autonomous computer may respond by taking control of the vehicle autonomously, warning the user, and/or recording a log of the user's actions.
(26) The autonomous driving computer may also monitor whether the user is attempting to deviate from the deviation. If so, the autonomous driving compute may determine a deviation value, compare to the maximum deviation value, etc. If the user does not attempt to deviate from the deviation, the vehicle may continue to follow and/or display the generated, predetermined, or selected route until reaching the destination. If the user leaves the vehicle at the destination and subsequently returns to the vehicle, the user may again provide identification information in order to use the vehicle as described above.
(27) As shown in
(28) 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.
(29) 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.
(30) The data 134 may be retrieved, stored or modified by processor 120 in accordance with the instructions 132. For instance, although the system and method 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.
(31) The processor 120 may be any conventional processor, such as commercial CPUs for personal computers. Alternatively, the processor may be a dedicated device such as an ASIC. Although
(32) In various of the 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.
(33) Computer 110 may have all of the components normally used in connection with a computer such as a CPU, memory (e.g., RAM and internal hard drives) storing data 134 and instructions such as a web browser, an electronic display 142 (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 140 (e.g., a mouse, keyboard, touch screen and/or microphone), as well as various sensors (e.g. a video camera) for gathering the explicit (e.g. a gesture) or implicit (e.g. “the person is asleep”) information about the states and desires of a person.
(34) In one example, computer 110 may be an autonomous driving computing system incorporated into vehicle 101.
(35) Vehicle 101 may also include one or more additional displays. For example, the vehicle may include a display 225 for displaying information regarding the status of the autonomous vehicle or its computer. In another example, the vehicle may include a status indicating apparatus 138 (see
(36) The autonomous driving computing system may be capable of communicating with various components of the vehicle. For example, returning to
(37) 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'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 less noise that absolute geographical location.
(38) The vehicle may also include other features 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, 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'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.
(39) The computer 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 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).
(40) 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 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
(41) The aforementioned sensors may allow the vehicle to understand and potentially respond to its environment in order to maximize safety for passengers as well as objects or people in the environment. It will be understood that the vehicle types, number and type of sensors, the sensor locations, the sensor fields of view, and the sensors' sensor fields are merely exemplary. Various other configurations may also be utilized.
(42) In addition to the sensors described above, the computer may also use input from sensors typical of non-autonomous vehicles. For example, these sensors may include tire pressure sensors, engine temperature sensors, brake heat sensors, brake 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), etc.
(43) 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's then-current direction or speed should be modified in response to the sensed environment.
(44) 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's presence in the environment. For example, returning to
(45) Again, although the map information 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 and whether or not it is linked to other related features, for example, a stop sign may be linked to a road and an intersection, etc. In some examples, the associated data may include grid-based indices of a roadgraph to allow for efficient lookup of certain roadgraph features.
(46) Data 134 may also include permission data 150. For example, permission data may include destinations, routes, and other control rights predefined or set by a user. The permission data may comprise a plurality of profiles, each profile associated with a particular user of the vehicle. For example, the permission data may include information identifying maximum speed limits for a user that may or may not correspond to the legal driving limit, such as where a parent wants to limit a maximum speed on a highway to 60 mph when the speed limit is actually 65 mph. In another example, the permission data or profile for a particular user may include one or more permissible destinations. The destinations may be as specific as latitude and longitude coordinates or an address, or may be a much broader area such as a neighborhood or a town. These permissible destinations may also be associated with predefined routes. A predefined route may include information as general as a listing of the roads on which the vehicle must go or as specific as which lanes must be used.
(47) The permission data may also identify restricted destinations to or through which the user is not permitted to travel, times during which the user is not permitted to travel, or locations at which the user is not permitted to stop. For example, a parent may want the vehicle to stay away from highways, high traffic areas, or school zones (where children are likely to be present). Similarly, a parent may want to prevent the vehicle from transporting a child during certain time periods such as typical commuting hours, during dusk or evening hours, on weekends, for a specific period of time (for example if a child is being punished), etc. For example, one user may only have permission to use the vehicle on weekday mornings between 7:00 am and 7:30 am to travel to school or work. Between 12:00 pm and 1:00 pm the user may only have permission to use the vehicle to travel to home, pre-specified restaurants, or back to work. Between 3:00 pm and 6:00 pm, the user may only have permission to use the vehicle to go home. Similarly, the user's profile may have restrictions on non-school or work days, weekends, holidays, summer months, etc. In another example, a user's profile may define only those locations to which the user is not allowed to travel, such that all other destinations would be permissible. In yet another example, the user's profile may define a permissible area, such as a town, with restricted areas, such as particular neighborhood, to which the user does not have permission to travel. Accordingly, any number of restrictions and combinations may be used to generate a user's profile.
(48) The permission data may also include information defining one or more maximum deviation values, for example in terms of time and/or distance that the user may travel away from a predefined route. For example, the maximum deviation values may include a maximum combined difference from a predetermined route measured by combining a number of factors such as distance (taking a side road 300 meters or 2 miles to get around an accident), expected duration or travel time (an addition 10 minutes or 2 minutes faster), and proximity to any restricted areas as described above. The one or more maximum deviation values may be used by the computer in different situations. For example, one maximum deviation value may be used when determining an alternate route before a vehicle has begun following a predefined route. Another maximum deviation value may be used when the vehicle is already following a predefined route.
(49) In another example, permission data may be encoded directly onto a user's access device to a vehicle. For example a user may have an access device such as a key, a card with an RFID, mobile phone, or other mobile device which includes the user's profile data.
(50) 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.
(51) The vehicle receives permission data from a first user. For example, a parent, guardian, law enforcement representative, owner of the vehicle, manufacturer or other authorized administrator may input data identifying a child as well as a set of destinations, routes, and/or control rights. This information may be input in the vehicle, or remotely at another computer and subsequently transmitted to the vehicle's autonomous driving computer.
(52) As shown in screen shot 400 of
(53) The input may be used to generate a profile for the child. For example, map 600 of
(54) In another example, there may be predefined profiles to assist new users in programming the vehicle's computer. For example, a predefined profile may include restrictions consistent with Cinderella licensing laws which restrict use of any vehicles of new drivers during evening, night time, and early morning hours. This may assist the first user in setting up a new profile.
(55) The new profile may be stored with the permission data as described above. A stored profile may be modified by the first user at a later time, for example, to lift restrictions or add new ones, change the home address, etc.
(56) A driver, or user, may identify his or herself to the vehicle before entering or using the vehicle. For example, the User A may be required to provide a driver's license, give biometric information such as a thumb print or eye scan, enter a user name and password, have a key with a radio transmitter, scan an RFID badge, or display other item of identification to automatically provide his or her user information before entering the vehicle. Alternatively, the user may first enter the vehicle and subsequently identify him or herself
(57) Once the user has been identified, the vehicle may access the permission data and identify the profile associated with the user. For example, User A may identify him or herself to the vehicle. In response, the autonomous driving computer may access the stored profile data and identify a profile associated with User A's identification information. In another example, the autonomous driving computer may access profile data from the user's access device, such as a key, card with an RFID, mobile phone, or other mobile device. In this example, the vehicle may not be required to specifically identify the user, but may simply identify the user's profile from the access device.
(58) The vehicle may use the profile data in various ways depending upon the type of the permission data and the features of the vehicle. In one example, once the user has identified him or herself, the vehicle may first determine whether the user has permission to use the vehicle at the present time. If not, the vehicle may notify the user that the user does not have permission at the current time.
(59) In some examples, the vehicle may also include a emergency override mode which allows the user to enter the vehicle and transport the user to a particular location, such as “home,” “police station,” “hospital,” etc., at any time. In this example, the first user and emergency services (police, fire, and/or medical services) may be notified via a secured network link with the vehicle.
(60) Similarly, if the user does have permission to use the vehicle at the present time, the vehicle may allow the user to enter a destination. For example, the user may speak a destination or enter one into the vehicle's navigation system 186 using a touch screen (such as touch screen 217 of
(61) If the user's profile does indicate that the user has permission to travel to the destination, the vehicle may transport the user to the destination autonomously without further input from the user. Alternatively, the vehicle may allow the user to operate the vehicle in a manual mode and display a set of turn by turn directions, for example on navigation display 215, for the user to follow to the destination. The vehicle may also be used in a semi-autonomous mode where the user controls one or more aspects of the vehicle, such as steering, acceleration, braking, etc., to maneuver the vehicle to the destination.
(62) In some examples, the permission data may also define a particular route to the destination. For example, as shown in map 800 of
(63) If the user attempts to maneuver the vehicle away from the predefined route or stop at a location which is restricted by the user's profile, the vehicle may respond by warning the user one or more times that the user is about to or has left the predefined route. For example, the vehicle may display warning information (see
(64) In one example, in response to determining that the user has left the predefined route or stopped at a restricted location, the vehicle may begin to record the user's actions, the vehicle's location and speed, as well as other data and generate a log. This log may then be accessed and reviewed by or transmitted to the first user, who may be a parent, guardian, or another third party who may have previously set the user's profile. For example, the first user may review the log by identifying his or herself to the vehicle and subsequently viewing the log on a display of the vehicle or downloading the log to another device. The log may also be transmitted wirelessly, for example, via a network such as a cellular network, 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. Alternatively, the vehicle may eventually take control in a fully autonomous mode to prevent the user from maneuvering the vehicle away from the predefined route.
(65) After receiving a destination, and before following or displaying a predefined route, the vehicle may also provide the user with a list of one or more alternative routes. For example, if the user's profile includes a predefined route to the destination, the autonomous driving computer may determine whether the user's profile indicates that the user may deviate from the predefined route. If so, a plurality of alternative routes may be calculated based on traffic conditions, duration, and distance. For example, User A's profile may indicate that user A has permission to deviate from route 810. Accordingly, as shown in map 900 of
(66) The alternative routes may then be compared to the predetermined route to calculate factors such as distance from the predefined route, expected duration or travel time, and proximity to any restricted areas as described above. These factors may be weighted and summed into a deviation value for each alternative route. The deviation values may then be compared to the maximum deviation threshold. Any alternative routes associated with a deviation value greater than the maximum deviation threshold may be excluded.
(67) In one example, a route R may include a travel time of T to the destination. An alternative route R1 may involve driving a maximum distance D1 from route R, and the travel time for route R1 may be T1. Similarly, another alternative route R2 may involve driving a maximum distance D2 from route R, and the travel time for route R2 may be T2. In this example, D1>D2, and T >T1>T2. By changing the respective weights of distance and time to the maximum deviation value, in some examples R1 may be more likely to be excluded if distance is weighed heavily, whereas R2 may be more likely to be excluded if time is weighed heavily.
(68) In another example, the predefined or ideal route (i) may be compared to an alternate route (a) using the equation:
(69)
In this example, the max_distance may be the maximum distance between a travel point on the alternate route and the closest point on the ideal route. This max_distance may be a maximum deviation value preset and stored at the computer or identified by the first user (setting up the profile). Each of the values identified above, length, distance, and time are each associated with a particular weight value. These weighted values may be summed and compared to some limit value. The limit value may also be a maximum deviation value preset and stored at the computer or identified by the first user (setting up the profile). This is a simplified example used herein to describe a comparison generally. Accordingly, these comparative equations may become more complicated as the autonomous driving computer is required to take more information into consideration.
(70) In the example of
(71) One or more alternative routes with deviation values at or below the maximum deviation threshold may be presented to the user on a display. The user may then select between the predetermined route and any of the presented alternative values. For example, as shown in screen shot 1000 of
(72) In some instances, it may become necessary to deviate from a route while the vehicle is following it, such as if there is an accident, traffic, construction, etc. Accordingly, before assuming control or notifying the user, the vehicle may access the user's profile to determine whether the user has permission to change the route of the vehicle completely or by a maximum deviation value. For example, the user may want command the vehicle to take a side street in order to avoid a congested intersection. The user may control the vehicle manually off of the route and towards the side road.
(73) If the user controls the vehicle manually, the vehicle may respond by warning the user one or more times that the user is or has left the predefined route and also indicate whether the vehicle is approaching the maximum deviation value. If the maximum deviation value is met, the vehicle may do one or more of the following: maneuver itself autonomously or semi-autonomously, record a log of the user's actions and the vehicle's movements as in the example above, notify the first user who programmed the user's profile, or notify legal authorities. For example, as shown in screen shot 1100 of
(74) In another example, if the user would like to deviate from the route, but not take manual control of the vehicle, the user may identify the deviation by drawing or otherwise indicating the change on the navigation display. The vehicle may then calculate a deviation value for the deviation identified by the user. The deviation value may be compared to a maximum deviation value associated with the user's profile to determine whether the identified deviation is permissible. If so, the vehicle may follow the identified deviation autonomously. If the identified deviation is not permissible, the vehicle may notify the user and continue along the predefined route.
(75) In some examples, the user may need or want to deviate from the deviation. In this example, the same or another maximum deviation value may be compared to the route identified or taken by the user as described above. In this regard, the vehicle may prevent users from attempting to trick the vehicle by deviating from a deviation.
(76) If the user's profile does not include a predefined route, the vehicle's navigation system may identify a route between the vehicle's current location and the destination. For example, the route may be based on a shortest distance or avoiding specific areas (high-traffic or school zones) or roads (parkways, turnpikes, or expressway) as defined in the user's profile and permission data. In this regard, even without the predefined routes, the vehicle may operate within the constraints of predefined parental parameters. The vehicle may then transport the user to the destination along the identified route. Alternatively, the user may begin to maneuver the vehicle towards the destination. In this example, the vehicle may continuously monitor whether the vehicle is approaching any areas through which the user is not permitted to travel.
(77) Once the vehicle has arrived at the destination, the vehicle may drop the particular occupant off at the destination. In some examples, the vehicle may wait until the passenger is ready to move to another destination. Again, upon return to the vehicle, the user may be required to identify him or herself to the vehicle so that the vehicle may identify the user's profile and any associated constraints.
(78) Flow diagram 1200 of
(79) In response to receiving the identifying information, the autonomous driving computer accesses the memory to determine whether the identifying information is associated with a particular user profile at block 1208. If not, the autonomous driving computer may deny the user the ability to use the vehicle or may allow the user to operate the vehicle in an emergency mode as described above and shown in block 1210.
(80) If a user profile is identified, the autonomous driving computer determines whether the user currently has permission to use the vehicle at block 1212. For example, the autonomous driving computer may determine whether there are any date and/or time restrictions and if so, whether they indicate that the user currently has permission to use the vehicle. If not, the process returns to block 1210 where the autonomous driving computer may deny the user the ability to use the vehicle or may allow the user to operate the vehicle in the emergency mode.
(81) If the user does have permission to use the vehicle, or if there are no particular date and/or time restrictions, the user may provide a destination. This destination is received by the autonomous driving computer at block 1214. The autonomous driving computer then determines, based on the identified profile, whether the destination is a permissible destination at block 1216. If not, the vehicle may present a denial or warning message such as “You do not have permission to go to this destination,” as shown in block 1218. The vehicle may allow the user to submit another destination at block 1220. If the user does not submit a new destination, the process again returns to block 1210 where the autonomous driving computer may deny the user the ability to use the vehicle or may allow the user to operate the vehicle in the emergency mode.
(82) Returning to block 1216, if the received destination is permissible, the autonomous driving computer again checks the user's profile to determine whether there is a predefined route to the destination at block 1222. If not, the autonomous driving computer generates a route based on any other relevant restrictions in the user's profile at block 1224. The autonomous driving computer then either displays the generated route as a set of turn-by-turn directions to a user driving the vehicle manually or follows the generated route to the destination autonomously (or semi-autonomously) at block 1226.
(83) Returning to block 1222, if a predefined route is identified, the autonomous driving computer determines from the identified profile whether the user has permission to take alternate routes to the destination at block 1228. If not, the autonomous driving computer either displays the predefined route as a set of turn-by-turn directions to a user driving the vehicle manually or follows the generated route to the destination autonomously (or semi-autonomously) at block 1230.
(84) If the user has permission to take an alternative route, the autonomous driving computer calculates an alternate route at block 1232. The autonomous driving computer then calculates a deviation value based on the time, distance, and other deviation factors from the predefined route at block 1234. The deviation value for the alternate route is then compared to a maximum deviation value that may be associated with the identified profile, at block 1236. If the deviation value is greater than the maximum deviation value, the autonomous driving computer either displays the predefined route as a set of turn-by-turn directions to a user driving the vehicle manually or follows the generated route to the destination autonomously (or semi-autonomously) at block 1230.
(85) If the deviation value is less than or equal to the maximum deviation value, the autonomous driving computer displays the route options, including the predetermined route and the alternate route at block 1238. The user may then select from one of the route options. The selected route is received by the autonomous driving computer at block 1240. The autonomous driving computer either displays the selected route as a set of turn-by-turn directions to a user driving the vehicle manually or follows the generated route to the destination autonomously (or semi-autonomously) at block 1242.
(86) Turning to block 1244 of
(87) If the user is attempting to or actually leaving the route, the autonomous driving computer determines whether the identified profile indicates that the user has permission to deviate from the route. If not, and if the vehicle is operating in an autonomous mode, the autonomous driving computer may deny the user's ability to leave the route. If the vehicle is operating in a semi-autonomous mode, the vehicle may prevent the user from leaving the route by taking full control of the vehicle, warning the user, and/or recording a log of the user's actions. If the vehicle is being operated in a manual mode, the autonomous driving computer may respond by taking control of the vehicle autonomously, warning the user, and/or recording a log of the user's actions. If the user or the autonomous computer returns the vehicle to the route at block 1256, the process returns to block 1244 and the vehicle continues to follow and/or display the generated, predetermined, or selected route. If the user continues to attempt to or actually deviate from the route, the autonomous computer may again respond by taking control of the vehicle autonomously (if it has not already done so), warning the user, and/or recording a log of the user's actions at block 1254.
(88) If the identified profile indicates that the user does have permission to leave the route, the autonomous driving computer may begin to calculate another or a new deviation value at block 1254. This may be calculated in real time either based on a proposed route identified by the user as described above or based on the user's control of the vehicle. At box 1256, the new deviation value is then compared to a maximum deviation value which may be the same or a different maximum deviation value as box 1236 of
(89) If the deviation value is less than or equal to the maximum deviation value, the autonomous driving computer may allow the deviation at block 1258. If the vehicle is being operated in a manual mode, the autonomous driving computer then continues to monitor whether the deviation value remains at or below the maximum deviation value. If not, the process again returns to block 1254 where the autonomous computer responds by taking control of the vehicle autonomously, warning the user, and/or recording a log of the user's actions.
(90) The autonomous driving computer also monitors whether the user is attempting to deviate from the deviation at block 1260. If so, the process returns to block 1254 to determine the deviation value, etc. If the user does not attempt to deviate from the deviation, the process returns to block 1244 where the vehicle continues to follow and/or display the generated, predetermined, or selected route until reaching the destination. If the user leaves the vehicle at the destination and subsequently returns to the vehicle, the process returns to block 1206 of
(91) This type of vehicle may lend itself to a special licensing scheme where an individual is allowed to “operate” the vehicle under specific constraints with a special license which does not allow full manual driving or driving in particular locations. In this example, the constraints may be programmed into the user's profile. The vehicle itself may monitor the user's compliance with the constraints. For example, a teenager who is too young to qualify for a standard driver's license may be granted a special license to use the vehicle according to particular legal constraints. In another example, a newly licensed driver may be restricted legally from driving the vehicle at night, etc. Again, these constraints may be monitored and enforced by the vehicle based on the user's profile.
(92) Autonomous vehicles, such as those having one or more features described herein, may also be shared by drivers, such as those having one or more features described herein. For example, a driver or owner may allow other users to access the autonomous vehicle to other drivers when the vehicle is not in use. The owner may charge a rental fee or taxiing fee to the other driver. The vehicle may charge the other driver's credit card or an account after identifying the other driver as described above.
(93) When a person requires a vehicle, the person may send his or her location to a dispatching service, for example, a vehicle's computer or a remote server computer, and a vehicle may be dispatched to the person. For example, the person's location may be identified based on a position component of a mobile computer or phone and transmitted to the dispatching service. The vehicle may be dispatched by a central dispatching service controlling a fleet of autonomous vehicles or the vehicles may cooperate with one another to identify the closest available vehicle and dispatch it to the person. When the vehicle arrives, the person may be identified before providing access to the vehicle. Alternatively, a person may simply walk up to any autonomous vehicle that is available for rent, identify themselves, and then be granted access and/or control of the vehicle.
(94) A vehicle may also be sent to a specific location automatically. For example, when not in use, fleet vehicles may return to locations where taxi services are generally in high demand such as airports or train stations. In another example, the driver may provide the computer with access to the driver's personal calendar. The vehicle may automatically dispatch itself to a location where the drive may be in order to pick up the driver and take him or her to the location of a calendar appointment.
(95) 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 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.