Autonomous vehicle safety platform system and method

The low-level safety platform system for autonomous vehicles addresses computing system failures by generating backup trajectories, ensuring safe navigation and reducing reliance on redundant systems, thereby enhancing vehicle safety and resilience.

JP7610713B2Active Publication Date: 2025-01-08MAY MOBILITY INC
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
JP2023535660
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2020-12-14
Filing Date
2021-12-14
Publication Date
2025-01-08
Estimated Expiration
2041-12-14

Smart Images

  • Figure 0007610713000001
    Figure 0007610713000001
  • Figure 0007610713000002
    Figure 0007610713000002
  • Figure 0007610713000003
    Figure 0007610713000003
Patent Text Reader

Abstract

The system 100 for autonomous vehicle operation may include a low-level safety platform 130 and may optionally include and / or interface with any or all of an autonomous agent 102, a sensor system, a computing system 120, a vehicle communication network 140, a vehicle control system 150, and / or any suitable components. The system functions to assist in fallback planning and / or execution with the autonomous agent. Additionally or alternatively, the system may function to transition the autonomous agent between a primary (autonomous) mode of operation and a fallback mode of operation.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present invention relates generally to the field of autonomous vehicles, and more particularly to novel and useful systems and methods for autonomous vehicle operation in the autonomous field.

[0002] CROSS-REFERENCE TO RELATED APPLICATIONS This application claims the benefit of U.S. Provisional Application No. 63 / 125,304, filed December 14, 2020, which is incorporated herein by reference in its entirety. [Background technology]

[0003] Despite many recent advances in the field of autonomous vehicles, having a computer for an autonomous vehicle that is considered autonomous grade and resistant to failures remains a reality, as the computing system is essential to the operation of the autonomous vehicle and failure of the computing system can be catastrophic.

[0004] A high-level safety platform (e.g., within the planning module of an autonomous vehicle) can create and implement backup trajectories with computing systems that can ensure minimal risk conditions, but which become essentially useless if the computing systems lose communication with the vehicle's control system and / or encounter other emergency scenarios.

[0005] Thus, there is a need in the field of autonomous vehicles to create improved and useful low-level safety platform systems and methods. [Brief description of the drawings]

[0006] [Figure 1] FIG. 1 is a schematic diagram of one embodiment of a low level secure platform system. [Diagram 2] FIG. 2 is a schematic diagram of one embodiment of a method for performing low-level safety operation of a vehicle. [Diagram 3]3A and 3B are respectively a first and second schematic diagram of a set of inputs and outputs exchanged between systems in one embodiment of a method for performing low-level safety operation of a vehicle. [Figure 4] FIG. 4 is a schematic embodiment of a vehicle in an environment. [Diagram 5] FIG. 5 is a schematic diagram of one embodiment of a low level secure platform system. [Figure 6] FIG. 6 is a schematic diagram of an embodiment of a fallback planner in an embodiment of the system. [Figure 7] FIG. 7 is a schematic diagram of one embodiment of a low level secure platform system. [Figure 8] FIG. 8 is a schematic diagram of an example of a method for performing low-level safety operations of a vehicle. [Figure 9] 9A and 9B are first and second schematic examples of navigational edge safety state identification criteria, respectively. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0007] The following description of preferred embodiments of the invention is not intended to limit the invention to those preferred embodiments, but rather to enable any person skilled in the art to make and use the invention.

[0008] 1. Overview 1, system 100 for autonomous vehicle operation includes low-level safety platform 130. Additionally or alternatively, system 100 may optionally include and / or interface with any or all of an autonomous agent 102, a sensor system, a computing system 120, a vehicle communication network 140, a vehicle control system 150, and / or any suitable components. Any sensor system may include a sensor suite 110, a communication interface 160, a set of infrastructure devices 170, and a teleoperator platform 180. However, system 100 may include any other additional components.

[0009] Additionally or alternatively, system 100 may include any or all of the components described in any or all of U.S. Application No. 16 / 514,624 (U.S. Patent No. 10,564,641), filed July 17, 2019, U.S. Application No. 16 / 505,372 (U.S. Patent No. 10,614,709), filed July 8, 2019, U.S. Application No. 16 / 540,836, filed August 14, 2019, and U.S. Application No. 16 / 792,780, filed February 17, 2020, each of which is incorporated herein by reference in its entirety.

[0010] System 100 functions to assist in fallback planning and / or execution in an autonomous agent according to method S200. Additionally or alternatively, the system may function to transition the autonomous agent between a primary (autonomous) mode of operation and a fallback mode of operation. More preferably, system 100 may function to enable vehicle operation (e.g., safe operation, optimal operation, operation along a predetermined route, etc.) in the event that a computing system (e.g., an autonomous computing system) of the vehicle fails and / or loses the ability to communicate (e.g., with a control system of the vehicle, an actuator such as a drive-by-wire actuator of the vehicle, etc.). However, the system may function in other manners as appropriate.

[0011] As shown in FIG. 2, a method S200 for autonomous vehicle operation includes steps S210 of determining a set of inputs, S220 of storing any or all of the set of inputs, and S230 of assisting operation of an autonomous agent based on the set of inputs.

[0012] Additionally or alternatively, method 200 may include any or all of the processes described in any or all of U.S. Application No. 16 / 514,624, filed July 17, 2019 (U.S. Patent No. 10,564,641), U.S. Application No. 16 / 505,372, filed July 8, 2019 (U.S. Patent No. 10,614,709), U.S. Application No. 16 / 540,836, filed August 14, 2019, and U.S. Application No. 16 / 792,780, filed February 17, 2020, or any other suitable processes performed in any order, each of which is incorporated herein by reference in its entirety. Method 200 may be performed in system 100 as described above and / or in any other suitable system.

[0013] 1.1 Example In an embodiment, method S200 may include any or all of the following steps: obtaining a stored input; selecting and / or validating an input; transmitting a first trajectory (equivalently, referred to herein as a primary trajectory) to a communications network if communication with the computing system exists; transmitting a second trajectory (equivalently, referred to herein as a secondary trajectory) to the communications network if communication with the computing system is lost; and / or one or more other suitable processes performed in any suitable order.

[0014] In one set of embodiments, an autonomous fallback method for a vehicle may include receiving input data including sensor data from a sensor suite onboard the autonomous vehicle and an ego-vehicle state of the autonomous vehicle, determining a primary plan at an autonomous computing system based on the input data, determining a secondary plan, which may include determining a set of navigational edge candidates, classifying the navigational edge candidates as available, and if the navigational edge is classified as available, generating a secondary plan based on the ego-vehicle state and the navigational edge candidates, storing the secondary plan in a memory coupled to an embedded controller, autonomously controlling the vehicle based on the primary plan, and while autonomously controlling the vehicle based on the primary plan, determining satisfaction of a trigger condition and, in response, autonomously controlling the vehicle based on the secondary plan by the embedded controller.

[0015] In some aspects, the autonomous fallback method may further include updating the secondary plan based on satisfaction of an expiration condition of the secondary plan while controlling the vehicle based on the primary plan.

[0016] In some aspects, the autonomous fallback method may further include estimating an attitude of the ego-vehicle using odometry while controlling the vehicle based on the secondary plan, detecting an obstacle along a path of the vehicle corresponding to the secondary plan based on the attitude of the ego-vehicle using a set of secondary sensors, and performing a hard stop based on the detection of the obstacle. In one example, the set of secondary sensors may include a time-of-flight sensor of the vehicle sensor suite.

[0017] In some aspects of the autonomous fallback method, the classification of available conditions may be based on a map.

