安装的ros版本若是“full”,则是自带opencv,无需自己重新安装,但是在系统中找不到这个opencv
建议在安装之前下载好数据集,PCL1.8,这两个下载非常慢
PCL1.8 下载地址
RGBDSLAM数据集下载(bag版本)
mkdir -p ~/robot_ws/src
cd ~/catkin_ws
catkin_make
这里的文件夹随便自己如何建立,最好是全英文路径,~代表自己的路径,因此在复制代码时,注意将此改为自己的路径。同时您也可以手动打开文件夹,在文件夹内运行终端,这样可以避免路径出错
cd ~/robot_ws/src
git clone https://github.com/felixendres/rgbdslam_v2
如果之前安装过g2o则需要卸载,安装作者自己改动过的g2o.
删除g2o的头文件,位于/usr/local/include/g2o下.
sudo rm -r /usr/local/include/g2o
删除g2o的库文件,位于/usr/local/lib下.
sudo rm -r /usr/local/lib/libg2o*
删除g2o的可执行文件,位于/usr/local/bin下.
sudo rm -r /usr/local/bin/g2o*
sudo apt-get install libsuitesparse-dev
eigen只包含头文件,没有要编译或链接的二进制lib
cd ~
wget http://bitbucket.org/eigen/eigen/get/3.2.10.tar.bz2
注:若上述方法行不通,可直接在CSDN下载压缩包,若压缩包下载需要积分可以在淘宝中找代替下载,并解压后命名为eigen.
cd ~/robot_ws/src
git clone https://github.com/felixendres/g2o.git
cd ~/robot_ws/src/g2o
mkdir ~/robot_ws/src/g2o/build
cd ~/robot_ws/src/g2o/build
gedit ~/robot_ws/src/g2o/CMakeLists.txt
将其中的第251行的
SET(G2O_EIGEN3_INCLUDE ${EIGEN3_INCLUDE_DIR} CACHE PATH "Directory of Eigen3")
替换为:
SET(G2O_EIGEN3_INCLUDE "<自己的路径>/eigen" CACHE PATH "Directory of Eigen3")
注意:将自己的路径替换上去
如果上一步出错,则编译将失败.
cd ~/robot_ws/src/g2o/build
cmake ../
make
sudo make install
可以先下载好,直接拷贝进文件夹
cd ~
wget https://github.com/PointCloudLibrary/pcl/archive/pcl-1.8.0.tar.gz
tar -xvzf pcl-pcl-1.8.0.tar.gz
我们需要用c++2011支持来编译pcl,因为我们将用c++2011支持来编译rdbgslam,如果不这样做,rgbdslam将在启动时出错。
默认安装在Ubuntu16.04上的PCL1.7库不支持c++2011编译。
cd ~/pcl-pcl-1.8.0
gedit CMakeLists.txt
将以下内容添加到CMakeLists.txt的第146行(在endif()之后)
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
cd ~/pcl-pcl-1.8.0
mkdir build
cd build
cmake ../
为了确认C++支持PCL,运行
make VERBOSE=1
如果编译过程中出现了"-stdc++11",那证明成功了,“-std=c++11"也可以。如果没有出现,那么应该就是修改CMakeList时出了问题。使用crtl+C打断编译过程.
sudo make install
cd ~/robot_ws/src/rgbdslam_v2
gedit CMakeLists.txt
找到第79行
find_package(PCL 1.7 REQUIRED COMPONENTS common io)
修改为:
find_package(PCL 1.8 REQUIRED COMPONENTS common io)
cd ~/robot_ws/src/rgbdslam_v2/external/SiftGPU
sudo apt-get install libglew-dev
sudo apt-get install libdevil1c2 libdevil-dev
make
sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock
cd ~/robot_ws
gedit src/rgbdslam_v2/CMakeLists.txt
第六行加入:
add_compile_options(-std=c++11)
最低部加入:
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
编译:
cd ~/robot_ws
catkin_make
$ echo "source ~/robot_ws/devel/setup.bash" >> ~/.bashrc$
source ~/.bashrc
下载数据集:
cd ~
mkdir bag-data
cd ~/bag-data
wget http://vision.in.tum.de/rgbd/dataset/freiburg1/rgbd_dataset_freiburg1_xyz.bag
修改 rgbdslam_v2 的 launch文件 rgbdslam.launch 中的 图像topic.
<param name="config/topic_image_mono" value="/camera/rgb/image_color"/>
<param name="config/topic_image_depth" value="/camera/depth/image"/>
打开一个终端:
$ roscore
打开一个终端:
roslaunch rgbdslam rgbdslam.launch
打开一个终端:
cd ~/bag-data
rosbag play rgbd_dataset_freiburg1_xyz.bag