BACKGROUND

On some occasions, such as when a vehicle that has autonomous driving capabilities (an AV) is driving on a road and experiences an event—such as system faults, extreme weather conditions, and temporary detours—it may be useful to have a remotely located person provide assistance.

SUMMARY

In some implementations, the technologies described in this document include a teleoperation system that interacts with an AV system to handle various types of events, some of which may induce risks (e.g., collisions, traffic jams and damages) or may prohibit or inhibit the AV that is part of the AV system from traveling along a planned trajectory. In some examples, to handle the events, the AV system may communicate with a teleoperation system where a teleoperator provides teleoperations to the AV system.

In some cases, the teleoperation system may comprise a client onboard the AV or associated with the AV system and a server remote to the AV or the AV system. In some cases, the client and the server are both onboard the AV. In some applications, the server and the client may be separated into two different computing devices; in some cases, they may be integrated into a single computing device.

In some implementations, a function or a step described as a part of a teleoperation client may be realized as a part of a teleoperation server. Similarly, a function or a step described as a part of a teleoperation server may be realized as a part of a teleoperation client. In some cases, a function or a step can be a part of a teleoperation server and a part of a teleoperation client.

In general, in one aspect, a method comprises: (a) determining that intervention in an operation of one or more autonomous driving capabilities of a vehicle is appropriate; (b) based on the determination, enabling a person to provide information for an intervention; and (c) causing the intervention in the operation of the one or more autonomous driving capabilities of the vehicle. Determining that intervention is appropriate may comprise receiving a request for intervention. Determining that intervention is appropriate may comprise receiving information about a status or environment of the vehicle or a related AV system. The status or the environment of the vehicle may comprise a functionality of a hardware component or software of the vehicle or the AV system.

In some implementations, the information about the status or the environment of the vehicle or the AV system may comprise a signal from a hardware component or software of the vehicle or the AV system. Determining that an intervention is appropriate may comprise analyzing the signal.

Analyzing the signal may comprise detecting unexpected data or absence of expected data. Analyzing the signal may comprise evaluating a mismatch between a measured quantity and a model-estimated quantity for the hardware component or software. Analyzing the signal may comprise using pattern recognition to evaluate an abnormal pattern in the signal. The abnormal pattern may be learned by a machine learning algorithm. Analyzing the signal may comprise inferring a malfunction in the hardware component or the software. Analyzing the signal may comprise detecting an unknown object present in the environment of the vehicle. Analyzing the signal may comprise inferring an event that is or will be happening in the environment of the vehicle.

In some implementations, the request may comprise a request initiated by a remote operator. The request may comprise data associated with status or environment of a vehicle or a related AV system. The request may comprise one or more signals from one or more hardware components of the vehicle or a related AV system. The request may comprise one or more signals from one or more software processes of the vehicle.

In some implementations, the method may comprise, based on the determination, causing a fallback intervention in the operation of the one or more autonomous driving capabilities of the vehicle. The fallback intervention may comprise causing the vehicle or a related AV system to enter a fully autonomous driving mode, a semi-autonomous driving mode, or a fully manual driving mode. The fallback intervention may comprise causing the vehicle to operate at a reduced velocity. The fallback intervention may comprise identifying a safe-to-stop location. The fallback intervention may comprise generating a new trajectory to the safe-to-stop location. The fallback intervention may comprise invoking a backup hardware component or a backup software process. The fallback intervention may comprise evaluating functional hardware components or software processes required to operate the vehicle.

In some implementations, determining that intervention is appropriate may comprise evaluating one or more active events associated with the vehicle or a related AV system, or the environment of the vehicle. Evaluating one or more events may comprise merging two or more active events. Enabling the person to provide information for an intervention may comprise maintaining a queue based on one or more determinations that intervention is appropriate. Maintaining the queue may comprise prioritizing an intervention based on one or more of the following: a decision tree, a combinatorial optimization, a machine algorithm, and a past intervention. Enabling the person to provide information for an intervention may comprise allocating the person to provide the information based on availability of the person, and one or more of: (a) time, (b) knowledge of the vehicle, (c) knowledge of the environment of the vehicle, or (d) a language.

