ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Revision history [back]

If I collect samples while the robot moves at a constant speed, will all samples be close to the mean?

It depends on how noisy the sensor is, but that's exactly what you're trying to determine.

Will the values in the covariance matrix then be very small?

Maybe! If so, that's good news for you.

If the robot moved equal distances in all directions and back to it's starting position will the mean for each variable be zero?

When the direction of the robot changes (e.g., forward-to-backward, or forward-to-left), I think you'll need to "reset" your collection, as you'll have a new mean. For example, if you drive forward and you get a mean of N m/s, then drive backward with the same velocity, your new mean should be around -N m/s. Unless the sensor is better in one direction than another, though, you may not need to do this.

Taking a step back, is the true covariance matrix constant?

Again, that depends on the sensor. I would expect the covariance to be in some way proportional to the velocity in this case, so that the faster you go, the greater the error in your measurement, but don't take my word for it.

What's a typical workflow for determining covariance matrix values?

I can't speak to that, really, but I can speak to the trade-off between under- and over-estimating the covariance. If you make it too low, you're going to trust those measurements more than you should, and the filter output will more rapidly converge, but it will potentially be less accurate, and the velocity output may appear to be as noisy as the input. If you over-estimate, it will take longer to converge, but the velocity output will be "smoother".