percipio sdk 入门指南res.percipio.xyz/doc/pcp_gs_camp_cn.pdf · 2 bbs.percipio.xyz...

27
Percipio SDK 入门指南 WINDOWS/LINUX/ANDROID/ROS 图漾科技 2017.06

Upload: others

Post on 23-Jan-2021

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Percipio SDK 入门指南res.percipio.xyz/doc/PCP_GS_CAMP_CN.pdf · 2 bbs.percipio.xyz PCP_GS_CAMP_CN_04. 第一章 概述 1.4 资料准备 ... • Doc 目录 存放SDK API 参考文档,该文档内容包括类、结构和接口的详细信息,格式为使用Doxygen

Percipio SDK

入门指南

WINDOWS/LINUX/ANDROID/ROS

图漾科技

2017.06

Page 2: Percipio SDK 入门指南res.percipio.xyz/doc/PCP_GS_CAMP_CN.pdf · 2 bbs.percipio.xyz PCP_GS_CAMP_CN_04. 第一章 概述 1.4 资料准备 ... • Doc 目录 存放SDK API 参考文档,该文档内容包括类、结构和接口的详细信息,格式为使用Doxygen

关于本手册

本手册主要介绍如何使用 Percipio SDK。文档结构如下:

章节 标题 内容

第一章 概述 对 Percipio SDK的整体介绍。

第二章 SDK结构 介绍 Percipio SDK的结构。

第三章 SDK操作指南 介绍 Percipio SDK的安装、编译和使用。

第四章 应用开发 介绍 Percipio SDK的开发。

发布说明

时间 版本 发布说明

2016.07 V1.0 第一次发布。

2016.08 V1.1 增加 SDK安装流程。

2017.05 V2.0 基于 Camport2软件的更新。

2017.06 V2.1 修订 3.2.2编译 SDK

免责和版权声明

本手册为图漾产品的使用说明,其受版权保护,未经图漾事先书面同意,任何人不得以任何形式复制、修

改本手册的内容。图漾对任何人使用被篡改过产品使用说明所造成的损失或伤害,不承担任何责任。本文

档未以禁止反言或其他方式授予任何知识产权的许可,无论是明示的还是暗示的。

在现行法律许可的情况下:(1)本使用说明仅基于产品目前的现状,对产品将来是否适销、品质是否良好、

是否侵犯他人产品的权益、是否适用等问题不做任何形式的声明与保证;(2)在将来任何情况下,对使用

本手册所造成的任何损失和伤害(包括但不限于直接损失、间接损失、特别损失、附随损失、间接损失或

惩罚性赔偿),图漾将不承担责任,即使这些损失和损害是可以预见的,或图漾曾被告知将有可能造成这

些损失。

这个文档本身可能包含印刷错误和产品技术说明方面的错误。图漾有权在不通知用户的情况下,对产品的

使用说明做更改。客户在购买产品的时候,须向当地经销商索取最新的产品使用说明。

图漾保证本产品符合注明的质量标准,并在质保期内承担产品的质量保责任。但本产品只能用作指定用途,

将产品挪作它用而造成的损失,图漾不承担任何责任。

Page 3: Percipio SDK 入门指南res.percipio.xyz/doc/PCP_GS_CAMP_CN.pdf · 2 bbs.percipio.xyz PCP_GS_CAMP_CN_04. 第一章 概述 1.4 资料准备 ... • Doc 目录 存放SDK API 参考文档,该文档内容包括类、结构和接口的详细信息,格式为使用Doxygen

目录

第一章 概述 1

1.1 SDK介绍 1

1.1.1 Windows SDK 1

1.1.2 Linux SDK 1

1.1.3 Android SDK 1

1.1.4 OpenNI2 SDK 1

1.1.5 ROS SDK 1

1.2 流程概览 2

1.3 硬件准备 2

1.4 资料准备 2

第二章 SDK结构 5

2.1 Camport2 SDK 5

2.2 Camport Android SDK 6

2.3 Camport OpenNI2 SDK 7

2.4 Camport ROS SDK 7

第三章 SDK操作指南 9

3.1 Windows SDK 9

3.1.1 下载 SDK 9

3.1.2 安装驱动 9

3.1.3 使用 SDK 10

3.1.4 二次开发 11

3.2 Linux SDK 12

3.2.1 下载 SDK 12

3.2.2 编译 SDK 12

3.2.3 使用 SDK 13

3.2.4 二次开发 13

3.3 Android SDK 14

3.3.1 硬件准备 14

3.3.2 下载 SDK 14

3.3.3 使用 SDK 14

3.3.4 编译 SDK 15

