When using the Microstrain IMU/GPS sensor is is important to understand the quality of the navigation estimate being reported. The figures below illustrate initialization of the GPS and the onboard estimation filters, a Kalman filter that combines the GPS and IMU information. In the images below the Microstrain sensor is mounted on the Pioneer.
- At t=0.0 the sensor is powered on while the Pioneer is stationary outside the CAVR lab.
- From t=0.0 to roughly t=4:20, the Pioneer is stationary
- At roughly t=4:20 the Pioneer is driving around in the small operational area
The GPS information is published on the
gps/fix topic as a NavSatFix ROS message. This message includes the 3x3 position covariance matrix and information about the status of the GPS fix. The status message is documented here: http://wiki.ros.org/microstrain_3dm_gx5_45#Nav_Status_message_description
The time series record below shows the following:
- It takes roughly 1 minute for the GPS receiver to get a valid fix.
- The fix status of 30 means that the horizontal and vertical information is valid.
- The fix quality in the original location has a standard deviation of roughly 1 m. When we start driving around (after t=4 min) the fix quality gets a fair bit better, with sub-meter standard deviation.
The figure below shows the navigation estimate qualities for the same time period. We can make the following observation:
- The Kalman filter starts initializing (status = 3) after it gets a valid GPS fix at t=1 min.
- The filter does not converge (status = 2) until after we start moving the Pioneer. This is because while the robot is stationary, the GPS doesn't provide any information about the heading of the vehicle. Only when it is moving, and the GPS fix is changing, does the GPS fix provide any information about orientation.
- With a valid GPS fix the reported horizontal standard deviation is less than 1 m, often less than 50 cm.
If you are having navigation problems, it is worthwhile to check the status of both the GPS fix and the Kalman filter status provided by the Microstrain sensor. You should expect to have a valid GPS fix and a valid filter estimate and you should expect the reported covariance for the filter estimate to be less than 1 m.
Getting a valid GPS fix and filter estimate takes significant time, so it may be necessary to drive the Pioneer around after starting the robot to make sure the navigation is valid.
If this is not the case, you can reset the Kalman filter with the
reset_kf service provided by the Microstrain driver. You can also power cycle the sensor to force it to restart. If you do this you may need to restart the software driver with