Grid Occupancy Mapping Using Error Range Distribution

By calibrating LIDAR data using error range distribution and interpolation technology, the problem of inaccurate environmental mapping caused by hardware measurement errors is solved, and the navigation accuracy of robots and autonomous vehicles is improved.

CN111066064BActive Publication Date: 2025-07-04INTEL CORP
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN201780094561.4
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2017-10-03
Publication Date
2025-07-04
Estimated Expiration
2037-10-03

AI Technical Summary

Technical Problem

During the drawing construction process, existing LIDAR technology causes inaccurate laser point data due to hardware measurement errors, which affects the accuracy of environmental drawing construction.

Method used

The laser point data is calibrated and the environmental map is updated by calculating the probability of occupancy of grid cells using error range distribution and interpolation techniques, including bilinear and bicubital interpolation.

Benefits of technology

It improves the accuracy and accuracy of environmental mapping, can better determine the location of obstacles in the physical environment, and supports the navigation of robots and autonomous vehicles.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN111066064B_ABST
    Figure CN111066064B_ABST
Patent Text Reader

Abstract

Techniques for mapping a physical environment are described. Example methods can include receiving laser point data for lasers that are reflected from a physical environment and detected by a laser sensor. Points included in the laser point data can be associated with grid cells in an environmental map representing the physical environment. An error range for a point associated with a grid cell can be determined based in part on an error distribution. Subsequently, an occupancy probability can be calculated for a grid cell in the environmental map using an interpolation technique and grid cell occupancy probabilities of neighboring error grid cells selected based in part on the error range of the point, and the environmental map can be updated with the occupancy probability.
Need to check novelty before this filing date? Find Prior Art

Description

Background Art

[0001] LIDAR (e.g., Light Detection and Ranging or Light Imaging, Detection, and Ranging) is a technology for measuring the distance to a target by illuminating the target with a laser and measuring the reflected laser detected by a laser sensor. The difference in the laser return time and the wavelength detected by the laser sensor can be used to create a digital representation of the target. LIDAR technology can be used in robots to obtain a perception of the physical environment. For example, LIDAR output can be used to determine where potential obstacles exist in the physical environment and where the robot is located relative to the potential obstacles. LIDAR technology can be used by autonomous vehicles for obstacle detection and avoidance to navigate through the physical environment.

[0002] Simultaneous Localization and Mapping (SLAM) is a computational problem of constructing or updating a map of an unknown environment while keeping track of the position of an agent within the environment. LIDAR SLAM technology can be used to construct a map of the environment using laser point data obtained from a LIDAR device. An example of SLAM technology includes scan-to-map matching, which gradually constructs a map of the environment by matching scan data to previous scan data. In scan-to-map matching, a 2D (two-dimensional) grid map is used to represent a 2D environment. If a part of an object is detected within a grid cell, that grid cell can be considered occupied. The probability of a grid cell being occupied (occupancy probability) is inferred during mapping. Brief Description of the Drawings

[0003] From the detailed description after the drawings, in conjunction with the drawings, the features and advantages of the technical embodiments will be apparent. The detailed description and the drawings Figure 1 illustrate the features of the embodiments by way of example; and wherein:

[0004] Figure 1 is a block diagram illustrating a high-level example of a LIDAR device for mapping a physical environment using laser point data and an error range distribution.

[0005] Figure 2 is a flowchart illustrating an example method for calculating the occupancy probability of a grid cell in an environmental map.

[0006] Figure 3 is a block diagram illustrating the calculation of the occupancy probability of a grid cell using bilinear interpolation.

[0007] Figure 4 is a block diagram illustrating the calculation of the occupancy probability of a grid cell using bicubic interpolation.

[0008] Figure 5FIG. is a block diagram illustrating components of an example computing device on which the present technology may be implemented.

[0009] Figure 6 FIG. is a flow diagram illustrating an example method for mapping a physical environment.

[0010] Figure 7 FIG. is a block diagram illustrating an example of a computing device that may be used to perform a method for mapping a physical environment. DETAILED DESCRIPTION

[0011] Before describing embodiments of the invention, it should be understood that the present disclosure is not limited to the specific structures, process steps, or materials disclosed herein, but extends to their equivalents as would be appreciated by one of ordinary skill in the relevant art. It should also be understood that the drawings used herein are for the purpose of describing specific examples or embodiments only and are not intended to be limiting. Like reference numerals in different drawings represent the same elements. The numbers provided in the flowcharts and processes are provided only for clarity in illustrating the steps and operations and do not necessarily indicate a particular order or sequence.

[0012] Furthermore, the described features, structures, or characteristics may be combined in any suitable manner in one or more embodiments. In the following description, numerous specific details are provided, such as examples of layouts, distances, network examples, etc., to provide a thorough understanding of the various embodiments of the invention. However, those skilled in the relevant art will appreciate that such detailed embodiments do not limit the overall concepts explicitly set forth herein, but are merely representatives of the overall concepts explicitly set forth herein.

[0013] As used in this specification, unless the context clearly dictates otherwise, the singular forms "a / an" and "the" include expressions that support plural referents. Thus, for example, a reference to "a network" includes a plurality of such networks.

[0014] References to "example" throughout this specification mean that a particular feature, structure, or characteristic described in connection with the example is included in at least one technical embodiment. Thus, the appearances of the phrases "example" or "embodiment" throughout this specification do not necessarily all refer to the same embodiment.

[0015] As used herein, for convenience, a plurality of items, structural elements, compositional elements, and / or materials may be presented in a common list. However, such lists should be treated as if each member of the list was individually identified as a separate and unique member. Thus, in the absence of contrary indications, no single member of such a list should be construed as a factual equivalent of any other member of the same list solely based on its presentation in the common group. Additionally, various technical embodiments and examples may be referenced herein along with alternatives for their various components. It should be understood that such embodiments, examples, and alternatives should not be construed as factual equivalents of one another, but rather should be construed as separate and autonomous representations under the present invention.

[0016] Furthermore, the described features, structures, or characteristics may be combined in any suitable manner in one or more embodiments. In the following description, numerous specific details are provided, such as examples of layouts, distances, network examples, etc., to provide a thorough understanding of the technical embodiments. However, those of ordinary skill in the relevant art will appreciate that the technology may be practiced without one or more of these specific details, or that other methods, components, layouts, etc. may be utilized to practice the technology. In other instances, well-known structures, materials, or operations have not been shown or described in detail to avoid obscuring aspects of the present disclosure.