In some implementations, enabling the person to provide information for an intervention may comprise presenting an interactive interface to the person. Presenting an interactive interface may comprise presenting a field of view or a bird's-eye of a vision sensor of the vehicle. Presenting an interactive interface may comprise presenting current or past or both perception information. Presenting an interactive interface may comprise presenting current or past or both trajectories. Presenting an interactive interface may comprise presenting current or past or both motion planning information. Presenting an interactive interface may comprise presenting a system diagram of the vehicle, the system diagram comprising one or more hardware components, or one or more software processes, or both.

In some implementations, the information for the intervention may comprise a current location of the vehicle determined by the person. The intervention may comprise treating the current location identified by the person as prior knowledge and using an inference algorithm to update the current location. The intervention may be based on the person identifying a goal location of the vehicle. The intervention may comprise treating the goal location identified by the person as prior knowledge and using an inference algorithm to update the goal location.

In some implementations, the method may include an intervention comprising a trajectory to be found by the person. The intervention may comprise treating the trajectory identified by the person as prior knowledge and using an inference algorithm to update the trajectory. The intervention may comprise one or more trajectory sampling points identified by the person. The intervention may comprise inferring a trajectory or a trajectory segment based on the one or more trajectory sampling points. Inferring a trajectory or a trajectory segment may be based on one or more trajectory primitives. The intervention may comprise concatenating two trajectory segments.

Concatenating two trajectory segments may comprise smoothing the trajectory segments and smoothing a speed profile across the trajectory segments. The intervention may comprise specifying one or more un-traversable road segments. The intervention may comprise setting a speed profile. The intervention may comprise treating the speed profile as prior knowledge and using an inference algorithm to update the speed profile.

In some implementations, the intervention may be based on inferring a speed profile by a learning algorithm. The intervention may be based on inferring a steering angle by a learning algorithm. The intervention may comprise enabling, editing or disabling a hardware component or a software process. The intervention may comprise enabling, editing or disabling a subcomponent of a hardware component or a processing step of a software process.

In some implementations, the method may include an intervention comprising overwriting a travel preference or a travel rule. In some implementations, the method may include an intervention comprising editing data, the data comprising one or more of the following: a map, sensor data in the vehicle or a related AV system, trajectory data in the vehicle or a related AV system, vision data in the vehicle or a related AV system, or any past data in the vehicle or a related AV system.

In some implementations, the method may include configuring the vehicle or a related AV system based on a command. Configuring the vehicle or the AV system based on a command may comprise treating the command as prior knowledge and using an inference algorithm to update the command. A command may comprise one or more of the following: a trajectory, a label, a process control, an annotation, and a machine instruction.

In general, in an aspect, a method comprises (a) receiving an intervention request regarding an operation of one or more autonomous driving capabilities of a vehicle; (b) causing a person to interact with the vehicle over a communication channel; and (c) issuing an intervention to configure the operation of the one or more autonomous driving capabilities of a vehicle.

In some implementations, the method may comprise receiving or generating or analyzing information about a status or environment of the vehicle. The information about the status or the environment of the vehicle may comprise a functionality of a hardware component or software of the vehicle. The information about the status or the environment of the vehicle may comprise a signal from a hardware component or software of the vehicle. The information about the status or the environment of the vehicle may comprise presence of unexpected data or absence of expected data. The information about the status or the environment of the vehicle may comprise a mismatch between a measured quantity and a model-estimated quantity for a hardware component or software of the vehicle.

In some implementations, analyzing the information may comprise using pattern recognition to evaluate an abnormal pattern in the information. The abnormal pattern may be learned by a machine learning algorithm. Analyzing the information may comprise inferring a malfunction in the hardware component or the software. Analyzing the information may comprise detecting an unknown object present in the environment of the vehicle. Analyzing the information may comprise inferring an event that is or will be happening in the environment of the vehicle.

