从KITTI的readme文件中https://github.com/yanii/kitti-pcl/blob/master/KITTI_README.TXT可以看到GPS数据的格式,KITTI中的IMUS数据文件存在oxts文件夹下,以txt格式保存。 GPS数据在IMU文件中的前三组,分别是 lat(latitude)维度,lon(longitude)经度和alt(altitude) 海拔,只可以通过topic发布出去,但无法可视化。 通过Jupyter可以查看其中的GPS数据:
在ros中定义的GPS Meassage格式为:sensor_msgs/NavSatFix.msg 可通过以下链接了解详情: http://docs.ros.org/api/sensor_msgs/html/msg/NavSatFix.html
使用ROS发布GPS Message需要以下结构:
首先从sensor_msgs.msg 中引入NavSatFix 将GPS定义为NavSatFix()类型的函数建立Header header纬度[度],正赤道以北; float64 latitude经度[度],正数在本初子午线的东部,负的是西。 float64 longitude海拔高度[m]. WGS 84坐标系椭球面的上方为正. float64 altitudePublish_utils.py
from sensor_msgs.msg import Imu,NavSatFix def publish_gps(gps_pub,imu_data): gps = NavSatFix() gps.header.stamp = rospy.Time.now() gps.header.frame_id = FRAME_ID gps.latitude = imu_data.lat gps.longitude = imu_data.lon gps.altitude = imu_data.alt gps_pub.publish(gps) kitti.py gps_pub = rospy.Publisher('kitti_gps', NavSatFix ,queue_size=10) publish_gps(gps_pub,imu_data)可以通过下面命令查看发布的GPS话题: rosnode list rostopic list rostopic info /kitti_gps rostopic echo /kitti_gps