[0017] In this application, terms such as "comprising," "including," "containing," and "having" may have the meanings given to them in United States patent law and may mean "includes," "including," etc., and are generally interpreted as open-ended terms. The term "consisting of" is a closed term and includes only the components, structures, steps, etc. specifically listed in conjunction with these terms, and those in accordance with United States patent law. The term "consisting essentially of" has the meanings generally given to it in United States patent law. In particular, such terms are generally closed terms, except for allowing the inclusion of additional items, materials, components, steps, or elements that, when used in conjunction therewith, do not materially affect the basic and novel characteristics or functions of the item(s). For example, if present under the language "consisting essentially of," trace elements that are present in a composition but do not affect the properties and characteristics of the composition are permitted even if not explicitly enumerated in the list of items following such terms. When open-ended terms such as "comprising" or "including" are used in this written description, it should be understood that direct support for the language "consisting essentially of" as well as the language "consisting of" should also be provided as if explicitly stated, and vice versa.

[0018] The terms "first", "second", "third", "fourth", etc. (if any) in the specification and claims are used to distinguish between similar elements and are not necessarily used to describe a particular order or temporal sequence. It should be understood that any such terms are interchangeable in appropriate circumstances, such that the embodiments described herein can be operated in an order different from that shown or otherwise described herein. Similarly, if a method is described herein as including a series of steps, the order of these steps presented herein is not necessarily the only order in which such steps can be performed, and certain of the described steps may be omitted and / or certain other steps not described herein may be added to the method.

[0019] As used herein, comparative terms such as "increased", "decreased", "better", "worse", "higher", "lower", "enhanced", etc. refer to the properties of a system, apparatus, device, component, or activity that are measurably different compared to other devices, components, or activities in the surrounding or adjacent area, in a single device, in multiple similar entities, in a group or class, in multiple groups or classes, or compared to the known prior art. For example, a data region having an "increased" risk of contamination can refer to a region of a memory device that is more likely to have a write error than other regions in the same memory device. Many factors can contribute to this increased risk, including location, manufacturing process, the number of programming pulses applied to the region, and so on.

[0020] Numerical quantities and data can be expressed or presented herein in a range format. It should be understood that such range format is used merely for convenience and brevity and should therefore be interpreted flexibly to include not only the numerical values explicitly recited as range limitations, but also all individual numerical values or sub-ranges included within that range, as if each numerical value and sub-range were explicitly recited. By way of illustration, a numerical range of "about 1 to about 5" should be interpreted to include not only the explicitly recited values of about 1 to about 5, but also the individual values and sub-ranges within the specified range. Thus, included within this numerical range are the individual values (such as 2, 3, and 4) and sub-ranges (such as from 1 to 3, from 2 to 4, and from 3 to 5, etc.), as well as the individual values of 1, 1.5, 2, 2.3, 3, 3.8, 4, 4.6, 5, and 5.1.

[0021] The same principle applies to ranges that recite only one numerical value as a minimum or maximum. In addition, this interpretation should be applied regardless of the breadth of the range or the nature of the feature being described.

[0022] Example embodiments

[0023] An initial overview of the technical embodiments is provided below, followed by a more detailed description of specific technical embodiments. The initial overview is intended to help the reader understand the technology more quickly and is not intended to identify key or essential technical features, nor to limit the scope of the claimed subject matter.

[0024] Techniques are described for mapping a physical environment using different scan-to-map methods selected based in part on hardware measurement errors. A LIDAR device can be configured to map an unknown environment using laser point data and a predefined error range associated with the hardware measurement error. Different scan-to-map methods can be used to match the laser point data with the environmental map based on the error range of the laser points. In scan-to-map matching, a 2D grid map is used to represent a 2D environment. When a part of an object is determined to be within a grid cell, that grid cell in the grid map is occupied. An occupancy probability is used to infer the probability that each cell in the grid map is occupied. The present technique calculates the occupancy probability of each grid cell by first calculating the occupancy probability of each laser point contained within the grid cell based on the error range associated with each laser point and then summing the occupancy probabilities for the environmental map. The occupancy probability of a grid cell can be used to update the environmental map, which can be used, for example, to determine a robot's pose or navigate through an unknown environment.

[0025] Many mapping methods assume that laser point data (distance and angle) is accurate. However, hardware measurement errors can result in inaccurate laser point data. For example, a laser sensor used in a triangulation-based LIDAR can generate an angle measurement error that causes a distance and angle deviation of an object point. The deviation increases with the distance from the object point. Hardware measurement errors may be more prevalent in some low-cost LIDAR systems, resulting in inaccurate laser point data and inaccurate environmental mapping. The present technique provides a solution to inaccurate environmental mapping associated with hardware measurement errors.

[0026] To further describe the present technique, examples are now provided with reference to the accompanying drawings. Figure 1 FIG. 11 is a diagram illustrating an example of a LIDAR device or apparatus 102 configured to map a physical environment using laser point data and an error range distribution 106. In one example, the LIDAR device or apparatus 102 can be configured to calculate the occupancy probability of a grid cell 108 included in an environmental map 102. The environmental map 110 can include a 2D grid map for representing a 2D physical environment. The grid cell 108 included in the environmental map 110 can be associated with an occupancy probability that represents the probability that the grid cell 108 is (at least partially) occupied by an object. More specifically, the occupancy probability of the grid cell 108 indicates whether the physical space represented by the grid cell 108 can be at least partially occupied by a physical object.

[0027] The error range distribution 106 can be used to calculate the occupancy probability of grid cells 108 included in the environmental map 110. The error range distribution 106 can specify the range of distances from a laser sensor (included in the LIDAR device or apparatus 102) to distance points associated with hardware measurement errors (such as angular measurement errors that cause distance and angle deviations of object points). Since the hardware measurement errors increase with distance, the error range distribution 106 can specify error ranges for different distances associated with the hardware measurement errors. For example, the error range distribution 106 can include a first range (e.g., less than 5 meters), a second range (e.g., between 5 meters and 6 meters), a third range (e.g., between 6 meters and 7 meters), etc. No hardware measurement error occurs within the first range, a specified hardware measurement error (e.g., one percent distance error) may occur within the second range, and another specified hardware measurement error (e.g., two percent distance error) may occur within the third range.