In some implementations, the intervention request may comprise a request initiated by the person or a second person. The intervention request may comprise data associated with status or environment of a vehicle or a related AV system. The intervention request may comprise one or more signals from one or more hardware components of the vehicle or a related AV system. The intervention request may comprise one or more signals from one or more software processes of the vehicle.

In some implementations, determining that intervention is appropriate may comprise evaluating one or more active events associated with the vehicle or a related AV system, or the environment of the vehicle. Evaluating one or more events may comprise merging two or more active events.

In some implementations, the method may comprise maintaining a queue of one or more intervention requests. Maintaining the queue may comprise prioritizing an intervention based on one or more of the following: a decision tree, a combinatorial optimization, a machine algorithm, and a past intervention.

In some implementations, the method may comprise allocating the person to interact with the vehicle based on availability of the person, and one or more of: (a) time, (b) knowledge of the vehicle, (c) knowledge of the environment of the vehicle, or (d) a language.

In some implementations, the method may comprise presenting an interactive interface to the person. Presenting an interactive interface may comprise presenting a field of view or a bird's-eye of a vision sensor of the vehicle. Presenting an interactive interface may comprise presenting current or past, or both, perception information. Presenting an interactive interface may comprise presenting current or past, or both, trajectories. Presenting an interactive interface may comprise presenting current or past, or both, motion planning information. Presenting an interactive interface comprises presenting a system diagram of the vehicle, the system diagram comprising one or more hardware components, or one or more software processes, or both.

In some implementations, the method may include an intervention comprising a current location of the vehicle determined by the person; the intervention may comprise treating the current location identified by the person as prior knowledge and using an inference algorithm to update the current location. The intervention may comprise identifying a goal location for the vehicle; the intervention may comprise treating the goal location identified as prior knowledge and using an inference algorithm to update the goal location. The intervention may comprise a trajectory to be found by the person; the intervention may comprise treating the trajectory identified by the person as prior knowledge and using an inference algorithm to update the trajectory. The intervention may comprise one or more trajectory sampling points identified by the person; the intervention may comprise inferring a trajectory or a trajectory segment based on the one or more trajectory sampling points. Inferring a trajectory or a trajectory segment may be based on one or more trajectory primitives. The intervention may comprise concatenating two trajectory segments. Concatenating two trajectory segments may comprise smoothing the trajectory segments and smoothing a speed profile across the trajectory segments. In some implementations, the intervention may comprise specifying one or more un-traversable road segments.

In some implementations, the intervention may comprise setting a speed profile; the intervention may comprise treating the speed profile as prior knowledge and using an inference algorithm to update the speed profile. The intervention may be based on inferring a speed profile by a learning algorithm. The intervention may be based on inferring a steering angle by a learning algorithm. The intervention may comprise enabling, editing or disabling a hardware component or a software process. The intervention may comprise enabling, editing or disabling a subcomponent of a hardware component or a processing step of a software process.

In some implementations, the intervention may comprise overwriting a travel preference or a travel rule. The intervention may comprise editing data, the data comprising one or more of the following: a map, sensor data in the vehicle, trajectory data in the vehicle, vision data in the vehicle, or any past data in the vehicle. Configuring the operation of the one or more autonomous driving capabilities may comprise treating an intervention as prior knowledge and using an inference algorithm to update the intervention for a purpose of the configuration. An intervention may comprise one or more of the following: a trajectory, a label, a process control, an annotation, and a machine instruction.

In general, in an aspect, implementations include a vehicle with autonomous driving capabilities comprising, and the vehicle may comprise (a) steering, acceleration, and deceleration devices that respond to controlling signals from a driving control system to drive the vehicle autonomously on a road network; (b) a monitoring element on the vehicle that generates an intervention request for the vehicle to engage in an intervention with a person; and (c) a communication element that receives a command from the person to the driving control system for the steering, acceleration, and deceleration devices to cause the vehicle to maneuver to a goal location.

