Linux 平台 (C++)

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

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

  1. 下载 Camport4 SDK

  2. 安装依赖

  3. (可选) 设置 USB 设备访问权限

  4. 编译

  5. 运行

下载 Camport4 SDK

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

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

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

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

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

Camport4 SDK目录结构

Camport4 SDK目录结构

Doc 目录

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

include 目录

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

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

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

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

  • TYVer.h 文件:SDK 版本号。

  • TYParameter.h 文件:提供了 GenICam 标准特征命名属性控制接口。

  • TYDefs.h 文件:图漾相机 SDK 数据类型定义。

lib/linux 目录

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

lib/win 目录

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

sample 目录

存放了 cloud_viewercommonsample_v1sample_v2 以及 sample_genicam_sfnc 子文件夹。

其中, sample_v1sample_v2 以及 sample_genicam_sfnc 这三个子文件夹中,均包含可供用户编程参考的示例程序。 sample_genicam_sfnc 文件夹中的 sample 示例代码基于兼容 GenICam 标准的 SDK 4.X.X 版本开发,仅适用于兼容该 SDK 版本的相机设备。

安装依赖

安装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。可直接使用更轻量的 Linux 操作系统最基础的图形显示接口来实现图像显示。

安装 USB 驱动(可选)

如使用 USB 相机,需先安装 USB 驱动。

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

设置 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"
    SUBSYSTEM== "usb",ATTRS{idProduct}=="1004",ATTRS{idVendor}=="04b4",GROUP="tofu",MODE="0667"
    
  3. 重启 PC 后获得 USB 相机的访问权限。

编译

  1. 准备环境

    进入 “camport4” 目录,执行以下命令复制必要的库文件并准备编译。

    sudo cp lib/linux/lib_x64/libty* /usr/lib/
    cd sample
    mkdir build
    cd build
    
  2. 执行编译

    运行以下命令进行编译,请将 /home/{SDK存放路径} 替换为您的实际 SDK 路径。

    cmake .. -DTYCam_DIR=/home/{SDK存放路径}/camport4
    make
    

    配置示例程序的编译选项

    上述代码默认编译所有示例代码 sample_genicam_sfncsample_v1sample_v2

    您可根据需求,在 cmake 命令中添加相应参数以定制编译内容:

    • 若无需编译 sample_genicam_sfncsample_v1,则 cmake 增加如下参数:

      cmake .. -DBUILD_SAMPLES=off
      
    • 若无需编译 sample_v2,则 cmake 增加如下参数:

      cmake .. -DBUILD_CPLUSPLUS_SAMPLE=off
      
    • 若无需编译 sample_genicam_sfnc 中的示例程序,则 cmake 增加以下参数:

      cmake .. -DBUILD_SAMPLE_GENICAM_SFNC=off
      
    • 若编译 sample_v2 中示例程序不依赖 OpenCV ,则 cmake 增加如下参数:

      cmake .. -DBUILD_SAMPLE_V2_WITH_OPENCV=off
      

    配置图像显示的编译选项

    cmake 编译过程默认开启图像显示,即编译时,系统将按以下顺序处理:

    1. 优先查找并使用本地已安装的 OpenCV 进行图像显示。

    2. 若未找到 OpenCV ,将直接使用更轻量的 Linux 操作系统最基础的图形显示接口来实现图像显示。

    如无需图像显示,请在 cmake 命令中添加相应参数:

    cmake -DBUILD_SAMPLE_WITH_GUI=OFF ..
    

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

运行

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

sudo ./sample_trigger