转载请说明出处:
http://blog.csdn.net/zhubaohua_bupt/article/details/53841614
///////////////////////////////////////////////////////////////////
REMODE+SVO编译运行方法。
///////////////////////////////////////////////////////////////////
**************************************************************************************************
编译部分
**************************************************************************************************
在编译之前,首先确保你已经安装ROS,以及显卡能否安装CUDA(http://blog.csdn.net/zhubaohua_bupt/article/details/53838091)
1:下载编译SVO
1.1 找一个地方新建工程
mkdir REMODE_SVO&&cd REMODE_SVO mkdir -p catkin_ws/src cd catkin_ws/src
1.2 下载SVO
git clone https://github.com/pizzoli/rpg_svo.git
1.3 配置SVO的一些依赖
为了整洁,把这些第三方依赖 放在一个新建的workspace文件夹内,和catkin_ws同目录
cd .. mkdir workspace&&cd workspace
1.3.1 下载并编译Sophus库
git clone https://github.com/strasdat/Sophus.git cd Sophus git checkout a621ff mkdir build cd build cmake .. make cd ../../
1.3.2 下载并编译Fast库
git clone https://github.com/uzh-rpg/fast.git cd fast mkdir build cd build cmake .. make cd ../../
1.3.3 下载并编译g2o库
首先安装一些g2o的依赖项
apt-get libeigen3-dev libsuitesparse-dev libqt4-dev qt4-qmake libqglviewer-qt4-dev git clone https://github.com/RainerKuemmerle/g2o.git cd g2o mkdir build cd build cmake .. make sudo make install cd ../../
1.3.4 下载 rpg_vikit
cd catkin_ws/src git clone https://github.com/uzh-rpg/rpg_vikit.git
1.3.5 安装ROS 依赖
sudo apt-get install ros-<版本>-cmake-modules
我的是indigo,若显示已安装则跳过该步骤即可
1.4 开始编译SVO
cd .. 现在我们在catkin_ws目录下 catkin_make
至此, svo安装完毕
2 下载并编译rpg_open_remode
2.1 配置rpg_open_remode的依赖
为了方便,rpg_open_remode的依赖也放到编译SVO时新建的workspace
2.1.1 安装googletest
首先安装依赖
sudo apt-get install libopencv-dev libeigen3-dev libboost-filesystem-dev
开始安装googletest
cd workspace git clone https://github.com/google/googletest.git cd googletest git checkout release-1.7.0 mkdir build && cd build cmake .. make cd .. mkdir install cp -r include install cp build/*.a install cd ../../../
2.1.2 安装英伟达CUDA工具包,见我的另一篇博客 http://blog.csdn.net/zhubaohua_bupt/article/details/53838091
2.2 编译 rpg_open_remode
cd catkin_ws/src git clone https://github.com/uzh-rpg/rpg_open_remode.git cd .. source devel/setup.sh catkin_make -DGTEST_ROOT=$MY_WORKSPACE/googletest/install -DBUILD_ROS_NODE=ON
至此,编译结束
**************************************************************************************************
运行部分
**************************************************************************************************
注意 1
SVO和REMODE可以是独立的工程,但他们也可以一块运行,SVO为REMODE提供帧间位姿。
他们之间是靠ros节点通信的,经过上述联合编译,REMODE会生成一些用于通讯的节点(可执行程序),在
~/catkin_ws/devel/lib/rpg_open_remode目录下。
注意 2
设置本工程的环境变量
echo source PATH/catkin_ws/devel/setup.sh >> ~/.bashrc
source ~/.bashrc
下面给出一个运行例子:
下载图像包:http://rpg.ifi.uzh.ch/datasets/px4_2_fly_over_debris.bag
以下每句指令都要新打开一个终端,一共要打开5个终端。
1 开启ros
roscore
2 运行SVO
roslaunch svo_ros px4_2.launch
3 运行REMODE
roslaunch rpg_open_remode px4_2.launch
4 打开显示
rosrun rviz rviz -d $MY_CATKIN_WORKSPACE/src/rpg_open_remode/open_remode.rviz
5 把数据集跑起来
rosbag play $path_imgdata/px4_2_fly_over_debris.bag
执行完第五5步,就可以看到运行效果了。
当然,也可以把2、3节点些在一个launch文件里,这样只需要打开4个终端就行了。
launch文件格式参考我的另一篇博客ROS节点与运行