1. 运行自己的数据集
基于GitHub - thien94/orb_slam3_ros: A ROS implementation of ORB_SLAM3代码运行的自己的数据集,一开始使用的使用的是docker‘Ubuntu20.04使用Docker运行ORB_SLAM3-优快云博客’,但是docker里面显示轨迹不知道为什么没有图片显示,最后换回没有使用docker的环境,直接创建工作空间,在工作空间创建src,再catkin build,例如:
mkdir -p ORBSLAM3/src
catkin build
orb_slam3_ros/launch/ntuviral_mono.launch更改一下话题和配置文件,我的Mono.yaml是复制其它配置文件更改的,在源文件基础上更改也行,注意参数:
2. 保存轨迹
orb_slam3_ros/src/ros_mono.cc文件添加:
// Save camera trajectory
pSLAM->SaveKeyFrameTrajectoryEuRoC("/Trajectory/ORB-SLAM3-KeyFrameTrajectory.txt");
// Save camera trajectory
pSLAM->SaveTrajectoryEuRoC("/Trajectory/ORB-SLAM3-FrameTrajectory.txt");
保存完之后重新编译工作空间:
catkin clean
catkin build
3. evo绘制轨迹图
再次运行之后生成的是txt文件,绘制的时候遇到numpy和scipy版本冲突的问题,升级scipy版本解决。
因为运行的是自己的数据集,没有真实的轨迹位姿,所以只是evo_traj绘制了一下轨迹。
3.1 evo_traj
主要用于画轨迹图、表格,转换数据格式等等操作。
输出轨迹的相关信息:
evo_traj tum a.txt
轨迹的图形可视化:
evo_traj tum a.txt -p
3.2 evo_ape
用于评估两条轨迹的绝对位姿误差。
evo_ape xxx a.txt b.txt
3.3 evo_rpe
用法该命令用于比较两个轨迹之间的相对轨迹误差。
evo_rpe xxx a.txt b.txt
详细evo使用参考:
Home · MichaelGrupp/evo Wiki · GitHub
SLAM测评工具---evo安装与使用_evo slam-优快云博客
4. 保存地图
4.1 osa文件格式
保存.osa文件,在yaml前面取消注释:
#System.SaveAtlasToFile: "Session_MH01_MH02_MH03_Mono"
运行时加载osa后缀的地图文件,在yaml前面取消注释:
#System.LoadAtlasFromFile: "Session_MH01_MH02_MH03_Mono"
4.2 pcd文件格式
保存.pcd文件:
参考:
视觉学习笔记4——ORB-SLAM3的地图保存与使用_orbslam3保存地图-优快云博客
ORB SLAM3 点云地图保存_orb-slam3保存点云-优快云博客
【ORB_SLAM3】Ubuntu20.04 ros运行并保存PCD地图文件_ros2加载pcd-优快云博客
Ubuntu18.04:ORB-SLAM3使用数据集构建地图和保存点云地图_orbslam3保存pcd点云图-优快云博客