Vehicle cluster tracking system

By receiving and processing sensor data during the spin period and using a surface matching algorithm to adjust and optimize the cluster motion characteristics, the problems of sensor inaccuracy and motion characteristic errors when autonomous vehicles track objects are solved, the accuracy of object tracking and behavior prediction is improved, and the safety of autonomous driving is enhanced.

CN114599567BActive Publication Date: 2025-09-30WAYMO LLC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202080074825.1
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2019-10-25
Filing Date
2020-10-15
Publication Date
2025-09-30
Estimated Expiration
2040-10-15

AI Technical Summary

Technical Problem

Autonomous vehicles face problems with inaccurate sensor data and errors in object motion characteristics when detecting and tracking objects outside the vehicle, which leads to errors in behavior prediction and affects driving decisions and safety.

Method used

By receiving sensor data during the spin, surface matching algorithms such as the iterative closest point algorithm are used to adjust and optimize the cluster motion characteristics, ensuring accurate association of sensor data and motion characteristic correction, thereby controlling vehicle behavior.

Benefits of technology

The tracking accuracy of environmental objects and behavior prediction of autonomous vehicles are improved, enhancing the safety and reliability of driving operations.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114599567B_ABST
    Figure CN114599567B_ABST
Patent Text Reader

Abstract

The present technology relates to tracking objects in an environment around an autonomous vehicle. Despite various sensor measurement limitations, a computing system (110) of an autonomous vehicle determines accurate motion characteristics of objects detected in its environment. By correcting for motion distortion of fast-moving objects (808) and accounting for differences in sensor data collection, the motion characteristics of the detected objects can be determined with enhanced accuracy (908). Multiple sets of correspondences are determined for clusters from multiple sensor spins, enabling better alignment using a surface matching algorithm even when the clusters have fewer data points (904). Efficiency can also be improved by selecting hypotheses based on confidence levels. These techniques provide for identifying types of objects for which yaw rates can be accurately determined. Object classification can also be improved by accumulating associated clusters corresponding to detected objects (186). In addition, such techniques can be used to alleviate under-segmentation or over-segmentation.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS

[0002] This application claims priority to and is a continuation of U.S. patent application No. 16 / 664,203, filed on October 25, 2019, the entire disclosure of which is incorporated herein by reference. Technical Field

[0003] The present application relates to a vehicle-mounted cluster tracking system. Background Art

[0004] Autonomous vehicles, e.g., vehicles that do not require a human driver, can be used to help transport passengers, cargo, or other items from one location to another. Such vehicles can operate in an autonomous driving mode in which a passenger can provide some initial input (e.g., a destination) and the vehicle maneuvers itself to that destination with minimal or no additional passenger control. Consequently, such vehicles may rely heavily on systems that can determine the location of the autonomous vehicle at any given time and detect and identify objects external to the vehicle (such as other vehicles, stop lights or yield signs, pedestrians, cyclists, etc.).

[0005] Lidar (laser detection and ranging) or other sensor information can be used to detect and track other objects. Sensor information can be collected from one or more sensors multiple times per second. Depending on the relative speed, position, and orientation of other objects to the autonomous vehicle, occlusions, and other issues, it may be difficult for the onboard system to determine that a specific object has been detected in subsequent sensor scans, or it may be difficult to determine what type of object has been detected. These issues may adversely affect the autonomous vehicle's driving decisions, route planning, and other operational aspects. Summary of the Invention

[0006] According to aspects of the present technology, a method for tracking an object by an autonomous vehicle includes receiving, by one or more computing devices of the autonomous vehicle, sensor data collected by sensors of the autonomous vehicle during a plurality of spins, including a first spin and a second spin. The sensor data includes one or more clusters corresponding to one or more objects detected in an environment surrounding the autonomous vehicle. The method also includes associating, by the one or more computing devices, a given cluster from the first spin to a given cluster from the second spin as corresponding to a given detected object among the one or more detected objects in the environment. The method also includes setting, by the one or more computing devices, a current estimated motion characteristic of the given detected object as an initial estimate, and adjusting, by the one or more computing devices, one or more points in the given cluster from the second spin and one or more points in the given cluster from the first spin based on the current estimated motion characteristic to obtain an adjusted cluster. The method further includes determining, by the one or more computing devices, an adjusted motion characteristic based on the adjusted cluster using a surface matching algorithm, and controlling, by the one or more computing devices, the autonomous vehicle based on the adjusted motion characteristic of the given detected object.

[0007] In one example, the method further includes: comparing, by one or more computing devices, the current estimated motion characteristic to the adjusted motion characteristic; determining, by the one or more computing devices, that the current estimated motion characteristic and the adjusted motion characteristic are within a predetermined tolerance; and determining, by the one or more computing devices, that the cluster of one or more adjusted points and the current estimated speed are accurate based on determining that the current estimated motion characteristic is within the predetermined tolerance. Here, controlling the vehicle is further based on determining that the adjusted cluster and the current estimated speed are accurate.

[0008] In another example, the method further includes comparing the current estimated motion characteristic with the adjusted motion characteristic, and determining that the current estimated motion characteristic and the adjusted motion characteristic are not within a predetermined tolerance. In one scenario, determining that the current estimated motion characteristic and the adjusted motion characteristic are not within the predetermined tolerance indicates that the current estimated motion characteristic and the adjusted motion characteristic have not converged. Here, upon indicating that the current estimated motion characteristic and the adjusted motion characteristic have not converged, the method further includes updating the current estimated motion characteristic; and comparing the updated current estimated motion characteristic with the adjusted motion characteristic. In another scenario, upon determining that the current estimated motion characteristic is not within the predetermined tolerance, the method further includes setting the current estimated motion characteristic equal to the adjusted motion characteristic; adjusting one or more points in a given cluster from the second spin and one or more points in a given cluster from the first spin based on the current estimated motion characteristic; determining a second adjusted motion characteristic based on the adjusted cluster using a surface matching algorithm; and comparing the current estimated motion characteristic with the second adjusted motion characteristic. Here, controlling the autonomous vehicle is further based on comparing the current estimated motion characteristic with the second adjusted motion characteristic.

[0009] In another example, the first spin is the current spin of the sensor, and the second spin is the last previous spin in time before the first spin. In another example, the first spin and the second spin are caused by the sensor rotating about an axis. In yet another example, the adjustment includes moving at least one of one or more points in a given cluster from the first spin or one or more points in a given cluster from the second spin to account for a distorted representation of the detected object. The surface matching algorithm is an iterative closest point algorithm. And the adjusted motion characteristic can be a velocity characteristic.

