Autonomous vehicle route planning

The navigation system for autonomous vehicles addresses the issue of potential stalls by considering occupant presence and driving capabilities to select alternative routes, enhancing reliability and safety in MAAS services.

JP7875911B2Active Publication Date: 2026-06-18TOYOTA RESEARCH INSTITUTE INC

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
TOYOTA RESEARCH INSTITUTE INC
Filing Date
2024-09-13
Publication Date
2026-06-18

AI Technical Summary

Technical Problem

Conventional navigation systems for autonomous vehicles, particularly those used in mobility-as-a-service (MAAS) vehicles, fail to consider the potential for vehicle stalls due to factors like mechanical failure or sensor malfunctions when determining routes, especially when the vehicle is unoccupied, which can complicate assistance and recovery.

Method used

A navigation system for autonomous vehicles that determines the presence of occupants and their driving capabilities to select alternative routes that avoid potential stalls, ensuring the vehicle can safely complete its journey without needing external assistance.

🎯Benefits of technology

Enhances the reliability of autonomous vehicle navigation by preventing stalls and ensuring safe operation by selecting routes based on occupant availability and driving capabilities, thereby improving the efficiency and safety of MAAS services.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007875911000001
    Figure 0007875911000001
  • Figure 0007875911000002
    Figure 0007875911000002
  • Figure 0007875911000003
    Figure 0007875911000003
Patent Text Reader

Abstract

To provide a method of route planning for an autonomous vehicle.SOLUTION: A method of route planning for an autonomous vehicle includes determining whether a route to a destination includes a stall factor, and determining whether there is an occupant in the autonomous vehicle along the route. The method also includes determining an alternative route based on the determined stall factor when there is no occupant in the autonomous vehicle. The method further includes controlling the autonomous vehicle to cause the autonomous vehicle to travel along the alternative route when the alternative route does not include a stall factor.SELECTED DRAWING: Figure 5
Need to check novelty before this filing date? Find Prior Art

Description

