本工具可将目前主流的激光雷达-惯性里程计(例如FAST-LIO2、PV-LIO和Point-LIO等)生成的点云和轨迹数据转换为interactive_slam所需的地图格式,并且可以进行点云合并等操作。interactive_slam是一个非常优秀的半自动地图优化工具。
Yihao Xu 许益豪, Xin Li 李鑫, Zhongxia Zhao 赵仲夏
在Ubuntu 18.04+ROS Melodic的虚拟机纯净环境中测试,安装过程中可能会遇到的问题如下
ros自带的PCL库即可,然后安装一些依赖
sudo apt-get install ros-{填入ros版本,例如melodic}-pcl-ros
Eigen按照以下命令安装
sudo apt-get install libeigen3-dev
主要用于可视化界面
按照以下命令安装
sudo apt-get install libglm-dev libglfw3-dev
主要用于interactive_slam地图
源码安装g2o
git clone https://github.com/RainerKuemmerle/g2o.git
cd g2o
mkdir build
cd build
cmake ../
make
sudo make install
安装g2o过程中可能会遇到cmake版本过低的问题
CMake 3.14 or higher is required. You are running version 3.10.2
实测升级为cmake 3.20.0即可
安装g2o过程中可能会遇到filesystem头文件相关问题,实测将gcc和g++升级为gcc-9和g++-9即可
运行过程中可能会无法找到g2o部分库(例如libg2o_stuff.so),需要在文件/etc/ld.so.conf中添加以下路径
/usr/local/lib
然后运行以下命令
sudo ldconfig
创建build文件夹
mkdir build
每次编译运行脚本compile.sh
./compile.sh
运行脚本run.sh
./run.sh
所有参数可以在run.sh输入的./config/config.json文件中进行修改 例如
{
// true代表从rosbag文件中读取里程计数据,false代表从里程计文件夹中读取里程计数据
"from_rosbag": true,
// rosbag路径
"bag_path": "/xx/xxx.bag",
// 里程计文件夹路径
"odom_directory": "/xx/xxx",
// 降采样分辨率
"downsample_resolution": 0.1,
// false代表不降采样,true代表降采样
"is_downsample": false,
// 关键帧距离差,单位“米”
"keyframe_delta_x": 10,
// 关键帧角度差,单位“度”
"keyframe_delta_angle": 90,
// 融合关键帧数量n,注意是前后各取n帧,所以实际融合数量为n * 2
"friends_num": 20,
// 0代表保存为interactive slam地图, 1代表保存为站点地图
"save_mode": 0,
// 存地图路径
"save_path": "/yy/yyy"
}
rosbag格式、里程计文件夹格式和地图格式见wiki
运行脚本interactive_interface.sh
./interactive_interface.sh
可视化界面具体操作见wiki