Patent Description:
As transportation moves towards autonomous (i.e., driverless) vehicles, the manufactures and designers of these autonomous vehicle must define contingencies that occur in the event of a failure of one or more of the systems within these autonomous vehicles.

As is known, autonomous vehicles contain multiple electronic control units (ECUs), wherein each of these ECUs may perform a specific function. For example, these various ECUs may calculate safe trajectories for the vehicle (e.g., for navigating the vehicle to its intended destination) and may provide control signals to the vehicle's actuators, propulsions systems and braking systems. Typically, one ECU (e.g., an Autonomy Control Unit) may be responsible for planning and calculating a trajectory for the vehicle, and may provide commands to other ECUs that may cause the vehicle to move (e.g., by controlling steering, braking, and powertrain ECUs).

As would be expected, such autonomous vehicles need to make navigation decisions that consider their surroundings / environment. And sometimes these autonomous vehicles require various levels of supervision by vehicle monitors. Unfortunately, the level of supervision required by an autonomous vehicle may vary in accordance with changes to the manner in which the autonomous vehicle is utilized, which may result in an unacceptably high workload for a vehicle monitor. <CIT> discloses methods and systems for providing remote support for autonomous operation of vehicles based on signal states and vehicle information. The disclosed technology receives state data for the vehicles by an apparatus such as a remote vehicle support apparatus. The state data indicates a respective current state for the vehicles. The vehicles are each assigned to respective remote vehicle support queues based on the respective state data. An indication that one of the vehicles is requesting remote support is received by the remote vehicle support apparatus. In response to a determination that a change in the state data indicates that autonomous operation of the one of the vehicles is operating outside of defined parameter values, the remote support is provided to the one of the vehicles through a communications link by transmitting instruction data to modify the autonomous operation of the one of the vehicles. <CIT> also discloses methods and systems providing remote support for autonomous operation of vehicles. State indicators are generated by a first state display based on state data from a portion of vehicles assigned to a respective first level control station. A second state display is generated for a second control station and displays state indicators for the state data of the vehicles. A remote support interface including the first state display and image data received from a first vehicle of the vehicles is generated. Instruction data to the first vehicle is transmitted using the remote support interface and based on an indication that the first vehicle needs remote support, the instruction data modifying the autonomous operation of the first vehicle. A workload between the first level control stations is allocated by assigning the vehicles using the state indicators of the second state display.

The invention provides a computer-implement method, executed on a computing device, according to claim <NUM>; a computer program product according to claim <NUM>; and a computing system according to claim <NUM>.

Further preferred features are set out in the dependent claims.

In one implementation, a computer-implement method is executed on a computing device and includes: defining a supervision level for each of a plurality of autonomous vehicles, thus defining a plurality of level-assigned autonomous vehicles; assigning responsibility for each of the level-assigned autonomous vehicles to one of a plurality of vehicle monitors, thus defining a vehicle workload for each of the plurality of vehicle monitors; sensing a change in the supervision level of a specific level-assigned autonomous vehicle assigned to a specific vehicle monitor; and reexamining the vehicle workload associated with the specific vehicle monitor.

One or more of the following features may be included. Sensing a change in the supervision level of a specific level-assigned autonomous vehicle assigned to a specific vehicle monitor may include: sensing that the specific level-assigned autonomous vehicle requires the full attention of the specific vehicle monitor. If the vehicle workload associated with the specific vehicle monitor exceeds a defined level, responsibility for some of the other level-assigned autonomous vehicles that are assigned to the specific vehicle monitor may be reassigned to another vehicle monitor. Reassigning responsibility for one or more of the level-assigned autonomous vehicles assigned to the specific vehicle monitor to another vehicle monitor may include: reassigning responsibility for all of the other level-assigned autonomous vehicles that are assigned to the specific vehicle monitor to another vehicle monitor. The supervision level defined for each of a plurality of autonomous vehicles may include one or more class-based supervision levels. The supervision level defined for each of a plurality of autonomous vehicles may include one or more score-based supervision levels. The plurality of vehicle monitors may include: a plurality of human vehicle monitors.

