evo github address: https://github.com/MichaelGrupp/evo
Track files of different formats and mutual conversion: https://github.com/MichaelGrupp/evo/wiki/Formats
Summary of questions: https://github.com/MichaelGrupp/evo/issues?q=is%3Aissue+is%3Aclosed
1. Install evo
sudo apt install python-pip pip install evo --upgrade --no-binary evo
There was a problem:
Could not install packages due to an EnvironmentError: [Errno 13] Permission denied: '/usr/lib/python2.7/dist-packages/dateutil/relativedelta.pyc' Consider using the `--user` option or check the permissions.
Solve:
pip install evo --upgrade --no-binary evo --user
2, test
cd ~/alan_dataset/EuRoC/mav0/state_groundtruth_estimate0 evo_traj euroc data.csv --plot
Problems:
name: data infos: 19753 poses, 91.747m path length, 98.760s duration /usr/lib/python2.7/dist-packages/matplotlib/font_manager.py:273: UserWarning: Matplotlib is building the font cache using fc-list. This may take a moment. warnings.warn('Matplotlib is building the font cache using fc-list. This may take a moment.') [ERROR] Unhandled error in evo.main_traj Traceback (most recent call last): File "/home/jinshan.lan/.local/lib/python2.7/site-packages/evo/entry_points.py", line 90, in launch main_module.run(args) File "/home/jinshan.lan/.local/lib/python2.7/site-packages/evo/main_traj.py", line 342, in run from evo.tools.plot import PlotMode File "/home/jinshan.lan/.local/lib/python2.7/site-packages/evo/tools/plot.py", line 36, in <module> import mpl_toolkits.mplot3d.art3d as art3d File "/usr/lib/python2.7/dist-packages/mpl_toolkits/__init__.py", line 2, in <module> __import__('pkg_resources').declare_namespace(__name__) File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 2927, in <module> @_call_aside File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 2913, in _call_aside f(*args, **kwargs) File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 2940, in _initialize_master_working_set working_set = WorkingSet._build_master() File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 637, in _build_master return cls._build_from_requirements(__requires__) File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 650, in _build_from_requirements dists = ws.resolve(reqs, Environment()) File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 834, in resolve raise VersionConflict(dist, req).with_context(dependent_req) ContextualVersionConflict: (numpy 1.11.0 (/usr/lib/python2.7/dist-packages), Requirement.parse('numpy>=1.12.0'), set(['pandas'])) [ERROR] evo module evo.main_traj crashed - no logfile written (disabled)
Solve:
pip install numpy --upgrade --user
Operation result:
3. Convert the ground structure in the form of. csv file into the track file in the form of TUM
evo_traj euroc data.csv --save_as_tum
Track file format in the form of TUM:
8 numbers per line, separated by spaces, including time stamp (unit: Second), position and rotation (four elements)
timestamp x y z q_x q_y q_z q_w
4. Multi track display (track not aligned)
(a) above, convert the ground structure (. CSV file) of mhdifficult sequence in the EuRoC data set to a track file in the form of TUM, named data.tum
(b) get the track file in the form of TUM by running the MH ﹣ 04 ﹣ difficult data set with the name of frametrajectory ﹣ TUM ﹣ format.txt
See: Orb? Slam2 &? VI? Orbslam related (? alan?)
Put the track files in the form of two tums into the same folder (test? Evo)
cd ~/Desktop/test_evo evo_traj tum FrameTrajectory_TUM_Format.txt --ref=data.tum -p
Operation result:
5. Calculate the absolute pose error (track alignment)
evo_ape tum data.tum FrameTrajectory_TUM_Format.txt -va --plot
Operation result:
Reference resources:
Zhihu: a practical tool for evaluating parameters of SLAM system
Using the evo tool to evaluate the results of VI ORB SLAM2 on EuRoC