In some implementations, the vehicle may comprise a processor that receives information about a status or environment of the vehicle to determine that the intervention is appropriate. The status or the environment of the vehicle may comprise a functionality of a hardware component or software of the vehicle. The information about the status or the environment of the vehicle may comprise a signal from a hardware component or software of the vehicle.

In some implementations, the vehicle may include determining that intervention is appropriate by analyzing the signal. Analyzing the signal may comprise detecting unexpected data or absence of expected data. Analyzing the signal may comprise evaluating a mismatch between a measured quantity and a model-estimated quantity for the hardware component or software. Analyzing the signal may comprise using pattern recognition to evaluate an abnormal pattern in the signal. An abnormal pattern may be learned from a machine learning algorithm. Analyzing the signal may comprise inferring a malfunction in the hardware component or the software. Analyzing the signal may comprise detecting an unknown object present in the environment of the vehicle. Analyzing the signal may comprise inferring an event that is or will be happening in the environment of the vehicle.

In some implementations, the request may comprise a request initiated by a remote operator. The request may comprise data associated with status or environment of a vehicle. The request may comprise one or more signals from one or more hardware components of the vehicle. The request may comprise one or more signals from one or more software processes of the vehicle.

In some implementations, the vehicle may comprise a processor causing a fallback intervention in the driving control system. The fallback intervention may comprise causing the vehicle to enter a fully autonomous driving mode, a semi-autonomous driving mode, or a fully manual driving mode. The fallback intervention may comprise causing the vehicle to operate at a reduced velocity. The fallback intervention may comprise identifying a safe-to-stop location. The fallback intervention may comprise generating a new trajectory to the safe-to-stop location. The fallback intervention may comprise invoking a backup hardware component or a backup software process. The fallback intervention may comprise evaluating functional hardware components or software processes required to operate the vehicle.

In some implementations, the vehicle may comprise a processor evaluating one or more active events associated with the vehicle, or the environment of the vehicle. Evaluating one or more active events may comprise merging two or more active events.

In some implementations, the vehicle may comprise a processor enabling the person to provide information for an intervention comprises maintaining a queue based on one or more determinations that intervention is appropriate. Maintaining the queue may comprise prioritizing an intervention based on one or more of the following: a decision tree, a combinatorial optimization, a machine algorithm, and a past intervention. Enabling the person to provide information for an intervention may comprise allocating the person to provide the information based on availability of the person, and one or more of: (a) time, (b) knowledge of the vehicle, (c) knowledge of the environment of the vehicle, or (d) a language. Enabling the person to provide information for an intervention may comprise presenting an interactive interface to the person. Presenting an interactive interface may comprise presenting a field of view or a bird's-eye of a vision sensor of the vehicle. Presenting an interactive interface may comprise presenting current or past, or both, perception information. Presenting an interactive interface may comprise presenting current or past, or both, trajectories. Presenting an interactive interface may comprise presenting current or past, or both, motion planning information. Presenting an interactive interface may comprise presenting a system diagram of the vehicle, the system diagram comprising one or more hardware components, or one or more software processes, or both.

In some implementations, the intervention may comprise a current location of the vehicle determined by the person. The intervention may comprise treating the current location identified by the person as prior knowledge and using an inference algorithm to update the current location.

In some implementations, the intervention may be based on the person identifying a goal location of the vehicle. The intervention may comprise treating the goal location identified by the person as prior knowledge and using an inference algorithm to update the goal location.

In some implementations, the intervention may comprise a trajectory to be found by the person. The intervention may comprise treating the trajectory identified by the person as prior knowledge and using an inference algorithm to update the trajectory.

In some implementations, the intervention may comprise one or more trajectory sampling points identified by the person. The intervention may comprise inferring a trajectory or a trajectory segment based on the one or more trajectory sampling points. Inferring a trajectory or a trajectory segment may be based on one or more trajectory primitives. The intervention may comprise concatenating two trajectory segments. Concatenating two trajectory segments may comprise smoothing the trajectory segments and smoothing a speed profile across the trajectory segments.

In some implementations, an intervention may comprise specifying one or more un-traversable road segments. An intervention may comprise setting a speed profile. An intervention may comprise treating the speed profile as prior knowledge and using an inference algorithm to update the speed profile. An intervention may be based on inferring a speed profile by a learning algorithm. An intervention may be based on inferring a steering angle by a learning algorithm. An intervention may comprise enabling, editing or disabling a hardware component or a software process. An intervention may comprise enabling, editing or disabling a subcomponent of a hardware component or a processing step of a software process. An intervention may comprise overwriting a travel preference or a travel rule. An intervention may comprise editing data, the data comprising one or more of the following: map, sensor data, trajectory data, vision data, or any past data.

In some implementations, the vehicle may comprise a processor configuring the vehicle or a related AV system based on a command. Configuring the vehicle or the AV system based on a command may comprise treating the command as prior knowledge and using an inference algorithm to update the command. A command may comprise one or more of the following: a trajectory, a label, a process control, an annotation, and a machine instruction.

In another aspect, implementations include an apparatus comprising: (a) a processor configured to (1) receive an intervention request regarding operation of a vehicle and (2) extract motion information or perception information from the intervention request, and (b) a display configured to (1) display the motion information or the perception information and (2) allow a user to interact with operation of the vehicle.

In some implementations, an intervention request may comprise a request initiated by a remote operator. An intervention request may comprise data associated with status or environment of the vehicle or a related AV system. An intervention request may comprise one or more signals from one or more hardware components of the vehicle or a related AV system. An intervention request may comprise one or more signals from one or more software processes of the vehicle.

In some implementations, the display may be configured to present an interactive interface comprising a field of view or a bird's-eye of a vision sensor of the vehicle. The display may be configured to present an interactive interface comprising current or past or both perception information. The display may be configured to present an interactive interface comprising current or past or both trajectories. The display may be configured to present an interactive interface comprising current or past or both motion planning information. The display may be configured to present an interactive interface comprising a system diagram of the vehicle, the system diagram comprising one or more hardware components, or one or more software processes, or both.

In some implementations, the apparatus may include a processor that converts one or more interactions from the user into an intervention for the operation of the vehicle. One or more interactions may comprise a current location of the vehicle determined by the user; a processor may treat the current location identified by the user as prior knowledge and uses an inference algorithm to generate an updated current location as an intervention. One or more interactions may comprise a goal location of the vehicle identified by the user; a processor may treat the goal location as prior knowledge and uses an inference algorithm to generate an updated goal location as an intervention. One or more interactions may comprise a trajectory identified by the user; a processor may treat the trajectory as prior knowledge and uses an inference algorithm to generate an updated trajectory as an intervention. One or more interactions comprise one or more trajectory sampling points identified by the person; a processor may infer a trajectory or a trajectory segment based on the one or more trajectory sampling points. A processor may infer a trajectory or a trajectory segment based on one or more trajectory primitives. A processor may concatenate two trajectory segments. Concatenating two trajectory segments may comprise smoothing the trajectory segments and smoothing a speed profile across the trajectory segments. One or more interactions may comprise specifying one or more un-traversable road segments. One or more interactions may comprise setting a speed profile. A processor may treat the speed profile as prior knowledge and use an inference algorithm to generate an updated speed profile as an intervention. A processor may infer a speed profile by a learning algorithm, and the speed profiles may be included in the intervention. A processor may infer a steering angle by a learning algorithm, and the steering angle may be included in the intervention. One or more interactions or an intervention may comprise enabling, editing or disabling a hardware component or a software process. One or more interactions or an intervention comprises enabling, editing or disabling a subcomponent of a hardware component or a step of a software process. One or more interactions or an intervention may comprise overwriting a travel preference or a travel rule. One or more interactions or an intervention may comprise editing data, the data comprising one or more of the following: a map, sensor data in the vehicle or a related AV system, trajectory data in the vehicle or a related AV system, vision data in the vehicle or a related AV system, or any past data in the vehicle or a related AV system. An intervention may comprise one or more of the following: a trajectory, a label, a process control, an annotation, and a machine instruction.