[0028] The LIDAR device or apparatus 102 can be configured to scan a physical environment using lasers and use a laser sensor to detect the lasers reflected from the physical environment. The detected lasers can be converted into laser point data including the distance from the laser sensor to the target (e.g., Cartesian coordinate (x,y) measurements). In the scan-to-map matching, the laser point data generated by the LIDAR device or apparatus 102 can be for a portion of the physical environment identified by the transformation angle 104. For example, the area in the physical environment corresponding to the transformation angle 104 can be scanned by the LIDAR device or apparatus 102, and laser point data for that area can be generated. The laser point data generated by the LIDAR device or apparatus 102 can be used to create a physical map 110 representing the physical environment. More specifically, the environmental map 110 can be created by calculating the occupancy probability of grid cells 108 included in the environmental map 110 using the laser point data and the error range distribution 106. Using the methods described below, the occupancy probability can be used to create and update the environmental map 110.

[0029] Figure 2FIG. is a flow chart of an example method 200 for calculating the occupancy probability of grid cells in an environmental map. As in block 202, the method includes obtaining laser point data and error range distribution data, the laser point data being generated from a LIDAR scan of a physical environment, the error range distribution data specifying error ranges for different distances associated with hardware measurement errors. As in block 204, a transformation angle may be initialized. The transformation angle may correspond to a LIDAR scan of a physical environment, i.e., the area of the physical environment scanned using a laser and a laser sensor included in a LIDAR device or apparatus. The laser point data and the error range distribution data generated by the LIDAR scan may be used to calculate the occupancy probability of grid cells in the environmental map that correspond to the area included within the transformation angle. As explained below, method 200 iteratively calculates the occupancy probability of grid cells included in the area of the transformation angle, updates the transformation angle by reducing the transformation angle by a constant value, and then calculates the occupancy probability of grid cells included in the area of the updated transformation angle.

[0030] The laser point data generated by the LIDAR scan may include data for each laser point detected by the laser sensor. As in block 208, the laser point data may be aligned with points on the environmental map by converting the physical environment coordinates of the laser points to environmental map coordinates to form transformed points. The transformed points may be used to represent the laser points detected by the laser sensor, and the coordinates of the transformed points may be used to align the transformed points with the environmental map.

[0031] As in block 210, the error range distribution data may be used to calculate the error range for each transformed point. As described above, the error range distribution data includes errors associated with hardware measurement errors. The error ranges included in the error range distribution data may represent the distance points from the LIDAR sensor at which measurement errors may occur. As an example, the coordinates of the transformed points may be used to determine the distance of the transformed points from the LIDAR sensor, and the distance of the transformed points may be used to identify the error range corresponding to the distance of the transformed points. The distances of the error ranges may be scaled to the environmental map. Further, the error ranges included in the error range distribution data may be associated with measurement errors (e.g., angular errors and / or distance errors associated with the measurement of the laser points). As an example, the error ranges may be associated with a measurement error percentage. Thus, the error ranges may specify the distance points from the laser sensor and the measurement errors associated with those distance points. Illustratively, the error ranges corresponding to the distances from the laser sensor where measurement regions may not occur may not specify a measurement error or the measurement error may be zero.

[0032] Each transformation point aligned with the environmental map may be contained within a grid cell on the environmental map. A grid cell may contain multiple transformation points. As in block 212, the grid cell containing the transformation point may be identified, and an association may be created between the grid cell and the transformation points contained within that grid cell. For example, the map coordinates of the transformation point may be used to identify the grid on the environmental map that contains the transformation point, and an association may be created between the grid cell and the transformation point.

[0033] As in block 214, an error grid cell may be identified for each transformation point. The error grid cell may be a neighboring grid cell of the grid cell occupied by the transformation point, and the occupancy probability of the error cell may be used in the calculation of the occupancy probability for the grid cell containing the transformation point. The error grid cell may be identified based on the error range of the transformation point contained within the grid cell. For example, an interpolation technique for calculating the occupancy probability of the grid cell containing the transformation point may be selected based on the error range of the transformation point.

[0034] In one example, when the error range of the transformation point is associated with zero measurement error, bilinear interpolation may be used to calculate the occupancy probability of the grid cell. In other words, bilinear interpolation may be used to calculate the occupancy probability for transformation points located in regions of the environmental map where there is no measurement error. As a non-limiting example, distances shorter than 5 meters from the laser sensor may not be associated with measurement error, and thus, transformation points located within these distances may have an error range of zero. However, distances greater than 5 meters from the laser sensor may be associated with measurement error, and thus, transformation points located within these distances may have an error range greater than zero. Bilinear interpolation is a technique for interpolating a function of two variables (e.g., x and y) on a straight 2D grid. Bilinear interpolation may use the nearest neighbor technique to calculate the occupancy probability of the grid cell. For example, as Figure 3 illustrated, using bilinear interpolation, the occupancy probability of the point (x,y) is calculated using the nearest error grid cell (e.g., the nearest two-by-two error grid cell).

[0035] When the error range of a transformation point is associated with a measurement error greater than zero, bicubic interpolation can be used to calculate the occupancy probability of a grid cell. That is, bicubic interpolation can be used for transformation points located in areas of the environmental map where measurement errors can exist. Bicubic interpolation is used to interpolate data points onto a two-dimensional regular grid. The number of neighboring error grid cells selected using bicubic interpolation can be determined using the deviation of the transformation point, where the number of neighboring error cells selected corresponds to the magnitude of the deviation. The distance deviation and the angle deviation can be used to select the number of neighboring error cells. As a non-limiting example, an environmental map scaled to a 5 cm resolution can represent that a distance of 5 cm from a lidar sensor is associated with a measurement error. A transformation point with a calculated error range of 2% at a distance of 5 cm has a 10 cm deviation. As Figure 4 illustrated therein, since the resolution of the environmental map is 5 cm, error grid cells (e.g., 9 error grid cells) within a 10 cm range of the transformation point can be selected.