[0010] According to other aspects of the present technology, a method for tracking an object by an autonomous vehicle includes: receiving sensor data by one or more computing devices of the autonomous vehicle, the sensor data including a first set of clusters collected from a first set of spins corresponding to a first tracking time point and a second set of clusters collected from a second set of spins corresponding to a second tracking time point. The first set of clusters and the second set of clusters both correspond to a detected object. The method also includes: determining, by the one or more computing devices, multiple sets of correspondences between the first set of clusters and the second set of clusters based on a transformation using initial estimated motion characteristics of the detected object using a surface matching algorithm. The method also includes: optimizing, by the one or more computing devices, the transformation between the first set of clusters and the second set of clusters based on the multiple sets of correspondences. The method also includes: determining, by the one or more computing devices, one or more motion characteristics based on the optimized transformation, and controlling, by the one or more computing devices, the autonomous vehicle based on the one or more motion characteristics determined for the detected object.

[0011] In one example, the method further includes: transforming the first set of clusters using an optimized transformation by one or more computing devices to generate a predicted second set of clusters; comparing the predicted second set of clusters with the second set of clusters by one or more computing devices; and determining by one or more computing devices that a distance between a point in the predicted second set of clusters and a corresponding point in the second set of clusters is within a predetermined threshold. Here, the method further includes: determining, by one or more computing devices, new multiple sets of correspondences between the first set of clusters and the predicted second set of clusters based on the optimized transformation using a surface matching algorithm; re-optimizing, by one or more computing devices, the optimized transformation between the first set of clusters and the predicted second set of clusters based on the new multiple sets of correspondences; and determining, by one or more computing devices, one or more new motion characteristics based on the re-optimized transformation. In this case, controlling the vehicle is also based on the one or more new motion characteristics.

[0012] In another example, the method further includes determining, by the one or more computing devices, that a sensor acquiring the sensor data is spinning at a rate faster than a tracking rate, wherein determining the multiple sets of correspondences is based on the spinning rate being faster than the tracking rate. In another example, the method further includes: generating, by the one or more computing devices, multiple sets of hypotheses for a surface matching algorithm; determining, by the one or more computing devices, a confidence level for each of the multiple sets of hypotheses; and selecting, by the one or more computing devices, a subset of the multiple sets of hypotheses based on the confidence level. Here, the surface matching algorithm uses the subset of the multiple sets of hypotheses.

[0013] In yet another example, the method further includes: determining, by the one or more computing devices, that the detected object has a horizontal cross-section with an asymmetry that satisfies a set of predetermined rules; and determining, by the one or more computing devices, a yaw rate of the detected object based on the asymmetry that satisfies the set of predetermined rules. And in another example, the method further includes: accumulating, by the one or more computing devices, associations from the plurality of spins corresponding to the detected object into a merged cluster; and classifying, by the one or more computing devices, the detected object based on the merged cluster. Here, controlling the vehicle is further based on the classification.

[0014] According to other aspects of the present technology, a system for operating a vehicle in an autonomous driving mode is provided. The system includes: a driving system configured to cause the vehicle to perform a driving maneuver while in the autonomous driving mode; a perception system configured to detect objects in an environment surrounding the vehicle; and a computing system having one or more processors and a memory. The computing system is operably coupled to the driving system and the perception system. The computing system is configured to receive sensor data collected by sensors of the perception system during a plurality of spins. The plurality of spins includes a first spin and a second spin. The sensor data includes one or more clusters corresponding to one or more objects detected in the environment surrounding the vehicle. The computing system is further configured to associate a given cluster from the first spin with a given cluster from the second spin as corresponding to a given detected object among the one or more detected objects in the environment, set a current estimated motion characteristic of the given detected object as an initial estimate, adjust one or more points in the given cluster from the second spin and one or more points in the given cluster from the first spin based on the current estimated motion characteristic to obtain an adjusted cluster, and determine an adjusted motion characteristic based on the adjusted cluster using a surface matching algorithm. The computing system is further configured to control the autonomous vehicle via actuation of a driving system based on the adjusted motion characteristics of a given detected object.In one scenario, the system also includes a vehicle.

[0015] Furthermore, according to other aspects of the present technology, a system for operating a vehicle in an autonomous driving mode is provided. The system includes a driving system configured to cause the vehicle to perform driving maneuvers while in the autonomous driving mode, a perception system configured to detect objects in an environment surrounding the vehicle, and a computing system having one or more processors and a memory. The computing system is operably coupled to the driving system and the perception system. The computing system is configured to receive sensor data from sensors of the perception system, the sensor data including a first set of clusters collected from a first set of spins corresponding to a first tracking time point and a second set of clusters collected from a second set of spins corresponding to a second tracking time point. The first set of clusters and the second set of clusters both correspond to detected objects. The computing system is further configured to determine, using a surface matching algorithm, multiple sets of correspondences between the first set of clusters and the second set of clusters based on a transformation using initially estimated motion characteristics of the detected objects, optimize the transformation between the first set of clusters and the second set of clusters based on the multiple sets of correspondences, and determine one or more motion characteristics based on the optimized transformation. The computing system is further configured to control the autonomous vehicle by actuating the driving system based on the one or more motion characteristics determined for the detected objects. BRIEF DESCRIPTION OF THE DRAWINGS

[0016] Figure 1A is a functional diagram of an example vehicle according to aspects of the present disclosure.

[0017] Figure 1B is a functional diagram of a processing module according to aspects of the present disclosure.

[0018] Figure 2 is an example exterior view of the example vehicle of FIG. 1 , according to aspects of the present disclosure.

[0019] Figure 3A-3B Shown are sensor scanning examples according to aspects of the present disclosure.

[0020] Figures 4A-4C An under-segmented scene is shown.

[0021] Figures 5A-5C An over-segmented scene is shown.

[0022] Figures 6A-6C An example of cluster association according to aspects of the present technique is shown.

[0023] Figures 7A-7C Showing an example of motion distortion.

[0024] Figure 8 Methods according to aspects of the present disclosure are shown.

[0025] Figure 9 Another method according to aspects of the present disclosure is shown. DETAILED DESCRIPTION

[0026] The present technology generally relates to tracking objects in the environment surrounding a vehicle configured to operate in an autonomous driving mode. For example, while driving, a human driver may readily observe a vehicle in another lane and maintain track of that vehicle. This can occur even though the distance and angle between the human driver and the vehicle may change over time, and even though at certain points the vehicle may only be partially visible to the human driver. An autonomous vehicle may also need to track objects in its environment to anticipate their behavior and react safely.

[0027] For example, a vehicle's onboard perception system may use one or more sensors to continuously or periodically collect sensor data about the vehicle's environment, and use the collected sensor data to detect and classify objects in the vehicle's environment. The vehicle's computing device may also track detected objects to generate motion characteristics, which may be used, for example, to make behavior predictions for the detected objects based on different behavior models for different object types. Examples of motion characteristics may include position, velocity, acceleration / deceleration, heading, yaw rate, etc. However, inaccuracies and limitations of sensor measurements of moving objects may result in errors in motion characteristics, such as motion distortion, which in turn may result in errors in behavior predictions. To address these issues, the vehicle's tracking system may be configured to generate motion characteristics of tracked objects that take into account inaccuracies and limitations of sensor measurements.