In another implementation, a computer program product resides on a computer readable medium and has a plurality of instructions stored on it. When executed by a processor, the instructions cause the processor to perform operations including: defining a supervision level for each of a plurality of autonomous vehicles, thus defining a plurality of level-assigned autonomous vehicles; assigning responsibility for each of the level-assigned autonomous vehicles to one of a plurality of vehicle monitors, thus defining a vehicle workload for each of the plurality of vehicle monitors; sensing a change in the supervision level of a specific level-assigned autonomous vehicle assigned to a specific vehicle monitor; and reexamining the vehicle workload associated with the specific vehicle monitor.

In another implementation, a computing system includes a processor and memory is configured to perform operations including: defining a supervision level for each of a plurality of autonomous vehicles, thus defining a plurality of level-assigned autonomous vehicles; assigning responsibility for each of the level-assigned autonomous vehicles to one of a plurality of vehicle monitors, thus defining a vehicle workload for each of the plurality of vehicle monitors; sensing a change in the supervision level of a specific level-assigned autonomous vehicle assigned to a specific vehicle monitor; and reexamining the vehicle workload associated with the specific vehicle monitor.

Other features and advantages will become apparent from the description, the drawings, and the claims.

Referring to <FIG>, there is shown autonomous vehicle <NUM>. As is known in the art, an autonomous vehicle (e.g. autonomous vehicle <NUM>) is a vehicle that is capable of sensing its environment and moving with little or no human input. Autonomous vehicles (e.g. autonomous vehicle <NUM>) may combine a variety of sensor systems to perceive their surroundings, examples of which may include but are not limited to radar, computer vision, LIDAR, GPS, odometry, temperature and inertia, wherein such sensor systems may be configured to interpret lanes and markings on a roadway, street signs, stoplights, pedestrians, other vehicles, roadside objects, hazards, etc..

Autonomous vehicle <NUM> may include a plurality of sensors (e.g. sensors <NUM>), a plurality of electronic control units (e.g. ECUs <NUM>) and a plurality of actuators (e.g. actuators <NUM>). Accordingly, sensors <NUM> within autonomous vehicle <NUM> may monitor the environment in which autonomous vehicle <NUM> is operating, wherein sensors <NUM> may provide sensor data <NUM> to ECUs <NUM>. ECUs <NUM> may process sensor data <NUM> to determine the manner in which autonomous vehicle <NUM> should move. ECUs <NUM> may then provide control data <NUM> to actuators <NUM> so that autonomous vehicle <NUM> may move in the manner decided by ECUs <NUM>. For example, a machine vision sensor included within sensors <NUM> may "read" a speed limit sign stating that the speed limit on the road on which autonomous vehicle <NUM> is traveling is now <NUM> miles an hour. This machine vision sensor included within sensors <NUM> may provide sensor data <NUM> to ECUs <NUM> indicating that the speed on the road on which autonomous vehicle <NUM> is traveling is now <NUM> mph. Upon receiving sensor data <NUM>, ECUs <NUM> may process sensor data <NUM> and may determine that autonomous vehicle <NUM> (which is currently traveling at <NUM> mph) is traveling too fast and needs to slow down. Accordingly, ECUs <NUM> may provide control data <NUM> to actuators <NUM>, wherein control data <NUM> may e.g. apply the brakes of autonomous vehicle <NUM> or eliminate any actuation signal currently being applied to the accelerator (thus allowing autonomous vehicle <NUM> to coast until the speed of autonomous vehicle <NUM> is reduced to <NUM> mph).

As would be imagined, since autonomous vehicle <NUM> is being controlled by the various electronic systems included therein (e.g. sensors <NUM>, ECUs <NUM> and actuators <NUM>), the potential failure of one or more of these systems should be considered when designing autonomous vehicle <NUM> and appropriate contingency plans may be employed.

For example and referring also to <FIG>, the various ECUs (e.g., ECUs <NUM>) that are included within autonomous vehicle <NUM> may be compartmentalized so that the responsibilities of the various ECUs (e.g., ECUs <NUM>) may be logically grouped. For example, ECUs <NUM> may include autonomy control unit <NUM> that may receive sensor data <NUM> from sensors <NUM>.

Autonomy control unit <NUM> may be configured to perform various functions. For example, autonomy control unit <NUM> may receive and process exteroceptive sensor data (e.g., sensor data <NUM>), may estimate the position of autonomous vehicle <NUM> within its operating environment, may calculate a representation of the surroundings of autonomous vehicle <NUM>, may compute safe trajectories for autonomous vehicle <NUM>, and may command the other ECUs (in particular, a vehicle control unit) to cause autonomous vehicle <NUM> to execute a desired maneuver. Autonomy control unit <NUM> may include substantial compute power, persistent storage, and memory.

