参考:
ubuntu 16.04 ROS + kinect v2 driver安装方法;安装驱动时遇到的问题及解决方法(1)
以下为参考链接部分内容以及我安装过程中的操作
安装libfreenect2
安装该部分时,已经安装好CUDA和k40c GPU驱动(不知道说的啥,没有管它,后面没出现问题)
-
git clone https://github.com/OpenKinect/libfreenect2.git
-
cd libfreenect2
-
sudo apt-get install build-essential cmake pkg-config
-
sudo apt-get install libusb-1.0-0-dev
-
sudo apt-get install libturbojpeg libjpeg-turbo8-dev
-
sudo apt-get install libglfw3-dev
-
sudo apt-get install libopenni2-dev
-
cd ..
-
mkdir build && cd build
-
cmake .. -DCMAKE_INSTALL_PREFIX=$HOME/freenect2
-
make
-
make install
第9句,没按这个运行成功。我在libfreenect2/build中打开控制台,执行第10句,一切正常
针对上面cmake
命令的说明, 第一个参数, 是特别指定安装的位置, 你也可以指定别的你觉得高兴的地方, 但一般标准的路径是上述示例路径或者/usr/local
。 第二个参数是增加C++11的支持。(不太懂,没管,后面没出问题)
设定udev rules:
sudo cp ../platform/linux/udev/90-kinect2.rules /etc/udev/rules.d/
然后重新插拔Kinect2.
一切搞定, 现在可以尝试运行Demo程序: ./bin/Protonect
, 不出意外, 应该能够看到如下效果:(这个图换成自己的了)
安装iai-kinect2
利用命令行从Github上面下载工程源码到工作空间内src文件夹内:
-
cd ~/catkin_ws/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"
(这一步编译报错,我自己工作空间里的person_detect部分编译不过,由于暂时用不到就把person_detect这个文件删了,编译就通过了)
编译结束, 一切OK的话, 会看到如下提示:
最后就是激动人心的时刻了, 在ROS中获取Kinect2的数据。
PS: 很多同学在运行下属命令时,时常会遇到不能执行的问题,大部分情况是没有source
对应的目录。应该先执行
-
gedit ~/.bashrc
-
source ~/catkin_ws/devel/setup.bash
若对应已经写入~/.bashrc
文件的同学,可以忽略。
roslaunch kinect2_bridge kinect2_bridge.launch
使用roslaunch发起kinect2相关节点, 可以看到如下结果, 在另外一个命令行中, 输入rostopic list
, 可以查看到该节点发布出来的Topic,
还可以输入
rosrun kinect2_viewer kinect2_viewer sd cloud
来开启一个Viewer查看数据。 结果如下图所示: