Radar tracked object velocity and / or yaw
Patent Information
- Application Number
- JP2022549949
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2020-02-19
- Filing Date
- 2021-02-19
- Publication Date
- 2025-03-05
- Estimated Expiration
- 2041-02-19
Smart Images

Figure 0007640567000008 
Figure 0007640567000009 
Figure 0007640567000010
Abstract
Description
[Technical field]
[0001] This disclosure relates to radar tracked object velocity and / or yaw. [Background technology]
[0002] This PCT application claims priority to U.S. Patent Application No. 16 / 795,411, filed February 19, 2020, and is incorporated herein by reference.
[0003] An autonomous vehicle may use a radar sensor to capture data about the environment through which the autonomous vehicle travels and use this data to detect objects within the environment to avoid collisions. Some radar sensors may provide a Doppler measurement that indicates the relative speed of the object to the speed of the radar sensor. However, the Doppler measurement only provides the relative speed of the object to the radar sensor. In other words, the Doppler measurement is a one-dimensional speed and does not identify the yaw rate of the object, which may be necessary for safe operation in some environments, such as for use in an autonomous vehicle. [Brief description of the drawings]
[0004] The detailed description will now be described with reference to the accompanying drawings, in which the leftmost digit(s) of a reference number identifies the figure in which the reference number first appears. Use of the same reference number in different figures indicates similar or identical features.
[0005] [Figure 1] FIG. 1 illustrates an example scenario in which an autonomous vehicle configured with perception and tracking components may track previous and current positions, speeds, and / or headings of objects in an environment surrounding the autonomous vehicle, and generate, at least in part, a trajectory for controlling the autonomous vehicle based on that tracking. [Diagram 2] FIG. 1 is a block diagram illustrating an example architecture of a system for determining velocity in more than one dimension from radar data associated with an object. [Diagram 3]FIG. 13 is a pictorial flow diagram of an exemplary process for determining a return associated with an object and determining velocity and / or yaw rate in two or more dimensions from radar data associated with the object. [Figure 4] FIG. 1 is a pictorial flow diagram illustrating an example process for determining velocity and / or yaw rate in more than one dimension from radar data associated with an object. [Diagram 5] FIG. 1 is a pictorial flow diagram illustrating an example process for determining velocity and / or yaw rate in more than one dimension from radar data associated with an object. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0006] The techniques described herein are directed to characterizing the movement of an object in an environment based on radar data. For example, the techniques may include determining one or more radar returns associated with an object in an environment of a radar sensor and determining a two (or more) dimensional velocity and / or yaw rate for the object based at least in part on the returns. While many systems may benefit from the techniques described herein, an example system implementing the techniques of the present disclosure may include an autonomous vehicle having one or more radar sensors (and / or sensors of other or different modalities). The techniques may additionally or alternatively include determining a trajectory associated with the object. The trajectory may include a velocity determined according to the techniques discussed herein, and / or previous, current, and / or predicted velocity, position, yaw rate, orientation, acceleration, and / or the like. In some examples, the tracking may identify that an object detected by previous sensor data is the same object detected in the current sensor data.
[0007] The technique may include receiving radar data associated with an environment, detecting an object in the environment based at least in part on the radar data and / or data from one or more other sensors, and identifying a subset of the radar data associated with the object. The subset of the radar data may be used to determine a velocity associated with the object. For example, U.S. Patent Application No. 16 / 386,249, filed April 16, 2019, and U.S. Patent Application No. 16 / 587,605, filed September 30, 2019, both of which describe detecting objects based at least in part on radar data and are incorporated herein in their entireties. In the following discussion, the velocity determined by the technique may include two-dimensional or three-dimensional velocity and / or rotational velocity, such as yaw rate, unless otherwise specified. In such examples, the velocity may additionally or alternatively include one or more of linear velocity and rotational velocity.
[0008] In a first implementation of the present technology, determining the yaw rate and / or velocity may include receiving a subset of radar data associated with the object and determining whether a holonomic solution exists for a rigid body estimation based on the subset of the radar data. For example, the rigid body estimation may include holonomic constraints selected to reflect physical constraints, such as the assumption that an object, such as a vehicle, does not slide laterally. The holonomic solution may be a two-dimensional velocity and yaw rate that solves the rigid body estimation using linear regression, Cauchy regression, and / or reweighted regression while satisfying the holonomic (physical) constraints. In some examples, prior to determining the velocity and / or yaw rate, the present technology may include removing outliers, for example, using a random sample consensus (RANSAC) algorithm.
[0009] If a holonomic solution does not exist (e.g., no solution exists that satisfies the physical constraints), the first implementation may include determining whether the subset of the radar data satisfies each rule of a set of rules, which is a more complex physical constraint check. If all of the rules are satisfied, the first implementation may include determining a two-dimensional velocity associated with the object, but may not be able to determine the yaw rate. If any of the rules are not satisfied, the first implementation may include determining a one-dimensional velocity of the object based at least in part on Doppler measurements indicated by the subset of the radar data. In such an example, the yaw rate may not be available, which may be problematic for tracking the object, providing a prediction of the object's future position, or the like.
[0010] In other words, according to a first implementation, the technique may include attempting a rigid body estimation using a subset of radar points to obtain a solution that includes velocity and yaw rate. However, a rigid body estimation solution may not exist because it involves a multivariate regression that does not converge or violates a holonomic constraint imposed on the solution. If the solution is intractable, the first implementation may include checking to determine whether a set of constraints is satisfied, and if so, determining the velocity based on a dual velocity determination, where the first determination is based on a Doppler value associated with the radar points and the second determination is based on the assumption that the velocity is in the yaw direction. If any one of the constraints is not satisfied, the first implementation may be relegated to relying on a range rate (e.g., Doppler) associated with the object.
[0011] In additional or alternative embodiments, a technique for determining a yaw rate and / or velocity associated with an object may include receiving a set of radar data associated with the object, rejecting outliers from the set using a Random Sample Consensus (RANSAC) technique to determine a subset of radar points, and generating two different data structures based at least in part on the subset of radar data. The first data structure may include a yaw rate assumption, while the second data structure may not have a yaw rate assumption. Both data structures may be used as observed variables in part of a regression algorithm to determine a two (or more) dimensional velocity and yaw rate associated with the object. In some examples, the technique may include determining a first error associated with the first data structure and determining a second error associated with the second data structure. Whichever data structure results in a yaw rate and / or velocity associated with the lower of the two errors may be associated with the object and output by the system.
[0012] For example, the techniques may include inputting a first data structure having a subset of radar data and a yaw rate assumption based at least in part on a track associated with the object. The techniques may also include inputting the subset of radar data into a second data structure, but excluding the yaw rate assumption. The techniques may include determining a first yaw rate and a first velocity based at least in part on solving a linear regression with the first data structure, and determining a second yaw rate and a second velocity based at least in part on solving a linear regression with the second data structure. A first error may be determined associated with the first data structure, and a second error may be determined associated with the second data structure. The techniques may include selecting a yaw rate and / or velocity associated with a lower error between the first error and the second error.
[0013] In some examples, the techniques may additionally or alternatively include fusing the first and second data structures into a single data structure that includes the yaw hypotheses and determining the velocity and / or yaw rate based at least in part on the weighted regression. The weighted regression may functionally turn up or down the influence of the yaw rate hypotheses and may turn off the yaw hypotheses. Because the weighted regression may serve to reject or downweight the influence of outliers, the outlier rejection pre-processing operation (e.g., applying RANSAC to a subset of the radar data associated with the object) may be discarded in some examples.
[0014] In some examples, the techniques may additionally or alternatively include determining one or more covariances associated with the selected data structure, and determining the yaw rate and / or velocity may include providing the selected data structure and the one or more covariances to a Kalman filter, in such cases, the Kalman filter receives the selected data structure and the one or more covariances as inputs. The Kalman filter may additionally or alternatively receive the tracks as inputs and may update state associated with the object indicated by the tracks. In examples where a first data structure including a yaw hypothesis is selected, the covariances may be used to weight the yaw hypothesis.
[0015] The techniques discussed herein may improve vehicle safety by improving the vehicle's ability to predict the motion and / or behavior of objects around the vehicle. The techniques may improve the accuracy and / or availability of two or more dimensional speed detection based on radar data. For example, the techniques discussed herein result in less or no two object detection artifacts caused by conventional techniques when a detected object is turning. Furthermore, the techniques discussed herein remove the need for manually tuned physical constraint rules, reducing or eliminating the need to experiment with the system during setup, increasing the ease of troubleshooting the system, reducing the accuracy of the system, and reducing the number of outlier scenarios that are not adequately reflected by manually tuned physical constraint rules.
[0016] (Example scenario) FIG. 1 illustrates an exemplary scenario 100 including a vehicle 102. In some examples, the vehicle 102 may be an autonomous vehicle configured to operate according to a Level 5 classification issued by the National Highway Traffic Safety Administration, which describes a vehicle capable of performing all safety-critical functions for every trip, with no driver (or passenger) expected to control the vehicle at any time. However, in other examples, the vehicle 102 may be a fully or partially autonomous vehicle having any other level or classification. It is contemplated that the techniques discussed herein may be applied beyond robotic control of autonomous vehicles, etc. For example, the techniques discussed herein may be applied to mining, manufacturing, augmented reality, etc. Additionally, while the vehicle 102 is depicted as a land vehicle, the vehicle 102 may be a spacecraft, a seaplane, and / or the like. In some examples, the vehicle 102 may be represented in a simulation as a simulated vehicle. For simplicity, the discussion herein does not distinguish between simulated and real-world vehicles. Thus, references to a "vehicle" may refer to a simulated vehicle and / or a real-world vehicle.
[0017] In accordance with the techniques discussed herein, the vehicle 102 may receive sensor data from sensors 104 of the vehicle 102. For example, the sensors 104 may include position sensors (e.g., Global Positioning System (GPS) sensors), inertial sensors (e.g., acceleration sensors, gyro sensors, etc.), magnetic sensors (e.g., compasses), position / speed / acceleration sensors (e.g., speedometers, driveline sensors), depth position sensors (e.g., lidar sensors, radar sensors, sonar sensors, time-of-flight (ToF) cameras, depth cameras, ultrasonic and / or sonar sensors, and / or other depth-sensing sensors), image sensors (e.g., cameras), audio sensors (e.g., microphones), and / or environmental sensors (e.g., barometers, hygrometers, etc.).
[0018] The sensors 104 may generate sensor data, which may be received by a computing device 106 associated with the vehicle 102. However, in other examples, some or all of the sensors 104 and / or computing devices 106 may be separate from and / or located remotely from the vehicle 102, and data capture, processing, command, and / or control may be communicated to or from the vehicle 102 by one or more remote computing devices over wired and / or wireless networks.
[0019] The computing device 106 may include a memory 108 that stores a perception component 110, a planning component 112, and / or a tracking component 114. In some examples, the perception component 110 may include a radar component 116 configured to determine a yaw rate and / or a velocity of an object based at least in part on the radar data. The perception component 110, the planning component 112, the tracking component 114, and / or the radar component 116 may include one or more machine learning (ML) models and / or other computer-executable instructions.
[0020] In general, the perception component 110 may determine what is in the environment surrounding the vehicle 102, and the planning component 112 may determine how to operate the vehicle 102 according to the information received from the perception component 110. For example, the planning component 112 may determine a trajectory 118 based at least in part on the perception data and / or other information, such as, for example, one or more maps, localization information (e.g., the location of the vehicle 102 in the environment relative to the maps and / or features detected by the perception component 110), etc. The trajectory 118 may include instructions for a controller of the vehicle 102 to operate the drive components of the vehicle 102 to achieve a steering angle and / or steering rate, which may result in a vehicle position, a vehicle speed, and / or a vehicle acceleration. For example, the trajectory 118 may include a target heading, a target steering angle, a target steering rate, a target position, a target speed, and / or a target acceleration for the controller to track. In some examples, the controller may include software and / or hardware for operating the drive components of the vehicle 102 sufficient to track the trajectory 118. For example, the controller may include one or more proportional-integral-derivative (PID) controllers.
[0021] In some examples, the perception component 110 receives sensor data from the sensors 104 and determines data related to objects in the vicinity of the vehicle 102 (e.g., object classifications, instance segmentation, semantic segmentation, two-dimensional and / or three-dimensional bounding boxes, tracking associated with detected objects), route data specifying the vehicle's destination, global map data identifying road features (e.g., features detectable by different sensor modalities useful for localizing an autonomous vehicle), local map data identifying features detected in the vicinity of the vehicle (e.g., positions and / or dimensions of buildings, trees, fences, fire hydrants, stop signs, and any other features detectable by various sensor modalities), tracking data (e.g., environment representations, object detection and / or tracking as discussed herein), and the like.
[0022] In some examples, the perception component 110 may include a hardware and / or software pipeline and may include one or more GPUs, ML models, Kalman filters, and / or the like. In some examples, the perception component 110 may monitor as much of the environment around the autonomous vehicle as possible, which may be limited by sensor capabilities, object and / or environmental occlusions (e.g., buildings, elevation differences, objects in front of other objects), and / or environmental effects such as fog, snow, etc. For example, sensor data may include radar data that the perception component 110 may receive as input. The perception component 110 may be configured to detect as much object and environmental information as possible to avoid not considering events or object behaviors that should be considered by the planning component 112 in determining the trajectory 118.
[0023] In some examples, one or more components of the perception component 110 may determine a subset of radar data associated with an object, such as the vehicle 120 in the example scenario 100. The radar component 116 may nevertheless receive at least a subset of the radar data associated with the object and may determine a two (or more) dimensional velocity associated with the object according to the techniques discussed herein. For example, the velocity 122 may be a velocity having at least two components, such as a lateral component, a longitudinal component, and / or a yaw component, relative to a coordinate frame 124. The coordinate frame may be a coordinate system oriented based on the environment, the roadway or path, an inertial motion direction associated with the autonomous vehicle 102, and / or the like. The depicted coordinate frame 124 may be relative to the attitude of the autonomous vehicle.
[0024] In some examples, the speed determined by the techniques discussed herein may be provided to a prediction component of the perception component 110 and / or the planning component 112. The prediction component may use the speed to predict a future state of the detected object based at least in part on the speed, such as a predicted trajectory (e.g., a predicted heading, a predicted speed, a predicted path). In additional or alternative examples, the speed may be provided to the planning component 112 for the planning component 112 to determine a trajectory 118 for controlling the autonomous vehicle 102. The planning component 112 may determine the trajectory 118 based at least in part on the predicted trajectory and / or the speed determined by the radar component 116.
[0025] In some examples, the radar component 116 may additionally or alternatively estimate a center of the detected object and / or a size and / or magnitude of the detected object based at least in part on a subset of the radar data associated with the object.
[0026] The object classification determined by the perception component 110 may distinguish between different object types, such as, for example, a vehicle, a pedestrian, a bicycle, a delivery truck, a semi-truck, a traffic sign, and / or the like. The tracking may include previous, current, and / or predicted object position, velocity, acceleration, and / or heading. The data generated by the perception component 110 may be collectively referred to as perception data and may include speed 122 and / or yaw rate 126 determined according to the techniques discussed herein. Once the perception component 110 generates the perception data, the perception component 110 may provide the perception data to the planning component 112. In some examples, the perception data may include the output of a sensor specific pipeline (e.g., vision, lidar, radar) and / or a hybrid sensor pipeline (e.g., vision-lidar, radar-lidar).
[0027] Figure 1 also illustrates an example of an error caused by the prior art. The first implementation described above may result in two regions of interest being assigned to an object, shown as "double region of interest 128" in Figure 1. This problem is likely to occur when the detected vehicle is turning on its yaw axis, etc.
[0028] The tracking component 114 may receive sensor data and / or object detections from the sensor and / or perception component 110 and determine whether to associate a previously generated track with the current object detection or generate a new track in association with the current object detection. In other words, the tracking component 114 identifies whether a recently detected object has been previously detected and tracks information associated with the detected object. The tracking component 114 may output tracks associated with the detected object that identify the historical, current, and / or predicted position, heading, speed, acceleration, yaw rate, sensory data (e.g., areas of interest, occlusion situations such as whether all or part of the object is / was hidden from one or more sensors) and / or the like associated with the object. In some examples, the tracking information may be included as part of the sensory data output by the perception component 110.
[0029] In some examples, the tracking may additionally or alternatively include various current and / or previous data regarding the object useful to the planning component of the autonomous vehicle to predict the motion / behavior of the object and determine a trajectory and / or path for controlling the autonomous vehicle. For example, the tracking may additionally or alternatively include an indication of the area of the environment currently and / or previously occupied by the object, an object classification (e.g., vehicle, large vehicle, pedestrian, bicycle) associated with the object, a current / or previous direction of travel associated with the object, a current / or previous speed and / or acceleration of the object, and a current position and / or velocity of the object. For example, the tracking may associate with the same tracking a region of interest (ROI) (e.g., a bounding box, mask, some other identification that an area of the environment is occupied by the object) generated by the perception component. The ROI may be associated with the detected object, the object classification of the object, the direction of travel of the object, the speed and / or acceleration of the object, the height of the object, and / or the like.
[0030] The planning component 112 may use the perception data received from the perception component 110 and / or the tracking component 114 to determine one or more trajectories, control the operation of the vehicle 102 to traverse a path or route, and / or otherwise control the operation of the vehicle 102, although any such operations may be performed in various other components (e.g., localization may be performed by a localization component, which may be based at least in part on the perception data). For example, the planning component 112 may determine a path for the vehicle 102 from a first location to a second location, substantially simultaneously and based at least in part on the perception data and / or simulated perception data (which may further include predictions regarding objects detected in the data), generate a number of potential trajectories for controlling the operation of the vehicle 102 according to a receding horizon technique (e.g., within a microsecond, half a second), and select one of the potential trajectories as the trajectory 118 of the vehicle 102 that may be used to control the vehicle to traverse the path (e.g., to avoid any of the detected objects) and generate drive control signals that may be transmitted to drive components of the vehicle 102. FIG. 1 shows an example of such a trajectory 118, represented as arrows indicating direction of travel, speed, and / or acceleration, but the trajectory itself may include instructions to a controller, which in turn may operate the drive system of the vehicle 102.
[0031] (Example System) FIG. 2 illustrates a block diagram of an example system 200 that implements the techniques discussed herein. In some examples, the example system 200 may include a vehicle 202, which may represent the vehicle 102 of FIG. 1. In some examples, the vehicle 202 may be an autonomous vehicle configured to operate according to a Level 5 classification issued by the National Highway Traffic Safety Administration, which describes a vehicle that can perform all safety-critical functions for any trip, with no driver (or passenger) expected to control the vehicle at any time. However, in other examples, the vehicle 202 may be a fully or partially autonomous vehicle having any other level or classification. Additionally, in some examples, the techniques described herein may be usable by non-autonomous vehicles.
[0032] Vehicle 202 may include vehicle computing device 204, sensors 206, emitters 208, network interfaces 210, and / or drive components 212. Vehicle computing device 204 may represent computing device 106, and sensor 206 may represent sensor 104. System 200 may additionally or alternatively include computing device 214.
[0033] In some examples, the sensors 206 may represent the sensors 104 and may include lidar sensors, radar sensors, ultrasonic transducers, sonar sensors, position sensors (e.g., Global Positioning System (GPS), compass, etc.), inertial sensors (e.g., Inertial Measurement Units (IMU), accelerometers, magnetometers, gyroscopes, etc.), image sensors (e.g., Red-Green-Blue (RGB), Infrared (IR), intensity, depth, time-of-flight cameras, etc.), microphones, wheel encoders, environmental sensors (e.g., thermometers, hygrometers, light sensors, pressure sensors, etc.), etc. The sensors 206 may include multiple instances of each of these sensors or other types of sensors. For example, the radar sensors may include individual radar sensors located at corners, front, back, sides, and / or top of the vehicle 202. As another example, the cameras may include multiple cameras located at various locations on the exterior and / or interior of the vehicle 202. The sensors 206 may provide input to the vehicle computing device 204 and / or the computing device 214.
[0034] The vehicle 202 may include emitters 208 for emitting light and / or sound, as described above. The emitters 208 in this example may include interior audio and video emitters for communicating with passengers of the vehicle 202. By way of example, and not by way of limitation, the interior audio may include speakers, lights, signs, display screens, touch screens, haptic emitters (e.g., vibration and / or force feedback), mechanical actuators (e.g., seat belt tensioners, seat positioners, head rest positioners, etc.), and the like. The emitters 208 in this example may include exterior emitters. By way of example and not by way of limitation, the exterior emitters in this example may include lights (e.g., indicator lights, signs, light arrays, etc.) for announcing direction of travel or other indications of vehicle operation, and one or more audio emitters, one of which may use acoustic beam steering technology, for audibly communicating with pedestrians or other nearby vehicles.
[0035] Vehicle 202 may also include a network interface 210 that enables communication between vehicle 202 and one or more other local or remote computing devices. For example, network interface 210 may facilitate communication with other local computing devices on vehicle 202 and / or drive components 212. Network interface 210 may also additionally or alternatively enable the vehicle to communicate with other nearby computing devices (e.g., other nearby vehicles, traffic signals, etc.). Network interface 210 may additionally or alternatively enable vehicle 202 to communicate with computing device 214. In some examples, computing device 214 may include one or more nodes of a distributed computing system (e.g., a cloud computing architecture).
[0036] Network interface 210 may include physical and / or logical interfaces for connecting vehicle computing device 204 to another computing device or network, such as network 216. For example, network interface 210 may enable Wi-Fi-based communications, such as over frequencies defined by the IEEE 200.11 standard, short-range wireless frequencies such as Bluetooth, cellular communications (e.g., 2G, 3G, 4G, 4G LTE, 5G, etc.), or any suitable wired or wireless communication protocol by which each computing device can interface with other computing devices. In some examples, vehicle computing device 204 and / or sensors 206 may transmit sensor data to computing device 214 over network 216, at specific frequencies, after a predetermined period of time, in near real-time, etc.
[0037] In some examples, the vehicle 202 may include one or more drive components 212. In some examples, the vehicle 202 may have a single drive component 212. In some examples, the drive component 212 may include one or more sensors for detecting conditions surrounding the drive component 212 and / or the vehicle 202. By way of example and not limitation, the sensors of the drive component 212 may include one or more wheel encoders (e.g., rotary encoders) that sense the rotation of the wheels of the drive component, inertial sensors (e.g., inertial measurement units, accelerometers, gyroscopes, magnetometers, etc.) that measure the orientation and acceleration of the drive component, cameras or other image sensors, ultrasonic sensors that acoustically detect objects in the vicinity of the drive component, lidar sensors, radar sensors, etc. Some sensors, such as the wheel encoders, may be unique to the drive component 212. In some cases, the sensors on the drive component 212 may overlap or supplement corresponding systems (e.g., sensors 206) of the vehicle 202.
[0038] The drive components 212 may include many of the vehicle systems, including a high voltage battery, a motor to propel the vehicle, an inverter to convert direct current from the battery to alternating current for use in other vehicle systems, a steering system including a steering motor and a steering rack (which may be electric), a brake system including hydraulic or electric actuators, a suspension system including hydraulic and / or pneumatic components, a stability control system to distribute braking force to mitigate loss of traction and maintain control, an HVAC system, lighting (e.g., lighting such as head / tail lights to illuminate the exterior surroundings of the vehicle), and one or more other systems (e.g., cooling systems, safety systems, on-board charging systems, DC / DC converters, high voltage junctions, high voltage cables, charging systems, other electrical components such as charging ports, etc.). Additionally, the drive components 212 may include a drive components controller to receive and pre-process data from sensors and control the operation of various vehicle systems. In some examples, the drive components controller may include one or more processors and a memory communicatively coupled to the one or more processors. The memory may store one or more components for performing various functions of the drive components 212. Additionally, drive components 212 may include one or more communication connections that enable each drive component to communicate with one or more other local or remote computing devices.
[0039] Vehicle computing device 204 may include a processor 218 and a memory 220 communicatively coupled to the one or more processors 218. Memory 220 may represent memory 108. Computing device 214 may also include a processor 222 and / or memory 224. Processor 218 and / or 222 may be any suitable processor capable of processing data and executing instructions to perform operations as described herein. By way of example and not limitation, processor 218 and / or 222 may include one or more central processing units (CPUs), graphics processing units (GPUs), integrated circuits (e.g., application specific integrated circuits (ASICs)), gate arrays (e.g., field programmable gate arrays (FPGAs)), and / or any other device or portion of a device that processes electronic data and converts the electronic data into other electronic data that may be stored in a registry and / or memory.
[0040] Memory 220 and / or 224 may be examples of non-transitory computer-readable media. Memory 220 and / or 224 may store an operating system and one or more software applications, instructions, programs, and / or data to implement the methods and functions attributed to the various systems described herein. In various implementations, memory may be implemented using any suitable memory technology, such as static random access memory (SRAM), synchronous dynamic RAM (SDRAM), non-volatile / flash memory, or any other type of memory capable of storing information. The architectures, systems, and individual elements described herein may include many other logical, programmatic, and physical components, of which the ones shown in the accompanying figures are merely examples relevant to the discussion herein.
[0041] In some examples, memory 220 and / or memory 224 may store a localization component 226, a perception component 228, a planning component 230, a radar component 232, a map 234, and / or a system controller 236. The perception component 228 may represent the perception component 110 and include the tracking component 114, the planning component 230 may represent the planning component 112, and / or the radar component 232 may represent the radar component 116.
[0042] In at least one example, the localization component 226 may include hardware and / or software that receives data from the sensors 206 to determine the position, velocity, and / or orientation of the vehicle 202 (e.g., one or more of x-, y-, z-position, roll, pitch, or yaw). For example, the localization component 226 may include and / or request / receive a map 234 of the environment and may continually determine the position, velocity, and / or orientation of the autonomous vehicle within the map 234. In some examples, the localization component 226 may receive image data, lidar data, radar data, IMU data, GPS data, wheel encoder data, etc., utilizing simultaneous localization AND mapping (SLAM), calibration, localization and mapping, simultaneously (CLAMS), relative SLAM, bundle adjustment, nonlinear least squares optimization, etc., to accurately determine the position, attitude, and / or velocity of the autonomous vehicle. In some examples, the orientation component 226 may provide data to various components of the vehicle 202 to determine an initial position of the autonomous vehicle for generating a trajectory and / or for generating map data, as discussed herein. In some examples, the orientation component 226 may provide the position and / or orientation of the vehicle 202 relative to the environment and / or sensor data associated therewith to the perception component 228.
[0043] In some examples, perception component 228 may include a primary perception system and / or a predictive system implemented in hardware and / or software. Perception component 228 may detect objects in the environment surrounding vehicle 202 (e.g., identify that an object is present), classify objects (e.g., determine an object type associated with a detected object), segment sensor data and / or other representations of the environment (e.g., identify portions of the sensor data and / or representations of the environment as associated with a detected object and / or object type), determine characteristics associated with the objects (e.g., tracks that identify current, predicted, and / or previous positions, headings, velocities, and / or accelerations associated with an object), and / or the like. Data determined by perception component 228 is referred to as perception data.
[0044] The planning component 230 may receive the position and / or orientation of the vehicle 202 from the orientation component 226 and / or the sensory data from the perception component 228, and may determine commands for controlling operation of the vehicle 202 based at least in part on any of this data. In some examples, determining the commands may include determining the commands based at least in part on a format associated with a system with which the commands are associated (e.g., a first command for controlling operation of the autonomous vehicle may be formatted in a first format of messages and / or signals (e.g., analog, digital, aerodynamic, kinetic) that the system controller 236 and / or the drive component 212 can parse / execute, and a second command of the emitter 208 may be formatted according to a second format associated therewith).
[0045] The radar component 232 may operate on the vehicle 202 and / or on the computing device 214. In some examples, the radar component 232 may be upstream (providing input) from the planning component 230 in the pipeline and downstream (receiving input) from at least some of the perception component 228. The radar component 232 may be configured to pass all, a portion, or none of the output of the radar component 232 to the tracking component and / or the planning component 230. In some examples, the radar component 232 may be part of the perception component 228. In some examples, the radar component 232 may determine speed and / or yaw rate in accordance with the techniques discussed herein.
[0046] Memory 220 and / or 224 may additionally or alternatively store a mapping system (e.g., generating a map based at least in part on the sensor data), a planning system, a ride management system, etc. Although localization component 226, perception component 228, planning component 230, radar component 232, map 234, and / or system controller 236 are illustrated as being stored in memory 220, any of these components may include processor-executable instructions, machine learning models (e.g., neural networks), and / or hardware, and all or a portion of any of these components may be stored in memory 224 or configured as part of computing device 214.
[0047] As described herein, the localization component 226, the perception component 228, the planning component 230, the radar component 232, and / or other components of the system 200 may comprise one or more ML models. For example, the localization component 226, the perception component 228, the planning component 230, and / or the radar component 232 may each include a different ML model pipeline. In some examples, the ML models may be composed of neural networks. An exemplary neural network is a biologically inspired algorithm that passes input data to a series of connected layers to generate an output. Each layer of a neural network may include another neural network or may include any number of layers (convolutional or not). As can be understood in the context of the present disclosure, a neural network may utilize machine learning, which may refer to a broad class of such algorithms in which an output is generated based on learned parameters.
[0048] Although discussed in the context of neural networks, any type of machine learning can be used consistent with this disclosure. For example, machine learning algorithms may include, but are not limited to, regression methods (ordinary least squares regression (OLSR), linear regression, logistic regression, stepwise regression, multivariate adaptive regression splines (MARS), local estimation scatterplot smoothing (LOESS)), instance-based algorithms (e.g., ridge regression, least absolute shrinkage and selection operator (LASSO), elastic net, least angle regression (LARS)), decision tree algorithms (e.g., classification and regression trees (CART), iterative dichotomy 3 (ID3), chi-squared automated interaction detection (CHAID), decision stumps, conditional decision trees), Bayesian algorithms (Naive Bayes, Gaussian Naive Bayes, Multinomial Naive Bayes, Average-one Dependent Estimator (AODE), Bayesian Belief Networks (BNN), Bayesian Networks), clustering algorithms (e.g., k-means, k-median, expectation maximization (EM), hierarchical clustering), association rule learning algorithms (e.g., perceptron, backpropagation, The algorithms may include, for example, Hopfield networks, radial basis function networks (RBFNs), deep learning algorithms (e.g., deep Boltzmann machines (DBMs), deep belief networks (DBNs), convolutional neural networks (CNNs), stacked autoencoders), dimensionality reduction algorithms (e.g., principal component analysis (PCA), principal component regression (PCR), partial least squares regression (PLSR), Sammon mapping, multidimensional scaling (MDS), projection pursuit, linear discriminant analysis (LDA), mixed discriminant analysis (MDA), quadratic discriminant analysis (QDA), flexible discriminant analysis (FDA)), ensemble algorithms (e.g., boosting, bootstrap aggregation (bagging), AdaBoost, stacked generalization (blending), gradient boosting machines (GBMs), gradient boosted regression trees (GBRTs), random forests), SVMs (support vector machines), supervised learning, unsupervised learning, semi-supervised learning, etc. Additional examples of architectures include neural networks such as ResNet50, ResNet101, VGG, DenseNet, and PointNet.In some examples, the ML models discussed herein may include PointPillars, SECOND, top-down feature layers (see, e.g., U.S. Patent Application No. 15 / 963,833, incorporated herein in its entirety), and / or VoxelNet. Latency optimization architectures may include MobilenetV2, Shufflenet, Channelnet, Peleenet, and / or the like. The ML models may include residual blocks, such as Pixor, in some examples.
[0049] Memory 220 may additionally or alternatively store one or more system controllers 236, which may be configured to control steering, propulsion, braking, safety, emitter, communication, and other systems of vehicle 202. These system controllers 236 may communicate with and / or control corresponding systems of drive component 212 and / or other components of vehicle 202. For example, planning component 230 may generate instructions based at least in part on sensory data generated by perception component 228, validate the sensory data, and / or send instructions to system controller 236. System controller 236 may control operation of vehicle 202 based at least in part on instructions received from planning component 230.
[0050] 2 is illustrated as a distributed system, it should be noted that in alternative examples, components of vehicle 202 may be associated with computing device 214 and / or components of computing device 214 may be associated with vehicle 202. That is, vehicle 202 may perform one or more of the functions associated with computing device 214, and vice versa.
[0051] (Example Process) 3 illustrates a pictorial flow diagram of an example process 300 for determining velocity in two or more dimensions from radar data associated with an object based at least in part on a subset of the radar data associated with the object. In the examples described herein, the radar data may be acquired by one or more radar sensors, such as radar sensor 302 disposed on a vehicle 304. In some implementations, the operations of the example process 300 may be accomplished by one or more components of a perception component of an autonomous, semi-autonomous, or non-autonomous vehicle, such as a radar component of the perception component.
[0052] At operation 306, the example process 300 may include receiving radar data 308 from one or more radar sensors in accordance with any of the techniques discussed herein. In the illustrated example, the vehicle 304 may be generally traversing an environment in a direction indicated by an arrow 310 (although in other implementations the vehicle 304 may be stationary or moving in a different direction), such that the radar sensor 302 is positioned at the tip of the vehicle 304 to capture data about objects in front of the vehicle 304, for example. More specifically, the radar sensor 302 may capture the radar data 308, for example, via one or more radar scans.
[0053] In some example implementations, the radar data 308 may include location information indicative of the location of objects in the environment, e.g., range and bearing relative to the vehicle 304, and / or location in a local or global coordinate system. The radar data 308 may also include signal strength information. For example, the signal strength information may be indicative of the type or composition of the surface from which the radio waves are reflected. In some examples, the signal strength may be a radar cross section (RCS) measurement. The radar data 308 may also include velocity information, such as a range rate determined from a Doppler measurement. For example, the velocity of an object may be based on the frequency of the radio frequency energy reflected by the object and / or the time at which the reflected radio frequency energy is detected. The radar data 308 may additionally or alternatively include specific information about the sensor, including, but not limited to, the orientation of the sensor, e.g., the attitude of the sensor relative to the vehicle, the pulse repetition frequency (PRF) or pulse repetition interval (PRI) of the sensor, the field of view or detection arc, etc.
[0054] At operation 312, the example process 300 may include determining a return associated with the object based at least in part on the radar data according to any of the techniques discussed herein. An example includes a visualization 314 of the radar data 316. More specifically, the visualization 314 includes a plurality of representations of radar points illustrated as circular points that may represent returns caused by objects, surfaces, or other reflective items in the environment of the vehicle 304. As illustrated, several circular points are labeled with reference numbers 316(1), 316(2), 316(3), 316(4), 316(5), 316(6). In an example, each of the points depicted as part of the visualization 314 may correspond to a location of a surface that reflects radio waves emitted by the radar device and is detected by the radar sensor 302. As will be appreciated, the radar sensor 302 may receive and / or generate several types of information about the environment, and therefore the visualization 314 may include more or less information; the visualization 314 is merely illustrative.
[0055] Visualization 314 illustrates that several points appear in close proximity and, as such, may be associated with a single object. For example, points 316(2)-316(6) are closely located, e.g., within a threshold distance, and in some examples, the points may be presumed to represent a single object, such as object 318. For example, as discussed in more detail in U.S. Patent Application No. 16 / 416,686, the entirety of which is incorporated herein by reference, the data association component may determine that points 316(2)-316(6) may be identified as a point cloud representative of object 318 in the environment surrounding vehicle 304. In the examples described herein, and as discussed above, the point cloud may include multiple points having some likelihood, e.g., a level and / or degree of similarity, to identify a single object or grouping of objects to be considered together, e.g., by a planning system of an autonomous vehicle. In aspects of the present disclosure, information in addition to location information may be used to determine the point cloud. Additionally, the data association component may take into account historical information, for example, tracking information of the vehicle 304 and / or the object 318, to properly associate radar returns with the object 318.
[0056] Thus, in implementations of the present disclosure, operation 312 may determine returns representative of object 318, for example, because points may be clustered based on one or more diverse types of information, and sensor data from diverse scans and / or radar sensors may be used to create the clusters. Operation 312 may result in determining a subset of radar data associated with object 318 from among the radar data from one or more scans.
[0057] In some examples, operation 312 may further include executing a RANSAC algorithm to reject outliers in the radar data and / or the subset of the radar data. As a non-limiting example, the RANSAC approach may reject returns that are identified as being part of the subset of radar data associated with the object 318, but that are not actually from the object 318. For example, the RANSAC approach may reject returns from the ground proximate to the object 318. Of course, this disclosure is not limited to using RANSAC to reject outliers. Other techniques may alternatively be used, including, but not limited to, iterative least squares. In some examples, the RANSAC operation may be based at least in part on assumptions about the behavior of the detected object, such as a rigid body model, although the assumptions may be modified at least in part based on a classification of the detected object (e.g., based at least in part on other sensory data, such as a classification determined at least in part based on image data and / or lidar data).
[0058] At operation 320, example process 300 may include determining a two (or more) dimensional velocity and / or yaw rate of the detected object based at least in part on a subset of the radar data associated with the object, according to any of the techniques discussed herein. Visualization 322 includes vehicle 304 (having radar sensor 302) and three of points 316(2), 316(3), and 316(5) associated with object 318. Visualization 322 also illustrates coordinate system 324, which may be oriented at least in part based on a pose of vehicle 304 in the depicted example.
[0059] In visualization 322, for clarity of presentation, point 316(2) is represented as the first detection point d0, point 316(5) is represented as the second detection point d1, and point 316(3) is represented as the third detection point d2. In the exemplary depiction, only three detection points from radar data 308 are illustrated, but the techniques described herein may use any and all returns associated with object 318. As illustrated, object 318 may have a center of rotation c, and the motion of object 318 may be measured by a velocity in the x-direction, e.g., velocity v x , the velocity in the y direction, e.g., velocity v y (at least in a Cartesian coordinate system, although other coordinate systems may be used), and a yaw rate ω relative to a center of rotation c. In the examples, the center of rotation c may be selected arbitrarily, but in additional or alternative examples, the center of rotation may be determined by a radar component and / or another perception component, and / or may be included as part of tracking associated with object 318.
[0060] In the illustrated example, the positions of the detection points d0-d2, the position of the radar sensor 302 (which generated the return associated with the first point d0), and the position of the center of rotation c are all known or at least estimated by the perception component. Additionally, each of the first detection point d0, the second detection point d1, and the third detection point d2 has an associated observed velocity θ i, e.g., Doppler velocity. Such velocities are illustrated as gdv0, gdv1, and gdv2, respectively, in the example. Note that gdv stands for "ground Doppler velocity". Such velocities are velocities along a direction between a point and a sensor that senses the velocity. For example, gdv0 is a velocity along a direction (rd0) from a first detection point d0 to the radar sensor 302, gdv1 is a velocity along a direction (rd1) from a second detection point d1 to the radar sensor 302, and gdv2 is a velocity along a direction (rd2) from a third detection point d2 to the radar sensor 302. As can be understood, the directions of the velocities gdv0, gdv1, and gdv2 indicate that the object 318 is moving counterclockwise around the center of rotation c.
[0061] The techniques discussed herein may include determining two (or more) dimensional velocity, such as the velocity depicted in FIG. 3, and / or yaw rate, as discussed in more detail in FIG.
[0062] 4 illustrates a pictorial flow diagram of an example process 400 for determining velocity in two or more dimensions from radar data associated with an object based at least in part on a subset of the radar data associated with the object. For example, the subset of radar data may be determined based at least in part on operations 306 and / or 312. The example process may additionally or alternatively determine a center and / or a size / dimension associated with the object.
[0063] At operation 402, the example process 400 may include receiving radar data associated with the object according to any of the techniques discussed herein. For example, the radar data may be a subset of the n radar points determined at operation 306 and / or operation 312, where n is a positive integer. n For example, the position of the detection surface, the Doppler velocity (gdv n), a vector indicating the length and direction from the detection to the radar sensor (rd0 vector), the RCS, and a rotation angle (θ dn ), and / or the like. Additionally or alternatively, the perception component may provide tracking associated with the object to the radar component, where the tracking may include a preferred yaw α, and / or yaw rate, an estimated center c, a position, and / or the like. In some examples, operation 402 may additionally or alternatively include executing an outlier rejection algorithm to select further radar data to be removed. For example, the outlier rejection algorithm may include a RANSAC algorithm, M-estimation, and / or the like.
[0064] At operation 404, the example process 400 may determine a first data structure based at least in part on the radar data and / or the tracks in accordance with any of the techniques discussed herein. Operation 404 may include populating the data structure with data indicated by the n radar points. For example, the first data structure may include matrices of (Equation 1) and (Equation 2).
[0065]
number
[0066] where θi is the Doppler velocity (from a flat rotation angle) of the i-th radar observation, d i Note that the lines in (Equation 1) are the lateral contributions of the velocity (cosθ d0 ), the vertical contribution (sinθ d0 ), which may include a yaw rate contribution expressed as:
[0067]
number
[0068] At operation 406, the example process 400 may include determining a second data structure based at least in part on the radar data and / or the tracking, according to any of the techniques discussed herein. Operation 404 may include populating the data structure with data indicated by the n radar points and tracking data associated with the object. For example, the first data structure may include a matrix of (Equation 3).
[0069]
number
[0070] The second data structure may be identical to the first data structure, but the second data structure may additionally include a yaw assumption as shown in the last line of (Equation 4). In other words, the second data structure includes a term to impose an additional constraint on the yaw based on the assumed yaw. The corresponding "measurement" inserted into the subset of RADAR values is 0 such that the lateral and longitudinal velocities are related through the angle α. The data structures shown by (Equation 1) and (Equation 4) may be parameters of a linear or nonlinear (e.g. least squares) regression or robust regression algorithm. For example, a linear model that may form the basis of a linear regression or robust regression may be given as (Equation 4)-(Equation 6).
[0071]
number
[0072] Note that Y represents the observed radar value, which is the ground Doppler velocity in a given example, and x represents the velocity component that the system is determining. Additionally, even though the above equations and discussion relate to determining a velocity associated with an object, the example process 400 may additionally or alternatively include determining a center and / or size / dimension associated with the object. For example, the first and / or second data structures may include more assumptions of the center and / or size / dimension of the object, which may be based at least in part on the center and / or size / dimension indicated by a previous track associated with the object. If the object has not been detected in a previous frame, or if a tracking operation has not yet been performed, the center and / or size / dimension may be initialized based at least in part on sensory data, such as a classification, associated with the object, or using a default initialization.
[0073] In operation 408, the example process 400 may include determining a first velocity, a first yaw rate, and / or a first error according to any of the techniques discussed herein. For example, the first error may be determined based at least in part on a residual error determined by Ax-Y. Operation 408 may include solving Equation 5 based at least in part on the first data structure provided by Equation 1.
[0074] At operation 410, the example process 400 may include determining a second velocity, a second yaw rate, and / or a second error according to any of the techniques discussed herein. Operation 410 may include solving (Equation 5) based at least in part on the first data structure given by (Equation 4). For operation 408 and / or operation 410, solving (Equation 5) may include a linear regression. The linear regression may determine an error associated with one or more of the radar points (e.g., rows of a matrix) and / or yaw hypotheses (e.g., the last row of the second data structure). In some examples, the loss function may be part of the regression, and the first error and / or the second error may be determined based on a total error based at least in part on an error determined by the regression algorithm. In some examples, the error discussed herein may not be associated with a failure of the underlying sensor system, and may instead indicate a margin that the velocity associated therewith is correct. For example, the error may be a posterior probability.
[0075] In some examples, operation 408 and / or operation 410 may additionally or alternatively include determining a covariance associated with the first velocity and the first yaw rate and / or the second velocity and the second yaw rate, respectively. For example, the covariance associated with the velocity and yaw may be given by (Equation 7):
[0076]
number
[0077] Here, (Equation 8) holds for (Equation 1), or (Equation 9) holds for (Equation 3).
[0078]
number
[0079] where var nmay be a static coefficient, or in additional or alternative examples, may be a variance, such as a range-rate measured variance. In some examples, var n The value of var may be set, at least in part, based on the detected environment of the vehicle. For example, if the perception component determines that the vehicle 304 is traveling on a highway, the radar component may set a higher value for var compared to detecting that the vehicle 304 is traveling on an inner-city street. n The value of may be reduced.
[0080] In operation 412, the example process 400 may include selecting a first velocity and / or a first yaw rate, or a second velocity and / or a second yaw rate, based at least in part on the first error and the second error, according to any of the techniques discussed herein. For example, the regression algorithm may determine a total error as part of determining the velocity during operations 408 and / or 410. Operation 412 may include selecting whichever velocity is associated with the lower error of the two errors. In some examples, one of the two data structures may cause unresolvable equations or multiple resolvable equations, in which case operation 412 may include selecting the velocity associated with a solvable equation. For example, the matrix may be non-invertible, the error may diverge numerically during the regression, and / or the solution may violate a holonomic constraint. In some examples, the selected velocity may be associated with tracking associated with the object.
[0081] In operation 414, the example process 400 may include determining a determined velocity according to any of the techniques discussed herein. Determining the determined velocity may be based at least in part on the selected velocity and / or the error. For example, the velocities determined in operations 408 and 410 (and the selected velocity) may be proposed or candidate velocities, and the velocity determined in operation 414 may be determined with higher accuracy in some examples. Operation 414 may be accomplished by a Bayes filter (e.g., a Kalman filter) and / or other estimation algorithms. In some examples, determining the velocity using one of the data structures may include determining a covariance based on the data structure according to (Equation 8), determining an estimated velocity and / or an estimated yaw rate using a regression algorithm based at least in part on (Equation 5)-(Equation 7), and determining the determined velocity and / or the estimated yaw rate using a Kalman filter. The Kalman filter may receive the covariance and the estimated velocity and / or the estimated yaw rate as inputs and determine the determined velocity and / or the estimated yaw rate based thereon. The Kalman filter may receive a noise signal associated with the radar data in addition to or as an alternative to the covariance. In some examples, the Kalman filter may receive at least a portion of the tracking or data associated with the object, such as the object's original position, velocity, yaw, yaw rate, and / or the like. In some examples, operation 414 may be optional, in addition to, or an alternative to operation 412.
[0082] At operation 416, the example process 400 may include controlling the autonomous vehicle based at least in part on the speed and / or the error in accordance with any of the techniques discussed herein. The speed may be the selected speed determined at operation 412 and / or the established speed determined at operation 414. In some examples, operation 416 may additionally or alternatively be based at least in part on the yaw rate.
[0083] 5 is a pictorial flow diagram of an example process 500 for determining velocity in two or more dimensions from radar data associated with an object based at least in part on a subset of the radar data associated with the object. For example, the subset of radar data may be determined based at least in part on operations 306 and / or 312. In some examples, the example process 500 may be deterministic by precluding the use of RANSAC. The example process 500 may be faster in some examples than the example process 400, at least because the example process 500 involves solving one system whereas the example process 400 involves solving two systems.
[0084] At operation 502, the example process 500 may include receiving radar data associated with the object according to any of the techniques discussed herein. For example, operation 502 may include operation 402.
[0085] At operation 504, the example process 500 may include determining a data structure based at least in part on the radar data and the set of weights according to any of the techniques discussed herein. Operation 506 may include populating the data structure with the data indicated by the n radar points and the tracking data associated with the object. For example, the data structure may include a matrix of (Equation 10), where (Equation 2) again holds.
[0086]
number
[0087] In some examples, the weight β i The set of (i is the row / radar point number) may contain different weights for each row, but the weights β (i,j)(j ranges between the first and third columns) may be determined for each column. Equation 10 is constructed according to the former example. The set of weights may correspond to the first n rows of data points and may function to maintain, increase or decrease the influence of the row in the velocity determination in operation 508, and / or the n+1 th weight, corresponding to the last row of the matrix given in Equation 10 above, may function to turn on / off or increase or decrease the influence of the yaw assumption given by the last row of the matrix.
[0088] At operation 506, the example process 500 may include determining a set of weights based at least in part on the radar data according to any of the techniques discussed herein. Determining the set of weights βi (where i is a row / radar point number) may include determining an error, e.g., a variance, associated with the radar points and determining weights based at least in part on the error to minimize an overall error of a subset of the radar data associated with the object. For example, determining the set of weights may include robust regression, such as an iteratively reweighted least squares algorithm. In robust regression, a loss function may determine a residual associated with the radar detection and weight the radar detection based at least in part on the residual. For example, the loss function may be a Cauchy loss function, a Huber loss function, and / or the like. In such examples, the loss function may apply a smaller weighting factor to a radar detection with a larger residual associated therewith. In some examples, the weighting process may include iteratively reweighting the radar detections until an aggregate of the weights converges, which may include iterative operations 504, 506, and / or 508. In some examples, the error determined in operation 506 may be determined based at least in part on a total error determined by the regression algorithm in association with the data structures. The set of weights may function to replace determining and selecting between two data structures, reducing solving the two data structures to one.
[0089] In some examples, operation 506 may include populating a data structure with assumptions about the center and / or size / dimensions of the object based at least in part on previous tracking or initialization.
[0090] At operation 508, the example process 500 may include determining a velocity and / or an error based at least in part on the data structure according to any of the techniques discussed herein. For example, determining the velocity and / or the error may be part of the weighted linear regression described above. In some examples, a covariance may be determined relative to the velocity, such as according to (Equation 8) and (Equation 10) above. Operation 508 may additionally or alternatively include determining a center and / or a size / dimension associated with the object.
[0091] At operation 510, the example process 500 may include determining a determined speed according to any of the techniques discussed herein. Determining the determined speed may be based at least in part on the speed and / or covariance determined at operation 508. For example, the speed determined at operation 508 may be a proposed or candidate speed, and the speed determined at operation 510 may be determined with greater accuracy in some examples. Operation 510 may be accomplished by a Bayes filter (e.g., a Kalman filter) and / or other estimation algorithms in some examples.
[0092] At operation 512, the example process 500 may include controlling the autonomous vehicle based at least in part on the proposed and / or determined speeds and / or errors in accordance with any of the techniques discussed herein.
[0093] (Example section) A: A method including: receiving radar data associated with an object; determining a data structure based at least in part on the radar data, the data structure including a first parameter portion and a second parameter portion, the first parameter portion including a lateral contribution to a velocity of the object associated with a first radar observation, the lateral contribution associated with the first radar observation, a longitudinal contribution associated with the first radar observation, a yaw rate contribution associated with the first radar observation, and the second parameter portion including an assumption of a yaw rate associated with the object; determining a set of weights to apply to the data structure, the set of weights including at least a first weight associated with the first radar point and a second weight associated with the yaw rate contribution; determining a yaw rate associated with the object based at least in part on the data structure and the set of weights; and controlling the autonomous vehicle based at least in part on the yaw rate.
[0094] B: The method of paragraph A, wherein determining the rate includes determining a weighted regression based at least in part on the data structure and the set of weights.
[0095] C: The method of any of paragraphs A or B, comprising determining a velocity based at least in part on the data structure and the set of weights, providing the velocity and yaw rate to a perception system, and receiving a predicted trajectory of the object from the perception system, wherein controlling the autonomous vehicle is further based at least in part on the predicted trajectory.
[0096] D: The method of any one of paragraphs A-C, further comprising receiving a track associated with the object, the track including at least one of a yaw or a yaw rate associated with the object, and the yaw assumption is based at least in part on the at least one of the yaw or yaw rate of the track.
[0097] E: The method of any one of paragraphs A to D, wherein determining a yaw rate includes determining a proposed yaw rate, the method further including determining a covariance based at least in part on a data structure, and determining a confirmed yaw rate of the object based at least in part on the covariance and the proposed yaw rate, and wherein controlling the vehicle is based at least in part on the yaw rate and the covariance.
[0098] F: A system including one or more processors and a memory storing processor-executable instructions that, when executed by the one or more processors, cause the system to perform operations including: receiving radar data associated with an object; determining a data structure including a first parameter portion and a second parameter portion based at least in part on the radar data, the second parameter portion including an assumption of a yaw rate associated with the object; determining a set of weights to apply to the data structure, the set of weights including at least a first weight associated with the first radar point and a second weight associated with a yaw rate contribution; determining a yaw rate associated with the object based at least in part on the data structure and the set of weights; and controlling the autonomous vehicle based at least in part on the yaw rate.
[0099] G: The system of paragraph F, wherein the operations include determining a velocity based at least in part on the data structure and the set of weights, providing the velocity and yaw rate to a perception system, and receiving a predicted trajectory of the object from the perception system, and wherein controlling the autonomous vehicle is further based at least in part on the predicted trajectory.
[0100] H: The system of any of paragraphs F or G, wherein the data structure includes radar observations including at least one of a Doppler observation associated with an object, a Doppler direction vector, or an angle associated with the vector.
[0101] I: The system of any of paragraphs F-H, wherein the operations further include receiving a track associated with the object, the track including at least one of a yaw or a yaw rate associated with the object, and the yaw assumption is based at least in part on the at least one of the yaw or yaw rate of the track.
[0102] J: The system of any of paragraphs F to I, wherein determining the yaw rate includes determining a proposed yaw rate, and the operations further include determining a covariance based at least in part on the data structure, and determining a confirmed yaw rate of the object based at least in part on the covariance and the proposed yaw rate, and controlling the vehicle is based at least in part on the yaw rate and the covariance.
[0103] K: Any of the systems of paragraphs F-J, wherein the operations further include associating a previously generated track associated with the object with a velocity, or generating a new track associated with the object and associating the new track with the velocity.
[0104] L: The system of any of paragraphs F-K, wherein the operation further includes at least one of determining a center or a size of the object.
[0105] M: A non-transitory computer-readable medium storing instructions that, when executed by one or more processors, cause the one or more processors to perform operations including receiving radar data associated with the object; determining a data structure based at least in part on the radar data, the data structure including a first parameter portion and a second parameter portion, the second parameter portion including an assumption of a yaw rate associated with the object; determining a set of weights to apply to the data structure, the set of weights including at least a first weight associated with the first radar point and a second weight associated with a yaw rate contribution; determining a yaw rate associated with the object based at least in part on the data structure and the set of weights; and controlling the autonomous vehicle based at least in part on the yaw rate.
[0106] N: The non-transitory computer-readable medium of paragraph M, wherein the operations include determining a velocity based at least in part on the data structure and the set of weights, providing the velocity and yaw rate to a perception system, and receiving a predicted trajectory of the object from the perception system, and controlling the autonomous vehicle is further based at least in part on the predicted trajectory.
[0107] O: The non-transitory computer-readable medium of any of paragraphs M or N, wherein the data structure includes radar observations including at least one of a Doppler observation associated with an object, a Doppler direction vector, or an angle associated with the vector.
[0108] P: The non-transitory computer-readable medium of any of paragraphs M to O, wherein the operations further include receiving a track associated with the object, the track including at least one of a yaw or a yaw rate associated with the object, and the yaw assumption is based at least in part on the at least one of the yaw or yaw rate of the track.
[0109] Q: The non-transitory computer-readable medium of any of paragraphs M to P, wherein determining the yaw rate includes determining a proposed yaw rate, and the operations further include determining a covariance based at least in part on the data structure, and determining a confirmed yaw rate of the object based at least in part on the covariance and the proposed yaw rate, and controlling the vehicle is based at least in part on the yaw rate and the covariance.
[0110] R: The non-transitory computer-readable medium of any of paragraphs M to Q, wherein the operations further include associating a previously generated track associated with the object with a velocity, or generating a new track associated with the object and associating the new track with the velocity.
[0111] S: The non-transitory computer-readable medium of any of paragraphs M to R, wherein determining the first weighting includes determining a residual based at least in part on the data structure and the yaw rate, and modifying the first weighting to reduce the residual.
[0112] T: The non-transitory computer-readable medium of any of paragraphs M to S, wherein the operations further include at least one of determining a center or a size of the object.
[0113] U: The method of any of paragraphs A to T, wherein the data structure includes radar observations including at least one of a Doppler observation associated with an object, a Doppler direction vector, or an angle associated with the vector.
[0114] V. A method, comprising: receiving radar data associated with an object; 11. A method comprising: determining a first data structure including a first parameter portion based at least in part on the radar data; determining a second data structure including a second parameter portion based at least in part on the radar data, the second parameter portion including an assumption of a yaw associated with the object; determining a first velocity associated with the object and a first error associated with the first velocity based at least in part on the first data structure; determining a second velocity associated with the object and a second error associated with the second velocity and a second yaw rate based at least in part on the second data structure; and controlling the autonomous vehicle based at least in part on the first velocity and first yaw rate or the second velocity and second yaw rate based at least in part on the first error and the second error.
[0115] W: A system including one or more processors and a memory storing processor-executable instructions that, when executed by the one or more processors, cause the system to perform a method described in any of paragraphs AE, U, or V.
[0116] X: A non-transitory computer-readable medium storing processor-executable instructions that, when executed by one or more processors, cause the one or more processors to perform a method described in any of paragraphs AE, U, or V.
[0117] Although the example paragraphs above are described with respect to one particular implementation, it should be understood that in the context of this document, the subject matter of the example paragraphs may also be implemented via a method, an apparatus, a system, a computer-readable medium, and / or another implementation. Additionally, any of paragraphs AX may be implemented alone or in combination with one or more other paragraphs AX.
[0118] (Conclusion) Although the subject matter has been described in language specific to structural features and / or methodological acts, it will be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described. Rather, the specific features and acts are disclosed as example forms of implementing the claims.
[0119] The components described herein represent instructions that may be stored on any type of computer-readable medium and may be implemented in software and / or hardware. All of the methods and processes described above may be embodied in and fully automated via software code components and / or computer-executable instructions executed by one or more computers or processors, hardware, or some combination thereof. Parts or all of the methods may alternatively be embodied in specialized computer hardware.
[0120] At least some of the processes discussed herein are illustrated as logical flow graphs, each operation of which represents a sequence of operations that may be implemented in hardware, software, or a combination thereof. In the context of software, the operations represent computer-executable instructions stored on one or more non-transitory computer-readable storage media that, when executed by one or more processors, cause a computer or an autonomous vehicle to perform the referenced operations. Generally, computer-executable instructions include routines, programs, objects, components, data structures, etc. that perform particular functions or implement particular abstract data types. The order in which the operations are described is not intended to be construed as a limitation, and any number of the described operations may be combined in any order and / or in parallel to perform a process.
[0121] In particular, conditional language such as "may," "could," "would," and the like, unless otherwise noted, will be understood within the context to indicate that a particular example includes a particular feature, element, and / or step and another example does not. Thus, such conditional language is not intended to generally imply that a particular feature, element, and / or step is somehow required for one or more examples, or that one or more examples necessarily include logic for determining whether a particular feature, element, and / or step should be included or performed in any particular example, with or without user input or prompting.
[0122] Conjunctions such as "at least one of X, Y, or Z" shall be understood to indicate that the item, term, etc. may be either X, Y, or Z, or any combination thereof (including multiples of each element), unless otherwise stated. "a" refers to the singular as well as the plural.
[0123] It should be understood that any routine description, element or block in the flow diagrams described herein and depicted in the accompanying figures may represent a module, segment or portion of code that includes one or more computer-executable instructions for performing a particular logical function or element in the routine. Alternative implementations are within the scope of the examples described herein, where elements or functions may be omitted or performed in a different order than shown or discussed, including substantially synchronously, in reverse order, with additional operations, or omission of operations, depending on the functions involved, as will be understood by those skilled in the art. It should be noted that the term substantially may indicate a range. For example, substantially simultaneously may indicate that two activities occur within a time range of each other, substantially the same dimensions may indicate that two elements have dimensions within a range of each other, and / or the like.
[0124] It is understood that many variations and modifications may be made to the above-described examples, elements of which are among the other acceptable examples, and all such modifications and variations are intended to be included within the scope of this disclosure and protected by the following claims.
Claims
1. 1. A system comprising: one or more processors; When executed by the one or more processors, the system comprises: receiving radar data associated with the object; determining a data structure including a first parameter portion and a second parameter portion based at least in part on the radar data, the second parameter portion comprising an assumption of a yaw rate associated with the object; determining a set of weights to apply to the data structure, the set of weights comprising at least a first weight associated with a radar point and a second weight associated with the yaw rate contribution; determining a yaw rate associated with the object based at least in part on the data structure and the set of weights; controlling an autonomous vehicle based at least in part on the yaw rate; A memory storing processor-executable instructions for performing operations comprising: A system comprising:
2. The operation includes: determining a velocity based at least in part on the data structure and the set of weights; providing said velocity and said yaw rate to a predictive system; receiving a predicted trajectory of the object from the prediction system; and Further equipped with 10. The system of claim 1, wherein controlling the autonomous vehicle is further based at least in part on the predicted trajectory.
3. The system of claim 1 or 2, wherein the data structure comprises a radar observation including at least one of a Doppler observation associated with the object, a Doppler direction vector, or an angle associated with the vector.
4. 4. The system of claim 1, wherein the operations further comprise receiving a track associated with the object, the track comprising at least one of a yaw or a yaw rate associated with the object, and the yaw assumption is based at least in part on the at least one of the yaw or yaw rate of the track.
5. Determining the yaw rate comprises determining a proposed yaw rate, and the operations include: determining a covariance based at least in part on the data structure; and determining a determined yaw rate of the object based at least in part on the covariance and the proposed yaw rate; Further equipped with The system of claim 1 , wherein controlling the vehicle is further based at least in part on the yaw rate and the covariance.
6. The operation includes: correlating said velocity with a previously generated track associated with said object; or generating a new track associated with the object and associating the new track with the velocity; The system of claim 2 further comprising:
7. The system of claim 1 , wherein the action further comprises at least one of determining a center or a size of the object.
8. A non-transitory computer-readable medium that, when executed by one or more processors, causes the one or more processors to: receiving radar data associated with the object; determining a data structure including a first parameter portion and a second parameter portion based at least in part on the radar data, the second parameter portion comprising an assumption of a yaw rate associated with the object; determining a set of weights to apply to the data structure, the set of weights comprising at least a first weight associated with a radar point and a second weight associated with the yaw rate contribution; determining a yaw rate associated with the object based at least in part on the data structure and the set of weights; controlling an autonomous vehicle based at least in part on the yaw rate; A non-transitory computer-readable medium storing instructions for performing operations comprising:
9. The operation includes: determining a velocity based at least in part on the data structure and the set of weights; providing said velocity and said yaw rate to a predictive system; receiving a predicted trajectory of the object from the prediction system; and Further equipped with 10. The non-transitory computer-readable medium of claim 8, wherein controlling the autonomous vehicle is further based at least in part on the predicted trajectory.
10. 10. The non-transitory computer-readable medium of claim 8 or 9, wherein the data structure comprises a radar observation including at least one of a Doppler observation associated with the object, a Doppler direction vector, or an angle associated with the vector.
11. 11. The non-transitory computer-readable medium of claim 8, wherein the operations further comprise receiving a track associated with the object, the track comprising at least one of a yaw or a yaw rate associated with the object, and the yaw assumption is based at least in part on the at least one of the yaw or yaw rate of the track.
12. Determining the yaw rate comprises determining a proposed yaw rate, and the operations include: determining a covariance based at least in part on the data structure; and determining a determined yaw rate of the object based at least in part on the covariance and the proposed yaw rate; Further equipped with 12. The non-transitory computer-readable medium of claim 8, wherein controlling the vehicle is further based at least in part on the yaw rate and the covariance.
13. The operation includes: correlating said velocity with a previously generated track associated with said object; or generating a new track associated with the object and associating the new track with the velocity; 10. The non-transitory computer-readable medium of claim 9, further comprising:
14. Determining the first weight comprises: determining a residual based at least in part on the data structure and the yaw rate; modifying the first weights to reduce the residual; 14. The non-transitory computer-readable medium of claim 8, comprising:
15. The non-transitory computer-readable medium of claim 8 , wherein the operations further comprise at least one of determining a center or a size of the object.
Citation Information
Patent Citations
Yaw rate from radar data
JP2022532920A
Gridlock Solver for Motion Planning System of an Autonomous Vehicle
US20190377351A1
Yaw rate from radar data
WO2020236819A1