Accordingly, autonomy control unit <NUM> may process sensor data <NUM> to determine the manner in which autonomous vehicle <NUM> should be operating. Autonomy control unit <NUM> may then provide vehicle control data <NUM> to vehicle control unit <NUM>, wherein vehicle control unit <NUM> may then process vehicle control data <NUM> to determine the manner in which the individual control systems (e.g. powertrain system <NUM>, braking system <NUM> and steering system <NUM>) should respond in order to achieve the trajectory defined by autonomous control unit <NUM> within vehicle control data <NUM>.

Vehicle control unit <NUM> may be configured to control other ECUs included within autonomous vehicle <NUM>. For example, vehicle control unit <NUM> may control the steering, powertrain, and brake controller units. For example, vehicle control unit <NUM> may provide: powertrain control signal <NUM> to powertrain control unit <NUM>; braking control signal <NUM> to braking control unit <NUM>; and steering control signal <NUM> to steering control unit <NUM>.

Powertrain control unit <NUM> may process powertrain control signal <NUM> so that the appropriate control data (commonly represented by control data <NUM>) may be provided to powertrain system <NUM>. Additionally, braking control unit <NUM> may process braking control signal <NUM> so that the appropriate control data (commonly represented by control data <NUM>) may be provided to braking system <NUM>. Further, steering control unit <NUM> may process steering control signal <NUM> so that the appropriate control data (commonly represented by control data <NUM>) may be provided to steering system <NUM>.

Powertrain control unit <NUM> may be configured to control the transmission (not shown) and engine / traction motor (not shown) within autonomous vehicle <NUM>; while brake control unit <NUM> may be configured to control the mechanical / regenerative braking system (not shown) within autonomous vehicle <NUM>; and steering control unit <NUM> may be configured to control the steering column / steering rack (not shown) within autonomous vehicle <NUM>.

Autonomy control unit <NUM> may be a highly complex computing system that may provide extensive processing capabilities (e.g., a workstation-class computing system with multi-core processors, discrete co-processing units, gigabytes of memory, and persistent storage). In contrast, vehicle control unit <NUM> may be a much simpler device that may provide processing power equivalent to the other ECUs included within autonomous vehicle <NUM> (e.g., a computing system having a modest microprocessor (with a CPU frequency of less than <NUM> megahertz), less than <NUM> megabyte of system memory, and no persistent storage). Due to these simpler designs, vehicle control unit <NUM> may have greater reliability and durability than autonomy control unit <NUM>.

To further enhance redundancy and reliability, one or more of the ECUs (ECUs <NUM>) included within autonomous vehicle <NUM> may be configured in a redundant fashion. For example and referring also to <FIG>, there is shown one implementation of ECUs <NUM> wherein a plurality of vehicle control units are utilized. For example, this particular implementation is shown to include two vehicle control units, namely a first vehicle control unit (e.g., vehicle control unit <NUM>) and a second vehicle control unit (e.g., vehicle control unit <NUM>).

In this particular configuration, the two vehicle control units (e.g. vehicle control units <NUM>, <NUM>) may be configured in various ways. For example, the two vehicle control units (e.g. vehicle control units <NUM>, <NUM>) may be configured in an active - passive configuration, wherein e.g. vehicle control unit <NUM> performs the active role of processing vehicle control data <NUM> while vehicle control unit <NUM> assumes a passive role and is essentially in standby mode. In the event of a failure of vehicle control unit <NUM>, vehicle control unit <NUM> may transition from a passive role to an active role and assume the role of processing vehicle control data <NUM>. Alternatively, the two vehicle control units (e.g. vehicle control units <NUM>, <NUM>) may be configured in an active - active configuration, wherein e.g. both vehicle control unit <NUM> and vehicle control unit <NUM> perform the active role of processing vehicle control data <NUM> (e.g. divvying up the workload), wherein in the event of a failure of either vehicle control unit <NUM> or vehicle control unit <NUM>, the surviving vehicle control unit may process all of vehicle control data <NUM>.

