System for extending the functionality of hypotheses generated by a symbol / logic-based inference system

By introducing an inference engine and a plot memory into autonomous vehicles, and combining abductive and deductive reasoning methods, the problem of decision delay in autonomous vehicles with incomplete information in existing technologies is solved, and faster and more accurate traffic condition processing is achieved.

CN114519428BActive Publication Date: 2026-05-01GM GLOBAL TECHNOLOGY OPERATIONS LLC
View PDF 3 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
GM GLOBAL TECHNOLOGY OPERATIONS LLC
Filing Date
2021-05-10
Publication Date
2026-05-01

AI Technical Summary

Technical Problem

Existing symbolic or logical reasoning-based systems are unable to flexibly handle incomplete information and unexpected situations when dealing with traffic conditions of autonomous vehicles, leading to decision delays or errors.

Method used

The system uses an inference engine to infer multiple possible scenarios, employs historical and logic-based probabilities to select the optimal scenario, and combines abductive and deductive reasoning methods with a plot memory and controller to enable autonomous vehicle operation.

Benefits of technology

It improves the decision-making accuracy and reaction speed of autonomous vehicles under conditions of incomplete information, and enhances their adaptability to complex environments.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114519428B_ABST
    Figure CN114519428B_ABST
Patent Text Reader

Abstract

A vehicle and a system and method of operating the vehicle. The system includes an inference engine, a scenario memory, a resolver, and a controller. The inference engine infers a plurality of possible scenarios based on a current state of an environment of the vehicle. The scenario memory determines a historical likelihood for each of the plurality of possible scenarios. The resolver selects a scenario from the plurality of possible scenarios using the historical likelihoods. The controller operates the vehicle in accordance with the selected scenario.
Need to check novelty before this filing date? Find Prior Art

Description

A system that extends the functionality of hypotheses generated by symbolic / logic-based reasoning systems. Technical Field

[0001] This subject matter disclosure relates to a system and method for operating an autonomous vehicle, and more specifically, to a system and method for selecting actions of an autonomous vehicle to generate possible scenarios based on current traffic conditions and evaluating the likelihood of each scenario. Background Technology

[0002] Cognitive processors can be used with autonomous vehicles to predict traffic patterns and / or conditions and propose trajectories. Cognitive processors can use various decision-making processes to achieve trajectories, including physics- or kinematic computation, statistical prediction, pattern recognition, and symbolic or logic-based reasoning. Current technologies used to drive symbolic or logic-based reasoning systems sacrifice generality when processing information. The binary assumptions generated by logical reasoning do not always reflect real-time traffic conditions and are inflexible to new or unexpected situations and incomplete environmental information. However, the presence of independent drivers in the vehicle environment can lead to unexpected events and conflicting data, all of which can slow down or halt logic-based reasoning systems. Therefore, it is desirable to provide a method for refining or expanding the results of logic-based reasoning to operate with incomplete information about the environment. Summary of the Invention

[0003] In one exemplary embodiment, a method for operating an autonomous vehicle is disclosed. Multiple possible scenarios are inferred based on the current state of the autonomous vehicle's environment. Historical probabilities are determined for each of the multiple possible scenarios. A scenario is selected from the multiple possible scenarios using the historical probabilities. The autonomous vehicle operates based on the selected scenario.

[0004] In addition to one or more features described herein, a logical probability is determined for each of a plurality of possible scenarios, and a scenario is selected from the plurality of possible scenarios based on historical probability and logical probability. The method also includes tokenizing scenarios and using the tokenized scenarios to determine the historical probability of those scenarios. The historical probability of a tokenized scenario is determined by determining the similarity between the tokenized scenario and one or more historical events in a database, and by determining the popularity of one or more historical events in the database. The method also includes determining a similarity percentage of the tokenized scenario based on a similarity metric between the tokenized scenario and one or more historical events. The method also includes inferring multiple possible scenarios based on incomplete or ambiguous measurements. Inferring multiple possible scenarios also includes applying one of abduction, deduction, and a combination of abduction and deduction to data indicating the current state of the environment.

[0005] In another exemplary embodiment, a system for operating an autonomous vehicle is disclosed. The system includes an inference engine, a scenario memory, a parser, and a controller. The inference engine infers multiple possible scenarios based on the current state of the autonomous vehicle's environment. The scenario memory determines historical probabilities for each of the multiple possible scenarios. The parser selects a scenario from the multiple possible scenarios using the historical probabilities. The controller operates the autonomous vehicle according to the selected scenario.

[0006] In addition to one or more features described herein, the system includes an inference evaluation engine configured to determine the logic-based probability of each of a plurality of possible scenarios, wherein the inference evaluation engine selects said scenarios from the plurality of possible scenarios based on historical probability and logic-based probability. The inference evaluation engine tokenizes scenarios, and the episode memory uses the tokenized scenarios to determine the historical probability of the scenarios. The episode memory determines the historical probability of a tokenized scenario by determining the similarity between the tokenized scenario and one or more historical events in a database and by determining the popularity of one or more historical events in the database. The episode memory determines the similarity percentage of a tokenized scenario based on a similarity metric between the tokenized scenario and one or more historical events. The inference engine infers multiple possible scenarios based on incomplete or ambiguous measurements. The inference engine infers multiple possible scenarios by applying one of abduction, deduction, and combinations of abduction and deduction to data indicating the current state of the environment.

