Hw3-6 "Ground truth" robot has noise too

Using @berthy424's excellent GUI display, I watched my particles chase the robot around the screen. But then I noticed the "ground truth" robot wasn't moving that smoothly. The ground truth robot has just as much noise as the particles. The "ground truth" robot is using the same distance_noise and steering_noise parameters as the particles. Why is that? I thought the noise in the particles was (at least partly) to introduce randomness in the process, so that the particles could find the real robot.

But the real robot doesn't need noise to find itself; it's right there. Why is it moving so noisily?

asked 10 Mar '12, 00:31

Anne%20Paulson's gravatar image

Anne Paulson
9.5k327698
accept rate: 39%

edited 10 Mar '12, 00:31


2 Answers:

When the robot move, it is subjected to external disturbances that results in noise in steering and distance. These disturbances are modeled as noise here. For example, steering noise may due to bumps on the road, and distance noise may due to tire slipping on the road.

Because the motion model of the particle and the ground truth should match, therefore the particles' motion model would include these noise as well. The ground truth contains noise not because the particles have noise; rather it is the other way around.

link

answered 10 Mar '12, 01:10

David%20Zhang's gravatar image

David Zhang
4.3k112343

edited 10 Mar '12, 01:11

But the motion model of the particle and the ground truth shouldn't necessarily match. If the robot car were perfect, we would still need noise in the particles, because noise is important for the algorithm.

Look at it this way: suppose the car was just sitting there doing nothing. We would definitely need to move the particles; otherwise we might just as well run the filter only once, because we'd never improve our location.

We put noise in the particles because once we've run the filter one cycle, we've found pretty good particles, but we can't make them better without randomly moving them around some.

(10 Mar '12, 11:37) Anne Paulson Anne%20Paulson's gravatar image

the measurement noise is important, but not the movement noise.

if the robot is perfectly still, the measurement will triangulate the non-moving particles to the same spot. in this case the particles will be moved by the measurement.

(10 Mar '12, 16:27) David Zhang David%20Zhang's gravatar image

If we don't have movement noise, we aren't going to get better particles. The movement noise is what nudges a good particle into being a better particle.

(10 Mar '12, 16:38) Anne Paulson Anne%20Paulson's gravatar image

Try it. Compare your particle filter with and without movement noise, see which one is better. Remember what happens when we tried localizing the robot using histogram filter? The probability of the true robot position goes up when there were no movement uncertainty. The same intuition carry over here. Compare this to the Kalman filter. The movement noise is optional but measurement noise is necessary.

Think about what happens if you take your claim to the limit. If the movement noise is so big that it dominates the actual movement, the particles are then uniformly distributed around the domain after each movement. Intuitively, do you believe having noise is better than no noise?

(11 Mar '12, 03:17) David Zhang David%20Zhang's gravatar image

I agree with Anne Paulson here. If you didn't have any movement noise, then all copies of particle A would be identical to particle A, so you could never improve upon A...you could only select it and keep it. No?

I did try it in the code. If the initial guess is way off, the particles do not seem to converge very fast (without movement noise), although this also happens with noise, so it's hard to do enough runs to know if measurement noise truly helps.

If anyone else can explain the intuition regarding how variation in particles is generated without movement noise, I would be interested to hear it.

(12 Mar '12, 01:02) smokesilver smokesilver's gravatar image

@smokesilver
You're right that there is no movement noise then eventually all particles will converge on a single point, and in effect the filter will neglect any future measurements. This is called "filter divergence". This can be dealt with during the resampling step, where instead of repopulating the particules about the ones that has the highest weight, you populate them randomly centered about the highest weight particle. This is essentially what the movement noise is doing, by randomly distributing the particles centered about the highest weight particle. So basically what we're debating here is philosophically which way to do this is correct, using random movement noise or randomly resample about the highest weight particles, since the end-effect is the same.

(12 Mar '12, 01:12) David Zhang David%20Zhang's gravatar image

We're applying our particle filter to a simulation of a robot. In order to make that robot simulation a bit more realistic, we inject noise into its movements. In hw3-6 both the filter's prediction (transition model) noise and the noise of the simulated motion have the same statistics, but I don't think they need to be the same. I don't have a good intuition of how wildly the statistics of the real (in this case simulated) motion noise and the transition model noise can differ before the filter stops performing adequately.

link

answered 10 Mar '12, 17:37

aigakusei's gravatar image

aigakusei
314

edited 10 Mar '12, 17:38

Your answer
Question text:

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text](http://url.com/ "Title")
  • image?![alt text](/path/img.jpg "Title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported

Tags:

×5,185
×183
×37

Asked: 10 Mar '12, 00:31

Seen: 350 times

Last updated: 12 Mar '12, 01:12