[0028] As an example, a lidar sensor periodically (e.g., every 0.1 seconds, or more or less) collects a set of sensor data (a point cloud) of its surroundings. The entire point cloud ("spin") can be divided into separate clusters by a processing module called a segmenter. Here, each cluster can correspond to a specific object, such as another vehicle, a pedestrian, a cyclist, a traffic cone, etc. Spin can occur due to the lidar sensor rotating completely (e.g., 360°) or partially (e.g., 45°, 90°, 180°, or more or less) around an axis. Spin can also occur when the lidar sensor is in a fixed position to collect the set of sensor data.

[0029] Each spin generates a list of clusters. The processing system needs to determine the correspondence between consecutive spins, for example, where a given cluster goes in the next spin, or whether a cluster came from another cluster in the previous spin. After the system determines such correspondence, it can build a track for each object and estimate the object's motion by comparing the clusters of the object in consecutive spins. From spin to spin, a cluster tracker process performed by the processing system maintains the track of each object. This tracking information can be shared with other parts of the processing system (e.g., behavior prediction module, object classification module, planner module, etc.). The tracking process can occur in a very short time (e.g., less than 0.1 second) between spins.

[0030] The features described herein provide an efficient and accurate way to analyze clusters, including handling over-segmentation or under-segmentation of clusters. The resulting information can be used to more accurately determine the shape and type of objects, which can enhance driving performance.

[0031] Example System

[0032] like Figure 1AAs shown, a vehicle 100 according to one aspect of the present disclosure includes various components. Although certain aspects of the present disclosure are particularly useful with respect to certain types of vehicles, the vehicle can be any type of vehicle, including but not limited to cars, trucks and other freight vehicles, motorcycles, buses, recreational vehicles, etc. The vehicle can have one or more computing devices, such as a computing device 110 that includes one or more processors 120, memory 130, and other components typically found in a general-purpose computing device.

[0033] Memory 130 stores information accessible by one or more processors 120, including instructions 132 and data 134 that can be executed or otherwise used by processor 120. Memory 130 can be of any non-transitory type capable of storing information accessible by a processor, including computing device-readable media or other media that stores data readable by an electronic device, such as a hard drive, memory card, ROM, RAM, DVD or other optical disk, and other writable and read-only memory. Systems and methods may include different combinations of the foregoing, whereby different portions of the instructions and data are stored on different types of media.

[0034] Instructions 132 may be any set of instructions that are executed by a processor directly (e.g., machine code) or indirectly (e.g., a script). For example, the instructions may be stored as computing device code on a computing device readable medium. In this regard, the terms "instructions" and "program" may be used interchangeably herein. The instructions may be stored in object code format for direct processing by the processor, or in any other computing device language (including a collection of independent source code modules or scripts that are interpreted on demand or pre-compiled). The functions, methods, and routines of the instructions are explained in more detail below.

[0035] Data 134 may be retrieved, stored, or modified by processor 120 according to instructions 132. For example, although the claimed subject matter is not limited to any particular data structure, the data may be stored in a computing device register, in a relational database as a table with multiple different fields and records, as an XML document, or as a flat file. The data may also be formatted in any computing device-readable format.

[0036] The one or more processors 120 may be any conventional processor, such as a commercially available CPU. Alternatively, the one or more processors may be dedicated devices, such as ASICs or other hardware-based processors. Figure 1AThe processor, memory, and other elements of computing device 110 are shown functionally as being within the same block, but one of ordinary skill in the art will understand that a processor, computing device, or memory may actually include multiple processors, computing devices, or memories that may or may not be housed within the same physical housing. For example, the memory may be a hard drive or other storage medium located in a housing that is different from the housing of computing device 110. Thus, references to a processor or computing device will be understood to include references to a collection of processors, computing devices, or memories that may or may not operate in parallel.

[0037] The computing device 110 may include all components typically used in conjunction with a computing device, such as the processor and memory described above, as well as user input 150 (e.g., a mouse, keyboard, touch screen, and / or microphone) and various electronic displays (e.g., a monitor with a screen or any other electronic device operable to display information). In this example, the vehicle includes an interior electronic display 152 and one or more speakers 154 to provide information or an audio-visual experience. In this regard, the interior electronic display 152 may be located within the cabin of the vehicle 100 and may be used by the computing device 110 to provide information to passengers within the vehicle 100.

[0038] The computing device 110 may also include one or more wireless network connections 156 to facilitate communications with other computing devices. The wireless network connections may include short-range communication protocols such as Bluetooth™, Bluetooth™ Low Energy (LE), cellular connections, and various configurations and protocols including the Internet, the World Wide Web, an intranet, a virtual private network, a wide area network, a local area network, a private network using one or more company-proprietary communication protocols, Ethernet, WiFi, and HTTP, as well as various combinations of the foregoing.

[0039] Computing device 110 may include an autonomous driving computing system incorporated into vehicle 100. The autonomous driving computing system is capable of communicating with various components of the vehicle to operate vehicle 100 in a fully autonomous driving mode and / or a semi-autonomous driving mode. For example, there are different degrees of autonomy that may occur for a vehicle operating in a partially or fully autonomous driving mode. The National Highway Traffic Safety Administration and the Society of Automotive Engineers have identified different levels that indicate the degree to which a vehicle controls driving to a greater or lesser degree. For example, Level 0 has no automation, and the driver makes all driving-related decisions. The lowest semi-autonomous mode (Level 1) includes some driving assistance, such as cruise control. Level 2 has partial automation of certain driving operations, while Level 3 involves conditional automation that enables the person in the driver's seat to take control as needed. In contrast, Level 4 is a high automation level, in which the vehicle can be driven without assistance under selected conditions. Furthermore, Level 5 is a fully autonomous mode, in which the vehicle can be driven without assistance in all situations. The architecture, components, systems, and methods described herein can function in any of Levels 1-5, semi-autonomous or fully autonomous modes (referred to herein as "autonomous" driving modes), for example. Therefore, references to autonomous driving modes include both partially autonomous and fully autonomous.

[0040] return Figure 1A The computing device 110 can communicate with various systems of the vehicle 100 to control the movement, speed, etc. of the vehicle 100 according to the instructions 132 of the memory 130, such as the deceleration system 160, the acceleration system 162, the steering system 164 (which can collectively form the driving system of the vehicle), the signal system 166, the navigation system 168, the positioning system 170, the perception system 172, and the power system 174 (e.g., a gasoline or diesel powered motor or an electric engine). Again, although these systems are shown as being external to the computing device 110, in reality, these systems can also be incorporated into the computing device 110, also serving as an autonomous driving computing system for controlling the vehicle 100.