[0018] In some aspects of the autonomous fallback method, the input data includes an environment representation that identifies a set of agents (e.g., in the self-agent's environment), and the classification of available states is based on occupancy predictions corresponding to each agent in the set. In one example, each agent is assumed to be stationary within the planning horizon. In another example, any or all of the agents are assumed to be dynamically moving within the planning horizon.

[0019] In some aspects of the autonomous fallback method, the classification of available states is based on the dimensions of the ego vehicle and satisfaction of a minimum passing clearance. In additional or alternative aspects, the classification of available states is based on the presence or predicted presence of nearby vehicles between the ego vehicle and the state (e.g., a navigational edge associated with the state).

[0020] In some aspects of the autonomous fallback method, a set of navigational edge candidates is determined at a predetermined set of distances relative to the position of the ego vehicle.

[0021] In some aspects, the autonomous fallback method may further include selecting a navigational edge from among a plurality of available navigational edges based on at least one of a collision constraint, a kinematic constraint, and a minimum distance constraint.

[0022] In some aspects of the autonomous fallback method, the triggering condition is a loss of communication between the autonomous computing system and a validation endpoint. In one example, the validation endpoint is a communications network node.

[0023] In some aspects of the autonomous fallback method, the embedded controller resides in a low-level safety platform communicatively connected to the autonomous computing system and the vehicle communication network. In one example, autonomously controlling the vehicle based on the primary plan includes providing the trajectory to the vehicle control system via the low-level safety platform and the vehicle communication network (e.g., via a vehicle control interface as shown in Figures 6 and 7). Alternatively, the primary trajectory is provided to the vehicle control system without going through the low-level safety platform.

[0024] 2. Advantages The autonomous vehicle safety platform system and method can provide several advantages over current systems and methods.

[0025] First, aspects of the present technology can enhance safety of an autonomous agent navigating through its environment even if the agent's (autonomous) computing system fails and / or communication with other components of the autonomous agent is lost. In a specific example, a set of safe trajectories for the agent's environment can be generated prior to a communication / processing failure, which can be relied upon and / or implemented in a fallback mode in case of a (autonomous computing system) communication / processing failure. However, embodiments can enhance safety in other ways.

[0026] Second, aspects of the present technology may provide a low-level safety platform that may be modularly integrated into any number of vehicles, such as autonomous agents. In embodiments, the low-level safety platform may be integrated separately from the autonomous computing system, such as by being added as a retrofit platform and / or scaled to meet some degree of fallback and / or computing redundancy. However, aspects of the system may be suitably integrated into the vehicle in other ways and / or the low-level safety platform may be implemented in other ways.

[0027] Third, aspects of the present technology can provide fallback planning without using redundant autonomous processing systems that may rely on expensive and / or resource-intensive hardware (e.g., reserving / requiring additional computing power for failure response, increasing hardware costs, and increasing the amount of advanced processing power). As an example, embodiments can promote vehicle resilience to hardware and / or communication failures while relying only on a single advanced processing system (e.g., just one computing system and / or autonomous computing subsystem therein). Instead of relying on redundant autonomous processing, embodiments can utilize a fallback controller (e.g., an embedded controller) that can operate at a low level of processing in a low-level safety system (e.g., FIG. 5). However, embodiments can also provide fallback planning and / or resilience to communication and / or autonomous processing failures in other ways.

[0028] Fourth, aspects of the present technology may provide technical solutions that are necessarily rooted in computer technology to overcome problems that arise specifically in computer technology, such as fallback planning, redundancy, computing resilience of autonomous vehicle planning / control, and / or other computer technology challenges. In addition to or as an alternative to autonomous vehicle applications, the systems and / or methods may be used in any or all of a number of sets of applications, including, but not limited to, any or all of military applications, aircraft control, and / or any other suitable application.

[0029] Additionally or alternatively, the systems and methods may provide any one or more other benefits.

[0030] 3. System 100 The system 100 is operable to assist in fallback planning and / or execution in an autonomous agent according to method S200. Additionally or alternatively, the system may be operable to transition the autonomous agent between a primary (autonomous) mode of operation and a fallback mode of operation. More preferably, the system 100 is operable to enable operation of the vehicle (e.g., safe operation, optimal operation, operation along a predefined route, etc.) in the event that the vehicle's computing system (e.g., the autonomous computing system) fails and / or loses communication capabilities. However, the system may also function in other suitable ways. Additionally or alternatively, the system may be operable to detect these failures and / or communication losses, obtain trajectories, store trajectories, generate trajectories, and / or perform any other suitable functions.

[0031] System 100 preferably operates according to method 200 described below, but may additionally or alternatively perform according to any other suitable method or methods. Additionally or alternatively, system 100 may be operable to perform any or all of the methods, processes, embodiments and / or examples described in any or all of U.S. Application No. 16 / 514,624, filed July 17, 2019 (U.S. Patent No. 10,564,641), U.S. Application No. 16 / 505,372, filed July 8, 2019 (U.S. Patent No. 10,614,709), U.S. Application No. 16 / 540,836, filed August 14, 2019, and U.S. Application No. 16 / 792,780, filed February 17, 2020, each of which is incorporated herein by reference in its entirety.

[0032] 3.1 System: Components System 100 preferably includes and / or cooperates with (e.g., is incorporated within) an autonomous vehicle (equivalently referred to herein as autonomous agent 102 and / or ego-vehicle) (e.g., as shown in FIG. 4). Autonomous agent 102 includes autonomous vehicle 110, which is preferably a fully autonomous vehicle and / or can be operated as a fully autonomous vehicle, but may additionally or alternatively be any semi-autonomous vehicle.

[0033] In some examples, for example, an autonomous agent may be a vehicle that switches between a semi-autonomous state (e.g., working with a human safety driver, teleoperator, etc.) and a fully autonomous state (or fully attended state), such that the autonomous agent may have attributes of both a semi-autonomous vehicle and a fully autonomous vehicle depending on the state of the autonomous agent.

[0034] In a preferred aspect, the autonomous vehicle is a motor vehicle (e.g., a car, a driverless vehicle, a bus, a shuttle, a taxi, a ride-share vehicle, a truck, a semi-truck, etc.). Additionally or alternatively, the autonomous vehicle can include any or all of a watercraft (e.g., a boat, a water taxi, etc.), an air vehicle (e.g., an airplane, a helicopter, a drone, etc.), a ground vehicle (e.g., a two-wheeler, a motorcycle, a motor cycle, a scooter, etc.), and / or any other suitable vehicle and / or transportation device, an autonomous machine, an autonomous device, an autonomous robot, and / or any other suitable device.

[0035] The autonomous agent preferably includes and / or interfaces with a computing system 120 that is operable to process information (e.g., sensor inputs) to determine a set of one or more trajectories (e.g., primary trajectory, secondary trajectory, etc.) for the vehicle. Additionally or alternatively, the computing system may be operable to perform any or all of the processes involved in perception, prediction, localization, planning, and / or any other processes involved in the operation of the autonomous agent.

[0036] The computing system preferably includes an on-board computing system located onboard the autonomous agent (e.g., integrated within the autonomous agent). Additionally or alternatively, the computing system may include any or all of: a remote computing system (e.g., a cloud computing system in lieu of the on-board computing system, a remote computing system in communication with the on-board computing system, etc.), a computing system integrated with an auxiliary device (e.g., a mobile device, a user device, etc.), an edge device including a mobile computing device, a sensor with an integrated computing unit, multiple computing systems (e.g., a computing system that generates a primary trajectory and another computing system that generates a secondary trajectory), and / or any other suitable computing systems and devices. In certain aspects, for example, the autonomous agent is operable to communicate with a remote or distributed computing system, which may include a user device (e.g., a mobile phone, a laptop, etc.), a remote server, a cloud server, or any other suitable local and / or distributed computing system remote from the vehicle. The remote computing system may be connected to one or more systems of the autonomous agent through one or more data connections (e.g., channels), but may alternatively communicate with the vehicle systems in any suitable manner.

[0037] The computing system preferably includes a processing system (e.g., a graphics processing unit or GPU, a central processing unit or CPU, or any suitable processing circuitry) and a memory, but may additionally or alternatively include any other suitable components. The memory may be short-term memory (e.g., volatile, non-volatile, random access memory or RAM, etc.) and / or long-term memory (e.g., flash memory, hard disk, etc.). In an aspect, for example, the on-board computing system operates to interact with and / or operably control one or more of the identified components or modules described herein. For example, the on-board computing system may function to implement and / or execute computer instructions to implement a multi-policy decision-making module, a synchronization module, etc. In a specific example, the processing system and memory collectively function to dynamically manage a set of policies (e.g., determined based on method 200) available to an autonomous agent within the framework of a multi-policy decision-making framework, such as those described in U.S. Application No. 16 / 514,624, filed July 17, 2019, which is incorporated herein by reference in its entirety. Additionally or alternatively, the processing system and memory and / or any other suitable components may be used for any other suitable functionality.

[0038] A computing system (e.g., an on-board computing system) preferably functions to control the autonomous agent and process detected data from a sensor suite 110 (e.g., computer vision system, LIDAR, flash LIDAR, wheel speed sensors, GPS, etc.) of the autonomous agent and / or other sensors (e.g., from infrastructure devices) to determine the state of the autonomous agent and / or the state of the agents in the autonomous agent's operating environment. Based on the state and program instructions of the autonomous agent and / or the agents in the operating environment, the on-board computing system preferably modifies or controls the behavior of the autonomous agent, such as through the selection of a behavior policy (e.g., that is later used to determine a primary trajectory). Additionally or alternatively, the computing system may include a multi-policy decision-making module that functions to generate behavior policies and select behavior policies (e.g., change lanes, merge, stay in current lane, turn left, turn right, stop, slow down, accelerate, stop at a traffic light, stop at a stop sign, yield, etc.) that the computing system can execute to control the behavior of the autonomous agent (e.g., through the determination of a primary trajectory).

[0039] The output of the computing system (and / or the autonomous processor therein) preferably includes behavioral policies and / or operational instructions that may include vehicle waypoints (e.g., in a local ego-vehicle frame), target vehicle path (e.g., spatio-temporal control path), polynomial path, trajectory (e.g., in the form of low-level control commands such as raw actuator control commands associated with following a path / waypoint), but may additionally or alternatively include any other information. In a preferred aspect, the computing system is configured to output a first set of outputs 104 (e.g., a primary plan) and a second set of outputs 106 (e.g., a fallback plan), which may be in the same or different formats. As an example, the first set of outputs (e.g., a primary plan) may be a trajectory (e.g., a path, a set of positions, low-level actuation commands, etc.), and the second set of outputs may be in the form of high-level guidance (e.g., waypoints, target vehicle path, etc.). However, the computing system may provide any suitable output to any suitable endpoint.

[0040] The computing system preferably includes, defines, interfaces with, and / or functions as a high-level safety platform 124 (also known as a fallback planner), which can plan and is configured to generate (e.g., as described above) a second set of outputs 106, also referred to herein as a fallback plan (e.g., waypoints, fallback trajectories), one of which can be utilized for vehicle operation in response to satisfaction of a fallback condition (e.g., in the event of an emergency, communications failure, computing system failure, etc.). Additionally or alternatively, the high-level safety platform can be defined by other components and / or configured in other manners.

[0041] In a first set of aspects, the computing system includes an on-board general-purpose computer adapted for I / O communication with the vehicle control system and the sensor system, but may additionally or alternatively be any suitable computing device. The on-board computing system is preferably connected to the Internet via a wireless connection (e.g., via a cellular link or connection). Additionally or alternatively, the on-board computing system may be coupled to any number of wireless or wired communication systems.

[0042] However, the system may include or be used in conjunction with any other suitable computing system, or may be otherwise suitably performed.

[0043] System 100 optionally includes a communication interface 160 for communicating with the computing system, the communication interface functioning to allow information to be received (e.g., from an infrastructure device, from a remote computing system and / or remote server, from a teleoperator platform, another autonomous agent or other vehicle, etc.) and to be transmitted to the computing system (e.g., to a remote computing system and / or remote server, to a teleoperator platform, to an infrastructure device, another autonomous agent or other vehicle, etc.). The communication interface preferably includes a wireless communication system (e.g., Wi-Fi, Bluetooth, Cellular 3G, Cellular 4G, Cellular 5G, Multiple Input Multiple Output or MIMO, one or more radios, or any other suitable wireless communication system or protocol), but may additionally or alternatively include any or all of a wired communication system (e.g., modulated power line data transfer, Ethernet, or any other suitable wired data communication system or protocol), a data transfer bus (e.g., CAN, FlexRay), and / or any other suitable components. However, the system may include or be used with any other suitable communication interface, or may exclude a communication interface.

[0044] The system 100 may optionally include a set of infrastructure devices 170, equivalently referred to herein as roadside units (e.g., FIG. 4), that individually and / or collectively function to observe one or more aspects and / or features of the environment and collect observational data related to one or more aspects and / or features of the environment. In a preferred embodiment, the infrastructure devices additionally function to collect data associated with the observations and transmit the collected data and / or processed derivatives of the collected data to the autonomous agent. Additionally or alternatively, the infrastructure devices may function to collect and transmit data to a teleoperator platform, which may use the data to inform teleoperator decision-making, such as whether to include and / or exclude a behavior policy from consideration by the autonomous agent's computing system. In a specific example, for example, the infrastructure devices may enable the agent and / or operator and / or the agent's teleoperator to see a view around the corners of the vehicle that may be used by the agent and / or operator and / or the agent's teleoperator to enable a turn behavior policy to be considered by the autonomous agent (by confirming that the road is clear for the turn).

[0045] In a first set of aspects, for example, the infrastructure device forwards the collected observation data to an autonomous vehicle service and / or a remote platform (e.g., implemented via a network of distributed computing systems) that operates to interactively communicate with the autonomous agent and / or control one or more functions of the autonomous agent.

[0046] The infrastructure devices preferably include devices within the immediate vicinity and / or proximity or short-range communication proximity of the autonomous agent's operating location and may function to collect data regarding conditions within the area surrounding the autonomous agent and proximate to the autonomous agent's operating zone. In an embodiment, the roadside units include one or more of off-board detection devices including flash LIDAR, thermal imaging devices (thermal cameras), still or video capture devices (e.g., image cameras and / or video cameras, etc.), global positioning systems, radar systems, microwave systems, inertial measurement units (IMUs), and / or any other suitable detection device or combination of detection devices.

[0047] The infrastructure device may optionally include computing capabilities via processing circuitry and communications interfaces that enable the infrastructure device to communicate with any or all of the autonomous agent's computing system, a remote computing system, a teleoperator platform, and / or any other suitable component or combination of components.

[0048] The zone of operation of the autonomous agent may optionally be defined as a predefined radius (e.g., 100 feet, 50 feet to 100 feet, less than 50 feet, 100 feet to 200 feet, more than 200 feet, etc.) along the structured and / or unstructured path of the autonomous agent at any point along the structured path where the autonomous agent 110 is positioned and / or operating (e.g., traveling). In a specific example of a structured and / or predefined autonomous agent path, the proximity zone of operation of the autonomous agent is 100 feet from or along any point along the structured path.

[0049] Technical advantages achieved by the implementation of infrastructure devices may include the ability to observe situations beyond the autonomous agent's observable range (e.g., around a corner, a right-angled road going down, etc.), which the autonomous agent can subsequently act in curating one or more behavioral policies available to the agent. After a given example, for example, observations of one or more aspects of a given environment may be made by the autonomous agent, and observations of one or more different and / or overlapping aspects of the given environment may be made from different perspectives by one or more infrastructure devices disposed and operating in the given environment. In such an embodiment, the infrastructure device's perspective including the observational data therefrom is augmented with the observational data from the autonomous agent's perspective to generate a comprehensive view of the autonomous agent's operating environment and / or to provide additional perspectives to one or more teleoperators of a teleoperator platform. This allows for improved predictions of the operating environment and improved behavioral policy decisions (e.g., plans / trajectories) selected and / or executed by the autonomous agent operating independently and safely (from an on-board human operator) within the operating environment.

[0050] In some aspects, the autonomous agent may augment and / or fuse data derived by the on-board sensor suite 110 (e.g., as described below) with additional observations from infrastructure devices (e.g., roadside units) to improve policy curation and / or trajectory determination by the autonomous agent.

[0051] Additionally or alternatively, the infrastructure device may detect and track any type or kind of object in the operating environment, such as with a video camera or radar. In certain aspects, for example, a video camera may function to detect the object and provide a semantic classification of the object type and possible intent of the object, such as a pedestrian about to cross the road or a car about to turn left, a driver about to open a car door and exit the vehicle, a cyclist traveling in a bike lane, and / or any other suitable information.

[0052] Additionally or alternatively, any or all of the infrastructure devices may include traffic management devices (e.g., traffic sensors, traffic signals, pedestrian signals, etc.) operating in the environment that may: communicate with any or all of the other infrastructure devices (e.g., roadside units); may function to communicate directly with an autonomous agent; with a teleoperator platform; and / or in any other suitable manner; regarding any or all of the data collected and / or detected by the infrastructure devices, regarding the operational status of the infrastructure devices (e.g., red or green light) and / or any other information. In a specific example, a traffic light may be an infrastructure device in the environment surrounding an autonomous vehicle that may function to communicate directly with the autonomous vehicle or a roadside unit that may be in operative communication with the autonomous vehicle. In this example, the traffic light may function to share and / or communicate operational status information, such as the color of light the traffic light is projecting, or other information, such as the timing of light changes by the traffic light.

[0053] However, the system may include or be used in conjunction with any other suitable infrastructure devices, or may exclude infrastructure devices.

[0054] In a preferred aspect, the communication interface 160 allows the autonomous agent to communicate and / or exchange data with systems, networks and / or devices external to the autonomous agent. This communication interface and / or a separate communication interface may optionally allow one or more infrastructure devices to communicate directly with the autonomous agent and / or remote computing systems and / or teleoperator platforms. Additionally or alternatively, the communication interface may allow communications to be established between multiple components of the system and / or agent. The communication interface preferably includes one or more of a cellular system (or any suitable long-range communication system), direct short-wave radio, or any other suitable short-range communication system.

[0055] The communications interface may optionally include, be used in conjunction with, and / or define a vehicle communications network 140, which functions to allow different components of the autonomous agent to receive and transmit information to one another. The vehicle communications network may be any or all of the following: manufactured with the vehicle (e.g., an original equipment manufacturer [OEM] communications network), added to the vehicle (e.g., retrofitted), in any combination, and / or added in other ways.

[0056] In a preferred aspect, the vehicle communication network is a vehicle bus, such as, but not limited to, a bus (e.g., a Controller Area Network (CAN) bus, a Local Interconnect Network (LIN) bus, etc.), Ethernet, any combination, and / or any other communication network, any or all of the above.

[0057] In a specific example, the vehicle communication network includes a CAN bus that communicates with a computing system via a low-level safety platform.

[0058] However, the system may include or be used in conjunction with any other suitable vehicular communication network and / or may otherwise exclude a vehicular communication network.

[0059] The system preferably includes and / or cooperates with a sensor suite 110 (e.g., computer vision system, LIDAR, RADAR, wheel speed sensors, GPS, cameras, inertial measurement units [IMUs], etc.) that communicates with the on-board computing system and functions to gather information for determining one or more trajectories of the autonomous agent. The sensor system (and / or portions thereof) may additionally or alternatively communicate with any other components of the system, such as a low-level safety platform (e.g., so that a fallback controller can receive a simple subset of information for performing odometry and / or simplified obstacle detection while enforcing a secondary trajectory) and / or any other components. Additionally or alternatively, the sensor suite may function to enable operation of the autonomous agent (e.g., autonomous driving), obtaining data regarding the conditions surrounding the autonomous agent, obtaining data regarding the operation of the autonomous agent, detecting the need for maintenance of the autonomous agent (e.g., via engine diagnostic sensors, external pressure sensor strips, sensor health sensors, self-diagnostics and / or cross sensor diagnostics of sensor signal quality, etc.), detecting cleanliness standards within the autonomous agent (e.g., internal cameras, ammonia sensors, methane sensors, alcohol vapor sensors), and / or any other suitable functionality.

[0060] The sensor suite 110 preferably includes sensors onboard the autonomous vehicle (e.g., RADAR and / or LIDAR sensors and / or cameras coupled to an exterior surface of the agent, IMUs and / or encoders coupled to and / or disposed within the agent, etc.), but may additionally or alternatively include sensors remote from the agent (e.g., part of one or more infrastructure devices, sensors in communication with the agent, etc.), and / or any suitable sensors in any suitable location.

[0061] However, the system may include or be used in conjunction with any other suitable sensor system or systems and / or sensor suites, or may be implemented in any other manner.

[0062] The system may include and / or interface with a vehicle control system 150 including vehicle modules / components that function to effect vehicle movement based on motion instructions (e.g., plans and / or trajectories) generated by one or more computing systems and / or controllers. Additionally or alternatively, the vehicle control system may include or interface or communicate with any or all of a set of agent electronic modules, such as, but not limited to, any or all of the following components: driver, electronic control unit [ECU], telematic control unit [TCU], transmission control module [TCM], anti-lock braking system [ABS] control module, body control module [BCM], and / or any other suitable control subsystem and / or module. In a preferred aspect, the vehicle control system includes, interfaces with, and / or implements a drive-by-wire system of the vehicle. Additionally or alternatively, the vehicle may be operated according to the actuation of one or more mechanical components and / or be otherwise implemented. However, the system may include or be used with any other suitable vehicle control system or may be otherwise implemented as appropriate.

[0063] System 100 preferably includes a low-level safety platform 130 (e.g., described below) that functions to process, transmit, and / or store a set of inputs related to vehicle trajectory selection and / or trajectory generation. Additionally or alternatively, the low-level safety platform functions to facilitate execution of all or a portion of method S200.

[0064] The low-level safety platform preferably communicates with the computing system and the vehicle communication network (e.g., CAN bus, Ethernet, etc.). In a first set of aspects, the low-level safety platform may relay information between the computing system and the vehicle communication network (e.g., from the computing system to the vehicle communication network, from the vehicle communication network to the computing system, etc.). In a second set of aspects, the low-level safety platform may translate information (e.g., a second set of outputs of the computing system) and provide a corresponding set of outputs (e.g., to the vehicle control system, via the vehicle communication network, via a vehicle control interface, etc.).

[0065] Additionally or alternatively, the low-level safety platform may be implemented in a parallel embodiment (e.g., two parallel communication buses) and in addition to relaying information and / or arbitrating messages, or as an alternative, the low-level safety platform may be configured to enter into fallback controller execution (e.g., if the computing systems are not communicating, the system and autonomous computing may control the same vehicle and communicate with each other to detect the need to switch to backup control).

[0066] In a preferred aspect, the low-level safety platform can provide one or more trajectories (and / or any other plan or plans) to the vehicle communication network (e.g., in a nominal operating mode and / or in a fallback operating mode), which then transmits the information to the vehicle control system for execution. Those outputs can optionally be provided to the vehicle control system via a vehicle control interface (e.g., as shown in Figures 6 and 7), which preferably includes a software module that serves as an interface between the vehicle control system (e.g., a drive-by-wire ECU) and the autonomous stack of the vehicle's computing system (e.g., including the low-level safety platform, including the high-level safety platform, etc.). Additionally or alternatively, the low-level safety platform can directly and / or indirectly communicate with the control system and / or any other components of the system (e.g., a sensor system, etc.). In some aspects, for example, the low-level safety platform communicates directly with the vehicle control system. In additional or alternative aspects, the low-level safety platform communicates with at least a subset of the sensors of the sensor system (e.g., IMU and encoders, only IMU and encoders, only the subset, etc.), and the low-level safety platform can use the sensor input to verify one or more received trajectories, generate its own trajectory in an emergency (e.g., if the computing system loses connectivity), correct the trajectory (e.g., based on objects detected on the vehicle's path; performing a full stop / forced stop upon obstacle detection), enforce any appropriate Minimum Risk Condition (MRC), and / or perform any other suitable function.Additionally or alternatively, the low-level safety platform may generate its own output based on a set of inputs (e.g., by modifying the set of inputs based on sensor information, generating its own trajectory, determining a full stop trajectory, etc.), select one or more inputs to transmit, store one or more inputs (e.g., in temporary storage, permanent storage, etc.), evaluate one or more inputs (e.g., to ensure they are within a predetermined threshold, such as a time and / or distance threshold, since they were generated), and / or perform any other process.

[0067] The low-level safety platform preferably includes and / or is used in conjunction with a fallback controller (e.g., FIG. 7 ), which functions to store one or more motion plans (e.g., fallback plans, second set of outputs 106, received from the computing system in the nominal operating mode) and / or retrieve one or more motion plans (e.g., from past memory during the nominal operating mode or when operating in the fallback mode), and optionally generate instructions (e.g., a trajectory, a set of waypoints, etc.) based on the stored fallback plans, and to transmit instructions related to the fallback plans. Instructions here may refer to any or all of a trajectory, a path (e.g., a polynomial path), a set of positions (e.g., a set of waypoints), a set of control commands for actuators of the vehicle (e.g., to reach a destination, to follow a path, to follow a set of points, to stop, to perform MRC, etc.), and / or any other suitable information related to the traveling of the vehicle. The fallback controller is preferably an embedded controller (e.g., embedded within the low-level safety platform), but may also be an auxiliary controller separate from the computing system's primary controller (e.g., a controller packaged in a separate module, communicatively separated, dependent on a separate processing system, etc.), a secondary controller (e.g., a controller duplexed with the primary autonomous controller), and / or any other suitable fallback controller.

[0068] In certain examples, the (embedded) fallback controller is not configured to perform vehicle path planning or trajectory generation, although the fallback controller may additionally or alternatively be configured to generate instructions (e.g., control commands, paths, trajectories, etc.) based on a high-level guidance plan (e.g., waypoints, vehicle path plans, etc.), modify the maneuver / path plan (e.g., perform a full stop in response to detection of an obstacle), and / or perform any other suitable action.

