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]

猜你喜欢

转载自blog.csdn.net/w383117613/article/details/73274237