debian下用原始碼安ros編譯opencv2.4.9
阿新 • • 發佈:2018-12-31
source ./install_isolated/setup.bash
一般情況下,ros線上安裝,安裝到了/opt/ros/裡面,但是含帶的opencv 是3.1.0版本,因為opencv版本的問題我們必須使用opencv2.4.9
在這種情況下,有兩種處理方式:
一:單獨下載opencv-2.4.9原始碼,編譯,安裝到 /usr/local
二: ros原始碼編譯,將opencv替換為2.4.9
我選擇了第二種方式.
編譯步驟:
1.配置ROS源
$ sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list' $ sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 0xB01FA116
2.安裝必要軟體
$ sudo apt-get install python-rosdep python-rosinstall-generator python-wstool python-rosinstall build-essential cmake
3. rosdep
$ sudo rosdep init
$ rosdep update
4.進入到src原始碼包同級的資料夾下,安裝依賴庫
$ rosdep install --from-paths src --rosdistro lunar -y 或 $ rosdep install --from-paths src --ignore-src --rosdistro lunar -y
5.替換opencv到2.4.9
將pencv2.4.9替換opencv3, opencv3中的package.xml複製到重新替換的opencv2.4.9, 並將OpenCV 3.x改為OpenCV 2.x,即:
<description>OpenCV 2.x</description>
修改src/vision_opencv/cv_bridge和src/vision_opencv/image_geometry下的package.xml檔案:
<build_depend>opencv2</build_depend> <exec_depend>opencv2</exec_depend>
6.編譯ROS
./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release
7. ~/.bashrc中新增
source ./install_isolated/setup.bash
遇見的問題:
1. 編譯過程中報錯,關於ffmpeg
那麼第6步,變成
./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release \
-DENABLE_AVX=ON \
-DENABLE_FAST_MATH=ON \
-DENABLE_SSE=ON \
-DENABLE_SSE2=ON \
-DENABLE_SSE3=ON \
-DENABLE_SSE41=ON \
-DENABLE_SSE42=ON \
-DENABLE_SSSE3=ON \
-DWITH_FFMPEG=OFF
2. 缺少orocos-bfl之類的各種庫, 如果第4步沒有解決,那麼有一個方法.
去一臺裝好此係統的debian系統裡,當然要保持系統版本一致,然後進入
/var/cache/apt/archives
根據終端提示的庫以及依賴的庫的版本,拷貝相應的.deb到當前系統,然後
sudo dpkg -i *.deb
再執行第6步
author: wsh
email: [email protected]