3.4 OpenNI2 SDK 15

3

Page 4: Percipio SDK 入门指南res.percipio.xyz/doc/PCP_GS_CAMP_CN.pdf · 2 bbs.percipio.xyz PCP_GS_CAMP_CN_04. 第一章 概述 1.4 资料准备 ... • Doc 目录 存放SDK API 参考文档,该文档内容包括类、结构和接口的详细信息,格式为使用Doxygen

3.4.1 下载 SDK 15

3.4.2 安装 SDK 15

3.5 ROS SDK 16

第四章 应用开发 17

4.1 相关概念 17

4.2 开发流程 17

4.2.1 流程图 17

4.2.2 流程说明 18

附录 A 支持资源 21

A.1 资源下载 22

A.1.1 SDK 22

A.1.2 PercipioTool 22

A.2 技术支持 22

A.3 文档支持 23

Page 5: Percipio SDK 入门指南res.percipio.xyz/doc/PCP_GS_CAMP_CN.pdf · 2 bbs.percipio.xyz PCP_GS_CAMP_CN_04. 第一章 概述 1.4 资料准备 ... • Doc 目录 存放SDK API 参考文档,该文档内容包括类、结构和接口的详细信息,格式为使用Doxygen

第一章 概述

1.1. SDK介绍

Percipio Camport SDK(以下简称 Camport SDK)是基于图漾深度摄像头的软件开发包,该开发包适用于

Windows、Linux(OpenNI2)、Android和 ROS平台,为应用开发者提供了一系列友好的 API和简单的应用

示例程序。用户可以基于该开发包,获取深度数据信息、灰度图像信息和点云数据,用于三维建模、导航、

避障、手势识别等应用。

1.1.1 Windows SDK

Windows SDK支持 X86(32位)和 X64(64位)硬件平台,并提供支持WindowsXP、Window7及以上

版本操作系统的驱动文件。Windows SDK为用户提供了一些直接可以执行的应用程序(例如查看深度图),

也为开发者提供了一些应用程序的示例代码。

1.1.2 Linux SDK

Linux SDK支持 AArch64,ARMv7hf,RaspberryPi,i686和 x86-64硬件平台,并为开发者编译程序提供

相应平台的库文件。Linux SDK 不提供可执行的应用程序,您可以编译示例代码来生成可执行的应用程

序。

1.1.3 Android SDK

Android SDK目前仅支持 ARMV7硬件平台和 Android 4.4,并提供相应平台的库文件。Android SDK为用

户提供可执行的应用程序,也为开发者提供了一些应用程序的示例代码。

1.1.4 OpenNI2 SDK

OpenNI2 SDK基于 Linux SDK开发,提供相应平台的库文件。使用 OpenNI2 SDK前,需要根据平台安装

相应的 Linux SDK。

1.1.5 ROS SDK

ROS SDK支持ROS平台,并提供相应平台的库文件。在使用ROS SDK前需要首先安装OpenNI2 SDK。

1

Page 6: Percipio SDK 入门指南res.percipio.xyz/doc/PCP_GS_CAMP_CN.pdf · 2 bbs.percipio.xyz PCP_GS_CAMP_CN_04. 第一章 概述 1.4 资料准备 ... • Doc 目录 存放SDK API 参考文档,该文档内容包括类、结构和接口的详细信息,格式为使用Doxygen

1.2 流程概览 第一章 概述

1.2. 流程概览

Camport SDK的使用流程如图 1.1所示。

Windows Linux OpenNI2

Choosing OS

Installing Drivers

Watching Depth map

Programming User

Application

ROS

Downloading camport2

Downloading camport2

Compiling SDK

Preparing Hardware

Watching Depth map

Programming User

Application

Downloading camport_openni2

Installing SDK

Downloading camport_ros

Compiling SDK

Watching Depth map

Programming User

Application

Android

Compiling SDK

Watching Depth map

Programming User

Application

Downloading camport_android

Building Development Environment

图 1.1: Camport SDK使用流程图

1.3. 硬件准备

图漾的 Camport SDK需要配合图漾的三维传感器使用,目前 SDK的版本支持图漾所有在售型号的三维传

感器。

• 请下载《图漾产品选型手册》选购产品。

• 关于深度传感器的型号和参数的网页版介绍请见:http://www.percipio.xyz/product/depth。

• 关于深度传感器的型号和参数的网页版介绍请见:http://www.percipio.xyz/rgbd。

1.4. 资料准备

• API参考-HTML

2 bbs.percipio.xyz PCP_GS_CAMP_CN_04

