Slam: rpg_dvs_evo_open的配置问题及解决

之前处理了github上关于evo的一个demo配置,开一个新贴讲一下里面可能遇到的一些问题。
github源代码地址:
https://github.com/uzh-rpg/rpg_dvs_evo_open
环境:
Ubuntu18.04LTS+ROS Melodic

问题1

跟随getting started部分的指导一路做下来,建立新工作空间的一步因为我之前已经做过别的ROS实验,所以没太在意,导致catkin build时不通过。当时想了好久没明白怎么回事。
因为我们大部分实验都用的catkin_make,如果采用同样的空间编译build,不论其他步骤再正确也无法编译,结果全部不成功。
所以如果需要做这个实验,一定要开一个新的catkin_ws,或者说这个是自己第一个做的实验且还没有make过,才可以做其他的步骤,这点很容易被忽略

问题2

在这里插入图片描述
做到这一步的时候可能会发现,即使写了对应版本的命令,结果仍然是No such file or directory。

  • 1.需要先cd到/catkin_ws/src中
  • 2.我是通过.zip文件解压得到的文件夹,文件名为rpg_dvs_evo_open_master,不知道git clone的情况是如何。需要先把后面的master删掉,重新执行该命令即可
    (这里真的走了很大的弯路,原本以为无法执行后直接跳过到后面的build各种报错)

问题3

查看上一个命令执行的结果,可以发现中间有一行代码是无法定位的:
在这里插入图片描述
这里的libcaer-dev包是定位不到的,而且在网上查找之后也无法找到。后面看了一位博主的评论区(抱歉忘了是哪一个链接),说到这个包是作者uzh自己弄出的库,算是一个整合,实际操作时无法定位到。所以需要手动下载:

sudo apt-get install libcaer-dev

这里如果没发现而直接进行了下一步build,到13个包时会出现失败的现象:
在这里插入图片描述

问题4

这个问题未必会出现,取决于计算机的性能。在catkin build步骤内,opengv make过程中我出现了内存不足的现象,具体为:
在这里插入图片描述
如果你也有同样问题,可以参考如下解决方法建立临时的交换空间:

sudo dd if=/dev/zero of=/swapfile bs=64M count=16
#count的大小就是增加的swap空间的大小,64M是块大小,所以空间大小是bs*count=1024MB
sudo mkswap /swapfile
#把刚才空间格式化成swap格式
sudo swapon /swapfile
#使用刚才创建的swap空间

工作完成后可以去掉这部分:

swapoff -a
#详细的用法可以:swapoff --help
#查看当前内存使用情况:free -m

按照网上部分说法是必须去除,否则会引起不必要的一些问题。不过我没有这样尝试过,不多描述。

问题5

经过这个环节后陆续还会有一些小问题(直接看error即可,也可能你在build时并不会出现这些),包括:

  • tf convension
  • pcl_ros
  • fatal error: fftw3.h: No such file or directory
  • fatal error: sophus/se3.hpp: No such file or directory

对应的解决方法(一一对应):

sudo apt-get install ros-melodic-tf*
sudo apt-get install ros-melodic-pcl*
sudo apt-get install libfftw3-dev
sudo apt-get install ros-melodic-sophus

最后看到如下即成功,记得再source一下:
在这里插入图片描述


版权声明:本文为qq_43310597原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。