For Gmapping, you need to have odometry and laser messages. You can fuse any position sensor or information with Gmapping. But if you use a sensor/s, you have to calculate the position of the sensor/s using an odometry model. Then publish it as odometry. Make sure you have a correct tf tree.