[0036] After the error grid cells within the error range of the transformation point have been selected, as in block 216, the occupancy probability of the grid cell containing the transformation point can be calculated based on the occupancy probabilities of the neighboring error grid cells. Interpolation techniques can be used to calculate the occupancy probability of the grid cell. For example, as described above, in the case where the transformation point has a zero error range, bilinear interpolation can be used to calculate the occupancy probability of the grid cell containing the transformation point. Illustratively, bilinear interpolation calculates the occupancy probability of the grid cell by calculating a weighted average of the occupancy probability values of the nearest error grid cells to obtain a final interpolated value. The weight of each error grid cell in the error grid cells can be based on the distance of the error grid cell from the transformation point. In the case where the transformation point has an error range greater than zero, bicubic interpolation can be used to calculate the occupancy probability of the grid cell containing the transformation point. Illustratively, bicubic interpolation can be performed using Lagrange polynomials, cubic splines, or cubic convolution methods.

[0037] As described above, the occupancy probability can be calculated for each transformation point contained in a grid cell. For example, a grid cell can contain multiple transformation points. The occupancy probability can be calculated for each of the transformation points contained in the grid cell. After calculating the occupancy probability for each transformation point contained in the grid cell, as in block 218, the transformation occupancy probability sum (TOPS) can be calculated for the environmental map by summing the occupancy probabilities calculated for each transformation point contained in the grid cell. As a simplified illustration, method 200 can rotate the transformation points in the grid cell five times using five transformation angles. With each rotation, the occupancy probabilities of the grid cell are summed to form the TOPS for the environmental map.

[0038] TOPS can be calculated for an environmental map corresponding to a transformation angle. After calculating TOPS for the environmental map using the transformation angle, the TOPS for the environmental map can be stored in a memory, and as in block 220, the transformation angle can be decreased by a constant value, and another iteration of calculating TOPS for the environmental map using the transformation angle can be performed until a determination is made that the transformation angle is greater than a threshold, as in block 206.

[0039] After iterating through the transformation angle to calculate TOPS for the environmental map, as in block 222, the maximum TOPS value for the environmental map can be selected. In one example, as described above, for each iteration of the transformation angle, the TOPS values calculated for the environmental map can be retained in the memory, and these TOPS values can be compared to determine the maximum TOPS value for the environmental map. In another example, after each iteration of the transformation angle, the current TOPS value calculated for the environmental map can be compared to the previous TOPS value for the environmental map stored in the memory, and the maximum TOPS value between the current TOPS value and the previous TOPS value can be retained in the memory.

[0040] As in block 224, the environmental map can be updated by setting the occupancy probability of the grid cells in the environmental map to the maximum TOPS value selected above. As a result, the environmental map is updated to represent the physical environment detected using LIDAR scans. As in block 226, the occupancy probability in the updated environmental map can be used to calculate the robot pose, navigate through the physical environment, and so on.

[0041] Figure 5 The figure shows components of an example computing device or apparatus 502 on which the present technique for mapping a physical environment using laser point data and error range distribution can be performed. The computing device or apparatus 502 can include a LIDAR device, or the computing device or apparatus 502 can include a device communicatively coupled to a LIDAR component, such as a laser device 516 and a laser sensor 518. The computing device or apparatus 502 can include modules configured to map a physical environment and calculate a pose and / or navigate through the physical environment. Illustratively, the computing device or apparatus 502 can be a component of a robot or an autonomous vehicle, and the computing device or apparatus 502 can be configured to perform a simultaneous localization and mapping (SLAM) method.

[0042] As shown, computing device or apparatus 502 may include a mapping module 508, an error range module 504, an occupancy probability module 506, a pose / navigation module 510, and other modules. The mapping module 508 may be configured to generate an environmental map representing a physical environment using laser point data generated by a LIDAR device. The mapping module 508 may receive laser point data for lasers detected by laser sensor 518. Laser sensor 518 detects lasers reflected from a physical environment illuminated by a laser from laser device 516. The laser point data may include the angles and distances of laser points associated with a laser scan of the physical environment. The laser point data may be aligned with the environmental map. In one example, the mapping module 508 may be configured to transform the laser point data into transformed points on the environmental map using the angles and distances of the laser points.

[0043] The environmental map may be divided into several different locations using grid cells. Each grid cell may be used to identify a location in the environmental map. The transformed points aligned with the environmental map may be included within a grid cell. Grid cells containing one or more transformed points may be identified, and the occupancy probability module 506 may be used to calculate the occupancy probability of the grid cells. The occupancy probability may indicate the likelihood that the area represented by the grid cell contains a physical object.

[0044] In one example, the mapping module 508 sends a request for the occupancy probability of grid cells included in the environmental map to the occupancy probability module. The occupancy probability module 506 may be configured to calculate the occupancy probability of grid cells in the environmental map using the error ranges of the transformed points contained within the grid cells. The occupancy probability module 506 may obtain the error ranges of the transformed points from the error range module 504. In one example, the error range module 504 may be configured to calculate the error ranges of the transformed points using an error range distribution. The error range distribution may specify a range of distances from the laser sensor 518 to distance points associated with hardware measurement errors, such as angular measurement errors that cause distance and angular deviations of laser points. The error range distribution may specify error ranges for different distances that have been determined to cause hardware measurement errors.

[0045] The computing device or apparatus 502 can be calibrated using an error range distribution corresponding to the LIDAR components used to collect laser point data. For example, a LIDAR device including low-cost / low-quality components may be more susceptible to hardware errors compared to a LIDAR device including higher-quality components. Due to differences between LIDAR components, an error range distribution can be determined for a particular configuration of LIDAR components, and the computing device or apparatus 502 can be calibrated to use this error range distribution to generate an environmental map. For example, the error range module 504 can be configured with an error range distribution corresponding to the laser device 516 and / or the laser sensor 518 included in the computing device or apparatus 502.

[0046] The error range module 504 can use the error range distribution to calculate the error range for each transformed point on the environmental map. In one example, the coordinates of the transformed point can be used to calculate the error range of the transformed point to determine the distance of the transformed point from the laser sensor, and the distance of the transformed point can be used to identify the error range corresponding to the distance of the transformed point. As described earlier, the distance of the error range can be scaled to the physical map, and the error range can be associated with measurement errors (e.g., angular errors and / or distance errors associated with measuring the laser points), such that the error range specifies a distance point from the laser sensor and specifies the measurement error associated with that distance point. The error range calculated for the transformed point using the error range module 504 can be returned to the occupancy probability module 506.