Page 7: Percipio SDK 入门指南res.percipio.xyz/doc/PCP_GS_CAMP_CN.pdf · 2 bbs.percipio.xyz PCP_GS_CAMP_CN_04. 第一章 概述 1.4 资料准备 ... • Doc 目录 存放SDK API 参考文档,该文档内容包括类、结构和接口的详细信息,格式为使用Doxygen

第一章 概述 1.4 资料准备

本文档为二次开发所需的 API接口参考的 HTML版本。

• API参考-PDF

本文档为二次开发所需的 API接口参考的 PDF版本。

PCP_GS_CAMP_CN_04 bbs.percipio.xyz 3

Page 8: Percipio SDK 入门指南res.percipio.xyz/doc/PCP_GS_CAMP_CN.pdf · 2 bbs.percipio.xyz PCP_GS_CAMP_CN_04. 第一章 概述 1.4 资料准备 ... • Doc 目录 存放SDK API 参考文档,该文档内容包括类、结构和接口的详细信息,格式为使用Doxygen

1.4 资料准备 第一章 概述

4 bbs.percipio.xyz PCP_GS_CAMP_CN_04

Page 9: Percipio SDK 入门指南res.percipio.xyz/doc/PCP_GS_CAMP_CN.pdf · 2 bbs.percipio.xyz PCP_GS_CAMP_CN_04. 第一章 概述 1.4 资料准备 ... • Doc 目录 存放SDK API 参考文档,该文档内容包括类、结构和接口的详细信息,格式为使用Doxygen

第二章 SDK结构

2.1. Camport2 SDK

Camport2 SDK适用于 Windows和 Linux平台,目录结构如图 2.1所示。

图 2.1: Camport2 SDK的目录结构

• Doc目录

存放 SDK API参考文档,该文档内容包括类、结构和接口的详细信息,格式为使用 Doxygen生成的

HTML。

• include目录

保存相关用于调用动态库的头文件。

– percipio_camportimpl.h

5

Page 10: Percipio SDK 入门指南res.percipio.xyz/doc/PCP_GS_CAMP_CN.pdf · 2 bbs.percipio.xyz PCP_GS_CAMP_CN_04. 第一章 概述 1.4 资料准备 ... • Doc 目录 存放SDK API 参考文档,该文档内容包括类、结构和接口的详细信息,格式为使用Doxygen

2.2 CAMPORT ANDROID SDK 第二章 SDK结构

– percipio_camport.h

是为兼容第一版 SDK应用刻意保留的应用程序接口。建议新用户使用 Include/TY_API.h中提供

的应用程序接口进行产品开发。

– TY_API.h文件

提供了控制配置摄像头、获取图像数据的 API,用户可以基于这些 API开发自己的应用。

• lib/linux目录

支持 Linux操作系统的库文件,兼容 AArch64,ARMv7hf,RaspberryPi,i686和 x86-64硬件平台。

• lib/win目录

支持 Windows操作系统的库文件,兼容 x64和 x86硬件平台。

• sample目录

可供用户编程参考的程序样例。

2.2. Camport Android SDK

Camport Android SDK的目录如 2.2所示。

图 2.2: Camport Android SDK的目录结构

• lib/armeabi目录

存放 Android平台的库文件。

• sample目录

可供用户编程参考的程序样例。

– binary_for_ARMV7目录:存放可执行的应用程序。

* Camport-FetchFrame.apk文件:查看深度图的 ApK应用。

* SimpleView_FetchFrame文件:控制台应用,该应用程序只获取深度数据而无法查看深度图。

* OpenCV_2.4.9_Manager_2.18_armeabi.apk文件:Opencv的支持软件,当使用

Camport_FetchFrame.apk前需要首先安装该应用程序。

– Camport_FetchFrame_Apk目录:存放 Camport_FetchFrame.apk程序的源代码。

– Simple_FetchFrame目录:存放 Camport-FetchFrame程序的源代码。

6 bbs.percipio.xyz PCP_GS_CAMP_CN_04

Page 11: Percipio SDK 入门指南res.percipio.xyz/doc/PCP_GS_CAMP_CN.pdf · 2 bbs.percipio.xyz PCP_GS_CAMP_CN_04. 第一章 概述 1.4 资料准备 ... • Doc 目录 存放SDK API 参考文档,该文档内容包括类、结构和接口的详细信息,格式为使用Doxygen

第二章 SDK结构 2.3 CAMPORT OPENNI2 SDK

2.3. Camport OpenNI2 SDK

Camport OpenNI2 SDK的目录如 2.3所示。

图 2.3: Camport OpenNI2 SDK的目录结构

