sudo apt-get install cmake
sudo apt-get install git
sudo apt-get install g++
sudo apt-get install libglew-dev
sudo apt-get install libboost-dev libboost-thread-dev libboost-filesystem-dev
sudo apt-get install libpython2.7-dev
1)从gitHub上面下载Pangolin包到本地
git clone https://github.com/stevenlovegrove/Pangolin.git
2)进入Pangolin文件夹,创建build文件夹
cd Pangolin
mkdir build
cd build
3)cmake
cmake -DCPP11_NO_BOOSR=1 ..
4)编译Pangolin资源文件
sudo make -j8
sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
$ cd ~/opencv
$ mkdir build
$ cd build
$ cmake -D CMAKE_BUILD_TYPE=Release –D CMAKE_INSTALL_PREFIX=/usr/local ..
$ make –j8
$ sudo make install
$ sudo apt-get install libeigen3-dev
$ git clone https://github.com/raulmur/ORB_SLAM2.git ORB_SLAM2
$ cd ~/catkin_ws/src/ORB_SLAM2
#修改build.sh文件权限
$ chmod +x build.sh
$ ./build.sh
1)如果需要在ROS环境下运行ORB_SLAM,我们需要通过对build_ros.sh文件进行编译,具体步骤如下所示:
1.继续在当前中终端进行权限修改
chmod +x build_ros.sh
2)添加环境变量,添加到 .bashrc文件尾部
gedit ~/.bashrc
export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:~/home/se/catkin_ws/src/ORB_SLAM2/Examples/ROS
3)编译 build_ros.sh文件
./build_ros.sh
运行完的结果,显示出现问题
出错原因为:libboost_system.so 与libboost_filesystem.so找不到链接目录
解决:
①查看boost_system和boost_filesystem的具体位置
locate boost_system
locate boost_filesystem
②然后再对应路径 /usr/lib/x86_64-linux-gnu下的上述文件,并将libboost_system.so和libboost_system.so.1.58.0与libboost_filesystem.so和libboost_filesystem.so.1.58.0一起复制到ORB_SLAM2/lib路径下
4)将ORB_SLAM2/Examples/ROS/ORB_SLAM2下的Cmakelists.txt中加入库目录
找到set()函数,并在该函数中添加如下代码:
${PROJECT_SOURCE_DIR}/../../../lib/libboost_filesystem.so
${PROJECT_SOURCE_DIR}/../../../lib/libboost_system.so
./build_ros.sh
1)进入ros工作空间,并下载usb_cam
cd ~catkin_ws/src
git clone https://github.com/bosch-ros-pkg/usb_cam.git
2)返回catkin_ws目录下编译
cd ..
ctakin_make
source ./devel/setup.bash
4)创建usb_cam编译文件夹并编译
cd src/usb_cam
mkdir build
cd build
cmake ..
make -j8
5)修改usb_cam launch文件权限
6)修改配置文件的相机节点
①在路径为:ros/src/ORB_SLAM2/Examples/ROS/ORB_SLAM2/src下的ros_mono.cc文件,如下所示:
②修改ros_mono.cc文件的内容,将相机节点修改为usb_cam/image_raw。
③再次编译ORB_SLAM2的build_ros.sh文件
chmod +x build_ros.sh
./build_ros.sh
可以看到我们修改文件的节点更新了。
所有的配置基本到此结束。
先连接摄像头
roslaunch usb_cam usb_cam-test.launch
rosrun ORB_SLAM2 Mono /home/se/catkin_ws/src/ORB_SLAM2/Vocabulary/ORBvoc.txt /home/se/catkin_ws/src/ORB_SLAM2/Examples/ROS/ORB_SLAM2/Asus.yaml
抱着自己的笔记本电脑在家里慢慢的走一圈,我们就可以看到左边窗口的相机会移动,右边窗口在捕捉RGB!一定要缓慢移动。(需要等待多时,相机才会捕捉)
有TUM、KITTI、EuRoC三种数据集,本实验使用TUM数据集,从http://vision.in.tum.de/data/datasets/rgbd-dataset/download下载序列并解压缩。
1)通过以下链接,下载TMU数据集,
http://vision.in.tum.de/data/datasets/rgbd-dataset/download
1)创建Data文件夹
2)将下载好的数据集通过传输软件上传至该文件夹下面并提取文件到此处
$ ./Examples/Monocular/mono_tum Vocabulary/ORBvoc.txt Examples/Monocular/TUMX.yaml PATH_TO_SEQUENCE_FOLDER
其中PATH_TO_SEQUENCE_FOLDER为数据集的存储路径,并将tumx.yaml与下载的数据集对应,比如TUM1.yaml,TUM2.yaml 和TUM3.yaml 分别对应 freiburg1, freiburg2 和 freiburg3。
运行效果图如下所示,图中左侧窗口中的蓝色小方块为提取的图像ORB特征,右侧窗口显示了环境的稀疏地图和相机的运动轨迹。