[0047] The error range of the transformed point returned to the occupancy probability module 506 can be used to select an interpolation technique and neighboring error grid cells for calculating the occupancy probability of grid cells in the environmental map. In one example, the value of the error range of the transformed point can be used to select the interpolation technique and neighboring error grid cells. For example, bilinear interpolation can be used for error ranges with zero measurement error, and bicubic interpolation can be used for error ranges with measurement error greater than zero. In the case of selecting bilinear interpolation, the nearest neighbor technique can be used to select the error grid cells. In the case of selecting bicubic interpolation, the deviation of the transformed point can be used to determine the number of neighboring error grid cells, where the number of selected neighboring error cells corresponds to the magnitude of the deviation.

[0048] As with Figure 2Associated with this description, the occupancy probability module 506 uses the selected interpolation technique to calculate the occupancy probability of grid cells in the environmental map. For example, the occupancy probability can be calculated for each transformation point included in the grid cell, and the occupancy probabilities can be accumulated to form the transformed occupancy probability sum (TOPS) for the environmental map. This can be performed for each iteration of reducing the transformation angle. After iterating through the transformation angle to calculate the TOPS for the environmental map, the occupancy probability module 506 can be configured to select the maximum TOPS value for each grid cell included in the environmental map. Subsequently, the occupancy probability of the grid cell can be returned to the mapping module 508, and the mapping module 508 can be configured to update the grid cell in the environmental map using the occupancy probability.

[0049] In one example, the pose / navigation module 510 can be configured to use the occupancy probability of grid cells in the environmental map to calculate the robot pose or calculate a route through the physical environment. In computer vision and robotics, LIDAR technology can be used to identify objects in the physical environment and determine the position and orientation of the objects relative to the robot, autonomous vehicle, etc. The information included in the environmental map can be used, for example, to use the robot to manipulate an object or prevent an autonomous vehicle from moving into an object. The pose / navigation module 510 can use the information included in the environmental map (including the occupancy probability of grid cells) to calculate the robot pose and / or navigate around an object.

[0050] Figure 6 is a flowchart illustrating an example method 600 for mapping a physical environment. At block 610, laser point data for the laser reflected from the physical environment can be received. A laser sensor can be used to detect the laser, and the laser sensor is configured to detect the laser reflected from the physical environment illuminated by the laser. For example, a LIDAR device can be used to scan the physical environment using a laser and a laser sensor, and the laser point data generated by scanning the physical environment can be used to generate and / or update an environmental map representing the physical environment.

[0051] At block 620, points included in the laser point data can be associated with grid cells in an environmental map representing a physical environment. For example, the laser point data can include point coordinates associated with grid cells in the environmental map, and the point coordinates can be transformed into transformed points located on the environmental map. In one example, a transform angle can be used to perform scan-to-map matching. Laser point data associated with regions within the boundaries of the transform angle can be aligned with the environmental map, and occupancy probabilities can be calculated for grid cells containing the points represented in the laser point data. As described earlier, the transform angle can be iteratively decreased by a constant value, and the occupancy probabilities for grid cells contained within the boundaries of the transform angle can be calculated within each iteration until a determination is made that the transform angle is less than a predefined threshold, whereupon the highest occupancy probability sum is selected for each grid cell in the environmental map.

[0052] As in block 630, an error range for points included in the laser point data can be determined partially based on an error distribution. For example, the error range can be calculated partially based on angular errors and distance errors associated with points aligned with the environmental map, and the error range can be associated with an error distribution that can specify measurement errors associated with the error range. As in block 640, interpolation techniques and the occupancy probabilities of neighboring error grid cells selected partially based on the error range of points can be used to calculate the occupancy probability of grid cells in the environmental map. In one example, the error range can include a first error range and a second error range, where the first error range includes the distance from the laser sensor to a specified point marking the start of the second error range. The first error range can be associated with bilinear interpolation, which can be used to calculate the occupancy probability of grid cells containing points located within the first error range. The second error range can be associated with bicubic interpolation, which can be used to calculate the occupancy probability of grid cells containing points located within the second error range.

[0053] In one example, interpolation techniques and neighboring error grid cells selected partially based on the error range of points contained within a grid cell can be used to calculate the occupancy probability of the grid cell for each point contained within the grid cell. The occupancy probabilities calculated for each point contained within the grid cell can be summed to form an accumulated occupancy probability for the grid cell. Thereafter, a determination can be made that the accumulated occupancy probability is greater than the current accumulated occupancy probability for the environmental map, and the current occupancy probability of the grid cell can be replaced with that occupancy probability.

[0054] After computing the occupancy probability of a grid cell in an environmental map, as in block 650, the occupancy probability can be used to update the grid cell. Illustratively, a pose can be computed based on the occupancy probability of grid cells in the environmental map, and the pose can be used to localize and orient an autonomous machine such as a robot or a car.

[0055] Figure 7 FIG. shows a computing device or apparatus 710 on which modules of the present technology may be executed. FIG. shows a computing device or apparatus 710 on which advanced examples of the present technology may be executed. The computing device or apparatus 710 may include one or more processors 712 in communication with a memory device 720. The computing device or apparatus 710 may include a local communication interface 718 for components in the computing device or apparatus. For example, the local communication interface 718 may be a local data bus and / or any associated address or control bus as may be desired.

[0056] The memory device 720 may contain modules 724 executable by the processor(s) 712 and data for the modules 724. For example, the memory device 720 may include a mapping module, an error range module, an occupancy probability module, a pose / navigation module, and other modules. The modules 724 may perform the functions described earlier. A data store 722 may also be located in the memory device 720 for storing data related to the modules 724 and other applications and an operating system executable by the processor(s) 712.

[0057] Other applications may also be stored in the memory device 720 and may be executed by the processor(s) 712. The components or modules discussed in this specification may be implemented in software form using a high-level programming language, and the high-level programming language may be compiled, interpreted, or executed using a hybrid of the methods.

[0058] The computing device or apparatus 710 may also access I / O (input / output) devices 714 usable by the computing device 710. Other known I / O devices may be used with the computing device 710 as needed. A networking device 716 and similar communication devices may be included in the computing device. The networking device 716 may be a wired or wireless networking device connected to the Internet, a LAN, a WAN, or other computing networks.