[0069] Additionally or alternatively, the low-level safety platform and / or one or more controllers therein may be operable to implement software algorithms and / or machine learning techniques that aid in the functions of the controller, such as feature detection / classification, obstacle mitigation, path traversal, mapping, sensor integration, ground truth determination, and / or enable any other suitable functionality. The controller may include any suitable software and / or hardware components (e.g., a processor and computer readable storage) utilized to generate control signals for controlling the autonomous agent in accordance with the autonomous agent's routing goals and the autonomous agent's selected behavioral policy and / or selected trajectory.

[0070] Additionally or alternatively, the low-level safety platform may include multiple (embedded) fallback controllers (e.g., communicating with each other for redundancy). As an example, the low-level safety system may include an array of redundant fallback controllers arranged in parallel, each of which may be redundantly connected to any suitable vehicle control endpoint. Additionally or alternatively, the low-level safety platform may include any suitable controller (e.g., microcontroller), processor (e.g., microprocessor), and / or any suitable component having any suitable functionality.

[0071] The system (and / or its lower-level safety platform) may optionally include or use in conjunction with (e.g., in communication with) a watchdog (a.k.a., a verification or validation module) that functions to detect a fallback event (e.g., satisfaction of a fallback condition) and, in response, transition the autonomous agent and / or the lower-level safety platform into a fallback mode (e.g., from a nominal operating mode). Additionally or alternatively, the watchdog may function to validate functionality of the autonomous operating system, that primary trajectory / control commands are being communicated over the communication system, and / or that a guidance plan (e.g., primary and / or fallback) meets a set of rules / conditions. However, the system and / or the lower-level safety platform may also opt out of the watchdog, which may be implemented in another node of the system (e.g., separate from both the computing system and the lower-level safety platform), and / or the lower-level safety platform may transition into the fallback mode in other ways.