[0007] In yet another exemplary embodiment, an autonomous vehicle is disclosed. The autonomous vehicle includes an inference engine, a plot memory, a parser, and a controller. The inference engine infers multiple possible scenarios based on the current state of the autonomous vehicle's environment. The plot memory determines historical probabilities for each of the multiple possible scenarios. The parser selects a scenario from the multiple possible scenarios using the historical probabilities. The controller operates the autonomous vehicle according to the selected scenario.

[0008] In addition to one or more features described herein, the vehicle includes an inference evaluation engine configured to determine the logic-based probability of each of a plurality of possible scenarios, wherein the inference evaluation engine selects a scenario from the plurality of possible scenarios based on historical probability and logic-based probability. The inference evaluation engine tokenizes scenarios, and the episode memory uses the tokenized scenarios to determine the historical probability of a scenario. The episode memory determines the historical probability of a tokenized scenario by determining the similarity between the tokenized scenario and one or more historical events in a database and by determining the popularity of one or more historical events in the database. The episode memory determines the similarity percentage of a tokenized scenario based on a similarity metric between the tokenized scenario and one or more historical events. The inference engine infers possible scenarios by applying one of abductive, deductive, or combinations of abductive and deductive reasoning to data indicating the current state of the environment.

[0009] The above-described features and advantages, as well as other features and advantages, of this disclosure will become apparent when taken in conjunction with the accompanying drawings and the following detailed description. Attached Figure Description

[0010] Other features, advantages, and details appear by way of example only in the following detailed description, which refers to the accompanying drawings, wherein:

[0011] Figure 1 illustrates an autonomous vehicle with a relevant trajectory planning system according to various embodiments;

[0012] Figure 2 illustrates a control system including a cognitive processor integrated with an autonomous vehicle;

[0013] Figure 3 is a schematic diagram illustrating several hypothesis generation methods suitable for deriving predictions for navigation systems used in autonomous vehicles;

[0014] Figure 4 shows a schematic diagram of the architecture of a cognitive processor employing an inference module;

[0015] Figure 5 shows a schematic diagram illustrating the operation of the inference module;

[0016] Figure 6 shows a block diagram of the system used to generate speculative scenarios based on measurements taken by various sensors of the vehicle, and to assess the likelihood of these scenarios.

[0017] Figure 7 illustrates an illustrative traffic situation in which the system in Figure 6 can be used to assess possible vehicle movements or trajectories.

[0018] Figure 8 illustrates possible scenarios that can be inferred based on the current knowledge of the traffic conditions in Figure 7; and

[0019] Figure 9 shows a diagram illustrating the historical possibilities of the various scenarios shown in Figure 8. Detailed Implementation

[0020] The following description is merely exemplary in nature and is not intended to limit this disclosure, its application, or use. It should be understood that in all the figures, corresponding reference numerals denote similar or corresponding parts and features. As used herein, the term module refers to processing circuitry, which may include application-specific integrated circuits, electronic circuitry, processors (shared, dedicated, or grouped), and memory executing one or more software or firmware programs, combinational logic circuitry, and / or other suitable components providing the described functionality.

[0021] Figure 1 illustrates an autonomous vehicle 10 with a relevant trajectory planning system depicted at 100, according to various embodiments. Typically, the trajectory planning system 100 determines a trajectory plan for autonomous driving of the autonomous vehicle 10. The autonomous vehicle 10 typically includes a chassis 12, a body 14, front wheels 16, and rear wheels 18. The body 14 is disposed on the chassis 12 and substantially encloses the components of the autonomous vehicle 10. The body 14 and the chassis 12 may collectively form a frame. Each of the front wheels 16 and rear wheels 18 is rotatably connected to the chassis 12 near a corresponding corner of the body 14.

[0022] In various embodiments, trajectory planning system 100 is integrated into autonomous vehicle 10. Autonomous vehicle 10 is, for example, a vehicle automatically controlled to transport passengers from one location to another. In the illustrated embodiment, autonomous vehicle 10 is depicted as a passenger car, but it should be understood that any other vehicle may be used, including motorcycles, trucks, sport utility vehicles (SUVs), recreational vehicles (RVs), etc. At different levels, autonomous vehicle can assist the driver in various ways, such as warning signals indicating impending hazards, indicators that enhance the driver's situational awareness by predicting the movement of other driving forces (warning of potential collisions, etc.). Autonomous vehicle has different levels of intervention or control over the vehicle, fully controlling all vehicle functions through coupled auxiliary vehicle controls. In exemplary embodiments, autonomous vehicle 10 is a so-called Level 4 or Level 5 automation system. Level 4 system means "high automation," referring to the performance of the automated driving system in a specific driving mode across all aspects of a dynamic driving task (even if the driver does not respond appropriately to intervention requests). Level 5 system means "full automation," referring to the full-time performance of the automated driving system across all aspects of a dynamic driving task under all road and environmental conditions that the driver can manage.

[0023] As shown in the figure, an autonomous vehicle 10 typically includes a propulsion system 20, a drivetrain 22, a steering system 24, a braking system 26, a sensor system 28, an actuator system 30, a cognitive processor 32, and at least one controller 34. In various embodiments, the propulsion system 20 may include an internal combustion engine, an electric motor such as a traction motor, and / or a fuel cell propulsion system. The drivetrain 22 is configured to transmit power from the propulsion system 20 to the front wheels 16 and the rear wheels 18 according to a selectable speed ratio. According to various embodiments, the drivetrain 22 may include a stepped automatic transmission, a continuously variable transmission (CVT), or other suitable transmission. The braking system 26 is configured to provide braking torque to the front wheels 16 and the rear wheels 18. In various embodiments, the braking system 26 may include friction brakes, brake-by-wire brakes, regenerative braking systems (such as electric motors), and / or other suitable braking systems. The steering system 24 affects the position of the front wheels 16 and the rear wheels 18. Although described for illustrative purposes as including a steering wheel, in some embodiments contemplated within the scope of this disclosure, the steering system 24 may not include a steering wheel.

