Evaluating SLAM trajectory with evo tool

Keywords: Programming github pip sudo Python

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.


pip install evo --upgrade --no-binary evo --user

2, test

cd ~/alan_dataset/EuRoC/mav0/state_groundtruth_estimate0
evo_traj euroc data.csv --plot


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
  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>
  File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 2927, in <module>
  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)


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

Posted by Belleanme on Sat, 09 Nov 2019 07:53:57 -0800