宁波盈芯信息科技有限公司
宁波盈芯信息科技有限公司

树莓派连接3D摄像头 RGBD200A 教程

浏览:5 作者: 来源: 时间:2018-08-29 分类:行业新闻
国家深化增值税改革的措施,进一步减轻市场主体税负,实业发展迎来新机遇。

盈芯科技 -- 树莓派3B 连接 散斑结构光深度模组RGBD200A 

图片1

苹果十周年推出iPhoneX,风靡全球。其中Face ID功能令人影响深刻的。其中该技术的硬件支撑是TrueDepth Camera。应用原理是结构光获取深度,依据深度信息结合红外图像准确的判断人脸特征,从而达到100万分之一的误差。

说到这简单介绍下结构光:结构光三维成像的硬件主要由相机和投射器组成,结构光就是通过投射器投射到被测物体表面的主动结构信息,如激光条纹、格雷码、正弦条纹等;然后,通过单个或多个相机拍摄被测表面即得结构光图像;最后,基于三角测量原理经过图像三维解析计算从而实现三维重建。

回过头来,我们看看RGBD200A这款模组硬件参数:

 

RGBD200ARGBD200A Spec

 

移植到树莓派3B,该平台硬件配置情况:

1、1.4GHz 64位4核 ARM Cortex-A53 CPU

2、双频 802.11ac 无线网卡和蓝牙 4.2

3、更快的以太网(千兆以太网 over USB 2.0)

4、1G LPDDR2

5、PoE 支持(Power-over-Ethernet,with PoE HAT)

改进 PXE 网络与 USB 大容量存储启动

 

平台和设备我们都大概了解了,注意啦下面我们开始移植喽。

拿到板子第一步当然是boot起来啦!我们看下树莓派论坛查找资料,Raspbian系统镜像烧录到SD卡上。

首先格式化SD卡


step2


 

Win32DiskImager.exe烧录2018-06-27-raspbian-stretch.img

 

step2

‘’

 

step3

 

插入盒子打开电源,系统起来

 

step4

将之前编译好的OpenNI-Linux-Arm-2.2 拷贝到设备桌面,运行SimpleRead.

有下面错误

step5

./SimpleRead:error while loading shared libraries:libOpenNI2.so:cannot open shared object file: No such file or directory

最后发现交叉编译器问题,在树莓派论坛上搜交叉编译有个很详细帖子。按照帖子装好交叉编译环境arm-rpi-4.9.3-linux-gnueabihf。按照README重新交叉编译OpenNI2工程,选择ARM。设置ARM_CXX 、ARM_STAGING。重新编译又出现下面错误:fatal error: gnu/stubs-soft.h: No such file or directory继续百度吧,发现个帖子(https://stackoverflow.com/questions/49139125/fatal-error-gnu-stubs-soft-h-no-such-file-or-directory)依照帖子在OpenNI2工程文件Platform.Arm修改-mfloat-abi=softfp  ==》-mfloat-abi=hard 这个问题解决。

 

step5

继续编译又有错误fatal error: libusb-1.0/libusb.h: No such file or directory.这个错误是交叉编器译sysroot 缺少libusb-1.0库。官网下载libusb-1.0,交叉编译生成libusb-1.0.so 拷贝到/opt/arm-bcm2708/arm-rpi-4.9.3-linux-gnueabihf/arm-linux-gnueabihf/sysroot/usr/lib。在/opt/arm-bcm2708/arm-rpi-4.9.3-linux-gnueabihf/arm-linux-gnueabihf/sysroot/usr/include 目录新建libusb-1.0,将libusb.h拷贝到libusb-1.0文件夹。重新编译编译打包。

到这交叉编译完毕,将文件包拷贝到树莓派桌面,插入RGBD200A设备,运行SimpleRead如图

step4

程序正常执行打不开设备,root 模式正常,应该是设备权限问题。在解压包内root运行install.sh,执行脚本后USB设备配置文件被拷贝对应目录,修改设备权限。并且生成OpenNI2环境参数,如果自己调用OpenNI2库生成工程,这些参数是很有用的。至此设备已经成功跑起来了。

想要看深度图编译NiViewer。如果freeglut安装失败,可以尝试先sudo apt-get install mesa-common-dev再sudo apt-get install libgl1-mesa-dev libglu1-mesa-dev 最后apt-get install freeglut3-dev。修改Platform.Arm打开GLUT_SUPPORTED宏, 让NiViewer可以编译到。可以在树莓派上编译,或者交叉编译。ok编译成功运行NiViewer如图

例子

生成的程序包我已经打包到RGBD200A-Linux-Arm-raspberrypi.tar.gz大家可以下载跑跑啦。。。

 

https://pan.baidu.com/s/187LoHyqOvSogqr3BUlNBLA