[0024] Sensor system 28 includes one or more sensing devices 40a-40n that sense observable conditions of the external and / or internal environment of the autonomous vehicle 10. Sensing devices 40a-40n may include, but are not limited to, radio radar, lidar, GPS, optical cameras, thermal cameras, ultrasonic sensors, and / or other sensors. Sensing devices 40a-40n acquire measurements or data related to various objects or moving objects 50 within the vehicle's environment. Such moving objects 50 may be, but are not limited to, other vehicles, pedestrians, bicycles, motorcycles, etc., as well as non-moving objects. Sensing devices 40a-40n may also acquire traffic data, such as information about traffic signals and signs.

[0025] The actuator system 30 includes one or more actuator devices 42a-42n that control one or more vehicle features, such as, but not limited to, the propulsion system 20, the transmission system 22, the steering system 24, and the braking system 26. In various embodiments, the vehicle features may further include interior and / or exterior vehicle features, such as, but not limited to, doors, trunk, and cabin features, such as ventilation, music, lighting, etc. (not numbered).

[0026] The controller 34 includes at least one processor 44 and a computer-readable storage device or medium 46. The processor 44 can be any custom or commercially available processor, central processing unit (CPU), graphics processing unit (GPU), auxiliary processor among several processors associated with the controller 34, semiconductor-based microprocessor (in the form of a microchip or chipset), macroprocessor, any combination thereof, or any device typically used for executing instructions. The computer-readable storage device or medium 46 can include, for example, volatile and non-volatile memory (KAM) in the form of read-only memory (ROM), random access memory (RAM), and keep-alive memory (KAM). KAM is a permanent or non-volatile memory that can be used to store various operational variables when the processor 44 is powered off. The computer-readable storage device or medium 46 can be implemented using any of a variety of known storage devices, such as PROM (programmable read-only memory), EPROM (electrical PROM), EEPROM (electrically erasable PROM), flash memory, or any other electrical, magnetic, optical, or combined storage device capable of storing data, some of which represent executable instructions used by the controller 34 in controlling, navigating, and operating the autonomous vehicle 10.

[0027] The instructions may include one or more separate programs, each including an ordered list of executable instructions for implementing logical functions. When executed by processor 44, these instructions receive and process signals from sensor system 28, perform logic, calculations, methods, and / or algorithms for automatically controlling components of autonomous vehicle 10, and generate control signals to actuator system 30 to automatically control components of autonomous vehicle 10 based on logic, calculations, methods, and / or algorithms.

[0028] The controller 34 further communicates with the cognitive processor 32. The cognitive processor 32 receives various data from the controller 34 and the sensing devices 40a-40n of the sensor system 28, and performs various calculations to provide a trajectory to the controller 34 for implementation on the autonomous vehicle 10 via one or more actuator devices 42a-42n. A detailed discussion of the cognitive processor 32 is provided with reference to Figure 2.

[0029] Figure 2 illustrates an exemplary control system 200, which includes a cognitive processor 32 integrated with an autonomous vehicle 10. In various embodiments, the autonomous vehicle 10 may be a vehicle simulator that simulates various driving scenarios of the autonomous vehicle 10 and simulates various responses of the autonomous vehicle 10 to the scenarios.

[0030] The autonomous vehicle 10 includes a data acquisition system 204 (e.g., sensing devices 40a-40n of FIG. 1). The data acquisition system 204 acquires various data for determining the state of the autonomous vehicle 10 and various dynamic factors in its environment. This data includes, but is not limited to, kinematic data, position or attitude data of the autonomous vehicle 10, and data regarding other dynamic factors, including distance, relative velocity (Doppler), altitude, angular position, etc. As described below, the autonomous vehicle 10 also includes a transmitting module 206 that packages the acquired data and transmits the packaged data to an interface module 208 of the cognitive processor 32. The autonomous vehicle 10 also includes a receiving module 202 that receives operating commands from the cognitive processor 32 and executes the commands at the autonomous vehicle 10 to navigate the autonomous vehicle 10. The cognitive processor 32 receives data from the autonomous vehicle 10, calculates a trajectory for the autonomous vehicle 10 based on the provided state information and the methods disclosed herein, and provides the trajectory to the autonomous vehicle 10 at the receiving module 202. The autonomous vehicle 10 then implements the trajectory provided by the cognitive processor 32.

[0031] The cognitive processor 32 includes various modules for communicating with the autonomous vehicle 10, including an interface module 208 for receiving data from the autonomous vehicle 10 and a trajectory transmitter 222 for sending instructions (e.g., trajectories) to the autonomous vehicle 10. The cognitive processor 32 also includes a working memory 210 that stores various data received from the autonomous vehicle 10 and various intermediate computations of the cognitive processor 32. One or more hypothesizer modules 212 of the cognitive processor 32 are used to propose various hypothetical trajectories and movements for one or more drivers in the environment of the autonomous vehicle 10 using multiple possible prediction methods and state data stored in the working memory 210. A hypothesis resolver 214 of the cognitive processor 32 receives multiple hypothetical trajectories for each driver in the environment and determines the most probable trajectory for each driver from the multiple hypothetical trajectories.