[0041] As an example, computing device 110 may interact with deceleration system 160 and acceleration system 162 to control the vehicle's speed. Similarly, steering system 164 may be used by computing device 110 to control the direction of vehicle 100. For example, if vehicle 100 is configured for on-road use, such as in a car or truck, the steering system may include components for controlling the angle of the wheels to turn the vehicle. Signaling system 166 may be used by computing device 110 to signal the vehicle's intentions to other drivers or vehicles, such as by activating turn signals or brake lights when necessary.

[0042] Navigation system 168 may be used by computing device 110 to determine and follow a route to a location. In this regard, navigation system 168 and / or data 134 may store detailed map information, such as a highly detailed map identifying the shape and height of roads, lane markings, intersections, crosswalks, speed limits, traffic signals, buildings, signs, real-time traffic information, vegetation, or other such objects and information. In other words, this detailed map information may define the geometry of the vehicle's expected environment, including roads and speed constraints (legal speed limits) on those roads. Additionally, this map information may include information about traffic controls, such as traffic lights, stop signs, yield signs, etc., which, combined with real-time information received from perception system 172, may be used by computing device 110 to determine which directions of traffic have the right of way at a given location.

[0043] The perception system 172 also includes one or more components for detecting objects outside the vehicle (such as other vehicles, obstacles in the road, traffic signals, signs, trees, etc.). For example, the perception system 172 may include one or more lidar sensors, radar units, sonar devices, microphones, optical cameras, infrared cameras, and / or any other detection devices that record data that can be processed by the computing device 110. The sensors of the perception system can detect objects and their characteristics, such as location, orientation, size, shape, type, direction and rate of movement, etc. The raw data from the sensors (e.g., lidar point clouds, radar returns, images, etc.) and / or the above-mentioned characteristics can be quantized or arranged into descriptive functions or vectors and sent to the computing device 110 for further processing. As an example, the computing device 110 can use the positioning system 170 to determine the location of the vehicle and can use the perception system 172 to detect objects and respond to them as needed to safely reach the location.

[0044] Figure 1B1 is a functional diagram 180 illustrating various operational modules that may be implemented by the processor of the computing device 110 based on the instructions 132 and data 134 of the memory 130. For example, the segmenter module 182 may segment each spin into a separate cluster. The cluster tracker module 184 may maintain a track of objects detected in the surrounding environment based on the clusters from the segmenter module 182. The object classification module 186 may use the tracking information from the cluster tracker module 184 to identify the type or category of objects detected by the perception system 172. The behavior prediction module 188 may use the behavior models stored in the memory to identify possible actions of the classified objects. For example, an object detected as a cyclist may be predicted to be riding in a bike lane along the side of the road, as opposed to riding in the driving lane or along the shoulder of the road. Furthermore, the planner module 190 may use the object classification, behavior prediction, map data, weather data, traffic data, and / or other information to plan a short-term (e.g., the next 5-10 seconds) or long-term (e.g., the remaining trip) route for the vehicle.

[0045] Figure 2 is an example exterior view of the vehicle 100 including various aspects of the perception system 172. For example, the roof housing 210 and the dome housing 212 may include lidar sensors or systems as well as various cameras and radar units. In addition, a housing 220 located at the front of the vehicle 100 and housings 230 and 232 on the driver's and passenger sides of the vehicle may each house the lidar sensors and other equipment. For example, housing 230 is located in front of the driver's door 260. As shown, the vehicle 100 also includes housings 240 and 242 for radar units and / or cameras, which are also located on the roof of the vehicle 100. Additional radar units and cameras (not shown) may be located at the front and rear ends of the vehicle 100 and / or at other locations along the top or roof housing 210. The specific sensor types and their arrangement are exemplary only and may vary depending on the type of vehicle and other factors.

[0046] Example Method

[0047] In addition to the operations described above and shown in the figures, various operations will now be described. It should be understood that the following operations do not necessarily need to be performed in the exact order described below. Instead, the various steps may be processed in a different order or simultaneously, and steps may also be added or omitted.

[0048] The vehicle's processing system can receive sensor data collected by the sensors of the perception system during the current spin. As described above, the perception system can have one or more sensors, including sensors that can periodically scan the vehicle's environment to track objects. For example, the perception system can include one or more lidar sensors that can perform a "spin" at a predetermined spin rate. Depending on the type of sensor, the spin can be a full 360° scan around the vehicle, or a partial scan of an area around the vehicle (e.g., along the front or rear), such as between 45°-180° or more or less.

[0049] Figure 3A Scenario 300 is shown in which a lidar sensor of a vehicle 302 generates a complete scan around the vehicle 302 within a radius enclosed by a dotted circle 304. Figure 3A As shown, vehicle 302 may be traveling along a road, and other objects within the scanning radius may include passenger vehicles 306 traveling in the same direction and trucks 308 traveling in the opposite direction. Figure 3B A scan 310 performed by lidar is shown, with point clouds 312a and 312b obtained via returns from vehicles 306a and 306b, and point cloud 314 obtained via returns from vehicle 308. As an example, each time a sensor scan is captured, this information can be automatically sent by the perception system to the computing device of the processing system.

[0050] The processing system can be configured to segment sensor data (e.g., point cloud data) from a spin so that points having one or more identical or similar attributes can be identified as being in clusters. Thus, the segmented sensor data can include one or more clusters corresponding to one or more objects detected in the vehicle's environment. Each cluster in a spin can represent a snapshot of an object at or around the timestamp of the spin. In some cases, the sensor data may be under-segmented (e.g., points corresponding to two different objects are not distinguished) or over-segmented (e.g., parts of an object are identified as two clusters). As discussed further below, by tracking and evaluating clusters in the sensor data rather than individual points, the system can address under-segmentation and over-segmentation.

[0051] Figure 4A-4B An example of under-segmentation is shown. In particular, Figure 4A The diagram 400 shows two different vehicles 402 and 404. Depending on their relative position to another vehicle (e.g., Figure 3A The distance, direction and speed of the vehicle 302) can be obtained by Figure 4BAs shown in diagram 410, point cloud data 412 corresponds to vehicle 402, and point cloud data 414 corresponds to vehicle 404. In this case, Figure 4C As shown in the diagram 420 , the point cloud sensor data may be under-segmented, as shown in the result 422 in the brackets.

[0052] Figure 5A-5B shows an example of over-segmentation. In particular, Figure 5A The diagram 500 shows a large vehicle 502, such as a tractor-trailer truck. Depending on the vehicle 502 relative to another vehicle (e.g., Figure 3A The distance, direction and speed of the vehicle 302) can be obtained by Figure 5B 510, where point cloud data 512 corresponds to both the tractor (cab) and trailer of vehicle 502. In this case, Figure 5C As shown in diagram 520 , the point cloud sensor data may be over-segmented, as shown by the results 522 (corresponding to the trailer) and 524 (corresponding to the tractor) in brackets.