【Technical Field】 【0001】 Certain aspects of the present disclosure generally relate to route planning, and more particularly, to systems and methods for planning routes for autonomous vehicles. 【Background Art】 【0002】 Conventional navigation systems consider external factors when selecting a route to a destination. The external factors can include traffic volume, road hazards, and / or weather. In addition, conventional navigation systems for non-autonomous vehicles can only determine a route to a destination. In contrast, an autonomous vehicle navigation system can determine routes to and from a destination. That is, an autonomous vehicle navigation system selects a route from a starting point to a destination and a route from the destination back to the starting point. For example, an autonomous taxi can pick up a customer at a taxi station, transport the customer to a destination, and return to the taxi station for another pick-up. 【0003】 For mobility as-a-service (MAAS) vehicles as autonomous services, an autonomous MAAS vehicle may be unoccupied for one route of travel. For example, an autonomous MAAS vehicle may be occupied when traveling to a destination and unoccupied when traveling from the destination back to the starting point. Thus, in contrast to conventional navigation systems that only consider external factors, a navigation system for autonomous MAAS vehicles should be improved to consider the capabilities of the autonomous MAAS vehicle to successfully complete a route. 【Summary of the Invention】 【0004】 In one embodiment of this disclosure, a method for route planning for an autonomous vehicle is disclosed. The method includes determining whether a stall factor exists between the route to the destination. The method also includes determining whether there are occupants in the autonomous vehicle between the route. The method further includes determining an alternative route if a stall factor exists and there are no occupants in the autonomous vehicle between the route. The method further includes controlling the autonomous vehicle to drive along the alternative route if the alternative route does not contain a stall factor. 【0005】 In other aspects of this disclosure, a non-temporary computer-readable medium on which non-temporary program code is recorded is disclosed. The program code is for route planning for an autonomous vehicle. The program code is executed by a processor and includes program code for determining whether stall factors exist between the route to the destination. The program code also includes program code for determining whether there are occupants in the autonomous vehicle between the route. The program code further includes program code for determining an alternative route if stall factors exist and there are no occupants in the autonomous vehicle between the route. The program code further includes program code for controlling the autonomous vehicle to drive along the alternative route if the alternative route does not contain stall factors. 【0006】 Other aspects of this disclosure are directed to a device for route planning for an autonomous vehicle. The device has memory and one or more processors coupled to the memory. The processors are configured to determine whether stall factors exist between the route to the destination. The processors are also configured to determine whether there are occupants in the autonomous vehicle between the route. The processors are further configured to determine an alternative route if stall factors exist and there are no occupants in the autonomous vehicle between the route. The processors are even further configured to control the autonomous vehicle to drive along the alternative route if the alternative route does not contain stall factors. 【0007】 This specification provides a fairly broad overview of the features and technical advantages of the disclosure so that the subsequent detailed descriptions may be better understood. Additional features and advantages of the disclosure are described below. Those skilled in the art should recognize that this disclosure can be readily modified to accomplish the same objectives of the disclosure or used as a basis for designing other structures. They should also recognize that such equivalent structures would not deviate from the teachings of the disclosure as described in the accompanying claims. Any new features believed to be features of the disclosure, along with further objectives and advantages, will be better understood from the following description when considered in relation to the accompanying drawings, both in terms of their configuration and method of operation. However, it should be clearly understood that each feature is provided for illustrative and descriptive purposes only and is not intended to define any limitation of the disclosure. [Brief explanation of the drawing] 【0008】 The features, properties, and advantages of this disclosure will become clearer from the detailed description below when used in conjunction with the drawings, which are identified throughout by similar reference letters. [Figure 1] Figure 1 illustrates a flowchart for determining whether or not to accept a reservation in accordance with the aspects of this disclosure. [Figure 2] Figure 2 illustrates a flowchart for determining whether or not to accept a reservation, relating to the aspects of this disclosure. [Figure 3A] Figure 3A shows an example of selecting a route to a destination according to an aspect of this disclosure. [Figure 3B] Figure 3B shows an example of selecting a route to a destination according to an aspect of this disclosure. [Figure 4] Figure 4 shows an example of a hardware implementation for an autonomous vehicle navigation system according to the embodiments of this disclosure. [Figure 5] Figure 5 illustrates a flowchart for route planning for a vehicle according to an aspect of this disclosure. [Modes for carrying out the invention] 【0009】 The detailed descriptions below, in relation to the accompanying drawings, are intended to describe various configurations and not to represent only configurations that can implement the concepts described herein. The detailed descriptions include certain details for the purpose of providing a complete understanding of the various concepts. However, it will be obvious to those skilled in the art that these concepts can be implemented without these specific details. In some examples, well-known structures and components are shown in block diagrams to avoid obscuring such concepts. 【0010】 Based on the teachings, it will be understood by those skilled in the art that the scope of this disclosure is intended to cover any aspect of the disclosure, whether implemented independently or in combination with any other aspect of the disclosure. For example, an apparatus can be implemented or a method can be carried out using any number of the described aspects. In addition, the scope of this disclosure is intended to cover an apparatus or method that may be implemented using other structures, functions, or structures and functions in addition to or in addition to the various aspects of the disclosure described herein. It should be understood that any aspect of the disclosure can be embodied by one or more elements of the claims. 【0011】 In this specification, the phrase "as an example" is used to mean "serving as an example, illustration, or representation." No embodiment described as "as an example" in this specification should necessarily be construed as being preferable or superior to any other embodiment. 【0012】 While specific embodiments are described herein, many variations and substitutions of these embodiments are within the scope of this disclosure. Although some benefits and advantages of preferred embodiments are mentioned, the scope of this disclosure is not intended to be limited to any particular benefit, use, or purpose. Rather, the embodiments of this disclosure are intended to be broadly applicable to different technologies, system configurations, networks, and protocols, some of which are illustrated in the diagrams of preferred embodiments and in the description below. The detailed descriptions and drawings are not limiting but merely illustrative of this disclosure, and the scope of this disclosure is defined by the accompanying claims and their equivalents. 【0013】 Conventional navigation systems consider external factors when selecting a route to a destination. These external factors may include traffic volume, road hazards, and / or weather. In most cases, conventional navigation systems select the route with the fewest external factors. For example, when determining a route based on travel time, a conventional navigation system may choose a longer route with less traffic over a shorter route. 【0014】 In addition, conventional navigation systems for non-autonomous vehicles can only determine the route to the destination. In contrast, navigation systems for mobility-as-a-service (MAAS) vehicles can determine the route from the initial location to the destination and the route from the destination back to a return location such as the initial location. For example, an autonomous MAAS vehicle (e.g., an autonomous taxi) can pick up a customer at an initial location (e.g., a taxi station, airport, train station), transport the customer to their destination, and return to a location for other pick-ups. In this example, the autonomous MAAS vehicle is unoccupied after transporting the customer to their destination. 【0015】 The embodiments of this disclosure are not limited to autonomous MaaS vehicles. Other vehicles are also considered. For example, embodiments of this disclosure can also be directed to autonomous privately owned vehicles (POVs). For example, an owner may commute by train. Nevertheless, the POV can still transport the owner to the train station. In this example, the route planning system may consider the possibility of stalling between the drop-off location (e.g., the train station) and the return location (e.g., the owner's home). In addition, when the owner returns to the train station from work, the owner can call the POV to drive from the owner's home to the train station. In this example, the route planning system may consider the possibility of stalling between the initial location and the pickup location. For simplicity, in this application, MaaS vehicles and POV vehicles are referred to as vehicles. 【0016】 Aspects of this disclosure consider the possibility of stalls between different types of routes. Routes may include a route from an initial position to a pickup position, a route from the pickup position to a drop-off position, and a route from the drop-off position to a return position. In some cases, the vehicle's journey may involve all three routes or a combination of all three. 【0017】 In some cases, a vehicle may stall while in motion. For example, a vehicle may encounter mechanical failure (e.g., a flat tire, a dead battery) or sensor failure (e.g., no GPS signal, no wireless network signal). If there are occupants in the vehicle, they can provide assistance. For example, occupants can fix mechanical failures, call for help, or walk to ask for assistance. In contrast, it can be difficult for an unoccupied vehicle to overcome a stall. For example, if an unoccupied vehicle stalls in an area without wireless network service, the vehicle cannot call for assistance. 【0018】 Aspects of this disclosure are directed towards determining whether a route includes a stall factor. If a route includes a stall factor, an alternative route is selected. If no alternative route is available, the vehicle does not travel along that route. A route is a route to pick up a customer at a customer's location, a route to a destination, and / or a route from the destination to another location, such as the initial location. 【0019】 For example, a customer can book a vehicle. A vehicle booking may include the customer's location and destination. In response to receiving a booking, the vehicle determines a pickup route to the customer's location, a destination route from the customer's location to the destination, and a return route to the return location. Each route may include multiple possible routes. In one configuration, the vehicle removes any routes that may have potential stalls. 【0020】 The possibility of stalling may be based on one or more stall factors, such as low fuel, insufficient battery, mobile service below a threshold, environmental considerations (e.g., bad weather), construction, road hazards, unmapped areas (e.g., private roads), outdated maps, accidents, or sensor malfunctions. If a route contains one or more stall factors, the vehicle may choose an alternative route. Before choosing an alternative route, the vehicle may determine whether it is safe to proceed along the route containing one or more stall factors. For example, when determining whether it is safe to proceed along the route, the vehicle may determine whether there are occupants along the route, whether the occupants have driver's licenses, and / or the duration of the stall factors. 【0021】 If the vehicle can complete the journey without stalling, the vehicle accepts the reservation. Figure 1 shows an example of a flowchart 100 for determining whether to accept a reservation according to an aspect of the present disclosure. As shown in Figure 1, in block 102, the vehicle receives a destination based on the customer's reservation. The destination is the initial location to which the vehicle is traveling or the location from which the vehicle is traveling from the initial location. For example, the destination is the customer's location or the destination intended by the customer. In this example, the vehicle drives to the customer's location to pick up the customer (e.g., to pick up the customer) and then takes the customer to their destination. In another example, the vehicle is at a pickup location (e.g., an airport pickup lot) and the customer boards the vehicle at the pickup location. 【0022】 In block 104, the vehicle determines a route to its destination. The route may be based on external factors such as traffic volume. For example, the route may be the route with the shortest travel time considering external factors. In block 106, the vehicle determines whether the route includes stall factors. Stall factors include, but are not limited to, limited resources (e.g., fuel, battery), environmental factors, road hazards, areas not on the map, outdated maps, traffic volume, accidents, and sensor malfunctions. 【0023】 If the route does not include a stall factor, at block 108, the vehicle selects a route to the destination. In an optional configuration, if the route includes a stall, at block 110, the vehicle determines whether there is a passenger in the vehicle during the route. If the route is from the initial position of the vehicle to the customer's pick-up position, there is no passenger in the vehicle. Instead, after picking up the customer, there is a passenger in the vehicle (e.g., while taking the customer to their destination). If there is a passenger in the vehicle, the passenger can provide assistance if the vehicle stalls. For example, the passenger can drive the vehicle, repair a malfunction, call for help, or walk to seek help. 【0024】 In this optional configuration, at block 112, the vehicle can further determine whether a passenger (e.g., a customer) has the ability to drive the vehicle. That is, if a stall occurs, the passenger may need to drive the vehicle. Therefore, if the passenger cannot drive the vehicle, the presence of the passenger is not important. The ability to drive can be determined from information such as driver's license information stored in the customer profile. 【0025】 In some cases, the customer who reserved the vehicle may be different from the passenger. Alternatively, the customer can request the vehicle for themselves and one or more other passengers. In one configuration, the vehicle uses a scanner or camera to scan the driver's license of each passenger to determine whether one or more passengers can drive the vehicle. 【0026】 If the occupant is unable to drive the vehicle, in block 114 the vehicle determines whether an alternative route is available. Furthermore, if there are no occupants in the vehicle for part of the route, in block 114 the vehicle determines whether an alternative route is available. If an alternative route is available, in block 106 the vehicle determines whether the alternative route includes stall factors. If no alternative route is available, in block 116 the vehicle does not accept the customer's reservation. The customer cannot overturn the vehicle's decision to cancel the reservation. 【0027】 In one configuration, in addition to determining whether there is a possibility of stalling on the route to the destination, the navigation system also determines whether there is a possibility of stalling on the return route from the destination. The return route is the route from the customer's destination to the vehicle's starting point or another location. The determination of whether there is a possibility of stalling on the return route can be made in conjunction with, or exclusively with, the determination of whether there is a possibility of stalling on the route to the destination. 【0028】 In most cases, the customer does not exist during the return route. However, there are situations in which the customer can exist during the return route. For example, a vehicle owner can book a service to bring the car to a certain location and then transport the vehicle owner home. In this example, the vehicle owner's home is the return location. Therefore, the vehicle owner (e.g., the customer) exists during the return route. 【0029】 Figure 2 illustrates a flowchart 200 for determining whether to accept a reservation according to an aspect of this disclosure. In the optional configuration, in block 202, the navigation system determines whether a route to the initial destination (e.g., the customer's pickup location and / or drop-off location) is available. The navigation system may determine whether a route to the destination is available based on flowchart 100 in Figure 1. If a route to the destination is not available, the process terminates (block 204). 【0030】 If a route to the initial destination is available, the navigation system determines a return route (block 206). Determining the return route may be separate from determining whether a route to the initial destination is available. After determining the return route, in block 208, the navigation system determines whether there are stall factors on the route (e.g., the return route). Although not shown in Figure 2, in one configuration, the vehicle determines whether there are occupants in the vehicle during the return route. The vehicle may also determine whether the occupants are capable of driving the vehicle. The determination of whether there are occupants and / or the occupants' ability to drive can be used to determine whether the vehicle should choose a return route with stall factors. 【0031】 If the return route does not contain a stall factor, the reservation is accepted (block 210). If the return route contains a stall factor, the navigation system determines whether an alternative route is available (block 212). If no alternative route is available, the vehicle does not accept the reservation (block 214). If an alternative route is available, in block 208, the vehicle determines whether there is a stall factor on the route (e.g., the alternative return route). If the alternative return route does not contain a stall factor, in block 210, the vehicle accepts the customer's reservation. If the alternative route contains a stall factor, the process is repeated in block 212, and the vehicle determines whether another alternative route is available. The customer cannot overturn the vehicle's decision to cancel the reservation. 【0032】 Figure 3A shows an example of selecting routes 302 and 304 to destinations 314 and 316 according to an aspect of the present disclosure. As shown in Figure 3A, the vehicle 310 may be at an initial position 312 in area 300. In this example, part of area 300 includes rain 318. Furthermore, area 300 includes old map sections 324 and weak signal sections 322. An old map section 324 is a part of area 300 where the time since the last map update is longer than a threshold. An old map section 324 may also be an area with no map information, such as an area with private roads. A weak signal section 322 is a section where reception of one or more transmitted signals is weak or absent, such as cellular, WiFi, or GPS. 【0033】 In this example, vehicle 310 receives a reservation from a customer at home 314. The reservation indicates that the customer wants to be dropped off at office 316. Upon receiving the reservation, vehicle 310 (e.g., vehicle 310's navigation system) determines a pickup route 302 to home 314 (e.g., pickup destination) and a drop-off route 304 to office 316 (e.g., drop-off destination). In some cases, vehicle 310 may only determine a route to one destination. For example, if the customer encounters vehicle 310 at vehicle 310's initial position 312, vehicle 310 may only determine a route to the customer's drop-off destination 316. Vehicle 310 determines whether each route 302, 304 contains stall factors. 【0034】 In this example, vehicle 310 determines that there is rain 318 on part of pickup route 302. Therefore, due to the rain 318 (e.g., stall factor), there is a possibility of stalling on pickup route 302. The rain 318, due to the humidity conditions, can cause sensor malfunction or mechanical failure (or accident). Vehicle 310 can determine whether there are occupants on pickup route 302. In this example, since there are no occupants on vehicle 310 on pickup route 302, vehicle 310 determines an alternative pickup route 320. Vehicle 310 also determines whether there is a stall factor on the alternative pickup route 320. Since there is no stall factor on the alternative pickup route 320, the alternative pickup route 320 is selected as the route to home 314. 【0035】 After selecting an alternative pickup route 320, vehicle 310 determines a drop-off route 304 from home 314 (e.g., customer location) to office 316 (e.g., customer drop-off destination). Vehicle 310 determines whether there is a stall factor on the drop-off route 320. As shown in Figure 3A, a portion of the drop-off route 304 overlaps with a weak signal section 322 (e.g., a stall factor). Therefore, there is a possibility of a stall in the weak signal section 322. The stall can be caused by a sensor malfunction due to a weak signal. In addition, if a mechanical malfunction occurs, vehicle 310 will not be able to call for help due to the weak signal. 【0036】 Since the drop-off route 304 includes a stall factor, vehicle 310 determines whether there is an occupant during the drop-off route 304. In this example, the customer is in vehicle 310 during the drop-off route 304. In one configuration, vehicle 310 further determines whether the customer can drive vehicle 310 in manual mode. This decision can be based on information in the customer profile. For example, the customer profile may include the customer's driver's license information. In the example in Figure 3A, it is assumed that the customer can drive vehicle 310. Therefore, vehicle 310 selects the drop-off route 304 despite the possibility of stalling. 【0037】 After determining that vehicle 310 can operate routes 304 and 320 to destinations 314 and 316, vehicle 310 can approve the reservation. In one configuration, before approving the reservation, vehicle 310 determines whether a return route is available. The return route is the route from the customer's drop-off location 316 to the vehicle 310's next location, such as a designated starting point or a location to pick up other customers. Figure 3B shows an example of selecting return routes 332 and 334 according to an aspect of the present disclosure. 【0038】 In the example shown in Figure 3B, vehicle 310 determines a return route 332 from office 316 (e.g., customer drop-off location) to return location 330 such as a parking lot. After determining the return route 332, vehicle 310 determines whether the return route 332 includes a stall factor. As shown in Figure 3B, a portion of the return route 332 overlaps with a weak signal section 322 (e.g., a stall factor). Therefore, there is a possibility of stalling in the weak signal section 322. 【0039】 Since there is a possibility of stalls on the return route 332, vehicle 310 determines whether there are any occupants on vehicle 310 during the return route 332. In this example, since the passengers have disembarked from the vehicle on the return route 332, there are no occupants on vehicle 310. Therefore, vehicle 310 determines an alternative return route 334. 【0040】 In response to determining an alternative return route 334, vehicle 310 determines whether the alternative return route 334 includes stall factors. As shown in Figure 3B, a portion of the alternative return route 334 overlaps with section 324 on the old map (e.g., stall factors). Therefore, there is a possibility of stalls in section 324 on the old map. The old map may cause stalls because roads may be unknown or one or more roads may be inaccessible (e.g., private roads). Because there is a possibility of stalls on the alternative return route 334, vehicle 310 determines whether there are passengers on the alternative return route 334. In this example, the alternative return route 334 is after the passengers have disembarked, and therefore there are no passengers on vehicle 310. Vehicle 310 determines whether there are any other routes to the return location 330. 【0041】 In this example, only the return route 332 and the alternative return route 334 are available routes to the return location 330. In one configuration, the vehicle 310 cancels the reservation if a return route is unavailable. In other configurations, if the vehicle has a potential stall on one or more of the routes (e.g., the destination route or the return route), the vehicle 310 determines an alternative pickup or drop-off location. 【0042】 In the example shown in Figure 3B, vehicle 310 has the potential for stalls on both the return route 332 and the alternative return route 334. Therefore, if an alternative return area or alternative drop-off area is selected, vehicle 310 determines whether a return route without stall factors is available. The alternative return area and the alternative drop-off destination are within a predetermined distance from the original return area 330 and the original drop-off destination 316, respectively. In this example, vehicle 310 selects the alternative drop-off area 336, which is within a predetermined distance from the original customer location 316. This alternative drop-off destination may also include a predetermined location or a location with heavy traffic, such as a bus stop or train station. The location with heavy traffic may be the location with heavy traffic closest to the original drop-off location 316. 【0043】 Vehicle 310 determines whether there are stall factors on the return route 332 and / or the alternative return route 334 if the original drop-off destination 316 has been changed to an alternative drop-off area 336. As shown in Figure 3B, the return route 332 bypasses the weak signal section 322 if the return route 332 starts from a location within the alternative drop-off area 336. Therefore, selecting the return route 332 avoids known stall factors. In this configuration, rather than canceling the reservation, vehicle 310 can offer the customer the option of cancellation or selection of an alternative drop-off area 336. Vehicle 310 can also provide the reason why the original drop-off destination 316 is unavailable. 【0044】 In aspects of the present disclosure, a navigation system (e.g., a vehicle) determines whether a stall factor is temporary. For example, if a potential stall is based on rain, the navigation system estimates the duration of the rain. The estimated duration of a stall factor, such as rain, can be obtained from a command center, weather data, traffic data, communication with other vehicles, or other data sources. In this example, if it is estimated that the rain will stop before the vehicle arrives at the location of the rain, the vehicle can still accept reservations. 【0045】 In addition, or alternatively, if the stall factor is temporary, the navigation system may wait for the stall factor to resolve before commencing travel on the route. In one configuration, the navigation system determines whether the wait time is below a threshold. If the wait time is below the threshold, the navigation system may wait for the stall factor to resolve. The navigation system may also give the customer the option to wait for the stall factor to resolve or to cancel the reservation. If the wait time is longer than the threshold, the navigation system may cancel the reservation. 【0046】 As discussed, in order to accept a reservation, the navigation system can determine whether the vehicle has a potential stall on the route to one or more destinations. This determination may include pickup locations, drop-off locations, return locations, or other types of locations. If the route to the destination contains a stall factor, the vehicle may cancel the reservation. Alternatively, the navigation system may suggest one or more alternative destinations that would allow the vehicle to bypass the portion of the route that has a stall factor. The alternative destinations would be destinations or areas close to the original destination, such as main streets. 【0047】 In addition, or alternatively, if the stall factor is temporary, the navigation system can estimate the duration of the stall factor. The navigation system can inform the customer that there will be a delay due to the stall factor. The customer can choose to cancel the reservation or wait for the stall factor to end. If the delay is longer than the delay threshold, the navigation system can cancel the reservation without giving the customer an option to accept the reservation. 【0048】 Stall factors may include, but are not limited to, low resources (e.g., fuel, battery), wireless signal strength below the signal strength threshold, environmental conditions, road hazards, unmapped areas, outdated maps, accidents, and sensor malfunctions. For example, a vehicle may stall in an area with potential sensor malfunctions. One example is a vehicle sensor (e.g., a camera) used to detect the color of traffic lights, which may fail to detect the color within a certain range of sun angles. Another example is that light detection and ranging (LIDAR) sensors may not function in rain or fog. Yet another example is that a vehicle may lose its track to its location if the route includes areas with limited or no signals, such as tunnels. Signals can include different communication signals, such as Global Positioning System (GPS) signals, wireless internet signals, and cellular signals. 【0049】 As discussed, stall factors can also include environmental conditions. For sensors such as cameras, a navigation system can determine backlight conditions, vehicle direction, traffic light location, time of arrival at intersections, sun angle, weather, and building information (e.g., whether buildings block the sun). The aforementioned information, such as sun angle, can be included in map data stored in the vehicle. Information can also be obtained from the internet or other data sources. 【0050】 For LIDAR sensors and other sensors, weather conditions such as humidity can cause sensor malfunction. Therefore, navigation systems can estimate various weather conditions, such as humidity, based on available weather information. Navigation systems can also consider the time of day and / or the duration of travel. For GSP sensors and other sensors, weak or blocked signals can cause sensor malfunction. Therefore, navigation systems can estimate signal strength for the route. Signal strength can be estimated based on, for example, building information (e.g., height and location), tunnel locations, terrain information (e.g., height of surrounding mountains), number of satellites, satellite locations, number of cell towers, number of WiFi transceivers, etc. This information can be stored in map data. 【0051】 In one configuration, the navigation system determines whether a stall factor is greater than or less than a threshold. For example, if the amount of rain is greater than the rain threshold, rain is determined to be a stall factor. If the rain is less than the threshold, rain is not considered a stall factor. In another example, if the characteristics of a building and / or the surrounding environment cause the cellular signal to fall below a threshold, then the characteristics of the building and / or the surrounding environment are a stall factor. If the cellular signal is greater than the threshold even after considering the characteristics of the building and / or the surrounding environment, then the aforementioned factors are not risk factors. In one configuration, the customer cannot override or ignore the consideration of whether a particular route may contain a stall factor. 【0052】 Stall factors can also include computational failures. For example, computational errors in a route planning system (e.g., an autonomous driving system) can occur when a vehicle is traveling through an outdated map area. Computational errors can include errors in localization, object tracking, route planning, and / or other calculations. In one example, an outdated map can cause a route planning system to lose track of its location relative to the map (e.g., localization error). 【0053】 As another example, when a vehicle is in an outdated map area, the route planning system may mislabel surrounding objects if one or more objects are being tracked based on map information (e.g., object tracking errors). In yet another example, when a vehicle is in an outdated map area, the route planning system may fail to remove outdated information from the map. In short, outdated maps can increase the use of system resources, thereby causing delays or errors in calculations. 【0054】 Figure 4 shows an example of a hardware implementation of the route planning system 400 according to an aspect of the present disclosure. The route planning system 400 may be a component of a vehicle, a robotic device, or other device. For example, as shown in Figure 4, the route planning system 400 is a component of a MAAS vehicle 428. The aspects of the present disclosure are not limited to the route planning system 400 being a component of a vehicle 428, but other devices such as buses, boats, drones, or robots may also use the route planning system 400. The vehicle 428 may be autonomous or semi-autonomous. 【0055】 The route planning system 400 can generally be implemented using a bus architecture represented by bus 440. Bus 440 may include any number of interconnect buses and bridges, depending on the specific application of the route planning system 400 and the overall design constraints. Bus 440 links and connects various circuits, including one or more processors and / or hardware modules, represented by processor 420, communication module 422, position module 418, sensor module 402, mobile module 426, navigation module 424, and computer-readable medium 414. Bus 440 can also link various other circuits, such as timing sources, peripherals, voltage regulators, and power management circuits, but these are well-known in this technology and will not be described further. 【0056】 The route planning system 400 includes a processor 420, a sensor module 402, a comfort module 408, a communication module 422, a position module 418, a mobile module 426, a navigation module 424, and a transceiver 416 coupled to a computer-readable medium 414. The transceiver 416 is coupled to an antenna 444. The transceiver 416 communicates with various other devices over the communication medium. For example, the transceiver 416 can receive commands from a user or a remote device via transmission. As another example, the transceiver 416 can transmit driving statistics and information from the comfort module 408 to a server (not shown). 【0057】 The route planning system 400 includes a processor 420 coupled to a computer-readable medium 414. The processor 420 performs processing that includes executing software stored on the computer-readable medium 414, which provides the functions disclosed. When executed by the processor 420, the software causes the route planning system 400 to perform various functions described for special devices such as a vehicle 428, or for any of modules 402, 414, 416, 418, 420, 422, 424, or 426. The computer-readable medium 414 can also be used to store data that is manipulated by the processor 420 when the software is executed. 【0058】 Sensor module 402 can be used to obtain measurements via different sensors, such as a first sensor 406 and a second sensor 404. The first sensor 406 may be a vision sensor, such as a stereoscopic camera or an RGB camera for capturing 2D images. The second sensor 404 may be a distance sensor, such as a light detection and distance measuring (LIDAR) sensor or a radio detection and distance measuring (RADAR) sensor. Of course, the embodiments of this disclosure are not limited to the sensors described above, and other types of sensors, such as thermal, sonar, and / or lasers, can also be considered as either sensor 404 or 406. Measurements from the first sensor 406 and the second sensor 404 can be processed in conjunction with a computer-readable medium 414 by one or more of the processor 420, sensor module 402, communication module 422, position module 418, movement module 426, and navigation module 424 to realize the functions described herein. In one configuration, data captured by the first sensor 406 and the second sensor 404 can be transmitted to an external device via the transceiver 416. The first sensor 406 and the second sensor 404 can be coupled to or communicate with the vehicle 428. 【0059】 The position module 418 can be used to determine the position of the vehicle 428. For example, the position module 418 can use the Global Positioning System (GPS) to determine the position of the vehicle 428. The communication module 422 can be used to facilitate communication via the transceiver 416. For example, the communication module 422 can be configured to provide communication capabilities via different wireless protocols such as WiFi, LTE (Long-Term Evolution (3.9th generation mobile communication system as defined by 3GPP)), 4G, etc. The communication module 422 can also be used to communicate with other components of the vehicle 428 that are not modules of the route planning system 400. 【0060】 The mobility module 426 can be used to facilitate the movement of the vehicle 428. For example, the mobility module 426 can control the movement of the wheels. As another example, the mobility module 426 can communicate with a power source of the vehicle 428, such as an engine or battery. Of course, embodiments of this disclosure are not limited to providing movement via wheels, but can also be considered for other types of components for providing movement, such as propellers, treads, fins, and / or jet engines. 【0061】 The route planning system 400 also includes a navigation module 424 for route planning or for controlling the movement of a vehicle 428 via a movement module 426. In one configuration, the planning module 424 disables user input when it is expected (e.g., anticipated) that user input will cause a collision. The modules may be software modules operating in the processor 420 and resident / stored on a computer-readable medium 414, one or more hardware modules coupled to the processor 420, or any combination thereof. 【0062】 The navigation module 424 can communicate with the sensor module 402, the transceiver 416, the processor 420, the communication module 422, the location module 418, the movement module 426, the planning module 424, and the computer-readable medium 414. In one configuration, the navigation module 424 receives reservations from customers via the processor 420 and / or the transceiver 416. Reservations may include pickup and drop-off locations. Based on the location of the vehicle 428 obtained from the location module 418, the navigation module 424 determines the route to the pickup location, the route to the drop-off location, and / or the route to the return location. 【0063】 For each route, the navigation module 424 determines whether the route contains stall factors. That is, the navigation module 424 determines whether the vehicle 428 has a possibility of stalling along each route. Stall factors can be determined by information obtained from an external source such as the internet via the transceiver 416, sensor data obtained from the sensor module 402, and / or map and environmental data stored in the computer-readable medium 414 and / or storage module (not shown). 【0064】 For example, the navigation module 424 can determine, along with other factors, the condition of the backlights at the intersection, the direction of the vehicle 428 at the intersection, the position of traffic lights, the time of arrival at the intersection, the position of the sun, the weather at the intersection, and building information. If there is a possibility of stalls along the route, the navigation module 424 can determine one or more alternative routes and / or alternative pickup or drop-off locations. 【0065】 The navigation module 424 can also communicate with the customer via the transceiver 416 and / or the communication module 422. For example, if one or more routes are unavailable, the navigation module 424 can use the transceiver 416 and / or the communication module 422 to notify the customer that the reservation cannot be accepted. Alternatively, if the navigation module 424 determines that the trip can be completed, it can use the transceiver 416 and / or the communication module 422 to notify the customer that the reservation can be accepted. The navigation module 424 can send instructions to the position module 418 to have the vehicle 428 drive along the determined route. 【0066】 Figure 5 illustrates a method 500 for route planning for an autonomous vehicle according to an aspect of the present disclosure. As shown in Figure 5, in block 502, the route planning system determines whether stall factors exist along the route to the destination. Stall factors may include environmental factors, map data being older than a threshold, missing map data, signal strength being below a threshold, and / or battery power being below a threshold. The route may include a pickup route from an initial location to a customer pickup location, a drop-off route from a customer pickup location to a drop-off location, or a return route from a drop-off location to a return location. The route may be based on a reservation from a customer (e.g., passenger). 【0067】 In block 504, the route planning system determines whether there is an occupant in the autonomous vehicle during the route. In the optional configuration, if there is an occupant in the autonomous vehicle, the route planning system determines whether the occupant can drive the autonomous vehicle in manual mode. In block 506, the route planning system determines an alternative route if a stall factor exists during the route and there is no occupant in the autonomous vehicle. In block 508, the route planning system controls the autonomous vehicle to drive along the alternative route if the alternative route does not contain a stall factor. 【0068】 In one configuration, the route planning system determines an alternative route if a stall factor exists and the occupant cannot drive the autonomous vehicle in manual mode. The route planning system can also determine whether a stall factor exists along the alternative route. If the alternative route contains a stall factor, the reservation can be canceled. In one configuration, if a stall factor exists on the alternative route, an alternative destination is determined. The alternative destination may be a location within a threshold distance from the destination, a predetermined location, or a location with heavy traffic. 【0069】 As used herein, the term “determining” encompasses a wide range of actions. For example, “determining” can include calculating, operating, processing, deriving, investigating, examining (e.g., examining tables, databases, or other data structures), and verifying. In addition, “determining” can include receiving (e.g., receiving information), accessing (e.g., accessing data in memory), and furthermore, “determining” can include resolving, selecting, choosing, and establishing. 【0070】 As used herein, the phrase “at least one of” the list of items refers to any combination of those items, including single members. For example, “at least one of a, b, or c” is intended to cover a, b, c, a and b, a and c, b and c, and a, b and c. 【0071】 The various examples of logic blocks, modules, and circuits described in connection with this disclosure can be realized or run by a processor configured to perform the functions considered herein. The processor may be a neural network processor, a digital signal processor (DSP), a special-purpose integrated circuit (ASIC), a field-programmable gate array (FPGA), a signal or other programmable logic device (PLD), isolated gate or transistor logic, isolated hardware components, or any combination thereof, designed to perform the functions described herein. The processor may be a microprocessor, controller, microcontroller, or state machine specially configured as described herein. The processor may also be realized as a combination of arithmetic units as described herein, for example, a combination of a DSP and a microprocessor, multiple microprocessors, one or more microprocessors in conjunction with a DSP core, or other special configurations. 【0072】 Steps of methods or algorithms described in connection with this disclosure can be embodied directly in hardware, in software modules executed by a processor, or in a combination of both. Software modules can be used to execute or store desired program code in the form of instructions or data structures and can reside in a storage or machine-readable medium accessible by a computer, including random access memory (RAM), read-only memory (ROM), flash memory, erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), registers, hard disks, removable disks, CD-ROMs or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium. Software modules may comprise a single instruction or a number of instructions and may be distributed across several different code segments and multiple storage media in different programs. Storage media can be coupled to a processor so that the processor can read information from and write information to the storage media. Alternatively, storage media can be integrated into the processor. 【0073】 The methods disclosed herein comprise one or more steps or actions for achieving the described method. The steps and / or actions of the method can be substituted for one another without departing from the scope of the claims. In other words, unless a particular order of steps or actions is specified, the order and / or use of any particular steps and / or actions can be modified without departing from the scope of the claims. 【0074】 The functions described can be implemented in hardware, software, firmware, or any combination thereof. When implemented in hardware, an example hardware configuration may include a processing system in the device. The processing system can be implemented in a bus architecture. The bus may include any number of interconnection buses and bridges, depending on the specific application of the processing system and the overall design constraints. The bus can link and connect various circuits, including processors, machine-readable media, and bus interfaces. The bus interface can be used to connect network adapters via the bus, particularly to the processing system. Network adapters can be used to implement signal processing functions. In some embodiments, user interfaces (e.g., keypads, displays, mice, joysticks, etc.) can also be connected to the bus. The bus can also link various other circuits, such as timing sources, peripherals, voltage regulators, and power management circuits, but these are well known in this art and will not be described further. 【0075】 The processor can manage the bus and operations, including the execution of software stored on machine-readable media. Software should be interpreted as instructions, data, or any combination thereof, whether it be called software, firmware, middleware, microcode, hardware description language, or whatever else. 【0076】 In hardware implementations, the machine-readable medium may be part of a processing system separate from the processor. However, as those skilled in the art will readily recognize, the machine-readable medium, or any part thereof, may be outside the processing system. For example, the machine-readable medium may include transmission lines, data-modulated carrier waves, and / or computer products separate from the device, all of which may be accessed by the processor through a bus interface. Alternatively, or in addition, the machine-readable medium, or any part thereof, may be integrated into the processor, as in the case of caches and / or specialized register files. The various components considered may be described as having a specific location, such as local components, but they may also be configured in various ways, such that some components may be configured as part of a distributed computing system. 【0077】 The processing system may consist of one or more microprocessors providing processor functions and external memory providing at least a portion of a machine-readable medium, all of which are linked and connected to other support circuits through an external bus architecture. Alternatively, the processing system may comprise one or more neuromorphic processors to implement the neuron models and neuronal system models described herein. As yet another alternative, the processing system may be implemented as a special-purpose integrated circuit (ASIC) having a processor, bus interface, user interface, support circuits, and at least a portion of a machine-readable medium integrated on a single chip, or as one or more field-programmable gate arrays (FPGAs), programmable logic devices (PLDs), controllers, state machines, gate-controlled logic, isolated hardware components, or any other suitable circuits, or any combination of circuits. Those skilled in the art will recognize how best to implement the functions described for a processing system given the specific application and the overall design constraints imposed on the system as a whole. 【0078】 A machine-readable medium can contain a number of software modules. These software modules may include transmit and receive modules. Each software module may reside in a single storage device or be distributed across multiple storage devices. For example, a software module may be loaded from a hard drive into RAM when a triggering event occurs. While a software module is running, the processor may load some of the instructions into a cache to increase access speed. One or more cache lines may then be loaded into a special-purpose register file for execution by the processor. When the functionality of a software module is referred to below, it should be understood that such functionality is achieved by the processor executing instructions from that software module. Furthermore, it should be recognized that aspects of this disclosure result in improvements to the functionality of processors, computers, machines, or other systems that implement such aspects. 【0079】 When implemented in software, a function can be stored or transmitted to a machine-readable medium as one or more instructions or codes. Machine-readable mediums include both computer storage media and communication media, which are any storage media that facilitate the transfer of computer programs from one location to another. In addition, both relationships are appropriately referred to as machine-readable media. For example, if software is transmitted from a website, server, or other remote source using coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technologies such as infrared (IR), radio, and microwave, then coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technologies such as infrared, radio, and microwave are included in the definition of medium. As used herein, discs include compact discs (CDs), laserdiscs®, optical discs, digital multipurpose discs (DVDs), floppy disks®, and Blu-ray® discs, which typically reproduce data magnetically, while discs optionally reproduce data by laser. Therefore, in some embodiments, the computer-readable medium may include a non-temporary computer-readable medium (e.g., a physical medium). In addition, in other embodiments, the computer-readable medium may include a temporary computer-readable medium (e.g., a signal). The above combinations should also be included within the scope of computer-readable mediums. 【0080】 Therefore, in some embodiments, the computer program product may include a computer program product for performing the operations presented herein. For example, such a computer program product may include a computer-readable medium storing (and / or encoding) instructions, which are executed by one or more processors to perform the operations described herein. In some embodiments, the computer program product may include packaging material. 【0081】 Furthermore, modules and / or other suitable means for carrying out the methods and techniques described herein can be downloaded and / or, where applicable, obtained by user terminals and / or base stations. For example, such devices can be coupled to a server to facilitate the transfer of means for carrying out the methods described herein. Alternatively, the various methods described herein can be provided via storage means, thereby enabling user terminals and / or base stations to obtain the various methods by coupling or providing the storage means to the device. Furthermore, any other suitable techniques for providing the methods and techniques described herein to the device can be utilized. 【0082】 It should be understood that the claims are not limited to the exact configurations and components exemplified above. Various modifications, changes, and variations can be made without departing from the scope of the claims in terms of arrangement, operation, and details of the methods and apparatus described above. 【0083】 This disclosure includes the following aspects. (1) A method for route planning for autonomous vehicles, The stall factor is determined to be present along the route to the destination. Determining whether there is an occupant in the autonomous vehicle along the aforementioned route, If the aforementioned stall factor exists and there are no occupants in the autonomous vehicle along the aforementioned route, an alternative route shall be determined. A method comprising: controlling the autonomous vehicle to drive along the alternative route if the alternative route does not include stall factors. (2) The method of (1), further comprising determining whether the occupant can drive the autonomous vehicle in manual mode. (3) The method of (2), further comprising determining an alternative route when the stall factor exists and the occupant is unable to drive the autonomous vehicle in manual mode. (4) The method according to (1), wherein the route is one of the following: a pickup route from the initial position to the customer pickup position, a drop-off route from the customer pickup position to the drop-off position, or a return route from the drop-off position to the return position. (5) Determining the route based on the customer's reservation, The method of (1), further comprising canceling the reservation if the alternative route has a stall factor. (6) The method of (1), further comprising determining an alternative destination if the alternative route has a stall factor. (7) The method according to (1), wherein the alternative destination is a location within a threshold distance from the destination, a predetermined location, or a location where many people pass. (8) The method of (1), wherein the stall factor includes at least one of environmental factors, map data being older than a threshold, missing map data, signal strength being below a threshold, battery power being below a threshold, or a combination thereof. (9) Determining the duration of the stall factor of the said route, The method according to (1), further comprising changing the behavior of the autonomous vehicle based on the duration. (10) A device for route planning for autonomous vehicles, Memory and At least one processor coupled to the memory, Determine whether stall factors exist between the route to the destination. The system determines whether there are occupants in the autonomous vehicle along the aforementioned route. If the aforementioned stall factor exists and there are no occupants in the autonomous vehicle along the aforementioned route, an alternative route is determined. If the alternative route does not include stall factors, the autonomous vehicle is controlled to drive along the alternative route. A device comprising at least one processor configured in such a manner. (11) The apparatus according to (10), wherein the at least one processor is further configured to determine whether an occupant can drive the autonomous vehicle in manual mode. (12) The apparatus according to (11), wherein the at least one processor is further configured to determine the alternative route when the stall factor exists and the occupant is unable to drive the autonomous vehicle in manual mode. (13) The apparatus according to (10), wherein the route is one of the following: a pickup route from the initial position to the customer pickup position, a drop-off route from the customer pickup position to the drop-off position, or a return route from the drop-off position to the return position. (14) The at least one processor is The aforementioned route is determined based on the customer's reservation. If the alternative route has a stall factor, the reservation is cancelled. The apparatus described in (10), further configured as follows. (15) The apparatus according to (10), wherein the at least one processor is further configured to determine an alternative destination if the alternative route has a stall factor. (16) The device according to (10), wherein the alternative destination is a location within a threshold distance from the destination, a predetermined location, or a location where many people pass. (17) The apparatus according to (10), wherein the stall factor includes at least one of the following: environmental factor, map data being older than a threshold, missing map data, signal strength being below a threshold, battery power being below a threshold, or a combination thereof. (18) The at least one processor is Determine the duration of the stall factor in the aforementioned route. Based on the aforementioned duration, change the behavior of the autonomous vehicle. The apparatus described in (10), further configured as follows. (19) A non-temporary computer-readable medium that records program code to be executed by a processor for route planning for an autonomous vehicle, Program code that determines whether a stall factor exists between the route to the destination, A program code that determines whether there is an occupant in the autonomous vehicle along the aforementioned route, Program code for determining an alternative route when the aforementioned stall factor exists and there are no occupants in the autonomous vehicle along the aforementioned route, A non-temporary computer-readable medium comprising: program code that controls the autonomous vehicle to drive along the alternative route when the alternative route does not contain stall factors. (20) The non-temporary computer-readable medium according to (19), wherein the program code further comprises program code for determining an alternative route when the stall factor exists and the occupant is unable to drive the autonomous vehicle in manual mode.

