上次提到使用激光里程计跑kitti,不同的算法验证问题,由于我电脑跑的实在是太慢了,有时候东西开多了甚至连轨迹都跑不完整,更别说建图了,不过总算成功跑通了,换不同的多跑了几次,才想起来还要验证算法体现在轨迹上的效果,因此开始安装evo。
版本:ubuntu20.04+noetic,matplotlib3.7版本(稍后解释)
正常情况下,使用指令
pip install evo --upgrade --no-binary evo
即可正常安装,然而我的电脑出现报错:“pip” command not found
说明电脑缺少pip功能,我也很好奇按理说用了这么久应该已经有了,所以要先看一下自己的python版本和pip版本:
1. cd /usr/bin #进到python可执行目录
2. ll -a|grep python3 #查看python3的版本
3. ll -a|grep pip3 #查看pip3的版本
以上查看方式引自博客:pip和python版本查看
我的python版本为python3.8,但是没有pip,因此需要先把pip安装一下,并且查看是否安装成功:
sudo apt install python-pip ##安装pip
python3 -V ##查看py
pip3 -V ##查看pip
安装成功后,我在github上下载了evo包并解压到自己的文件夹中(我的是工作目录):
github上的evo地址 由于好多朋友(我也是)经常git不上,所以我选择去官网直接下载。。。。
下载后,进入evo-master目录下,输入:
pip install evo --upgrade --no-binary evo
此时,我出现了报错,一般的warning不太影响,但是注意其中一条Error(Error可不行!!)提示:我的matplotlib版本为3.1.7(很久之前学ros时候安装的),需要版本为3.4以上的,因此我直接使用:
sudo apt-get upgrade ##注意!如果没需求没必要全部更新,很慢
不小心把我安装的包都更新了一遍(尴尬,都更新了一遍也没更新到matplotlib),于是针对的去更新matplotlib:
sudo pip install -U matplotlib
更新完成后,再次使用指令安装evo:
pip install evo --upgrade --no-binary evo
即可安装成功,安装后有的小伙伴们会发现,使用不了evo,不论使用什么指令都提示找不到,看了一篇博客,发现只需要重启一下虚拟机就好(重启!YYDS!)
参考博客:evo用不了的问题
最后是evo的使用命令,我个人感觉有点长有点恶心,于是做了一个例子,如下:
evo_rpe kitti ground_truth.txt laser_odom.txt -r trans_part --delta 100 --plot --plot_mode xyz
但是这样会发现找不到文件,因为路径不对,可以根据你的工作路径来调整比如:../ground**
我的工作路径被我搞得很复杂,一直敲..眼花缭乱,我直接去copy了两个轨迹文件的路径,放到了ground_truth.txt的前面(包括后面laser_odom.txt),不多说了,如下:
evo_rpe kitti /home/u/slam_lidar/src/02-lidar-odometry-basic/src/lidar_localization/slam_data/trajectory/ground_truth.txt /home/u/slam_lidar/src/02-lidar-odometry-basic/src/lidar_localization/slam_data/trajectory/laser_odom.txt -r trans_part --
delta 100 --plot --plot_mode xyz
给纯小白一点点提醒:空格和“-”要小心,输错了会一直提示你a expected argument这类的,经过我不断试探,发现是指令格式不对,但是还好你输错了他会提示:usage:**,告诉你怎么用,小白建议无脑粘贴,毕竟工作的重点不在这。
成功进行评测,如下图:
总结:基于evo评测工具,对使用NDT方法的激光里程计跑完kitti的轨迹,进行了评测,并记录了期间遇到的一些问题。
EVO工具使用时的参考博客(大佬讲的很清楚,赞!):EVO工具的安装和使用
一起学习一起进步,如有任何疑问和不足,欢迎指正!