[0059] Components or modules shown as stored in the memory device 720 may be executed by the processor(s) 712. The term "executable" may mean a program file in a form executable by the processor 712. For example, a program in a higher-level language may be compiled into machine code in a format that can be loaded into the random access portion of the memory device 720 and executed by the processor 712, or the source code may be loaded by another executable program and interpreted to generate instructions to be executed by the processor in the random access portion of the memory. The executable program may be stored in any part or component of the memory device 720. For example, the memory device 720 may be a random access memory (RAM), read-only memory (ROM), flash memory, solid state drive, memory card, hard disk drive, optical disc, floppy disk, magnetic tape, or any other memory component.

[0060] The processor 712 may represent multiple processors, and the memory 720 may represent multiple memory units operating in parallel with the processing circuitry. This may provide parallel processing channels for processes and data in the system. The local interface 718 may be used as a network for facilitating communication between any of the multiple processors and any of the multiple memories. The local interface 718 may use systems designed to coordinate systems such as load balancing, bulk data transfer, and similar systems.

[0061] Although the flowcharts presented for the present technology may imply a particular order of execution, the order of execution may be different from the order shown. For example, the order of two or more boxes may be rearranged relative to the order shown. In addition, two or more boxes shown consecutively may be executed in parallel or partially in parallel. In some configurations, one or more boxes shown in the flowchart may be omitted or skipped. For purposes of increased utility, accounting, performance, measurement, troubleshooting, or for similar reasons, any number of counters, status variables, warning signals, or messages may be added to the logical flow.

[0062] Some of the many functional units described in this specification have been labeled as modules to more specifically emphasize their implementation independence. For example, a module may be implemented as a hardware circuit, the hardware circuit including custom VLSI circuits or gate arrays, off-the-shelf semiconductors such as logic chips, transistors, etc., or other discrete components. A module may also be implemented in a programmable hardware device such as a field programmable gate array, programmable array logic, programmable logic device, and the like.

[0063] The module can also be implemented in software for execution by various processors. An identified module with executable code can, for example, include one or more blocks of computer instructions, which can be organized as objects, procedures, or functions. However, the executable files of the identified module do not need to be physically located together, but may include different instructions stored in different locations, which, when logically linked together, constitute the module and achieve the stated purpose of the module.

[0064] In fact, a module with executable code can be a single instruction, or many instructions, and can even be distributed over several different code segments, between different programs, and across several memory devices. Similarly, the operating data can be identified or depicted within the module and can be embodied in any suitable form and organized within any suitable type of data structure. The operating data can be collected as a single data set, or can be distributed over different locations including on different storage devices. A module can be passive or active and include agents that can be used to perform desired functions.

[0065] The techniques described herein can also be stored on a computer-readable storage medium, which includes volatile and non-volatile, removable and non-removable media implemented in any technology for storing information such as computer-readable instructions, data structures, program modules, or other data. Computer-readable storage media includes, but is not limited to, non-transitory media such as RAM, ROM, EEPROM, flash memory or other memory technologies; CD-ROM, digital versatile disks (DVD) or other optical storage; magnetic cassettes, tapes, disk storage or other magnetic storage devices; or any other computer storage media that can be used to store the required information and the techniques.

[0066] The devices and systems described herein can also include communication connections or networking devices and networking connections that allow the devices and systems to communicate with other devices and / or systems. A communication connection is an example of a communication medium. A communication medium typically embodies computer-readable instructions, data structures, program modules, and other data in a modulated data signal such as a carrier wave or other transmission mechanism, and includes any information delivery medium. A "modulated data signal" means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wire connection, and wireless media such as acoustic, radio frequency, infrared, and other wireless media. The term computer-readable medium as used herein includes communication media.

[0067] Examples illustrated in the accompanying drawings are referred to and specific language is used herein to describe these examples. However, it will be understood that no intention is thereby made to limit the scope of the present technology. Changes and further modifications of the features illustrated herein, as well as additional applications of the examples shown herein, will be considered to be within the scope of this description.

[0068] In addition, the features, structures, or characteristics described can be combined in any suitable manner in one or more examples. In the foregoing description, numerous specific details such as examples of various configurations are provided to provide a thorough understanding of the examples of the technology described. However, it will be appreciated that the present technology can be practiced without one or more of these specific details, or by using other methods, components, devices, etc. In other instances, well-known structures or operations are not shown or described in detail to avoid obscuring aspects of the invention.

[0069] Examples

[0070] The following examples relate to specific embodiments of the invention and point out specific features, elements, or steps that can be used in implementing these embodiments or otherwise combined in these embodiments.

[0071] In one example, a device for mapping a physical environment is provided. The device includes: a laser configured to illuminate the physical environment with laser light; a laser sensor configured to detect laser light reflected from the physical environment; a memory and one or more processors configured to: receive laser point data from the laser sensor; associate the points included in the laser point data with grid cells included in an environmental map representing the physical environment; determine an error range of the points associated with the grid cells based in part on an error distribution; calculate an occupancy probability of a grid cell in the environmental map using an interpolation technique and the grid cell occupancy probabilities of neighboring error grid cells selected based in part on the error ranges of the points; and update the grid cells in the environmental map using the occupancy probability.

[0072] In one example of the device, the memory and one or more processors are further configured to calculate the error range based in part on an angular error and a distance error associated with the points.

[0073] In one example of the device, the error range includes a first error range and a second error range, where the first error range includes the distance from the laser sensor to a specified point marking the start of the second error range.

[0074] In one example of the device, bilinear interpolation is used to calculate the occupancy probability of a grid cell containing points associated with the first error range.

[0075] In one example of the apparatus, the neighboring error grid cells for calculating the occupancy probability of the grid cells containing points associated with the first error range are identified using the nearest neighbor technique.

[0076] In one example of the apparatus, bicubic interpolation is used to calculate the occupancy probability of the grid cells containing points having an error range within the second error range.

[0077] In one example of the apparatus, the neighboring error grid cells for calculating the occupancy probability of the grid cells containing points associated with the second error range are identified using the deviation of the points, wherein the number of the selected neighboring error grid cells corresponds to the magnitude of the deviation.

[0078] In one example of the apparatus, distance deviation and angular deviation are used to select the number of neighboring error grid cells for calculating the occupancy probability of the grid cells.

