kinect v1 在 ROS indigo 安装:openni+ros接口
环境:ubuntu14.04+ros indigo。原文在Kinect on Ubuntu with OpenNI,本文根据实际的安装结果进行了系列完善。
1)前期准备。
sudo apt-get install git build-essential python libusb-1.0-0-dev freeglut3-dev openjdk-7-jdk
其中build-essential软件包作用是提供编译程序必须软件包的列表信息;其中libusb是一个开源库,可以帮助开发者在用户空间的层面上与UBS设备进行通讯。如果想了解更多,可以查看他们的主页:http://libusb.org/;
其中freeglut3-dev一个utility库,如果需要在程序里直接使用OpenGL,会有很多非常恶心的预备工作要做,而且可能还要专门为平台的差异写一些代码。要跳过这些工作,可以用一个utility库,直接使用它提供的函数,就不用操心那些细节了。这样的库新一点的有GLEW,因为开源所以安装相对方便(大不了丢进去一起编译),但各种教程和书里常见的是闭源的GLUT。由于GLUT的作者已经很久没更新过了(最后更新于2000年!= =),所以其他人另外做了一个接口兼容GLUT的freeglut,开源而且一直在维护中。
其中OpenJDK是做为GPL许可(GPL-licensed)的Java平台的开源化实现。
2)安装OpenNI 1.5.4
从git进行克隆。
git clone https://github.com/OpenNI/OpenNI.git
执行下面命令cd OpenNI
git checkout Unstable-1.5.4.0
cd Platform/Linux/CreateRedist
chmod +x RedistMaker
./RedistMaker
RedisMaker脚本将自动完成多数编译任务,然后进入Redist目录进行安装cd ../Redist/OpenNI-Bin-Dev-Linux-[xxx] (where [xxx] is your architecture and this particular OpenNI release)
sudo ./install.sh
其中xxx部分用table可以自动补全,否则之前步骤不成功。3)kinect组件
前节目录下,git组件源码。
git clone https://github.com/avin2/SensorKinect
cd SensorKinect
然后如下安装当前包。xxx依然为按table后自动补全。cd Platform/Linux/CreateRedist
chmod +x RedistMaker
./RedistMaker
cd ../Redist/Sensor-Bin-Linux-[xxx] (where [xxx] is your architecture and this particular OpenNI release)
chmod +x install.sh
sudo ./install.sh
4)测试OpenNI 示例
cd OpenNI/Platform/Linux/Bin/x64-Release
./Sample-NiSimpleViewer
此处与原文不同,原文路径是cd OpenNI/Platform/Linux-x86/Bin/Release,但本人安装完后并没有该路径,上面路径是自行查找出来的,已经测试通过。插入kinect v1后运行会出现全屏黄色-黑色深度图,按esc退出。
5)ros包安装
sudo apt-get install ros-indigo-openni-camera ros-indigo-openni-launch
完成后,理论上可以测试kinect,通过以下命令roslaunch openni_launch openni.launch
然后,可以通过以下命令启动彩色图像输出。不知为何此处不能显示深度图。rosrun image_view image_view image:=/camera/rgb/image_color
要显示深度图,可以通过rviz实现,启动后点击左下角add按钮,选择By topic标签,选择depth选项卡,选择image raw,点击ok后会出现深度图显示结果。给出测试结果如下:
也可以通过rostopic list查看相关节点。