While <FIG> illustrates one example of the manner in which the various ECUs (e.g. ECUs <NUM>) included within autonomous vehicle <NUM> may be configured in a redundant fashion, this is for illustrative purposes only and is not intended to be a limitation of this disclosure, as other configurations are possible and are considered to be within the scope of this disclosure. For example, autonomous control unit <NUM> may be configured in a redundant fashion, wherein a second autonomous control unit (not shown) is included within autonomous vehicle <NUM> and is configured in an active - passive or active - active fashion. Further, it is foreseeable that one or more of the sensors (e.g., sensors <NUM>) and/or one or more of the actuators (e.g. actuators <NUM>) may be configured in a redundant fashion. Accordingly, it is understood that the level of redundancy achievable with respect to autonomous vehicle <NUM> may only be limited by the design criteria and budget constraints of autonomous vehicle <NUM>.

Referring also to <FIG>, the various ECUs of autonomous vehicle <NUM> may be grouped / arranged / configured to effectuate various functionalities.

For example, one or more of ECUs <NUM> may be configured to effectuate / form perception subsystem <NUM>. wherein perception subsystem <NUM> may be configured to process data from onboard sensors (e.g., sensor data <NUM>) to calculate concise representations of objects of interest near autonomous vehicle <NUM> (examples of which may include but are not limited to other vehicles, pedestrians, traffic signals, traffic signs, road markers, hazards, etc.) and to identify environmental features that may assist in determining the location of autonomous vehicle <NUM>. Further, one or more of ECUs <NUM> may be configured to effectuate / form state estimation subsystem <NUM>, wherein state estimation subsystem <NUM> may be configured to process data from onboard sensors (e.g., sensor data <NUM>) to estimate the position, orientation, and velocity of autonomous vehicle <NUM> within its operating environment. Additionally, one or more of ECUs <NUM> may be configured to effectuate / form planning subsystem <NUM>, wherein planning subsystem <NUM> may be configured to calculate a desired vehicle trajectory (using perception output <NUM> and state estimation output <NUM>). Further still, one or more of ECUs <NUM> may be configured to effectuate / form trajectory control subsystem <NUM>, wherein trajectory control subsystem <NUM> uses planning output <NUM> and state estimation output <NUM> (in conjunction with feedback and/or feedforward control techniques) to calculate actuator commands (e.g., control data <NUM>) that may cause autonomous vehicle <NUM> to execute its intended trajectory within it operating environment.

For redundancy purposes, the above-described subsystems may be distributed across various devices (e.g., autonomy control unit <NUM> and vehicle control units <NUM>, <NUM>). Additionally / alternatively and due to the increased computational requirements, perception subsystem <NUM> and planning subsystem <NUM> may be located almost entirely within autonomy control unit <NUM>, which (as discussed above) has much more computational horsepower than vehicle control units <NUM>, <NUM>. Conversely and due to their lower computational requirements, state estimation subsystem <NUM> and trajectory control subsystem <NUM> may be: located entirely on vehicle control units <NUM>, <NUM> if vehicle control units <NUM>, <NUM> have the requisite computational capacity; and/or located partially on vehicle control units <NUM>, <NUM> and partially on autonomy control unit <NUM>. However, the location of state estimation subsystem <NUM> and trajectory control subsystem <NUM> may be of critical importance in the design of any contingency planning architecture, as the location of these subsystems may determine how contingency plans are calculated, transmitted, and/or executed.

During typical operation of autonomous vehicle <NUM>, the autonomy subsystems described above repeatedly perform the following functionalities of:.

During each iteration, planning subsystem <NUM> may calculate a trajectory that may span travel of many meters (in distance) and many seconds (in time). However, each iteration of the above-described loop may be calculated much more frequently (e.g., every ten milliseconds). Accordingly, autonomous vehicle <NUM> may be expected to execute only a small portion of each planned trajectory before a new trajectory is calculated (which may differ from the previously-calculated trajectories due to e.g., sensed environmental changes).

The above-described trajectory may be represented as a parametric curve that describes the desired future path of autonomous vehicle <NUM>. There may be two major classes of techniques for controlling autonomous vehicle <NUM> while executing the above-described trajectory: a) feedforward control and b) feedback control.

Under nominal conditions, a trajectory is executed using feedback control, wherein feedback trajectory control algorithms may use e.g., a kinodynamic model of autonomous vehicle <NUM>, per-vehicle configuration parameters, and a continuously-calculated estimate of the position, orientation, and velocity of autonomous vehicle <NUM> to calculate the commands that are provided to the various ECUs included within autonomous vehicle <NUM>.

