一、安装SVO
Step1: 安装Sophus
#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
Step2 : 安装Fast
cd catkin_ws/src/SVO
git clone https://github.com/uzh-rpg/fast.git
cd fast
mkdir build
cd build
cmake ..
make
Step3 : 安装g2o (可选,一般还是装上吧)
cd catkin_ws/src/SVO
git clone https://github.com/RainerKuemmerle/g2o.git
cd g2o
mkdir build
cd build
cmake ..
make
sudo make install
如果你已经安装了g2o, 你可以设置环境变量G2O_ROOT,不需要重新安装
export G2O_ROOT=$HOME/installdir
Step4 : 安装vikit
cd catkin_ws/src/SVO
git clone https://github.com/uzh-rpg/rpg_vikit.git
Step5 : 安装ROS依赖项
sudo apt-get install ros-indigo-cmake-modules
#indigo是我ros的版本,可以换成自己的
Step6 : 安装SVO
cd catkin_ws/src/SVO
git clone https://github.com/uzh-rpg/rpg_svo.git
Step7 : 编译SVO
cd ~/catkin_ws/ # 进入ros工作空间
catkin_make #执行后会在catkin_ws /build和/devel 生成相应文件
二、 用ros跑下载好的svo数据
Step1 : 运行节点管理器
roscore
Step2 : 另外新建一个命令窗口,通过加载准备好的 .launch文件启动SVO
roslaunch svo_ros test_rig3.launch
Step3 : 新建一个窗口启动rviz
rosrun rviz rviz -d <PATH TO rpg_svo>/svo_ros/rviz_config.rviz #改成相应自己的路径
Step4:下载数据集:rpg.ifi.uzh.ch/datasets/airground_rig_s3_2013-03-18_21-38-48.bag
进入下载好的数据集路径下,运行下面命令:
rosbag play airground_rig_s3_2013-03-18_21-38-48.bag
大功告成
三 、ros用自己的摄像头实施跑
参考官网的文章: https://github.com/uzh-rpg/rpg_svo/wiki/Run-SVO-with-ROS
Step1 : 首先,自己写一个launch文件用于启动svo_ros, 我的是直接在live.launch文件中改了一点参数
value=”/usb_cam/image_raw” :改成自己发布主题的名字
my_camera.yaml 相机标定参数。
<launch>
<node pkg="svo_ros" type="vo" name="svo" clear_params="true" output="screen">
<!-- Camera topic to subscribe to -->
<param name="cam_topic" value="/usb_cam/image_raw" type="str" />
<!-- Camera calibration file -->
<rosparam file="$(find svo_ros)/param/my_camera.yaml" />
<!-- Default parameter settings: choose between vo_fast and vo_accurate -->
<rosparam file="$(find svo_ros)/param/vo_fast.yaml" />
<!-- Initial camera orientation, make it point downwards -->
<param name="init_rx" value="3.14" />
<param name="init_ry" value="0.00" />
<param name="init_rz" value="0.00" />
</node>
</launch>
Step2 :
1. roscore #开启内核
2. cd catkin_ws/src/usb_cam/launch #进入安装相机驱动的地方
3. roslaunch my_cam.launch #打开相机
4. roslaunch svo_ros svo.launch #svo.launch 是我自己写的launch文件
5. rosrun rviz rviz -d /home/hm/catkin_ws/src/SVO/rpg_svo/svo_ros/rviz_config.rviz
6. rosrun rqt_svo rqt_svo
如果显示NOT CONNECTED 在SVO Namespace 填入svo
点Start 运行结果如下 :
一开始初始化的时候相机要朝下,自己实时跑svo感觉相机稍微快一点就会丢(可能它的数据集做了什么优化),也可能是我相机 内参没有标定好。