Ubuntu14.04+ROS indigo+ORB-SLAM2
2017-05-13 14:46
344 查看
环境:Ubuntu 14.04 + ROS indigo
运行以下命令确认你的当前目录是否在环境变量中
所以需要安装C++11编译器,运行:
and OpenCV 3.2**.
Required by g2o (see below). Download and install instructions can be found at: http://eigen.tuxfamily.org. **Required at least 3.1.0**.
注意:Opencv2.4.13编译时依赖此模块,最好在OpenCV2.4.13编译前安装
它能提供以下功能模块:
1) 密集矩阵和数组操作
2) 解密集线性方程组和矩阵分解
-求解线性最小二乘系统
-密集矩阵分解 (Cholesky, LU, QR, SVD, 特征值分解)
3) 解稀疏线性方程组和矩阵分解
-稀疏矩阵操作
-求解稀疏线性最小二乘系统
-稀疏矩阵分解(SpareCore, OrderingMethods, SpareCholesky, SpareLU, SparseQR,迭代线性求解)
4) 空间变换
- 2D旋转(角度)
- 3D旋转(角度+轴)
- 3D旋转(四元组: quaternion)
- N维缩放
- N维平移
- N维仿射变换
- N维线性变换(旋转、平移、缩放)
运行:
g2o需要BLAS和LAPACK
(1) BLAS: Basic Linear Algebra Subprograms
提供了基本的向量和矩阵操作:
- Level-1 BLAS: 支持 标量、向量、向量-向量 操作
- Level-2 BLAS: 支持 矩阵-向量 操作
- Level-3 BLAS: 支持 矩阵-矩阵 操作
(2) LAPACK:Linear Algebra PACKage
它调用BLAS来实现更高级的功能,支持以下操作:
- 解线性方程组
- 线性方程组的最小二乘解
- 特征值问题和奇异值问题
- 矩阵分解 (LU, Cholesky, QR, SVD, Schur, generalized Schur)
- 支持密集和带状矩阵,但不支持一般的稀疏矩阵
- 支持单精度和双精度
运行:
optimizations. Both modified libraries (which are BSD) are included in the *Thirdparty* folder.
1.创建ROS的一个工作空间
$ mkdir -p ~/orbslam2_catkin_ws/src $ cd ~/orbslam2_catkin_ws/src $ catkin_init_workspace $ cd .. $ catkin_make $ source devel/setup.bash
运行以下命令确认你的当前目录是否在环境变量中
$ echo $ROS_PACKAGE_PATH如果终端输出
/home/zhuquan/orbslam2_catkin_ws/src:/opt/ros/indigo/share:/opt/ros/indigo/stacks则说明ROS工作空间已经搭建好了。
2.Prerequisites
2.1 C++11 or C++0x Compiler
We use the new thread and chrono functionalities of C++11.所以需要安装C++11编译器,运行:
$ sudo apt-get install gcc g++
2.2 Pangolin
We use [Pangolin](https://github.com/stevenlovegrove/Pangolin) for visualization and user interface. Dowload and install instructions can be found at: https://github.com/stevenlovegrove/Pangolin.$ sudo apt-get install libglew-dev #安装Glew $ sudo apt-get install cmake #安装CMake #安装Boost $ sudo apt-get install libboost-dev libboost-thread-dev libboost-filesystem-dev $ sudo apt-get install libpython2.7-dev #安装Python2 / Python3 #下载、编译、安装Pangolin: $ git clone https://github.com/stevenlovegrove/Pangolin.git $ cd Pangolin $ mkdir build $ cd build $ cmake -DCPP11_NO_BOOST=1 .. $ make $ sudo make install
2.3 OpenCV(2.4.13)
We use [OpenCV](http://opencv.org) to manipulate images and features. Dowload and install instructions can be found at: http://opencv.org. **Required at leat 2.4.3. Tested with OpenCV 2.4.11and OpenCV 3.2**.
$ sudo apt-get install build-essential libgtk2.0-dev libjpeg-dev libtiff4-dev libjasper-dev libopenexr-dev cmake python-dev python-numpy python-tk libtbb-dev libeigen2-dev yasm libfaac-dev libopencore-amrnb-dev
libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev libx264-dev libqt4-dev libqt4-opengl-dev sphinx-common texlive-latex-extra libv4l-dev libdc1394-22-dev libavcodec-dev libavformat-dev libswscale-dev
$ unzip opencv-2.4.13.zip $ cd opencv-2.4.13;mkdir build;cd build; $ cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D
BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -DINSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -DBUILD_EXAMPLES=ON -D WITH_QT=ON -D WITH_OPENGL=ON -DCUDA_GENERATION=Kepler ..
$ make $ sudo make install
#在其中写入: /usr/local/lib $ sudo gedit /etc/ld.so.conf.d/opencv.conf #在文件末尾写入: #PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig #export PKG_CONFIG_PATH $ sudo ldconfig sudo gedit/etc/bash.bashrc #source此脚本 $ source /etc/bash.bashrc
2.4 Eigen3
Required by g2o (see below). Download and install instructions can be found at: http://eigen.tuxfamily.org. **Required at least 3.1.0**.注意:Opencv2.4.13编译时依赖此模块,最好在OpenCV2.4.13编译前安装
它能提供以下功能模块:
1) 密集矩阵和数组操作
2) 解密集线性方程组和矩阵分解
-求解线性最小二乘系统
-密集矩阵分解 (Cholesky, LU, QR, SVD, 特征值分解)
3) 解稀疏线性方程组和矩阵分解
-稀疏矩阵操作
-求解稀疏线性最小二乘系统
-稀疏矩阵分解(SpareCore, OrderingMethods, SpareCholesky, SpareLU, SparseQR,迭代线性求解)
4) 空间变换
- 2D旋转(角度)
- 3D旋转(角度+轴)
- 3D旋转(四元组: quaternion)
- N维缩放
- N维平移
- N维仿射变换
- N维线性变换(旋转、平移、缩放)
运行:
$ sudo apt-get install libeigen3-dev
2.5 BLAS and LAPACK
g2o需要BLAS和LAPACK(1) BLAS: Basic Linear Algebra Subprograms
提供了基本的向量和矩阵操作:
- Level-1 BLAS: 支持 标量、向量、向量-向量 操作
- Level-2 BLAS: 支持 矩阵-向量 操作
- Level-3 BLAS: 支持 矩阵-矩阵 操作
(2) LAPACK:Linear Algebra PACKage
它调用BLAS来实现更高级的功能,支持以下操作:
- 解线性方程组
- 线性方程组的最小二乘解
- 特征值问题和奇异值问题
- 矩阵分解 (LU, Cholesky, QR, SVD, Schur, generalized Schur)
- 支持密集和带状矩阵,但不支持一般的稀疏矩阵
- 支持单精度和双精度
运行:
$ sudo apt-get install libblas-dev $ sudo apt-get install liblapack-dev
2.6 DBoW2 and g2o (Included in Thirdparty folder)
We use modified versions of the [DBoW2](https://github.com/dorian3d/DBoW2) library to perform place recognition and [g2o](https://github.com/RainerKuemmerle/g2o) library to perform non-linearoptimizations. Both modified libraries (which are BSD) are included in the *Thirdparty* folder.
3 编译usb_cam
catkin_ws/src下运行:$ cd orbslam2_catkin_ws/src $ git clone https://github.com/bosch-ros-pkg/usb_cam.git[/code]
然后运行:$ cd orbslam2_catkin_ws/src/usb_cam $ mkdir build $ cd build $ cmake .. $ make4 编译ORB_SLAM2
运行:$ cd .. $ cd ..$ git clone https://github.com/raulmur/ORB_SLAM2.git ORB_SLAM2 $ cd ORB_SLAM2 $ chmod +x build.sh $ ./build.sh $ chmod +x build_ros.sh $ ./build_ros.sh5 配置ORB-SLAM2的环境变量
Add the path including *Examples/ROS/ORB_SLAM2* to the ROS_PACKAGE_PATH environment variable. Open.bashrc
file and add at the end the following line. Replace PATH by the folder where you cloned ORB_SLAM2:
execute:
export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:PATH/ORB_SLAM2/Examples/ROS
例如:export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:/home/zhuquan/orbslam2_catkin_ws/src/ORB_SLAM2/Examples/ROS6 利用相机进行实时的操作
6.1 普通单目摄像头(笔记本自带摄像头)实现ORB-SLAM2
修改/usb_cam/launch/usb_cam-test.launch的内容,将其改为:
<launch>
<node name="camera" pkg="usb_cam" type="usb_cam_node" output="screen" >
<param name="video_device" value="/dev/video0" />
<param name="image_width" value="640" />
<param name="image_height" value="480" />
<param name="pixel_format" value="yuyv" />
<param name="camera_frame_id" value="camera" />
<param name="io_method" value="mmap"/>
<remap from="/usb_cam/image_raw" to="/camera/image_raw" /> ##新加的一行
</node>
<node name="image_view" pkg="image_view" type="image_view" respawn="false" output="screen">
<remap from="image" to="/camera/image_raw"/>
<param name="autosize" value="true" />
</node>
</launch>
实现
打开一个终端,执行:
$ roscore
运行结果如下图所示:
重新打开一个新终端(原终端保留),运行:
$ cd ~/orbslam2_catkin_ws $ source devel/setup.bash $ roslaunch usb_cam usb_cam-test.launch
运行结果如下图所示:
这时
这时笔记本的摄像头的灯会亮,并且弹出一个名为/camera/image_raw的窗口:
重新打开 一个终端(原来的两个终端保留),运行
$ cd ~/orbslam2_catkin_ws $ source devel/setup.bash $ rosrun ORB_SLAM2 Mono /home/zhuquan/orbslam2_catkin_ws/src/ORB_SLAM2/Vocabulary/ORBvoc.txt /home/zhuquan/orbslam2_catkin_ws/src/ORB_SLAM2/Examples/Monocular/TUM1.yaml
运行结果如下图所示:
6.2
使用深度相机(如Kinect V1)实现ORB-SLAM2
安装Kinect V1需要的驱动(OpenNI,SensorKinect,NITE并按此顺序安装)$ sudo apt-get install ros-indigo-openni-* ros-indigo-openni2-* ros-indigo-freenect-* $ rospack profile
运行:$ sudo apt-get install ros-indigo-openni-launch实现:
$ roscore $ roslaunch freenect_launch freenect-registered-xyzrgb.launch $ rosrun ORB_SLAM2 RGBD /home/zhuquan/orbslam2_catkin_ws/src/ORB_SLAM2/Vocabulary/ORBvoc.txt /home/zhuquan/orbslam2_catkin_ws/src/ORB_SLAM2/Examples/RGB-D/TUM1.yaml注意:这三条指令的运行方式和上述单目情况类似
相关文章推荐
- ORB_SLAM2系列之一:Ubuntu 14.04 ROS indigo下编译安装ORB_SLAM2
- Ubuntu 14.04 LTS+ ROS indigo+ORB-SLAM1
- ORB_SLAM运行详细过程(ubuntu14.04系统和ROS Indigo环境搭建,配置及测试运行)
- ROS(indigo)机器人操作系统学习资料和常用功能包汇总整理(ubuntu14.04LTS)
- ROS入门_1.2 Ubuntu 14.04 安装ROS Indigo
- ubuntu14.04 and ros indigo install kinect driver--16
- Ubuntu14.04 ROS(indigo) 激光雷达(Sick LMS511) 数据读取
- Ubuntu14.04安装和配置ROS Indigo
- Ubuntu14.04 for ROS indigo的安装(电脑配置)
- 在Ubuntu14.04中安装ROS Indigo
- ROS(indigo)机器人操作系统学习资料和常用功能包汇总整理(ubuntu14.04LTS)
- OS X 10.12 下在VisualBox中安装 Ubuntu14.04+Ros indigo
- ubuntu14.04+ROS(Indigo)+matlab2015b
- Ubuntu14.04 ROS Indigo安装教程,以及卸载方法
- Ubuntu14.04 下安装ROS Indigo
- Ubuntu 14.04+ROS Indigo+LSD-SLAM
- ubuntu14.04安装ROS indigo
- Ubuntu14.04+ROS Indigo+SVO(Semi-direct Visual Odometry)
- [置顶] ubuntu14.04 + ROS下编译Pangolin和ORB_SLAM2死机的解决办法
- 在Ubuntu14.04上安装和配置ROS Indigo