To evaluate vS-Graphs against other Visual SLAM systems (e.g., ORB-SLAM3), follow the steps below:
Run generate_kf_pose_txt_files.py to store estimated robot poses (based on the KeyFrames). Make sure that you set proper configuration parameters beforehand in the config.yaml file. The script will create a .txt file and populate it with pose data:
python [workspace]/src/visual_sgraphs/evaluation/generate_kf_pose_txt_files.pyLaunch vS-Graphs and play the ros2 bag file. Pose data will be recorded automatically into the generated .txt file during execution.
Once both ground-truth (such as LiDAR S-Graphs) and estimated poses (the generated .txt file) are ready, use evo to compute Absolute Pose Error (APE):
evo_ape tum [gt_pose].txt [vs_graphs_pose].txt -va > results.txt --plot --plot_mode xyvS-Graphs uses .osa files to store maps. These files are saved by default in your ROS_HOME directory (~/.ros/).
- To load a saved map, set the
System.LoadAtlasFromFileparameter in your SLAM settings YAML file. โ ๏ธ If no.osafile is available, comment out theSystem.LoadAtlasFromFileparameter to avoid runtime errors.
- Option 1: Enable
System.SaveAtlasToFilein the SLAM settings file. The map will be automatically saved when you shut down the ROS node. - Option 2: Manually trigger a save using the following ROS service:
rosservice call /vs_graphs/save_map [file_name]Use the following ROS services to save maps and trajectories during or after running vS-Graphs:
- To save the current SLAM map to
~/.ros/[file_name].osauserosservice call /vs_graphs/save_map [file_name]. - To exports the estimated trajectories use
rosservice call /vs_graphs/save_traj [file_name]