ubuntu16.04下驱动Kinect v2 +ROS下运行
ubuntu16.04下驱动Kinect v2 +ROS下运行
安装相关驱动包
前几天刚装好ROS kinetic(详见上一篇博客),现在准备在ROS下驱动Kinect v2,找了几篇博客,最后按照下面博主的文章顺利运行成功:https://blog.****.net/qq_33835307/article/details/81272377
安装libfreenect2
我个人使用的是双系统(win10+ubuntu16.04),具体安装方法请看我的博客。一开始安装该驱动时要求安装CUDA,可是这个需要GPU啊,明明kinect运行不需要GPU的,所以索性也没管它。
-
git clone https://github.com/OpenKinect/libfreenect2.git
-
cd libfreenect2
-
sudo apt-get install build-essential cmake pkg-config libusb-1.0-0-dev libturbojpeg
-
sudo apt-get install libjpeg-turbo8-dev libglfw3-dev libopenni2-dev
-
mkdir build && cd build
-
cmake .. -DCMAKE_INSTALL_PREFIX=$HOME/freenect2
-
make
-
make install
针对上面cmake命令的说明, 第一个参数, 是特别指定安装的位置, 你也可以指定别的你觉得高兴的地方, 但一般标准的路径是上述示例路径或者/usr/local。 本人是直接指定的路径,即全部copy然后粘贴,仅仅用cmake …时在后边会报错,应该时路径的问题。第二个参数是增加C++11的支持。(不太懂,没管,后面没出问题)
设定udev rules:
sudo cp ../platform/linux/udev/90-kinect2.rules /etc/udev/rules.d/
然后重新插拔Kinect2.
一切搞定, 现在可以尝试运行Demo程序: ./bin/Protonect, 不出意外, 应该能够看到如下效果:
安装iai-kinect2
利用命令行从Github上面下载工程源码到工作空间内src文件夹内:
-
mkdir catkin_ws
-
cd catkin_ws
-
mkdir src
-
cd src
-
git clone https://github.com/code-iai/iai_kinect2.git
-
cd iai_kinect2
-
rosdep install -r --from-paths .
-
cd ~/catkin_ws
-
catkin_make -DCMAKE_BUILD_TYPE="Release"
针对于上述命令中最后一行指令, 需要说明的是, 如果前面libfreenect2你安装的位置不是标准的两个路径下, 需要提供参数指定libfreenect2所在路径:
catkin_make -Dfreenect2_DIR=path_to_freenect2/lib/cmake/freenect2 -DCMAKE_BUILD_TYPE="Release"
编译结束, 一切OK的话, 会看到如下提示:
最后就是激动人心的时刻了, 在ROS中获取Kinect2的数据。
运行测试
开启驱动,建立链接:
roslaunch kinect2_bridge kinect2_bridge.launch
注意: 很多同学在运行下属命令时,时常会遇到不能执行的问题,如下图所示:
大部分情况是没有source对应的目录。应该先执行
source ~/catkin_ws/devel/setup.bash
在另外一个命令行中, 输入以下指令, 可以查看到该节点发布出来的Topic,
rostopic list
还可以输入
rosrun kinect2_viewer kinect2_viewer sd cloud
来开启一个Viewer查看数据。 结果如下图所示:
如果报错说:rosrun kinect2_viewer kinect2_viewer sd cloud
则先输入以下指令,再用viewer查看
source ~/catkin_ws/devel/setup.bash