• 安装文件:OpenNI2 SDK的安装文件。

• 测试程序:安装文件:OpenNI2 SDK的测试程序。

2.4. Camport ROS SDK

Camport ROS SDK的目录如 2.4所示。

图 2.4: Camport ROS SDK的目录结构

• openni2_camera: ROS调用 OpenNI2的封装层。

• openni2_launch:打开 OpenNI2设备并获取深度和颜色数据。

• depthimage_to_laserscan:打开 OpenNI2设备并获取线性深度数据。

PCP_GS_CAMP_CN_04 bbs.percipio.xyz 7

Page 12: Percipio SDK 入门指南res.percipio.xyz/doc/PCP_GS_CAMP_CN.pdf · 2 bbs.percipio.xyz PCP_GS_CAMP_CN_04. 第一章 概述 1.4 资料准备 ... • Doc 目录 存放SDK API 参考文档,该文档内容包括类、结构和接口的详细信息,格式为使用Doxygen

2.4 CAMPORT ROS SDK 第二章 SDK结构

8 bbs.percipio.xyz PCP_GS_CAMP_CN_04

Page 13: Percipio SDK 入门指南res.percipio.xyz/doc/PCP_GS_CAMP_CN.pdf · 2 bbs.percipio.xyz PCP_GS_CAMP_CN_04. 第一章 概述 1.4 资料准备 ... • Doc 目录 存放SDK API 参考文档,该文档内容包括类、结构和接口的详细信息,格式为使用Doxygen

第三章 SDK操作指南

3.1. Windows SDK

说明:

关于 SDK的结构说明,请参考“第二章”。

3.1.1 下载 SDK

官网下载

• 访问“图漾官网 >技术支持 >资源下载”。

• 找到“Windows SDK(X64/X86)”,单击“点击下载”按钮。

GitHub下载

1. 访问“图漾 GitHub”。

2. 进入“camport2”下载 Windows SDK。

BBS下载

1. 访问“Percipio社区 >官方发布 > SDK下载”。

2. 进入“Windows SDK”页面,点击下载按钮下载 Windows SDK。

3.1.2 安装驱动

1. 使用 USB线连接把深度摄像头与 Windows PC连接后,PC端发现“Percipio Device”,如图 3.1所

示。

2. 右键单击该设备选择更新设备驱动。根据实际情况选择Windows软件开发包中 driver目录(图 2.1)

下的驱动,按照提示安装。

3. 在图 3.2选中“Always trust software from‘上海图漾信息科技有限公司’”。

9

Page 14: Percipio SDK 入门指南res.percipio.xyz/doc/PCP_GS_CAMP_CN.pdf · 2 bbs.percipio.xyz PCP_GS_CAMP_CN_04. 第一章 概述 1.4 资料准备 ... • Doc 目录 存放SDK API 参考文档,该文档内容包括类、结构和接口的详细信息,格式为使用Doxygen

3.1 WINDOWS SDK 第三章 SDK操作指南

图 3.1: 发现设备

图 3.2: 安装驱动

4. 单击“Install”安装直到 PC提示安装完成。

在设备管理器中发现设备已被准确识别,如图 3.3所示。

图 3.3: 安装完成

3.1.3 使用 SDK

深度摄像头连接 PC后开始系统初始化。直到摄像头背面 LED灯持续闪烁,运行开发包中

lib/win/hostapp/x64/SimpleView_FetchFrame.exe文件。

10 bbs.percipio.xyz PCP_GS_CAMP_CN_04

Page 15: Percipio SDK 入门指南res.percipio.xyz/doc/PCP_GS_CAMP_CN.pdf · 2 bbs.percipio.xyz PCP_GS_CAMP_CN_04. 第一章 概述 1.4 资料准备 ... • Doc 目录 存放SDK API 参考文档,该文档内容包括类、结构和接口的详细信息,格式为使用Doxygen

第三章 SDK操作指南 3.1 WINDOWS SDK

说明:

如需查看点云图,您可以使用 PercipioTool。PercipioTool是图漾科技开发的用于图漾科技的深度摄像头数据查看的图

形界面,目前支持 Win10 x64平台。

3.1.4 二次开发

关于二次开发的编程指南,请参考“第四章”。

PCP_GS_CAMP_CN_04 bbs.percipio.xyz 11

Page 16: Percipio SDK 入门指南res.percipio.xyz/doc/PCP_GS_CAMP_CN.pdf · 2 bbs.percipio.xyz PCP_GS_CAMP_CN_04. 第一章 概述 1.4 资料准备 ... • Doc 目录 存放SDK API 参考文档,该文档内容包括类、结构和接口的详细信息,格式为使用Doxygen

