1. 声明:
a.本文主要针对IMU&GPS融合定位仿真环境的搭建过程进行讲解,而没有对具体原理的介绍
b.本人作为技术小白,完全参考了https://zhuanlan.zhihu.com/p/152662055的内容(其对环境的搭建讲的较少),对原理感兴趣的童鞋可以参考;若搭建环境的过程中遇到任何问题,也随时欢迎与本人交流。
先放一张运行结果:
2. 知识准备:
a.电脑装有ubuntu系统,
b.已经安装了ROS何Eigen库,了解ROS的基本使用,并已经创建了工作空间catkin_ws
参考博文:https://blog.csdn.net/qinqinxiansheng/article/details/106768491
3. 环境搭建及代码下载:
a.安装GPS驱动
为了能够让程序读取GPS数据,需要安装nmea_navsat_driver,下载链接:https://github.com/ros-drivers/nmea_navsat_driver
将下载好的压缩包解压catkin_ws/src文件夹下(如果直接下载,其名字会是nmea_navsat_driver-master,记得把-master去掉,否则会影响后续程序运行)
把它作为一个功能包进行编译,具体做法为在catkin_ws路径下运行命令
catkin_make
b.安装nmea_msgs
安装nmea_msgs的原因是我在运行程序的过程中提示找不到nmea_msgs,具体原因我也不清楚orz
下载并编译nmea_msgs,做法与nmea_navsat_driver类似,也要放到catkin_ws/src目录下
附下载链接:https://github.com/ros-drivers/nmea_msgs
c.下载IMU&GPS融合定位源码
它本质上也是一个ROS的功能包,解压后放到catkin_ws/src目录编译
下载链接:https://github.com/ydsf16/imu_gps_localization
d.下载仿真需要的数据集
官方下载链接:https://epan-utbm.github.io/utbm_robocar_dataset/
百度网盘链接:链接:https://pan.baidu.com/s/1S6SebTcRsIvmHSZllahQJg 提取码:5dic
建议下载这一个.bag,可以改成简单的名字
4. 运行:
a.打开ros master
终端输入:
roscore
b.运行数据集
在数据集文件的目录下新打开一个终端,运行
rosbag play database.bag
(一定要注意终端的路径,否则找不到.bag文件)
运行成功后,他会发布很多topic信息,具体类型可以命令进行查询:
rosbag info database.bag
c.运行IMU&GPS定位程序
roslaunch imu_gps_localization imu_gps_localization.launch