[0079] In one example of the apparatus, the memory and one or more processors are further configured to: initialize the transformation angle; and rotate the laser point data by the transformation angle and correlate the points in the laser point data with the environmental map.

[0080] In one example of the apparatus, the memory and one or more processors are further configured to: for each point contained within the grid cell, calculate the occupancy probability of the grid cell using an interpolation technique and neighboring error grid cells selected partly based on the error range of the points contained within the grid cell; sum the occupancy probabilities calculated for each point contained within the environmental map to form an accumulated occupancy probability for the environmental map; determine that the accumulated occupancy probability is greater than the current accumulated occupancy probability for the environmental map; and replace the current occupancy probability of the grid cell with the occupancy probability corresponding to the maximum accumulated occupancy probability for the environmental map.

[0081] In one example of the apparatus, the memory and one or more processors are further configured to decrease the transformation angle by a constant value, wherein after decreasing the transformation angle, an iteration of calculating the occupancy probability of the grid cells located within the region of the environmental map is performed.

[0082] In one example of the apparatus, the apparatus further includes: determining that the transformation angle is greater than a predefined threshold; and providing the occupancy probability of the grid cells in the environmental map.

[0083] In one example of the apparatus, the apparatus further includes: calculating a pose based on the occupancy probability of the grid cells in the environmental map.

[0084] In one example, a computer-implemented method for mapping a physical environment is provided. The method includes: receiving laser point data for a laser from a laser sensor, where the laser sensor is configured to detect laser light reflected from a physical environment illuminated by the laser and generate the laser point data; using one or more processors to determine an error range of points included in the laser point data based at least in part on an error distribution, where the error range is a distance from the laser sensor associated with a measurement error of the point, and the error range is distributed to grid cells in an environmental map; using the one or more processors to calculate a sum of highest occupancy probabilities for the environmental map, where the laser point data is rotated through a transformation angle and the laser point data is correlated with the environmental map representing the physical environment, where the environmental map includes grid cells and the laser point data is correlated with points included within the grid cells, and where for each point included within the grid cells, an occupancy probability of the grid cell is calculated using an interpolation technique and neighboring error grid cells selected at least in part based on the error range of the points included within the grid cells; where the occupancy probabilities calculated for each point included within the grid cells are summed to form an accumulated occupancy probability for the environmental map, where the accumulated occupancy probability for the environmental map is calculated for each rotation of the laser point data, and the accumulated occupancy probability that is greater than other accumulated occupancy probabilities for the environmental map is selected as the sum of highest occupancy probabilities for the environmental map; and using the one or more processors to update grid cells in the environmental map with the occupancy probabilities corresponding to the sum of highest occupancy probabilities.

[0085] In one example, the computer-implemented method further includes initializing a transformation angle for identifying grid cells in the environmental map, where the laser point data includes coordinates associated with the grid cells and the laser point data is aligned with the environmental map.

[0086] In one example, the computer-implemented method further includes: after each iteration of calculating the accumulated occupancy probability for the environmental map, rotating the points through a constant value of the transformation angle.

[0087] In one example, the computer-implemented method further includes: determining that the transformation angle is greater than a predefined threshold and selecting the sum of highest occupancy probabilities for the environmental map.

[0088] In one example, a non-transitory machine-readable storage medium is provided having instructions embodied thereon that, when executed by one or more processors: receive laser point data for a laser reflected from a physical environment and detected by a laser sensor; associate the laser point data with an environmental map representing the physical environment, where the environmental map includes grid cells and the laser point data is associated with grid cells in the environmental map; obtain error range data for a distribution of error ranges associated with measurement errors of points included in the laser point data, where the error range is a distance from the laser sensor associated with the measurement error of a point included in the laser point data; use the error range data to calculate an error range for a point included in the laser point data; use interpolation techniques and grid cell occupancy probabilities of neighboring error grid cells selected partially based on the error range of the point to calculate an occupancy probability of a grid cell in the environmental map; and update the grid cell in the environmental map using the occupancy probability.

[0089] In one example of the non-transitory machine-readable storage medium, the instructions, when executed by a processor, further use bilinear interpolation to calculate an occupancy probability of a grid cell associated with a zero error range.

[0090] In one example of the non-transitory machine-readable storage medium, the instructions, when executed by a processor, further use bicubic interpolation to calculate an occupancy probability of a grid cell associated with an error range greater than zero.

[0091] In one example of the non-transitory machine-readable storage medium, the instructions, when executed by a processor, further select points represented in the laser point data having coordinates corresponding to a region in the environmental map.

[0092] In one example of the non-transitory machine-readable storage medium, after calculating the occupancy probability of a grid cell, a transformation angle is iteratively decreased by a constant value.

[0093] In one example of the non-transitory machine-readable storage medium, for each point contained within a grid cell, an occupancy probability of the grid cell is calculated, and the occupancy probabilities calculated for each point contained within the grid cell are summed to form an accumulated occupancy probability for the environmental map.

[0094] In one example of the non-transitory machine-readable storage medium, the accumulated occupancy probability for the environmental map is calculated for multiple transformation angles, and the accumulated occupancy probability that is greater than other accumulated occupancy probabilities for the environmental map is selected, and the corresponding occupancy probability is selected as the occupancy probability of the grid cell.

[0095] Although the above examples illustrate the principles of the present technology in one or more specific applications, it will be apparent to those of ordinary skill in the art that many modifications in form, use, and detail of the implementation can be made without creative effort and without departing from the principles and scope of the present technology.

Claims

1. An apparatus for mapping a physical environment, the apparatus comprising: A laser configured to illuminate the physical environment with laser light; A laser sensor configured to detect laser light reflected from the physical environment; A memory and one or more processors configured to: Receive laser point data from the laser sensor; Associate points included in the laser point data with grid cells included in an environmental map representing the physical environment; Determine an error range of the points associated with the grid cells, at least in part based on an error distribution; For each point included within a grid cell, calculate an occupancy probability of the grid cell using an interpolation technique and neighboring error grid cells selected at least in part based on the error range of the points included within the grid cell; Sum the occupancy probabilities calculated for each point included within the environmental map; Determine that the cumulative occupancy probability is greater than a current cumulative occupancy probability for the environmental map; And Replace a current occupancy probability of the grid cell with an occupancy probability corresponding to a maximum cumulative occupancy probability for the environmental map.