[0032] The cognitive processor 32 also includes one or more decision-maker modules 216 and a decision parser 218. The decision-maker modules (one or more) 216 receive the most probable trajectory for each driver in the environment from the hypothesis parser 214 and calculate multiple candidate trajectories and behaviors for the autonomous vehicle 10 based on the most probable driver trajector trajectories. Each of the multiple candidate trajectories and behaviors is provided to the decision parser 218. The decision parser 218 selects or determines the optimal or desired trajectory and behavior for the autonomous vehicle 10 from the candidate trajectories and behaviors.

[0033] The cognitive processor 32 also includes a trajectory planner 220, which determines the autonomous vehicle trajectory provided to the autonomous vehicle 10. The trajectory planner 220 receives vehicle behavior and trajectory from the decision resolver 218, optimal hypotheses for each motivation 50 from the hypothesis resolver 214, and up-to-date environmental information in the form of "state data" to adjust the trajectory planning. This additional step at the trajectory planner 220 ensures that any anomalous processing delays in the asynchronous calculation of the motivation hypotheses are checked against up-to-date sensing data from the data acquisition system 204. This additional step accordingly updates the optimal hypotheses in the final trajectory calculation within the trajectory planner 220.

[0034] The trajectory planner 220 provides the determined vehicle trajectory to the trajectory transmitter 222, which in turn provides the trajectory message to the autonomous vehicle 10 (e.g., at the controller 34) for implementation at the autonomous vehicle 10.

[0035] The cognitive processor 32 also includes a modulator 230, which controls various constraints and thresholds for the hypotheser module 212 and the decision-maker module 216. The modulator 230 can also modify the parameters of the hypothesis resolver 214 to influence how it selects the optimal hypothesis target for a given motivation 50, decision-maker, and decision resolver. The modulator 230 is a discriminator that enables the architecture to adapt. The modulator 230 can alter the computations performed and the actual results of deterministic computations by changing the parameters of the algorithm itself.

[0036] The evaluator module 232 of the cognitive processor 32 calculates contextual information and provides it to the cognitive processor. This contextual information includes error measurements, hypothesis confidence measurements, measurements of environmental complexity and the state of the autonomous vehicle 10, and a performance evaluation of the autonomous vehicle 10 given environmental information, including motivational hypotheses and the autonomous vehicle's trajectory (historical or future). The modulator 230 receives information from the evaluator 232 to calculate changes in the processing parameters of the hypothesis generator module 212, hypothesis parser 214, and decision generator module 216, and provides threshold decision parsing parameters to the decision parser 218. The virtual controller 224 implements trajectory messages and, in response to these trajectories, determines feedforward trajectories for various motivations 50.

[0037] Modulation is performed in response to the uncertainty measured by evaluator module 232. In one embodiment, modulator 230 receives confidence levels associated with the hypothesis. These confidence levels may be collected from the hypothesis at a single point in time or within a selected time window. The time window may be variable. Evaluator module 232 determines the entropy of the distribution of these confidence levels. Furthermore, historical error measures of the hypothesis may be collected and evaluated in evaluator module 232.

[0038] These types of evaluations serve as measures of the internal environment and uncertainty of the cognitive processor 32. These contextual signals from the evaluator module 232 are used by the hypothesis resolver 214, the decision resolver 218, and the modulator 230, which can change the parameters of the hypothesis resolver module 212 based on the calculation results.

[0039] The various modules of the cognitive processor 32 operate independently of each other and are updated at separate update rates (e.g., indicated by LCM-Hz, h-Hz, d-Hz, e-Hz, m-Hz, t-Hz in Figure 2).

[0040] In operation, the interface module 208 of the cognitive processor 32 receives packaged data from the transmitting module 206 of the autonomous vehicle 10 at the data receiver 208a, and parses the received data at the data parser 208b. The data parser 208b places the data in a data format, referred to here as a property bag, which can be stored in the working memory 210 and used by various hypothesizer modules 212, decision-maker modules 216, etc., of the cognitive processor 32. The specific categorical structure of these data formats should not be considered a limitation of the invention.

[0041] Working memory 210 extracts information from a set of attribute packets during configurable time windows to construct snapshots of the autonomous vehicle and various drivers. These snapshots are published at a fixed frequency and pushed to a subscription module. The data structure created by working memory 210 from the attribute packets is a "state" data structure, which contains information organized according to timestamps. Therefore, the generated snapshot sequence contains dynamic state information of another vehicle or driver. The attribute packets in the selected state data structure contain information about the object, such as other drivers, autonomous vehicles, route information, etc. The attribute packet for an object contains detailed information about the object, such as the object's position, speed, heading angle, etc. This state data structure flows through the rest of the cognitive processor 32 for computation. State data can refer to the state of the autonomous vehicle and the state of the driver, etc.

