US11493635B2 - Ground intensity LIDAR localizer - Google Patents
Ground intensity LIDAR localizer Download PDFInfo
- Publication number
- US11493635B2 US11493635B2 US16/536,895 US201916536895A US11493635B2 US 11493635 B2 US11493635 B2 US 11493635B2 US 201916536895 A US201916536895 A US 201916536895A US 11493635 B2 US11493635 B2 US 11493635B2
- Authority
- US
- United States
- Prior art keywords
- ground
- intensity
- lidar
- points
- vehicle
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active, expires
Links
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 23
- 238000001914 filtration Methods 0.000 claims abstract description 12
- 230000033001 locomotion Effects 0.000 claims description 48
- 238000012545 processing Methods 0.000 claims description 21
- 238000005457 optimization Methods 0.000 claims description 13
- 238000013519 translation Methods 0.000 claims description 10
- 238000005096 rolling process Methods 0.000 claims description 9
- 230000001131 transforming effect Effects 0.000 claims description 4
- 238000009499 grossing Methods 0.000 claims description 3
- 230000004931 aggregating effect Effects 0.000 claims 1
- 238000000034 method Methods 0.000 abstract description 54
- 230000004807 localization Effects 0.000 abstract description 51
- 230000008569 process Effects 0.000 abstract description 15
- 230000015654 memory Effects 0.000 description 28
- 230000006870 function Effects 0.000 description 24
- 238000003860 storage Methods 0.000 description 24
- 230000008447 perception Effects 0.000 description 21
- 238000001514 detection method Methods 0.000 description 11
- 230000004044 response Effects 0.000 description 10
- 238000013459 approach Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 8
- 238000005259 measurement Methods 0.000 description 8
- 239000008186 active pharmaceutical agent Substances 0.000 description 7
- 238000007726 management method Methods 0.000 description 7
- 239000011159 matrix material Substances 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 238000010276 construction Methods 0.000 description 6
- 238000013507 mapping Methods 0.000 description 6
- 239000000203 mixture Substances 0.000 description 5
- 230000005291 magnetic effect Effects 0.000 description 4
- 230000000717 retained effect Effects 0.000 description 4
- 230000001133 acceleration Effects 0.000 description 3
- 238000007792 addition Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000002310 reflectometry Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 230000009466 transformation Effects 0.000 description 3
- 238000012897 Levenberg–Marquardt algorithm Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000013480 data collection Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 230000004927 fusion Effects 0.000 description 2
- 238000003384 imaging method Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000003750 conditioning effect Effects 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000009792 diffusion process Methods 0.000 description 1
- 230000005670 electromagnetic radiation Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000009472 formulation Methods 0.000 description 1
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000037361 pathway Effects 0.000 description 1
- 230000005855 radiation Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000010561 standard procedure Methods 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000000153 supplemental effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S17/00—Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
- G01S17/88—Lidar systems specially adapted for specific applications
- G01S17/89—Lidar systems specially adapted for specific applications for mapping or imaging
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S17/00—Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
- G01S17/02—Systems using the reflection of electromagnetic waves other than radio waves
- G01S17/06—Systems determining position data of a target
- G01S17/08—Systems determining position data of a target for measuring distance only
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S17/00—Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
- G01S17/88—Lidar systems specially adapted for specific applications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S17/00—Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
- G01S17/88—Lidar systems specially adapted for specific applications
- G01S17/89—Lidar systems specially adapted for specific applications for mapping or imaging
- G01S17/894—3D imaging with simultaneous measurement of time-of-flight at a 2D array of receiver pixels, e.g. time-of-flight cameras or flash lidar
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S17/00—Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
- G01S17/88—Lidar systems specially adapted for specific applications
- G01S17/93—Lidar systems specially adapted for specific applications for anti-collision purposes
- G01S17/931—Lidar systems specially adapted for specific applications for anti-collision purposes of land vehicles
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S7/00—Details of systems according to groups G01S13/00, G01S15/00, G01S17/00
- G01S7/48—Details of systems according to groups G01S13/00, G01S15/00, G01S17/00 of systems according to group G01S17/00
- G01S7/4808—Evaluating distance, position or velocity data
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/0011—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots associated with a remote control arrangement
- G05D1/0033—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots associated with a remote control arrangement by having the operator tracking the vehicle either by direct line of sight or via one or more cameras located remotely from the vehicle
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0212—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0212—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
- G05D1/0219—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory ensuring the processing of the whole working surface
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0231—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
- G06T7/73—Determining position or orientation of objects or cameras using feature-based methods
- G06T7/74—Determining position or orientation of objects or cameras using feature-based methods involving reference images or patches
Definitions
- the disclosure herein is directed to a ground intensity light detection and ranging (LIDAR) localizer that complements a conventional LIDAR localizer, particularly in environments with insufficient geometric constraints such as long stretches of highways, bridges, and tunnels.
- LIDAR ground intensity light detection and ranging
- Autonomous vehicle technology typically relies on the fusion of sensor data to enable a computational control system of the autonomous vehicle to perform perception, prediction, motion planning, and vehicle control operations.
- a key aspect to autonomous vehicle systems is the continuous determination of the autonomous vehicle's state, which can include the vehicle's position, orientation, trajectory, velocity, etc. with respect to the world around it (e.g., in a common and/or local reference frame). These operations are referred to as localization operations, or the determination of the vehicle's pose.
- Various methods of localization require the use of a sensor suite, which can comprise any number and type of sensors, such as radar, LIDAR, cameras, sonar, infrared, satellite positioning systems, and inertial measurement unit sensors. Accurate localization can also be aided by preconstructed localization maps that contain detailed prior data of a geographical region in which the autonomous vehicle operates.
- the localization system provides accurate pose estimates in both continuous and map-relative frames. In order to generate map-relative estimates, the system matches current sensor readings against a prior map. Conventional systems are based on a geometric representation of the world generated from LIDAR measurements. However, in some areas of the operating environment, there is insufficient geometry to produce a reasonable map-relative estimate based on geometry alone. Areas with insufficient geometry are generally referred to as “geometrically degenerate.” In geometrically generate areas, the system generally cannot guarantee good poses because there is not a diversity of geometric features for the algorithms to converge on with a unique solution. For example, the algorithms can come up with multiple answers that they think are all equally valid (similar error). Areas that have been found to be geometrically degenerate include some tunnels, bridges, highways, and some places within urban environments. With conventional geometric localization systems, these areas may be considered “out of scope.”
- LIDAR intensity in localization and mapping is the work described by Levinson et al. in “Towards fully autonomous driving: Systems and algorithms,” In Intelligent Vehicles Symposium ( IV ), June 2011 IEEE (pp. 163-168); Levinson et al in “Robust vehicle localization in urban environments using probabilistic maps,” In Robotics and Automation ( ICRA ), May 2010 IEEE International Conference on (pp. 4372-4378); and Sivaraman et al in “Looking at vehicles on the road: A survey of vision-based vehicle detection, tracking, and behavior analysis,” IEEE Transactions on Intelligent Transportation Systems, 14(4), 1773-1795 (2013).
- the mapping process described in these works requires pre-calibrated and known vehicle poses, but the map is stored as an unorganized structure.
- the online localization approach by Levinson et al performs pose estimation using a histogram filter and is only concerned with 3-degrees-of-freedom localization.
- a related 3-degrees-of-freedom approach is described by Wolcott and Eustice in “Robust LIDAR localization using multiresolution Gaussian mixture maps for autonomous driving,” The International Journal of Robotics Research, 36(3), 292-319 (2017), where the LIDAR intensity map is represented as a grid of Gaussian mixture models (GMM) such that vehicle localization may be determined by maximizing the likelihood of the live scan from the GMM.
- GMM Gaussian mixture models
- Barsan et. al.'s algorithm performs only 3-degrees-of-freedom localization and the online registration procedure is akin to an exhaustive search that maximizes the cross-correlation between the learned appearance-invariant representations from the live LIDAR data and the prior map.
- Online localization with intensity is performed with gradient-based optimization but is limited to 3-degrees-of-freedom estimation. More precisely, the in-plane vehicle translation (x- and y-directions) is performed with a gradient-based optimization approach but attitude determination is performed via an exhaustive search step, which can be quite expensive.
- the height information is not tightly coupled with intensity contributions in the estimation problem. Instead, each degree-of-freedom estimation step is performed independently.
- Wan et al use a histogram filter when making use of the height constraints in every pixel of the map.
- FIG. 1 is a diagram showing one example of an environment including a vehicle having a pose system.
- FIG. 2 is a block diagram showing one example of a vehicle autonomy system for an autonomous or semi-autonomous vehicle such as the vehicle illustrated in FIG. 1 .
- FIG. 3 is a schematic representation of the steps involved in estimating a vehicle's 6-degree-of-freedom orientation and position using ground intensity LIDAR localization in a sample embodiment.
- FIG. 4 illustrates the world discretized into partially overlapping rectangles, or cells, for ground points downselection in a sample embodiment.
- FIG. 5 is a schematic representation of the steps involved in constructing a prior from LIDAR data and the inferred ground using localized LIDAR and intensity points in a sample embodiment.
- FIGS. 6A-6F illustrate examples of the intensity (reflectance) and height priors along with their gradients.
- FIG. 6A illustrates the constructed intensity image
- FIG. 6B illustrates the constructed height image
- FIG. 6C illustrates the intensity gradient along the x-direction.
- FIG. 6D illustrates the height gradient along the x-direction.
- FIG. 6E illustrates the intensity gradient along the y-direction.
- FIG. 6F illustrates the height gradient along the y-direction.
- FIG. 7 illustrates prior matching using template matching techniques in a sample embodiment.
- FIGS. 8A-8D illustrate a comparison between an intensity-based map and full 3D priors.
- FIG. 8A illustrates a single sweep of LIDAR with intensity data, which is relatively sparse.
- FIG. 8B illustrates multiple LIDAR sweeps accumulated over a short period of time and travel distance to provide a more robust intensity reference map.
- FIG. 8C illustrates an example of a prior build from all LIDAR data where the prior is sufficiently dense with good coverage of the target area.
- FIG. 8D illustrates the same area in FIG. 8C but built with intensity data only.
- FIG. 9 illustrates a template matching procedure performed for an initialized X-Y estimate of the pose in a sample embodiment.
- FIG. 10 is a block diagram showing one example of a software architecture for a computing device in a sample embodiment.
- FIG. 11 is a block diagram illustrating a computing device hardware architecture within which a set or sequence of instructions can be executed to cause a machine to perform examples of any one of the methodologies described in sample embodiments.
- an autonomous vehicle is a vehicle that is capable of sensing its environment and operating some or all of the vehicle's controls based on the sensed environment.
- An autonomous vehicle includes sensors that capture signals describing the environment surrounding the vehicle. The autonomous vehicle processes the captured sensor signals to comprehend the environment and automatically operates some or all of the vehicle's controls based on the resulting information.
- an autonomous vehicle (AV) control system controls one or more of the braking, steering, or throttle of the vehicle.
- the AV control system assumes full control of the vehicle.
- the AV control system assumes a portion of the vehicle control, with a human user (e.g., a vehicle operator) still providing some control input.
- an autonomous vehicle can include a perception sensor system generating sensor data used to build a sensor view of the environment.
- the perception sensor system can include any number of cameras (e.g., stereoscopic or monocular cameras), LIDAR sensors, sonar sensors, infrared sensors, radar, inertial measurement units (IMU), encoders (e.g., wheel speed encoders), and/or other types of proximity or imaging sensors.
- the control system can comprise one or more processors executing an instruction set that causes the control system to process a sensor view generated by the perception sensor system to perform object detection operations and autonomously operate the vehicle's acceleration, braking, and steering systems.
- the sensor data generated from the various AV sensors can be logged and uploaded to an AV management system.
- autonomous vehicles can also rely on preconstructed localization maps that contain detailed prior data.
- the localization maps can encompass long stretches of highways, city road segments, and the like.
- the AV management system can use the sensor data that are collected and stored by a fleet of autonomous vehicles and/or human-driven vehicles.
- the map creation process takes sensor logs, or mapping logs, captured in a target geographic region as input.
- these logs should first be imbued with accurate and consistent trajectories so that the map creation process can subsequently produce the geometric models to which lanes, intersections, and other autonomy relevant map entities are registered.
- the map creation process generates new map geometry by identifying the time intervals of sensor logs for a region, registering the associated environment geometry data (e.g., LIDAR points) into a common coordinate frame, and generating a geometric model of the world in that region.
- environment geometry data e.g., LIDAR points
- a new localizer in order to enable localization of the geometrically degenerate areas, as well as to improve robustness in the localization system, a new localizer is provided that will use the intensity signal from LIDAR returns on the ground.
- the LIDAR intensity information from the ground is used to complement the geometric information obtained by conventional LIDAR systems by producing pose estimates based on the reflectivity of materials in the scene.
- both the geometric and the intensity LIDAR localization systems will run simultaneously (asynchronously), although each localization system may be used separately, alone, or together.
- the intensity LIDAR localization system may be preferred in tunnels and other geometrically degenerate landscapes while the conventional LIDAR localization system may be otherwise used.
- a new intensity layer is added to existing maps.
- the pose filter will fuse the map-relative pose estimates generated by both the intensity localizer and the existing geometric localizer, thus extending the areas where the localization system can operate (since the failure modes of the different localizers are not identical).
- the localization stack is updated to allow for multiple localizers and multiple global pose implementations to run asynchronously in parallel and to provide pose estimates to the pose filter.
- a ground intensity LIDAR localizer uses the ground intensity LIDAR returns to estimate pose.
- the ground intensity LIDAR localizer runs in real-time with a comparable accuracy to conventional geometric localizers.
- the map build pipeline may, in turn, be upgraded to handle geometrically degenerate areas by incorporating ground intensity LIDAR into the map alignment tools.
- maps & localization may be generalized to geometrically degenerate highway areas and to geometrically degenerate tunnels and bridges for trucks and cars to provide increased robustness in the localization system.
- the vehicle's localization systems make use of the LIDAR intensity data in at least three ways:
- an online localization system for determining a pose of a vehicle that includes a processor that processes instructions to perform steps including receiving ground intensity LIDAR data including intensity data for points believed to be on the ground and height information (and optionally an initial estimate of the vehicle pose parameters) and forming ground intensity LIDAR (GIL) images including pixels in 2D coordinates where each pixel contains an intensity value, a height value, and x- and y-gradients of intensity and height by filtering aggregated ground intensity LIDAR data falling into a same spatial bin on the ground.
- GIL ground intensity LIDAR
- the aligned GIL images are provided to a pose estimation module as a pose estimate.
- the registration algorithm may include a Gauss-Newton framework or a Levenberg-Marquardt framework that solves a nonlinear optimization problem to generate the 6-degree-of-freedom pose.
- the online localization system receives the ground intensity LIDAR data in the form of a 3D point cloud including intensity values and uncertainty estimates and receives a pose initialization estimate and combines the 3D point cloud and pose initialization estimate.
- the pose initialization estimate is further used to compensate for vehicle motion by transforming each LIDAR point with the pose initialization estimate to bring the LIDAR points into a consistent coordinate system.
- the transformed LIDAR points are stored in a rolling buffer that accumulates LIDAR points over a period of time.
- the LIDAR points are spatially filtered to retain only points within a certain radius from the vehicle using a range estimate of each LIDAR point and are downselected to identify those LIDAR points in the rolling buffer believed to be on the ground surface.
- the downselecting includes discretizing a ground plane into partially overlapping cells having a specified size and, for each cell, determining which LIDAR points are candidates to be classified as ground points in said each cell by choosing points with height estimates closest to an expected ground height within a specified LIDAR range. Then, for every candidate ground point, a plane fitting is performed to determine which LIDAR points belong to the ground plane within a threshold.
- the candidate ground points including corresponding intensity values and height values within the threshold are assigned to a corresponding cell in an XY cell grid position in the ground plane.
- the candidate ground points are retained that fit into the ground plane with a normal pointing predominantly along the z-axis when the candidate ground points satisfy a minimum number of inliers per cell.
- processing the two GIL images to align the two GIL images relative to one another includes registering the assigned ground points with a 2.5D image prior including pixels that encode height from the ground and intensity return using a registration algorithm including at least one of a Gauss-Newton framework and a Levenberg-Marquardt framework to generate the 6-degree-of-freedom pose.
- processing the two GIL images to align the two GIL images relative to one another includes aligning the two GIL images in scale-space. Also, for processing efficiency, points with vanishing reflectance or vanishing height gradients may be removed prior to processing the two GIL images for alignment.
- aligning the two GIL images relative to one another may include performing Inverse Compositional alignment of the two GIL images.
- a system for building priors includes receiving ground intensity LIDAR data including intensity data for points believed to be on the ground and height information and constructing a vehicle prior by discretizing a ground plane into partially overlapping cells having a specified size, determining ground points using LIDAR points having known positions as obtained during a map build, and for each ground point, performing a plane fitting to determine which LIDAR points belong to the ground plane within a threshold.
- the ground intensity LIDAR data is aggregated and filtered to determine a single height and intensity value per cell and a single intensity and height value is assigned to each XY cell grid position in the ground plane using an uncertainty weighted mean.
- a final prior image is then determined that encompasses the pixels in the XY cell grid positions in the ground plane.
- the final prior image may be stored as a 2.5D height-intensity image for deployment to the vehicle.
- constructing the vehicle prior may include spatially filtering the LIDAR points to retain only points within a certain radius from the vehicle using a range estimate of each LIDAR point and downselecting only points in the rolling buffer believed to be on the ground surface.
- determining a single height and intensity value per cell may include calculating a weighted average or median of all intensity and height data falling into each XY cell grid position in the ground plane where weights for each LIDAR point are based on each LIDAR point's range and intensity estimated uncertainties.
- statistical outlier LIDAR points may be removed on a per pixel basis and any holes in the LIDAR data may be filled by Gaussian smoothing using intensity values from neighboring pixels in the LIDAR data.
- a system provides prior to prior alignment by estimating a pose of a vehicle using two map-build priors using template matching.
- the system combines first and second map-build priors and determines an initial estimate of uv pixel shifts of the combined map-build priors by maximizing a Zero-Mean Normalized Cross Correlation.
- the initial estimate of the uv pixel shift is converted into an XY shift in meters and applied to ground points determined from ground intensity LIDAR data including intensity data for points believed to be on the ground and height information.
- a robust least squares algorithm is used to determine a z-axis translation and the XY shifted ground points and z-axis translation are provided to a pose estimation module for generating a 6-degrees-of-freedom estimate of the pose of the vehicle.
- initial estimates from the Zero-Mean Normalized Cross Correlation and an output of the robust least squares algorithm for a scale axis may be combined and provided to the pose estimation module.
- the system may provide prior to prior alignment pose estimation by constructing multiple map-build priors from the ground intensity LIDAR data on the fly and co-registering the multiple map-build priors by combining respective map-build priors, determining the initial estimate of uv pixel shifts of the combined respective map-build priors by maximizing the Zero-Mean Normalized Cross Correlation, converting the initial estimate of the uv pixel shift into the XY shift in meters, applying the XY shift to the ground points, using the robust least squares algorithm to determine the z-axis translation, and providing the XY shifted ground points and z-axis translation to the pose estimation module for generating the 6-degrees-of-freedom estimate of the pose of the vehicle.
- autonomous vehicle refers to a vehicle that is operated in a state of automation with respect to at least steering and propulsion. Different levels of autonomy may exist with respect to autonomous vehicles. For example, some vehicles may enable automation in limited scenarios, such as on highways, provided that a safety driver is present in the vehicle. More advanced autonomous vehicles can drive without any human assistance from within or external to the vehicle.
- a “geographic region” can refer to any physical area accessible by vehicle and its surrounding environment, including road segments, combinations of road segments, neighborhoods, cities, etc.
- a “map-relative pose estimate” is a pose estimate in a map-relative frame that includes a submap ID, 6 degree-of-freedom pose estimate in the frame of that submap, and a covariance matrix representing the uncertainty of the estimate.
- a “localizer” is a component of the localization stack that receives sensor data and an initial guess and generates a map-relative pose estimate by registering observed data against the map given the initial guess.
- the localizer provides estimates of the vehicle's 6-degrees-of-freedom position and orientation (pose), velocities, accelerations and associated uncertainties and frame-to-frame transformations as required by the vehicle's motion planning, control, perception, and other subsystems.
- the localizer notifies the pose filter if the system should transition to a new frame (submap) and how to get to the new frame.
- “Geometrically degenerate” is a term used to describe an environment in which there is insufficient 3D information for the geometry-based localizer to converge to a unique solution near the initial guess. Quantitatively, this can be measured by the distribution of surface normals in the map within the sensor range (surface normals should span R 3 ).
- a “pose filter” is a component of the localization stack that runs a set of Extended Kalman Filters to fuse information from sensors (e.g., IMU, encoders) and pose estimates from localizers to estimate and publish map-relative and continuous pose.
- a “global pose” is a component of the localization stack responsible for providing bootstrapping estimates when the system's map-relative pose is uninitialized/invalid.
- GIL Ground Intensity Lidar
- 6-degrees-of-freedom refers to the movement of a rigid body in three-dimensional space including forward/backward, up/down, left right combined with pitch, yaw, and roll.
- One or more aspects described herein provide that methods, techniques and actions performed by a computing device are performed programmatically or as a computer-implemented method. Programmatically means through the use of code or computer-executable instructions. A programmatically performed step may or may not be automatic.
- a programmatic module or component may include a program, a subroutine, a portion of a program, a software component, or a hardware component capable of performing one or more stated tasks or functions.
- a module or component can exist on a hardware component independently of other modules or components.
- a module or component can be a shared element or process of other modules, programs, or machines.
- one or more aspects described herein may be implemented through the use of instructions that are executable by one or more processors. These instructions may be carried on a computer-readable medium.
- Machines shown or described with figures below provide examples of processing resources and computer-readable media on which instructions for implementing some aspects can be carried and/or executed.
- the numerous machines shown in some examples include processor(s) and various forms of memory for holding data and instructions.
- Examples of computer-readable media include permanent memory storage devices, such as hard drives on personal computers or servers.
- Other examples of computer storage media include portable storage units, such as CD or DVD units, flash or solid-state memory (such as carried on many cell phones and consumer electronic devices), and magnetic memory.
- Computers, terminals, network-enabled devices are all examples of machines and devices that utilize processors, memory, and instructions stored on computer-readable media.
- one or more examples described herein may be implemented through the use of dedicated hardware logic circuits that are comprised of an interconnection of logic gates.
- Such circuits are typically designed using a hardware description language (HDL), such as Verilog or VHDL. These languages contain instructions that ultimately define the layout of the circuit. However, once the circuit is fabricated, there are no instructions, and the processing is performed by interconnected gates.
- HDL hardware description language
- FIG. 1 is a diagram showing one example of an environment 100 including a vehicle 102 having a pose system 130 .
- the vehicle 102 in some examples, is a self-driving vehicle (SDV) or autonomous vehicle (AV) comprising a vehicle autonomy system ( FIG. 2 ) for operating the vehicle without human intervention.
- the vehicle also, in addition to or instead of a full autonomous mode, includes a semi-autonomous mode in which a human user is responsible for some or all control of the vehicle.
- the vehicle 102 comprises one or more remote detection sensors 104 that receive return signals 108 , 110 from the environment 100 .
- Return signals 108 , 110 may be reflected from objects, such as the object 112 and/or ground 113 .
- the remote detection sensors 104 may include one or more active sensors, such as LIDAR or RADAR, that emit electromagnetic radiation 106 in the form of light or radio waves to generate return signals 108 , 110 .
- the remote detection sensors 104 include a passive sensor, such as a set of stereoscopic cameras, that receive reflected ambient light or other radiation.
- the remote detection sensors 104 are shown on top of the vehicle 102 . However, remote detection sensors 104 also may be positioned at any suitable position on the vehicle 102 including, for example, on a bumper, behind the windshield, etc.
- the pose system 130 receives remote sensor data 144 and reference map data 146 and generates vehicle poses 148 .
- One or more localizers 132 , 134 utilize the remote sensor data 144 and the reference map data 146 to generate pose estimates that are provided to the pose state estimator 138 .
- the pose state estimator 138 also receives motion sensor data from one or more motion sensors such as, for example, an inertial measurement unit (IMU) 139 , one or more encoders, such as encoder 140 , and/or an odometer 142 .
- Motion sensor data may be used to supplement pose estimates received from the one or more localizers 132 , 134 .
- two localizers 132 , 134 are shown in FIG. 1 , more or fewer localizers may be used.
- one of the localizers 132 , 134 comprises a ground intensity LIDAR localizer as described herein. It will be appreciated that, in such a case, the remote detection sensors 104 will include ground intensity sensors as described herein.
- FIG. 2 is a block diagram showing one example of a vehicle 200 according to example aspects of the present disclosure.
- the vehicle 200 can be, for example, an autonomous or semi-autonomous vehicle such as vehicle 102 illustrated in FIG. 1 .
- the vehicle 200 includes one or more sensors 201 , a vehicle autonomy system 202 , and one or more vehicle controls 207 .
- the vehicle autonomy system 202 can be engaged to control the vehicle 200 or to assist in controlling the vehicle 200 .
- the vehicle autonomy system 202 sometimes referred to as an Autonomous Vehicle (AV) stack, receives sensor data from the one or more sensors 201 , attempts to comprehend the environment surrounding the vehicle 200 by performing various processing techniques on data collected by the sensors 201 , and generates an appropriate motion path through the environment.
- the vehicle autonomy system 202 can control the one or more vehicle controls 207 to operate the vehicle 200 according to the motion path.
- AV Autonomous Vehicle
- the vehicle autonomy system 202 includes a perception system 203 , a prediction system 204 , a motion planning system 205 , and a pose system 230 that cooperate to perceive the surrounding environment of the vehicle 200 and determine a motion plan for controlling the motion of the vehicle 200 accordingly.
- the pose system 230 may be arranged to operate as described herein.
- the sensors 201 may include remote detection sensors as well as other sensors, such as an inertial measurement unit (IMU), one or more encoders, one or more odometers, etc.
- IMU inertial measurement unit
- the sensor data can include information that describes the location of objects within the surrounding environment of the vehicle 200 , information that describes the motion of the vehicle, etc.
- the sensors 201 may also include one or more remote detection sensors or sensor systems, such as a LIDAR, a RADAR, one or more cameras, etc.
- a LIDAR system of the one or more sensors 201 generates sensor data (e.g., remote sensor data) that includes the location (e.g., in three-dimensional space relative to the LIDAR system) of a number of points that correspond to objects that have reflected a ranging laser.
- LIDAR system as described herein can measure distances by measuring the Time of Flight (TOF) that it takes a short laser pulse to travel from the sensor to an object and back, calculating the distance from the known speed of light.
- TOF Time of Flight
- a LIDAR ground intensity system as described herein can measure the distance to the ground and the intensity of light returned from the ground.
- a RADAR system of the one or more sensors 201 generate sensor data (e.g., remote sensor data) that includes the location (e.g., in three-dimensional space relative to the RADAR system) of a number of points that correspond to objects that have reflected ranging radio waves.
- sensor data e.g., remote sensor data
- radio waves e.g., pulsed or continuous
- transmitted by the RADAR system can reflect off an object and return to a receiver of the RADAR system, giving information about the object's location and speed.
- a RADAR system can provide useful information about the current speed of an object.
- one or more cameras of the one or more sensors 201 may generate sensor data (e.g., remote sensor data) including still or moving images.
- sensor data e.g., remote sensor data
- Various processing techniques e.g., range imaging techniques such as, for example, structure from motion, structured light, stereo triangulation, and/or other techniques
- range imaging techniques such as, for example, structure from motion, structured light, stereo triangulation, and/or other techniques
- Other sensor systems can identify the location of points that correspond to objects as well.
- the one or more sensors 201 can include a positioning system that can determine a current position of the vehicle 200 .
- the positioning system can be any device or circuitry for analyzing the position of the vehicle 200 .
- the positioning system can determine a position by using one or more of inertial sensors, a satellite positioning system such as a Global Positioning System (GPS), based on IP address, by using triangulation and/or proximity to network access points or other network components (e.g., cellular towers, Wi-Fi access points, etc.) and/or other suitable techniques.
- GPS Global Positioning System
- the position of the vehicle 200 can be used by various systems of the vehicle autonomy system 202 .
- the one or more sensors 201 can be used to collect sensor data that includes information that describes the location (e.g., in three-dimensional space relative to the vehicle 200 ) of points that correspond to objects within the surrounding environment of the vehicle 200 .
- the sensors 201 can be located at various different locations on the vehicle 200 .
- one or more cameras and/or LIDAR sensors can be located in a pod or other structure that is mounted on a roof of the vehicle 200 while one or more RADAR sensors can be located in or behind the front and/or rear bumper(s) or body panel(s) of the vehicle 200 .
- camera(s) can be located at the front or rear bumper(s) of the vehicle 200 as well. Other locations can be used as well.
- the pose system 230 receives some or all of the sensor data from sensors 201 and generates vehicle poses for the vehicle 200 .
- a vehicle pose describes the position and attitude of the vehicle.
- the position of the vehicle 200 is a point in a three-dimensional space. In some examples, the position is described by values for a set of Cartesian coordinates, although any other suitable coordinate system may be used.
- the attitude of the vehicle 200 generally describes the way in which the vehicle 200 is oriented at its position. In some examples, attitude is described by a yaw about the vertical axis, a pitch about a first horizontal axis and a roll about a second horizontal axis.
- the pose system 230 generates vehicle poses periodically (e.g., every second, every half second, etc.).
- the pose system 230 appends time stamps to vehicle poses, where the time stamp for a pose indicates the point in time that is described by the pose.
- the pose system 230 generates vehicle poses by comparing sensor data to reference map data 226 describing the surrounding environment of the vehicle 200 .
- the pose system 230 in some examples, is arranged similar to the pose system 130 of FIG. 1 .
- the pose system 130 may comprise one or more localizers including a ground intensity LIDAR localizer as described herein as well as a pose state estimator.
- the perception system 203 detects objects in the surrounding environment of the vehicle 200 based on sensor data, reference map data 226 and/or vehicle poses provided by the pose system 230 .
- Reference map data 226 may provide detailed information about the surrounding environment of the vehicle 200 , for example, relating remote sensor data to vehicle position and/or attitude.
- the reference map data 226 can further provide information regarding the identity and location of different roadways, segments of roadways, buildings, or other items or objects (e.g., lampposts, crosswalks, curbing, etc.); the location and directions of traffic lanes (e.g., the location and direction of a parking lane, a turning lane, a bicycle lane, or other lanes within a particular roadway); traffic control data (e.g., the location and instructions of signage, traffic lights, or other traffic control devices); and/or any other reference data that provides information that assists the vehicle autonomy system 202 in comprehending and perceiving its surrounding environment and its relationship thereto.
- traffic lanes e.g., the location and direction of a parking lane, a turning lane, a bicycle lane, or other lanes within a particular roadway
- traffic control data e.g., the location and instructions of signage, traffic lights, or other traffic control devices
- any other reference data that provides information that assists the vehicle autonomy system 202 in comprehending and perceiving its
- a roadway is a place where the vehicle can drive and may include, for example, a road, a street, a highway, a lane, a parking lot, a driveway, etc.
- the perception system 203 utilizes vehicle poses provided by the pose system 230 to place the vehicle 200 at a particular location and/or attitude, for example, based on reference data, and thereby predict which objects should be in the surrounding environment of the vehicle 200 .
- the perception system 203 determines state data for one or more of the objects in the surrounding environment of the vehicle 200 .
- State data may describe a current state of an object (also referred to as features of the object).
- the state data for each object describes, for example, an estimate of the object's current location (also referred to as position); current speed (also referred to as velocity); current acceleration; current heading; current orientation; size/shape/footprint (e.g., as represented by a bounding shape such as a bounding polygon or polyhedron); type/class (e.g., vehicle versus pedestrian versus bicycle versus other); yaw rate; distance from the vehicle 200 ; minimum path to interaction with the vehicle 200 ; minimum time duration to interaction with the vehicle 200 ; and/or other state information.
- the perception system 203 can determine state data for each object over a number of iterations. In particular, the perception system 203 can update the state data for each object at each iteration. Thus, the perception system 203 can detect and track objects, such as vehicles, that are proximate to the vehicle 200 over time.
- the prediction system 204 is configured to predict one or more future positions for an object or objects in the environment surrounding the vehicle 200 (e.g., an object or objects detected by the perception system 203 ).
- the prediction system 204 can generate prediction data associated with one or more of the objects detected by the perception system 203 .
- the prediction system 204 generates prediction data describing each of the respective objects detected by the perspective system 204 .
- Prediction data for an object can be indicative of one or more predicted future locations of the object.
- the prediction system 204 may predict where the object will be located within the next 5 seconds, 20 seconds, 200 seconds, etc.
- Prediction data for an object may indicate a predicted trajectory (e.g., predicted path) for the object within the surrounding environment of the vehicle 200 .
- the predicted trajectory e.g., path
- the prediction system 204 generates prediction data for an object, for example, based on state data generated by the perception system 203 . In some examples, the prediction system 204 also considers one or more vehicle poses generated by the pose system 230 and/or reference data 226 .
- the prediction system 204 uses state data indicative of an object type or classification to predict a trajectory for the object.
- the prediction system 204 can use state data provided by the perception system 203 to determine that a particular object (e.g., an object classified as a vehicle) is approaching an intersection and maneuvering into a left-turn lane intends to turn left. In such a situation, the prediction system 204 can predict a trajectory (e.g., path) corresponding to a left-turn for the vehicle such that the vehicle turns left at the intersection.
- the prediction system 204 can determine predicted trajectories for other objects, such as bicycles, pedestrians, parked vehicles, etc.
- the prediction system 204 can provide the predicted trajectories associated with the object(s) to the motion planning system 205 .
- the prediction system 204 is a goal-oriented prediction system 204 that generates one or more potential goals, selects one or more of the most likely potential goals, and develops one or more trajectories by which the object can achieve the one or more selected goals.
- the prediction system 204 can include a scenario generation system that generates and/or scores the one or more goals for an object and a scenario development system that determines the one or more trajectories by which the object can achieve the goals.
- the prediction system 204 can include a machine-learned goal-scoring model, a machine-learned trajectory development model, and/or other machine-learned models.
- the motion planning system 205 determines a motion plan for the vehicle 200 based at least in part on the predicted trajectories associated with the objects within the surrounding environment of the vehicle, the state data for the objects provided by the perception system 203 , vehicle poses provided by the pose system 230 , and/or reference map data 226 . Stated differently, given information about the current locations of objects and/or predicted trajectories of objects within the surrounding environment of the vehicle 200 , the motion planning system 205 can determine a motion plan for the vehicle 200 that best navigates the vehicle 200 relative to the objects at such locations and their predicted trajectories on acceptable roadways.
- the motion planning system 205 can evaluate one or more cost functions and/or one or more reward functions for each of one or more candidate motion plans for the vehicle 200 .
- the cost function(s) can describe a cost (e.g., over time) of adhering to a particular candidate motion plan while the reward function(s) can describe a reward for adhering to the particular candidate motion plan.
- the reward can be of opposite sign to the cost.
- the motion planning system 205 can determine a total cost (e.g., a sum of the cost(s) and/or reward(s) provided by the cost function(s) and/or reward function(s)) of adhering to a particular candidate pathway.
- the motion planning system 205 can select or determine a motion plan for the vehicle 200 based at least in part on the cost function(s) and the reward function(s). For example, the motion plan that minimizes the total cost can be selected or otherwise determined.
- the motion plan can be, for example, a path along which the vehicle 200 will travel in one or more forthcoming time periods.
- the motion planning system 205 can be configured to iteratively update the motion plan for the vehicle 200 as new sensor data is obtained from one or more sensors 201 .
- the sensor data can be analyzed by the perception system 203 , the prediction system 204 , and the motion planning system 205 to determine the motion plan.
- Each of the perception system 203 , the prediction system 204 , the motion planning system 205 , and the pose system 230 can be included in or otherwise a part of a vehicle autonomy system configured to determine a motion plan based at least in part on data obtained from one or more sensors 201 .
- data obtained by one or more sensors 201 can be analyzed by each of the perception system 203 , the prediction system 204 , and the motion planning system 205 in a consecutive fashion in order to develop the motion plan.
- FIG. 2 depicts elements suitable for use in a vehicle autonomy system according to example aspects of the present disclosure, one of ordinary skill in the art will recognize that other vehicle autonomy systems can be configured to determine a motion plan for an autonomous vehicle based on sensor data.
- the motion planning system 205 can provide the motion plan to one or more vehicle control systems 207 to execute the motion plan.
- the one or more vehicle control systems 207 can include throttle systems, brake systems, steering systems, and other control systems, each of which can include various vehicle controls (e.g., actuators or other devices that control gas flow, steering, braking, etc.) to control the motion of the vehicle.
- the various control systems 207 can include one or more controllers, control devices, motors, and/or processors.
- the vehicle control systems 207 can include a brake control module 220 that is configured to receive a braking command from the vehicle autonomy system 202 (e.g., from the motion planning system 205 ), and in response, brake the vehicle 200 .
- the brake control module 220 includes a primary system and a secondary system.
- the primary system may receive braking commands and, in response, brake the vehicle 200 .
- the secondary system may be configured to determine a failure of the primary system to brake the vehicle 200 in response to receiving the braking command.
- a steering control system 232 is configured to receive a steering command from the vehicle autonomy system 202 (e.g., from the motion planning system 205 ) and, in response, provide a steering input to steer the vehicle 200 .
- a throttle control system 234 is configured to receive a throttle command from the vehicle autonomy system (e.g., from the motion planning system 205 ) and, in response, provide a throttle input to control the engine or other propulsion system of the vehicle 200 .
- a lighting/auxiliary control module 236 may receive a lighting or auxiliary command. In response, the lighting/auxiliary control module 236 may control a lighting and/or auxiliary system of the vehicle 200 . Controlling a lighting system may include, for example, turning on, turning off, or otherwise modulating headlines, parking lights, running lights, etc. Controlling an auxiliary system may include, for example, modulating windshield wipers, a defroster, etc.
- the vehicle autonomy system 202 includes one or more computing devices, such as the computing device 211 , that may implement all or parts of the perception system 203 , the prediction system 204 , the motion planning system 205 and/or the pose system 230 .
- the example computing device 211 can include one or more processors 212 and one or more memory devices (collectively referred to as memory) 214 .
- the one or more processors 212 can be any suitable processing device (e.g., a processor core, a microprocessor, an Application Specific Integrated Circuit (ASIC), a Field Programmable Gate Array (FPGA), a microcontroller, etc.) and can be one processor or a plurality of processors that are operatively connected.
- ASIC Application Specific Integrated Circuit
- FPGA Field Programmable Gate Array
- the memory 214 can include one or more non-transitory computer-readable storage mediums, such as Random-Access Memory (RAM), Read Only Memory (ROM), Electrically Erasable Programmable Read Only Memory (EEPROM), Erasable Programmable Read Only Memory (EPROM), flash memory devices, magnetic disks, etc., and combinations thereof.
- the memory 214 can store data 216 and instructions 218 which can be executed by the processor 212 to cause the vehicle autonomy system 202 to perform operations.
- the one or more computing devices 211 can also include a communication interface 219 , which can allow the one or more computing devices 211 to communicate with other components of the vehicle 200 or external computing systems, such as via one or more wired or wireless networks. Additional descriptions of hardware and software configurations for computing devices, such as the computing device(s) 211 are provided below with respect to FIG. 10 and FIG. 11 .
- Ground intensity LIDAR (GIL) data is used to form GIL images in sample embodiments.
- the GIL images include a set of pixels in 2D coordinates, where each pixel contains an intensity value and a height value. Each pixel also contains the x- and y-gradients of intensity and height.
- the image representation for the height and intensity data is accomplished by filtering aggregated data falling into the same spatial bin on the ground. This representation is a sparse image, in that some pixels do not have values assigned.
- GIL images may be used to represent the GIL_LOCALIZER_PRIOR layer for each submap, as well as to accumulate readings observed on-vehicle over a short time window.
- a registration algorithm which takes two GIL images and aligns them relative to one another by estimating a 6-degree-of-freedom pose (with associated uncertainty) that minimizes the error between them.
- This is a nonlinear optimization problem that is solved, for example, using the Gauss-Newton or the Levenberg-Marquardt framework.
- the state is an 8-dimensional vector containing the 6-degree-of-freedom pose with a scale and offset (to account for intensity differences between sensors; these extra two variables could potentially be configured out when intensity calibration is consistent across vehicles).
- the GIL Localizer is responsible for on-vehicle estimation of map-relative pose at a rate of a few times per second ( ⁇ 3-10 Hz).
- the GILL accumulates LIDAR data over a few LIDAR sweeps and constructs a GIL image.
- the GIL image is registered against the prior for the current submap, and estimates are generated of the vehicle's pose relative to that submap's origin, with associated uncertainty.
- the initial guess for the GILL originates from a map-relative pose when it is valid; otherwise, the system is in bootstrapping mode, in which case the initial guess is obtained from a global pose task that can be either geometric, intensity-based, or other hypothetical future global pose implementation.
- the rate at which GILL runs does not affect the publication rate of the vehicle pose message.
- the pose filter publishes the vehicle pose at a rate of 100 Hz regardless of when or how many localizer map-relative pose estimates are provided to the pose filter.
- the GILL is designed to obtain the best 6-degree-of-freedom estimate of the vehicle's position and orientation given an a priori built map of the environment (prior). Details on constructing the prior are described below.
- the GILL prior is a collection of the 3D points on the ground surface along with a 2D image where each pixel contains reflectance and height information of the points.
- the 2-channel image representation will be denoted as two images. One contains reflectance information R, while the other contains the height information H.
- an unorganized 3D pointcloud is provided along with reflectance information denoted by: ⁇ X i , r i ⁇ .
- This pointcloud is obtained over a predefined, but configurable, period of time warped into a consistent frame given current estimates of the vehicle's Continuous Pose (CP).
- the input pointcloud contains points believed to be on the ground surface with height information denoted by h i .
- an initial estimate of the vehicle pose parameters, ⁇ which may be the identity, is also provided.
- the GILL refines the initial estimate of pose such as reflectance and height discrepancies between the prior and the input pointcloud so that the discrepancies are minimized (in a least-squares sense).
- the objective takes the form:
- the warping functions w * denote transforming the input points with the current pose estimate, then selecting the appropriate coordinates for the objective.
- the reflectance warping function w r merely selects the first two coordinates of the warped point and maps them to the reflectance image coordinates using a predefined grid-size (discussed in the prior construction section below).
- the height warping function w h selects the third coordinates of the warped point (the z-coordinate).
- the partial derivatives of the exponential map with respect to the warped coordinates can also be obtained in closed form as the 3 ⁇ 6 matrix: ([X i ] x I 3 ⁇ 3 ), where the brackets notation denotes the skew-symmetric matrix constructed from the transformed point given the current estimates of pose.
- the Jacobian of the height objective is obtained in a similar fashion and is given by:
- IRLS iteratively re-weighted least squares
- the scale of the Huber objective may be held fixed throughout the optimization. Contributions from every point to the objective also may be weighted by the uncertainty of reflectance and height information. This weighting may be hardcoded until the reflectance uncertainty model is determined from calibration. Also, to improve numerical conditioning, Tikhonov regularization may be applied to the design matrix prior to solving via the Cholesky decomposition (e.g., using Eigen's LDLT). In sample embodiments, all interpolation may be performed using bilinear interpolation.
- Online localization with GILL includes ground point downselection where the data from the LIDAR is stored into a rolling buffer with a predetermined capacity. Spatial downsampling is performed in the X-Y plane to retain points within a bounding box centered at the vehicle's origin. Fast approximate plane fitting is performed to retain points that are most likely to belong to the ground surface.
- the pose of the subsampled ground points is estimated using the Levenberg-Marquardt Algorithm. Starting from an initial estimate of pose (which comes from the localization pose filter or other means) the problem is linearized and iteratively solved using robust loss functions in an iterative closest point (ICP) algorithm of the type used by standard localizers. Linearizing and solving this linear system is repeated until convergence or a fixed number of iterations has been reached.
- ICP iterative closest point
- FIG. 3 A schematic representation of the steps involved in estimating the vehicles 6-degree-of-freedom orientation and position for online localization in a sample embodiment is shown in FIG. 3 .
- live 3D point cloud data along with their intensity values and uncertainty estimates are provided at 300 and combined with a pose seed (initialization) 302 by combiner 304 .
- the initialized pose is estimated using a filtering pose that predicts the pose of the vehicle in the future.
- the pose initialization is then used to account for the LIDAR's ego-motion at the compensate for vehicle motion at step 306 . This is performed by transforming each LIDAR point with the given initialization, interpolated as necessary, to bring the points into a consistent coordinate system.
- the points are stored in a rolling-buffer accumulating points over a period of, for example, 0.5 seconds.
- the LIDAR ground points in the rolling buffer are downselected in two ways at 308 .
- the ground down selection algorithms operate as follows:
- the ground points are registered at 310 with semi-dense 2.5D image priors provided at 312 by performing the optimization described above.
- the 2.5D image priors include pixels that encode two pieces of information along with their uncertainties: height from the ground and intensity return.
- the success of the pose registration step 310 is evaluated at 314 .
- the success criteria include:
- the method illustrated in FIG. 3 may be improved in a number of ways.
- good LIDAR reflectance calibration may be provided.
- the addition of global appearance change parameters (gain+bias) may help, but two global variables cannot accurately capture the vast appearance differences due to LIDAR miscalibration.
- the image alignment may be implemented in scale-space.
- SLAM direct simultaneous localization and mapping
- Some computational gains also may be obtained by ignoring prior points with vanishing reflectance or height gradients as they do not contribute to the objective.
- a point may be considered for optimization if both reflectance and height information are valid.
- constraints from reflectance and height are independent and may be included in the optimization.
- a prior is constructed offline and deployed to a vehicle.
- the world is discretized into a fixed size grid/cells 400 as illustrated generally in FIG. 4 .
- the area of each grid may be 0.1 m 2 .
- the ground points are then determined using LIDAR points having known positions in the world as obtained during a map build. A robust fitting of a 3D plane using the RANSAC algorithm may be used to determine points with a high likelihood of being on the ground plane.
- the LIDAR data is then aggregated and filtered to determine a single height and intensity value per cell. For every pixel in the discretized grid, all points that fall into the pixel are tracked and, once all data has been aggregated, the pixel data is filtered.
- the data is filtered to determine potential measurements with “outlier” intensity values.
- Outliers arise from either a bad calibration, or the discretization grid straddling an intensity discontinuity in the world. Outliers are determined as points whose intensity values are more than a predetermined threshold from a robust estimate of the standard deviation of distribution of intensities per cell. Once the outliers have been removed, a single intensity value is assigned to a pixel using an uncertainty weighted mean. Uncertainties are either determined from an offline calibration model, or an educated guess of the intensity fall-off model. Farther points have higher intensity uncertainty. These steps are repeated for the height data as well.
- LIDAR data is unorganized (i.e., has variable density) in combination with outlier filtering, some pixels remain unfilled (i.e., holes remain in the final prior).
- the pixels are filled in using neighboring pixels with valid intensity values.
- the neighbor contributions are spatially weighted using a Gaussian filter with a predetermined standard deviation.
- the final prior image is determined to encompass all valid pixels. All large empty areas are trimmed. Only valid pixels and their values are stored as the prior. For every valid pixel, the following is stored in a sample embodiment: row index 16-bit integer, column index 16-bit integer, intensity value 8-bit integer, height value 16-bit IEEE-754 half-precision float, and a set of metadata per prior.
- the metadata includes scalar factors to contribute pixel units to meters in the world and a mapping from the origin of the prior in pixel (0,0) to the corresponding (X,Y) world coordinates where the heights are relative to the origin in the map (e.g. sea level).
- the prior is constructed from LIDAR data and the inferred ground using localized LIDAR and intensity points as shown in FIG. 5 .
- FIG. 5 illustrates a schematic of the steps performed when generating the GILL priors from the localized LIDAR data in sample embodiments.
- the method starts with providing the live 3D point cloud data along with their intensity values and uncertainty estimates at 500 .
- the point cloud data may be pulled from localizer data logs that localize collected LIDAR data to map relative pose over, for example, several passes down the same street during the map building process. Spatial downselection is performed at step 502 and ground points downselection is performed at 504 as described above with respect to FIG. 3 .
- steps 502 and 504 data is read from appropriate map layer and points are discarded if the LIDAR point elevation is larger than a threshold (e.g., 10 cm), if the LIDAR range return is larger than a threshold (e.g., 50 m), and if map-relative pose or continuous pose are invalid.
- the downselected points are then discretized into a 2D image grid at 506 .
- Discretizing the ground points into a 2D grid includes establishing the resolution of each grid cell (e.g., 10 ⁇ 10 cm 2 ) and determining the reflectance and height value per cell as the weighted average (or median) of all data falling into the cell. The weights are based on each point's range and intensity estimated uncertainties.
- the uncertainties for LIDAR data are related to range (higher uncertainty at longer range), while uncertainties for the intensity measurements conform to a calibration model, which is a function of raw LIDAR point range and intensity strength.
- a calibration model which is a function of raw LIDAR point range and intensity strength.
- a Gaussian kernel of a small radius (1 or 2 pixels) may be used to fill in the missing values from neighboring pixels.
- the 2.5D reflects that the data is not 3D data but the 2.5D data includes the height data discretized onto the 2D image grid as described herein.
- the 6-degree-of-freedom alignment pose between semi-dense priors may be calculated, which is a step required to stitch multiple priors together to form a larger prior during map building (see below).
- FIGS. 6A-6F Examples of the intensity (reflectance) and height priors along with their gradients are illustrated in FIGS. 6A-6F .
- FIG. 6A illustrates the constructed intensity image
- FIG. 6B illustrates the constructed height image
- FIG. 6C illustrates the intensity gradient along the x-direction
- FIG. 6D illustrates the height gradient along the x-direction
- FIG. 6E illustrates the intensity gradient along the y-direction
- FIG. 6F illustrates the height gradient along the y-direction.
- the LIDAR scans are sparser and it is more challenging to obtain a robust estimate of the pose using the Levenberg-Marquardt approach. This is addressed in sample embodiments by using a set of LIDAR scans with their intensities to construct a sparse map build prior. The points collected in this stage rely on the accuracy of the provided continuous pose to put them into a consistent frame. A predetermined amount of travelled time/distance is used to determine the size of the map build prior.
- FIG. 7 illustrates prior matching using template matching techniques in a sample embodiment.
- an initial estimate of the uv pixel shifts from both (sparse) priors Prior 1 (from pointcloud) and Prior 2 (map-build prior) is determined by combining Prior 1 and Prior 2 using cross-correlator 700 .
- the combined priors are treated as an image, and the optimal shift is found at 702 that maximizes the Zero-Mean Normalized Cross Correlation.
- the uv pixel shift (x, y, ⁇ ) is converted into an XY shift in meters at 704 using the known conversion scale factor from pixels to meters.
- an estimate of the Z translation is obtained using a robust least squares algorithm at 706 .
- the initial estimates from the Zero-Mean Cross Correlation and robust least squares for the scale axis are combined and passed down to the same online pose estimation module (using the Levenberg-Marquardt algorithm) for pose estimation at 708 .
- the quality of the match between the two sparse priors is determined by examining the sharpness of the correlation surface. Matches are deemed acceptable if the local maxima of the correlation surface (across all possible uv shifts) is distinctive enough locally as well as in comparison to the second peak in cost. This step is used to detect potential aliasing and unreliable matches which are discarded from the map build process.
- the resulting 6-degrees-of-freedom pose estimate is then output for further map building.
- ground intensity LIDAR localization techniques described herein also may be used as supplemental constraints to offline map building.
- multiple priors are constructed as described above, and the multiple priors are then co-registered using template matching techniques commonly used in computer vision and image processing.
- template matching techniques commonly used in computer vision and image processing.
- building the priors on the fly results in fairly noisy and sparse priors as shown in FIG. 8 .
- FIG. 8 illustrates a comparison between an intensity-based map and full 3D priors.
- FIG. 8A illustrates a single sweep of LIDAR with intensity data, which is relatively sparse, while FIG.
- FIG. 8B illustrates multiple LIDAR sweeps accumulated over a short period of time and travel distance to provide a more robust intensity reference map. Unlike the offline prior build output, the intensity reference map is sparser and has more noise especially towards the periphery.
- FIG. 8C illustrates an example of a prior build from all LIDAR data where the prior is sufficiently dense with good coverage of the target area. In contrast, FIG. 8D illustrates the same area built with intensity data only. The reasons for the sparsity is the requirement in limiting the LIDAR range to useable values as the attenuation of the LIDAR intensity signal is inversely proportional to the range squared.
- FIG. 9 A demonstration of the template matching procedure is illustrated in FIG. 9 .
- the points 800 are LIDAR intensity image generated using the prior construction procedure described above, while the points 802 are live keyframes that are also constructed using the same prior construction procedure.
- the optimal pixel shift is the one the maximizes the zero-mean normalized cross correlation between the reference map and the input keyframe.
- x meter u pixel *S+O, where ‘S’ is the pixel size and ‘0’ is the origin of the constructed prior in world coordinates.
- the output of template matching in metric units is then provided to the same online registration step as the initialization (seed).
- seed Such use of robust template matching techniques on the constructed LIDAR intensity-based images provide a robust 2D estimate of motion that can be later refined to full 6-degrees-of-freedom.
- FIG. 10 is a block diagram 1000 showing one example of a software architecture 1002 for a computing device.
- the software architecture 1002 may be used in conjunction with various hardware architectures, for example, as described herein.
- FIG. 10 is merely a non-limiting example of a software architecture 1002 and many other architectures may be implemented to facilitate the functionality described herein.
- a representative hardware layer 1004 is illustrated and can represent, for example, any of the above-referenced computing devices. In some examples, the hardware layer 1004 may be implemented according to an architecture 1100 of FIG. 11 and/or the architecture 1002 of FIG. 10 .
- the representative hardware layer 1004 comprises one or more processing units 1006 having associated executable instructions 1008 .
- the executable instructions 1008 represent the executable instructions of the software architecture 1002 , including implementation of the methods, modules, components, and so forth of FIGS. 1-9 .
- the hardware layer 1004 also includes memory and/or storage modules 1010 , which also have the executable instructions 1008 .
- the hardware layer 1004 may also comprise other hardware 1012 , which represents any other hardware of the hardware layer 1004 , such as the other hardware illustrated as part of the architecture 1100 in FIG. 11 .
- the software architecture 1002 may be conceptualized as a stack of layers where each layer provides particular functionality.
- the software architecture 1002 may include layers such as an operating system 1014 , libraries 1016 , frameworks/middleware 1018 , applications 1020 , and a presentation layer 1044 .
- the applications 1020 and/or other components within the layers may invoke API calls 1024 through the software stack and receive a response, returned values, and so forth illustrated as messages 1026 in response to the API calls 1024 .
- the layers illustrated are representative in nature and not all software architectures have all layers. For example, some mobile or special-purpose operating systems may not provide a frameworks/middleware 1018 layer, while others may provide such a layer. Other software architectures may include additional or different layers.
- the operating system 1014 may manage hardware resources and provide common services.
- the operating system 1014 may include, for example, a kernel 1028 , services 1030 , and drivers 1032 .
- the kernel 1028 may act as an abstraction layer between the hardware and the other software layers.
- the kernel 1028 may be responsible for memory management, processor management (e.g., scheduling), component management, networking, security settings, and so on.
- the services 1030 may provide other common services for the other software layers.
- the services 1030 include an interrupt service.
- the interrupt service may detect the receipt of a hardware or software interrupt and, in response, cause the software architecture 1002 to pause its current processing and execute an Interrupt Service Routine (ISR) when an interrupt is received.
- ISR Interrupt Service Routine
- the drivers 1032 may be responsible for controlling or interfacing with the underlying hardware.
- the drivers 1032 may include display drivers, camera drivers, Bluetooth® drivers, flash memory drivers, serial communication drivers (e.g., Universal Serial Bus (USB) drivers), Wi-Fi® drivers, NFC drivers, audio drivers, power management drivers, and so forth depending on the hardware configuration.
- USB Universal Serial Bus
- the libraries 1016 may provide a common infrastructure that may be utilized by the applications 1020 and/or other components and/or layers.
- the libraries 1016 typically provide functionality that allows other software modules to perform tasks in an easier fashion than by interfacing directly with the underlying operating system 1014 functionality (e.g., kernel 1028 , services 1030 , and/or drivers 1032 ).
- the libraries 1016 may include system libraries 1034 (e.g., C standard library) that may provide functions such as memory allocation functions, string manipulation functions, mathematic functions, and the like.
- libraries 1016 may include API libraries 1036 such as media libraries (e.g., libraries to support presentation and manipulation of various media formats such as MPEG4, H.264, MP3, AAC, AMR, JPG, and PNG), graphics libraries (e.g., an OpenGL framework that may be used to render 2D and 3D graphic content on a display), database libraries (e.g., SQLite that may provide various relational database functions), web libraries (e.g., Web Kit that may provide web browsing functionality), and the like.
- the libraries 1016 may also include a wide variety of other libraries 1038 to provide many other APIs to the applications 1020 and other software components/modules.
- the frameworks 1018 may provide a higher-level common infrastructure that may be utilized by the applications 1020 and/or other software components/modules.
- the frameworks 1018 may provide various graphical user interface (GUI) functions, high-level resource management, high-level location services, and so forth.
- GUI graphical user interface
- the frameworks 1018 may provide a broad spectrum of other APIs that may be utilized by the applications 1020 and/or other software components/modules, some of which may be specific to a particular operating system or platform.
- the applications 1020 include built-in applications 1040 and/or third-party applications 1042 .
- built-in applications 1040 may include, but are not limited to, a contacts application, a browser application, a book reader application, a location application, a media application, a messaging application, and/or a game application.
- the third-party applications 1042 may include any of the built-in applications 1040 as well as a broad assortment of other applications.
- the third-party application 1042 e.g., an application developed using the AndroidTM or iOSTM software development kit (SDK) by an entity other than the vendor of the particular platform
- SDK software development kit
- the third-party application 1042 may invoke the API calls 1024 provided by the mobile operating system such as the operating system 1014 to facilitate functionality described herein.
- the applications 1020 may utilize built-in operating system functions (e.g., kernel 1028 , services 1030 , and/or drivers 1032 ), libraries (e.g., system libraries 1034 , API libraries 1036 , and other libraries 1038 ), or frameworks/middleware 1018 to create user interfaces to interact with users of the system.
- built-in operating system functions e.g., kernel 1028 , services 1030 , and/or drivers 1032
- libraries e.g., system libraries 1034 , API libraries 1036 , and other libraries 1038
- frameworks/middleware 1018 e.g., frameworks/middleware 1018 to create user interfaces to interact with users of the system.
- interactions with a user may occur through a presentation layer, such as the presentation layer 1044 .
- the application/module “logic” can be separated from the aspects of the application/module that interact with a user.
- Some software architectures utilize virtual machines. For example, systems described herein may be executed utilizing one or more virtual machines executed at one or more server computing machines. In the example of FIG. 10 , this is illustrated by a virtual machine 1048 .
- a virtual machine creates a software environment where applications/modules can execute as if they were executing on a hardware computing device.
- the virtual machine 1048 is hosted by a host operating system (e.g., the operating system 1014 ) and typically, although not always, has a virtual machine monitor 1046 , which manages the operation of the virtual machine 1048 as well as the interface with the host operating system (e.g., the operating system 1014 ).
- a software architecture executes within the virtual machine 1048 , such as an operating system 1050 , libraries 1052 , frameworks/middleware 1054 , applications 1056 , and/or a presentation layer 1058 . These layers of software architecture executing within the virtual machine 1048 can be the same as corresponding layers previously described or may be different.
- FIG. 11 is a block diagram illustrating a computing device hardware architecture 1100 , within which a set or sequence of instructions can be executed to cause a machine to perform examples of any one of the methodologies discussed herein.
- the architecture 1100 may describe, a computing device for executing the local map server and multiplexer described herein.
- the architecture 1100 may operate as a standalone device or may be connected (e.g., networked) to other machines. In a networked deployment, the architecture 1100 may operate in the capacity of either a server or a client machine in server-client network environments, or it may act as a peer machine in peer-to-peer (or distributed) network environments.
- the architecture 1100 can be implemented in a personal computer (PC), a tablet PC, a hybrid tablet, a set-top box (STB), a personal digital assistant (PDA), a mobile telephone, a web appliance, a network router, a network switch, a network bridge, or any machine capable of executing instructions (sequential or otherwise) that specify operations to be taken by that machine.
- PC personal computer
- PDA personal digital assistant
- the example architecture 1100 includes a processor unit 1102 comprising at least one processor (e.g., a central processing unit (CPU), a graphics processing unit (GPU), or both, processor cores, compute nodes, etc.).
- the architecture 1100 may further comprise a main memory 1104 and a static memory 1106 , which communicate with each other via a link 1108 (e.g., bus).
- the architecture 1100 can further include a video display unit 1110 , an input device 1112 (e.g., a keyboard), and a UI navigation device 1114 (e.g., a mouse).
- the video display unit 1110 , input device 1112 , and UI navigation device 1114 are incorporated into a touchscreen display.
- the architecture 1100 may additionally include a storage device 1116 (e.g., a drive unit), a signal generation device 1118 (e.g., a speaker), a network interface device 1120 , and one or more sensors (not shown), such as a Global Positioning System (GPS) sensor, compass, accelerometer, or other sensor.
- a storage device 1116 e.g., a drive unit
- a signal generation device 1118 e.g., a speaker
- a network interface device 1120 e.g., a Wi-Fi
- sensors not shown
- GPS Global Positioning System
- the processor unit 1102 or another suitable hardware component may support a hardware interrupt.
- the processor unit 1102 may pause its processing and execute an ISR, for example, as described herein.
- the storage device 1116 includes a machine-readable medium 1122 on which is stored one or more sets of data structures and instructions 1124 (e.g., software) embodying or utilized by any one or more of the methodologies or functions described herein.
- the instructions 1124 can also reside, completely or at least partially, within the main memory 1104 , within the static memory 1106 , and/or within the processor unit 1102 during execution thereof by the architecture 1100 , with the main memory 1104 , the static memory 1106 , and the processor unit 1102 also constituting machine-readable media.
- the various memories i.e., 1104 , 1106 , and/or memory of the processor unit(s) 1102
- storage device 1116 may store one or more sets of instructions and data structures (e.g., instructions) 1124 embodying or utilized by any one or more of the methodologies or functions described herein. These instructions, when executed by processor unit(s) 1102 cause various operations to implement the disclosed examples.
- machine-storage medium As used herein, the terms “machine-storage medium,” “device-storage medium,” “computer-storage medium” (referred to collectively as “machine-storage medium 1122 ”) mean the same thing and may be used interchangeably in this disclosure.
- the terms refer to a single or multiple storage devices and/or media (e.g., a centralized or distributed database, and/or associated caches and servers) that store executable instructions and/or data, as well as cloud-based storage systems or storage networks that include multiple storage apparatus or devices.
- the terms shall accordingly be taken to include, but not be limited to, solid-state memories, and optical and magnetic media, including memory internal or external to processors.
- machine-storage media, computer-storage media, and/or device-storage media 1122 include non-volatile memory, including by way of example semiconductor memory devices, e.g., erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), FPGA, and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks.
- semiconductor memory devices e.g., erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), FPGA, and flash memory devices
- EPROM erasable programmable read-only memory
- EEPROM electrically erasable programmable read-only memory
- FPGA field-programmable read-only memory
- flash memory devices e.g., erasable programmable read-only memory
- magnetic disks such as internal hard disks and removable disks
- signal medium or “transmission medium” shall be taken to include any form of modulated data signal, carrier wave, and so forth.
- modulated data signal means a signal that has one or more of its characteristics set or changed in such a matter as to encode information in the signal.
- machine-readable medium means the same thing and may be used interchangeably in this disclosure.
- the terms are defined to include both machine-storage media and signal media.
- the terms include both storage devices/media and carrier waves/modulated data signals.
- the instructions 1124 can further be transmitted or received over a communications network 1126 using a transmission medium via the network interface device 1120 utilizing any one of a number of well-known transfer protocols (e.g., HTTP).
- Examples of communication networks include a LAN, a WAN, the Internet, mobile telephone networks, plain old telephone service (POTS) networks, and wireless data networks (e.g., Wi-Fi, 3G, and 5G LTE/LTE-A or WiMAX networks).
- POTS plain old telephone service
- wireless data networks e.g., Wi-Fi, 3G, and 5G LTE/LTE-A or WiMAX networks.
- transmission medium shall be taken to include any intangible medium that is capable of storing, encoding, or carrying instructions for execution by the machine, and includes digital or analog communications signals or other intangible media to facilitate communication of such software.
- a component may be configured in any suitable manner.
- a component that is or that includes a computing device may be configured with suitable software instructions that program the computing device.
- a component may also be configured by virtue of its hardware arrangement or in any other suitable manner.
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Electromagnetism (AREA)
- Computer Networks & Wireless Communication (AREA)
- Aviation & Aerospace Engineering (AREA)
- Automation & Control Theory (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Theoretical Computer Science (AREA)
- Traffic Control Systems (AREA)
Abstract
Description
The addition of the global gain and bias parameters (α,β) in the formulation above is included to address appearance variations and lack of reflectance calibration. The ⊕ notation denotes pose composition.
X′=exp(θ)X
It will be appreciated that prior to applying the matrix exponential, the 6-vector is converted to a 4×4 matrix via the hat operator. The reflectance warping function wr merely selects the first two coordinates of the warped point and maps them to the reflectance image coordinates using a predefined grid-size (discussed in the prior construction section below). The height warping function wh selects the third coordinates of the warped point (the z-coordinate).
Σi=1 n(J r T J r +J h T J h)Δθ=−(Σi=1 n J r T δr i+Σi=1 n J h T δh i),
where δri and θhi are the current reflectance and ground height error respectively:
δr n =R(x i)−r i,
δh i =H(x i)−h i
R(xi) and H(xi) are obtained with linear interpolation, and Jr is the Jacobian of the reflectance objective with respect to the pose parameters evaluated at the current pose estimates (where optimization is performed within the vicinity of the origin on se(3)) and is given by:
is the gradient of the reflectance prior evaluated at the current warped coordinates. It is noted that the gradient values are computed via central-differences when constructing the prior and are interpolated at runtime. It is further noted that re-computing the gradients at runtime from scratch is an expensive operation. The approach taken here is usually sufficient (but compare Lucas-Kanade parametric image alignment).
Finally, in similar manner, a solution for the global appearance change parameters is obtained that takes the form:
Σi=1 n(J a T J a)Δa=−Σ i=1 n J a T δr i, where J a =∇R(x i)[R(x i)1]
The process of linearization, solving the linear system and parameter accumulation is repeated iteratively until convergence.
-
- Discretize the world into partially overlapping rectangles, or
cells 400, as shown inFIG. 4 . In a sample embodiment, each cell may be set to 10×10 cm2. - For every cell, determine which LIDAR points are candidates to be classified as ground points. This is performed by choosing points with height estimates closest to the expected ground height. The maximum and minimum LIDAR range may be specified (e.g., 2-25 m).
- For every candidate ground point, perform a RANSAC-based plane fitting approach to determine which points belong to the ground plane based on a user-specified threshold and are thus bucketed in the grid of
cells 400.
Points that fit well into a ground plane (with normal pointing predominantly along the z-axis) are retained if they satisfy the minimum number of inliers percell 400 and are used in subsequent pose estimation. The intensity values and height values are thus stored at the corresponding XY grid position in the ground plane.
- Discretize the world into partially overlapping rectangles, or
-
- The overlap percentage between the online point cloud and the prior at the termination of the registration step.
- The percentage of points with weights greater than a threshold. The weights are determined during the registration process and correlate with errors. More specifically, the weights are obtained using the robust loss function.
- The uncertainty of the estimates, which are obtained from the optimization steps described above. The uncertainty is obtained as the (weighted) inverse of the Gauss-Newton approximation to the Hessian at the solution.
- Deviation from the provided initialization. The registration is often expected not to deviate vastly from the provided initialization.
If the pose satisfies the success criteria, the pose is accepted at 316; otherwise, the pose is discarded at 318. Live points that lie outside of the prior may be discarded. Also, optionally, coarse alignment using height only may be applied to thecells 400.
Claims (20)
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/536,895 US11493635B2 (en) | 2019-04-17 | 2019-08-09 | Ground intensity LIDAR localizer |
US18/046,789 US11852729B2 (en) | 2019-04-17 | 2022-10-14 | Ground intensity LIDAR localizer |
US18/520,416 US20240094398A1 (en) | 2019-04-17 | 2023-11-27 | Ground intensity lidar localizer |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962835207P | 2019-04-17 | 2019-04-17 | |
US16/536,895 US11493635B2 (en) | 2019-04-17 | 2019-08-09 | Ground intensity LIDAR localizer |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US18/046,789 Continuation US11852729B2 (en) | 2019-04-17 | 2022-10-14 | Ground intensity LIDAR localizer |
Publications (2)
Publication Number | Publication Date |
---|---|
US20200333466A1 US20200333466A1 (en) | 2020-10-22 |
US11493635B2 true US11493635B2 (en) | 2022-11-08 |
Family
ID=72829383
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/536,895 Active 2041-08-03 US11493635B2 (en) | 2019-04-17 | 2019-08-09 | Ground intensity LIDAR localizer |
US18/046,789 Active US11852729B2 (en) | 2019-04-17 | 2022-10-14 | Ground intensity LIDAR localizer |
US18/520,416 Pending US20240094398A1 (en) | 2019-04-17 | 2023-11-27 | Ground intensity lidar localizer |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US18/046,789 Active US11852729B2 (en) | 2019-04-17 | 2022-10-14 | Ground intensity LIDAR localizer |
US18/520,416 Pending US20240094398A1 (en) | 2019-04-17 | 2023-11-27 | Ground intensity lidar localizer |
Country Status (1)
Country | Link |
---|---|
US (3) | US11493635B2 (en) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10942519B2 (en) * | 2017-07-07 | 2021-03-09 | Autox, Inc. | System and method for navigating an autonomous driving vehicle |
US11493635B2 (en) | 2019-04-17 | 2022-11-08 | Uatc, Llc | Ground intensity LIDAR localizer |
US11619724B2 (en) * | 2019-06-26 | 2023-04-04 | Nvidia Corporation | Calibration of multiple lidars mounted on a vehicle using localization based on a high definition map |
AU2020317303B2 (en) * | 2019-07-22 | 2023-12-07 | Nec Corporation | Information processing device, data generation method, and program |
US11525697B2 (en) * | 2020-01-13 | 2022-12-13 | Near Earth Autonomy, Inc. | Limited-sensor 3D localization system for mobile vehicle |
CN112415548B (en) * | 2020-11-09 | 2023-09-29 | 北京斯年智驾科技有限公司 | Positioning method, device and system of unmanned integrated card, electronic device and storage medium |
EP4001965A1 (en) * | 2020-11-17 | 2022-05-25 | Volvo Truck Corporation | Lidar localization using optical flow |
CN113238247B (en) * | 2021-03-30 | 2023-08-29 | 陈岳明 | Laser radar-based robot positioning navigation method, device and equipment |
US20240219557A1 (en) * | 2021-04-26 | 2024-07-04 | Neural Propulsion Systems, Inc. | MOVING APERTURE LiDAR |
CN115248428B (en) * | 2021-04-28 | 2023-12-22 | 北京航迹科技有限公司 | Laser radar calibration and scanning method and device, electronic equipment and storage medium |
US11614527B2 (en) * | 2021-06-21 | 2023-03-28 | Cyngn, Inc. | Self-adaptive liDAR-camera synchronization system |
US20220413146A1 (en) * | 2021-06-25 | 2022-12-29 | The Florida International University Board Of Trustees | Systems and methods for terrain mapping using lidar |
CN113723568B (en) * | 2021-09-30 | 2024-10-29 | 中国电子科技集团公司第五十四研究所 | Remote sensing image characteristic point elevation acquisition method based on multiple sensors and sea level |
US20230294726A1 (en) * | 2022-03-18 | 2023-09-21 | Nvidia Corporation | Sensor data based map creation and localization for autonomous systems and applications |
CN115082532B (en) * | 2022-05-12 | 2024-03-29 | 华南理工大学 | Ship collision prevention method for river-crossing transmission line based on laser radar |
CN115267724B (en) * | 2022-07-13 | 2023-08-29 | 浙江大学 | Position re-identification method of mobile robot capable of estimating pose based on laser radar |
CN115267796B (en) * | 2022-08-17 | 2024-04-09 | 深圳市普渡科技有限公司 | Positioning method, positioning device, robot and storage medium |
CN115761174B (en) * | 2022-11-18 | 2024-05-03 | 河海大学 | Laser radar-based embankment service life monitoring method and system and electronic equipment |
CN117095061B (en) * | 2023-10-20 | 2024-02-09 | 山东大学 | Robot pose optimization method and system based on point cloud strength salient points |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170200273A1 (en) * | 2016-01-12 | 2017-07-13 | Mitsubishi Electric Research Laboratories, Inc. | System and Method for Fusing Outputs of Sensors Having Different Resolutions |
US9875557B2 (en) * | 2012-11-05 | 2018-01-23 | The Chancellor Masters And Scholars Of The University Of Oxford | Extrinsic calibration of imaging sensing devices and 2D LIDARs mounted on transportable apparatus |
US20190266779A1 (en) * | 2018-02-27 | 2019-08-29 | Nvidia Corporation | Analysis of point cloud data using polar depth maps and planarization techniques |
US20190387185A1 (en) * | 2018-06-13 | 2019-12-19 | Luminar Technologies, Inc. | Thermal imager with enhanced processing |
US20190385025A1 (en) * | 2018-06-18 | 2019-12-19 | Zoox, Inc. | Sensor obstruction detection and mitigation using vibration and/or heat |
US20200103920A1 (en) * | 2018-10-02 | 2020-04-02 | Ford Global Technologies, Llc | Stationary camera localization |
US10627512B1 (en) * | 2018-11-29 | 2020-04-21 | Luminar Technologies, Inc. | Early fusion of lidar return data with camera information |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11493635B2 (en) | 2019-04-17 | 2022-11-08 | Uatc, Llc | Ground intensity LIDAR localizer |
-
2019
- 2019-08-09 US US16/536,895 patent/US11493635B2/en active Active
-
2022
- 2022-10-14 US US18/046,789 patent/US11852729B2/en active Active
-
2023
- 2023-11-27 US US18/520,416 patent/US20240094398A1/en active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9875557B2 (en) * | 2012-11-05 | 2018-01-23 | The Chancellor Masters And Scholars Of The University Of Oxford | Extrinsic calibration of imaging sensing devices and 2D LIDARs mounted on transportable apparatus |
US20170200273A1 (en) * | 2016-01-12 | 2017-07-13 | Mitsubishi Electric Research Laboratories, Inc. | System and Method for Fusing Outputs of Sensors Having Different Resolutions |
US20190266779A1 (en) * | 2018-02-27 | 2019-08-29 | Nvidia Corporation | Analysis of point cloud data using polar depth maps and planarization techniques |
US20190387185A1 (en) * | 2018-06-13 | 2019-12-19 | Luminar Technologies, Inc. | Thermal imager with enhanced processing |
US20190385025A1 (en) * | 2018-06-18 | 2019-12-19 | Zoox, Inc. | Sensor obstruction detection and mitigation using vibration and/or heat |
US20200103920A1 (en) * | 2018-10-02 | 2020-04-02 | Ford Global Technologies, Llc | Stationary camera localization |
US10627512B1 (en) * | 2018-11-29 | 2020-04-21 | Luminar Technologies, Inc. | Early fusion of lidar return data with camera information |
Non-Patent Citations (7)
Title |
---|
Barsan, "Learning to localize using a lidar intensity map", In Conference on Robot Learning, (Oct. 2018), 605-616. |
Castorena, Juan, "Ground-Edge-Based LIDAR Localization Without a Reflectivity Calibration for Autonomous Driving", IEEE Robotics and Automation Letters, vol. 3(1), (2018), 344-351. |
Levinson, Jesse, "Robust vehicle localization in urban environments using probabilistic maps", Robotics and Automation (ICRA), 2010 IEEE International Conference on. IEEE, (2010), 4372-4378. |
Levinson, Jesse, "Towards fully autonomous driving: Systems and algorithms", 2011 IEEE Intelligent Vehicles Symposium (IV) Baden-Baden, Germany,, (Jun. 2011), 6 pgs. |
Sivaraman, Sayanan, "Looking at vehicles on the road: A survey of vision-based vehicle detection, tracking, and behavior analysis", IEEE Transactions on Intelligent Transportation Systems, vol. 14, No. 4, (Dec. 2013), 23 pgs. |
Wan, Guowei, "Robust and precise vehicle localization based on multi-sensor fusion in diverse city scenes", IEEE International Conference on Robotics and Automation, (2018), 4670-4677. |
Wolcott, Ryan W, "Robust LIDAR localization using multiresolution Gaussian mixture maps for autonomous driving", The International Journal of Robotics Research, 36(3), (2017), 292-319. |
Also Published As
Publication number | Publication date |
---|---|
US11852729B2 (en) | 2023-12-26 |
US20200333466A1 (en) | 2020-10-22 |
US20230071784A1 (en) | 2023-03-09 |
US20240094398A1 (en) | 2024-03-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11852729B2 (en) | Ground intensity LIDAR localizer | |
US12032067B2 (en) | System and method for identifying travel way features for autonomous vehicle motion control | |
CN108983781B (en) | Environment detection method in unmanned vehicle target search system | |
JP7433227B2 (en) | sensor data segmentation | |
US11790668B2 (en) | Automated road edge boundary detection | |
US11874119B2 (en) | Traffic boundary mapping | |
Javanmardi et al. | Autonomous vehicle self-localization based on abstract map and multi-channel LiDAR in urban area | |
JP2022106924A (en) | Device and method for autonomous self-position estimation | |
US20190147320A1 (en) | "Matching Adversarial Networks" | |
Alonso et al. | Accurate global localization using visual odometry and digital maps on urban environments | |
US11282164B2 (en) | Depth-guided video inpainting for autonomous driving | |
US12044535B2 (en) | Map selection for vehicle pose system | |
US10782411B2 (en) | Vehicle pose system | |
上條俊介 et al. | Autonomous vehicle technologies: Localization and mapping | |
Hervieu et al. | Road side detection and reconstruction using LIDAR sensor | |
Christensen et al. | Autonomous vehicles for micro-mobility | |
Tian et al. | Vision-based mapping of lane semantics and topology for intelligent vehicles | |
Park et al. | Vehicle localization using an AVM camera for an automated urban driving | |
Zheng et al. | Indoor localization and trajectory correction with point cloud-derived backbone map | |
Muffert et al. | Stix-fusion: A probabilistic stixel integration technique | |
Jayasuriya et al. | Leveraging deep learning based object detection for localising autonomous personal mobility devices in sparse maps | |
WO2024036984A1 (en) | Target localization method and related system, and storage medium | |
Chipka et al. | Estimation and navigation methods with limited information for autonomous urban driving | |
CN117470258A (en) | Map construction method, device, equipment and medium | |
Zhao | Recognizing features in mobile laser scanning point clouds towards 3D high-definition road maps for autonomous vehicles |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: UBER TECHNOLOGIES, INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:HANSEN, PETER;ALISMAIL, HATEM;SIGNING DATES FROM 20190807 TO 20190808;REEL/FRAME:050013/0427 |
|
FEPP | Fee payment procedure |
Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
AS | Assignment |
Owner name: UATC, LLC, CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:UBER TECHNOLOGIES, INC.;REEL/FRAME:054461/0341 Effective date: 20201119 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT VERIFIED |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
AS | Assignment |
Owner name: AURORA OPERATIONS, INC., PENNSYLVANIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:UATC, LLC;REEL/FRAME:066973/0513 Effective date: 20240321 |