Feedforward trajectory control algorithms may use a kinodynamic model of autonomous vehicle <NUM>, per-vehicle configuration parameters, and a single estimate of the initial position, orientation, and velocity of autonomous vehicle <NUM> to calculate a sequence of commands that are provided to the various ECUs included within autonomous vehicle <NUM>, wherein the sequence of commands are executed without using any real-time sensor data (e.g. from sensors <NUM>) or other information.

To execute the above-described trajectories, autonomy control unit <NUM> may communicate with (and may provide commands to) the various ECUs, using vehicle control unit <NUM> / <NUM> as an intermediary. At each iteration of the above-described trajectory execution loop, autonomy control unit <NUM> may calculate steering, powertrain, and brake commands that are provided to their respective ECUs (e.g., powertrain control unit <NUM>, braking control unit <NUM>, and steering control unit <NUM>; respectively), and may transmit these commands to vehicle control unit <NUM> / <NUM>. Vehicle control unit <NUM> / <NUM> may then validate these commands and may relay them to the various ECUs (e.g., powertrain control unit <NUM>, braking control unit <NUM>, and steering control unit <NUM>; respectively).

As discussed above and during typical operation of autonomous vehicle <NUM>, the autonomy subsystems described above may repeatedly perform the following functionalities of: measuring the surrounding environment using on-board sensors (e.g. using sensors <NUM>); estimating the positions, velocities, and future trajectories of surrounding vehicles, pedestrians, cyclists, other objects near autonomous vehicle <NUM>, and environmental features useful for location determination (e.g., using perception subsystem <NUM>); estimating the position, orientation, and velocity of autonomous vehicle <NUM> within the operating environment (e.g., using state estimation subsystem <NUM>); planning a nominal trajectory for autonomous vehicle <NUM> to follow that brings autonomous vehicle <NUM> closer to the intended destination of autonomous vehicle <NUM> (e.g., using planning subsystem <NUM>); and generating commands (e.g., control data <NUM>) to cause autonomous vehicle <NUM> to execute the intended trajectory (e.g., using trajectory control subsystem <NUM>).

The operation of autonomous vehicle <NUM> may be supervised by a vehicle monitor (e.g., a human vehicle monitor). Specifically and in a fashion similar to the manner in which an air traffic controller monitors the operation of one or more airplanes, a vehicle monitor may monitor the operation of one or more autonomous vehicles (e.g., autonomous vehicle <NUM>).