[0042] The hypothesizer module 212 retrieves state data from the working memory 210 to calculate the possible outcomes of the drivers within the local environment over a selected time frame or time step. Alternatively, the working memory 210 may push state data to the hypothesizer module 212. The hypothesizer module 212 may include multiple hypothesizer modules, each employing a different method or technique to determine the possible outcomes of drivers (one or more). One hypothesizer module may use a kinematic model to determine the possible outcomes, applying fundamental physics and mechanics to the data in the working memory 210 to predict the subsequent state of each driver 50. Other hypothesizer modules may predict the subsequent state of each driver 50 by, for example, applying a regression tree to the data, applying a Gaussian mixture model / Markov mixture model (GMM-HMM) to the data, applying a recurrent neural network (RNN) to the data, other machine learning processes, performing logic-based reasoning on the data, etc. The hypothesizer module 212 is a modular component of the cognitive processor 32 and can be added to or removed from the cognitive processor 32 as needed.

[0043] Each hypothesizer module 212 includes a hypothesis class for predicting the behavior of a driver. The hypothesis class includes specifications for hypothesis objects and a set of algorithms. Once invoked, a hypothesis object is created for the driver from the hypothesis class. The hypothesis object follows the specifications of the hypothesis class and uses its algorithms. Multiple hypothesis objects can run in parallel with each other. Each hypothesizer module 212 creates its own prediction for each driver 50 based on the current working data and sends this prediction back to the working memory 210 for storage and future use. As new data is provided to the working memory 210, each hypothesizer module 212 updates its hypothesis and pushes the updated hypothesis back into the working memory 210. Each hypothesizer module 212 can optionally update its hypothesis at its own update rate (e.g., rate h-Hz). Each hypothesizer module 212 can act as a subscription service from which its updated hypotheses are pushed to the relevant modules.

[0044] Each hypothesis generated by the hypothesizer module 212 is a prediction in the form of a state data structure representing a time vector of a defined entity, such as position, velocity, or heading. In one embodiment, the hypothesizer module 212 may include a collision detection module that can modify the feedforward information flow associated with the prediction. Specifically, if the hypothesizer module 212 predicts a conflict between two drivers 50, it can invoke another hypothesizer module to adjust the hypothesis to account for the anticipated conflict, or send warning signals to other modules to attempt to mitigate the hazardous scenario or change behavior to avoid it.

[0045] For each motivation 50, hypothesis parser 214 receives the associated hypothesis objects and selects a single hypothesis object from a plurality of hypothesis objects. In one embodiment, hypothesis parser 214 invokes a simple selection process. Alternatively, hypothesis parser 214 may invoke a fusion process on various hypothesis objects to generate a hybrid hypothesis object.

[0046] Because the cognitive processor's architecture is asynchronous, if the computational method implemented as a hypothesis object requires a longer time to complete, the hypothesis resolver 214 and the downstream decision-maker module 216 receive the hypothesis object from that specific hypothesis module at the earliest available time through a subscription push process. The timestamp associated with the hypothesis object informs the downstream module of the relevant time frame of the hypothesis object, allowing synchronization with the state data of the hypothesis object and / or from other modules. Therefore, the time span to which the prediction of the hypothesis object is applied is time-aligned across modules.

[0047] For example, when the decision-maker module 216 receives a hypothesis, it compares the timestamp of the hypothesis with the timestamp of the most recent data (i.e., speed, position, heading, etc.) of the autonomous vehicle 10. If the timestamp of the hypothesis is considered too old (e.g., the autonomous vehicle data is advanced according to the selected time standard), the hypothesis can be ignored until an updated hypothesis is received. Updates based on the latest information are also performed by the trajectory planner 220.

[0048] Decision-maker module 216 includes modules that generate various candidate decisions in the form of the trajectory and behavior of autonomous vehicle 10. Decision-maker module 216 receives hypotheses for each motivation 50 from hypothesis resolver 214 and uses these hypotheses and the nominal target trajectory of autonomous vehicle 10 as constraints. Decision-maker module 216 may include multiple decision-maker modules, each using a different method or technique to determine the possible trajectories or behaviors of autonomous vehicle 10. Each decision-maker module may operate asynchronously and receive various input states from working memory 210, such as the hypotheses generated by hypothesis resolver 214. Decision-maker module 216 is a modular component and can be added or removed from cognitive processor 32 as needed. Each decision-maker module 216 may update its decisions at its own update rate (e.g., rate d-Hz).

[0049] Similar to the hypotheser module 212, the decision-maker module 216 includes a decision-maker class for predicting the trajectory and / or behavior of autonomous vehicles. The decision-maker class includes specifications for decision-maker objects and a set of algorithms. Once invoked, a decision-maker object is created for the motivation 50 from the decision-maker class. The decision-maker object conforms to the specification of the decision-maker class and uses the algorithms of the decision-maker class. Multiple decision-maker objects can run in parallel with each other.

[0050] The decision parser 218 receives various decisions generated by one or more decision parser modules and generates a single trajectory and behavior object for the autonomous vehicle 10. The decision parser may also receive various situational information from the evaluator module 232, which is used to generate the trajectory and behavior object.

[0051] The trajectory planner 220 receives the trajectory and behavior object, as well as the state of the autonomous vehicle 10, from the decision parser 218. The trajectory planner 220 then generates a trajectory message, which is provided to the trajectory transmitter 222. The trajectory transmitter 222 provides the trajectory message to the autonomous vehicle 10 using a format suitable for communication with the autonomous vehicle 10, for implementation at the autonomous vehicle 10.

[0052] The trajectory transmitter 222 also sends trajectory messages to the virtual controller 224. The virtual controller 224 provides data to the cognitive processor 32 in the feedforward loop. In subsequent calculations, the trajectory sent to the hypothesizer module 212 is refined by the virtual controller 224 to simulate a set of future states of the autonomous vehicle 10 as it attempts to follow the trajectory. The hypothesizer module 212 uses these future states to perform feedforward predictions.

