I'm working on a more realistic robot simulation in preparation for possibly building a robot that does localization. I'm having trouble adapting the measurement probability algorithm from the simple lecture/homework examples to more realistic ones.
In the unit3 lecture we measured the distance to each landmark. In the homework 3.5 we measured bearing to each landmark. What I imagine is more realistic for a robot with a rotating distance sensor is to get pairs of bearing, distance measures. Writing code to take a number of bearing and distance measurements to each landmark that is in range is straight forward. I'm having trouble comparing the actual measurement from the robot with each of the particle's sense data. There are two problems
1) coming up with a single goodness measure or probability because angle and distance are very different quantities. My only guess here is that a geometric mean should be used rather than an arithmetic mean.
2) the bigger problem is deciding which angle distance pairs in the actual measurement to compare with which angle distance pairs in the particle measurement. The problem is that the landmarks have no known identity. In the lecture and homework in all cases we knew the identity of the landmark. I don't think that is very realistic at least not for the simple robot I'm thinking of building.
The robot sensed 3 landmarks and the particle sensed 2. Should I compare Robot and particle measurements as 0 - 0, 1 - 1, 2 - or 0 - , 1 - 0, 2 - 1 or ...
Even in later material like SLAM we assume we can identify the landmarks. Identifying the landmarks seems to be a major problem that isn't covered. In general what is done?
I was thinking of building a robot without a camera to keep it simple but in either case I need more knowledge to get localization working.
Any help or pointers would be appreciated.
asked 30 Mar '12, 18:15
I think the thing to realize is that you are never absolutely certain that you have correctly correlated your observations to actual landmarks. There will always be some potential for error in your correlation process (even if there there barcodes stamped on each landmark). Pick a method which incorporates these errors into your predictions.
For graph slam the method I described in a prior post was to use a particle filter for your robot position, and include an Omega and Xi instance for each particle. Then you can choose the "best fit" mapping for the observations based on each particle's pose estimate. Yes, this dramatically increases the amount of work being done, but it allows you to grade and resample your particles based on the quality of the Omega matrix estimate (Omega^-1 is a covariance matrix).
answered 30 Mar '12, 21:06
That is definitely a huge problem that I guess was deemed out of scope for this class. What I have seen in the past is the Expectation-Maximization (EM) algorithm to estimate correspondences for landmarks which are modelled as Gaussians, but I'm sure there are several others. That method is described in prof. Thrun's book!
answered 30 Mar '12, 18:39