[0072] However, the system may include any other suitable low-level safety platform.

[0073] Additionally or alternatively, the system may include any or all of a sensor fusion system, a positioning system (e.g., including position sensors of a sensor system), a guidance system, and / or any suitable components. In certain aspects, for example, the sensor fusion system synthesizes and processes sensor data and, together with a multi-policy decision module, predicts the presence, location, classification, and / or path of objects and characteristics of the autonomous agent's environment. In various embodiments, the sensor fusion system may function to incorporate data from multiple sensors and / or data sources, including, but not limited to, cameras, LIDAR, radar, infrastructure devices, remote data feeds (Internet-based data feeds), and / or any number of other types of sensors.

[0074] The positioning system processes the sensor data along with other data to determine the location of the autonomous agent relative to the environment (e.g., local position relative to a map, precise position relative to road lanes, vehicle heading, speed, etc.), which may serve to determine what behavioral policies are available to the autonomous agent (e.g., as described below). The guidance system processes the sensor data along with other data to determine the path the vehicle should follow.

[0075] The system may optionally interface with a teleoperator platform 180 that references one or more remote teleoperators and associated components (e.g., communication interfaces with autonomous agents, computing systems, output devices for displaying information from the autonomous agents and / or infrastructure devices to the teleoperator, input devices for receiving instructions / commands from the teleoperator, etc.). The teleoperator platform may function to receive inputs from the teleoperator, which may be used at least in part in determining a curated behavior policy for the vehicle.

[0076] In a first aspect of the system 100, the system includes a low-level safety platform in communication with a vehicle's computing system and a vehicle communication network, where the low-level safety platform sends a first set of outputs 104 (e.g., a primary plan / trajectory) from the computing system to the vehicle communication network, where the first set of outputs (and / or actuator control commands associated with the first set of outputs) are then sent to the vehicle's drive-by-wire control system, and where, when a trigger condition occurs (e.g., when the low-level platform loses communication with the computing system, when the low-level safety platform detects inconsistencies and / or errors in the trajectory and / or control commands (or any other instructions) sent by the computing system, etc.), the system sends the acquired trajectory from a second set of outputs 106 to the vehicle communication network.

[0077] In a second aspect of the system 100, the system includes a low-level safety platform in communication with a vehicle's computing system and a vehicle communication network, where the computing system transmits a first set of outputs 104 (e.g., a primary plan / trajectory) to the vehicle communication network (e.g., in a nominal operating mode), and then the first set of outputs (and / or actuator control commands associated with the first set of outputs) are transmitted to the vehicle's drive-by-wire control system (e.g., occurring in the primary operating mode), and transmits the obtained trajectory (or any other instructions) from a second set of outputs 106 to the vehicle communication network when a trigger condition occurs (e.g., when the low-level platform loses communication with the computing system, when the low-level safety platform detects inconsistencies and / or errors in the trajectory and / or control commands transmitted by the computing system, etc.) (e.g., occurring in a secondary operating mode, also referred to herein as a fallback operating mode).

[0078] In a particular example, the low-level secure platform includes one or more embedded controllers.

[0079] Additionally or alternatively, system 100 may include any other suitable components.

[0080] 4. Method As shown in FIG. 2, a method S200 for autonomous vehicle operation includes steps S210 of determining a set of inputs, S220 of storing any or all of the set of inputs, and S230 of assisting operation of an autonomous agent based on the set of inputs. The method functions to facilitate control of the autonomous agent and / or fallback operation of an autonomous agent mode. More preferably, the system 100 may function to enable operation of the vehicle in the event that the vehicle's computing system (e.g., the autonomous computing system) fails and / or loses communication capabilities. However, the method may function in other manners as well.

[0081] In an embodiment, method S200 may additionally or alternatively include any or all of the following steps: retrieving a stored input; selecting and / or validating an input; transmitting a first output (e.g., a first trajectory) to a communications network if communication with the computing system exists; transmitting a second output (e.g., a set of actuator control commands, a second trajectory, a set of waypoints, any other instructions, etc.) to a communications network if communication with the computing system is lost; and / or any other suitable process or processes performed in any suitable order. Additionally or alternatively, method 200 may include any or all of the processes described in any or all of U.S. Application No. 16 / 514,624, filed July 17, 2019 (U.S. Patent No. 10,564,641), U.S. Application No. 16 / 505,372, filed July 8, 2019 (U.S. Patent No. 10,614,709), U.S. Application No. 16 / 540,836, filed August 14, 2019, and U.S. Application No. 16 / 792,780, filed February 17, 2020, or any other suitable processes performed in any order, each of which is incorporated herein by reference in its entirety. Method 200 may be performed in system 100 as described above and / or in any other suitable system.

[0082] Method S200 is preferably performed continuously and / or repeatedly throughout operation of the autonomous agent, for example, for each selection step of the autonomous agent (e.g., at a preset frequency, such as for each decision-making step, 1-100 times per second, 20-30 times per second, less than 1 time per second, more than 100 times per second, etc.) and / or for each control step (e.g., for each actuator control output generation step). Additionally or alternatively, method S200 and / or any sub-elements therein may be performed at a preset frequency, in response to a trigger (e.g., detection of a change in the autonomous agent's environment, detection of a change in the autonomous agent's operating conditions, teleoperator input), at random time intervals, and / or at any other suitable time.

[0083] 4.1 Method - Determining the Set of Inputs S210 Method 200 includes a step S210 of determining a set of inputs, which function to determine inputs for vehicle control and / or to determine information for generating and / or selecting instructions for an agent (e.g., a trajectory, a path, a set of waypoints, control commands, etc.).

