- 155 Views
- Uploaded on
- Presentation posted in: General

gMapping Pieter Abbeel UC Berkeley EECS

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

gMapping

Pieter Abbeel

UC Berkeley EECS

For more details, see paper: “Improved Techniques for Grid Mapping with Rao-Blackwellized Particle Filters” by Giorgio Grisetti, CyrillStachniss, Wolfram Burgard, IEEE Transactions in Robotics, 2006

TexPoint fonts used in EMF.

Read the TexPoint manual before you delete this box.: AAAAAAAAAAAAA

- gMapping is probably most used SLAM algorithm
- Implementation available on openslam.org (which has many more resources)
- Currently the standard algorithm on the PR2

- Given
- observations z1:t = z1, …, zt
- odometry measurements u2:t = u1, …, ut

- Find
- Posterior p(x1:t, m | z1:t, u2:t )
- With m a grid map

- Rao-Blackwellized Particle Filter
- Each particle = sample of history of robot poses + posterior over maps given the sample pose history; approximate posterior over maps by distribution with all probability mass on the most likely map whenever posterior is needed

- Proposal distribution ¼
- Approximate the optimal sequential proposal distribution p*(xt) = p(xt | xi1:t-1, z1:t, u1:t) / p(zt | mit-1, xt ) p(xt | xit-1, ut) [note integral over all maps most likely map only]
- 1. find the local optimum argmaxx p*(x)
- 2. sample xk around the local optimum, with weights wk = p*(xk)
- 3. fit a Gaussian over the weighted samples
- 4. this Gaussian is an approximation of the optimal sequential proposal p*

- Sample from (approximately) optimal sequential proposal

- Approximate the optimal sequential proposal distribution p*(xt) = p(xt | xi1:t-1, z1:t, u1:t) / p(zt | mit-1, xt ) p(xt | xit-1, ut) [note integral over all maps most likely map only]
- Weight update for optimal sequential proposal is p(zt | xi1:t-1, z1:t-1, u1:t) = p(zt | mit-1, xit-1, ut-1), which is efficiently approximated from the same samples as above by
- Resampling based on the effective sample size Seff

- Gaussian (EKF) approximation of odometry model from Probabilistic Robotics, pp. 121-123 [fix slide: for my edition of the book those pages describe the velocity motion model, not the odometry motion model]
- Discrete time steps (=when updates happen) correspond to whenever the robot has traveled about 0.5m
- From paper: “In general, there are more sophisticated techniques estimating the motion of the robot. However, we use that model to estimate a movement between two filter updates which is performed after the robot traveled around 0.5 m. In this case, this approximation works well and we did not observed a significant difference between the EKF-like model and the in general more accurate sample- based velocity motion model [41]”

- Find argmaxx_t p(zt | mit-1, xt) p(xt | xit-1, ut)
- p(xt | xit-1, ut) : Gaussian approximation of motion model, see previous slide
- p(zt | mit-1, xt ) : “any scan-matching technique […] can be used”
- Used by gMapping: “beam endpoint model”
More on scan-matching in separate set of slides

- Used by gMapping: “beam endpoint model”

- “Most maps generated can be magnified up to a resolution of 1cm without observing considerable inconsistencies”
- “Even in big real world datasets covering […] 250m by 250m, [..] never required more than 80 particles to build accurate maps.”
Correctness evaluated through visual inspection by non-authors