In general, in an aspect, a method comprises: (a) causing a vehicle to drive in an autonomous mode on a road, the vehicle comprising one or more autonomous driving capabilities; (b) receiving an intervention regarding an operation of the one or more autonomous driving capabilities; and (c) analyzing the intervention and configuring one or more hardware components or one or more software processes of the vehicle.

In some implementations, an intervention may comprise a current location of the vehicle; analyzing the intervention may comprise treating the current location in the intervention as prior knowledge and using an inference algorithm to update the current location. An intervention may comprise a goal location; analyzing the intervention may comprise treating the goal location in the intervention as prior knowledge and using an inference algorithm to update the goal location. An intervention may comprise a trajectory; analyzing the intervention may comprise treating the trajectory in the intervention as prior knowledge and using an inference algorithm to update the trajectory. An intervention may comprise one or more trajectory sampling points; analyzing the intervention may comprise treating the one or more trajectory sampling points as prior knowledge and using an inference algorithm to update the one or more trajectory sampling points. Analyzing an intervention may comprise inferring a trajectory or a trajectory segment based on the one or more trajectory sampling points. Inferring a trajectory or a trajectory segment may be based on one or more trajectory primitives. Inferring a trajectory or a trajectory segment may comprise concatenating two trajectory segments. Concatenating two trajectory segments may comprise smoothing the trajectory segments and smoothing a speed profile across the trajectory segments. An intervention may comprise specifying one or more un-traversable road segments. An intervention may comprise inferring or setting a speed profile. Analyzing an intervention may comprise treating the speed profile as prior knowledge and using an inference algorithm to update the speed profile. Analyzing an intervention may comprise inferring a speed profile by a learning algorithm. Analyzing an intervention may comprise inferring a steering angle by a learning algorithm. Analyzing an intervention may comprise enabling, editing or disabling a hardware component or a software process. Analyzing an intervention may comprise enabling, editing or disabling a subcomponent of a hardware component or a processing step of a software process. An intervention may comprise overwriting a travel preference or a travel rule. An intervention may comprise editing data, the data comprising one or more of the following: a map, sensor data in the vehicle or a related AV system, trajectory data in the vehicle or a related AV system, vision data in the vehicle or a related AV system, or any past data in the vehicle or a related AV system.

In general, in an aspect, a method comprises: (a) receiving from a remote operator machine-readable instructions regarding an operation of a vehicle; and (b) configuring the vehicle to execute the machine-readable instructions. The vehicle may comprise one or more autonomous driving capabilities. Machine-readable instructions may represent one or more of the following: a current location, a goal location, one or more trajectories, one or more trajectory sampling points, one or more speed profiles, or one or more un-traversable road segments. Machine-readable instructions may comprise enabling, editing or disabling a hardware component or a software process. Machine-readable instructions may comprise enabling, editing or disabling a subcomponent of a hardware component or a processing step of a software process. Machine-readable instructions may comprise overwriting a travel preference or a travel rule. Machine-readable instructions may comprise editing data, the data comprising one or more of the following: a map, sensor data in the vehicle or a related AV system, trajectory data in the vehicle or a related AV system, vision data in the vehicle or a related AV system, or any past data in the vehicle or a related AV system.

These and other aspects, features, and implementations can be expressed as methods, apparatus, systems, components, program products, methods of doing business, means or steps for performing a function, and in other ways.

These and other aspects, features, and implementations will become apparent from the following descriptions, including the claims.