[0053] Various aspects of the cognitive processor 32 provide feedback loops. The virtual controller 224 provides a first feedback loop. The virtual controller 224 simulates the operation of the autonomous vehicle 10 based on the provided trajectory and, in response to the trajectory taken by the autonomous vehicle 10, determines or predicts the future state of each driver 50. These future states of the drivers can be provided to the hypotheser module as part of the first feedback loop.

[0054] The second feedback loop arises because various modules will use historical information to learn and update parameters in their calculations. The hypotheser module 212, for example, can implement its own buffer to store historical state data, regardless of whether the state data comes from observations or predictions (e.g., from the virtual controller 224). For instance, in the hypotheser module 212 employing a kinematic regression tree, historical observation data for each driver is stored for several seconds and used in the calculation of state predictions.

[0055] Hypothesis resolver 214 also incorporates feedback in its design, as it utilizes historical information for computation. In this case, historical information about the observations is used to calculate the prediction error in a timely manner, and the prediction error is used to adjust the hypothesis resolution parameter. A sliding window can be used to select the historical information used to calculate the prediction error and to learn the hypothesis resolution parameter. For short-term learning, the sliding window controls the update rate of the parameters of hypothesis resolver 214. On larger timescales, the prediction error can be accumulated during selected episodes (e.g., a left-turn episode) and used to update the parameters after that episode.

[0056] The decision resolver 218 also uses historical information for feedback computation. Historical information about the autonomous vehicle's trajectory is used to compute the optimal decision and adjust the decision resolution parameters accordingly. This learning can occur at the decision resolver 218 at multiple time scales. At the shortest time scale, the evaluator module 232 continuously computes information about performance and feeds it back to the decision resolver 218. For example, the algorithm can be used to provide information about trajectory performance provided by the decision resolver module based on multiple metrics and other situational information. This situational information can be used as a reward signal in the reinforcement learning process to operate the decision resolver 218 at various time scales. Feedback can be asynchronous with the decision resolver 218, and the decision resolver 218 can adjust itself upon receiving feedback.

[0057] Figure 3 is a schematic diagram 300 illustrating several hypothesis generation methods applicable to deriving predictions for a navigation system used by the autonomous vehicle 10. Each arrow represents a hypothesis generation method. Arrow 302 indicates using physics-based or kinematic calculations to predict the motion of a driver (such as driver 50). Arrow 304 indicates using a data-driven statistical predictor (HMM) to predict the motion of driver 50. The statistical predictor can apply various statistical models, such as Markov models, to predict driver motion. Arrow 306 indicates using a pattern-based predictor or plot prediction method to predict the motion of driver 50. Arrow 308 indicates a prediction method using an inference engine. The method provided by arrow 308 provides knowledge-based inference to complement the methods represented by arrows 302, 304, and 306.

[0058] Figure 4 illustrates a schematic diagram of the architecture of a cognitive processor 400 employing an inference module. The cognitive processor 400 includes an interface module 402, a working memory 404, one or more hypothesizers 406, an inference module 408, one or more decision processors 410, and a decision parser and a trajectory planner 412.

[0059] Interface module 402 receives data, such as kinematic data, from autonomous vehicle 10. Working memory 404 stores the received data and various intermediate calculations of one or more hypothesizers 406. The one or more hypothesizers 406 may include, but are not limited to: kinematic hypothesizers for predicting motion of the driving force using physical equations, statistical hypothesizers for predicting motion of the driving force based on statistical rules used for receiving data, and plot hypothesizers for generating hypotheses based on spatiotemporal data and using plot memory (i.e., historical discretized scenes). One or more decision units 410 receive hypotheses about the driving force from one or more hypothesizers 406 and determine one or more possible trajectories of the autonomous vehicle based on the hypotheses. One or more possible trajectories of the autonomous vehicle are provided to decision parser and trajectory planner 412, which selects a trajectory for the autonomous vehicle and provides the trajectory to the autonomous vehicle for implementation.

[0060] The cognitive processor 400 also includes an inference module 408 for applying various additional predictive capabilities to hypotheses. One or more hypothesizers 406 and the inference module 408 read information stored in the working memory 404 to make their predictions. Additionally, the inference module 408 accepts predictions made by one or more hypothesizers 406 and outputs one or more predictions to one or more decision-makers 410.

[0061] Figure 5 illustrates the operation of the inference module 408. The inference module 408 includes an inferencer 502 for generating one or more hypotheses from received data. The inferencer 502 includes a database of axioms or situational rules 504, such as traffic regulations, situational traffic behavior trends, and local speeds. The inference module 408 also includes an inference engine 506, which performs various inference operations to generate one or more hypotheses. The inference engine 506 can perform abductive inference 508 and deductive inference 510 on the received data.

[0062] Abductive reasoning refers to determining the premises of a logical statement based on its conclusion. Given a logical premise-conclusion statement of p(x) → q(x), and the data received therein indicating the fact of q(a), abductive reasoning can draw a conclusion about the condition or fact of p(a). Abductive reasoning can determine the fact p(a) that is temporally consistent with the conclusion or that precedes fact q(a) in time. Deductive reasoning refers to determining the conclusion of a logical statement based on its premises. Given a logical premise-conclusion statement of p(x) → q(x), and the data received therein indicating the fact of p(a), deductive reasoning logically derives the conclusion q(a) based on the conclusion q(x). Deductive reasoning can determine the fact q(a) that is temporally equivalent to fact p(a) or is predicted to occur after fact p(a).

