Linux 平台 (C++)
Linux SDK 支持 AArch64、ARMv7hf、RaspberryPi、i686 和 x86-64 硬件平台,并为开发者编译程序提供相应平台的库文件。Linux SDK 未提供可执行的应用程序,用户可通过编译示例代码来生成可执行的应用。
下面以 Ubuntu20.04 为例介绍在 Linux 平台为 Percipio 深度相机搭建开发环境的过程:
下载 Camport4 SDK
选择以下任意方式,下载 Camport4 SDK:
使用 git 指令获取本地副本:打开终端,切换到需存放 SDK 的工作目录下,输入 git clone 命令克隆远程仓库。
git clone https://gitee.com/percipioxyz/camport4.git
选择以下任意方式,下载 Camport4 SDK:
使用 git 指令获取本地副本:打开终端,切换到需存放 SDK 的工作目录下,输入 git clone 命令克隆远程仓库。
git clone https://github.com/percipioxyz/camport4.git
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_viewer、 common、 sample_v1、 sample_v2 以及 sample_genicam_sfnc 子文件夹。
其中, sample_v1、 sample_v2 以及 sample_genicam_sfnc 这三个子文件夹中,均包含可供用户编程参考的示例程序。
sample_genicam_sfnc 文件夹中的 sample 示例代码基于兼容 GenICam 标准的 SDK 4.X.X 版本开发,仅适用于兼容该 SDK 版本的相机设备。
安装依赖
安装CMake
终端输入命令安装 CMake 。
sudo apt-get install cmake
验证安装是否成功,若显示版本号,则安装成功。
cmake --version
注解
推荐安装 CMake 3.24.0 版本(此版本经测试 100% 兼容支持,其他版本未经测试,不保证兼容性)。
安装OpenCV(可选)
sudo apt-get install libopencv-dev
注解
推荐安装 OpenCV 4.5.5 版本(此版本经测试 100% 兼容支持,其他版本未经测试,不保证兼容性)。
如果目标应用程序不使用 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 设备的访问权限。
设置步骤如下:
在 “etc/udev/rules.d” 目录下新建一个扩展名为
.rules的规则文件(如 88-tyusb.rules)。注解
规则文件名的开头须为数字 (0 ~ 99),数字越大,优先级越高。
sudo nano /etc/udev/rules.d/88-tyusb.rules
在文件内添加以下规则,下方规则是将 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"
重启 PC 后获得 USB 相机的访问权限。
编译
准备环境
进入 “camport4” 目录,执行以下命令复制必要的库文件并准备编译。
sudo cp lib/linux/lib_x64/libty* /usr/lib/ cd sample mkdir build cd build
执行编译
运行以下命令进行编译,请将
/home/{SDK存放路径}替换为您的实际 SDK 路径。cmake .. -DTYCam_DIR=/home/{SDK存放路径}/camport4 make
配置示例程序的编译选项
上述代码默认编译所有示例代码
sample_genicam_sfnc、sample_v1、sample_v2。您可根据需求,在 cmake 命令中添加相应参数以定制编译内容:
若无需编译
sample_genicam_sfnc、sample_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 编译过程默认开启图像显示,即编译时,系统将按以下顺序处理:
优先查找并使用本地已安装的 OpenCV 进行图像显示。
若未找到 OpenCV ,将直接使用更轻量的 Linux 操作系统最基础的图形显示接口来实现图像显示。
如无需图像显示,请在 cmake 命令中添加相应参数:
cmake -DBUILD_SAMPLE_WITH_GUI=OFF ..
在 “camport4/sample/build/bin” 目录下生成若干编译生成的可执行文件。
运行
深度相机连接电脑后开始系统初始化,直到相机的 STAT 灯以 1Hz 的频率闪烁。相机初始化后,以 root 权限运行以下命令,即可接收并显示深度图像。
sudo ./sample_trigger