一般无误的官方连接:https://github.com/raulmur/ORB_SLAM

ubuntu16.04没有多少改变,还是使用kinetic老代替indigo

Related Publications:

Artical:

[1] Raúl Mur-Artal, J. M. M. Montiel and Juan D. Tardós. ORB-SLAM: A Versatile and Accurate Monocular SLAM System.IEEE Transactions on Robotics, vol. 31, no. 5, pp. 1147-1163, 2015.

DOI: 10.1109/TRO.2015.2463671.

Link to pdf: http://webdiis.unizar.es/~raulmur/MurMontielTardosTRO15.pdf

1. License

ORB-SLAM is released under a GPLv3 license. Please note that we provide along ORB-SLAM a modified version of g2o and DBoW2 which are both BSD.

For a closed-source version of ORB-SLAM for commercial purposes, please contact the authors.

If you use ORB-SLAM in an academic work, please cite:

@article{murAcceptedTRO2015,title={{ORB-SLAM}: a Versatile and Accurate Monocular {SLAM} System},author={Mur-Artal, Ra\'ul, Montiel, J. M. M. and Tard\'os, Juan D.},journal={IEEE Transactions on Robotics},volume={31},number={5},pages={1147--1163},doi = {10.1109/TRO.2015.2463671},year={2015}}

2. Prerequisites (dependencies)

2.1 Boost

We use the Boost library to launch the different threads of our SLAM system.

 sudo apt-get install libboost-all-dev 

2.2 ROS

We use ROS to receive images from the camera or from a recorded sequence (rosbag), and for visualization (rviz, image_view).We have tested ORB-SLAM in Ubuntu 12.04 with ROS Fuerte, Groovy and Hydro; and in Ubuntu 14.04 with ROS Indigo. If you do not have already installed ROS in your computer, we recommend you to install the Full-Desktop version of ROS Fuerte (http://wiki.ros.org/fuerte/Installation/Ubuntu).

If you use ROS Indigo, remove the depency of opencv2 in the manifest.xml.

2.3 g2o (included)

We use g2o to perform several optimizations. We include a modified copy of the library including only the components we need and also some changes that are listed inThirdparty/g2o/Changes.txt. In order to compile g2o you will need to have installed CHOLMOD, BLAS, LAPACK and Eigen3.

sudo apt-get install libsuitesparse-dev
sudo apt-get install libblas-dev
sudo apt-get install liblapack-dev
sudo apt-get install libeigen3-dev

2.4 DBoW2 (included)

We make use of some components of the DBoW2 library (https://github.com/dorian3d/DBoW2) for place recognition and feature matching. We include a modified copy of the library including only the components we need and also some modifications that are listed inThirdparty/DBoW2/LICENSE.txt. It only depends on OpenCV, but it should be included in the ROS distribution.

3. Installation

  1. Make sure you have installed ROS and all library dependencies (boost, eigen3, cholmod, blas, lapack).

  2. Clone the repository:

  3. git clone https://github.com/raulmur/ORB_SLAM.git ORB_SLAM
  1. Add the path where you cloned ORB-SLAM to the ROS_PACKAGE_PATH environment variable (better if you add the export line to your .bashrc file)

  2. Build g2o. Go into Thirdparty/g2o/ and execute:

  3. mkdir build
    cd build
    cmake .. -DCMAKE_BUILD_TYPE=Release
    make 
  4. Tip: To achieve the best performance in your computer, set your favorite compilation flags in line 97 and 98 ofThirdparty/g2o/CMakeLists.txt (by default -03 -march=native)

  5. Build DBoW2. Go into Thirdparty/DBoW2/ and execute:

  6. mkdir build
    cd build
    cmake .. -DCMAKE_BUILD_TYPE=Release
    make (如果未安装OpenCV,首先编译OpenCV:
    ubuntu16.04下编译安装OpenCV )
    
  7. Tip: Set your favorite compilation flags in line 4 and 5 of Thirdparty/DBoW2/CMakeLists.txt (by default -03 -march=native)

  8. Build ORB_SLAM. In the ORB_SLAM root execute:

                  If you use ROS Indigo, remove the depency of opencv2 in the manifest.xml.

  9. mkdir build
    cd build
    cmake .. -DROS_BUILD_TYPE=Release
    make
  10. Tip: Set your favorite compilation flags in line 12 and 13 of ./CMakeLists.txt (by default -03 -march=native)

出现问题:

cmake .. -DROS_BUILD_TYPE=Release

1.        这一句出现:

CMake Error at CMakeLists.txt:2 (include):
                           include could not find load file:

/core/rosbuild/rosbuild.cmake

CMake Error at CMakeLists.txt:4 (rosbuild_init):
                          Unknown CMake command "rosbuild_init".

-- Configuring incomplete, errors occurred!
                        See also "/home/wishchin/WorkFrameSrc/ORB_SLAM-master/build/CMakeFiles/CMakeO

解决方法:原因是ROS path 没有自动添加,需要进行手动添加。

shell语句:

source /opt/ros/indigo/setup.bash   source /opt/ros/kinetic/setup.bash 
  1. 切换到主目录下。。。。
  2. source  .bashrc #使能

2.    出现:

[rosbuild] Building package ORB_SLAM-master
[rosbuild] Error from directory check: /opt/ros/indigo/share/ros/core/rosbuild/bin/check_same_directories.py  /home/wishchin/WorkFrameSrc/ORB_SLAM-master
1
Traceback (most recent call last):
  File "/opt/ros/indigo/share/ros/core/rosbuild/bin/check_same_directories.py", line 46, in <module>
    raise Exception
Exception
CMake Error at /opt/ros/indigo/share/ros/core/rosbuild/private.cmake:102 (message):
  [rosbuild] rospack found package "ORB_SLAM-master" at "", but the current
  directory is "/home/wishchin/WorkFrameSrc/ORB_SLAM-master".  You should
  double-check your ROS_PACKAGE_PATH to ensure that packages are found in the
  correct precedence order.
Call Stack (most recent call first):
  /opt/ros/indigo/share/ros/core/rosbuild/public.cmake:177 (_rosbuild_check_package_location)
  CMakeLists.txt:4 (rosbuild_init)

-- Configuring incomplete, errors occurred!
See also "/home/wishchin/WorkFrameSrc/ORB_SLAM-master/build/CMakeFiles/CMakeOutput.log".

解决方法:

在.bashrc 末尾添加:export  ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:/home/wishchin/WorkFrameSrc/ORB_SLAM

ORB路径添加到ROS

7.编译成功:

[ 11%] Building CXX object CMakeFiles/ORB_SLAM-master.dir/src/Tracking.cc.o
[ 16%] Building CXX object CMakeFiles/ORB_SLAM-master.dir/src/LocalMapping.cc.o
[ 22%] Building CXX object CMakeFiles/ORB_SLAM-master.dir/src/LoopClosing.cc.o
[ 27%] Building CXX object CMakeFiles/ORB_SLAM-master.dir/src/ORBextractor.cc.o
[ 33%] Building CXX object CMakeFiles/ORB_SLAM-master.dir/src/ORBmatcher.cc.o
[ 38%] Building CXX object CMakeFiles/ORB_SLAM-master.dir/src/FramePublisher.cc.o
[ 44%] Building CXX object CMakeFiles/ORB_SLAM-master.dir/src/Converter.cc.o
[ 50%] Building CXX object CMakeFiles/ORB_SLAM-master.dir/src/MapPoint.cc.o
[ 55%] Building CXX object CMakeFiles/ORB_SLAM-master.dir/src/KeyFra

4. Usage

See section 5 to run the Example Sequence.

  1. Launch ORB-SLAM from the terminal (roscore should have been already executed):

    rosrun ORB_SLAM ORB_SLAM PATH_TO_VOCABULARY PATH_TO_SETTINGS_FILE
    

    You have to provide the path to the ORB vocabulary and to the settings file. The paths must be absolute or relative to the ORB_SLAM directory.
    We already provide the vocabulary file we use in ORB_SLAM/Data/ORBvoc.txt.tar.gz. Uncompress the file, as it will be loaded much faster.

  2. The last processed frame is published to the topic /ORB_SLAM/Frame. You can visualize it usingimage_view:

    rosrun image_view image_view image:=/ORB_SLAM/Frame _autosize:=true
    
  3. The map is published to the topic /ORB_SLAM/Map, the current camera pose and global world coordinate origin are sent through/tf in frames/ORB_SLAM/Camera and/ORB_SLAM/World respectively. Runrviz to visualize the map:

    in ROS Fuerte:

    rosrun rviz rviz -d Data/rviz.vcg
    

    in ROS Groovy or a newer version:

    rosrun rviz rviz -d Data/rviz.rviz
    
  4. ORB_SLAM will receive the images from the topic /camera/image_raw. You can now play your rosbag or start your camera node. If you have a sequence with individual image files, you will need to generate a bag from them. We provide a tool to do that: https://github.com/raulmur/BagFromImages.

Tip: Use a roslaunch to launch ORB_SLAM, image_view andrviz from just one instruction. We provide an example:

in ROS Fuerte:

roslaunch ExampleFuerte.launch

in ROS Groovy or a newer version:

roslaunch ExampleGroovyOrNewer.launch

5. Example Sequence

We provide the settings and the rosbag of an example sequence in our lab. In this sequence you will see a loop closure and two relocalisation from a big viewpoint change.

  1. Download the rosbag file:
    http://webdiis.unizar.es/~raulmur/orbslam/downloads/Example.bag.tar.gz.

    Alternative link: https://drive.google.com/file/d/0B8Qa2__-sGYgRmozQ21oRHhUZWM/view?usp=sharing

    Uncompress the file.

  2. Launch ORB_SLAM with the settings for the example sequence. You should have already uncompressed the vocabulary file (/Data/ORBvoc.txt.tar.gz)

    in ROS Fuerte:

    roslaunch ExampleFuerte.launch
    

    in ROS Groovy or newer versions:

    roslaunch  ExampleGroovyOrNewer.launch
    rosbag play --pause Example.bag  +空格键
  3. Once the ORB vocabulary has been loaded, play the rosbag (press space to start):

    rosbag play --pause Example.bag
    

6. The Settings File

ORB_SLAM reads the camera calibration and setting parameters from a YAML file. We provide an example inData/Settings.yaml, where you will find all parameters and their description. We use the camera calibration model of OpenCV.

Please make sure you write and call your own settings file for your camera (copy the example file and modify the calibration)

7. Failure Modes

You should expect to achieve good results in sequences similar to those in which we show results in our paper [1], in terms of camera movement and texture in the environment. In general our Monocular SLAM solution is expected to have a bad time in the following situations:

  • Pure rotations in exploration
  • Low texture environments
  • Many (or big) moving objects, especially if they move slowly.

The system is able to initialize from planar and non-planar scenes. In the case of planar scenes, depending on the camera movement relative to the plane, it is possible that the system refuses to initialize, see the paper [1] for details.

8. Need Help?

If you have any trouble installing or running ORB-SLAM, contact the authors.

ROS:ubuntu-Ros使用OrbSLAM相关推荐

  1. Ubuntu ROS Kinect2安装

    Ubuntu ROS Kinect2安装 文章目录 Ubuntu ROS Kinect2安装 1.安装libfreenect 1.1 相关依赖 1.2 下载编译 1.3 配置路径 2.安装iai_ki ...

  2. W: 校验数字签名时出错。此仓库未被更新,所以仍然使用此前的索引文件。GPG 错误:http://packages.ros.org/ros/ubuntu xenial InRelease: 下列签名无

    W: 校验数字签名时出错.此仓库未被更新,所以仍然使用此前的索引文件.GPG 错误:http://packages.ros.org/ros/ubuntu xenial InRelease: 下列签名无 ...

  3. ros ubuntu 卸载_ROS的安装、卸载

    ROS(Robot Operating System)是一个机器人软件平台,它能为异质计算机集群提供类似操作系统的功能.ROS的前身是斯坦福人工智能实验室为了支持斯坦福智能机器人STAIR而建立的交换 ...

  4. ros ubuntu 卸载_ROS安装与卸载

    1 版本选择 ROS 虽说也叫操作系统,但它是寄生在 LINUX 操作系统之下的,所以要求大兄弟你的电脑里至少要先有一个 LINUX 操作系统. 而对 ROS 兼容性最好的当属 Ubuntu 操作系统 ...

  5. Ubuntu ROS Arduino Gazebo学习镜像iso说明(indigo版)

    ROS机器人程序设计(原书第2版)学习镜像分享及使用说明 通过网页快速了解Linux(Ubuntu)和ROS机器人操作系统,请参考实验楼在线系统如下: 初级教程可参考:https://www.shiy ...

  6. Ubuntu ROS 安装

    ROS 安装 版本选择 1.1 配置Ubuntu 存储库 1.2 设置sources.list 1.3 设置密钥 1.3.1 错误 1.4 安装 1.5 环境变量 1.6 构建包的依赖项 1.6.1 ...

  7. UBUNTU ROS 编译后无法rosrun package文件(已解决)

    UBUNTU ROS 编译后无法rosrun package文件(已解决) 很多原因是tab不到那个package,所以要在bashrc文件中输入文件路径 解决方法 ,打开终端 输入: gedit . ...

  8. ros ubuntu 卸载_ROS的安装和卸载

    Robot Operating System (ROS) 是一个得到广泛应用机器人系统的软件框架,它包含了一系列的软件库和工具用于构建机器人应用.从驱动到最先进的算法,以及强大的开发者工具,ROS 包 ...

  9. ubuntu ROS 创建项目

    ubuntu ROS 创建项目 打开Termianl 创建工作空间 创建功能包 打开Termianl Ctrl+Alt+t 创建工作空间 mkdir -p catkin_testmarker/src ...

  10. sudo apt-get update出现W: GPG 错误:http://packages.ros.org/ros/ubuntu xenial InRelease: 由于没有公钥,无法验证下列签名:

    报错: W: GPG 错误:http://packages.ros.org/ros/ubuntu xenial InRelease: 由于没有公钥,无法验证下列签名: NO_PUBKEY F42ED6 ...

最新文章

  1. CountDownLatch——常用并发工具类
  2. 项目前期——用例图、类图、活动图、组件图
  3. 判断两个链表是否相交
  4. 作业综合练习-初始化工作
  5. php布尔类型代码,php中的boolean(布尔)类型详解
  6. 电脑技巧:电脑常用快捷键大全,值得收藏!
  7. 第十一届蓝桥杯A组省赛填空试题 A: 门牌制作(Java)
  8. __va_rounded_size
  9. 80% 的学校还在给新生上 C 语言,它们 OUT 了吗?
  10. Android P:BottomAppBar和MaterialButton
  11. 强连通分量(Tarjan)模板
  12. 好用的源码行数统计工具——cloc
  13. access百科 pc_Access是什么
  14. solidity教程(一)搭建僵尸工厂
  15. 【DIY小记】踏平Win10升级之坑——我们无法更新系统保留的分区
  16. 如何使用MATLAB coder将MATLAB代码转换成C/C++语言(详细图文教程)
  17. LICEcap:GIF屏幕录制工具
  18. vmware workstation虚拟机安装Debian系统教程
  19. Spring--官方文档部分翻译(第一章)
  20. 我的压箱底,500G视频网盘分享

热门文章

  1. [MapReduce_add_4] MapReduce 的 join 操作
  2. Java 匿名内部类理解
  3. HTTP Session、Cookie机制详解
  4. TDEngine数据包的详细说明
  5. unity脚本运行顺序具体的解释
  6. 好用的工具---screen命令
  7. 【Oracle RAC故障分析与处理】
  8. Windows 7英文版访问2003或XP共享时提示用户名密码错误的解决办法
  9. 13/100. Best Time to Buy and Sell Stock
  10. 编译php5遇到iconv错误的解决方法