1.创建ros工作空间
$ mkdir -p ~/catkin_ws/src
$ cd ~/catkin_ws/src
$ catkin_init_workspace
$ cd ~/catkin_ws/
$ catkin_make
$ source devel/setup.bash
添加程序包到全局路径
$ echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
$ source ~/.bashrc
PS:可以根据自己的情况选择ros工作空间的位置
2.安装第三方包
(1)安装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
(2)安装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
运行SVO可以不装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
(4)安装 vikit
$ cd catkin_ws/src/SVO
$ git clone https://github.com/uzh-rpg/rpg_vikit.git
(5)安装ROS依赖
$ sudo apt-get install ros-kinetic-cmake-modules
#kinetic是我ros的版本,可以换成自己的
(6)下载svo
$ cd catkin_ws/src/SVO
$ git clone https://github.com/uzh-rpg/rpg_svo.git
(7)编译svo
$ cd ~/catkin_ws/ # 进入ros工作空间
$ catkin_make #执行后会在catkin_ws /build和/devel 生成相应文件
3.用ROS跑SVO程序
(1)运行节点管理器
$ roscore
(2)另外新建一个命令窗口,通过加载准备好的 .launch文件启动SVO
要切换到svo_ros目录下
$ cd ~/catkin_ws
$ source devel/setup.bash
$ roscd /svo_ros
$ roslaunch svo_ros test_rig3.launch
(3)新建一个窗口启动rviz
$ rosrun rviz rviz -d <PATH TO rpg_svo>/svo_ros/rviz_config.rviz #改成相应自己的路径
直接运行rosrun会出现Rviz: fixed frame [world] does not exist,出现错误的原因是没有设定世界坐标,因此将命令修改为:
rosrun rviz rviz -d <PATH TO rpg_svo>/svo_ros/rviz_config.rviz tf static_transform_publisher 0 0 0 0 0 0 1 map my_frame 10
在原来命令的基础上加上tf static_transform_publisher 0 0 0 0 0 0 1 map my_frame 10。
(4)下载数据集: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
参考文献
1.ROS下安装和运行SVO详细过程
2.ROS理解roslaunch命令
3.ROS的安装、卸载以及Turtlebot包的安装