下面把在Ubuntu16.04中配置ros和Kinect2的过程记录下来,以备查忘。首先在Ubuntu16.04中安装Ros,具体安装教程参考官网说明,ros官网安装教程。
安装Kinect2的驱动libfreenect2
首先下载安装驱动所必须的库,执行安装命令如下:
1
|
sudo apt-get install build-essential cmake pkg-config libusb-1.0-0-dev libturbojpeg libjpeg-turbo8-dev libglfw3-dev libopenni2-dev libproj-dev
|
安装完毕后,下载libfreenect2的源码编译安装libfreenect,终端中创建任意目录,并进入到该目录下,执行命令如下:
1
|
git clone https://github.com/OpenKinect/libfreenect2.git
|
然后,进入源码目录,配置编译安装,这里指定安装路径为$home/freenect2,并且增加C++11的支持,依次执行以下命令配置安装libfreenect2:
1
2
3
4
5
6
7
8
9
|
cd libfreenect2
mkdir build && cd build
cmake .. -DCMAKE_INSTALL_PREFIX=$HOME/freenect2 -DENABLE_CXX11=ON
make
make install
sudo cp ../platform/linux/udev/90-kinect2.rules /etc/udev/rules.d/
//运行demo程序
./bin/Protonect [gl cuda cpu] //后面参数任选其一
|
编译安装完毕后,执行demo程序观察Kinect2拍摄的图像,Kinect2需要插在USB3.0的接口上,如果成功检测到设备,可以观察到图像,如:
在ros中使用Kinect2
可以前往github查看具体的安装说明,前往github,本文中总结为依次执行以下命令:
1
2
3
4
5
6
7
8
9
10
|
cd ~
mkdir iai_kinect && cd iai_kinect && mkdir src && cd src
git clone https://github.com/code-iai/iai_kinect2.git
cd iai_kinect2
rosdep install -r --from-paths .
cd ../..
catkin_make -DCMAKE_BUILD_TYPE="Release" -Dfreenect2_DIR=path_to_freenect2/lib/cmake/freenect2
echo "source $HOME/iai_kinect/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc
|
接下来执行以下命令,启动Kinect2,如果执行出错,提示找不到文件的情况,是因为没有执行上面的最后两条指令,更新环境变量。
1
|
roslaunch kinect2_bridge kinect2_bridge.launch
|
出错情况如图:
执行成功后如图所示:
执行指令echo "source $HOME/iai_kinect/devel/setup.bash" >> ~/.bashrc
,写入到当前用户的环境变量中去,下次重启系统的时候,就不需要再次执行相关指令了。启动另一个命令行窗口,执行如下命令,查看图像数据,因为系统还没有重启,所以需要在新的命令行窗口中再次执行指令source $HOME/iai_kinect/devel/setup.bash
,刷新环境变量。
1
|
rosrun kinect2_viewer kinect2_viewer sd cloud
|
可以观察到如下的图像数据:
在编译过程中,有可能出现的问题
1. cannot find -lvtkproj4 collect2: error: ld returned 1 exit status。。。
解决方法:sudo ln -s /usr/lib/libvtkproj4.so.5.10 /usr/lib/libvtkproj4.so