[0063] At inference engine 506, constructive use of abductive and deductive reasoning can be employed to generate one or more hypotheses. Specifically, both abductive and deductive reasoning can be used with a set of facts. Abductive reasoning can be used to apply logical rules backward to obtain a set of conditions or facts based on currently received facts, which must have occurred in the past. These backward conditions or facts obtained from abductive reasoning can then be used as premises and / or assumptions in the deductive reasoning step to obtain forward conditions, such as predictions of driver motion. The autonomous vehicle can then operate based on the predicted forward conditions derived through this backward-forward inference process. The forward-backward inference process incorporates historical conditions into future driving predictions, thereby providing data for preparing the vehicle for future driving needs.

[0064] In one embodiment, hypotheses are provided from inference engine 506 to hypothesis selection engine 512. Hypothesis selection engine 512 removes or modifies redundant hypotheses and those that are not suitable for a given traffic scenario. Hypothesis filter 514 then reduces the number of hypotheses to the number relevant to the current state of the autonomous vehicle. For example, the motivation for stopping on the shoulder of a road may be irrelevant to an autonomous vehicle traveling on the road. The remaining hypotheses are provided as predictions to one or more decision units 410.

[0065] The inference module 408 operates by receiving data in logical terms and factual forms from the symbol conversion module 516. The symbol conversion module 516 receives time-series observations 518, referred to herein as tokens, from the autonomous vehicle and converts these tokens into logical terms and facts that can be used at the inference module 408. Furthermore, hypotheses from one or more hypothesizers 406 are provided to the symbol conversion module 516, which similarly converts the hypotheses into logical terms and facts that can be used at the inference module 408.

[0066] As shown in Figure 5, the inference module 408 is implemented on a single processor. In an alternative embodiment, the inference engine may be implemented on multiple processors or on a cloud-based set of processors.

[0067] Figure 6 illustrates a block diagram 600 of a system used to generate hypothetical scenarios based on measurements taken by various sensors of the vehicle and to assess the likelihood of these scenarios. The system includes a measurement system 602 for obtaining measurements of the environment surrounding the vehicle 10 and an inference engine (symbolic inferencer 604) for generating one or more hypothetical or possible scenarios based on these measurements. The symbolic inferencer 604 includes a database 504 of axioms or situational rules, such as traffic regulations, situational traffic behavior trends, and local speeds. The symbolic inferencer 604 infers or deduces one or more scenarios by applying these situational rules to data from the measurement system 602.

[0068] The system also includes an Inference Evaluation Engine (IEE) 606 and a Plot Memory (EM) 608. IEE 606 determines the logic-based probability of each of one or more possible scenarios generated or inferred at the Symbolic Inferencer 604. IEE 606 determines the logic-based probability of a scenario by applying rule-based logic to it. IEE 606 also communicates with the Plot Memory (EM) 608 to assign a history-based probability to each of the one or more possible scenarios. IEE 606 outputs both the logic-based and history-based probabilities. Alternatively, IEE 606 outputs the final probability of each of the one or more possible scenarios. These probabilities can be used to select a suitable route or trajectory for the vehicle based on traffic conditions or circumstances. In various embodiments, the parser selects candidates from the possible scenarios and sends the candidates to a navigation system or controller of vehicle 10. The navigation system or controller generates a trajectory based on the candidates and uses the candidates to operate or navigate vehicle 10.

[0069] EM 608 determines historical probability by comparing a scene to events stored in its database. The historical probability of a scene is determined by quantifying the similarity between the scene and the events stored in the database. A metric is used to assign probabilities to events in the database that are similar to the scene. This metric represents the degree of similarity between the event and the scene. Historical probability also considers the popularity of events in the database that are identified as similar to the scene.

[0070] Figure 7 illustrates an illustrative traffic situation 700, in which the system can be used to assess the possible actions or trajectories of vehicle 10. Vehicle 10 is in the outer lane 702 of street 701, and a truck 706 or other visual obstacle is in front of vehicle 10 and in the adjacent lane 704. The position of truck 706 reduces vehicle 10's line of sight 714 relative to area 708. In this particular traffic situation, another vehicle 710 is crossing or will be crossing the outer lane 702 to enter lane 712. Therefore, the other vehicle 710 is the reason why truck 706 stops. However, due to incomplete understanding of the situation, vehicle 10 does not know whether the other vehicle 710 is in area 708, and therefore cannot determine how to respond to the traffic situation.

[0071] Figure 8 illustrates possible scenarios 800 that can be inferred based on the current knowledge of traffic condition 700 in Figure 7. The first scenario (Scenario A) predicts that as vehicle 10 is about to pass a truck, vehicle 802 will cross in front of the stopped truck 706 in adjacent lane 704, thus requiring vehicle 10 to prepare to slow down or come to a complete stop. The second scenario (Scenario B) predicts that as vehicle 10 is about to pass a truck, one or more pedestrians 804 will cross in front of the stopped truck 706 in adjacent lane 704, thus also requiring vehicle 10 to prepare to slow down or come to a complete stop. The third scenario (Scenario C) predicts that, given the current speed of vehicle 10, there is an unobstructed path in outer lane 702 when vehicle 10 passes the stopped truck 706 in adjacent lane 704. These scenarios are speculative, and any one of them can be real or representative of actual scenarios. These scenarios are generated by symbolic inferencer 604 and sent to IEE 606 to determine the probability of these scenarios.