[0084] S210 is preferably performed continuously throughout method 200 (e.g., continuously throughout the agent's traversal of the route), but may additionally or alternatively be performed at any suitable point or points (e.g., as described above). Each of the sets of inputs is preferably received at the low-level secure platform and generated at the computing system, but may additionally or alternatively be received at any suitable component or components (e.g., the computing system) and / or generated by any suitable component or components (e.g., the low-level secure platform).

[0085] In an embodiment, the step S210 of determining the set of inputs may include determining a primary plan, determining a fallback plan, and determining a set of sensor inputs.

[0086] S210 may include determining a primary plan, which may optionally include generating the primary plan at the computing system and / or receiving the primary plan at the low-level secure platform (e.g., as a first set of outputs 104 of the computing system).

[0087] The primary plan may include and / or may be equivalently referred to herein as the first set of outputs 104, and may include and / or indicate any or all of a determined trajectory (or any other instructions) for the agent to follow a route (e.g., operational trajectory, operational waypoints) selected for the agent, vehicle control commands (e.g., associated with a trajectory of the first set of trajectories), and / or any other suitable instructions or outputs. The selected primary plan will preferably be along a pre-established route (e.g., a fixed route), such as in a use case where the ego-vehicle is configured to travel along one or more fixed routes (e.g., ferrying passengers along a shuttle route), but may additionally or alternatively be a dynamically determined route and / or any combination.

[0088] The primary plans are preferably received (e.g., when they are generated, at a preset frequency, for each selection cycle) at the vehicle control system for operating the vehicle as a series of outputs (e.g., control commands determined according to the trajectory) from the computing system and / or vehicle communication network, each of the outputs indicative of and / or associated with an optimal and / or routine trajectory of the agent (e.g., as determined by the autonomous computing system based on the agent's route). Additionally or alternatively, the primary plans may optionally be received at a low-level safety platform (e.g., before being sent to the vehicle control system).

[0089] The primary plan is preferably determined continuously (e.g., at a pre-set frequency, every selected cycle, when it is generated, etc.) in a nominal operating mode (e.g., at the computing system, at the lower-level secure platform, while the lower-level secure platform is in communication with the computing system, while the computing system is operating), but may additionally or alternatively be determined and / or received at any suitable point or points in time and / or in response to any suitable trigger.

[0090] The primary plan is preferably determined as a first set of outputs of the computing system (and / or actuator control commands associated with the first set of outputs) based on inputs from the system and any or all of the following: sensor inputs from a set of sensors (e.g., a sensor suite), a selected route for the agent, a map (e.g., a map showing the selected route, a map showing other available routes, a map showing all possible routes, etc.), a behavior policy (e.g., a behavior policy determined according to a multi-policy decision-making module), and / or any other suitable inputs. Additionally or alternatively, the primary plan may be determined based on an ego-vehicle state estimate and a (current) environment representation (e.g., identifying a set of agents and / or objects in the autonomous agent's environment) of the computing system and / or an autonomous computing sub-module therein. Additionally or alternatively, the first set of outputs may be determined in other ways based on any suitable inputs. As an example, the primary plan may be determined according to the systems and / or methods described in U.S. Application No. 16 / 514,624, filed July 17, 2019, and U.S. Application No. 16 / 792,780, filed February 17, 2020, each of which is incorporated herein by reference in its entirety.

[0091] In a preferred embodiment, the primary plan is not transmitted to the lower level secure platform.

[0092] In an alternative example, S210 may include receiving the primary plan at a low-level safety platform.

[0093] However, the primary schedule may be determined in any other suitable manner as part of S210.

[0094] S210 may include determining a fallback plan (equivalently referred to herein as a secondary plan), which may be utilized when the primary plan is unavailable and / or in response to detection of a fallback event. The fallback plan is preferably generated at a high-level safety platform of the computing system (e.g., a fallback planner of the computing system) and provided to the low-level safety platform (e.g., as a second set of outputs for computing systems where the first set of outputs is not provided, as a second set of outputs for computing systems where the first set of outputs is also provided, etc.). The fallback plan is preferably determined contemporaneously with the primary plan (e.g., in parallel, consecutively, in an overlapping period, within a predefined time threshold of generation, based on the same set of inputs received at the computing system, etc.), such that either the primary plan (and / or corresponding motion trajectory) or the fallback plan (and / or corresponding fallback trajectory) may be implemented for the agent at associated time points and / or time ranges. Additionally or alternatively, the fallback plan may be determined periodically (e.g., at the same frequency as the primary plan, at a different frequency relative to the primary plan), synchronously with the primary plan, asynchronously with the primary plan, and / or at any other suitable time. The fallback plan may optionally be received contemporaneously (e.g., in the same data packet) with the associated trajectories of the first set of outputs at the lower-level safety platform (e.g., in parallel; consecutively; within a pre-set time threshold shorter than 30 seconds, 20 seconds, 10 seconds, 5 seconds, 1 second, 0.5 seconds, 100 milliseconds, 50 milliseconds, 10 milliseconds, or 1 millisecond, etc.), but may additionally or alternatively be received at the lower-level safety platform at any suitable time. Alternatively, the fallback plan may be received at the lower-level safety platform in the absence of a primary plan.

[0095] In an embodiment, determining the fallback plan may include determining a set of navigational edges, classifying the navigational edges, and generating a fallback plan based on a state of the ego-vehicle and the navigational edges in response to the classification of the navigational edges.

[0096] Navigational edges (equivalently referred to herein as states and / or safe states) preferably refer to locations where the ego-vehicle can stop (e.g., safely stop, stop for at least a predetermined time, re-enter the road after stopping, safely release passengers) and / or other locations that can be occupied (e.g., locations defined on a map). Navigational edges can be pre-set (e.g., at known static locations on a map), dynamically determined (e.g., at a fixed distance from the vehicle, dynamically determined based on the computing system's current representation of the environment, dynamically generated using a neural network), received from a remote endpoint (e.g., received from a teleoperator platform, etc.), determined according to a set of pre-defined rules / heuristics, and / or determined in any other manner as appropriate. Navigational edges are preferably navigational targets (e.g., points, regions, line segments, etc.) along infrastructure boundaries of the environment (e.g., either side of the vehicle's current lane, shoulders of a highway, vertices of intersection corners, roadways or side roads intersecting the current road, parking lots, parking spots, etc.), but may be any other suitable edges or targets. In certain examples, navigational edges may be evaluated at edges of the current lane and / or road at a preset set of distances from the vehicle, reducing required computations by minimizing the search space.

[0097] A navigational edge may be scored and / or classified (e.g., tagged as available) based on the current environmental representation and / or the current vehicle state. As an example, a navigational edge may be considered "available" if the vehicle can slow down, stop, and / or enter a holding pattern at the navigational edge without unduly impeding traffic (e.g., completely blocking a lane so that cars pass on one and / or both sides, braking beyond a predefined threshold, etc.). As an example, a navigational edge may be considered "available" if it is within an intersection (and / or within a predefined minimum distance from an intersection, such as the "d" shown in FIG. 9A). intersection "), if another agent occupies it (e.g., has intent for the corresponding area of ​​the road), if it is within the crosswalk and / or within a minimum distance of the crosswalk (e.g., within the average vehicle stopping distance, within the monitored vehicle stopping distance, within the vehicle length, within 10-30 feet, within 50 feet, within a stopping distance calculated based on the road's speed limit and the most extreme braking acceleration, as shown in Figure 9A as "d aftercrosswalk " or "d beforecrosswalk ", etc.) (e.g., whereby visibility of the crosswalk is limited by another vehicle approaching the crosswalk, e.g., as shown in FIG. 9B ), within and / or within a threshold distance (e.g., 10-30 feet, 50 feet, etc.) of a railroad crossing or other landmark (e.g., a bus stop), if a braking threshold and / or stopping distance must be exceeded in order for the ego-vehicle or other vehicles to safely navigate the environment, if another vehicle (e.g., another autonomous vehicle) is occupying or planning to occupy the edge and / or area, and / or if it does not meet a minimum passing clearance.

[0098] Navigational edges may be further classified and / or selected based on a classification model (e.g., a heuristic classifier, a decision tree, etc.) and / or using a set of multi-policy evaluations, static constraints, dynamic constraints, collision constraints (e.g., one or more agents in the environmental representation have intent for the navigational edge and / or are associated with a state estimate that is likely to result in a collision, one or more objects intersect), vehicle kinematic constraints (e.g., actuator limitations), minimum distance constraints (e.g., as a function of proximity to the vehicle, current vehicle speed), and / or any other suitable evaluations / criteria.

[0099] In an embodiment, an example of which is shown in FIG. 6, the fallback planner of the high-level safety platform may classify states as available based on a classification of initial available states (e.g., assuming that other agents in the environment are stationary within the planning period (e.g., between the generation of the fallback plan and the execution of the corresponding maneuver)), generate a fallback plan (e.g., as a polynomial path, a set of waypoints, etc.) for each navigational edge (e.g., a polynomial path between the current vehicle poses that terminate at the navigational edge), and select a fallback plan based on a dynamic comparison of the resulting maneuvers / trajectories. As an example, the fallback planner may select a fallback plan that does not exceed maximum braking constraints and / or maximum steering constraints.

[0100] The fallback plan (e.g., generated by a computing system) may include high-level guidance such as waypoints, kinematic trajectories, position targets, paths (e.g., smooth paths, polynomial paths, etc.), low-level control commands (e.g., trajectories, actuator control instructions, etc.), and / or any other suitable information. In a preferred set of aspects, the fallback plan includes a set of waypoints that are determined (e.g., in the fallback plan evaluation block of FIG. 6 ) based on a polynomial fallback trajectory designed to connect the vehicle's current position to the identified navigational edges. In a particular set of examples of this preferred set of aspects, the primary plan is a different data type than the fallback plan (e.g., a trajectory and / or path rather than a set of waypoints, etc.). Additionally or alternatively, the primary plan and the fallback plan may be the same data type or types.

[0101] In a particular example, the fallback plan (fallback maneuver) can be generated as a sequence of polynomials (e.g., 7th order polynomials, polynomials less than 7th order, polynomials greater than 7th order, 1st to 10th order polynomials, 5th to 10th order polynomials, etc.) to lean towards available near side edges, where the near side is the side having the same traffic direction as the vehicle (left or right).

[0102] In an embodiment, the fallback plan may optionally include or be associated with an expiration parameter and / or condition that specifies limited use for implementing the fallback plan (e.g., a safety trajectory, control commands associated with the safety trajectory, etc.). This preferably serves to prevent use of outputs that do not accurately represent the user's current environment (e.g., if the computing system failed too long ago). Additionally or alternatively, the expiration parameter may perform any other suitable function. The expiration parameter preferably includes and / or specifies a threshold time and / or distance during which the output of the second set of outputs (equivalently referred to herein as the second output) may be used (e.g., from the time of generation, from the time of receipt, etc.), but may additionally or alternatively specify multiple parameters and / or any other suitable parameters. Alternatively, the fallback plan may exclude an expiration parameter (e.g., when the fallback plan is replaced and / or updated via a subsequent determination of the fallback plan at a later time step, etc.).

[0103] However, the fallback plan may also be appropriately determined in other ways.

[0104] S210 may optionally include determining a set of sensor inputs that can be used to validate the operation plan (e.g., the primary plan and / or the fallback plan) and / or that can facilitate guidance of the autonomous agent according to the fallback plan. The sensor inputs are preferably generated by a sensor suite and received at the low-level safety platform (e.g., directly, by a vehicle communication network, and not via a computing system).

[0105] The set of sensor inputs may be used for any or all of enforcing and / or verifying a trajectory (e.g., to ensure that the safety trajectory does not collide with any object), selecting a trajectory, determining a new trajectory (e.g., if the available trajectory is an empty set), and / or function to perform any other suitable processing. The set of sensor inputs received at the low-level safety platform is preferably received from a subset of the total set of sensors (e.g., only encoders and IMUs, only a particular view of the sensors, such as a particular subset of LIDAR sensors, etc.), but may additionally or alternatively be received from the entire sensor system (e.g., all sensors, all types of sensors, such as upon redirection of the set of sensor inputs from a computing system to the low-level safety platform), and / or any other suitable inputs. In certain examples, the set of sensor inputs received by the low-level safety platform may include odometry sensor inputs (e.g., GPS velocity and / or inertial sensor measurements), time-of-flight sensor inputs (e.g., Lidar, radar, "bumper" sensors, etc.), and / or any other suitable inputs. Additionally or alternatively, the low-level safety platform may operate in the absence of sensor information (e.g., where feedback control is deferred to downstream control endpoints and / or computational nodes, etc.). The set of sensor inputs may be received independently of a fallback plan (e.g., continuously), in conjunction with a fallback plan, in response to a trigger (e.g., entering a fallback operational mode), continuously, and / or at any other suitable time (e.g., as described above).

[0106] In a preferred embodiment, the low-level safety platform receives input from sensors configured to determine the location (e.g., position, attitude, etc.) of the agent, such as input from one or more encoders and / or inertial measurement units (IMUs).

[0107] In a first aspect, S210 includes receiving, at a low-level safety platform, a fallback plan (eg, waypoints and / or corresponding fallback trajectories) and, optionally, one or more sensor inputs.

[0108] In a second aspect, S210 includes receiving, at a low-level safety platform, a primary plan (e.g., a motion trajectory) and a fallback plan (e.g., waypoints and / or corresponding fallback trajectories), and optionally one or more sensor inputs.

[0109] In an embodiment, the input may additionally include an ego-vehicle pose estimate (e.g., a localized ego-vehicle reference frame) and / or an environment representation (e.g., a set of agents / objects; in the ego-vehicle reference frame), as determined by the computing system.

[0110] However, the input may be suitably determined and / or received in other manners.

[0111] 4.2 Method - Storing any or all of a set of inputs S220 The method S200 may include a step S220 of storing any or all of the set of inputs, thereby serving to maintain a persistently available fallback plan (and / or a fallback trajectory associated therewith) that can be implemented in the event of a computing system failure.

[0112] S220 preferably includes storing the fallback plan, but may additionally or alternatively include storing any or all of the other inputs. The fallback plan is preferably stored in a memory of the low-level safety system and / or in a memory local to the system (e.g., memory accessible independent of the primary computing system), but the fallback plan may additionally or alternatively be stored and / or verified remotely and / or otherwise suitably stored.

[0113] In the first set of aspects, the expiration parameter is further preferably stored together with its associated fallback plan (e.g., actuator control commands, safety trajectories, etc.), but may additionally or alternatively not be stored, be stored separately, and / or be stored in other manners.

[0114] In a second set of aspects, the fallback plan may be updated and / or replaced upon receipt and / or verification of a subsequent fallback plan (eg, from a computing system and / or a communications interface).

[0115] The fallback plan (and / or any other inputs) is preferably stored temporarily (e.g., cached in a short-term storage area), but may additionally or alternatively be stored permanently, transmitted to a storage site (e.g., a remote server), and / or stored and / or used in other ways. S220 may optionally include deleting and / or replacing past plans / trajectories of the second set of outputs based on any or all of a preset number (e.g., 2, 3, 4, 5, more than 5, etc.) of outputs, a preset amount of storage, replacing each past second output with a new second output, expiration of an expiration parameter, and / or any other suitable information. In some aspects, S220 may include checking (e.g., periodically, after each receipt of a safety trajectory, etc.) any or all of the stored expiration parameters to satisfy a set of one or more threshold conditions (e.g., an upper time threshold, an upper distance threshold, an odometry uncertainty threshold, etc.), and if a threshold condition is satisfied, the associated second output may be deleted and / or excluded from consideration in subsequent processes of the method.

[0116] In a first aspect, S220 includes storing each of the second set of outputs in storage associated with the low-level safety platform (e.g., storage of an embedded controller), and optionally, past versions of the second set of outputs can be deleted from the storage in response to one or more triggers.

[0117] However, the input may be suitably stored in other ways.

[0118] 4.3 Method - Facilitating the Action of an Autonomous Agent Based on a Set of Inputs S230 Method S200 may include a step S230 of facilitating operation of the autonomous agent based on the set of inputs, which serves to enable operation of the autonomous agent that can recover from all or nearly all types of agent failures, such as failure of the autonomous agent's computing system and / or loss of communication. Additionally or alternatively, S230 may serve to enable the autonomous agent to follow a route, to enable the autonomous agent to implement a special fallback plan and / or set of control commands configured for the current (and / or most recent) environment and / or agent behavior / actions (e.g., approaching a left turn at an intersection, driving in the right lane on a highway, approaching a stop light, etc.), and / or to perform any other suitable function. S230 is preferably performed via the agent's drive-by-wire control system, but may additionally or alternatively be performed using any suitable control system or systems.

[0119] S230 may include selectively operating the system (and / or its lower-level safety platform) (sending a set of outputs to the communications network based on the operating mode) between a primary mode (e.g., a primary plan is implemented) and a fallback mode (e.g., a fallback plan is implemented), where in the primary mode, S230 facilitates operation of the vehicle based on the primary plan (e.g., determined in S210), and in the fallback mode, S230 assists operation of the vehicle based on the stored fallback plan.

[0120] S230 may include transitioning between the primary mode and the fallback mode based on a determination of one or more fallback conditions, such as by a watchdog (a.k.a., a verification module) of the low-level safety platform. The fallback condition may be determined in response to detecting a lack of input from the computing system (e.g., after an estimated time of arrival has passed, after a preset period of time has passed, etc.), which may indicate that the computing system has failed. Additionally or alternatively, fallback conditions may be determined based on an active determination that the computing system has failed and / or its output is unreliable (e.g., from a set of sensor systems and / or health monitors, in response to alerts and / or messages, etc.; via a watchdog monitoring the health of outputs 104 and / or 106, etc.); in response to another system component (e.g., a sensor system) failing; in response to detecting one or more data inconsistencies (e.g., in an upstream data source); in response to particular situations and / or circumstances (e.g., emergency vehicles such as ambulances and / or fire engines detected nearby, abnormal situations such as failures and / or edge cases, etc.); and / or at any other suitable time and / or under any other motivating conditions for the agent to reach a minimum risk condition.

[0121] In embodiments, instructions (e.g., a trajectory, a set of waypoints, etc.) corresponding to a primary plan or a fallback plan (e.g., generated by a computing system, a low-level safety platform, etc.) may be transmitted to a control system (e.g., a drive-by-wire system) of the agent and / or any other suitable component of the system. The instructions are preferably either a plan associated with the first set of outputs 104 (e.g., a primary plan, a trajectory, etc.) or the second set of outputs 106 (e.g., a fallback plan, a set of waypoints, etc.), but may additionally or alternatively include a different plan (e.g., a corrective trajectory determined based on the trajectory of the second set of outputs), other control commands, other information, and / or any other suitable instructions for navigating the ego-vehicle.

[0122] In one set of aspects, an example of which is shown in FIG. 8 , S230 may include detecting (e.g., with a watchdog) that there is communication with the computing system, and in response, controlling the system in a first operating mode by sending a first set of output instructions (e.g., an updated trajectory) to the communications network, which serves to provide (via the communications network) to the control system a normal operating trajectory along the agent's route when the computing system is operating. S230 may further include detecting a loss of communication with the computing system and, in response, controlling the system in a fallback operational mode by transmitting instructions (e.g., a set of waypoints, etc.) associated with a second set of outputs (e.g., a fallback plan) to the communications network, which functions to provide a trajectory and / or position (e.g., waypoints) and / or control commands to the control system configured to safely operate the vehicle (e.g., pull over, continue driving if unable to pull over, terminate operation and then pull over or stop, operate safely until the computing system is operational, reach a safe state / navigational edge, etc.) in the event of an emergency (e.g., computing system failure). Additionally or alternatively, S230 may function to ensure that a selected output of the second set of outputs can be safely implemented (e.g., based on its associated expiration parameter, based on an obstacle detection routine, etc.) and / or perform any other suitable function.

[0123] In some aspects, supporting operation in the fallback mode may optionally include checking an expiration parameter of the most recent secondary output (e.g., a set of waypoints, a set of control commands, a safety trajectory, etc.), and if the most recent secondary output has not expired, the corresponding trajectory is passed to the communications network.

[0124] Additionally or alternatively, S230 may optionally include validating the second output (e.g., based on sensor input to ensure that the agent does not encounter an obstacle), modifying the second output (e.g., based on sensor input), generating a new set of waypoints and / or trajectory and / or set of control commands (e.g., if all safe trajectories have expired, based on sensor input), and / or any other process.

[0125] Additionally or alternatively, supporting operation in the fallback mode may include selecting among multiple viable second output options (e.g., multiple safety trajectories if multiple trajectories have not expired) and / or any other suitable process.

[0126] Additionally or alternatively, supporting operation in the fallback mode may include triggering any other process, such as triggering receipt of a set of sensor inputs (e.g., as described above). In some aspects, for example, in response to detecting a failure of the computing system, the lower-level safety platform may trigger additional receipt and / or forwarding to the lower-level safety platform of sensor inputs normally received at the computing system and / or a subset of these sensor inputs (e.g., some subset of LIDAR sensors, sensors from only the relevant view of the agent, etc.). Additionally or alternatively, S230 may be performed in the absence of sensor inputs, when sensor inputs are already being received (e.g., when sensor inputs are being continuously received), and / or S230 may include any other suitable process.

[0127] S230 may additionally or alternatively include any other suitable processes and / or may be performed in other suitable manners.

[0128] However, the method may include any other suitable elements and / or may support fallback planning and control in other ways.

[0129] 4.5 Method-Variations In a first aspect of method 200 (e.g., as shown in FIG. 2, as shown in FIGS. 3A and 3B, etc.), the method includes receiving a set of inputs from a computing system at a low-level safety platform, the set of inputs including a second output (e.g., a safety trajectory, a set of waypoints configured to reach a nearest navigational edge, a set of unprocessed actuator control commands determined based on the set of waypoints, etc.), and optionally an expiration parameter associated with the second output; storing the second output and its expiration parameter; transmitting the second output to a communications network if communication with the computing system is lost and / or another trigger is activated; and operating an autonomous agent based on the output transmitted to a control system (e.g., a drive-by-wire control system) via the communications network.

[0130] In a second aspect of method 200 (e.g., as shown in FIG. 2, as shown in FIGS. 3A and 3B, etc.), the method includes receiving, at a low-level safety platform, a set of inputs from a computing system, the set of inputs including a first output (e.g., an operating trajectory), a second output (e.g., a safety trajectory, a set of unprocessed actuator control commands, etc.), and an expiration parameter associated with the second output; storing the second output and its expiration parameter; transmitting the first output to a communications platform when communication with the computing system exists; transmitting the second output to a communications network when communication with the computing system is lost and / or another trigger is activated; and operating an autonomous agent based on the output transmitted to a control system (e.g., a drive-by-wire control system) via the communications network.

[0131] Alternative embodiments implement the above methods and / or process modules in a non-transitory computer readable medium that stores computer readable instructions. The instructions may be executed by computer executable components integrated with the computer readable medium and / or processing system. The computer readable medium may include any suitable computer readable medium, such as RAM, ROM, flash memory, EEPROM, optical devices (CD or DVD), hard drives, floppy drives, non-transitory computer readable media, or any suitable device. The computer executable components may include a computing system and / or processing system (e.g., including one or more co-located or distributed, remote or local processors) connected to the non-transitory computer readable medium, such as a CPU, GPU, TPUS, microprocessor, or ASIC, although the instructions may alternatively or additionally be executed by any suitable dedicated hardware device.

[0132] Embodiments of the systems and / or methods may include any combination and permutation of the various system components and various method processes, and one or more instances of the methods and / or processes described herein may be performed asynchronously (e.g., sequentially), contemporaneously (e.g., simultaneously, in parallel, etc.), or in any other suitable order and / or by and / or using one or more instances of the systems, elements and / or entities described herein. The following system and / or method components and / or processes may be used with, in addition to, instead of, or otherwise integrated with all or a portion of the systems and / or methods disclosed in the above-listed applications, each of which is incorporated by reference in its entirety.

[0133] Those skilled in the art, as will be appreciated from the foregoing detailed description and drawings and claims, may make modifications and variations to the preferred embodiments of the invention without departing from the scope of the invention as defined in the following claims.

Claims

1. 1. An autonomous fallback method for a vehicle, comprising: Receiving input data including sensor data from a sensor suite onboard an autonomous vehicle and an ego-state of said autonomous vehicle; Based on the input data - determining a primary plan at an autonomous computing system; - determining a secondary plan at said autonomous computing system, Determining a set of candidate navigational edges; Classifying navigational edge candidates as available; and generating a secondary plan based on the ego-vehicle state and the navigational edge candidates based on classifying the navigational edges as available; storing said quadratic plan in a memory coupled to an embedded controller; - autonomously controlling the vehicle based on said primary plan; determining, while autonomously controlling the vehicle based on the primary plan, whether a trigger condition is satisfied, and responsively, autonomously controlling the vehicle based on the secondary plan with the embedded controller; The method, wherein the embedded controller is within a low-level safety platform communicatively connected to the autonomous computing system and a vehicle communication network.

2. 10. The method of claim 1 , The method of claim 1, further comprising updating the secondary plan based on satisfaction of an expiration condition of the secondary plan while controlling the vehicle based on the primary plan.

3. 10. The method of claim 1 , while controlling the vehicle based on the secondary plan; - estimating the attitude of the host vehicle using odometry; - detecting obstacles along a path of the vehicle corresponding to the secondary plan by a set of secondary sensors based on the attitude of the ego-vehicle; - performing a full stop upon detection of an obstacle.

4. 4. The method of claim 3, The method, wherein the set of secondary sensors includes a time-of-flight sensor of a vehicle sensor suite.

5. 10. The method of claim 1 , A method, characterized in that the classification of availability states is based on a map.

6. 10. The method of claim 1 , The method of claim 1, wherein the input data includes an environment representation identifying a set of agents, and the classification of available states is based on an occupancy prediction corresponding to each agent in the set.

7. 7. The method of claim 6, A method characterized in that each agent is assumed to be stationary within the planning horizon.

8. 10. The method of claim 1 , A method according to claim 1, wherein the classification of availability is based on the size of the host vehicle and on the satisfaction of minimum passing clearances.

9. 10. The method of claim 1 , The method of claim 1, wherein the set of navigational edge candidates is determined at a predetermined set of distances relative to an ego vehicle position.

10. 10. The method of claim 1 , The method further comprising selecting a navigational edge from among a plurality of available navigational edges based on at least one of a collision constraint, a kinematic constraint, and a minimum distance constraint.

11. 10. The method of claim 1 , The method, wherein the trigger condition includes a loss of communication between the autonomous computing system and a validation endpoint.

12. 12. The method of claim 11, The method, wherein the validation endpoint comprises a vehicle communication network node.

13. 10. The method of claim 1 , The method, wherein autonomously controlling a vehicle based on the primary plan includes providing a trajectory to a vehicle control system via the low-level safety platform and the vehicle communication network.

14. 1. A system for an autonomous vehicle, comprising: a first computing system communicatively coupled to a first set of vehicle sensors, - determining an ego-vehicle state estimate and an environment representation based on measurements from the first set of vehicle sensors; - determining a primary plan based on said ego-vehicle state estimation and an environment representation; and - configured to determine a quadratic plan, said determining of said quadratic plan being Determining a set of navigational edges; Classifying a navigational edge as available; and - a first computing system that generates a secondary plan based on the ego-vehicle state and the navigational edge in response to the classification of the navigational edge as an available state; a second computing system including an embedded controller, - receiving the secondary plan from the first computing system; - storing said quadratic plan in a memory of said embedded controller; and a second computing system configured to, in response to determining satisfaction of a trigger condition, use the embedded controller and a second set of sensors to assist in controlling the vehicle based on the secondary plan; The system, wherein the embedded controller is within a low-level safety platform communicatively connected to the first computing system and a vehicle communication network.

15. 15. The system of claim 14, the second computing system selectively relaying the primary trajectory to a vehicle control system over a vehicle communications network to assist in controlling the vehicle based on the primary plan.

16. 15. The system of claim 14, the first computing system is further configured to update the secondary plan based on satisfaction of an expiration condition of the secondary plan while the vehicle is being controlled based on the primary plan.

17. 15. The system of claim 14, Assisting in control of the vehicle based on the secondary plan; - Estimating the attitude of the vehicle using odometry; - detecting obstacles along a trajectory based on the attitude of the ego-vehicle by a second set of sensors; and A system including assisting in performing a complete stop based on detection of an obstacle.

18. 15. The system of claim 14, The system, wherein the input data includes an environment representation identifying a set of agents, the classification of available states is based on occupancy predictions corresponding to each agent of the set, and each agent is assumed to be stationary within a planning horizon.

19. 15. The system of claim 14, A system characterized in that the classification of available states is based on the dimensions of the vehicle and satisfaction of minimum passing clearances.

Citation Information

Patent Citations

  • Drive supporting apparatus

    JP2009078735A

  • Vehicle evacuation device and vehicle evacuation method

    JP2018144720A

  • Trajectory Generation and Execution Architecture

    JP2020509963A

  • Vehicle control device

    WO2018134901A1