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

Robot localization - any minimum sensor requirements ?

asked 2017-03-01 14:41:41 -0500

Jasmin gravatar image

updated 2017-03-01 14:45:11 -0500

Will the package work fine with the most broken sensors?

Well I'm asking because I had a GPS giving noisy data , a very precise IMU with embeded filters and a very basic IMU giving noisy data.

I first fused the good IMU data with gps and had good results , but when switching to the second one I had a weird but expected behaviour , the estimated trajectory was rotated with an increasing angle.

Any way I know that I was not very precise describing the exact ammounts and the output I 've got but the point is: Is there any minimum requirements for the sensors ? , Position error for GPS ? Exact orientation ?!

I really want to hear from you guys about the sensors you have used , the good and the bad ones ... and if kalman filters are able to encounter the error when fusing noisy data? And if playing with some parameters will help when using bad sensors?

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted

answered 2017-03-02 09:32:59 -0500

Nicholash Bedi gravatar image

updated 2017-03-02 11:24:49 -0500

It doesn't matter how accurate your sensor is if you adjust you covariance matrix for each sensor accordingly. If your covariance matrix has values indicating that the noise in the sensor is smaller than it actually is than you will get odd behavior. I once had two sensors which had more noise than the covariance matrices allowed. This resulted in the robot jumping between the two poses from the two sensors.

That being said, while robot localization doesn't care about how accurate your sensors are, robot localization can only be as accurate as the information you are giving it. If you need accuracy within +/- 5cm than you are going to need a sensor or combination of sensors that are at-least that accurate. If you are fusing noisy GPS data with noisy IMU data you are going to get strange readings.


In response to the comments. Generally the process_noise_covariance and the initial_estimate_covariance default values found on the git repo should work fine.

If the sensor covariances are unknown do not set them to zero. This will make them trust the sensors too much. Instead, take a guess, try it out and modify them accordingly.If you want the robot localization to trust one sensor more decrease the covariance or vise versa.

edit flag offensive delete link more


Thanks for your answer! do you mean the sensors messages covariance or also the process_noise_covariance and initial_estimate_covariance? In sensor msg do [-1.0, 0.0 ...] mean ignore this data and what if it is unknown [ 0.0, ... 0.0] ? is there any default values that the package uses?

Jasmin gravatar image Jasmin  ( 2017-03-02 10:54:18 -0500 )edit

And what is the "maximum allowed noise" ? Do I have to use perfect sensors for perfect results, or I can make some magical combinations? For example, many researchers have fused gps and IMU with kalman filters in order to correct the GPS data it self.

Jasmin gravatar image Jasmin  ( 2017-03-02 11:05:16 -0500 )edit

I mean the combination output should be ,at least, more accurate than the most bad sensor.

Jasmin gravatar image Jasmin  ( 2017-03-02 11:07:00 -0500 )edit

I have edited my answer to respond to your comments

Nicholash Bedi gravatar image Nicholash Bedi  ( 2017-03-02 11:25:07 -0500 )edit

Thanks, it's much better now. What about the sensor's data covariances , For instance the drivers I'm using for IMU and GPS give a [0.0 ... 0.0] covariances. And I don't really know from where to get the real ones depending on the sensors, is there any common values that will work fine?

Jasmin gravatar image Jasmin  ( 2017-03-03 01:50:32 -0500 )edit

Is there any procedure to set the covariance based on the sensor's accuracy and data sheet? and what are the allowed values?

Jasmin gravatar image Jasmin  ( 2017-03-03 01:56:03 -0500 )edit

If you have the data sheet for your sensor, using the values given therein is preferred. Many sensors will state accuracy as +/- N, but it's not always clear what that represents, e.g., if it's one standard deviation (in which case you can just square that value).

Tom Moore gravatar image Tom Moore  ( 2017-03-03 04:57:30 -0500 )edit

Question Tools



Asked: 2017-03-01 14:41:41 -0500

Seen: 1,009 times

Last updated: Mar 02 '17