[0072] When assigning logic-based probabilities or probabilities based on various rules or principles to a scenario, each element in the environment is considered. For the illustrative traffic situation in Figure 8, some rules are as follows: 1) Vehicles tend to move unless required by obstacles or traffic rules; 2) Lanes tend to occasionally attract vehicles; and 3) Lanes do not have a specific tendency to attract pedestrians. These rules are applied to elements or landmarks in the environment to generate the scenario. Some landmarks used for the illustrative traffic situation include the presence of lane 712, the presence of lane markings, the lack of pedestrian crossing markings, and the presence of stopped vehicles. Using these illustrative rules and landmarks, IEE 606 can assign a higher logic-based probability to scenario A than to scenario B or scenario C. For illustrative purposes only, the logic-based probability for scenario A is 60%, for scenario B it is 10%, and for scenario C it is 30%.

[0073] Figure 9 shows a diagram illustrating the history-based probabilities of the various scenarios shown in Figure 8. History-based probabilities are determined in EM 608. After determining logic-based probabilities, IEE 606 tokenizes each scenario and sends the tokenized scenario to EM 608. The tokenized scenario is an archetypical example of a tokenized scenario.

[0074] EM 606 compares a tagged scene with one or more events stored in a database in EM 608 and determines a similarity percentage (S) based on this comparison. The similarity percentage represents the similarity between the tagged scene and the event. EM 608 then determines how common the similar event is in the database, or how frequently the event occurs in the database, thereby determining an occurrence score displayed as a representative percentage (R). Scenario A shows a 60% similarity to a specific event in the database, and that event represents 58% of the events in the database. Scenario B shows a 32% similarity to an event in the database, and that event represents 14% of the events in the database. Scenario C shows a 90% similarity to an event, and that event represents 1% of the events in the database.

[0075] The scenario's historical possibilities are sent from EM 608 to IEE 606. IEE 606 outputs both logically based and historically based possibilities. IEE 606 can also output a final possibility based on these logically based and historically based possibilities. The vehicle's chosen route is based on any possibility output by IEE 606.

[0076] While the foregoing disclosure has been described with reference to exemplary embodiments, those skilled in the art will understand that various changes can be made without departing from the scope of the invention, and equivalents can replace its elements. Furthermore, many modifications can be made to adapt particular situations or materials to the teachings of this disclosure without departing from the basic scope of this disclosure. Therefore, it is intended that this disclosure be limited to the specific embodiments disclosed, but will include all embodiments falling within its scope.

Claims

1. A method for operating an autonomous vehicle, comprising: inferring a plurality of possible scenarios based on the current state of the autonomous vehicle's environment; labeling the plurality of possible scenarios; and determining a historical probability for each of the plurality of possible scenarios using each of the labeled scenarios, wherein the historical probability of the labeled scenario is determined based on a similarity percentage and an occurrence score, the similarity percentage representing the similarity between the labeled scenario and one or more historical events in a database, and the occurrence score representing the frequency with which one or more historical events in the database that are similar to the labeled scenario occur in the database; For each of the plurality of possible scenarios, determine a logic-based probability, and select a scenario from the plurality of possible scenarios based on the historical probability and the logic-based probability; And operate autonomous vehicles based on the selected scenario.

2. The method of claim 1, further comprising determining a similarity percentage of the tagged scene based on a similarity metric between the tagged scene and the one or more historical events.

3. The method of claim 1, further comprising inferring the plurality of possible scenarios based on incomplete or ambiguous measurements.

4. The method of claim 1, wherein inferring the plurality of possible scenarios further includes applying one of abduction, deduction, and a combination of abduction and deduction to data indicating the current state of the environment.

5. A system for operating an autonomous vehicle, comprising a processor configured to: operate an inference engine configured to infer multiple possible scenarios based on the current state of the autonomous vehicle's environment; The system operates a reasoning evaluation engine to tokenize each of the plurality of possible scenarios; it operates a plot memory to determine the historical probability of each of the plurality of possible scenarios using each of the tokenized scenarios, wherein the historical probability of the tokenized scenarios is determined based on a similarity percentage and an occurrence score, the similarity percentage representing the similarity of the tokenized scenario to one or more historical events in a database, and the occurrence score representing the frequency with which one or more historical events in the database that are similar to the tokenized scenario occur in the database; and it operates the reasoning evaluation engine to determine the logic-based probability of each of the plurality of possible scenarios. The operation parser selects a scenario from the plurality of possible scenarios based on the historical probabilities and the logic-based probabilities; And control autonomous vehicles based on the selected scenario.

6. The system according to claim 5, wherein, The processor is also configured to operate the episode memory to determine a similarity percentage of the tagged episodes based on a similarity metric between the tagged episodes and the one or more historical events.

7. The system according to claim 5, wherein, The processor is also configured to operate the inference engine to infer the plurality of possible scenarios based on incomplete or ambiguous measurements.

8. The system according to claim 5, wherein, The processor is also configured to operate the inference engine to apply one of abduction, deduction, and a combination of abduction and deduction to data indicating the current state of the environment.

Citation Information

Patent Citations

  • Reasoning Engines

    US20140129504A1

  • Method for planning trajectory of vehicle

    US20200255027A1

  • Driving policies determination

    US20200283030A1