3.2 LINUX SDK 第三章 SDK操作指南

3.2. Linux SDK

说明:

关于 SDK的结构说明,请参考“第二章”。

3.2.1 下载 SDK

在 Linux环境下执行以下命令下载 SDK。

g i t c lone h t tps : / / g i t hub .com/ p e r c i p i o x y z / Camport2 . g i t

3.2.2 编译 SDK

注意: 根据 Linux系统的权限管理机制,默认情况下需要 root权限才能操作深度摄像头设备,非 root

用户可以创建 udev rule来修改设备权限。

1. 创建 udev rule修改深度模组的权限。

在 etc/udev/rules.d 文件所在目录下新建一个扩展名为.rules 的规则文件(如 88-tyusb.rules),并把

用户加入该文件中指定的组(如:tofu)。

SUBSYSTEM==” usb ” ,

ATTRS{ idProduct }== ” 1003 ” ,

ATTRS{ idVendor }== ” 04b4” ,

GROUP=” t o f u ” ,

MODE=” 0666 ”

说明:

规则文件名的开头须为数字(0~ 99),数字越大,优先级越高。

2. 找到 camport2/lib/linux目录下相应平台的文件夹,将文件夹中的 libcamm.so文件复制到 /usr/lib/目

录下。

3. 进入 camport2目录,执行以下命令编译实例代码。

cd sample

mkdir b u i l d

cd b u i l d

cmake . .

make

12 bbs.percipio.xyz PCP_GS_CAMP_CN_04

Page 17: Percipio SDK 入门指南res.percipio.xyz/doc/PCP_GS_CAMP_CN.pdf · 2 bbs.percipio.xyz PCP_GS_CAMP_CN_04. 第一章 概述 1.4 资料准备 ... • Doc 目录 存放SDK API 参考文档,该文档内容包括类、结构和接口的详细信息,格式为使用Doxygen

第三章 SDK操作指南 3.2 LINUX SDK

3.2.3 使用 SDK

在 camport2/sample/build/bin 目录下生成若干编译生成的可执行文件,以 root 权限运行如下命令,即可

查看深度图。

sudo . / SimpleView_FetchFrame

3.2.4 二次开发

Linux平台下的二次开发需要注意如下:

• 如要重新编译 SDK,您需要安装 Libusb和 Opencv2.4.8软件。

• 如果编译环境与目标平台不是同一个平台,需要对 Libusb、Opencv和本示例代码做交叉编译。

• 关于二次开发的编程指南,请参考“第四章”。

PCP_GS_CAMP_CN_04 bbs.percipio.xyz 13

Page 18: Percipio SDK 入门指南res.percipio.xyz/doc/PCP_GS_CAMP_CN.pdf · 2 bbs.percipio.xyz PCP_GS_CAMP_CN_04. 第一章 概述 1.4 资料准备 ... • Doc 目录 存放SDK API 参考文档,该文档内容包括类、结构和接口的详细信息,格式为使用Doxygen

3.3 ANDROID SDK 第三章 SDK操作指南

3.3. Android SDK

说明:

关于 SDK的结构说明,请参考“第二章”。本节以在 Linux环境下的 Android开发为例。

3.3.1 硬件准备

1. 使用 USB连接线将 PC与 Android设备连接。

2. 使用 USB连接线将摄像头与 Android设备连接。

3.3.2 下载 SDK

在 Linux环境下执行以下命令下载 SDK。

g i t c lone h t tps : / / g i t hub .com/ p e r c i p i o x y z / camport_andro id . g i t

3.3.3 使用 SDK

Android SDK为用户提供了查看深度图的示例程序,使用步骤如下:

1. 通过 adb运行如下命令,修改摄像头的访问权限。

chmod −R 777 / dev / bus / usb / *

说明:

根据 Linux 系统的权限管理机制,默认情况下需要 root 权限才能操作深度摄像头设备,非 root 用户可以创建

udev rule来修改设备权限。

2. 通过 adb复制 lib/armeabi目录下的库文件到 /system/lib/下。

3. 进入 SDK的 sample/binary_for_ARMV7目录。

4. 运行 SimpleView_FetchFrame。

(a) 复制 sample/binary_for_ARMV7/SimpleView_FetchFrame到 Android设备的 /data目录。

(b) 在命令行执行以下命令。

/ data / SimpleView_FetchFrame

5. 如要运行 Camport_FetchFrame.apk。

(a) 通过 adb安装 Campor_FetchFrame.apk和 OpenCV_2.4.9_Manager_2.18_armeabi.apk。

