写在前面
前面我们已经介绍过了如何在Jetson TK1(当然,对其他的上位机也类似)上安装turtlebot以及一些基本配置,下面我们介绍一下如何配置3D传感器。这里我们奥比中光的3D摄像头(Orbbec Astra camera)为例进行介绍。
安装OpenNI SDK
我们可以在官网找到相应的OpenNI驱动,这里是网站链接:https://3dclub.orbbec3d.com/t/universal-download-thread-for-astra-series-cameras/622。下面是Linux的软件列表,请根据你的系统信息选择合适的驱动。如果要查看系统信息,可以使用uname -a
命令。
由于是国外的网站,访问起来可能会很慢,或者根本加载不出来。建议从这里下载。
我们知道Jetson TK1是基于Arm的嵌入式开发板,而且Arm型号为Cortex-A15的32位处理器。由于jetson的CPU架构低于Cortex A17,故我们选择OpenNI-Linux-Arm-2.3-without_filter.zip可以获得更好的性能。这个说明在安装包的readme中有说明:
For user with ARM based development board:
With CPU Structure older than Cortex A17, use OpenNI-Linux-Arm-2.3 Nofilter.tar for better performance
首先,检查udev的版本,因为Orbbec Driver需要libudev.so.1,可以运行下面的命令查找:
$ ldconfig -p | grep libudev.so.1
如果找不到的话,运行下面的命令以创建libudev.so.1的符号链接文件libudev.so.x.x.x。
$ cd /lib/x86_64-linux-gnu
$ sudo ln -s libudev.so.x.x.x libudev.so.1
下面将解压好的压缩包复制到任何你想放的位置,比如用户主目录下~/
下。
然后进入该文件夹中,运行安装脚本,该脚本可以产生OpenNIDevEnvironment,其中包含了OpenNI的开发环境。
$ cd OpenNI-Linux-Arm-2.3-nofilter
$ sudo ./install.sh
然后,重新插拔一下摄像头的usb接口。
接着添加环境变量:
source OpenNIDevEnvironment
现在OpenNI SDK已经安装好了,没错就这么简单。但是如果你想运行一下示例程序的话,还需要进行一些其他的操作。
首先安装相关的依赖库:
$ sudo apt-get install build-essential freeglut3 freeglut3-dev
然后,我们需要编译示例程序:
$ cd Samples/SimpleViewer
$ make
最后进入bin目录运行示例程序:
$ cd Bin/x64-Release
$ ./SimpleViewer
如果你用的debian是Jessie,即debian 8的话,运行上述的示例程序可能还需要安装下面的软件:
$ sudo apt-get install libgl1-mesa-dri
如果SDK安装成功的话,你应该可以看到下面的效果:
安装ROS功能包
这款摄像头使用uvc输入彩色信息,需要libuvc和libuvc_ros这样才能在ROS下正常使用彩色功能。我们可以使用下面的命令安装这两个ros功能包,这里以ros indigo版本为例,如果你的是其他版本可以将下面命令中indigo替换为相应的版本名字。
sudo apt-get install ros-indigo-libuvc
sudo apt-get install ros-indigo-libuvc-ros
然后安装astra功能包,这里同样以indigo为例:
sudo apt-get install ros-kinetic-astra-camera ros-kinetic-astra-launch
下面我们在ROS下对安装进行下测试,首先运行:
roslaunch astra_launch astra.launch
如果没有错误提示的话,说明运行成功,有些警告是没关系的。
下面可以打开rqt显示图像:
rqt
在菜单Plugins中选择visualization->image View,然后在主题下拉菜单中选择/camera/depth/image
,如下图所示:
然后,你也可以将主题换为/camera/rgb/image_raw
:
参考资料
- CSDN博客奥比中光Orbbec Astra Pro RGBD 3D视觉传感器在ROS(indigo和kinetic)使用说明 rgb depth同时显示
- ORBBEC OpenNI SDK readme
https://www.dropbox.com/sh/ou49febb83m476d/AAAh50WyzaOLZKvzmhLvp8D8a/Updated%20Readme.txt?dl=0
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。