Orbbec Gemini 相机SDK 适配笔记.2

很喜欢导航里的一句话,你已偏离路线,已为你重新规划,请在合适的位置选择掉头。可是啊,人生无退路

Orbbec Gemini相机 SDK适配笔记

关于RGBD相机选型(奥比中光)

这篇文章对SDK的目录结构和若干文件做解答。

https://developer.orbbec.com.cn/download.html?id=64

SDK的链接位置

对于我们单纯的使用相机来讲,获得数据流是最重要的事情

官方提供的是OpenNI的接口,接下来就探索一下相关的资源,接着就是在ARM的设备上面的安装使用。

先附上SDK的地址:

https://developer.orbbec.com.cn/develop_details.html?id=2

就是这个了

因为这个是一个开源的魔改版本(其实也不是魔改版本):

https://github.com/OpenNI/OpenNI2

位置在此

有机会的话,做下差异性检查(对比以前的版本和奥比的差异)

还要注意这句话,RGB的读取使用OpenCV

Arm平台下的例子

在这里

看下安装的要求,其实都是可以的啦

其实我后面觉得是1G的运行内存的意思

下载这个就好

https://developer.orbbec.com.cn/download.html?id=64

如果是使用树莓派或者是Jetson Nano,请来这个地址下载我指的东西

东西不大,是阿里云托管的

解压的内容物,还是很清晰的结构

这些so库就是编译好的二进制库,需要放在我们的动态库的链接位置

需要注意的一点是:

可能需要USBLib的驱动,什么RGBD的相机在Linux下没什么驱动问题。

https://sourceforge.net/projects/libusb/files/libusb-1.0/

直接下载

- Linux:  - LibUSB 1.0.x sudo apt-get install libusb-1.0-0 - LibUDEV sudo apt-get install libudev0  - FreeGLUT3    sudo apt-get install freeglut3

你需要安装以上三个库来辅助我们的OpenNI运行,如果想要编译OpenGL的话,你最后一个库需要安装开发版。

sudo apt-get install freeglut3-dev

OpenNI的编译需要下面这些库的安装

Linux------ GCC 4.x sudo apt-get install g++- Python 2.6+/3.x sudo apt-get install python- LibUSB 1.0.x sudo apt-get install libusb-1.0-0-dev- LibUDEV sudo apt-get install libudev-dev- JDK 6.0 sudo apt-get install openjdk-6-jdk- FreeGLUT3 sudo apt-get install freeglut3-dev- Doxygen sudo apt-get install doxygen- GraphViz sudo apt-get install graphviz

至于编译的时候就更加的简单了~在OpenNI的目录下

make

如果是交叉编译的话

- ARM_CXX=<path to cross-compilation g++> - ARM_STAGING=<path to cross-compilation staging dir>

先定义环境变量

PLATFORM=Arm make

然后因为是使用的CMake,所以就执行上面的。

https://structure.io/openni

我找了一下OpenNI的官网,发现其实是有第二代的SDK

这个里面有个SDK叫结构SDK,也不知道能不能用

也可以注册为一个开发者,来下载额外的SDK

这里就下载了一个

这是目录结构

还有的doc

看来也用不上,就此为止啦

但是SDK里面还有ROS的例子,我觉得我完全可以移植

上面看的这个SDK是OpenNI的升级SDK,而下面这个才是我们使用的SDK,也就是一代。

https://structure.io/openni

地址在此

我们在这里可以下载到一个zip的文件,用浏览器打开

找到index的文件,打开就好了

乍一看,和我们的奥比的SDK文档一样(怕不是一样吧)。我看了一下,应该是全部都一样。

我觉得这个设置是很有必要的。

继续读:

安装SDK的说法,在编写我们的RGBD应用的时候,在编写的时候都要像这样:

加上第二个这样的头文件

头文件位置在此

这个是我从OpenNI的头文件里面找到的其它头

这里的宏写的是支持的平台

在实例里面都可以看到这个error的方法

咋说呢,就是驱动相机的时候,先要初始化呗~然后其实就是驱动的事情,如果这个驱动没有安装好,就用不了,可是我们也不知道哪里的毛病,所以就相当于是个日志的打印。

API

函数的样子

函数的说明

OpenNI的头文件

所有的类声明

下篇继续~

(0)

相关推荐