Automatic detection of sensor miscalibration
The system addresses the challenge of detecting miscalibrated sensors in autonomous vehicles by using LIDAR data and a calibration grid to compare sensor averages, enhancing detection accuracy and reducing resource consumption.
Patent Information
- Application Number
- JP2024077235
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2018-03-21
- Filing Date
- 2024-05-10
- Publication Date
- 2025-05-09
- Estimated Expiration
- 2039-03-19
AI Technical Summary
Autonomous vehicle systems face challenges in detecting miscalibrated sensors, which can lead to inaccurate data capture and poor safety outcomes. Current methods require extensive cause analysis and consume significant time, cost, and resources.
The system employs LIDAR sensors to capture environmental data, uses a calibration grid to divide the data into calibration partitions, and calculates average height values from multiple sensors to detect miscalibration by comparing individual sensor data to a group average.
This approach reduces the computational resources required for detecting miscalibrated sensors, maintains detection accuracy, and improves safety outcomes by quickly identifying and addressing inaccurate sensor data, thereby reducing network congestion.
Smart Images

Figure 0007674563000001 
Figure 0007674563000002 
Figure 0007674563000003
Abstract
Description
[Technical field]
[0001] The present invention relates to automatic detection of sensor miscalibration. [Background technology]
[0002] [CROSS REFERENCE TO RELATED APPLICATIONS] This patent application claims priority to U.S. utility patent application having serial number 15 / 927,315, filed March 21, 2018. Application serial number 15 / 927,315 is incorporated by reference herein in its entirety.
[0003] Autonomous vehicle systems can use sensors to capture data about the environment. During operation or otherwise, the sensors can become miscalibrated. Miscalibrated sensors can capture inaccurate data that can lead to reduced safety outcomes. Furthermore, detecting miscalibrated sensors can require extensive root cause analysis as well as consume a significant amount of time, money, and resources. [Brief description of the drawings]
[0004] The detailed description will be set forth 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, and the use of the same reference number in different drawings indicates similar or identical items or features.
[0005] [Figure 1] FIG. 1 is a perspective view of an example vehicle including example sensors for capturing data in an environment and a calibration grid, according to some examples of the present disclosure. [Diagram 2] FIG. 2 shows the captured sensor data represented in a calibration partition. [Figure 3A] FIG. 3A illustrates a side view of an example vehicle having multiple sensors mounted on the vehicle. [Figure 3B] FIG. 3B illustrates a top view of an example vehicle having multiple sensors mounted on the vehicle. [Figure 4]FIG. 4 shows area data collected from individual sensors of a plurality of sensors represented as a table. [Diagram 5] FIG. 5 illustrates a block diagram of an example system for implementing the techniques described herein. [Figure 6] FIG. 6 shows an example process for detecting a miscalibrated sensor. [Figure 7] FIG. 7 illustrates an example process for directing an autonomous vehicle based at least in part on LIDAR data. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0006] The present disclosure describes techniques for detecting miscalibrated sensors for an autonomous vehicle. The autonomous vehicle may include multiple sensors to capture data corresponding to the vehicle's environment. The system may use a LIDAR sensor to capture data in the environment corresponding to, for example, height values of surfaces in the environment. In some examples, a portion of the captured data may be associated with an earth surface based at least in part on image data, segmentation data, classification data, or GPS data, or any combination thereof. A calibration grid may be used to divide the captured data into partitions for calibration.
[0007] The system may select a single partition of the calibration grid and use it as a reference for comparing various sensor data corresponding to the partition. For example, sensor data from multiple sensors may have multiple height values (e.g., values corresponding to dimensions) corresponding to the partition. The system may calculate an average height value associated with the multiple sensors. In some examples, the average height value of the single sensor can be compared to an average height value of a group of sensors to determine whether a sensor of the multiple sensors is miscalibrated.
[0008] The miscalibrated sensor detection techniques discussed herein can improve the functionality of a computing device by reducing the amount of computing resources required to detect a miscalibrated sensor while maintaining accuracy of the detection. In some examples, reducing the amount of data used in a calculation can reduce processing time, reduce memory usage, and maintain accuracy of the miscalibrated sensor detection. As can be appreciated, maintaining accuracy of the miscalibrated sensor detection can improve safety outcomes and reduce the collection of potentially inaccurate sensor data that would otherwise go undetected. Additionally, reducing the amount of data required to detect miscalibration can reduce network congestion by reducing the amount of data transferred between the computing device and the vehicle. These and other improvements to computer functionality are discussed herein.
[0009] The techniques described herein can be implemented in a number of ways. Example implementations are presented below with reference to the accompanying drawings. Although discussed in the context of an autonomous vehicle, the techniques described herein are applicable to a variety of systems that require sensor calibration before and / or during use and are not limited to autonomous vehicles. In another example, the methods, apparatus, and systems may be utilized in an aviation or nautical context. Additionally, the techniques described herein may be used with real data (e.g., captured using sensors), simulated data (e.g., generated by a simulator), or any combination of the two.
[0010] FIG. 1 illustrates an example of an automated vehicle system 100 configured to travel across an area 102 (e.g., a road surface) and, for example, transport people and / or cargo from a first location to a second location. For illustrative purposes, the system 100 may include a vehicle 104. The vehicle 104 may be an autonomous vehicle configured to operate in accordance with a Level 5 classification issued in 2016 by the U.S. National Highway Traffic Safety Administration, which describes a vehicle capable of performing all safety-critical functions throughout the journey without expecting a driver (or passenger) to be in constant vehicle control. In that case, the vehicle 104 may be configured to control all functions from start to finish, including all parking functions, so that it does not require a passenger. This is merely an example, and the techniques described herein may be incorporated into any ground vehicle, including partially autonomous vehicles that can be autonomously controlled without driver attention or assistance within certain driving situations, such as, for example, during operation on limited access highways, but also require driver attention and / or assistance within other driving situations, such as, for example, during operation on urban streets or at least some parking functions. As discussed below, in some cases, if occupants are present, the system 100 may limit acceleration based on a selection of the occupants (e.g., one or more passengers in a vehicle).
[0011] The exemplary vehicle 104 shown in FIG. 1 is an automobile having four wheels 106 and a respective tire 108 for each wheel 106. Other types and configurations of vehicles are contemplated, such as, for example, vans, sport utility vehicles, crossover vehicles, trucks, buses, agricultural vehicles, and construction vehicles. The vehicle 104 may be powered by one or more internal combustion engines, one or more batteries and electric motors, hydrogen fuel cells, or any combination thereof. Additionally, while the exemplary vehicle 104 has four wheels, the systems and methods described herein may be incorporated into vehicles having a fewer or greater number of wheels, tires, and / or tracks. As shown in FIG. 1, the exemplary vehicle 104 has four-wheel steering and may operate with generally equal performance characteristics in all directions, such as when traveling in a first direction 126, a first end 110 of the vehicle 104 is the front end of the vehicle 104, and when traveling in an opposite second direction 128, the first end 110 is the rear end of the vehicle 104. Similarly, when traveling in the second direction 128, the second end 112 of the vehicle 104 is the front end of the vehicle 104, and when traveling in the opposite first direction 126, the second end 112 is the rear end of the vehicle 104. These example features may improve maneuverability in small spaces or crowded environments, such as parking lots and urban areas.
[0012] The example vehicle 104 shown in FIG. 1 includes one or more doors 114 on each side 116 of the vehicle 104 to facilitate ingress and egress of occupants and cargo to and from an interior space 118 of the vehicle 104. The systems and methods described herein may be incorporated into vehicles having a fewer or greater number of doors. The vehicle 104 shown in FIG. 1 includes a windshield 120 and a roof 122 that extend substantially (e.g., nearly completely) between the first end 110 and the second end 112 of the vehicle 104. In some examples, the vehicle 104 may not include a windshield. Because the example vehicle 104 is a level 5 autonomous vehicle, a windshield is not required. However, in some examples, the vehicle 104 may include a windshield 120 regardless of whether the vehicle 104 is configured to be autonomous or manually controlled by a driver. In some examples, at least a portion of the roof 122 may include one or more solar cells configured to provide electrical energy to the vehicle 104 to power one or more motorized systems of the vehicle 104.
[0013] In the example shown in FIG. 1, the system 100 can include multiple sensors 124, which can be RADAR sensors, LIDAR sensors, SONAR sensors, image sensors, microphones, or any combination thereof mounted on the vehicle 104. The vehicle 104 can also include any number and type of sensors and is not limited to the example presented. The sensors 124 can be arranged in a predetermined pattern, for example to provide a desired coverage area of the area 102 proximate to the vehicle 104. In some examples, as shown, the sensors 124 can be arranged in a pattern that enables approximately 360 degree coverage around the vehicle 104. This can allow the vehicle 104 to detect objects regardless of the direction 126, 128 in which the vehicle 104 is traveling. This can also allow the system 100 to detect objects approaching from the side of the vehicle 104 (e.g., a dog or other animal running down the street). Other patterns and arrangements of the sensors 124 are contemplated.
[0014] As shown in FIG. 1 , the sensors 124 may be mounted on a portion of the vehicle 104 that provides a line-of-sight view of a portion of the area 102 around the vehicle 104, with at least a portion of the sensors 124 oriented in the direction of travel. As shown, each example sensor 124 may be mounted on a portion of the roof 122 proximate an upper edge of the windshield 120 or on the roof 122. The sensors 124 may be mounted in a location that generally corresponds to the upper edge of the windshield 120. In examples where the sensors 124 are mounted on the inside of the windshield, any distortion of the data due to the windshield may be corrected, for example, via a lens or an algorithm configured to correct the data. In cases where the vehicle 104 is bidirectional (as in the example vehicle 104), and thus includes two windshields, each sensor 124 may be mounted in a location that generally corresponds to the upper edge of the windshield 120.
[0015] Although the illustrated example sensor 124 is mounted on the roof 122, one or more sensors 124 may be mounted on other portions of the vehicle 104. For example, one or more sensors 124 may be mounted on the first and / or second ends 110, 112 of the vehicle 104, for example, in locations that generally correspond to the locations of bumpers on a conventional automobile. According to some examples, the sensors 124 may be mounted to capture data for areas 102 within the path of each tire 108 or on each side of the vehicle 104.
[0016] According to some examples, one or more of the sensors 124 may be fixedly mounted, for example, such that data captured from the sensor 124 is captured from a constant direction 130 relative to the vehicle 104. In such examples, the data will always be captured from the same angle relative to the vehicle 104 in both the vertical and lateral directions.
[0017] According to some examples, one or more of the sensors 124 may be mounted such that the orientation 130 of the sensor 124 can be changed vertically and / or laterally relative to the vehicle 104. In other examples, one or more of the sensors 124 may be continuously pivoted or swung such that the orientation 130 of the sensor is not fixed and may continuously sweep the area 102 corresponding to the vehicle 104.
[0018] In some examples, the sensor 124 may be configured to pivot to change direction. For example, if the vehicle 104 is traveling at a faster speed or based on certain environmental conditions, the sensor 124 may be pointed farther beyond the front of the vehicle 104, resulting in a relatively longer time for the vehicle 104 to respond to data acquired by the sensor 124. Conversely, if the vehicle 104 is traveling at a relatively slower speed and / or in a densely populated or otherwise congested area, or based on other environmental conditions, the sensor 124 may be pointed closer to the front of the vehicle 104. In some examples, the sensor 124 may be mounted to enable one or more of these changes in direction.
[0019] 1, the system 100 may determine a portion of the region 102 as a ground surface 132 (e.g., a region proximate to the vehicle 104 that is approximately flat and / or in a plane parallel to the vehicle). For example, in some examples, data segmentation techniques may assist in determining the portion of the region 102 associated with the ground surface 132. The system 100 may capture the data, segment the data, and / or associate other sensor data with the segmented data. A classifier may receive the sensor data and classify at least a portion of the data as a ground surface 132.
[0020] In some examples, the system 100 may use GPS data and associate sensor data with the GPS data. Using both the GPS data and the sensor data, the system 100 may determine an area associated with the ground surface 132 of the environment.
[0021] In some examples, the system 100 may assume that portions of the region 102 immediately adjacent to the vehicle are planar and parallel to the vehicle, and use such portions as the ground plane 132 .
[0022] According to some examples, the system 100 may overlay or otherwise associate a calibration grid 136 on a region associated with the ground surface 132. The calibration grid 136 may divide data received from one or more sensors and associated with the ground surface 132 into one or more calibration partitions 138. The calibration partitions 138 may include or be otherwise associated with the region data 134. The region data 134 may comprise a portion of the sensor data associated with the partition. While shown in FIG. 1 as being in front of and behind the vehicle 104 for illustrative purposes, it will be understood that such partitions may extend in all directions proximate to the vehicle 104 and may not necessarily be adjacent.
[0023] 2 illustrates an example graphical representation of a portion of sensor data 200. The area data 134 may include a number of data points associated with a partition associated with a portion of the Earth's surface 132. Each set of data points 202, 204, 206, and 208 (which may be referred to, for example, as a sweep of a sensor that pivots when acquiring data) is associated with a sensor 124, with each data point indicating, for example, a height value. Thus, for purposes of illustration, FIG. 2 illustrates sensor data from four different sensors 124 (e.g., sensor A, sensor B, sensor C, and sensor D). It can be appreciated that the area data 134 may include sensor data associated with any number of sensors and is not limited to the examples discussed herein.
[0024] In some examples, the system 100 may select a partition before checking the area data 134 associated with the partition. For example, the system 100 may check a minimum number of data points associated with the partition. As another example, the system 100 may check a minimum number of sensors 124 associated with the partition (e.g., the number of sensors 124 that have sensor data associated with the partition and / or have a field of view that would otherwise capture the partition). As yet another example, the system 100 may check a minimum number of data points associated with the sensors 124 associated with the partition. In other words, the system 100 may require a minimum number of data points for each set 202, 204, 206, and 208. Thus, the system 100 may select a partition and perform various checks on the area data 134 associated with the partition. In some examples, one or more checks to determine a threshold amount of data may be performed before selecting a partition for the detection operations discussed herein.
[0025] FIG. 3A illustrates a side view 300 of an example vehicle 304 having multiple sensors 124 mounted thereon. As illustrated in the side view 300, the vehicle 304 may include any number of sensors 124 in any combination or configuration. For example, the vehicle 304 includes at least the sensor 124. In some examples, the sensor 124 may comprise a RADAR sensor, a LIDAR sensor, a SONAR sensor, an image sensor, a microphone, or any combination thereof. The vehicle 304 may also include any number and type of sensors and is not limited to the examples presented. Additionally, as illustrated in the side view 300 and as described above, the sensor 124 may be mounted such that the direction 130 is fixed relative to the vehicle 304. According to some examples, the sensor 124 may be mounted such that the direction 130 can change relative to the vehicle 304. In some examples, the sensor 124 may be configured to change the direction 130 depending on, for example, vehicle speed or environmental conditions. In some examples, the sensor 124 may pivot and / or oscillate such that the orientation 130 is not fixed, but rather may continuously sweep the area corresponding to the vehicle 304 .
[0026] 3B illustrates a top view 302 of an example vehicle 304 having multiple sensors 124 mounted on the vehicle. For example, the sensors 124 can be seen in FIG. 3B. The sensors 124 may be co-located or located proximate to one another, for example, but may include different sensor types or modalities having various fields of view. As can be understood in the context of this disclosure, the vehicle 304 may include any number and type of sensors. As can be understood in the context of this disclosure, the mounting locations and fields of view may include any number of configurations.
[0027] 4 illustrates an example data table 400 of sets of data captured by sensors 124 aboard vehicle 104. For example, data columns 402 represent sensor data collected from individual sensors 124 (e.g., sensor A, sensor B, sensor C, and sensor D). Further, for example, data rows 404 represent data points collected by sensors 124 and / or distances (e.g., heights) above an imaginary plane of the Earth's surface (e.g., Earth's surface 132). With reference to FIG. 2, sets 202, 204, 206, and 208 may refer to data points within data rows 404. Thus, for purposes of illustration, each data point 406 may correspond to a single sensor 124, and each data point 406 may also correspond to a height value measured by a sensor 124, as shown in sets 202, 204, 206, and 208 of FIG. 2. Collectively, the sets of data may be referred to as area data 134.
[0028] The area data 134 may then be provided to a computing device 408, for example to process and / or analyze the area data 134 to detect calibration errors associated with one or more sensors.
[0029] 5 shows a block diagram of an example system 500 for implementing the techniques described herein. In at least one example, the system 500 can include a vehicle 502, which can be the same vehicle as the vehicles 104 and 304 described above in connection with FIGS. 1, 3A, and 3B.
[0030] The vehicle 502 may include a vehicle computing device 504 , one or more sensor systems 506 , one or more emitters 508 , one or more communication connections 510 , at least one direct connection 512 , and one or more drive modules 514 .
[0031] The vehicle computing device 504 may include one or more processors 516 and a memory 518 communicatively coupled to the one or more processors 516. In the illustrated example, the vehicle 502 is an autonomous vehicle. However, the vehicle 502 may be any other type of vehicle. In the illustrated example, the memory 518 of the vehicle computing device 504 stores a localization component 520, a perception component 522, a planning component 524, one or more system controllers 526, and a detection component 528. Although shown in FIG. 5 as belonging to the memory 518 for illustrative purposes, the localization component 520, the perception component 522, the planning component 524, the one or more system controllers 526, and the detection component 528 may additionally or instead be accessible to the vehicle 502 (e.g., stored remotely).
[0032] In at least one example, the localization component 520 can include functionality for receiving data from the sensor system 506 to determine a position of the vehicle 502. For example, the localization component 520 can include and / or request / receive a three-dimensional map of the environment and can continually determine the location of the autonomous vehicle within the map. In some examples, the localization component 520 can receive image data, LIDAR data, RADAR data, SONAR data, IMU data, GPS data, wheel encoder data, or any combination thereof, using SLAM (Simultaneous Localization and Mapping) or CLAMS (Simultaneous Calibration, Localization and Mapping), and other data to precisely determine the location of the autonomous vehicle. In some examples, the localization component 520 can provide data to various components of the vehicle 502 to determine an initial position of the autonomous vehicle for generating candidate trajectories, as discussed herein.
[0033] In some examples, the perception component 522 may include functionality to perform object detection, segmentation, and / or classification. In some examples, the perception component 522 may provide processed sensor data indicative of the presence of an entity proximate to the vehicle 502 and / or the classification of the entity as an entity type (e.g., car, pedestrian, bicycle, building, tree, road surface, curb, sidewalk, unknown, etc.). In additional and / or alternative examples, the perception component 522 may provide processed sensor data indicative of one or more characteristics associated with the detected entity and / or the environment in which the entity is located. In some examples, the characteristics associated with the entity may include, but are not limited to, x-position (global position), y-position (global position), z-position (global position), direction, entity type (e.g., classification), speed of the entity, range (size) of the entity, etc. The characteristics associated with the environment may include, but are not limited to, the presence of another entity in the environment, the state of another entity in the environment, time of day, day of the week, season, weather conditions, dark / light indication, etc.
[0034] In general, the planning component 524 can determine a path that the vehicle 502 will follow to traverse an environment. For example, the planning component 524 can determine various routes and trajectories as well as various levels of detail. For example, the planning component 524 can determine a route to travel from a first location (e.g., a current location) to a second location (e.g., a target location). For purposes of this discussion, the route can be a series of waypoints for travel between the two locations. As non-limiting examples, the waypoints include roads, intersections, Global Positioning System (GPS) coordinates, and the like. Additionally, the planning component 524 can generate instructions for guiding the autonomous vehicle along at least a portion of a path from the first location to the second location. In at least one example, the planning component 524 can determine how to guide the autonomous vehicle from a first waypoint in the series of waypoints to a second waypoint in the series of waypoints. In some examples, the instructions can be a trajectory or a portion of a trajectory. In some examples, multiple trajectories can be generated substantially simultaneously (e.g., within technical tolerances) in accordance with a receding horizon technique. A single trajectory with the highest confidence level among multiple trajectories in the receding horizon may be selected to steer the vehicle.
[0035] In at least one example, the vehicle computing device 504 can include one or more system controllers 526 that can be configured to control the steering, propulsion, braking, safety, emitter, communication, and other systems of the vehicle 502. These system controllers 526 can communicate with and / or control corresponding systems of the drive module 514 and / or other components of the vehicle 502, which can be configured to operate according to the trajectory provided by the planning component 524.
[0036] In some examples, the detection component 528 may include functionality to perform detection of miscalibrated sensors. In some examples, the detection component 528 may receive data from the system controller 526 to determine if the vehicle 502 is traveling at a particular speed. In some examples, the detection component 528 may provide an indication to control the vehicle 502 to travel at a maximum or minimum speed. In the illustrated example, the detection component 528 includes a ground component 530, an area component 532, a quorum component 534, an average component 536, a comparison component 538, and an indication component 540.
[0037] In at least one example, the ground component 530 can include functionality for determining an area associated with a ground surface of the environment. For example, the perception component 522 can provide sensor data to the ground component 530 after segmentation and / or classification. In some examples, the ground component 530 can use the data provided by the perception component to isolate data associated with a ground surface of the environment. As noted above, the ground component 530 can also select a ground surface based on the position of the system 500 corresponding to a map of known ground surfaces, for example, by assuming that the area immediately adjacent to the vehicle is a flat ground surface, or the like.
[0038] In some examples, the region component 532 can select a portion of data associated with the ground surface of the environment. For example, the region component 532 can overlay a calibration grid to divide the ground surface. The region component can then select one partition of the calibration grid and associated data for further analysis. In some examples, the data associated with the ground surface can include data collected by the sensors 124, which can include one or more RADAR sensors, LIDAR sensors, SONAR sensors, imaging sensors (e.g., stereo imaging sensors), time-of-flight (ToF) sensors, or any combination thereof, capable of measuring distance to the surface. In some examples, the region component 532 can include functionality for selecting a region based on flatness of the potential region of interest (e.g., in conjunction with the comparison component 538 discussed below). For example, the region component can compare height values captured by a single sensor within the potential region of interest. In some cases, the region component 532 can determine the difference between the highest height value and the lowest height value. In some examples, if the difference meets or exceeds a threshold, the region component 532 can reject the potential region of interest because the region may not be a "flat" region for purposes of miscalibration detection. In some examples, the region component 532 can set the size of the region. In one example, the region may be approximately 50 centimeters by 50 centimeters, although any dimensions can be used.
[0039] The quorum component 534 may, in at least one example, determine that a particular set of data meets a quorum condition. For example, the quorum component 534 may receive data associated with a partition of the calibration grid (e.g., region data) from the region component 532. The quorum component 534 may then determine, for example, a number of sensors associated with the region data. If the number of sensors associated with the region data does not meet or exceed a threshold number of sensors, the quorum component 534 may provide an indication that the sensor quorum is not met. Additionally, the quorum component 534 may analyze a set of data associated with a single sensor in the region data and determine a number of data points in the set of data. The quorum component 534 may then determine that a minimum number of data points is not encompassed in the set of data associated with a single sensor in the region data and provide an indication that a data point quorum for a particular sensor is not met. For example, if the data point quorum is not met due to a sufficient number of sensors, then the quorum component 534 may then indicate that the sensor quorum is also not met.
[0040] As a non-limiting example, the quorum component 534 may set some sensor thresholds to two, three, or any number of sensors. In an example where the threshold is set to three sensors and there are two sets of sensor data, the quorum component 534 may indicate that the sensor quorum is not met. Under such circumstances, it may be determined that no miscalibration is detected. Further, by way of example, the quorum component 534 may set the threshold number of points (e.g., data point quorum) at 12 data points per sensor, but any number of data points may be used. Thus, in a situation where a set of sensor data encompasses 11 data points, the quorum component 534 may indicate that the data point quorum is not met. If the data point quorum is not met, no sensor data will contribute to the sensor quorum. Thus, for illustrative purposes, if three sets of sensor data are available and one of the sets does not meet the data point quorum, then the quorum component 534 requires three sets of sensor data, the sensor quorum may also not be met. However, if four sets of sensor data are available and one of the sets does not meet the data point quorum, then if the quorum component 534 is configured to utilize three sets of sensor data, the sensor quorum may still be met. Under such circumstances, miscalibration detection may be performed on the three sensors that have sufficient data for analysis.
[0041] The average component 536 can include functionality for calculating an average of a set of values. For example, the average component 536 can receive data from the area component 532. By way of example only, the data can represent height measurements (e.g., distance above or below the ground surface as determined based on associated sensor data), and the average component 536 can generate an average height value of the height values. Of course, this example is not meant to be so limiting. As another non-limiting example, an offset value in either the x or y direction can be determined for each sensor data associated with, for example, a wall of a building. Additionally, the average component 536 can provide functionality for calculating a trimmed mean. Upon calculating the trimmed mean, the average component 536 can sort the height values and adjust (e.g., exclude, omit, ignore, etc.) a portion of the lowest value, adjust a portion of the highest value, or adjust a portion of both the lowest and highest values before calculating the trimmed mean. The amount that the average component 536 adjusts can be based on a fixed number, a percentage, a standard deviation, or other calculation deemed sufficient. In some examples, the average component 536 can store the average value. In other examples, the average component 536 can transmit the average value to a different component, such as the area component 532 or the comparison component 538 .
[0042] The comparison component 538 can include functionality to compare values, calculate the difference, and provide an indication of whether the difference meets or exceeds a threshold. For example, the comparison component 538 can receive data from the area component 532. As a non-limiting example, the comparison component 538 can receive a minimum value associated with a sensor and a maximum value associated with the sensor. The comparison component 532 can then provide an indication of whether the difference meets or exceeds a particular maximum value. For illustrative purposes, this indication can mean that the sensor collected data on a non-planar surface.
[0043] As another example, the comparison component 538 can receive one or more values from the average component 536 or the area component 532. After receiving the values, the comparison component 538 can then calculate a difference between the values. Based on the difference, the comparison component 538 can be configured to provide an indication as to whether the difference meets or exceeds a threshold. By way of example only, the comparison component 538 can receive an average (e.g., mean or trimmed mean) value of one set of data captured by a first sensor. The comparison component 538 can then receive an average of two averages (e.g., an average of a second data set captured by a second sensor and an average of a third data set captured by a third sensor). The comparison component 538 can then calculate the difference between the average value associated with the first sensor and the average of the averages (the averages associated with the second sensor and the third sensor). In another example, the comparison component 538 can receive one average value of one data set captured by a first sensor and another average value of a different data set captured by a second sensor. The comparison component can then indicate, for example, that the difference meets or exceeds a threshold. The threshold may be a fixed value, a percentage, based on a standard deviation, or based on any other calculation deemed sufficient. In some examples, when four or more sensors are used, a similar technique may be used in which the average value of the sensor data from one sensor is compared to the average value of the remaining sensors. Such a comparison may be generally referred to as a "one vs. the rest" comparison.
[0044] An example of an operation for detecting miscalibrated sensors is shown below. In this example, the region includes data captured by four sensors: sensor A, sensor B, sensor C, and sensor D. As an initial matter (and as described above), the number of sensors (which may be three sensors in this example) is compared to a threshold number of sensors. Additionally, the number of data points captured by each sensor can be compared to a threshold number of data points per sensor. An average height of the data captured by each individual sensor can then be determined by the average component 536. As discussed herein, in some cases, a trimmed average can be used. Thus, the operation can include generating an average height (e.g., referred to as "avg_A") of the data captured by sensor A. The averages of sensors B, C, and D can be determined as "avg_B," "avg_C," and "avg_D," respectively. Starting with sensor A, the average height of the data captured by sensor A ("avg_A") can be compared to an average height value based on the averages of sensors B, C, and D. The operations may include determining an average of avg_B, avg_C, and avg_D (e.g., referred to as "avg_BCD"), and determining the difference between avg_A and avg_BCD. If the difference meets or exceeds a threshold, an indication may be generated that sensor A may be miscalibrated. These operations may also be performed for sensor B, sensor C, and sensor D to detect whether other sensors are miscalibrated.
[0045] The display component 540 may include functionality to determine whether a sensor or set of sensors may not be used as a reference. An example of an operation for determining whether a sensor or set of sensors may not be used as a reference is shown below. In this example, the system 500 may select sensor A for testing. Using the average component 536, the system may use an average of sensor B and sensor C (e.g., referred to as "avg_B" and "avg_C"). Using the comparison component 538, the system 500 may determine that the difference between avg_B and avg_C meets or exceeds a threshold value and determine that avg_B and avg_C may not serve as a reference for sensor A. Thus, the display component 540 may provide an indication that the test should not be completed.
[0046] In another example, the display component 540 can use the recorded data to determine whether a sensor is miscalibrated. By way of example only, over a period of time, the system 500 can store and track the number of times a sensor was tested, the number of times the sensor was determined to be miscalibrated, and the number of times the sensor was determined to not be miscalibrated. Thus, the system 500 can analyze the recorded data to determine, for example, a quality score. The quality score can indicate a percentage based on the number of indications that the sensor is not miscalibrated and the number of times the sensor was tested. The system 500 can also analyze the recorded data to determine, for example, a test rate or an indication rate. The test rate can indicate a percentage based on the number of times the sensor is tested and the total number of tests performed by the system 500 for a particular sensor. Such a display component 540 can fuse data from randomly selected surfaces as the system 500 completes one or more runs.
[0047] An example of determining a test rate is discussed below. As discussed above, a test rate can be a measurement of the number of tests completed compared to the number of tests initiated corresponding to a particular sensor. In a "one vs. rest" comparison of averages, the operation can include a check to determine whether the "rest" average is a reliable baseline measurement. By way of example and not limitation, the system 500 can receive data captured by three sensors, sensor A, sensor B, and sensor C, but can receive data from any number of sensors. As discussed herein, in testing sensor A, the average of the values of the data captured by sensor A (e.g., the average of "one") can be compared to the average of the values captured by sensors B and C (e.g., the average of "rest"). In some cases, before determining the "rest" average, the individual averages of sensors B and C can be compared to determine whether the data has changed beyond a threshold. That is, if the difference between the average value of sensor B and the average value of sensor C meets or exceeds a threshold, the test may not be performed (e.g., the average values of sensors B and C do not match and therefore cannot provide a reliable "rest" value). Thus, such tests may be counted as failed tests (e.g., not completed). In such a case, the number of tests initiated for sensor A will increment by one, but the number of completed tests will not increment. Thus, over time, the test rate may provide insight into whether sensors that have co-visibility (e.g., at least partially overlapping fields of view) with sensor A may be miscalibrated. In some examples, the test rate may be determined as a percentage, although the test rate may be provided as a proportion or another statistical representation.
[0048] Additionally, system 500 can determine a quality score for the number of tests completed by comparing the number of tests that result in an indication of no miscalibration to the number of tests completed. If the quality score does not meet or exceed a threshold, an indication that sensor A is miscalibrated can be generated. These operations can be performed for sensor B, sensor C, etc. to similarly detect if other sensors are miscalibrated.
[0049] In some examples, the system 500 can provide the functionality to indicate a warning that a sensor may be miscalibrated using a single test. For example, after the display component 540 determines that sensor A is miscalibrated, the system 500 can generate a warning that sensor A is miscalibrated. In other examples, the system 500 can indicate a warning that a sensor may be miscalibrated using a threshold number of tests. Additionally, in other examples, the system 500 can indicate an error that a sensor may be miscalibrated using a threshold number of tests. The system 500 can indicate an error that a sensor may be miscalibrated using, for example, a quality score as described above. The system 500 can also indicate a warning or error that a sensor may be miscalibrated using, for example, a test rate as described above. The system 500 can also indicate a warning and / or error that a sensor may be miscalibrated using a combination of a single test, a threshold number of tests, a quality score, and / or a test rate.
[0050] In some examples, the system 500 may disable a sensor based at least in part on an indication that the sensor is miscalibrated.
[0051] In some examples, the detection component 528 may be stored on a remote computing device (such as computing device 544 ) accessible via the network 542 .
[0052] In at least one example, the sensor system 506 can include LIDAR sensors, RADAR sensors, ultrasonic transducers, SONAR sensors, position sensors (e.g., GPS, compass, etc.), inertial sensors (e.g., inertial measurement units (IMUs), accelerometers, magnetometers, gyroscopes, etc.), cameras (e.g., RGB, IR, intensity, depth, etc.), microphones, wheel encoders, environmental sensors (e.g., temperature sensors, humidity sensors, light sensors, pressure sensors, etc.), and the like. The sensor system 506 can include multiple instances of each of these or other types of sensors. For example, the LIDAR sensors can include individual LIDAR sensors installed at the corners, front, back, sides, and / or top of the vehicle 502. As another example, the camera sensors can include multiple cameras positioned at various locations on the exterior and / or interior of the vehicle 502. The sensor system 506 can provide input to the vehicle computing device 504. Additionally and / or alternatively, the sensor system 506 can transmit sensor data over one or more networks 542 to one or more computing devices 544 at a particular frequency in near real time after a predetermined period of time has elapsed.
[0053] The vehicle 502 may also include one or more emitters 508 for emitting light and / or sound, as described above. The example emitters 508 include interior audio and visual emitters for communicating with passengers of the vehicle 502. By way of example and not limitation, the interior emitters 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 example emitters 508 also include exterior emitters. By way of example and not limitation, the example exterior emitters include lights for signaling direction of travel or other indicators of vehicle operation (e.g., indicator lights, signs, light arrays, etc.), and one or more audio emitters (e.g., speakers, speaker arrays, horns, etc.) for audibly communicating with pedestrians or other nearby vehicles, which may include acoustic beam steering technology.
[0054] The vehicle 502 may also include one or more communication connections 510 that enable communication between the vehicle 502 and one or more other local or remote computing devices. For example, the communication connections 510 may facilitate communication with other local computing devices on the vehicle 502 and / or the drive module 514. The communication connections 510 may also enable the vehicle to communicate with other nearby computing devices (e.g., other nearby vehicles, traffic signals, etc.). The communication connections 510 may also enable the vehicle 502 to communicate with remotely operated computing devices or other remote services.
[0055] The communications connection 510 may include physical and / or logical interfaces for connecting the vehicle computing device 504 to another computing device or network, such as network 542. For example, the communications connection 510 may enable Wi-Fi based communications, such as over frequencies defined by the IEEE 802.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 communications protocol that enables each computing device to interface with other computing devices.
[0056] In at least one example, the vehicle 502 can include one or more drive modules 514. In some examples, the vehicle 502 can have a single drive module 514. In at least one example, when the vehicle 502 has multiple drive modules 514, individual drive modules 514 can be located at both ends of the vehicle 502 (e.g., the front and the rear, etc.). In at least one example, the drive module 514 can include one or more sensor systems for detecting conditions surrounding the drive module 514 and / or the vehicle 502. By way of example and not limitation, the sensor systems can include one or more wheel encoders (e.g., rotary encoders) for sensing the rotation of the wheels of the drive module, inertial sensors (e.g., inertial measurement units, accelerometers, gyroscopes, magnetometers, etc.) for measuring the orientation and acceleration of the drive module, cameras or other imaging sensors, ultrasonic sensors for acoustically detecting objects surrounding the drive module, LIDAR sensors, RADAR sensors, etc. Some sensors, such as wheel encoders, can be intrinsic to the drive module 514. In some cases, the sensor systems on the drive module 514 may overlap or complement corresponding systems on the vehicle 502 (e.g., sensor system 506).
[0057] The drive module 514 can include many 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 by other vehicle systems, a steering system including a steering motor and a steering rack (which can be electric), a braking system including hydraulic or electric actuators, a suspension system including hydraulic and / or pneumatic components, a stability control system for braking force distribution to mitigate loss of traction and maintain control, an HVAC system, lighting (e.g., lighting such as head / tail lights that illuminate the vehicle's exterior environment), and one or more other systems (e.g., cooling systems, safety systems, on-board charging systems, other electrical components such as DC / DC converters, high voltage junctions, high voltage cables, charging systems, charging ports, etc.). Additionally, the drive module 514 can include a drive module controller that can receive and pre-process data from the sensor systems and control the operation of various vehicle systems. In some examples, the drive module controller can include one or more processors and a memory communicatively coupled to the one or more processors. The memory can store one or more modules to perform various functions of the drive module 514. Additionally, the drive modules 514 also include one or more communication connections that enable each drive module to communicate with one or more other local or remote computing devices.
[0058] In at least one example, the localization component 520, the perception component 522, and / or the planning component 524 can process the sensor data as described above and transmit their respective outputs over one or more networks 542 to one or more computing devices 544. In at least one example, the localization component 520, the perception component 522, the planning component 524, and / or the detection component 528 can transmit their respective outputs to the one or more computing devices 544 in near real time and at a particular frequency after a predetermined period of time has elapsed.
[0059] The vehicle 502 can transmit the sensor data over the network 542 to one or more computing devices 544. In some examples, the vehicle 502 can transmit raw sensor data to the computing device 544. In other examples, the vehicle 502 can transmit processed sensor data and / or representations of the sensor data to the computing device 544. In some examples, the vehicle 502 can transmit the sensor data to the computing device 544 in near real time after a predetermined period of time has elapsed, at a particular frequency, or after a predetermined period of time has elapsed. In some cases, the vehicle 502 can transmit the sensor data (raw or processed) to the computing device 544 as one or more log files.
[0060] The computing device 544 can receive the sensor data (raw or processed) and can generate and / or update a map based on the sensor data. Additionally, the computing device 544 can analyze the received sensor data to determine if one or more sensors of the vehicle 502 are miscalibrated. In at least one example, the computing device 544 can include one or more processors 546 and a memory 548 communicatively coupled to the one or more processors 546. In the illustrated example, the memory 548 of the computing device 544 stores a detection component 550 comprising a ground component 552, an area component 554, a quorum component 556, an average component 558, a comparison component 560, and a display component 562.
[0061] In general, the detection component 550 can receive data from one or more vehicles (such as vehicle 502) and can detect miscalibrated sensors. As can be appreciated, the detection component 550 and the components included therein can correspond in functionality to those discussed in connection with the detection component 528.
[0062] The processor 516 of the vehicle 502 and the processor 546 of the computing device 544 may be any suitable processor capable of executing instructions to process data and perform operations as described herein. By way of example and not limitation, the processors 516 and 546 may comprise one or more central processing units (CPUs), graphics processing units (GPUs), or any other device or portion of a device that processes electronic data and converts the electronic data into registers or other electronic data that can be stored in memory. In some examples, integrated circuits (such as ASICs), gate arrays (such as FPGAs), and other hardware devices may also be considered processors so long as they are configured to implement coded instructions.
[0063] Memory 518 and memory 548 are examples of non-transitory computer readable media. Memory 518 and memory 548 can 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 can be implemented using any suitable memory technology, such as static random access memory (SRAM), synchronous dynamic RAM (SDRAM), non-volatile / flash type memory, or other types of memory capable of storing information. The architectures, systems, and individual elements described herein can include many other logical, programmatic, and physical components, the ones shown in the accompanying drawings of which are merely examples relevant to the discussion herein.
[0064] 5 is shown as a distributed system, it should be noted that in alternative examples, components of the vehicle 502 may be associated with the computing device 544 and / or components of the computing device 544 may be associated with the vehicle 502. That is, the vehicle 502 may perform one or more of the functions associated with the computing device 544, and vice versa.
[0065] 6 shows an example process for determining a miscalibrated sensor as discussed herein. For example, some or all of the process 600 can be performed by one or more components of FIG. 5, as described herein. For example, some or all of the process 600 can be performed by the detection components 528, 550.
[0066] In operation 602, the process may include capturing sensor data of the environment. In some cases, the sensor data may be captured by a sensor system 506.
[0067] In operation 604, the process may include determining an area associated with the ground surface of the environment. In some cases, the ground components 530, 552 may determine the area associated with the ground surface. In other examples, the localization component 520 and / or the perception component 522 may provide segmentation and classification data that may determine the area associated with the ground surface. In other examples, the vehicle 502 may receive segmentation and classification data via one or more networks 542 that may determine the area associated with the ground surface. Additionally or alternatively, such areas may be identified, for example, by a location in a map corresponding to the vehicle being shown as a known ground surface, by an approximation that an area proximate to the vehicle (and / or through which the vehicle is traveling) is the ground surface, and so forth.
[0068] In operation 606, the process may include determining a subset of the sensor data associated with the region as region data. In some examples, the region data may represent one or more data points that may be associated with one or more sensors. In some cases, operation 606 may use a calibration grid to divide the region associated with the Earth's surface into multiple partitions for calibration. Operation 606 may then, in some examples, select a single partition and determine region data associated with the partition.
[0069] In operation 608, the process may include performing a check for sufficient data associated with the region data. In some cases, the region data may not have sufficient sensors associated with the region data. In other examples, the region data may not have sufficient data points associated with a particular sensor. In some examples, the region data may not be associated with a plane and therefore may include insufficient data. In some examples where the region data includes insufficient data, the process 600 may return to operation 606 and determine a subset of the sensor data associated with the region as a different region data. In some examples where the region data includes sufficient data, the process 600 may proceed to operation 610. In some cases, operation 608 may discard a portion of the data and / or remove one or more sensors from the test for miscalibration (e.g., if a single sensor does not meet or exceed a threshold number of points).
[0070] In operation 610, the process may include identifying a sensor to be tested. In some examples, the identification of the sensor to be tested includes an identification of a sensor associated with the area data.
[0071] In operation 612, the process may include determining a first average height. In some cases, the first average height may be associated with the identified sensor being tested. In some examples, the first average height may be determined as a trimmed mean, as discussed herein.
[0072] In operation 614, the process may include determining a second average height. In some cases, the second average height may be associated with one or more reference sensors being tested. If the one or more reference sensors include at least two sensors, operation 614 may include determining whether the average height of the sensor data captured by the first reference sensor is within a threshold of the average height of the sensor data captured by the second reference sensor. That is, operation 614 may include an internal check to ensure that the data captured by the reference sensors is adequate to detect miscalibrated sensors.
[0073] In the example of a "one vs. rest" comparison, operation 612 may refer to determining the average of "one," while operation 614 may refer to determining the average of "rest."
[0074] Operations 612 and 614 may occur in parallel or sequentially. Further, operations 612 and 614 may occur in any order, with operation 612 occurring first or operation 614 occurring first.
[0075] In operation 616, the process may include determining a difference between the first average height and the second average height.
[0076] In operation 618, the process may include determining whether the difference meets or exceeds the height threshold. In some cases, the difference meets or exceeds the height threshold and the process proceeds to operation 620. In other examples, the difference may not meet or exceed the height threshold and the process may proceed to operation 622.
[0077] In operation 620, the process may include generating an indication that at least one of the one or more sensors is miscalibrated. As discussed herein, the indication may represent a warning or an error. Further, as discussed herein, the indication may be based on a single test or multiple tests and may be based on stored test result data and an analysis of the stored test result data.
[0078] In operation 622, the process may perform a check to see if all sensors have been tested for a particular set of area data. In some cases, if all sensors have not been tested, the process may return to operation 610. In other examples, if all sensors have been tested, the process may return to operation 606 to select another set of area data. Additionally, in some examples, if all sensors have been tested in operation 622, the process may return to operation 602 to capture or receive more sensor data for the environment.
[0079] 7 illustrates an example process 700 for directing an autonomous vehicle based at least in part on a position based on sensor data (e.g., LIDAR data), as discussed herein. For example, some or all of process 700 may be performed by one or more components of FIG. 5, as described herein. For example, some or all of process 700 may be performed by one or more components of vehicle 502.
[0080] In operation 702, the process can include receiving sensor data captured by the autonomous vehicle. In some examples, the sensor data can be received by the vehicle 502 to determine an area associated with a surface of the environment.
[0081] In operation 704, the process may include generating a trajectory for the autonomous vehicle based at least in part on the sensor data.
[0082] In operation 706, the process may include directing the autonomous vehicle to follow a trajectory. In some cases, operation 706 may include generating a path, a trajectory, and / or control signals for one or more systems of the autonomous vehicle to guide the autonomous vehicle through an environment.
[0083] [Example of invention content] A: A method for detecting miscalibrated sensors includes: capturing sensor data of an environment using a plurality of sensors disposed on an autonomous vehicle, the sensor data including first light detection and ranging (LIDAR) data associated with a first LIDAR sensor, second LIDAR data associated with a second LIDAR sensor, and third LIDAR data associated with a third LIDAR sensor; determining an area associated with a ground surface of the environment; determining a subset of data of the sensor data associated with the area as area data; and determining a region of the environment associated with a ground surface of the environment; ... determining that a sensor is miscalibrated when a first subset of the area data includes a first data associated with the first LIDAR data; determining a first average height of a first subset of the area data, the first subset including first data associated with the first LIDAR data; determining a second average height of a second subset of the area data, the second subset including second data associated with the second LIDAR data and the third LIDAR data; determining a difference between the first average height and the second average height; determining that the difference meets or exceeds a height threshold; and generating an indication that the sensor is miscalibrated.
[0084] B: The method of paragraph A, further comprising: determining that the first LIDAR sensor is miscalibrated based at least in part on the indication; generating a trajectory based at least in part on the second LIDAR data and the third LIDAR data; and controlling the autonomous vehicle based at least in part on the trajectory.
[0085] C: The method of paragraph A or B, further comprising receiving segmentation information associated with the sensor data and determining, based at least in part on the segmentation information, that the region is associated with the ground surface of the environment.
[0086] D: The method of any of paragraphs A to C, further comprising determining that the first subset meets or exceeds a threshold number of data values.
[0087] E: The method of any of paragraphs A to D, further comprising: determining a third average height of a third subset of the area data, the third subset including third data associated with the second LIDAR data; determining a fourth average height of a fourth subset of the area data, the fourth subset including the first LIDAR data and the third LIDAR data; determining a second difference between the third average height and the fourth average height; determining that the second difference meets or exceeds the height threshold; and generating a second indication that the second sensor is miscalibrated.
[0088] F: A system comprising one or more processors and one or more computer readable media having instructions stored thereon executable by the one or more processors, the one or more computer readable media having instructions stored thereon to cause the system to receive environmental sensor data from a plurality of sensors disposed on a vehicle; determine a subset of the data of the sensor data as area data; determine a first average value of a first subset of the area data, the first subset being captured by a first sensor of the plurality of sensors; determine a second average value of a second subset of the area data, the second subset being captured by at least a second sensor and a third sensor of the plurality of sensors; determine a difference between the first average value and the second average value; determine that the difference meets or exceeds a threshold; and generate an indication that the first sensor is miscalibrated. A system comprising:
[0089] G: The system described in paragraph F, wherein the plurality of sensors are a plurality of light detection and ranging (LIDAR) sensors.
[0090] H: The system of paragraph F or paragraph G, wherein the sensor data represents data captured by three or more sensors.
[0091] I: The system of any of paragraphs F to G, wherein the instructions, when executed, further cause the system to determine a third average value of a third subset of the area data, the third subset being captured by the second sensor, determine a fourth average value of a fourth subset of the area data, the fourth subset being captured by the first sensor and the third sensor, determine a second difference between the third average value and the fourth average value, determine that the second difference meets or exceeds the threshold, and generate a second indication that the second sensor is miscalibrated.
[0092] J: The system of any of paragraphs F to I, wherein the instructions further cause the system to determine a highest value for the first subset of the area data, determine a lowest value for the first subset of the area data, determine a value difference between the highest value and the lowest value, determine that the value difference is less than or equal to a threshold, and determine that the area data corresponds to a plane based at least in part on the value difference meeting or exceeding the threshold.
[0093] K: The system described in any of paragraphs F to J, wherein the instructions further cause the system to receive segmentation information associated with the sensor data and determine, based at least in part on the segmentation information, that the area data corresponds to the Earth's surface.
[0094] L: The system of any of paragraphs F to K, wherein the instructions, when executed, further cause the system to determine that the first subset of the domain data meets or exceeds a threshold number of data values.
[0095] M: The system of any of paragraphs F to L, wherein the vehicle is an autonomous vehicle and the instructions, when executed, further cause the system to determine, based at least in part on the indication, that the first sensor is miscalibrated, generate, based at least in part on the second sensor and the third sensor, a signal configured to cause the autonomous vehicle to traverse a trajectory, and transmit the signal to the autonomous vehicle.
[0096] N: The system of any of paragraphs F to M, wherein the instructions, when executed, further cause the system to increment a count of the number of tests attempted, determine a second sensor average of the data associated with the second sensor, determine a third sensor average of the data associated with the third sensor, determine a sensor average difference between the second sensor average and the third sensor average, determine that the sensor average difference does not exceed a threshold, and increment a count of the number of tests successfully performed.
[0097] O: The system of paragraph N, wherein the instructions further cause the system to generate a quality score associated with a sensor of the plurality of sensors, the quality score representing a ratio of the number of tests successfully performed to the number of tests attempted.
[0098] P: A non-transitory computer-readable medium having instructions stored thereon that, when executed, cause one or more processors to perform operations comprising: capturing sensor data of an environment using a plurality of sensors of a vehicle; determining a subset of data of the sensor data as area data; determining a first average value of a first subset of the area data, the first subset being associated with a first sensor of the plurality of sensors; determining a second average value of a second subset of the area data, the second subset being associated with a second sensor of the plurality of sensors; determining a difference between the first average value and the second average value; determining that the difference meets or exceeds a threshold; and generating an indication that a sensor of the plurality of sensors is miscalibrated.
[0099] Q: The non-transitory computer-readable storage medium of paragraph P, wherein the operations further comprise: generating a test rate, the test rate indicative of the number of times the difference is determined; and generating a success rate, the success rate indicative of the number of times the success rate is less than or equal to the threshold value of the difference.
[0100] R: The non-transitory computer-readable storage medium of paragraph P or paragraph Q, the operation further comprising disabling sensors of the plurality of sensors based at least in part on the indication, the disabling comprising indicating a subset of the plurality of sensors as active sensors.
[0101] S: The non-transitory computer-readable storage medium of paragraph R, wherein the operations further comprise: generating a signal configured to cause the autonomous vehicle to traverse a trajectory based at least in part on sensor data captured from one or more active sensors; and transmitting the signal to the autonomous vehicle.
[0102] T: The non-transitory computer-readable storage medium of any of paragraphs P to S, wherein the operations further include determining a highest value for the first subset of the region data, determining a lowest value for the first subset of the region data, determining a value difference between the highest value and the lowest value, determining that the value difference is less than or equal to a threshold, and determining that the region data corresponds to a plane based at least in part on the value difference.
[0103] Although the example sections above are described with respect to one particular implementation, in the context of this document, the contents of the example sections may also be implemented via a method, device, system, and / or computer-readable medium.
[0104] [Conclusion] One or more examples of the technology described herein have been described; however, various modifications, additions, permutations, and equivalents thereof fall within the scope of the technology described herein.
[0105] In the illustrative description, reference is made to the accompanying drawings, which form a part hereof, showing by way of example specific examples of the claimed subject matter. It is to be understood that other examples may be used and modifications or substitutions, such as structural changes, may be made. Such examples, modifications or substitutions do not necessarily depart from the intended scope of the claimed subject matter. Although the steps herein may be presented in a particular order, in some cases the order may be changed so that certain inputs are provided at different times or in a different order without changing the functionality of the described systems and methods. The disclosed procedures may also be performed in different orders. Furthermore, the various calculations herein need not be performed in the order disclosed, and other examples using alternative orders of calculations may be readily implemented. In addition to reordering, calculations may also be decomposed into sub-calculations to achieve the same results. [Explanation of symbols]
[0106] 134 Area Data 200 Sensor Data 202 Sets 204 Sets 206 Sets 208 Sets
Claims
1. A method for detecting a miscalibrated sensor, comprising: receiving environmental sensor data from a plurality of sensors; determining a subset of the sensor data associated with a region of the environment proximate to a vehicle as region data; determining a first average height based at least in part on a first subset of the area data, the first subset being associated with a first sensor of the plurality of sensors; determining a second average height based at least in part on a second subset of the area data, the second subset being associated with a second sensor of the plurality of sensors; and determining a difference between the first average height and the second average height; determining that the difference meets or exceeds a height threshold based at least in part on a number of tests generated for the first sensor or the second sensor; generating an indication that the sensor is miscalibrated based at least in part on the difference meeting or exceeding the height threshold; 23. A method comprising:
2. generating an indication that the first sensor is miscalibrated based at least in part on the difference meeting or exceeding the height threshold; generating a trajectory based at least in part on the representation; and controlling the vehicle based at least in part on the trajectory; 2. The method of claim 1, further comprising:
3. receiving segmentation information associated with the sensor data; determining, based at least in part on the partition information, that the region is associated with a ground surface of the environment; 2. The method of claim 1, further comprising:
4. 2. The method of claim 1, further comprising determining that the first subset of the region data meets or exceeds a threshold number of data values.
5. determining a third average height based at least in part on a third subset of the area data; determining a fourth average height based at least in part on a fourth subset of the area data; determining a second difference between the third average height and the fourth average height; determining that the second difference meets or exceeds the height threshold; generating an indication that the second sensor is miscalibrated; and 2. The method of claim 1, further comprising:
6. A system for detecting a miscalibrated sensor, comprising: one or more processors; One or more non-transitory computer-readable media having instructions executable by the one or more processors, wherein executing the instructions includes: Receives environmental sensor data from multiple sensors installed in the vehicle, determining a subset of the sensor data associated with a region of the environment proximate to the vehicle as region data; determining a first average height of a first subset of the area data, the first subset being associated with a first sensor of the plurality of sensors; determining a second average height of a second subset of the area data, the second subset being associated with at least a second sensor of the plurality of sensors; determining a difference between the first average height and the second average height; determining that the difference meets or exceeds a height threshold based at least in part on a number of tests generated for the first sensor or the second sensor; generating an indication that the sensor is miscalibrated based at least in part on the difference meeting or exceeding the height threshold. one or more computer readable mediums; A system comprising:
7. the sensor data represents data captured by three or more sensors; At least one of the first average height or the second average height comprises an average height dimension value.
7. The system of claim 6.
8. The instructions further include for the system to: determining a third average height based at least in part on a third subset of the area data, the third subset being captured by the second sensor; determining a fourth average height based at least in part on a fourth subset of the area data, the fourth subset being captured by the first sensor and a third sensor; determining a second difference between the third average height and the fourth average height; determining that the second difference meets or exceeds the height threshold; generating an indication that the second sensor is miscalibrated; 7. The system of claim 6.
9. The instructions further include for the system to: determining a maximum height value for the first subset; determining a minimum height value for the first subset; determining a difference between the maximum height value and the minimum height value; determining that the difference in values is less than or equal to a threshold value; determining that the region data is associated with a flat surface based at least in part on the value difference being less than or equal to the value threshold.
7. The system of claim 6.
10. The instructions further include for the system to: receiving segmentation information associated with the sensor data; determining that the region data is associated with an Earth's surface based at least in part on the segmentation information; 7. The system of claim 6.
11. 7. The system of claim 6, wherein the instructions further cause the system to determine that the first subset of the region data meets or exceeds a threshold number of data values.
12. The vehicle is an autonomous vehicle, and the instructions further include: determining that the first sensor is miscalibrated based at least in part on the difference meeting or exceeding the height threshold; generating a signal configured to cause the autonomous vehicle to traverse a trajectory based at least in part on the second sensor and the third sensor; transmitting the signal to the autonomous vehicle; 7. The system of claim 6.
13. The instructions further include for the system to: Incrementing the count of the number of tests attempted, determining a second sensor average of the data associated with the second sensor; determining a third sensor average of the data associated with the third sensor; determining a difference between the second sensor average and the third sensor average; determining that the difference between the sensor means does not exceed a threshold; Increment the count of the number of tests that were successful, 7. The system of claim 6.
14. The instructions further include for the system to: generating a quality score associated with a sensor of the plurality of sensors; the quality score is based on the number of tests successfully performed and the number of tests attempted.
14. The system of claim 13.
15. The system of claim 6 , wherein the instructions further cause the system to determine that the area data is associated with a planar surface.
16. One or more non-transitory computer-readable media for detecting a miscalibrated sensor, comprising: When executed, it causes one or more processors to Acquiring environmental sensor data using multiple sensors on the vehicle; determining a subset of the sensor data associated with a region of the environment proximate to the vehicle as region data; determining a first average height of a first subset of the area data, the first subset being associated with a first sensor of the plurality of sensors; determining a second average height of a second subset of the area data, the second subset being associated with a second sensor of the plurality of sensors; and determining a difference between the first average height and the second average height; determining that the difference meets or exceeds a height threshold value based at least in part on a number of tests generated for the first sensor or the second sensor; generating an indication that the sensor is miscalibrated based at least in part on the difference meeting or exceeding the height threshold; One or more non-transitory computer-readable media having instructions stored thereon to cause a system to perform operations including:
17. The operation includes: generating a test rate, the test rate indicating a number of times the difference is determined; generating a success rate, the success rate indicative of a number of times the difference is less than or equal to the threshold value; 20. The one or more non-transitory computer-readable media of claim 16, further comprising:
18. The operation includes: Disabling the first sensor of the plurality of sensors based at least in part on an indication that the first sensor is miscalibrated; Further comprising: Disabling the first sensor includes indicating a subset of the plurality of sensors as active sensors.
17. One or more non-transitory computer-readable storage media as recited in claim 16.
19. the vehicle is an autonomous vehicle, and the action comprises: generating a signal configured to cause the autonomous vehicle to traverse a trajectory based at least in part on sensor data captured from one or more sensors; transmitting the signal to the autonomous vehicle; 20. The one or more non-transitory computer-readable media of claim 18, further comprising:
20. The operation is determining a maximum height value for the first subset; determining a minimum height value for the first subset; determining a difference between the maximum height value and the minimum height value; determining that the difference in values is less than or equal to a threshold value; determining, based at least in part on the value difference, that the region data is associated with a flat surface; and 20. The one or more non-transitory computer-readable media of claim 16, further comprising:
Citation Information
Patent Citations
Intelligent automobile sensor self-detection system and method, an assistant system and intelligent automobile
CN106740872A
Working machine for mine
JP2016223963A
Novel sensor alignment process and tools for active safety vehicle applications
US20120290169A1
Apparatus and method for failure diagnosis and calibration of sensors for advanced driver assistance systems
US20170169627A1