Claims

[Claim 1] A method for route planning for semi-autonomous vehicles, Receiving a request to autonomously steer to the destination, To determine the route to the destination based on the received request, Identifying the presence of stall factors on the aforementioned route to the destination, In response to the identification of the stall factor, the occupancy status of the semi-autonomous vehicle is determined, In response to the determination that there is an occupant in the semi-autonomous vehicle based on the determination of the occupancy status, it is determined whether the occupant of the semi-autonomous vehicle can operate the semi-autonomous vehicle in manual operation mode. Identifying the stall factor and determining an alternative route in response to the determination that the occupant is unable to operate the semi-autonomous vehicle in manual mode, A method comprising: controlling the semi-autonomous vehicle to drive on the alternative route instead of the route if the alternative route does not include the stall factor. [Claim 2] The method according to claim 1, further comprising determining, based on profile information relating to the occupant, that the occupant is unable to operate the vehicle manually. [Claim 3] Scanning the driver's license of the aforementioned occupant, The method of claim 2, further comprising obtaining the profile information based on scanning the driver's license. [Claim 4] The method according to any one of claims 1 to 3, wherein the route is one of the following: a pickup route from an initial position to a customer pickup position, a drop-off route from the customer pickup position to a drop-off position, or a return route from the drop-off position to a return position. [Claim 5] The route is determined based on the reservations made by the aforementioned crew members, The method according to any one of claims 1 to 4, further comprising canceling the reservation if the alternative route has a stall factor. [Claim 6] The method according to any one of claims 1 to 4, further comprising determining an alternative destination if the alternative route has a stall factor. [Claim 7] The method according to claim 6, wherein the alternative destination is a location within a threshold distance from the destination, a predetermined location, or a location frequented by many people. [Claim 8] The method according to any one of claims 1 to 7, wherein the stall factor includes at least one of environmental factors, map data being older than a threshold, missing map data, signal strength being below a threshold, battery power being below a threshold, or a combination thereof. [Claim 9] Determining the duration of the stall factor of the aforementioned route, The method according to any one of claims 1 to 8, further comprising changing the behavior of the semi-autonomous vehicle based on the duration. [Claim 10] A device for route planning for semi-autonomous vehicles, Memory and At least one processor coupled to the memory, Upon receiving a request to autonomously steer to the destination, Based on the received request, determine the route to the destination. Identify that a stall factor exists on the aforementioned route to the destination, In response to the identification of the stall factor, the occupancy status of the semi-autonomous vehicle is determined. In response to the determination that there is an occupant in the semi-autonomous vehicle based on the determination of the occupancy status, it is determined whether the occupant of the semi-autonomous vehicle can operate the semi-autonomous vehicle in manual operation mode. In response to identifying the stall factor and determining that the occupant is unable to operate the semi-autonomous vehicle in manual mode, an alternative route is determined. If the alternative route does not include stall factors, the semi-autonomous vehicle is controlled to drive along the alternative route instead of the original route. A device comprising at least one processor configured in such a manner. [Claim 11] The apparatus according to claim 10, wherein the at least one processor is further configured to determine, based on profile information relating to the occupant, that the occupant is unable to operate the vehicle manually. [Claim 12] The aforementioned at least one processor scans the occupant's driver's license, The apparatus according to claim 11, further configured to acquire the profile information based on scanning the aforementioned driver's license. [Claim 13] The apparatus according to any one of claims 10 to 12, wherein the route is one of the following: a pickup route from the initial position to the customer pickup position, a drop-off route from the customer pickup position to the drop-off position, or a return route from the drop-off position to the return position. [Claim 14] A non-temporary computer-readable medium that records program code executed by a processor for route planning for a semi-autonomous vehicle, wherein the program code is: Program code that receives requests to autonomously steer to a destination, A program code that determines the route to the destination based on the received request, Program code that identifies the presence of a stall factor on the aforementioned route to the destination, A program code that determines the occupancy status of the semi-autonomous vehicle in response to the identification of the stall factor, A program code that determines whether the occupant of the semi-autonomous vehicle can operate the semi-autonomous vehicle in manual operation mode in response to a determination that there is an occupant in the semi-autonomous vehicle based on the determination of the occupant status, Program code that determines an alternative route in response to identifying the stall factor and determining that the occupant is unable to operate the semi-autonomous vehicle in manual mode, A non-temporary computer-readable medium comprising: program code that controls the semi-autonomous vehicle to drive on the alternative route instead of the route when the alternative route does not include the stall factor. [Claim 15] The non-temporary computer-readable medium according to claim 14, further comprising program code that determines, based on profile information relating to the occupant, that the occupant is unable to operate the vehicle manually.