1、安装ros下kinect2驱动库链接 2、修改ros版本/opt/ros/kinetic/share/cv_bridge/cmake/cv_bridgeConfig.cmake参考 附录修改内容: 第一部分:
if(NOT "include;/usr/local/include/opencv;/usr/local/include/opencv2" STREQUAL " ") set(cv_bridge_INCLUDE_DIRS "") set(_include_dirs "/usr/local/include/opencv2;/usr/local/include/opencv;/usr/include;/usr/local/include") 第二部分: set(libraries "cv_bridge;/usr/local/lib/libopencv_stitching.so.2.4.13;/usr/local/lib/libopencv_objdetect.so.2.4.13;/usr/local/lib/libopencv_features2d.so.2.4.13;/usr/local/lib/libopencv_core.so.2.4.13;/usr/local/lib/libopencv_ocl.so.2.4.13;/usr/local/lib/libopencv_photo.so.2.4.13;/usr/local/lib/libopencv_flann.so.2.4.13;/usr/local/lib/libopencv_gpu.so.2.4.13;/usr/local/lib/libopencv_superres.so.2.4.13;/usr/local/lib/libopencv_highgui.so.2.4.13;/usr/local/lib/libopencv_video.so.2.4.13;/usr/local/lib/libopencv_imgproc.so.2.4.13;/usr/local/lib/libopencv_contrib.so.2.4.13;/usr/local/lib/libopencv_videostab.so.2.4.13;/usr/local/lib/libopencv_legacy.so.2.4.13;/usr/local/lib/libopencv_ml.so.2.4.13;/usr/local/lib/libopencv_calib3d.so.2.4.13;/usr/local/lib/libopencv_nonfree.so.2.4.13")
3、问题 执行完上述步骤后编译通过,启动包里边的.launch文件无法运行,错误信息是提示: ... [ INFO] [1496849131.398779983]: [DepthRegistration::New] Using OpenCL registration method! OpenCV Error: The function/feature is not implemented (Unknown/unsupported array type) in getMat_, file /tmp/binarydeb/ros-kinetic-opencv3-3.2.0/modules/core/src/matrix.cpp, line 1289 [ERROR] [1496849131.398918855]: [Kinect2Bridge::stop] kinect2_bridge is not running! ... 个人分析可能原因,ROS-kinetic自带opencv3.2导致自身运行的时候查找了安装的文件。 了解系统情况: 1、rospack profile 显示出安装的opencv3.2的包
2、sudo apt-get --purge remove ros-kinetic-opencv3卸载deb安装的opencv3包
未完待续