C++ (Linux平台)

Linux SDK 支持 AArch64、ARMv7hf、RaspberryPi、i686 和 x86-64 硬件平台,并为开发者编译程序提供相应平台的库文件。Linux SDK 未提供可执行的应用程序,用户可通过编译示例代码来生成可执行的应用。

下面以 Ubuntu18.04 为例介绍在 Linux 平台为 Percipio 深度相机搭建开发环境的过程:

  1. 下载 Camport3 SDK

  2. 安装 USB 驱动

  3. 安装依赖

  4. 设置 USB 设备访问权限

  5. 编译

  6. 运行

下载 Camport3 SDK

选择以下任意方式,下载 Camport3 SDK:

  • 使用浏览器下载: https://gitee.com/percipioxyz/camport3.git

  • 使用 git 指令获取本地副本:打开终端,切换到需存放 SDK 的工作目录下,输入 git clone 命令克隆远程仓库。

    git clone https://gitee.com/percipioxyz/camport3.git
    

Camport3 SDK 目录结构如下图所示:

Camport3 SDK目录结构

Camport3 SDK目录结构

Doc 目录

存放了 SDK API 参考文档。该文档是通过 Doxygen 生成的 PDF 文件,包括了类、结构和接口的描述信息。

include 目录

存放了用于调用动态库的头文件:

  • TYImageProc.h:图像后处理函数接口的头文件。

  • TYCoordinateMapper.h:图像空间转换的映射。

  • TYApi.h 文件:提供了用于配置深度相机、获取图像数据的全部 API。用户可以基于这些 API 开发自己的应用。

lib/linux 目录

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

lib/win 目录

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

sample 目录

存放了可供用户编程参考的示例程序。关于示例程序,详情请参见 示例程序说明

安装 USB 驱动

Camport SDK 默认使用 LibUSB 作为 USB 深度相机的用户态驱动库。

sudo apt-get install libusb-1.0-0-dev

安装依赖

CMake

CMake 是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。它能够输出各种各样的 makefile 或者 project 文件,能测试编译器所支持的 C++ 特性,类似 UNIX 下的 automake。只是 CMake 的组态档取名为 CMakeLists.txt。CMake 并不直接建构出最终的软件,而是产生标准的建构档(如 UNIX 的 Makefile 或 Windows Visual C++ 的 projects / workspaces),然后再以一般的建构方式使用。

Camport SDK 使用 CMake 来构建标准的工程,利用各平台的原生建构系统的能力,可适配不同的平台环境。

sudo apt-get install cmake

备注

Camport SDK 要求用户安装 CMake 2.8.0 及更高的版本。

OpenCV

Camport SDK 可通过 USB 接口或者以太网接口接收 Percipio 深度相机输出的深度数据。取得深度数据后,Camport SDK 中提供的示例程序使用 OpenCV 图像处理软件库进行深度数据的渲染。编译示例程序前,需要安装 OpenCV 图形处理软件库。

sudo apt-get install libopencv-dev

备注

  1. Camport SDK 要求用户安装 OpenCV 2.4.8 及更高版本。

  2. 如果目标应用程序不使用 OpenCV 进行图像显示或者其他图像处理计算,则无需安装 OpenCV。

设置 USB 设备访问权限

Linux 系统默认需要 root 权限才能直接访问 USB 设备。因此,访问 Percipio USB 深度相机 前,非 root 用户需要创建 udev rule 并修改 USB 设备的访问权限。

设置步骤如下:

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

    备注

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

    sudo nano /etc/udev/rules.d/88-tyusb.rules
    
  2. 在文件内添加以下规则,下方规则是将 usb 设备加入到 tofu 用户组。

    SUBSYSTEM== "usb",ATTRS{idProduct}=="1003",ATTRS{idVendor}=="04b4",GROUP="tofu",MODE="0666"
    
  3. 重启 PC 后获得 USB 深度相机的访问权限。

编译

进入 camport3 目录,执行以下命令编译示例代码。

sudo cp lib/linux/lib_x64/libtycam.so* /usr/lib/
cd sample
mkdir build
cd build
cmake ..
make

camport3/sample/build/bin 目录下生成若干编译生成的可执行文件。

运行

深度相机连接电脑后开始系统初始化,直到相机背面 Power 灯以 1Hz 的频率闪烁。相机初始化后,以 root 权限运行以下命令,即可接收并显示深度图像。

sudo ./SimpleView_FetchFrame