Mapping Why Mapping?
Total Page:16
File Type:pdf, Size:1020Kb
Mapping Why Mapping? Learning maps is one of the fundamental problems in mobile robotics Maps allow robots to efficiently carry out their tasks, allow localization … Successful robot systems rely on maps for localization, path planning, activity planning etc. The General Problem of Mapping What does the environment look like? The General Problem of Mapping The problem of robotic mapping is that of acquiring a spatial model of a robot’s environment Formally, mapping involves, given the sensor data, d {u1, z1,u2 , z2 ,,un , zn} to calculate the most likely map m* arg max P(m | d) m Mapping Challenges A key challenge arises from the measurement errors, which are statistically dependent Errors accumulate over time They affect future measurement Other Challenges of Mapping The high dimensionality of the entities that are being mapped Mapping can be high dimensional Correspondence problem Determine if sensor measurements taken at different points in time correspond to the same physical object in the world Environment changes over time Slower changes: trees in different seasons Faster changes: people walking by Robots must choose their way during mapping Robotic exploration problem Factors that Influence Mapping Size: the larger the environment, the more difficult Perceptual ambiguity the more frequent different places look alike, the more difficult Cycles cycles make robots return via different paths, the accumulated odometric error can be huge The following discussion assumes mapping with known poses Mapping vs. Localization Learning maps is a “chicken-and-egg” problem First, there is a localization problem. Errors can be easily accumulated in odometry, making it less certain about where it is Methods exist to correct the error given a perfect map Second, there is a mapping problem. Constructing a map when the robot’s poses are known is relatively easy When robots need to do both: Simultaneous localization and mapping (SLAM) Our discussion here describes how to calculate a map given we know the pose of the vehicle Occupancy Grid Mapping Occupancy grid mapping addresses the problem of generating consistent maps from noisy and uncertain measurement data, assuming robot pose is known Basic idea: represent map as a field of random variables, arranged in an evenly spaced grid Each variable is binary or a probability, corresponding to the degree of occupancy of the location it covers Occupancy grid mapping algorithms implement approximate posterior estimation for those random variables Basic Idea Sense and create a local map Move a little Record change in position, orientation Sense and create a local map Fuse/tile together Integrate local map Global Move D Local map map Observations The “Move D” and “Integrate local map” are the hard part Integration requires accurate measurement of D (on order of inches and <=5 degrees) Black Is ground Truth, Purple is Measured Using shaft Encoders Solutions? GPS? Ignore localization errors? Topological maps? Artificial landmarks? Match the raw sensor data to a priori map? In the end, the approach remains the same: iconic (more popular, occupancy grid, sensor model, theory of evidence) feature-based (better suited for topological map building) Key Questions to Address Sensor Error Models: How does robot accurately interpret noisy range and encoder data? Localization: How does robot take noisy sensor data and a partial map, and determine its own most likely position? Map Making: How does robot build up a map from incremental sensor data? Exploration: How does robot travel to ensure that all of the environment is explored and incorporated into the map? Sensor Models Need sensor model to deal with uncertainty Methods for generating sensor models: Empirical (i.e., through testing) Analytical (i.e., through understanding of physical properties) Subjective (i.e., through experience) Modeling Common Sonar Sensor The field of view is projected onto a regular grid, called occupancy grid. R: maximum range it can detect; β is the field of view Sonar Tolerance Sonar range readings have resolution error Thus, specific reading might actually indicate range of possible values E.g., reading of 0.87 meters actually means within (0.82, 0.92) meters Therefore, tolerance = 0.05 meters Tolerance gives width of Region I Tolerance in Sonar Model How to Convert to Numerical Values? Need to translate model to specific numerical values for each occupancy grid cell Three methods: Bayesian Dempster-Shafer Theory HIMM (Histogrammic in Motion Mapping) We will still use: Bayesian Probabilities for Occupancy Grids For each grid[i][j] covered by sensor scan: Compute P(Occupied|s) and P(Empty|s) For each grid element, grid[i][j], store a tuple of the two probabilities: Converting Sonar Reading to Probability: Region I Converting Sonar Reading to Probability: Region II Example: What is the value of a grid cell? Conditional Probabilities Note that previous calculations gave: P(s|H), not P(H|s) Thus, use Bayes Rule: P(s|Occupied) and P(s|Empty) are known from sensor model P(Occupied) and P(Empty) are unconditional, prior probabilities (which may or may not be known) If not known, okay to assume P(Occupied) = P(Empty) = 0.5 Returning to Example Let’s assume we’re on Mars, and we know that P(Occupied) = 0.75 P(Empty|s=6) = P(Occupied|s=6) = Updating with Bayes Rule How to fuse multiple readings? First time: Each element of grid initialized with a priori probability of being occupied or empty Subsequently: Use Bayes’ rule iteratively Probability at time tn-1 becomes prior and is combined with current observation at tn: Example See work on board Exploration The act of moving through an unknown environment while building a map that can be used for subsequent navigation. Exploration Key question: where hasn’t robot been? Central concern: given what you know about the world, where should you move to gain as much new information as possible Possible approaches: Random walk Use proprioception to avoid areas that have been recently visited Exploit evidential information in the occupancy grid Two basic styles of exploration: Frontier-based Generalized Voronoi graph Frontier-Based Exploration The central idea: To gain the most new information about the world, move to the boundary between open space and uncharted territory Frontiers are regions on the boundary between open and unexplored space By moving to successive frontiers, the robot can constantly increase its knowledge of the world Brian Yamauchi’s Method Use evidence grids as the spatial representation, similar to sensor modeling After an evidence grid has been constructed, each cell is classified by: open: occupancy prob. < prior prob. unknown: occupancy prob. = prior prob. occupied: occupancy prob. > prior prob. A process analogous to edge detection and region extraction in computer vision is used to find the boundaries between open and unknown spaces. Example Navigating to Frontiers Once frontiers are detected, the robot attempts to navigate to the nearest accessible, unvisited frontier. The path planner uses a depth-first search on the grid Example Example, Continue Another Possible Navigation Once frontiers are found, we can control the robot to head towards centroid of Frontier Calculating Centroid Centroid is average (x, y) location Motion Control Based on Frontier Exploration Robot calculates centroid Robot navigates using: Move-to-goal and avoid-obstacle behaviors Or, plan path and reactively execute the path Or, continuously replan and execute the path Once robot reaches frontier, map is updated and new frontiers (perhaps) discovered Continue until no new frontiers remaining Movies of Frontier-Based Exploration from Dieter Fox https://www.cs.washington.edu/ai/Mobile_Robotics/projects/mapping/allen-animations/allen-explore.avi GVG Methods for Exploration Robot builds generalized Voronoi graph (GVG) as it moves through world As robot moves, it attempts to maintain a path that is equidistant from all objects it senses (called “GVG edge”) When robot comes to gateway, randomly choose branch to follow, remembering the other edge(s) When one path completely explored, backtrack to previously detected branch point Exploration and backtracking continue until entire area covered Example of GVG Exploration Another Example Keep Moving, Ignoring Difficult Places Reaches Deadend at 9, Backtracks Go Back, Catching Missed Areas Summary Map making: converts local sensor observations into global map, independent of robot position Occupancy grid: 2-D array, most common data structure for mapping Use probabilistic sensor models and Bayesian methods to update occupancy grid Raw sensory data (especially odometry) is imperfect Two types of localization: iconic, feature-based Two types of exploration strategies: frontier-based and GVG.