2. The device according to claim 1, wherein, The memory and one or more processors are further configured to calculate the error range at least in part based on an angular error and a distance error associated with a point.

3. The device according to claim 1, wherein, The error range includes a first error range and a second error range, wherein the first error range includes a distance from the laser sensor to a specified point marking a start of the second error range.

4. The apparatus according to claim 3, wherein Use bilinear interpolation to calculate an occupancy probability of a grid cell containing a point associated with the first error range.

5. The device according to claim 3, wherein The neighboring error grid cells for calculating the occupancy probability of a grid cell containing a point associated with the first error range are identified using a nearest neighbor technique.

6. The device according to claim 3, wherein Use bicubic interpolation to calculate an occupancy probability of a grid cell containing a point having an error range within the second error range.

7. The device according to claim 3, wherein, The neighboring error grid cells for calculating the occupancy probability of a grid cell containing a point associated with the second error range are identified using a deviation of the point, wherein a number of the selected neighboring error grid cells corresponds to a magnitude of the deviation.

8. The device according to claim 7, wherein, Use a distance deviation and an angular deviation to select a number of the neighboring error grid cells for calculating the occupancy probability of the grid cell.

9. The apparatus according to claim 1, wherein The memory and one or more processors are further configured to: Initialize a transformation angle; and Rotate the laser point data by the transformation angle and associate points in the laser point data with the environmental map.

10. The device according to claim 9, wherein, The memory and one or more processors are further configured to decrease the transformation angle by a constant value, wherein after decreasing the transformation angle, perform an iteration of calculating an occupancy probability of grid cells located within a region of the environmental map.

11. The apparatus of claim 9, further comprising: Determine that the transformation angle is greater than a predefined threshold; And Provide the occupancy probability of the grid cells in the environmental map.

12. The device according to claim 1, further comprising: Calculate a pose based on the occupancy probability of the grid cells in the environmental map.

13. A computer-implemented method for mapping a physical environment, comprising: Receiving laser point data for a laser from a laser sensor, wherein the laser sensor is configured to detect laser light reflected from the physical environment illuminated by the laser and generate the laser point data; Using one or more processors to determine an error range of points included in the laser point data based at least in part on an error distribution, wherein the error range is a distance from the laser sensor associated with a measurement error of the points, and the error range is distributed to grid cells in an environmental map representing the physical environment; Using the one or more processors to calculate a sum of highest occupancy probabilities for the environmental map; wherein the laser point data is rotated by a transformation angle and the laser point data is correlated with an environmental map representing the physical environment, wherein the environmental map includes grid cells, and the laser point data is correlated with points included within the grid cells; wherein, for each point included within a grid cell, an occupancy probability of the grid cell is calculated using an interpolation technique and neighboring error grid cells selected based at least in part on the error range of the points included within the grid cell; wherein the occupancy probabilities calculated for each point included within a grid cell are summed to form an accumulated occupancy probability for the environmental map; wherein the accumulated occupancy probability for the environmental map is calculated for each rotation of the laser point data, and the accumulated occupancy probability that is greater than other accumulated occupancy probabilities for the environmental map is selected as the sum of highest occupancy probabilities for the environmental map; and Using the one or more processors to update the grid cells in the environmental map with occupancy probabilities corresponding to the sum of highest occupancy probabilities.

14. The method according to claim 13, further comprising initializing the transformation angle for identifying the grid cell in the environmental map, wherein, The laser point data includes coordinates associated with the grid cells and the laser point data is aligned with the environmental map.

15. The method according to claim 13, further comprising: After each iteration of calculating the accumulated occupancy probability for the environmental map, rotate the points by a constant value of the transformation angle.

16. The method according to claim 15, further comprising: Determine that the transformation angle is greater than a predefined threshold, and select the sum of highest occupancy probabilities for the environmental map.

17. A non-transitory machine-readable storage medium having instructions embodied thereon, which when executed by one or more processors: Receive laser point data for a laser reflected from a physical environment and detected by a laser sensor; Correlate the laser point data with an environmental map representing the physical environment, wherein, The environmental map includes grid cells and the laser point data is correlated with the grid cells in the environmental map; Obtain error range data for a distribution of error ranges associated with measurement errors of points included in the laser point data, wherein the error range is a distance from the laser sensor associated with a measurement error of the points included in the laser point data; Use the error range data to calculate the error ranges of the points included in the laser point data; For each point contained within the grid cell, calculate the occupancy probability of the grid cell using interpolation techniques and neighboring error grid cells selected partly based on the error range of the points contained within the grid cell; Sum the occupancy probabilities calculated for each point contained within the environmental map; Determine that the cumulative occupancy probability is greater than the current cumulative occupancy probability for the environmental map; and Replace the current occupancy probability of the grid cell with the occupancy probability corresponding to the maximum cumulative occupancy probability for the environmental map.

18. The non-transitory machine-readable storage medium according to claim 17, wherein, The instructions further use bilinear interpolation to calculate the occupancy probability of grid cells associated with a zero error range when executed by the processor.

19. The non-transitory machine-readable storage medium according to claim 17, wherein, The instructions further use bicubic interpolation to calculate the occupancy probability of grid cells associated with an error range greater than zero when executed by the processor.

20. The non-transitory machine-readable storage medium according to claim 17, wherein, The instructions further select the points represented in the lidar point data having coordinates corresponding to regions in the environmental map when executed by the processor.

21. The non-transitory machine-readable storage medium according to claim 20, wherein, After calculating the occupancy probability of the grid cell, iteratively decrease the transformation angle by a constant value.

22. The non-transitory machine-readable storage medium according to claim 17, wherein, For each point contained within the grid cell, calculate the occupancy probability of the grid cell and sum the occupancy probabilities calculated for each point contained within the grid cell to form a cumulative occupancy probability for the environmental map.

23. The non-transitory machine-readable storage medium according to claim 22, wherein, The cumulative occupancy probability for the environmental map is calculated for a plurality of transformation angles, and the cumulative occupancy probability greater than other cumulative occupancy probabilities for the environmental map is selected, and the corresponding occupancy probability is selected as the occupancy probability of the grid cell.

Citation Information

Patent Citations

  • Scanning range finder

    CN105849620A

  • System and method for writing occupancy grid map using laser scanner

    CN106289283A