(b) 在 Android桌面打开 camport_fetchframe。

14 bbs.percipio.xyz PCP_GS_CAMP_CN_04

Page 19: Percipio SDK 入门指南res.percipio.xyz/doc/PCP_GS_CAMP_CN.pdf · 2 bbs.percipio.xyz PCP_GS_CAMP_CN_04. 第一章 概述 1.4 资料准备 ... • Doc 目录 存放SDK API 参考文档,该文档内容包括类、结构和接口的详细信息,格式为使用Doxygen

第三章 SDK操作指南 3.4 OPENNI2 SDK

3.3.4 编译 SDK

1. 搭建 Android的开发环境。

2. 下载 Android版本的 OpenCV SDK。

说明:

Camport_FetchFrame.apk 基于 OpenCV 开发,需要 OpenCV Android SDK 配合,具体步骤请参考 OpenCV 官

网。

3. 复制相关代码到开发环境。

4. 开始编译 SDK。

3.4. OpenNI2 SDK

3.4.1 下载 SDK说明:

关于 SDK的结构说明,请参考“第二章”。

在 Linux环境下执行以下命令下载 SDK。

g i t c lone h t tps : / / g i t hub .com/ p e r c i p i o x y z / Camport_OpenNI2 . g i t

3.4.2 安装 SDK

X64平台

$dpkg − i l i bopenn i2 −0_2 .2 .0 .33+ dfsg−4_amd64 . deb

$dpkg − i l i bopenn i2−dev_2 .2 .0 .33+ dfsg−4_amd64 . deb

ARM平台

$dpkg − i l i bopenn i2 −0_2 .2 .0 .33+ dfsg−4_armhf . deb

$dpkg − i l i bopenn i2−dev_2 .2 .0 .33+ dfsg−4_armhf . deb

PCP_GS_CAMP_CN_04 bbs.percipio.xyz 15

Page 20: Percipio SDK 入门指南res.percipio.xyz/doc/PCP_GS_CAMP_CN.pdf · 2 bbs.percipio.xyz PCP_GS_CAMP_CN_04. 第一章 概述 1.4 资料准备 ... • Doc 目录 存放SDK API 参考文档,该文档内容包括类、结构和接口的详细信息,格式为使用Doxygen

3.5 ROS SDK 第三章 SDK操作指南

3.5. ROS SDK

说明:

本节适用于机器人应用相关的产品,且您需要对 ROS(Robot Operating System)有一定的了解。

1. 按照 3.4节安装 OpenNI2 SDK。

2. 下载 ROS SDK。

$ g i t c lone h t tps : / / g i t hub .com/ p e r c i p i o x y z / camport_ros . g i t

3. 编译 ROS SDK。

$catkin_make

4. 配置环境变量。

$echo ” source ~/ camport_ros / deve l / setup . bash ” >> ~ / . bashrc

$source ~ / . bashrc

5. 在 RVIZ中查看 Depth Camera。

(a) 执行如下命令:

$roscore

$ros launch openni2_ launch openni2 . launch

$rosrun r v i z r v i z

(b) 在 RVIZ的 /camera/image/depth目录下添加深度图像视图。

6. 在 RVIZ中查看从深度图中仿真出的 Laser Scan图像。

(a) 执行如下命令:

$roscore

$ros launch depth image_to_ laserscan depth image_to_ laserscan . launch

$rosrun r v i z r v i z

(b) 在 RVIZ的 /scan/LaserScan目录下添加激光扫描视图。

注意: Percipio深度摄像头使用的“openni2_camera”和“openni2_launch”为非标准节点,如您需要

使用 ROS特性,请联系我们了解变更点(相对于标准节点)。

16 bbs.percipio.xyz PCP_GS_CAMP_CN_04

Page 21: Percipio SDK 入门指南res.percipio.xyz/doc/PCP_GS_CAMP_CN.pdf · 2 bbs.percipio.xyz PCP_GS_CAMP_CN_04. 第一章 概述 1.4 资料准备 ... • Doc 目录 存放SDK API 参考文档,该文档内容包括类、结构和接口的详细信息,格式为使用Doxygen

第四章 应用开发

本章描述使用 SDK提供的 API开发应用的基本流程,该流程适用于所有应用平台。

4.1. 相关概念

• device

深度摄像头整个模组称为一个 device(设备)。

• component

每个设备包含多个组件,包括左右 IR 摄像头、IR 激光器、RGB 摄像头等,这些组件我们称之为

component。另外,component 也可能是虚拟组件,从用户角度看并没有什么区别,例如深度摄像

头、点云摄像头等,编程人员可以把虚拟组件也当作真实存在的组件。

