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 生成,包括了类、结构和接口的描述信息。

SDK API 参考文档

SDK API 参考文档

include 目录

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

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

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

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

lib/linux 目录

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

lib/win 目录

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

sample 目录

存放了 sample_v1 和 sample_v2 两个子文件夹,均包含可供用户编程参考的示例程序。关于示例程序,详情请参见 C++ 示例程序列表

注解

sample_v2 中的示例程序在 sample_v1 的基础上,增加了便捷的相机控制接口,并提供了是否依赖 OpenCV 的选项。

安装 USB 驱动

无论使用 USB 相机还是网络相机,编译和运行 Camport SDK 都需要安装 USB 驱动。

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

安装依赖

安装CMake

  1. 终端输入命令安装 CMake 。

    sudo apt-get install cmake
    
  2. 验证安装是否成功,若显示版本号,则安装成功。

    cmake --version
    

注解

推荐安装 CMake 3.24.0 版本(此版本经测试 100% 兼容支持,其他版本未经测试,不保证兼容性)。

安装OpenCV(可选)

sudo apt-get install libopencv-dev

注解

  1. 推荐安装 OpenCV 4.5.5 版本(此版本经测试 100% 兼容支持,其他版本未经测试,不保证兼容性)。

  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/
sudo cp lib/linux/lib_x64/libtyimgproc.so* /usr/lib/
cd sample
mkdir build
cd build
cmake ..
make

若仅需编译 sample_v2 中的示例程序,则 cmake 增加如下参数:

cmake .. -DBUILD_SAMPLES=off

若 sample_v2 中示例程序不依赖 OpenCV ,则 cmake 增加如下:

cmake .. -DBUILD_SAMPLES=off -DBUILD_SAMPLE_V2_WITH_OPENCV=off

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

运行

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

sudo ./SimpleView_FetchFrame