Ubuntu16.04_ROS_kinetic下如何使用OpenCV2.4进行编译
Ubuntu16.04_ROS_kinetic下如何使用OpenCV2.4进行编译这一问题卡了我将近两天时间。试了网上大部分的方法但都失败了,后来采取论坛上一个大神的方法,直接下载opencv2的源文件作为包编译到自己的工作空间中,成功实现了opencv2的编译。
Ubuntu16.04_ros_kinetic是自带opencv3的,按照网上一般安装和配置opencv2往往会因为兼容性而失败。虽然网上也有通过修改cv_bridge_config文件来改变ROS默认的opencv版本,但是这涉及到路径的添加和库的链接问题。这较为复杂,容易出现失误,而且最后编译也没成功。下面是我成功方法的步骤:
1.步骤 1) 下载ROS package 包opencv2_catkin和catkin_simple,也可以直接 利用git clone + 网址下载下来,直接点开两个包的超链接即可到达网址;
2步骤 2)建立ROS工作空间OpenCV2_ws,这里不再多说;
3步骤 3)下载好的两个package放到OpenCV2_ws工作空间下,直接catkin_make。特别值得注意的是,cakin_make过程中会自动下载opencv2.4.13,而且下载经常中断,这时候你要保证200%的耐心,Ctrl+C停止编译同时再次catkin_make,直至下载进度条100%完成,具体就不附图了。记住一点就是一定要有耐心下载完。
4步骤4)这时你就可以在OpenCV2_ws这个工作空间下编译自己的工作包了;注意还是要配置自己的cmakelist和package.xml的文件的,具体配置过程如下图所示:
在cmakelist文件中主要是添加opencv2_catkin这个包,其他看自己自己情况。
在packge.xml文件中也是主要添加opencv2_catkin,其他看自己的需求。
总结
因为国内相关的解决资料太少,我花了将近两天的时间解决此bug,希望能对后面各位遇到这个bug的小伙伴有所帮助;同时其他包的编译同理,只需把opencv2_ws下的相关文件拷贝到对应的空间下即可。如果有谁具体知道如何通过修改路径和依赖库实现这一问题,希望能够留言发链接给我,谢谢!