[0053] Processing systems (e.g. Figure 1B The cluster tracker module 184 can associate a given cluster from a current spin with a given cluster from a previous spin stored in memory as corresponding to a given detected object. The previous spin can be the spin that was last in time before the current spin. For example, cluster association between spins can be performed by projecting the detected object into the future. In one example, the tracking system can apply a Kalman filter to the cluster from the previous spin to estimate the current velocity of the object corresponding to the cluster.

[0054] Using the estimated current velocity, the cluster tracker can project a cluster of the object at the timestamp of the current spin. The tracking system can then compare the projected cluster with the actual cluster from the current spin. In some cases, the cluster from the current spin that has the greatest overlap with the projected cluster can be associated as corresponding to the object. For another example, if there are no overlapping clusters from the current spin, the cluster from the current spin that is closest to the projected cluster can be associated as corresponding to the object.

[0055] Additionally or alternatively, the cluster tracker can use a surface matching algorithm such as the Iterative Closest Point ("ICP") algorithm to associate clusters from different spins. As an example, the ICP algorithm can be run on each pair of consecutive point clouds of the same object. For example, this might include vehicles, pedestrians, cyclists, or other objects. The ICP algorithm can provide the movement of each object from consecutive observations of the object, specifically the translation and rotation. The translation divided by the time difference between the point clouds can provide the velocity of a given object, while the rotation divided by the time gap can provide the yaw rate, pitch rate, and roll rate of the object.

[0056] Figures 6A-6C An example of cluster association using the ICP method is shown. As shown in diagram 600, there is a first cluster 602 from a first time point (e.g., time t0) and a second cluster 604 from a second, later time point (e.g., time t1). The time associated with the clusters will depend on the capture or spin rate of a given sensor, which can be, for example, between 1-50 Hz, or more or less. The clusters can correspond to data from consecutive scans (e.g., spins) of the same sensor (e.g., a lidar sensor). The ICP process first generates a correspondence between the individual points in the first and second clusters, such as Figure 6B As shown by the dotted line in the diagram 610. Figure 6C As shown in diagram 620, a transformation (eg, translation and rotation) may be performed on the two clusters. The transformation may be divided by the time difference (t0-t1) to determine the rate of speed of the object and its direction.

[0057] In this regard, correspondences can be found between points in a given cluster from the current spin and points in clusters from previous spins. For example, a given cluster from the current spin can be associated with the cluster from the previous spin that has the largest number of point correspondences. Thus, each cluster in the current spin can be associated with at most one "track" of a previously detected object, or start a new track for a newly detected object. The cluster tracker can be configured so that many clusters can be associated with one track and subsequently split into multiple tracks. In other words, the tracking system may not initially distinguish between two objects, but will eventually distinguish between them when their tracks diverge, and will eventually distinguish between them if their tracks diverge. The tracking system can also be configured so that a cluster cannot be associated with more than one track.

[0058] A lifecycle can be set for a track so that if a cluster from the current spin is not associated with the track, the track can still be stored within the lifecycle instead of being deleted immediately. For example, the tracking system can be configured to generate a confidence score when identifying a new track. In this regard, a longer lifecycle can be set for tracks with higher confidence scores than for tracks with lower confidence scores. For example, if the confidence score of the track meets a high confidence threshold, and if the cluster from the current spin is not associated with the track, the track can be given a lifecycle until the next spin. For another example, if the confidence score of the track is at or below a low confidence threshold (e.g., an 85% confidence threshold, or more or less), the track is immediately destroyed if a cluster from the current spin is not associated with the track.

[0059] The tracking system can adjust for motion distortion when generating one or more motion characteristics based on the spin rate determination of the sensor. According to one aspect of the present technology, motion distortion can be corrected based on two factors: (i) the previously estimated velocity of the object and (ii) the time difference within a cluster (comparing the earliest scan point to the latest scan point of the cluster). This can be evaluated by determining whether the velocity multiplied by the time difference is greater than a certain preset distance (e.g., 3 meters to 5 meters, or more or less).

[0060] For example, at low spin rates (e.g., 1 Hz-5 Hz, or more or less), points in a cluster corresponding to a fast-moving object may appear to move at different rates relative to each other. For example, a first edge of the object may be captured by the lidar sensor at a first point in time during a spin, while a second edge of the object may be captured by the lidar sensor at a second point in time during the same spin. However, because the object is moving much faster than the lidar sensor's spin rate, the second edge of the object (captured at the second point in time) may appear to have moved farther than the first edge of the object (captured at the first point in time).

[0061] Figures 7A-7C is a scene showing an example of motion distortion. Figure 7A As shown in diagram 700, vehicle 702 receives a return from another vehicle 704, specifically a return from the right front corner 706 of vehicle 704, as shown by the dashed line. The return is captured at time t0, where vehicle 704 moves toward vehicle 702, as shown by the arrow. Figure 7BIllustration 710 shows a scene where vehicle 704 has moved toward vehicle 702. Here, at time t1, vehicle 702 obtains a second return from vehicle 704, specifically a return from the left front corner 712 of the other vehicle, as shown by the dashed line. Here, for illustration purposes only, position 706 is shown at time t1 as having moved backward along the side of the other vehicle. Here, averaging based on different points captured at slightly different points in time may result in a distorted representation of the other vehicle, as shown in FIG. Figure 7C As shown in diagram 730 .

[0062] In some cases, the perception system can include a first lidar sensor with a low spin rate (e.g., 2-5 Hz), a second lidar sensor with a higher spin rate (e.g., 15-25 Hz), and a third lidar sensor with a medium spin rate (e.g., 5-15 Hz). In this case, the cluster tracker can be configured to adjust for motion distortion only when generating motion characteristics based on sensor data from the lowest spin rate sensor (here, the first lidar), but the other sensor can be used as a baseline for motion compensation.

[0063] The cluster tracker may first set the current estimated motion characteristic to an initial estimate. For example, the current estimated motion characteristic may be the current estimated velocity of the object, which may be set to the velocity determined for a previous spin of the object. In one scenario, for a cluster from an initial spin when the sensor is first turned on, the current estimated velocity may be set to zero since there is no previous data to rely on. Here, the current velocity estimate may be assigned a large uncertainty value. As an example, the current estimated velocity may be set to 100 km / h with an uncertainty value of 0.9 or greater (on a scale of 0.0 to 1.0).

[0064] The system can adjust (e.g., translate or otherwise move) one or more points in a given cluster from a previous spin and one or more points in a given cluster from a current spin based on the current estimated motion characteristics. For example, if the spin rate is 4 Hz, each spin of a 360° scan may take 0.25 seconds to complete. It can be determined that the detected object has points occupying 10 degrees of spin, which would take approximately 0.007 seconds for the lidar sensor to scan. Therefore, the first edge of the object may be scanned at a first time point 0.007 seconds earlier than the second time point for the second edge of the object. Since the current estimated speed is 100 km / h according to the above example, the second edge may be farther than the first edge by 100 km / h * 0.007 seconds = 0.194 meters. Therefore, the points in the cluster can be adjusted (translated or moved) to the average time point between the first time point and the second time point. As an example, a first edge may be adjusted 0.097 meters forward, a second edge may be adjusted 0.097 meters backward, and a point between the two edges may be adjusted somewhere between 0.097 meters forward and 0.097 meters backward.

[0065] The cluster tracker can use a surface matching algorithm to determine the adjusted motion characteristics based on the adjusted clusters. For example, the tracking system can use ICP to determine a transformation that can be applied to align two adjusted clusters. The tracking system can then use this transformation and the difference in timestamps between the two adjusted clusters to determine the adjusted motion characteristics. For example, if a 10-meter transformation is found to align two adjusted clusters, and the timestamps of the two adjusted clusters are 0.25 seconds apart, the adjusted velocity of the object can be determined to be 40 meters per second or 144 kilometers per hour.

[0066] The system can compare the current estimated motion characteristic to the adjusted motion characteristic to determine whether it is within a predetermined tolerance of the adjusted motion characteristic. For example, if the current estimated motion characteristic converges with the adjusted motion characteristic, the cluster tracker can conclude that the adjusted cluster and the current estimated motion characteristic are accurate. In this regard, convergence can be determined based on a predetermined tolerance. For example, if the current estimated velocity (the initial estimate) and the adjusted estimated velocity (based on the adjusted cluster) are within a predetermined tolerance (e.g., within a 5%-10% tolerance amount), the cluster tracker can conclude that the adjusted cluster and the current estimated velocity are accurate.

[0067] In contrast, if the current estimated motion characteristic does not converge with the adjusted motion characteristic, the system can set the current estimated motion characteristic to the adjusted motion characteristic. For example, if the current estimated velocity (the initial estimate) and the adjusted estimated velocity (based on the adjusted cluster) are not within a predetermined tolerance (e.g., within a 5%-10% tolerance), the tracking system can determine that the adjusted cluster and / or the current estimated velocity may be inaccurate. In this case, the cluster tracker can set the current estimated velocity to the adjusted estimated velocity.

[0068] If the current estimated motion characteristic is updated, the system can repeat the process with the new current estimated motion characteristic until convergence is reached. For example, the tracking system can adjust the two clusters based on the updated current estimated motion characteristic (e.g., based on a more accurate velocity value). The tracking system can apply ICP to the two newly adjusted clusters to generate another adjusted motion characteristic, and compare it to the current estimated motion characteristic, and so on.

[0069] Once determined, the motion characteristics of the detected object can be used as input to other modules used by one or more computing devices of the vehicle. For example, Figure 1B The object classification module 186 may classify the detected object based on the motion characteristics according to one or more stored object models. Thus, the object classification module may classify the detected object as a vehicle rather than a pedestrian based on the detected object's speed being 100 km / h. And Figure 1B The behavior prediction module 188 can predict one or more behaviors of the detected object based on the motion characteristics. For example, the behavior prediction module can predict that the detected object will stop based on the deceleration of the detected object.

[0070] In another aspect, the system can also be configured to adjust for inaccuracies in the motion signature caused by high spin rates of the sensor. For example, at high spin rates, the clusters in each spin may have too few points to generate an accurate motion signature, especially when the sensor has a narrow field of view (FOV), such as between 15° and 60°. In this regard, the cluster tracker can be configured to combine sensor data from multiple spins of a sensor to improve accuracy when generating the motion signature.

[0071] For example, the system may determine that the spin rate of a given sensor in the vehicle's perception system is faster than the tracking rate of the cluster tracker. The system may be configured to track the object at a predetermined tracking rate, which may be set equal to the spin rate of one of the sensors in the perception system. By way of example only, the perception system may include a first lidar sensor having a first spin rate of 4 Hz, a second lidar sensor having a second spin rate of 20 Hz, and a third lidar sensor having a third spin rate of 10 Hz. The tracking rate may be set to the spin rate of the third lidar sensor at 10 Hz, allowing for behavior predictions to be made at the tracking rate, or 10 times per second. Therefore, the cluster tracker may simply discard sensor data from every other spin of the second lidar sensor. However, as described above, discarding sensor data may result in too little data for accurate alignment, as the cluster collected by the sensor with the higher spin rate already has fewer points. Therefore, rather than discarding sensor data from the sensor with the higher spin rate (e.g., 20 Hz), the cluster tracker may be configured to use the additional sensor data to generate more accurate motion characteristics.

[0072] In one scenario, a cluster tracker may receive sensor data including a first set of clusters collected from a first set of spins corresponding to a first tracking time point and a second set of clusters collected from a second set of spins corresponding to a second tracking time point. Both the first set of clusters and the second set of clusters correspond to a detected object. Continuing with the above example and referring to the third lidar sensor, since the tracking rate is 10 Hz, the first tracking time point may be t A =0.1s, and the second tracking time point can be t B =0.2s. In addition, since the spin rate of the second lidar sensor is 20 Hz, the first group of spins may include a first spin at t1=0.05 seconds and a second spin at t2=0.1 seconds, and the second group of spins may include t 1' = the first spin at 0.15 seconds and t 2' = 0.2 seconds. Therefore, in this example, the second spin corresponding to the tracking time point t A A first set of clusters c(t1) and c(t2) are collected for a given object, and can be used for tracking the corresponding time point t B The given object collects the second set of clusters c(t 1' ) and c(t 2' ). In other examples where the spinning rate is three or more times the tracking rate, three or more clusters may be collected for a given object corresponding to each tracking time point.

[0073] The cluster tracker may set an initial estimated motion characteristic for the detected object. For example, the initial estimated motion characteristic may be a current estimated velocity of the detected object, which may be set to a velocity determined for a previously spun detected object. For example, the current estimated velocity may be set to 100 km / h.

[0074] Based on the initial estimated motion characteristics, the system can use a surface matching algorithm (e.g., ICP) to determine multiple sets of correspondences between the two sets of clusters based on the initial estimated motion characteristics. Continuing with the above example, a first cluster c(t1) from the first set of clusters and a first cluster c(t2) from the second set of clusters can be identified. 1' ), and a first set of correspondences can be determined between a second cluster c(t2) from the first set of clusters and a second cluster c(t 2' ). For example, for the ICP algorithm, the points in the first cluster c(t1) from the first set of clusters may be transformed based on the initial estimated motion characteristics, and each transformed point may be compared with the first cluster c(t1) from the second set of clusters. 1' ) are matched to the nearest point in the . In other examples where the spinning rate is three or more times the tracking rate, three or more sets of correspondences may be determined for a given object.