• feature

每个组件都有各自的参数,我们称之为 feature(参数)。不同组件的参数之间也可以存在联动关系,

例如左 IR 摄像头的分辨率和右 IR 摄像头的分辨率始终保持一致,修改其中一个会自动修改另一个,

这种关系称为 binding(绑定),绑定关系可以通过查询参数信息得知。

• 图像数据的获取方式

图像数据的获取方式有两种:Callback(回调函数)和 Fetch(主动获取)。这两种方式不能同时使用。

如果注册了 Callback,则 Fetch方式将会被内部屏蔽,从而拿不到数据。如果用户希望使用 Fetch方

式,则需注销 Callback(注册 NULL指针作为回调函数)。另外,回调函数会阻塞下一帧图像数据的

获取,因此,如果回调函数内操作的时间过长,会降低帧率。

• 设备采集方式设备有两种采集方式:连续采集和触发采集。触发方式有两种:硬件触发和软件触发。

软件触发的接口函数为 TYSendSoftTrigger()。

4.2. 开发流程

4.2.1 流程图

17

Page 22: Percipio SDK 入门指南res.percipio.xyz/doc/PCP_GS_CAMP_CN.pdf · 2 bbs.percipio.xyz PCP_GS_CAMP_CN_04. 第一章 概述 1.4 资料准备 ... • Doc 目录 存放SDK API 参考文档,该文档内容包括类、结构和接口的详细信息,格式为使用Doxygen

4.2 开发流程 第四章 应用开发

1.Initializing API

Start

2. Operating Device

3. Operating Component

4. Operating Feature

5. Operating FrameBuffer

6. Registering Callback

7. Starting Capture

Loop

7. Starting Capture

8. Fetching Frame

9. Calling Frame Handler

10. Stopping Capture

11. Closing Device

End

Y

N

Start

Handling Frame

Enqueuing Framebuffer

End

TYGetDeviceList

TYOpenDeviceTYOpenDeviceWithIP

Getting DeviceList

TYInitLib

Opening Device

3.1 Getting ComponentID

Setting Component

TYGetComponentIDs

TYGetEnabledComponentsTYDisableComponents

Program Flow API

Getting FeatureInfo

Setting Feature

TYGetFeatureInfo

TYGetIntRangeTYSetInt……

Getting FrameBufferSize

Allocating & Enqueuing

FrameBuffer

TYGetFrameBufferSize

TYEnqueueBuffer

12. Deinitialize API

TYStartCapture

TYDeinitLib

TYCloseDevice

TYStopCapture

图 4.1: SDK应用开发流程

4.2.2 流程说明

1. 初始化 API。

2. 操作设备。

18 bbs.percipio.xyz PCP_GS_CAMP_CN_04

Page 23: Percipio SDK 入门指南res.percipio.xyz/doc/PCP_GS_CAMP_CN.pdf · 2 bbs.percipio.xyz PCP_GS_CAMP_CN_04. 第一章 概述 1.4 资料准备 ... • Doc 目录 存放SDK API 参考文档,该文档内容包括类、结构和接口的详细信息,格式为使用Doxygen

第四章 应用开发 4.2 开发流程

(a) 获取设备列表。

初次获取设备信息时可以通过 TYGetDeviceList() 查询已连接的设备。在已知设备 ID 的情况下,

可以不调用该函数查询。

(b) 打开设备。

对于 USB 设备可以通过 TYOpenDevice() 打开设备;对于网络设备可以通过 TYOpenDevice-

WithIP()打开设备。

3. 操作组件。

(a) 查询组件状态。

使用 TYGetComponentIDs() 可查询所有组件状态;使用 TYGetEnabledComponents() 查询使能

状态的组件。

(b) 配置组件。每个设备打开后都必须配置组件,默认情况下只有虚拟组件 TY_COMPONENT_DEVICE

是使能状态。多个设备可以通过位或方式同时使能。代码示例如下:

cd source

i n t 3 2 _ t componentIDs = TY_COMPONENT_DEPTH_CAM | TY_COMPONENT_RGB_CAM;

TYEnableComponents ( hDevice , componentIDs ) ;

4. 操作参数。

(a) 查询指定参数的信息。通过填充结构体 TY_FEATURE_INFO来获取指定组件的指定参数的信息。

如果该组件不包含所指定的参数,则 TY_FEATURE_INFO中 isValid值为 false。

(b) 配置参数。

配置参数的 API按照参数的数据类型分类,如 TYGetIntRange,和 TYSetFloat等。

5. 给驱动程序分配 framebuffer。

