ros kinect v2安装 编译错误及解决

来源:互联网 发布:mba培训网络机构 华章 编辑:程序博客网 时间:2024/05/22 04:34

在ubuntu下,获得registered图像一般通过libfreenect2和iai_kinect2在ros下读取数据。

教程:kenict v2安装教程

  1. 安装libfreenect2驱动
    按教程操作一切正常。
    运行Demo程序
sudo chmod +x ./bin/Protonect  ./bin/Protonect cpu./bin/Protonect gl./bin/Protonect cl

cd ~/libfreenect2/build ./bin/Protonect

这里写图片描述
2. 安装iai_kinect2 ros包
出现问题:

catkin_make -DCMAKE_BUILD_TYPE="Release"

编译错误。
换用命令:

catkin_make -Dfreenect2_DIR=path_to_freenect2/lib/cmake/freenect2 -DCMAKE_BUILD_TYPE="Release"

出现同样错误。

主要错误显示如下

#### Running command: "make -j4 -l4" in "/home/yx/catkin_ws/build"####[ 35%] Building CXX object iai_kinect2/kinect2_registration/CMakeFiles/kinect2_registration.dir/src/depth_registration_opencl.cpp.o/opt/ros/kinetic/include/opencv-3.2.0-dev/opencv2/flann/saving.h:113:63: error: **exception handling disabled, use -fexceptions to enable**         throw FLANNException("Invalid index file, cannot read");
Invoking "make -j4 -l4" failed

解决办法:
kinect_registration CMakeLists.txt文件中加入语句:

add_definitions( -fexceptions )

重新编译,问题解决。
运行:

roslaunch kinect2_bridge kinect2_bridge.launch

出现红色报警:
这里写图片描述
不知道有啥具体影响,先搁置。

深度图获取方式和registration方式:

rosrun kinect2_bridge kinect2_bridge _depth_method:=<opengl|opencl|cpu> _reg_method:=<cpu|opencl>

出现报错

bash: 未预期的符号 `newline' 附近有语法错误

修改语句为:

 rosrun kinect2_bridge kinect2_bridge _depth_method:=opencl _reg_method:=opencl

*注:**_depth_method选opencl(默认)或者opengl或者cpu,_reg_method可以选opencl(默认)或者cpu
注:这里默认是用opencl做registration,如果报错,这是opencl没有安装好。*

新开终端

rosrun kinect2_viewer kinect2_viewer kinect2 sd cloud#查看点云rosrun kinect2_viewer kinect2_viewer kinect2 sd image#查看图像

点云
图像

原创粉丝点击