[0075] The tracking system can optimize the transformation between the first set of clusters and the second set of clusters based on both the first set of correspondences and the second set of correspondences. For example, the first cluster c(t1) from the first set of clusters can be matched with the first cluster c(t2) from the second set of clusters using the transformation 1' ) and the first loss can be calculated. Similarly, the second cluster c(t2) from the first set of clusters can be aligned with the second cluster c(t 2' ) are aligned, and a second loss can be calculated. A total loss can be calculated by summing the first and second losses. The cluster tracker can be configured to optimize the transformation to minimize the total loss. In other words, the transformation is optimized so that the total distance between the transformed points of a cluster from the first set of clusters and the corresponding points of the corresponding cluster from the second set of clusters is minimized.

[0076] For a sensor with a first spin rate (e.g., 1 Hz-10 Hz), one approach is as follows. Given a set of correspondences {(a i ,b i )}, where a i From cluster A, b i From cluster B, the system computes the transformation T so that each T(a i ) and b i The total distance between is minimized. This minimization process can be performed using, for example, the least squares method.

[0077] For another sensor with a higher spin rate (e.g., 11 Hz-30 Hz), two sets of correspondences {(a i ,b i )} and {(a' i ,b' i )}. Here, the system also calculates the i ) and b i and T(a' i ) and b' i The transformation T that minimizes the total distance between them.

[0078] The tracking system can transform the first set of clusters using the optimized transformation to generate a predicted second set of clusters. Continuing with the above example, the first set of clusters c(t1) and c(t2) can be transformed using the optimized transformation to generate a predicted second set of clusters cp(t 1' ) and cp(t 2' ). The tracking system can compare the predicted second set of clusters with the actual second set of clusters. Continuing with the above example, the predicted clusters cp(t 1' ) and the actual cluster c(t 1' ) and the predicted cluster cp(t 2' ) and the actual cluster c(t 2' ) for comparison.

[0079] For example, if the predicted second set of clusters converges with the actual second set of clusters, the cluster tracker can conclude that the optimized transformation is accurate. In this regard, convergence can be determined based on a predetermined threshold. For example, if the distance between a point in the predicted second set of clusters and a point in the actual second set of clusters meets a predetermined threshold (e.g., within 5%-10%), the tracking system can conclude that the optimized transformation is accurate.

[0080] In contrast, if the predicted second set of clusters does not converge with the actual second set of clusters (e.g., within 2-4 iterations), the system can conclude that the optimized transformation is inaccurate. For example, if the distance between a point in the predicted second set of clusters and a point in the actual second set of clusters does not meet a predetermined threshold, the tracking system can conclude that the optimized transformation is inaccurate. Therefore, the tracking system can recalculate a first set of correspondences for the first cluster c(t1) from the first set of clusters based on the optimized transformation, and recalculate a second set of correspondences for the second cluster c(t2) from the second set of clusters based on the optimized transformation, and repeat the process using the two new sets of correspondences.

[0081] In another aspect, the tracking system can be configured to generate confidence levels for initial values ​​used in the surface matching algorithm in order to improve the efficiency of the surface matching algorithm. For example, to perform ICP on a pair of cluster pairs, a set of hypotheses may be generated. Here, each set of velocity hypotheses may include an estimated velocity based on a centroid offset (how much the centroid of the cluster has moved), a bounding box center offset (how much the bounding box has moved), zero (how much has moved from a reference point), a previous ICP offset (using a previous estimated velocity). As yet another example, the velocity may be estimated based on one or more feature points of the two clusters. For example, where feature points of a detected part of a vehicle (e.g., tires or headlights) are identified (e.g., by a computer vision process), the velocity may be estimated based on the offset between these feature points corresponding to the two clusters.

[0082] The tracking system can assign a confidence level to each set of hypotheses based on one or more predetermined rules. For example, a first confidence level can be assigned based on the number of correspondences or the number of points that are successfully matched between two clusters. In another example, a second confidence level can be assigned based on a loss value from a loss function for the transformation. In yet another example, a third confidence level can be based on a covariance estimate. In some cases, an overall confidence level can be assigned based on one or more of the above factors and / or additional factors. In this regard, the tracking system can be configured to try only a subset of hypotheses. For example, the subset of hypotheses can be a subset of hypotheses with a confidence level that meets a confidence threshold (e.g., a 90% threshold, or more or less).

[0083] In yet another aspect, the system can determine whether to generate a yaw rate for a detected object. For example, an object with a circular horizontal cross-section (such as a traffic cone, a ball, etc.) may not rotate, but due to the incomplete correspondence of points between clusters collected during different spins, the surface matching algorithm may still determine that such an object rotates between different spins. In addition, the yaw rate generated by the surface matching algorithm will be based on the incomplete correspondence of points, rather than the actual rotation of the object. In this regard, the cluster tracker can be configured to determine that the detected object has a horizontal cross-section with an asymmetry that satisfies a set of predetermined rules. The tracking system can be configured to determine the yaw rate of the detected object based on the asymmetry satisfying the set of predetermined rules. Examples of predetermined rules can be that the cross-section is not a circle, an ellipse, or a polygon with more than 5 equal sides.

[0084] In another aspect, the tracking system can be configured to accumulate associated clusters corresponding to detected objects to improve object classification. For example, the front of the object can be observed in the first cluster from the first spin to be behind the vehicle. Then, as the object changes lanes, the right side of the object can be observed in the second cluster from the second spin to be on the left side of the vehicle. Next, as the object accelerates past the vehicle, the rear side of the object can be observed in the third cluster from the third spin to be in front of the vehicle. In some cases, the object classification model may not be able to classify the object based on only one of the three clusters showing the front, side, or rear of the object, but may be able to classify the object based on all three clusters showing different sides of the object. At this point, the cluster tracker can be configured to accumulate the first, second, and third clusters into a merged cluster. For example, the tracking system can use a surface matching algorithm (e.g., ICP) to calculate a transformation that aligns the first, second, and third clusters. The transformed clusters together form a merged cluster that can be used for object classification. The merged cluster can then be used as input to the object classification module.

[0085] The above features can allow the autonomous vehicle's computing system to accurately determine the motion characteristics of objects detected in its environment despite various limitations in sensor measurements. By correcting for motion distortions of fast-moving objects, the motion characteristics of such objects can be determined with greater accuracy. By finding multiple sets of correspondences from clusters of multiple sensor spins at high spin rates, even though each cluster may have fewer points, better alignment can be achieved using a surface matching algorithm. The efficiency of the surface matching algorithm can be further improved by selecting hypotheses based on confidence levels. These features also provide a way to identify the types of objects for which yaw rates can be accurately determined. Object classification can be improved by accumulating associated clusters corresponding to detected objects. Furthermore, using these enhanced methods, under-segmentation and over-segmentation can be avoided.

[0086] Figure 8A method 800 for tracking an object by an autonomous vehicle is shown. In block 802, one or more computing devices of an onboard system of an autonomous vehicle receive sensor data collected by sensors of the autonomous vehicle during a plurality of spins. The plurality of spins includes a first spin and a second spin. The sensor data includes one or more clusters corresponding to one or more objects detected in an environment surrounding the autonomous vehicle. In block 804, a given cluster from the first spin is associated with a given cluster from the second spin as corresponding to a given detected object among the one or more detected objects in the environment. In block 806, a current estimated motion characteristic of the given detected object is set as an initial estimate. In block 808, the system adjusts one or more points in the given cluster from the second spin and one or more points in the given cluster from the first spin based on the current estimated motion characteristic to obtain an adjusted cluster. In block 810, a surface matching algorithm is used to determine an adjusted motion characteristic based on the adjusted cluster. And in block 812, the system controls the autonomous vehicle based on the adjusted motion characteristic of the given detected object.

[0087] Figure 9 Another method 900 for tracking an object by an autonomous vehicle is shown. At block 902, one or more computing devices of an onboard system of an autonomous vehicle receive sensor data comprising a first set of clusters collected from a first set of spins corresponding to a first tracking time point, and a second set of clusters collected from a second set of spins corresponding to a second tracking time point. The first set of clusters and the second set of clusters both correspond to a detected object. At block 904, the system uses a surface matching algorithm to determine multiple sets of correspondences between the first set of clusters and the second set of clusters based on a transformation using initial estimated motion characteristics of the detected object. At block 906, the transformation between the first set of clusters and the second set of clusters is optimized based on the multiple sets of correspondences. At block 908, one or more motion characteristics based on the optimized transformation are determined. And at block 910, the system controls the autonomous vehicle based on the one or more motion characteristics determined for the detected object.

[0088] Unless otherwise stated, the foregoing alternative examples are not mutually exclusive, but may be implemented in various combinations to achieve unique advantages. Since these and other variations and combinations of the above-mentioned features can be utilized without departing from the subject matter defined in the claims, the foregoing description of the embodiments should be made in an illustrative manner rather than a restrictive manner of the subject matter defined in the claims. In addition, the examples described herein and the provision of clauses with the wording "for example," "including," etc. should not be interpreted as limiting the subject matter of the claims to specific examples; rather, these examples are intended to illustrate only one of many possible embodiments. In addition, the same figure numbers in different figures may identify the same or similar elements. Unless otherwise stated herein, the order or steps in the process or operation box may be performed in a different order or in parallel.

Claims

1. A method for tracking an object by an autonomous vehicle, comprising: receiving, by one or more computing devices of the autonomous vehicle, sensor data collected by sensors of the autonomous vehicle during a plurality of spins including a first spin and a second spin, the sensor data including one or more clusters corresponding to one or more objects detected in an environment surrounding the autonomous vehicle; associating, by the one or more computing devices, a given cluster from the first spin to a given cluster from the second spin as corresponding to a given detected object of the one or more detected objects in the environment; setting, by one or more computing devices, a current estimated motion characteristic of a given detected object to an initial estimate; adjusting, by the one or more computing devices, one or more points in the given cluster from the second spin and one or more points in the given cluster from the first spin based on the current estimated motion characteristic to obtain an adjusted cluster; determining, by one or more computing devices, an adjusted motion characteristic based on the adjusted clusters using a surface matching algorithm; controlling, by one or more computing devices, the autonomous vehicle based on the adjusted motion characteristics of a given detected object; comparing, by one or more computing devices, the current estimated motion characteristic to the adjusted motion characteristic; determining, by one or more computing devices, that the current estimated motion characteristic and the adjusted motion characteristic are within a predetermined tolerance; and The one or more computing devices determine that the cluster of one or more adjusted points and the current estimated speed are accurate based on determining that the current estimated motion characteristic is within a predetermined tolerance, wherein controlling the vehicle is further based on determining that the adjusted cluster and the current estimated speed are accurate.

2. The method of claim 1, further comprising: comparing the current estimated motion characteristic with the adjusted motion characteristic; as well as It is determined that the current estimated motion characteristic and the adjusted motion characteristic are not within a predetermined tolerance.

3. The method of claim 2, wherein: determining that the current estimated motion characteristic and the adjusted motion characteristic are not within a predetermined tolerance, indicating that the current estimated motion characteristic and the adjusted motion characteristic have not converged; When it is indicated that the current estimated motion characteristic and the adjusted motion characteristic have not converged, the method further includes: Update current estimated motion characteristics; and The updated current estimated motion characteristic is compared to the adjusted motion characteristic.

4. The method according to claim 2, wherein: When it is determined that the current estimated motion characteristic is not within a predetermined tolerance: setting the current estimated motion characteristic equal to the adjusted motion characteristic; adjusting one or more points in the given cluster from the second spin and one or more points in the given cluster from the first spin based on the current estimated motion characteristic; determining a second adjusted motion characteristic based on the adjusted cluster using a surface matching algorithm; as well as comparing the current estimated motion characteristic to a second adjusted motion characteristic; Therein, controlling the autonomous vehicle is further based on comparing the current estimated motion characteristic with the second adjusted motion characteristic.

5. The method according to claim 1, wherein The first spin is a current spin of the sensor, and the second spin is a previous spin last in time before the first spin.

6. The method of claim 1, wherein: The first spin and the second spin are caused by the sensor rotating around the axis.

7. The method of claim 1, wherein: The adjusting includes moving at least one of one or more points in a given cluster from the first spin or one or more points in a given cluster from the second spin to account for the distorted representation of the detected object.

8. The method of claim 1, wherein: The surface matching algorithm is an iterative closest point algorithm.

9. The method of claim 1, wherein: The motion characteristic that is adjusted is the speed characteristic.

10. A system for operating a vehicle in an autonomous driving mode, the system comprising: a driving system configured to cause the vehicle to perform driving maneuvers when in an autonomous driving mode; a perception system configured to detect objects in the environment surrounding the vehicle; as well as a computing system having one or more processors and memory, the computing system operatively coupled to the driving system and the perception system, the computing system configured to: receiving sensor data collected by a sensor of the perception system during a plurality of spins, the plurality of spins including a first spin and a second spin, the sensor data including one or more clusters corresponding to one or more objects detected in an environment surrounding the vehicle; associating a given cluster from the first spin to a given cluster from the second spin as corresponding to a given detected object of the one or more detected objects in the environment; Setting the current estimated motion characteristics of a given detected object to an initial estimate; adjusting one or more points in the given cluster from the second spin and one or more points in the given cluster from the first spin based on the current estimated motion characteristic to obtain an adjusted cluster; determining, using a surface matching algorithm, a kinematic characteristic of the adjustment based on the cluster of adjustments; as well as The autonomous vehicle is controlled via actuating a driving system based on adjusted motion characteristics given a detected object.

11. The system of claim 10, further comprising the vehicle.