This document relates to tools (systems, apparatuses, methodologies, computer program products, etc.) for semi-autonomous and autonomous control of vehicles, and more particularly, a radar measurement compensation for autonomous vehicles.
Autonomous vehicle navigation is a technology for sensing the position and movement of a vehicle and, based on the sensing, autonomously controlling the vehicle to navigate towards a destination. Autonomous vehicle navigation can have important applications in transportation of people, goods and services. In order to ensure the safety of the vehicle, as well as people and property in the vicinity of the vehicle, autonomous algorithms implemented by these applications, various measurement data is obtained.
Disclosed are devices, systems and methods for compensating ambiguity in radar measurements of autonomous vehicles. The suggested technology can be applied to compensate velocity measurements of radar measurements.
In one aspect, the disclosed technology can be used to provide a method for compensating radar measurements of a vehicle. The exemplary method includes generating a set of velocity hypotheses of a target object based on a first measurement data obtained from sensors mounted on the autonomous vehicle; generating cluster velocity estimates by applying a clustering algorithm to a second measurement data obtained from the sensors; and providing one or more selected velocity hypotheses from the set of velocity hypothesis as compensated radar measurements for the target object based on the cluster velocity estimates.
In another exemplary aspect, the above-described method is embodied in a non-transitory computer readable storage medium. The non-transitory computer readable storage medium includes code that when executed by a processor, causes the processor to perform the methods described in this patent document.
In yet another exemplary embodiment, a device that is configured or operable to perform the above-described methods is disclosed.
The above and other aspects and features of the disclosed technology are described in greater detail in the drawings, the description and the claims.
The transportation industry has been undergoing considerable changes in the way technology is used to control the operation of the vehicles. An autonomous vehicle is provided with a radar (radio detection and ranging) system to enable a vehicle to operate in a partially or fully autonomous mode. The radar system uses radar sensors to capture data regarding an environment through which the autonomous vehicle traverses and use this data to detect information about target objects in the environment to avoid collisions. For example, the radar system may measure the distance between the vehicle and another vehicle navigating in front of the vehicle and the radar data is used to determine control operations, such as route navigation, speed control, and obstacle avoidance. Various implementations of the disclosed technology provide a system and a method for providing more accurate radar measurements by compensating ambiguity in radar measurements. The measurements compensated by using the disclosed technology may include velocity measurements that are obtained from the radar system, for example, radar sensors. The suggested technique can be applied to the radar system provided at various positions of the vehicle, for example, a front, a rear, and/or a side of the vehicle. Although the radar sensors are discussed in this patent document as providing the radar measurements, the suggested technology can be implemented using any other sensors that generate range-doppler measurement from RF waves.
It has been observed that conventional radar systems sometimes provide incorrect or ambiguous velocity measurements especially when the target object 120 is at relatively high speeds. The incorrect or ambiguous velocity measurements on high speed target objects limit the velocity measuring capability of the radar detection and make the radar system not suitable for highway scenarios when vehicles move on relatively high speeds. For example, when the speed of a target object relative to an ego vehicle is expected to be a negative value, a positive speed can be detected. Such detection is considered incorrect. Because when the target object is a static object on the roadside in the direction of the ego vehicle traveling, such as a parked vehicle or a traffic sign, the target object is expected to have a negative value of the speed relative to the ego vehicle as the ego vehicle is approaching the static object. Such incorrect or ambiguous measurements can be caused by the physical nature of the radars. As an automatic driving is getting popular, there have been much efforts to improve an accuracy of radar measurements and apply the radar measurement techniques to relatively high speed scenarios.
Referring to
The example graph as shown in
The truck is configured to provide egomotion information of the truck (v_ego) to the velocity hypothesis module of the measurement compensation system. In some implementations, the egomotion information is related to the 3D motion of the truck within an environment relative to a scene and obtained using at least one sensor (e.g., positioning/motion sensors, an image sensor, a distance sensor, and combinations thereof) or a wheel encoder. For example, the positioning/motion sensors may be provided as a Global Navigation Satellite System (GNSS)-Inertial Measurement Unit (IMU) package and the egomotion information can be obtained by processing the sequence of GNSS-IMU signals. For example, the sensor is an image sensor such as a camera and the egomotion information is determined by processing a sequence of images taken by the camera. For example, the wheel velocity can be directly read from the wheel encoder. This egomotion information can be used to determine the movement of the truck. The velocity hypothesis module is configured to receive, from the truck, (1) the egomotion information from the truck and further receive, from the radar system mounted on the truck, radar output that includes (2) velocity measurement information such as the ambiguity free velocity range (v_ambig) and/or velocity information (fvelocity), and (3) range measurement information such as range, azimuth and/or RCS (radar cross section) information for the cluttering and clustering. The velocity hypothesis module receives the above items (1) to (3) and the measurement compensation system is configured to compensate the item (2) to be discussed below. In the example, the range measurement information is provided as a point chart of radar measurements.
The velocity hypothesis module is further configured to generate velocity hypothesis (vh) based on the received egomotion information and the received radar output, e.g., the velocity measurement information. To generate the velocity hypothesis, a ground speed range is predetermined and provided to the velocity hypothesis module. The velocity measurement information can be combined with a chart showing velocity outputs and the catalyst from other sources, for example, optometry and other speed measurements that are available on the chart.
In the example case, when v_ego = 20 (i.e., the speed of the ego vehicle) and the ground speed range is [-50, 50], the velocity hypothesis module derives the relative speed range as [-70, 30]. The relative speed range corresponds to the range of the speed of the truck with respect to the ground speed range. When the radar output provides v_ambig=30 (i.e., ambiguity free velocity range) and fVelocity = 10, the velocity hypothesis module generates velocity hypotheses, e.g., [-50, -20, 10, 40]. As explained earlier, speed measurements at the values of -50, -20, 10, and 40 can appear as the value of 10 in radar outputs given the ambiguity free velocity range being 30. This is because the output is equal to a summation of each raw range rate (i.e. -50, -20, 10, and 40) and the ambiguity free velocity range multiplied by n. For example, -50 plus 30*n (n being 2) is equal to 10. The velocity hypothesis module generates the velocity hypotheses following the same relationship mentioned above.
The clutter filtering module is applied to the radar output to remove low RCS points as they usually belong to ground reflection. The ground reflection can be one of the contributors to measurement uncertainty in characterization of RCS of automotive objects. The radar signal includes the clutter signal that is generally with low-amplitude and random occurrence. The clutter signal is an obstacle to detect the target object and thus the clutter filtering is performed to remove the clutter signal from the radar output. The clutter filtering can correspond to the first step of the radar data processing. The clutter filtering module can employ various filtering algorithms to eliminate undesired clutter interferences.
The clustering and tracking module is configured to receive the filtered radar output from the clutter filtering module and generate cluster velocity estimates. The operations of the clustering and tracking module can correspond to the second step of the radar data processing that is performed subsequent to the first step, i.e., the clutter filtering. The clustering and tracking module is configured to cluster the filtered radar output such that the filtered radar output is clustered as groups, a group of data sharing common features, such as overlapping data, shared statistical properties, etc. While the radar output can provide, for example, hundreds of points per frame, the clustering can create, for example, tens of clusters per frame from the radar points, thus improving the efficiency by matching the clusters instead of the points frame-by-frame to determine the velocity of the target object. The clustering and the tracking module can employ various data clustering algorithms. For example, the clustering and the tracking module performs the clustering via DBSCAN (density-based spatial clustering of applications with noise) using a position weighted by RCS. To improve the clustering resolution, the radar field of view (FOV) is divided in multiple areas based on the y values and performs DBSCAN for each area. In some implementations, the clustering and tracking module generates the cluster velocity estimates based on a range difference of matched clusters in two frames.
In addition, the clustering and tracking module is configured to perform the cluster tracking by applying various algorithms. For example, the tracking algorithm may comprise two parts, which include a data association and a state estimation. For example, the nearest-neighbour association (Munkres) can be employed for the data association to match the clusters between sequences of frames. For example, extended Kalman filter (EKF) can be employed for the state estimation to provide the cluster position/velocity estimates. The velocities of a tracked cluster (vc), i.e., a cluster that is associated with the previous cluster is directly provided by the state estimation algorithm. The velocities are calculated based on a distance difference between the associated clusters in two frames. For the un-tracked clusters that appear for the first time (i.e., not associated with any previous clusters), an initial guess of velocity is used. It has been observed that the radar system often generates a few measurement points from a vehicle target, typically below 10 points. Thus, only the small-sized clusters are considered as moving targets and tracked, while the big ones are considered as static (i.e., vc=-v_ego). After the clustering and tracking operations, the clustering and tracking module provides range and velocity estimates as its outputs.
The hypothesis scoring module is configured to receive velocity hypotheses output from the velocity hypothesis module and the range-based cluster velocity estimates output from the clustering and tracking module. The hypothesis scoring module compares the range-based cluster velocity estimates that are output from the clustering and tracking module with the velocity hypotheses that are output from the velocity hypothesis module. The hypothesis scoring module scores each velocity hypothesis while the score of a velocity hypothesis provides information as to how most likely that velocity hypothesis is considered as correct. In some implementations, for all radar points, the score of each of its velocity hypothesis (vh) is calculated using a predefined algorithm. In the specific example, the predefined algorithm uses the following equation: (vh-vc)-2, where vc is the velocity of a cluster which the radar point belongs to and vh is the velocity hypothesis. If the radar point does not belong to any cluster (isolated point), it is considered as static, i.e., vh=-v_ego. The hypothesis scoring module is designed to provide a predetermined number of hypotheses as its output. In the example, two hypotheses with the first highest scores and the second highest scores are output from the hypothesis scoring module. It is appreciated that the selection of the optimal hypotheses is not limited to selecting the first and the second highest scores, more or less hypotheses can be selected based on the scores.
The hypothesis scoring module has been explained as the example algorithm/element that determines an output of the measurement compensation system by scoring each velocity hypothesis based on the range-based cluster velocity estimates output from the clustering and tracking module. However, the hypothesis scoring module is the example only and various other algorithms/elements can be applied to the measurement compensation system as to which hypothesis is to be selected as its output and as to how the range-based cluster velocity estimates output is utilized. The measurement compensation system is configured to provide its output as compensated radar measurement by using the clustering algorithm to generate cluster velocity estimates based on the range difference of matched clusters in two frames. With the suggested compensation techniques, it is possible to avoid and remove incorrect or ambiguous radar measurements, which allows in real time to obtain more accurate radar measurements.
The testing results show the proposed techniques are feasible and provide improved accuracy for the radar measurements. The suggested compensation technique is implemented in real-time for the testing.
The suggested techniques can be implemented using machine learning/artificial intelligence (AI) applications that perform various types of data analysis to automate analytical model building. For example, the machine learning/AI applications employ algorithms to evaluate feedback data from the measurement compensation system and suggest recommendations for the implementation of the measurement compensation system. For example, the machine learning/AI applications employ algorithms to apply to generate a velocity hypothesis and/or cluster the radar points and also make suggestions for an optimized equation for scoring the velocity hypothesis. The machine learning/AI applications consider various real time conditions such as: how many vehicles exist on the road, any weather conditions that can affect to the radar measurements, etc. By applying the machine learning/AI applications to the measurement compensation techniques suggested in this patent document, it is possible to continue improving the algorithms of the measurement compensation technique to further reduce ambiguity in radar measurements obtained from the vehicle.
Embodiments of the disclosed technology include a device for compensating measurements of a vehicle that includes a processor and a memory that comprises instructions stored thereupon, wherein the instructions when executed by the processor configure the processor to generate a set of velocity hypotheses of a target object based on a first measurement data obtained from sensors mounted on a vehicle; generate cluster velocity estimates by applying a clustering algorithm to a second measurement data obtained from the sensors; and provide one or more selected velocity hypotheses from the set of velocity hypothesis as compensated measurements for the target object. The instructions further configure the processor to compare the cluster velocity estimates with the set of velocity hypotheses to determine scores of each velocity hypothesis, and wherein the one or more selected velocity hypotheses are provided based on the scores.
Embodiments of the disclosed technology include a non-transitory computer-readable program storage medium having instructions stored thereon, the instructions, when executed by a processor, causing the processor to perform a method comprising: generating a set of velocity hypotheses of a target object based on a first measurement data obtained from sensors mounted on a vehicle; generating cluster velocity estimates by applying a clustering algorithm to a second measurement data obtained from the sensors; and providing one or more selected velocity hypotheses from the set of velocity hypothesis as compensated measurement data of the target object. The method may further include determining scores of each velocity hypothesis based on the cluster velocity estimates, and the one or more selected velocity hypotheses are provided based on the scores.
Implementations of the subject matter and the functional operations described in this patent document can be implemented in various systems, digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of one or more of them. Implementations of the subject matter described in this specification can be implemented as one or more computer program products, e.g., one or more modules of computer program instructions encoded on a tangible and non-transitory computer readable medium for execution by, or to control the operation of, data processing apparatus. The computer readable medium can be a machine-readable storage device, a machine-readable storage substrate, a memory device, a composition of matter effecting a machine-readable propagated signal, or a combination of one or more of them. The term “data processing unit” or “data processing apparatus” encompasses all apparatus, devices, and machines for processing data, including by way of example a programmable processor, a computer, or multiple processors or computers. The apparatus can include, in addition to hardware, code that creates an execution environment for the computer program in question, e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of them.
A computer program (also known as a program, software, software application, script, or code) can be written in any form of programming language, including compiled or interpreted languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program does not necessarily correspond to a file in a file system. A program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub programs, or portions of code). A computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network.
The processes and logic flows described in this specification can be performed by one or more programmable processors executing one or more computer programs to perform functions by operating on input data and generating output. The processes and logic flows can also be performed by, and apparatus can also be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit).
Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, a processor will receive instructions and data from a read only memory or a random access memory or both. The essential elements of a computer are a processor for performing instructions and one or more memory devices for storing instructions and data. Generally, a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto optical disks, or optical disks. In some implementations, however, a computer may not need such devices. Computer readable media suitable for storing computer program instructions and data include all forms of nonvolatile memory, media and memory devices, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices. The processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.
While this patent document contains many specifics, these should not be construed as limitations on the scope of any invention or of what may be claimed, but rather as descriptions of features that may be specific to particular embodiments of particular inventions. Certain features that are described in this patent document in the context of separate embodiments can also be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment can also be implemented in multiple embodiments separately or in any suitable subcombination. Moreover, although features may be described above as acting in certain combinations and even initially claimed as such, one or more features from a claimed combination can in some cases be excised from the combination, and the claimed combination may be directed to a subcombination or variation of a subcombination.
Similarly, while operations are depicted in the drawings in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. Moreover, the separation of various system components in the embodiments described in this patent document should not be understood as requiring such separation in all embodiments.
Only a few implementations and examples are described and other implementations, enhancements and variations can be made based on what is described and illustrated in this patent document.
This patent document claims the priority to and the benefits of U.S. Provisional Application No.: 63/266,170 entitled “RADAR MEASUREMENT COMPENSATION TECHNIQUES” filed on Dec. 29, 2021. The entire disclosure of the aforementioned application is hereby incorporated by reference as part of the disclosure of this application.
Number | Date | Country | |
---|---|---|---|
63266170 | Dec 2021 | US |