Method for determining collision potential
The method addresses the challenge of navigating autonomous vehicles around dynamic obstacles by using a series of checks to assess collision potential, ensuring safer navigation and efficient resource allocation.
Patent Information
- Application Number
- PCT/US2024/048919
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-10-02
- Filing Date
- 2024-09-27
- Publication Date
- 2025-04-10
AI Technical Summary
Existing autonomous vehicle navigation systems face challenges in efficiently evaluating and managing navigation relative to dynamic obstacles with unknown velocity and trajectory, leading to resource-intensive processing and potential safety issues.
A method employing a series of checks of increasing accuracy or robustness to eliminate objects without collision potential, allowing for better allocation of computational resources and greater confidence in collision potential assessments between autonomous vehicles and dynamic obstacles.
This approach enables safer autonomous vehicle navigation in ordinary traffic by efficiently allocating computational resources to assess collision potential with dynamic obstacles, thereby reducing processing burdens and improving navigation decisions.
Smart Images

Figure US2024048919_10042025_PF_FP_ABST
Abstract
Description
METHOD FOR DETERMINING COLLISION POTENTIALCROSS REFERENCE TO RELATED APPLICATION(S)
[0001] This application claims the benefit of U.S. Provisional Patent Application Serial No. 63 / 587,263, filed October 2, 2023, which is incorporated herein by reference in its entirety.FIELD OF THE INVENTION
[0002] This application generally relates to autonomous vehicle navigation, and more specifically to determining the potential for autonomous vehicle collision with a dynamic object during navigation.BACKGROUND
[0003] Improvements to navigation of vehicles, not limited to self-driving or autonomous vehicles, have increased demand and potential for them. Onboard control systems are capable of making real time decisions independently without relying on human assistance. These decisions relate to determining paths to obstacle locations and, to some extent, altering paths in response to encountered static obstacles. However, a persistent problem remains with evaluating and managing navigation relative to dynamic obstacles, such as other vehicles or living beings, that are moving nearby with unknown velocity and trajectory.
[0004] Evaluating and managing navigation relative to dynamic obstacle is challenging because of the number of obstacles that must be expected to be encountered and the resource- and time-consuming processing of real-time data associated with each obstacle required for making appropriate decisions about whether and where to navigate relative to those obstacles. Obstacles that pose a greater threat
[0005] What is needed is a method of determining collision potential of a vehicle and a dynamic obstacle that is timely for enabling autonomous vehicle navigation in ordinary traffic.SUMMARY OF THE INVENTION
[0006] The invention overcomes the difficulties of evaluating and managing navigation relative to dynamic obstacles that are moving nearby with unknown velocity and trajectory with a method that employs a series of checks of increasing accuracy or robustness to eliminate objects without collision potential from objects that should be evaluated with greater care. This permitsbetter allocation of computational resources to attain greater confidence in the collision potential between an AV and objects that truly pose a risk, which enables safer AV navigation in ordinary traffic.
[0007] An embodiment of a method configured according to principles of the invention includes determining a first potential and, if the first potential is true, then determining a second potential, otherwise defining the collision potential as false. This embodiment also provides for, if the second potential is true, then defining the collision potential as true, otherwise defining the collision potential as false.
[0008] Another embodiment of a method configured according to principles of the invention includes determining a potential according to a check having a robustness. If the potential is true, then, if the robustness equals a robustness level, defining a collision potential as true, otherwise incrementing the robustness and determining the potential according to another check having an enhanced robustness, otherwise defining the collision potential as false.
[0009] Another embodiment of a method configured according to principles of the invention includes setting a variable x equal to 1 and executing check x (check 1 ) of a number of checks (n checks). If check x is true, then, if x is less than n, then indexing x by 1 and executing the next check (check x) or else defining the collision potential as true, otherwise (if check x is false) defining the collision potential as false.
[0010] The details of one or more embodiments are set forth in the accompanying drawings and the description below. Other features and advantages will become apparent from the description, the drawings, and the claims.BRIEF DESCRIPTION OF THE DRAWINGS
[0011] Fig. 1 is schematic view of a flow diagram of a method configured according to principles of the invention;
[0012] Figs. 2-5 are diagrammatic views of vehicles and objects, planned and projected trajectories thereof and constructions configured according to principles of the invention;
[0013] Fig. 6 is a diagrammatic view of a vehicle and constructions configured according to principles of the invention;
[0014] Fig. 7 are textual views of formulae configured according to principles of the invention.
[0015] Like reference symbols in the various drawings indicate like elements.DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0016] In the following description, numerous specific details are set forth to provide a thorough understanding of various aspects and arrangements. One skilled in the relevant art will recognize, however, that the techniques described herein can be practiced without one or more of the specific details, or with other methods, components, materials, etc. In other instances, well known structures, materials, or operations may not be shown or described in detail to avoid obscuring certain aspects.
[0017] Reference throughout this specification to “an aspect,” “an arrangement,” or “a configuration” indicates that a particular feature, structure, or characteristic is described. Thus, appearances of phrases such as “in one aspect,” “in one arrangement,” “in a configuration,” or the like in various places throughout this specification do not necessarily each refer to the same aspect, feature, configuration, or arrangement. Furthermore, the particular features, structures, and / or characteristics may be combined in any suitable manner.
[0018] To the extent used in the present disclosure and claims, the terms “component,” “system,” “platform,” “layer,” “selector,” “interface,” and the like are intended to refer to a computer- related entity or an entity related to an operational apparatus with one or more specific functionalities, wherein the entity may be either hardware, a combination of hardware and software, software, or software in execution. As an example, a component may be, but is not limited to being, a process running on a processor, a processor, an object, an executable, a thread of execution, a program, and / or a computer. By way of illustration and not limitation, both an application running on a server and the server itself can be a component. One or more components may reside within a process and / or thread of execution and a component may be localized on one computer and / or distributed between two or more computers. In addition, components may execute from various computer-readable media, device-readable storage devices, or machine-readable media having various data structures stored thereon. The components may communicate via local and / or remote processes such as in accordance with a signal having one or more data packets (e.g., data from one component interacting with another component in a local system, a distributed system, and / or across a network such as the Internet with other systems via the signal). As another example, a component can be an apparatus with specific functionality provided by mechanical parts operated by electric or electronic circuitry, which may be operated by a software or firmware application executed by a processor, wherein the processor can be internal or external to the apparatus and executes at least a part of the software or firmware application. As yet another example, a component can be an apparatus thatprovides specific functionality through electronic components without mechanical parts; the electronic components can include a processor therein to execute software or firmware that confers at least in part the functionality of the electronic components.
[0019] To the extent used in the subject specification, terms such as “store,” “storage,” “data store,” data storage,” “database,” and the like refer to memory components, entities embodied in a memory, or components comprising a memory. It will be appreciated that the memory components described herein can be either volatile memory or nonvolatile memory, or can include both volatile and nonvolatile memory.
[0020] In addition, the term “or” is intended to mean an inclusive “or” rather than an exclusive “or.” That is, unless specified otherwise, or clear from context, “X employs A or B” is intended to mean any of the natural inclusive permutations. That is, if X employs A, X employs B, or X employs both A and B, then “X employs A or B” is satisfied under any of the foregoing instances. Moreover, articles “a” and “an” as used in the subject disclosure and claims should generally be construed to mean “one or more” unless specified otherwise or clear from context to be directed to a singular form.
[0021] The words “exemplary” and / or “demonstrative,” to the extent used herein, mean serving as an example, instance, or illustration. For the avoidance of doubt, the subject matter disclosed herein is not limited by disclosed examples. In addition, any aspect or design described herein as “exemplary” and / or “demonstrative” is not necessarily to be construed as preferred or advantageous over other aspects or designs, nor is it meant to preclude equivalent exemplary structures and techniques known to those of ordinary skill in the art. Furthermore, to the extent that the terms “includes,” “has,” “contains,” and other similar words are used in either the detailed description or the claims, such terms are intended to be inclusive, in a manner similar to the term “comprising” as an open transition word, without precluding any additional or other elements.
[0022] As used herein, the term “infer” or “inference” refers generally to the process of reasoning about, or inferring states of, the system, environment, user, and / or intent from a set of observations as captured via events and / or data. Captured data and events can include user data, device data, environment data, data from sensors, application data, implicit data, explicit data, etc. Inference can be employed to identify a specific context or action or can generate a probability distribution over states of interest based on a consideration of data and events, for example.
[0023] The disclosed subject matter can be implemented as a method, apparatus, or article of manufacture using standard programming and / or engineering techniques to produce software, firmware, hardware, or any combination thereof to control a computer to implement the disclosedsubject matter. The term "article of manufacture," to the extent used herein, is intended to encompass a computer program accessible from any computer-readable device, machine- readable device, computer-readable carrier, computer-readable media, or machine-readable media. For example, computer-readable media can include, but are not limited to, a magnetic storage device, e.g., hard disk; floppy disk; magnetic strip(s); an optical disk (e.g., compact disk (CD), digital video disc (DVD), Blu-ray Disc™ (BD)) ; a smart card; a flash memory device (e.g., card, stick, key drive); a virtual device that emulates a storage device; and / or any combination of the above computer-readable media.
[0024] Generally, program modules include routines, programs, components, data structures, etc., that perform particular tasks or implement particular abstract data types. The illustrated embodiments of the subject disclosure may be practiced in distributed computing environments where certain tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules can be located in both local and remote memory storage devices.
[0025] Computing devices can include at least computer-readable storage media, machine- readable storage media, and / or communications media. Computer-readable storage media or machine-readable storage media can be any available storage media that can be accessed by the computer and includes both volatile and nonvolatile media, removable and non-removable media. By way of example, and not limitation, computer-readable storage media or machine- readable storage media can be implemented in connection with any method or technology for storage of information such as computer-readable or machine-readable instructions, program modules, structured data or unstructured data.
[0026] Computer-readable storage media can include, but are not limited to, random access memory (RAM), read only memory (ROM), electrically erasable programmable read only memory (EEPROM), flash memory or other memory technology, compact disk read only memory (CD-ROM), digital versatile disk (DVD), Blu-ray disc (BD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, solid state drives or other solid state storage devices, or other tangible and / or non-transitory media that can be used to store desired information. In this regard, the terms "tangible” or "non-transitory” herein as applied to storage, memory, or computer-readable media, are to be understood to exclude only propagating transitory signals per se as modifiers, and do not exclude any standard storage, memory or computer-readable media that are more than only propagating transitory signals per se.
[0027] Computer-readable storage media can be accessed by one or more local or remote computing devices, e.g., via access requests, queries, or other data retrieval protocols, for a variety of operations with respect to the information stored by the medium.
[0028] A system bus, as may be used herein, can be any of several types of bus structure that can further interconnect to a memory bus (with or without a memory controller), a peripheral bus, and a local bus using any of a variety of commercially available bus architectures. A database, as may be used herein, can include basic input / output system (BIOS) that can be stored in a non-volatile memory such as ROM, EPROM, or EEPROM, with BIOS containing the basic routines that help to transfer information between elements within a computer, such as during startup. RAM can also include a high-speed RAM such as static RAM for caching data.
[0029] As used herein, a computer can operate in a networked environment using logical connections via wired and / or wireless communications to one or more remote computers. The remote computer(s) can be a workstation, server, router, personal computer, portable computer, microprocessor-based entertainment appliance, peer device, or other common network node. Logical connections depicted herein may include wired / wireless connectivity to a local area network (LAN) and / or larger networks, e.g., a wide area network (WAN). Such LAN and WAN networking environments are commonplace in offices and companies, and facilitate enterprisewide computer networks, such as intranets, any of which can connect to a global communications network, e.g., the Internet.
[0030] When used in a LAN networking environment, a computer can be connected to the LAN through a wired and / or wireless communication network interface or adapter. The adapter can facilitate wired or wireless communication to the LAN, which can also include a wireless access point (AP) disposed thereon for communicating with the adapter in a wireless mode.
[0031] When used in a WAN networking environment, a computer can include a modem or can be connected to a communications server on the WAN via other means for establishing communications over the WAN, such as by way of the Internet. The modem, which can be internal or external, and a wired or wireless device, can be connected to a system bus via an input device interface. In a networked environment, program modules depicted herein relative to a computer or portions thereof can be stored in a remote memory / storage device.
[0032] When used in either a LAN or WAN networking environment, a computer can access cloud storage systems or other network-based storage systems in addition to, or in place of, external storage devices. Generally, a connection between a computer and a cloud storage system can be established over a LAN or a WAN, e.g., via an adapter or a modem, respectively. Upon connecting a computer to an associated cloud storage system, an external storage interfacecan, with the aid of the adapter and / or modem, manage storage provided by the cloud storage system as it would other types of external storage. For instance, the external storage interface can be configured to provide access to cloud storage sources as if those sources were physically connected to the computer.
[0033] As employed in the subject specification, the term “processor” can refer to substantially any computing processing unit or device comprising, but not limited to comprising, single-core processors; single-core processors with software multithread execution capability; multi-core processors; multi-core processors with software multithread execution capability; multi-core processors with hardware multithread technology; vector processors; pipeline processors; parallel platforms; and parallel platforms with distributed shared memory. Additionally, a processor can refer to an integrated circuit, an application specific integrated circuit (ASIC), a digital signal processor (DSP), a field programmable gate array (FPGA), a programmable logic controller (PLC), a complex programmable logic device (CPLD), a state machine, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. Processors can exploit nano-scale architectures such as, but not limited to, molecular and quantum-dot based transistors, switches and gates, in order to optimize space usage or enhance performance of user equipment. A processor may also be implemented as a combination of computing processing units. For example, a processor may be implemented as one or more processors together, tightly coupled, loosely coupled, or remotely located from each other. Multiple processing chips or multiple devices may share the performance of one or more functions described herein, and similarly, storage may be effected across a plurality of devices.
[0034] As an overview, various arrangements are described herein. For simplicity of explanation, the methods (or algorithms) are depicted and described as a series of steps or actions. It is to be understood and appreciated that the various arrangements are not limited by the actions illustrated and / or by the order of actions. For example, actions can occur in various orders and / or concurrently, and with other actions not presented or described herein. Furthermore, not all illustrated actions may be required to implement the methods. In addition, the methods could alternatively be represented as a series of interrelated states via a state diagram or events. Additionally, the methods described hereafter are capable of being stored on an article of manufacture (e.g., a machine-readable storage medium) to facilitate transporting and transferring such methodologies to computers.
[0035] A system of one or more computers can be configured to perform particular operations or actions by virtue of having software, firmware, hardware, or a combination of them installed onthe system that in operation causes or cause the system to perform the actions. One or more computer programs can be configured to perform particular operations or actions by virtue of including instructions that, when executed by data processing apparatus, cause the apparatus to perform the actions.
[0036] Those of skill would understand that the methods described in the subject disclosure may be applied to computer systems configured to accomplish such methods, and / or to computer- readable media containing programs to accomplish such methods, and / or to software and / or firmware and / or hardware (e.g., integrated circuits) designed to accomplish such methods. Raw data and / or results may be stored for future retrieval and processing, printed, displayed, transferred to another computer, and / or transferred elsewhere. Communication links may be wired or wireless including by way of non-limiting example Ethernet, cellular or broadband networks, WiFi or local area networks, military communications systems, and / or satellite communications systems. Parts of a system may, for example, operate on a computer having a variable number of CPUs. Other alternative computer platforms can be used.
[0037] As one skilled in the art would understand, the methods described in the subject disclosure may be, in whole or in part, implemented electronically. Signals representing actions taken by elements of the system of the subject disclosure, and other disclosed configurations, may travel over at least one live communications network. Control and data information may be electronically executed and stored on at least one computer-readable medium. The system may be implemented to execute on at least one computer node in at least one live communications network. Common forms of computer-readable media can include, for example, but not be limited to, a floppy disk, a flexible disk, a hard disk, magnetic tape or any other magnetic medium, a compact disk read only memory or any other optical medium, punched cards, paper tape, or any other physical medium with patterns of holes, a random access memory, a programmable read only memory, an erasable programmable read only memory (EPROM), a Flash EPROM or any other memory chip or cartridge, or any other medium from which a computer can read.
[0038] Those of skill in the art would understand that information and signals may be represented using any of a variety of different existing techniques. For example, data, instructions, commands, information, signals, bits, symbols, or chips that may be referenced throughout the description may be represented by voltages, currents, electromagnetic waves, magnetic fields or particles, optical fields or particles, ultrasonic waves, projected capacitance, or any combination thereof.
[0039] Those of skill would further appreciate that the various illustrative logical blocks, modules, circuits, and algorithm steps described in connection with the arrangements disclosedherein may be implemented as electronic hardware, computer software, or combinations of both. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, circuits, and steps have been described in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the appended claims.
[0040] The various illustrative logical blocks, modules, and circuits described in connection with the arrangements disclosed herein may be implemented or performed with a general purpose processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A general purpose processor may be a microprocessor, but in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. A processor may also be implemented as a combination of computing devices, e.g., a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration.
[0041] The actions of a method or algorithm described in connection with the arrangements disclosed herein may be embodied directly in hardware, in a software module executed by a processor, or in a combination of the two. A software module may reside in RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, hard disk, a removable disk, a CD-ROM, or any other form of storage medium known in the art. A storage medium may be coupled to the processor such that the processor can read information from, and write information to, the storage medium. In the alternative, the storage medium may be integral to the processor. The processor and the storage medium may reside in an ASIC. The ASIC may reside in functional equipment such as, e.g., a computer, a robot, a user terminal, a mobile telephone or tablet, a car, or an IP camera. In the alternative, the processor and the storage medium may reside as discrete components in such functional equipment.
[0042] The above description is not intended to be exhaustive or to limit the features to the precise forms disclosed. Various alternatives and modifications can be devised by those skilled in the art without departing from the disclosure, and the generic principles defined herein may be applied to other aspects without departing from the spirit or scope of the appended claims. Accordingly, the present disclosure is intended to embrace all such alternatives, modificationsand variances. Additionally, while several arrangements of the present disclosure have been shown in the drawings and / or discussed herein, it is not intended that the disclosure be limited thereto, as it is intended that the disclosure be as broad in scope as the art will allow and that the specification be read likewise. Therefore, the above description should not be construed as limiting, but merely as examples of particular configurations. And those skilled in the art will envision other modifications within the scope and spirit of the claims appended hereto. Other elements, steps, actions, methods, and techniques that are not substantially different from those described above and / or in the appended claims are also intended to be within the scope of the disclosure. Thus, the appended claims are not intended to be limited to the arrangements shown and described herein, but are to be accorded the broadest scope consistent with the principles and novel features disclosed herein.
[0043] The arrangements shown in drawings are presented only to demonstrate certain examples of the disclosure. And, the drawings described are merely illustrative and are nonlimiting. In the drawings, for illustrative purposes, the size of some of the elements may be exaggerated and not drawn to a particular scale. Additionally, elements shown within the drawings that have the same numbers may be identical elements or may be similar elements, depending on the context.
[0044] Where the term "comprising" is used in the present description and claims, it does not exclude other elements or steps. Where an indefinite or definite article is used when referring to a singular noun, e.g. "a" "an" or "the", this includes a plural of that noun unless something otherwise is specifically stated. Hence, the term "comprising" should not be interpreted as being restricted to the items listed thereafter; it does not exclude other elements or steps, and so the scope of the expression "a device comprising items A and B" should not be limited to devices consisting only of components A and B. Furthermore, to the extent that the terms “includes,” “has,” “possesses,” and the like are used in the present description and claims, such terms are intended to be inclusive in a manner similar to the term “comprising,” as “comprising” is interpreted when employed as a transitional word in a claim.
[0045] Furthermore, the terms "first", "second", "third" and the like, whether used in the description or in the claims, are provided to distinguish between similar elements and not necessarily to describe a sequential or chronological order. It is to be understood that the terms so used are interchangeable under appropriate circumstances (unless clearly disclosed otherwise) and that the embodiments of the disclosure described herein are capable of operation in other sequences and / or arrangements than are described or illustrated herein.
[0046] A system of one or more computers can be configured to perform particular operations or actions by virtue of having software, firmware, hardware, or a combination of them installed on the system that in operation causes or cause the system to perform the actions. One or more computer programs can be configured to perform particular operations or actions by virtue of including instructions that, when executed by data processing apparatus, cause the apparatus to perform the actions.
[0047] Referring to Fig. 1 , the invention is a method of determining collision potential of a vehicle and a dynamic obstacle that defines and groups dynamic obstacles into any of multiple groups based on a distance between the vehicle and any predicted trajectory of a dynamic obstacle. Preferably, the groups are defined and ordered as follows:
[0048] 1 . Safe: dynamic obstacle has a predicted trajectory with a closest position to the current vehicle position occurring no earlier than 10 seconds;
[0049] 2. Risk: dynamic obstacle has a predicted trajectory with a closest position to the current vehicle position occurring no later than 3 seconds;
[0050] 3. Imminent: dynamic obstacle has a predicted trajectory with a closest position to the current vehicle position occurring no later than 1 seconds;
[0051] Ideally, the most robust collision check algorithm should be executed for all observed dynamic obstacles and their respective predicted trajectories. In practice, this would likely demand too much computation for any real-time system designed to share any meaningful portion of the road with cars, trucks, bikes, and more. Accordingly, preferably, the method executes successive tiers of collision check algorithms of increasing robustness as needed against only those dynamic obstacles contained within the Risk and Imminent groups.
[0052] Preferably, the method permits a user to employ any or all, in any order, of multiple tiers of algorithms of increasing complexity and accuracy that relieves and enables timely processing and decision making for autonomous vehicle navigation in ordinary traffic.
[0053] Assessing the potentials for collisions with objects initially with simple analytics permits eliminating many objects from further consideration with more complex analytics. Assessing the potentials for collisions with the remaining objects thereafter with more complicated, accurate analytics permits eliminating more objects from further consideration with the most accurate analytics. Limiting processor burden when a great number of objects must be evaluated and then limiting greater processor demands to objects that require greater consideration allows for more timely processing of navigation and other decision making.
[0054] Referring also to Fig. 2, a preferred embodiment of a method of determining collision potential 100 between a vehicle V and an obstacle On, where “n” is an integer corresponding tothe number of objects considered, configured according to principles of the invention includes a step 105 of determining a first potential. If the first potential is deemed true, then method 100 proceeds to step 110 of determining a second potential. If the second potential is deemed true, then method 100 proceeds to step 115 of determining a third potential. If the third potential is deemed true, then method 100 proceeds to step 120 of defining the collision potential as true. If any of steps 105, 110 and 115 are false, then method 100 proceeds to step 125 of defining the collision potential as false. The collision potential state, whether a collision is likely, aids in making navigation decisions.
[0055] Consistent with conserving processor resources and / or allocating same for analyzing potential collisions of greater likelihood, steps 105, 110 and 115 are selected as appropriate from the Check methods described below. One or more of steps 105, 110 and 115 may exclude obstacles (not shown) that are behind vehicle V, particularly obstacles (not shown) within a 45° margin M in the opposite direction of the yaw Y of vehicle V.
[0056] Projection Check
[0057] Referring to Fig. 2, Projection Check (PC) involves developing a vehicle trajectory VT based on a vehicle algorithm that is configured to project where vehicle V will be. The PC algorithm does not use the planned path of vehicle V, but instead develops a linear projection or projects a current position of vehicle V forward, along a heading or yaw of vehicle V some fixed distance ^creating a look-ahead vector or vehicle trajectory VT. The algorithm defines interaction with a dynamic obstacle to occur if any of the dynamic obstacle’s predicted trajectories OTnintersect in space with the look-ahead vector VT. This is a simple line-line intersection test which is computationally cheap, though not robust to determining true risk of collision.
[0058] In practice, either the vehicle’s planned trajectory, the dynamic obstacle’s predicted trajectories, or both should be calculated using relatively small time steps to avoid tunneling, when no collision may be determined to exist at t1 or t2, but one may at t1.5. Tunneling also can be avoided if only one of the trajectories is calculated using high-resolution time steps and the positions of the low resolution trajectories are calculated via interpolation.
[0059] If the dynamic obstacle’s predicted trajectories OTnare parallel to or colinear with the look-ahead vector VT, the algorithm may incorrectly determine no risk of collision. This can be avoided by adding buffers to the line-line intersection test. Preferably, the vehicle algorithm is selected consistently with the principles of the invention, namely intelligent allocation and use of processor resources.
[0060] PC also involves developing linear projections or object trajectories OTnbased on an object algorithm that is configured to project where an object Oncould be. As with the vehiclealgorithm selected for analyzing vehicle V, the object algorithm for analyzing an object Onpreferably is selected consistently with the principles of the invention, namely intelligent allocation and use of processor resources.
[0061] Regarding vehicle V, the vehicle algorithm may develop a vehicle trajectory VT. Regarding object Oi, the object algorithm may develop object trajectories O1T1, O1T2 and O1T3. Preferably, an interaction processor (not shown) evaluates whether vehicle trajectory VT interacts with any of object trajectories O1T1, O1T2 and O1T3. In this case, none of object trajectories O1T1, OIT2and OIT3interact with vehicle trajectory VT, therefore collision potential is deemed false for object Oi .
[0062] Regarding object O2, the object algorithm may develop object trajectories O2TI , O2T2, O2T3, O2T4and O2T5. Preferably, an interaction processor (not shown) evaluates whether vehicle trajectory VT interacts with any of object trajectories O2TI , O2T2, O2T3, O2T4and O2Ts. In this case, object trajectory O2T5interacts with vehicle trajectory VT and supports possible collision of vehicle V and object O2, therefore the first potential is deemed true.
[0063] Constant Bearing, Decreasing Range Check
[0064] Referring to Fig. 3, Constant Bearing, Decreasing Range Check (CBDRC) relies on an algorithm that develops and compares vehicle and object trajectories. The CBDRC algorithm uses the planned trajectory of vehicle V when determining interaction with the predicted trajectories of dynamic obstacle.
[0065] CBDRC is an excellent intermediary process because it is more reliable and demands less computation than more robust processes. However, CBDRC is not sufficient for determining a true risk of collision. Therefore, the CBDRC algorithm is not robust enough to be used as the final collision Check algorithm. Nevertheless, CBDRC is helpful in eliminating from consideration dynamic obstacles that are not associated with predicted trajectories that have interactions with the planned trajectory of the vehicle. Like with the PC algorithm, CBDRC has a relatively light computational demand and works as a good sieve to eliminate dynamic obstacles from consideration, allowing the more robust, but computationally expensive algorithms to run on as few dynamic obstacle predictions as possible.
[0066] As with PC, CBDRC involves knowing a trajectory of vehicle V. The trajectory of vehicle V may correspond to vehicle trajectory VT as determined within the context of PC Check. Alternatively, CBDRC may involve developing a second vehicle trajectory VT2that is based on the same vehicle algorithm employed in PC Check or a second vehicle algorithm that also is configured to project where vehicle V will be. Preferably, the second vehicle algorithm is selected consistently with the principles of the invention, namely intelligent allocation and use of processorresources. However, the greater complexity involved in the CBDRC algorithm may require greater processing needs that more accurately determines second vehicle trajectory VT2than as required for PC.
[0067] Also as with PC, CBDRC involves developing object trajectories OTnbased on an object algorithm that is configured to project where an object Oncould be. As with the vehicle algorithm selected for analyzing vehicle V, the object algorithm for analyzing an object Onpreferably is selected consistently with the principles of the invention, namely intelligent allocation and use of processor resources. However, the greater complexity of the CBDRC algorithm may require greater processing needs that more accurately determines object trajectories OTnthan as required for PC Check.
[0068] Preferably, a CBDRC processor (not shown) evaluates whether vehicle trajectory VT2interacts with any of object trajectories O2T1, 02T2, O2T3, 02T4 and O2T5. To this end, the CBDRC algorithm evaluates the respective angles Onbetween the vehicle trajectory VT2and vectors Wnhaving respective lengths rnfrom the vehicle trajectory VT2to object trajectory O2T5. Vehicle trajectory VT2is determined from the predicted states of vehicle VT that are based on conventional Cartesian coordinates (x, y, z), yaw and time. Vectors Wnare determined from the predicted states of the respective dynamic obstacles O that are based on their conventional Cartesian coordinates (x, y, z), yaw and time. For example, at time t if the obstacle has an initial state (x0, y0, z0) and the vehicle has an initial state (xv, yv, zv) then vector W is (x0- xv, y0- yv). As shown, object trajectory O2T5 interacts with vehicle trajectory VT2. Because r decreases while 0 remains relatively constant, collision of vehicle V and object O2is possible, therefore the collision potential is deemed true.
[0069] Path Check
[0070] The Path Check (PaC) algorithm defines interaction by iterating over every position of every predicted trajectory of a dynamic obstacle and calculating the distance from each predicted position to each position in the planned trajectory of vehicle V.
[0071] Referring to Fig. 4, a PaC processor (not shown) develops a predicted object trajectory OT and a predicted object trajectory buffer OTB. Object trajectory OT may correspond to object trajectory OT as determined within the context of other check methods described herein. Object trajectory buffer OTB is defined by left- and right-side lateral offset by an amount d0. Depending on how conservative a user is, offset amount d0can range from as little as the width of the obstacle to as much room as desired to accommodate uncertainties in the estimates of the obstacle position and the vehicle position.
[0072] PaC processor (not shown) develops a predicted vehicle trajectory VT and a predicted vehicle trajectory buffer VTB. Vehicle trajectory VT may correspond to vehicle trajectory VT as determined within the context of other check methods described herein. Vehicle trajectory buffer VTB is defined by left- and right-side lateral offset by an amount dt>, which may be set in a similar fashion as amount d0.
[0073] If the distance between the closest predicted position of the obstacle to a planned position of the vehicle V is less than the sum of their buffers (d0+ dt>) then an interaction or collision is possible, thus the collision potential would be true.
[0074] Like CBDRC, PaC is an excellent intermediary process, but not sufficient for determining a true risk of collision because it does not consider the temporal component of the trajectories. When compared with the Trajectory Checks algorithm, described below, PaC is faster given a worst case scenario. In practice, the Trajectory Checks algorithm rarely evaluates its worst case scenario, where PC typically evaluates its worst case scenario, due to the structure of the input data. In other words, when PaC evaluates whether a dynamic obstacle prediction matches its definition of collision, PaC iterates over every state in the vehicle’s planned trajectory as many times as there are states in a prediction for every prediction. TC, on the other hand, iterates fewer times and has many early-exit conditions, therefore usually requires less computation.
[0075] Trajectory Check
[0076] Referring to Fig. 5, Trajectory Check (TC) relies on a TC algorithm based on principles associated with collapsing collision circles as described below. As with earlier check methods, TC involves knowing a trajectory of vehicle V. The trajectory of vehicle V may correspond to vehicle trajectory VT2as determined within the context of PC or CBDRC. Alternatively, TC may involve developing a third vehicle trajectory VT3that is based on the same vehicle algorithm employed in PC or CBDRC, or a third vehicle algorithm that also is configured to project where vehicle V will be. Preferably, the third vehicle algorithm is selected consistently with the principles of the invention, namely intelligent allocation and use of processor resources. However, the greater complexity involved in the TC algorithm may require greater processing needs that more accurately determines second vehicle trajectory VT2than as required for the PC and CBDRC.
[0077] Also as with determining the PC and CBDRC, the TC algorithm also involves developing object trajectories OTnbased on an object algorithm that is configured to project where an object Oncould be. As with the vehicle algorithm selected for analyzing vehicle V, the object algorithm for analyzing an object Onpreferably is selected consistently with the principles of the invention, namely intelligent allocation and use of processor resources. However, the greatercomplexity of the TC algorithm may require greater processing needs that more accurately determines object trajectories OTnthan as required for the PC and CBDRC.
[0078] Preferably, a TC processor (not shown) executes a collapsing collision circle algorithm that develops constructive circles of decreasing size as needed about the vehicle V and parts thereof in the context of the vehicle trajectory VT3, defining vehicle collision circles VCCn, and a set of constructive circles about an object and parts thereof in the context of the object trajectory OT3, defining object collision circles OCCn. For example, the algorithm develops a first set of collision circles, one about the vehicle and another about an object and evaluates whether the collision circles contact or overlap to define a collision condition. If not, then the algorithm develops a second set of collision circles smaller than the first set and arranged about the vehicle and object, and evaluates whether the second set of collision circles contact or overlap to define a collision condition. If not, then the algorithm develops a third set of collision circles smaller than the first set but larger than the second set and arranged on the vehicle and object, and evaluates whether the third set of collision circles contact or overlap to define a collision condition. If not, then the algorithm returns a “no collision” condition wherein the collision potential is true.
[0079] Referring to Fig. 6, collision circles are constructed to ensure that the bounding box B of an object is entirely covered and cannot be reached without touching at least one collision circle. Given a bounding box having a longer side of length L and a smaller side of width W, the total number of collision circles needed N is determined according to Formula 1 below and in Fig. 7.Formula 1
[0080] The “+ 5” accounts for the four corner circles and the large all-encompassing circle.
[0081] The front corner circles CC4 and CC5 should overlap and be larger than the back circles CCe and CC7 so as to be more cautious of head-on collisions than rear-end collisions. The radius R .ontof the front circles CC4 and CC5 is calculated according to Formula 2 below and in Fig. 7. Formula 2 Rfront = 0.75 *w
[0082] Back collision circles CCe and CC7 need not overlap but only osculate, thus are equal to half of the width of the vehicle V.
[0083] The radius RbOdy° the body circles CC2 and CC3 is calculated according to Formula 3 below and in Fig. 7.Formula 3
[0084] where K is a buffer. The value of buffer K depends on the resolution of an occupancy grid that represents the travel area about bounding box B. Preferably, at least one grid cell shouldexist between a side of bounding box B and the closest body circle. In practice, K should be any non-zero number so as to ensure no edge of the bounding box is reachable without touching at least one collision circle.
[0085] The radius ?eof encompassing circle CCi is calculated to guard against any exposure of bounding box B according to Formula 4 below and in Fig. 7.Formula 4
[0086] Referring back to Fig. 5, vehicle collision circles VCCnand object collision circles OCCnare calculated as described above.
[0087] The first tier in the TC algorithm is to develop the two largest circles (OCCi and VCCi) and then evaluate whether they contact or overlap. If so, then the algorithm returns a “collision” condition wherein the collision potential is true and ceases further analysis.
[0088] If the algorithm returns a “no collision” condition, then the algorithm develops a second set of collision circles with perimeters that are closer to the vehicle and object, namely VCC4, VCC5, VCCe and VCC7, and OCC4, OCC5, OCCe and OCC7. Then the algorithm evaluates whether any of the vehicle collision circles VCC4, VCC5, VCCe and VCC7 contacts or overlaps any of the object collision circles OCC4, OCC5, OCCe and OCC7. If so, then the algorithm returns a “collision” condition wherein the collision potential is true and ceases further analysis.
[0089] If the algorithm returns a “no collision” condition, then the algorithm develops a third set of collision circles with perimeters that are closer to the vehicle and object, namely VCC2 and VCC3, and OCC2and OCC3. Then the algorithm evaluates whether any of the vehicle collision circles VCC2 and VCC3 contacts or overlaps any of the object collision circles OCC2 and OCC3. If so, then the algorithm returns a “collision” condition wherein the collision potential is true.
[0090] This algorithm, in the worst case scenario, is the most computationally expensive algorithm in the library. However, it is the most robust for finding true risk of collision because it considers both spatial and temporal components of the given trajectories. Ideally, when this algorithm is used in practice, it is used against the fewest number of unique dynamic obstacles, those determined to have the highest true risk of collision of all dynamic obstacles observed.
[0091] A number of embodiments have been described. Nevertheless, it will be understood that various modifications may be made. Accordingly, other embodiments are within the scope of the following claims.
[0092] While the principles of the invention have been described herein, it is to be understood by those skilled in the art that this description is made only by way of example and not as a limitation as to the scope of the invention. Other embodiments are contemplated within the scopeof the present invention in addition to the exemplary embodiments shown and described herein. Modifications and substitutions by one of ordinary skill in the art are considered to be within the scope of the present invention.
Claims
CLAIMS\Ne claim:1 . Method of determining a collision potential between a vehicle and an obstacle comprising: first determining a first potential; and if the first potential is true, then second determining a second potential; and if the second potential is true, then first defining the collision potential as true; else second defining the collision potential as false; else third defining the collision potential as false.
2. Method of claim 1 further comprising: determining whether to modify a navigation of a vehicle based on the collision potential and / or modifying a navigation of a vehicle based on the collision potential.
3. Method of claim 1 wherein said second determining relative to said first determining is: more accurate; more reliable; more complex; more computationally demanding; or combinations thereof.
4. Method of claim 1 further comprising, prior to said first defining: third determining a third potential; and if the third potential is true, then fourth defining the collision potential as true; else fifth defining the collision potential as false; and terminating the method.
5. Method of claim 4 wherein said third determining relative to said second determining is: more precise; more accurate; more complex; more computationally demanding; or combinations thereof.
6. Method of claim 1 wherein one of said first determining and said second determining comprises: determining a vehicle linear projection of the vehicle; determining an obstacle linear projection of the obstacle; and determining whether the vehicle linear projection and the obstacle linear projection interact.
7. Method of claim 1 wherein one of said first determining and said second determining comprises determining if a constant bearing, decreasing range (CBDR) condition exists between the vehicle and the obstacle.
8. Method of claim 1 wherein one of said first determining and said second determining comprises: defining a vehicle buffer relative to the vehicle; defining an object buffer relative to the object; and determining whether a distance between a closest predicted position of the obstacle relative to a planned vehicle position is less than a sum of the vehicle and the object buffer.
9. Method of claim 1 wherein one of said first determining and said second determining comprises determining whether a vehicle collision circle and an obstacle collision circle contact or overlap, thereby defining an interaction as true.
10. Method of claim 10 wherein the vehicle is entirely within the vehicle collision circle and / or the obstacle is entirely within the obstacle collision circle.11 . Method of claim 10 further comprising: if the interaction is true; then determining whether a second vehicle collision circle and / or a second obstacle collision circle contact or overlap, thereby defining a second interaction as true; else defining the collision potential as false.
12. Method of claim 11 wherein: the vehicle collision circle is larger than the second vehicle collision circle; and / or the obstacle collision circle is larger than the second obstacle collision circle.
13. Method of determining a collision potential between a vehicle and an obstacle comprising: determining a potential according to a check having a robustness; and if the potential is true, then, if the robustness equals a robustness level, then defining a collision potential as true, else: incrementing the robustness; and returning to said determining; else defining the collision potential as false.
14. Method of claim 13 further comprising: determining whether to modify a navigation of a vehicle based on the collision potential and / or modifying a navigation of a vehicle based on the collision potential.
15. Method of claim 13 wherein said incrementing renders said determining: more precise; more accurate; more complex; more computationally demanding; or combinations thereof.
16. Method of claim 13 wherein said determining comprises: determining a vehicle linear projection of the vehicle; determining an obstacle linear projection of the obstacle; and determining whether the vehicle linear projection and the obstacle linear projection interact.
17. Method of claim 13 wherein said determining comprises determining if a constant bearing, decreasing range (CBDR) condition exists between the vehicle and the obstacle.
18. Method of claim 13 wherein said determining comprises: defining a vehicle buffer relative to the vehicle; defining an object buffer relative to the object; and determining whether a distance between a closest predicted position of the obstacle relative to a planned vehicle position is less than a sum of the vehicle and the object buffer.
19. Method of claim 13 wherein said determining comprises determining whether a vehicle collision circle and an obstacle collision circle contact or overlap, thereby defining an interaction as true.
20. Method of claim 19 wherein the vehicle is entirely within the vehicle collision circle and / or the obstacle is entirely within the obstacle collision circle.21 . Method of claim 19 further comprising: if the interaction is true; then determining whether a second vehicle collision circle and / or a second obstacle collision circle contact or overlap, thereby defining a second interaction as true; else defining the collision potential as false.
22. Method of claim 21 wherein: the vehicle collision circle is larger than the second vehicle collision circle; and / or the obstacle collision circle is larger than the second obstacle collision circle.
23. Method of determining a collision potential between a vehicle and an obstacle comprising: setting x equal to 1 ; executing check x of n checks; if check x is true, then, if x is less than n, then indexing x by 1 ; and returning to said executing; else defining the collision potential as true; else defining the collision potential as false.
24. Method of claim 23 further comprising: determining whether to modify a navigation of a vehicle based on the collision potential and / or modifying a navigation of a vehicle based on the collision potential.
25. Method of claim 23 wherein check x + 1 relative to check x is: more accurate; more reliable; more complex; more computationally demanding; or combinations thereof.
26. Method of claim 23 wherein check x comprises: determining a vehicle linear projection of the vehicle; determining an obstacle linear projection of the obstacle; and determining whether the vehicle linear projection and the obstacle linear projection interact.
27. Method of claim 23 wherein check x comprises determining if a constant bearing, decreasing range (CBDR) condition exists between the vehicle and the obstacle.
28. Method of claim 23 wherein check x comprises: defining a vehicle buffer relative to the vehicle; defining an object buffer relative to the object; and determining whether a distance between a closest predicted position of the obstacle relative to a planned vehicle position is less than a sum of the vehicle and the object buffer.
29. Method of claim 23 wherein check x comprises determining whether a vehicle collision circle and an obstacle collision circle contact or overlap, thereby defining an interaction as true.
30. Method of claim 29 wherein the vehicle is entirely within the vehicle collision circle and / or the obstacle is entirely within the obstacle collision circle.31 . Method of claim 29 further comprising: if the interaction is true; then determining whether a second vehicle collision circle and / or a second obstacle collision circle contact or overlap, thereby defining a second interaction as true; else defining the collision potential as false.
32. Method of claim 31 wherein: the vehicle collision circle is larger than the second vehicle collision circle; and / or the obstacle collision circle is larger than the second obstacle collision circle.
33. Method of determining a collision potential between a vehicle and an obstacle comprising: selecting an unselected check from a plurality of checks and re-defining the unselected check as a selected check; executing the selected check; if a result of said executing is true, then if an unselected check exists in the plurality of checks, then returning to said selecting; else defining a collision potential as true; else defining a collision potential as false.
34. Method of claim 33 further comprising: determining whether to modify a navigation of a vehicle based on the collision potential and / or modifying a navigation of a vehicle based on the collision potential.
35. Method of claim 33 wherein each the unselected check relative to a selected check is: more accurate; more reliable; more complex; more computationally demanding; and combinations thereof.
36. Method of claim 33 wherein one of said first determining and said second determining comprises: determining a vehicle linear projection of the vehicle; determining an obstacle linear projection of the obstacle; and determining whether the vehicle linear projection and the obstacle linear projection interact.
37. Method of claim 33 wherein one of said first determining and said second determining comprises determining if a constant bearing, decreasing range (CBDR) condition exists between the vehicle and the obstacle.
38. Method of claim 33 wherein one of said first determining and said second determining comprises: defining a vehicle buffer relative to the vehicle; defining an object buffer relative to the object; and determining whether a distance between a closest predicted position of the obstacle relative to a planned vehicle position is less than a sum of the vehicle and the object buffer.
39. Method of claim 33 wherein one of said first determining and said second determining comprises determining whether a vehicle collision circle and an obstacle collision circle contact or overlap, thereby defining an interaction as true.
40. Method of claim 39 wherein the vehicle is entirely within the vehicle collision circle and / or the obstacle is entirely within the obstacle collision circle.41 . Method of claim 39 further comprising: if the interaction is true; then determining whether a second vehicle collision circle and / or a second obstacle collision circle contact or overlap, thereby defining a second interaction as true; else defining the collision potential as false.
42. Method of claim 41 wherein: the vehicle collision circle is larger than the second vehicle collision circle; and / or the obstacle collision circle is larger than the second obstacle collision circle.
Citation Information
Patent Citations
Simultaneous representation of moving and static obstacles for automatically controlled vehicles
US20190108764A1
Adaptation of an evaluable scanning area of sensors and adapted evaluation of sensor data
US20200033863A1
Collision prediction and avoidance for vehicles
US20200086855A1
Collision monitoring using system data
US20210139024A1