For example and referring also to <FIG>, vehicle monitors (e.g., vehicle monitors <NUM>, <NUM>, <NUM>) may be located in a centralized location (such as a monitoring center) and may monitor the operation of various autonomous vehicles (e.g., autonomous vehicle <NUM>). For example, vehicle monitors <NUM>, <NUM>, <NUM> may (in this example) be monitoring the operation of nine autonomous vehicles (e.g., autonomous vehicle #<NUM> through autonomous vehicle #<NUM>), each of which is represented as a unique circle on the displays of vehicle monitors <NUM>, <NUM>, <NUM>. Specifically and for this example, assume that vehicle monitors <NUM>, <NUM> are senior vehicle monitors who are capable of monitoring a higher quantity of autonomous vehicles than junior vehicle monitor <NUM>.

Referring also to <FIG>, monitor assignment process <NUM> may define <NUM> a supervision level for each of a plurality of autonomous vehicles, thus defining a plurality of level-assigned autonomous vehicles (e.g., autonomous vehicle #<NUM> through autonomous vehicle #<NUM>).

Monitor assignment process <NUM> may be a server application and may reside on and may be executed by computing device <NUM>, which may be connected to network <NUM> (e.g., the Internet or a local area network). Examples of computing device <NUM> may include, but are not limited to: a personal computer, a laptop computer, a personal digital assistant, a data-enabled cellular telephone, a notebook computer, a television with one or more processors embedded therein or coupled thereto, a cable / satellite receiver with one or more processors embedded therein or coupled thereto, a server computer, a series of server computers, a mini computer, a mainframe computer, or a cloud-based computing network.

The instruction sets and subroutines of monitor assignment process <NUM>, which may be stored on storage device <NUM> coupled to computing device <NUM>, may be executed by one or more processors (not shown) and one or more memory architectures (not shown) included within computing device <NUM>. Examples of storage device <NUM> may include but are not limited to: a hard disk drive; a RAID device; a random access memory (RAM); a read-only memory (ROM); and all forms of flash memory storage devices.

Network <NUM> (e.g., the Internet or a local area network) may couple computing device <NUM> to the client electronic devices (e.g., client electronic devices <NUM>, <NUM>, <NUM>) utilized by vehicle monitors <NUM>, <NUM>, <NUM> (respectively). Examples of client electronic devices <NUM>, <NUM>, <NUM> may include, but are not limited to, a data-enabled, cellular telephone, a laptop computer, a personal digital assistant, a personal computer, a notebook computer, a workstation computer, a smart television, and a dedicated network device. Client electronic devices <NUM>, <NUM>, <NUM> may each execute an operating system, examples of which may include but are not limited to Microsoft Windows tm, Android tm, WebOS tm, iOS tm, Redhat Linux tm, or a custom operating system.

The supervision level assigned to each of a plurality of autonomous vehicles (in this example, nine autonomous vehicles) may vary from e.g., none to total. For example, when an autonomous vehicle is out-of-service (e.g., in storage, being charged, or not in use), the supervision level assigned to this vehicle may be none or minimal. Generally, while an autonomous vehicle is being charged, there may be no need for a vehicle monitor to monitor the autonomous vehicle (as it is not moving). Alternatively, the vehicle monitor may provide minimal supervision to monitor e.g., the state of the charge so that a return-to-service time may be determined for the autonomous vehicle.

As could be imagined, the level of supervision that a vehicle monitor must apply to an autonomous vehicle may vary depending upon the specific operating situation of the autonomous vehicle. Therefore, if an autonomous vehicle is driving down a rural roadway with minimal traffic, the vehicle monitor may apply a low level of supervision; wherein if an autonomous vehicle is driving down a congested urban roadway that has rush-hour traffic, the vehicle monitor may apply a higher level of supervision. Further still, there may be situations in which a vehicle monitor may need to devote <NUM>% of their attention to a single autonomous vehicle. For example, if a passenger of the autonomous vehicle requests to speak with a vehicle monitor (e.g., to ask a question about their route, to change their destination, or to complain about the condition of the vehicle), the vehicle monitor may need to dedicate <NUM>% of their attention to the conversation. Further, there may be situations in which an autonomous vehicle needs the vehicle monitor to provide guidance. For example, if there is an accident in the roadway and the travel lane is blocked, the autonomous vehicle may request permission from the vehicle monitor to cross a double yellow line to drive around the accident. This may require the vehicle monitor to review camera data to ensure that the autonomous vehicle may safely cross the double yellow line to get around the accident.

Accordingly, the supervision level defined <NUM> for each of a plurality of autonomous vehicles may include one or more class-based supervision levels. For example, monitor assignment process <NUM> may define <NUM> class-based supervision levels, such as:.

Additionally / alternatively, the supervision level defined <NUM> for each of a plurality of autonomous vehicles may be much more granular and may include one or more score-based supervision levels.

Monitor assignment process <NUM> may assign <NUM> responsibility for each of the level-assigned autonomous vehicles (e.g., autonomous vehicle #<NUM> through autonomous vehicle #<NUM>) to one of a plurality of vehicle monitors (e.g., vehicle monitors <NUM>, <NUM>, <NUM>), thus defining a vehicle workload for each of the plurality of vehicle monitors (e.g., vehicle monitors <NUM>, <NUM>, <NUM>).

For this example, assume that monitor assignment process <NUM>:.

Specifically and when assigning <NUM> responsibility for each of the level-assigned autonomous vehicles (e.g., autonomous vehicle #<NUM> through autonomous vehicle #<NUM>) to one of a plurality of vehicle monitors (e.g., vehicle monitors <NUM>, <NUM>, <NUM>), monitor assignment process <NUM> may consider the experience level of the individual vehicle monitors to avoid overloading them. For example,.

As discussed above, the level of supervision that a level-assigned autonomous vehicles requires may vary from no supervision, to low supervision, to high supervision, to total supervision. Accordingly, the above-described maximum workload descriptions may be for e.g., low supervision level-assigned autonomous vehicles, wherein e.g., a high supervision level-assigned autonomous vehicle may count as e.g., two low supervision level-assigned autonomous vehicle. Therefore and in such a configuration, low supervision level-assigned autonomous vehicles and high supervision level-assigned autonomous vehicles may be mixed and matched across varying levels of vehicle monitors. For example:.

As discussed above and for those level-assigned autonomous vehicles that require total supervision, any vehicle monitor that is monitoring a total supervision level-assigned autonomous vehicles may only be monitoring that single level-assigned autonomous vehicle (and no others).

As could be imagined, the supervision levels required by autonomous vehicles will change during their course of operation (e.g., as they progress from being charged / out of service, to navigating rural roads, to navigating crowded city streets, to navigating around accidents, to facilitating communication between a passenger and a vehicle monitor, etc. Accordingly, monitor assignment process <NUM> may monitor the supervision level of each level-assigned autonomous vehicles (e.g., autonomous vehicle #<NUM> through autonomous vehicle #<NUM>) to determine if they have changed.

Upon monitor assignment process <NUM> sensing <NUM> a change in the supervision level of a specific level-assigned autonomous vehicle assigned to a specific vehicle monitor, monitor assignment process <NUM> may reexamine <NUM> the vehicle workload associated with the specific vehicle monitor. If the vehicle workload associated with the specific vehicle monitor exceeds a defined level, monitor assignment process <NUM> may reassign <NUM> responsibility for some of the other level-assigned autonomous vehicles that are assigned to the specific vehicle monitor to another vehicle monitor.

For example, if monitor assignment process <NUM> senses <NUM> a change in the supervision level of a specific level-assigned autonomous vehicle (e.g., level-assigned autonomous vehicles <NUM>) assigned to a specific vehicle monitor (e.g., vehicle monitor <NUM>) from low supervision to some other supervision level, monitor assignment process <NUM> may reexamine <NUM> the vehicle workload associated with the specific vehicle monitor (e.g., vehicle monitor <NUM>). And if the vehicle workload associated with the specific vehicle monitor (e.g., vehicle monitor <NUM>) exceeds a defined level, monitor assignment process <NUM> may reassign <NUM> responsibility for some of the other level-assigned autonomous vehicles that are assigned to the specific vehicle monitor to another vehicle monitor.

As discussed above, assume that monitor assignment process <NUM> assigns <NUM> responsibility for five level-assigned autonomous vehicles (i.e., level-assigned autonomous vehicles <NUM>-<NUM>) to vehicle monitor <NUM>, who is a senior vehicle monitor. Further and as discussed above, a senior vehicle monitor may have a maximum workload of e.g., seven low supervision level-assigned autonomous vehicles or three high supervision level-assigned autonomous vehicles and one low supervision level-assigned autonomous vehicles. Accordingly, if all five of autonomous vehicles <NUM>-<NUM> assigned <NUM> to vehicle monitor <NUM> are low supervision level-assigned autonomous vehicles, the vehicle workload associated with vehicle monitor <NUM> is acceptable. Therefore, monitor assignment process <NUM> need not reassign <NUM> responsibility for any of the level-assigned autonomous vehicles from vehicle monitor <NUM> to other vehicle monitors.

However, if all five of autonomous vehicles <NUM>-<NUM> assigned <NUM> to vehicle monitor <NUM> were initially low supervision level-assigned autonomous vehicles and monitor assignment process <NUM> senses <NUM> that the supervision level of four of these low supervision level-assigned autonomous vehicle (e.g., level-assigned autonomous vehicles <NUM>-<NUM>) changed from low supervision to high supervision, reassignment <NUM> may be necessary. Accordingly and upon monitor assignment process <NUM> reexaminng <NUM> the vehicle workload associated with vehicle monitor <NUM>, monitor assignment process <NUM> may determine that the vehicle workload associated with vehicle monitor <NUM> is not acceptable (as it is now four high supervision level-assigned autonomous vehicles and one low supervision level-assigned autonomous vehicles; which exceeds the maximum vehicle workload of three high supervision level-assigned autonomous vehicles and one low supervision level-assigned autonomous vehicles for a senior vehicle monitor). Therefore, monitor assignment process <NUM> may reassign <NUM> responsibility for one of the high supervision level-assigned autonomous vehicles (e.g., level-assigned autonomous vehicles <NUM>) from vehicle monitor <NUM> to one of vehicle monitor <NUM> and vehicle monitor <NUM>, as both of vehicle monitors <NUM>, <NUM> have available workload bandwidth to handle the high supervision level-assigned autonomous vehicle (e.g., level-assigned autonomous vehicles <NUM>).

As discussed above and for those level-assigned autonomous vehicles that require total supervision, any vehicle monitor that is monitoring a total supervision level-assigned autonomous vehicles may only be monitoring that single total supervision level-assigned autonomous vehicle (and no others). Accordingly and in the event that a level-assigned autonomous vehicle being monitored by a vehicle monitor changes to a total supervision level-assigned autonomous vehicle, monitor assignment process <NUM> may reassign all of the other level-assigned autonomous vehicles currently being monitored by the vehicle monitor.

For example, assume that when sensing <NUM> a change in the supervision level of a specific level-assigned autonomous vehicle assigned to a specific vehicle monitor, monitor assignment process <NUM> senses <NUM> that level-assigned autonomous vehicle <NUM> has transitioned from a low supervision level-assigned autonomous vehicle to a high supervision level-assigned autonomous vehicle; now requiring the full attention of vehicle monitor <NUM>. For this example, assume that a passenger within level-assigned autonomous vehicle <NUM> wishes to chat with vehicle monitor <NUM>, thus requiring the full attention of vehicle monitor <NUM>.

Accordingly and when reassigning <NUM> responsibility for one or more of the level-assigned autonomous vehicles assigned to the specific vehicle monitor to another vehicle monitor, monitor assignment process <NUM> may reassign <NUM> responsibility for all of the other level-assigned autonomous vehicles that are assigned to vehicle monitor <NUM> to another vehicle monitor. For example, monitor assignment process <NUM> may reassign <NUM>.

Accordingly and after this reassignment <NUM>, the following vehicle workloads will occur:.

As will be appreciated by one skilled in the art, the present disclosure may be embodied as a method, a system, or a computer program product. Accordingly, the present disclosure may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a "circuit," "module" or "system. " Furthermore, the present disclosure may take the form of a computer program product on a computer-usable storage medium having computer-usable program code embodied in the medium.

Any suitable computer usable or computer readable medium may be utilized. More specific examples (a non-exhaustive list) of the computer-readable medium may include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a transmission media such as those supporting the Internet or an intranet, or a magnetic storage device. The computer-usable or computer-readable medium may also be paper or another suitable medium upon which the program is printed, as the program can be electronically captured, via, for instance, optical scanning of the paper or other medium, then compiled, interpreted, or otherwise processed in a suitable manner, if necessary, and then stored in a computer memory. In the context of this document, a computer-usable or computer-readable medium may be any medium that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device. The computer-usable medium may include a propagated data signal with the computer-usable program code embodied therewith, either in baseband or as part of a carrier wave. The computer usable program code may be transmitted using any appropriate medium, including but not limited to the Internet, wireline, optical fiber cable, RF, etc..

Computer program code for carrying out operations of the present disclosure may be written in an object oriented programming language such as Java, Smalltalk, C++ or the like. However, the computer program code for carrying out operations of the present disclosure may also be written in conventional procedural programming languages, such as the "C" programming language or similar programming languages. In the latter scenario, the remote computer may be connected to the user's computer through a local area network / a wide area network / the Internet (e.g., network <NUM>).

The present disclosure is described with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the disclosure. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, may be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer / special purpose computer / other programmable data processing apparatus, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.

These computer program instructions may also be stored in a computer-readable memory that may direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instruction means which implement the function/act specified in the flowchart and/or block diagram block or blocks.

The computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer-implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.

The flowcharts and block diagrams in the figures may illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present disclosure. It will also be noted that each block of the block diagrams and/or flowchart illustrations, and combinations of blocks in the block diagrams and/or flowchart illustrations, may be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.

Claim 1:
A computer-implement method, executed on a computing device, comprising:
defining a supervision level for each of a plurality of autonomous vehicles, thus defining a plurality of level-assigned autonomous vehicles;
determining a respective maximum workload for each vehicle monitor of a plurality of vehicle monitors;
assigning responsibility for each of the level-assigned autonomous vehicles to a respective one of the plurality of vehicle monitors based on the respective maximum workload of each vehicle monitor and the supervision level for the respective level-assigned autonomous vehicle, thus defining a vehicle workload for each of the plurality of vehicle monitors;
sensing a change in the supervision level of a specific level-assigned autonomous vehicle assigned to a specific vehicle monitor, wherein sensing the change in supervision level comprises determining that the specific level-assigned autonomous vehicle is driving down a rural roadway with minimal traffic; and
responsive to sensing the change in the supervision level of the specific level-assigned autonomous vehicle, reexamining the vehicle workload associated with the specific vehicle monitor.