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

Revision history [back]

click to hide/show revision 1
initial version

rtabmap uses only the following minimal parameters from the message:

  • stamp
  • longitude
  • latitude
  • altitude

If the position_covariance is not set, it will use a 10 meters error by default.

Reference https://github.com/introlab/rtabmap_ros/blob/f748a671841be68698e3b702619e594bf62d74b0/src/CoreWrapper.cpp#L2290-L2305:

double error = 10.0;
if(gpsFixMsg->position_covariance_type != sensor_msgs::NavSatFix::COVARIANCE_TYPE_UNKNOWN)
{
    double variance = uMax3(gpsFixMsg->position_covariance.at(0), gpsFixMsg->position_covariance.at(4), gpsFixMsg->position_covariance.at(8));
    if(variance>0.0)
    {
        error = sqrt(variance);
    }
}
gps_ = rtabmap::GPS(
        gpsFixMsg->header.stamp.toSec(),
        gpsFixMsg->longitude,
        gpsFixMsg->latitude,
        gpsFixMsg->altitude,
        error,
        0);