(a) 查询当前配置下每个 framebuffer的大小。

(b) 分配 framebuffer并压入驱动内的缓冲队列。

驱动内部维护一个缓冲队列(buffer queue),每帧数据传出时会将填充好的 buffer 作 dequeue

操作,并完全传出给用户使用。用户需要保证新的一帧数据到来时驱动的缓冲队列 buffer queue

不为空,否则该帧数据将被丢弃。

6. 注册回调函数(主动获取模式下不调用)。

7. 启动采集。

8. 主动获取帧数据(主动获取模式下不调用)。

9. 停止采集。

10. 关闭设备。

11. 释放 API。

说明:

关于回调函数和其他 API请参考《Camport SDK API参考》。

PCP_GS_CAMP_CN_04 bbs.percipio.xyz 19

Page 24: Percipio SDK 入门指南res.percipio.xyz/doc/PCP_GS_CAMP_CN.pdf · 2 bbs.percipio.xyz PCP_GS_CAMP_CN_04. 第一章 概述 1.4 资料准备 ... • Doc 目录 存放SDK API 参考文档,该文档内容包括类、结构和接口的详细信息,格式为使用Doxygen

4.2 开发流程 第四章 应用开发

20 bbs.percipio.xyz PCP_GS_CAMP_CN_04

Page 25: Percipio SDK 入门指南res.percipio.xyz/doc/PCP_GS_CAMP_CN.pdf · 2 bbs.percipio.xyz PCP_GS_CAMP_CN_04. 第一章 概述 1.4 资料准备 ... • Doc 目录 存放SDK API 参考文档,该文档内容包括类、结构和接口的详细信息,格式为使用Doxygen

附录 A 支持资源

本章描述图漾为用户提供的支持资源,包括软件开发包、工具和相关的技术与文档支持。

本章结构如下:

• A.1资源下载

• A.2技术支持

• A.3文档支持

21

Page 26: Percipio SDK 入门指南res.percipio.xyz/doc/PCP_GS_CAMP_CN.pdf · 2 bbs.percipio.xyz PCP_GS_CAMP_CN_04. 第一章 概述 1.4 资料准备 ... • Doc 目录 存放SDK API 参考文档,该文档内容包括类、结构和接口的详细信息,格式为使用Doxygen

A.1 资源下载 附录 A 支持资源

A.1. 资源下载

图漾为用户提供硬件产品相关的资源下载,如 SDK和 PercipioTool等。

A.1.1 SDK

关于 SDK

Percipio SDK 是基于图漾信息科技深度摄像头的软件开发包,支持 Windows, Linux(OpenNI2)和 ROS

平台。该开发包为应用开发者提供了一系列友好的 API 和简单的应用示例程序。用户可以基于该开发包,

获取深度数据信息、灰度图像信息和点云数据,用于三维建模、导航、避障、手势识别等应用。

如何下载

您可以通过如下两种方式根据需要获取不同平台和版本的 SDK。

1. 进入 Percipio官网 >技术支持 >资源下载

2. 访问 Percipio Github

A.1.2 PercipioTool

关于 PercipioTool

通过 PercipioTool可以查看物体的 RGB图、深度图、点云图和灰度图信息。

如何下载

目前只提供支持 Windows平台的 PercipioTool。

• WIN7平台

• WIN10平台

A.2. 技术支持

我们对所有购买产品的用户提供以下两种官方技术支持方式:

1. 社区支持:请在 Percipio社区 >产品 Q&A > SDK软件发表您的问题。

2. 邮件支持:如需其他帮助,请发邮件至 [email protected]

22 bbs.percipio.xyz PCP_GS_CAMP_CN_04

Page 27: Percipio SDK 入门指南res.percipio.xyz/doc/PCP_GS_CAMP_CN.pdf · 2 bbs.percipio.xyz PCP_GS_CAMP_CN_04. 第一章 概述 1.4 资料准备 ... • Doc 目录 存放SDK API 参考文档,该文档内容包括类、结构和接口的详细信息,格式为使用Doxygen

附录 A 支持资源 A.3 文档支持

A.3. 文档支持

您可能需要了解以下文档内容:

• 图漾产品选型指南

本文档介绍图漾所有产品型号及其技术指标。

• SDK入门指南

本文档介绍 SDK的安装、编译和使用。

• API参考- HTML

本文档为 HTML版本的 API接口介绍。

• API参考- PDF

本文档为 PDF版本的 API接口介绍。

说明:

如需下载其他文档,请访问如下链接:

http://www.percipio.xyz/support/doc

PCP_GS_CAMP_CN_04 bbs.percipio.xyz 23