准备工作:
- 安装Sophus(这个库是维护的比较好的一个李群和李代数的库)
注: 其实你在运行其他版本的slam系统的时候大概率已经安装过,不过这里面执行一下,无伤大雅,也不会搞乱你的系统。
#catkin_ws 是自己创建的ROS工作空间,在之前的博客里面也有创建ROS工作空间教程
cd catkin_ws/src/SVO #后面源代码拷贝到这个目录下,所以将svo需要的库也放在这里面
git clone https://github.com/strasdat/Sophus.git
cd Sophus
git checkout a621ff
mkdir build
cd build
cmake ..
make
2. 安装Fast(用于Fast角点提取的一个库)
cd catkin_ws/src/SVO
git clone https://github.com/uzh-rpg/fast.git
cd fast
mkdir build
cd build
cmake ..
make
3. 安装g2o(一个非线性优化库,也和sophus一样,你大概率已经安装过,可选,但建议安装,至于环境变量,其实无需设置,执行完下面的命令即可)
cd catkin_ws/src/SVO
git clone https://github.com/RainerKuemmerle/g2o.git
cd g2o
mkdir build
cd build
cmake ..
make
sudo make install
4. 安装vikit(这个其实是视觉开发工具包,vision kit,尤其是pcl非常依赖这个库,强烈建议安装。但有时候不同的版本适配不同的slam系统。svo可以使用下面的安装方式)
cd catkin_ws/src/SVO
git clone https://github.com/uzh-rpg/rpg_vikit.git
5. ROS的依赖项(主要是cmake-modules,我用的Ubuntu的版本是Ubuntu16.04+ros-kinetic)我之前并没有安装这个依赖项,发生了很多cmake-modules的问题,解决方式也很粗暴,找不到cmake-modules,那我就去对应的CMakeLists.txt删掉对cmake-modules的依赖,结果竟然编译运行成功了。)但为了以防万一,还是建议安装下面的依赖项。
sudo apt-get install ros-indigo-cmake-modules
#indigo是我ros的版本,可以换成自己的,比如我的是kinetic,那就执行
//sudo apt-get install ros-kinetic-cmake-modules
SVO编译运行:
安装和编译
## 下载
cd catkin_ws/src/SVO
git clone https://github.com/uzh-rpg/rpg_svo.git
## 编译
cd ~/catkin_ws/ # 进入ros工作空间
catkin_make #执行后会在catkin_ws /build和/devel 生成相应文件
note:
##在这里要注意下,opencv的版本时3.x的。我用的是opencv3.2的版本,如果报了关于opencv的错误,记得修改CmakeLists.txt,
把
#findpackage(opencv required)
修改为:
#findpackage(opencv 3 required)
用ROS测试标准数据集
1、首先是数据集下载,强烈推荐分段续传的方式进行数据集下载,数据集较大,约1.7G,分段续传方式很快:
wget -c rpg.ifi.uzh.ch/datasets/airground_rig_s3_2013-03-18_21-38-48.bag
## 下载到catkin_ws目录下就可以
2、打开新的终端
cd catkin_ws
source devel/setup.bash
roslaunch /home/<用户名>/catkin_ws/src/SVO/rpg_svo/svo_ros/launch/test_rig3.launch
3、打开新的终端
rosrun rviz rviz -d /home/<用户名>/catkin_ws/src/SVO/rpg_svo/svo_ros/rviz_config.rviz
4、打开新的终端,运行数据集
cd catkin_ws
rosbag play airground_rig_s3_2013-03-18_21-38-48.bag
然后就运行成功了~~~~
5、下一步打算运行在自己的usb摄像头下,奈何才疏学浅,一直未能成功,还望大佬多多指教,在此感激不尽................