ORB-SLAM2编译安装运行
ORB-SLAM2编译安装运行
- 准备工作及软件版本说明
操作系统 :Ubuntu 16.04
ROS版本 :kinetic
eigen库版本 :3.2.10
OpenCV版本:opencv3.3.1
USB摄像头:640*480,30帧
注意事项:如果要使用USB摄像头运行ORB-SLAM2,不能使用虚拟机,否则会出现摄像头打开一片绿屏或者黑屏的现象。eigen库如果用3.3.4的话 编译ORB-SLAM2时候会出现错误或者警告。 - 安装ROS-kinetic
不管是roswiki还是各种博客,ros的安装都已经有特别多的教程和解决办法,这里不再赘述。 - 安装ORB-SLAM2
3.1 创建ros工程
使用ros创建workspace,在根目录打开终端,
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/
catkin_make
mkdir ORB-SLAM2
添加环境变量
echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc
3.2 安装必备软件
3.2.1 安装git、cmake
sudo apt-get install git cmake
3.2.2 安装一些库
sudo apt-get install libblas-dev liblapack-dev
3.2.3 安装Pangolin
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
sudo apt-get install build-essential
cd ~/catkin_ws/ORB-SLAM2
git clone https://github.com/stevenlovegrove/Pangolin.git
cd Pangolin
3.2.4 编译安装Pangolin
mkdir build
cd build
cmake -DCPP11_NO_BOOST=1 ..
make
3.2.5 安装OpenCV及其依赖
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install ros-kinetic-opencv3
3.2.6 安装eigen库
下载Eigen,进入到在解压后的Eigen文件夹下(例如eigen-eigen-07105f7124f9)
下载地址:http://eigen.tuxfamily.org/index.php?title=Main_Page
(注意:请下载3.2.10版本,如果用3.3.x版本可能会造成ORB-SLAM2编译失败,因为eigen3.3.4版本修改了文件目录结构)
mkdir build
cd build
cmake ..
make
sudo make install
3.2.7 下载ORB_SLAM2
cd ~/catkin_ws/src/ORB_SLAM2
git clone https://github.com/raulmur/ORB_SLAM2.git ORB_SLAM2
编译安装:
cd ORB_SLAM2
chmod +x build.sh
vim build.sh
把build.sh的make -j改成make(这是为了防止多线程编译出错)。
运行build.sh。
./build.sh
3.2.8 编译安装ROS版本的ORB-SLAM2
cd ORB_SLAM2
chmod +x build_ros.sh
vim build_ros.sh
注意:同样把build_ros.sh的make -j改成make(这是为了防止多线程编译出错)。
./build_ros.sh
(注意:如果在编译构建的过程中出现关于boost库的错误,要到/Examples/ROS/ORB-SLAM2/CMakeLists.txt文件下修改 加上 -lboost_system)
如下:
set(LIBS
${OpenCV_LIBS}
${EIGEN3_LIBS}
${Pangolin_LIBRARIES}
${PROJECT_SOURCE_DIR}/../../../Thirdparty/DBoW2/lib/libDBoW2.so
${PROJECT_SOURCE_DIR}/../../../Thirdparty/g2o/lib/libg2o.so
${PROJECT_SOURCE_DIR}/../../../lib/libORB_SLAM2.so
#加上这一句
-lboost_system
)
3.2.9 修改环境变量(user就是用户名)
在.bashrc里添加环境变量
export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:/home/(user)/catkin_ws/ORB-SLAM2/Examples/ROS
3.2.10 安装rospackge-usb_cam
由于使用USB摄像头作为图像输入,需要将图像信息作为topic发送出去,ROS官网提供了usb_cam的package,我们只需要安装即可。
sudo apt-get install ros-kinetic-usb_cam
我们测试一下usb摄像头,首先开个新的终端,运行roscore(如果显示命令没有找到就说明的你没有source source /opt/ros/kinetic/setup.bash)
在运行该节点之前,需要先配置一下节点参数,打开usb_cam/launch文件中的的launch文件,我这里只需要该设备号即可,笔记本电脑自带的摄像头一般是video0,插入usb摄像头一般是video1,若想看usb摄像头是哪个端口号,可cd到根目录中的dev文件夹下查看。
roscd usb_cam
cd launch
sudo vi usb_cam-test.launch
把里面的video0改为你使用的接口保存退出即可。
修改这一句:
<param name="video_device" value="/dev/video0" />
3.3 修改ORB_SLAM2中的ros
修改~/catkin_ws/src/ORB_SLAM2/Examples/ROS/ORB_SLAM2/src/ros_mono.cc第64行,原来接收的摄像头数据话题名称为“/camera/image_raw”,改为usb_cam发出的“/usb_cam/image_raw”,然后重新在终端“./build_ros”编译。
4. 运行ORB_SLAM2
开三个终端,依次分别运行
roscore
roslaunch usb_cam usb_cam-test.launch
rosrun ORB_SLAM2 Mono /home/(user)/catkin_ws/src/ORB_SLAM2/Vocabulary/ORBvoc.txt /home/(user)/catkin_ws/src/ORB_SLAM2/Examples/Monocular/EuRoc.yaml
运行时首先是建图,刚开始先不要动。过一段时间后慢慢移动摄像头可以看到正在建图,有点云数据输出后,完成。
上一篇: RESTful API
下一篇: 再谈MysqlMHA
推荐阅读
-
Centos 编译安装sphinx-0.9.9全文检索
-
Linux源码安装mysql 5.5.13 (cmake编译)
-
CentOS 4.8 编译安装 MySQL 5.x 版本系列
-
windows下安装了wamp,运行时打开直接打开php文件提示下载?
-
linux php编译安装,linuxphp编译安装_PHP教程
-
ubuntu下使用源代码编译安装apache2.2.26
-
Linux下安装php-soap通过重新编译php过程_PHP教程
-
Linux下编译安装Redis以及主从复制配置
-
VS2010重新安装后运行程序提示缺少stdio.h,new.h等头文件,已解决
-
ubuntu13.10编译安装mono环境(一)