1. 程式人生 > >debian下用原始碼安ros編譯opencv2.4.9

debian下用原始碼安ros編譯opencv2.4.9

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]