ROS Kinetic下コンパイルインストールORB_SLAM2

5208 ワード

OS:Ubuntu 16.04
ROSバージョン:  Kinetic
1.ROSのインストールは、参考にすることができますhttp://blog.csdn.net/qq_1732031/article/details/79519308、ここでは説明しません.
2.ワークスペースの新規作成
$ mkdir catkin_ws
$ cd ./catkin_ws
$ mkdir src

3.srcをワークスペースとして設定し、srcディレクトリの下で:
$ catkin_init_workspace

4.catkin_に戻るwsディレクトリの下で実行:
$ catkin_make
第3、4ステップNot Found the Commandエラーが発生した場合、catkinをインストールし、入力するコマンド:
$ git clone https://github.com/ros/catkin.git
$ cd catkin
$ mkdir build
$ cd build
$ cmake ..
$ make -j8 && make install
$ cd ..
$ python2 setup.py install
$ python3 setup.py install

Pythonには必ずcatkinをインストールしてください.pkgモジュール
pip install catkin_pkg
 
pip3 install catkin_pkg

依存項目をインストールします.
sudo apt install autotools-dev ccache doxygen dh-autoreconf git liblapack-dev libblas-dev libgtest-dev libreadline-dev libssh2-1-dev pylint clang-format-3.8 
python-autopep8 python-catkin-tools python-pip python-git python-setuptools python-termcolor python-wstool --yes

5.ORB_をダウンロードSLAM 2ソース:
git clone https://github.com/raulmur/ORB_SLAM2.git ORB_SLAM2

6.ORB_をSLAM 2ファイルをcatkin_に移動ws/src下
$ sudo mv ORB_SLAM2 ./catkin_ws/src

7.ORB_をインストールするSLAM 2,Rannul Mur-artal大神のgithub(https://github.com/raulmur/ORB_SLAM2)にはっきり書いてありました
cd ORB_SLAM2
chmod +x build.sh
./build.sh

8.インストールROS版のORBをコンパイルするSLAM 2、ORB_SLAM 2ディレクトリの下:
chmod +x build_ros.sh
./build_ros.sh

この時点で穴が開き、エラーが発生する可能性があります.
CMake Error at /opt/ros/kinetic/share/ros/core/rosbuild/public.cmake:129 (message):

  Failed to invoke rospack to get compile flags for package 'ORB_SLAM2'.
  Look above for errors from rospack itself.  Aborting.  Please fix the
  broken dependency!

Call Stack (most recent call first):
  /opt/ros/kinetic/share/ros/core/rosbuild/public.cmake:207 (rosbuild_invoke_rospack)
  CMakeLists.txt:4 (rosbuild_init)
-- Configuring incomplete, errors occurred!

~/.bashrcの末尾に追加することを忘れないでください.
export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:PATH/ORB_SLAM2/Examples/ROS


  ここでPATHは、自分のワークスペースパス(/home/(user名)/catkin_ws/src)であり、次のことを覚えています.
$ source ~/.bashrc

まだ解決していない場合は、次のコマンドを使用します.
$ sudo rosdep fix-permissions
$ rosdep update

そしてコンパイルを続けると、また穴ができて、心が疲れるかもしれません~:
MakeFiles/Makefile2:718: recipe for target 'CMakeFiles/Mono.dir/all' failed
make[1]: *** [CMakeFiles/Mono.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
make[2]: *** No rule to make target '/opt/ros/kinetic/lib/libopencv_calib3d3.so.3.2.0', needed by '../RGBD'. Stop.
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/RGBD.dir/all' failed
make[1]: *** [CMakeFiles/RGBD.dir/all] Error 2
make[2]: *** No rule to make target '/opt/ros/kinetic/lib/libopencv_calib3d3.so.3.2.0', needed by '../Stereo'. Stop.
CMakeFiles/Makefile2:104: recipe for target 'CMakeFiles/Stereo.dir/all' failed
make[1]: *** [CMakeFiles/Stereo.dir/all] Error 2

解決策:ORB_を修正するSLAM2/Examples/ROS/ORB_SLAM 2でCMakelists.txt、setに-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
)

そしてコンパイルに成功する.
ROS Kinetic下编译安装ORB_SLAM2_第1张图片
ROSで自分のカメラを使って走るならORB_SLAM 2、それではusb_をインストールする必要がありますcam
ダウンロードリンク(https://github.com/ros-drivers/usb_cam)、ダウンロードして、同じようにsrcの下に移動します
あるいはこれはsrcの下でgitコマンドを利用します   
git clone https://github.com/bosch-ros-pkg/usb_cam.git

コンパイルusb_cam:
$ mkdir build
$ cd build
$ cmake ..
$ make

カメラを開くにはrosを起動する必要があります.2つの異なる端末でそれぞれ次のコマンドを実行します.
$ roscore
$ roslaunch usb_cam usb_cam-test.launch

これによりカメラが起動し、usb_を開くことができます.cam/launchの下のlaunchファイル:

  
    
    
    
    
    
    
  
  
    
    
  

このうちvalue=「/dev/video 0」はノートパソコンのカメラで、ここではvideo 1です.もちろん、読者は/devディレクトリの下で自分のカメラに対応するvalueがどれだけあるかを見ることができます.