AR + ROS +UBUNTU16.04+ORB-SLAM2
ORB SLAM2 USB攝像頭
實驗環境ubuntu 16.04+ros? kinetic OPencv2.4.9
Step1: 配置環境變量
$ mkdir -p ~/catkin_ws/src
$ cd ~/catkin_ws/src
在’src’目錄中可能沒有任何軟件包,只有一個CMakeLists.txt,依然可以編譯它:
$ cd ~/catkin_ws/
$ catkin_make
在主文件夾下ctrl+h后找到隱藏文件夾.bashrc。在.bashrc 最下面添加
source /opt/ros/indigo/setup.bash`
source ~/catkin_ws/devel/setup.bash`
Step2:編譯usb_cam
[usb_cam下載鏈接] (https://github.com/bosch-ros-pkg/usb_cam)
把usb_cam放到catkin_ws/src下
$ cd catkin_ws/src/usb_cam
$ mkdir build
$ cd build
$ cmake ..
$ ma
Step3: 編譯orb_slam2
[orb_slam2 下載鏈接] ( https://github.com/raulmur/ORB_SLAM2 )
-
安裝orb slam2依賴
-
安裝 g++11
$ sudo apt-get install gcc g++ -
安裝 Pangolin
-
$ sudo apt-get install libglew-dev #安裝Glew
$ sudo apt-get install cmake #安裝CMake
$ sudo apt-get install libboost-dev libboost-thread-dev libboost-filesystem-dev #安裝Boost
$ 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
注意:Pangolin最新版本會編譯失敗請使用舊版本
- 安裝OpenCV
$sudo apt-get update
$sudo apt-get install libcv-dev
-
安裝Eigen
$ sudo apt-get install libeigen3-dev -
BLAS and LAPACK
$ sudo apt-get install libblas-dev
$ sudo apt-get install liblapack-dev
- 編譯ORB_SLAM2庫和例子程序(單目、雙目和RGB-D)
$ git clone https://github.com/raulmur/ORB_SLAM2.git ORB_SLAM2
把ORB_SLAM2放到catkin_ws/src下
$ cd ORB_SLAM2
$ chmod +x build.sh
$ ./build.sh
生成的libORB_SLAM2.so位于lib目錄下,可執行程序mono_tum, mono_kitti, rgbd_tum, stereo_kitti, mono_euroc and stereo_euroc位于Examples目錄下。
Step4: 把攝像頭數據發布到topic
4-1$ roslaunch usb_cam usb_cam-test.launch
這種方法下載并編譯的
- $?cd?catkin_ws/src??
- $?git?clone?https://github.com/bosch-ros-pkg/usb_cam.git??
- $?cd?..??
- $?catkin_make??
需要確保usb_cam安裝過程中沒有錯誤
- Bug / feature tracker:?https://github.com/bosch-ros-pkg/usb_cam/issues
- Source: git?https://github.com/bosch-ros-pkg/usb_cam.git?(branch: master)
- ROS wiki:http://wiki.ros.org/usb_cam
4-2、運行usb_cam_node開啟攝像頭
打開一個新的終端,運行roscore [html] view plain copy- $?roscore??
- $?cd??
- $?cd?catkin_ws/src/usb_cam/launch??
- $?roslaunch?usb_cam-test.launch??
- <launch>??
- ??<node?name="usb_cam"?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="usb_cam"?/>??
- ????<param?name="io_method"?value="mmap"/>??
- ??</node>??
- ??<node?name="image_view"?pkg="image_view"?type="image_view"?respawn="false"?output="screen">??
- ????<remap?from="image"?to="/usb_cam/image_raw"/>??
- ????<param?name="autosize"?value="true"?/>??
- ??</node>??
- </launch>??
- $?cd??
- $?cd?catkin_ws/src/usb_cam/launch??
- $?roslaunch?usb_cam-test.launch
4-3、遇到的問題
1、報錯[usb_cam-test.launch] is not a launch file name
運行完roslaunch usb_cam-test.launch后報錯說usb_cam-test.launch不是一個launch文件,這是因為沒有cd到catkin_ws/src/usb_cam/launch文件夾下,系統找不到這個launch文件
或者如果事先source了該工作空間,可以在任意目錄下運行roslaunch usb_cam usb_cam-test.launch都行
2、對于有些節點沒有跑起來的情況,可以從下載的catkin_ws/src/usb_cam中找到相應的.py文件然后用cp命令復制到opt/ros/hydro/的相應文件夾下
這篇文章:配置ROS工作空間catkin+rosbuild(http://my.phirobot.com/blog/2013-12-overlay_catkin_and_rosbuild.html)對于理解ROS的文件系統很有幫助
3、如果出現報錯“sh: 1: v4l2-ctl: not found”則需要安裝v4l2
運行:sudo apt-get install v4l-utils
Step5: 修改ros_mono.cc
進入~/catkin_ws/src/ORB_SLAM2/Examples/ROS/ORB_SLAM2/src
打開 ros_mono.cc 把程序里面的topic改為 /usb_cam/image_raw
具體還要查看自己的rviz(即上一步打開的攝像頭窗口的標題)
然后進入~/catkin_ws/src/ORB_SLAM
$ chmod +x build_ros.sh
$ ./build_ros.sh
Step5: 啟動mono
$ ~/catkin_ws/src/ORB_SLAM2$
rosrun ORB_SLAM2 Mono /home/sun/catkin_ws/src/ORB_SLAM2/Vocabulary/ORBvoc.txt /home/sun/catkin_ws/src/ORB_SLAM2/my.yaml node:sun(zhuji)
有兩個參數,第二個參數是相機參數文件,根據自己的相機參數修改。
正常啟動效果如下
都上一步為止已經成功跑起來了,我們來玩點好玩的吧
Step6: 增強現實
參照step4啟動攝像頭然后執行一下命令
~/catkin_ws/src/ORB_SLAM2$ rosrun ORB_SLAM2 MonoAR /home/sun/catkin_ws/src/ORB_SLAM2/Vocabulary/ORBvoc.txt /home/sun/catkin_ws/src/ORB_SLAM2/my.yaml
如果沒有界面出來不要著急,參照step5 打開 ros_mono_ar.cc把程序里面的topic改為 /usb_cam/image_raw
具體還要查看自己的rviz(即上一步打開的攝像頭窗口的標題)
然后進入~/catkin_ws/src/ORB_SLAM$ chmod +x build_ros.sh $ ./build_ros.sh
首先確保SLAM ON 然后點擊添加物體,最終效果如下
總結
以上是生活随笔為你收集整理的AR + ROS +UBUNTU16.04+ORB-SLAM2的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 个性签名搞笑
- 下一篇: 为啥台风暴雨没有绿色预警信号?