Linux Arm架构(nvidia nx/AGX板子)图漾相机python SDK配置

相机型号:TL460-E1-S1
主要参考教程:快速入门 — PercipioDC V 2.4.0 documentation

一、下载SDK包

Comport3 SDK(C++)

虽然目标是相机的Python接口,但是C++版本的SDK包含一些后续编译不可缺少的lib库,必须下载。且这里的样例功能更全面,可以编译出来用于修改相机IP、拉取设备列表、测试相机等。
选择以下任意方式,下载 Camport3 SDK:

  1. 使用浏览器访问 http://github.com/percipioxyz/ 并下载 Camport3 SDK。
  2. 使用 git 指令获取本地副本:打开终端,切换到需存放 SDK 的工作目录下,输入 git clone 命令克隆远程仓库。
git clone https://github.com/percipioxyz/camport3.git

MultiLanguage SDK

用于编译获取python版本SDK。
选择以下任意方式,下载 MultiLanguage SDK。

  1. 在图漾官网下载中心下载:https://www.percipio.xyz/downloadcenter/。
  2. 使用 git 指令获取本地副本:打开终端,切换到需存放 SDK 的工作目录下,输入 git clone 命令克隆远程仓库。
git clone https://github.com/alphaliang/pcammls.git。

二、安装依赖

CMAKE

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

sudo apt-get install cmake

python、python-opencv、 numpy

可以创建一个虚拟环境,再安装python。可以参考Python安装教程(pytorch环境配置)_YXLiii的博客-CSDN博客_安装pytorch环境
激活环境后安装python-opencv和numpy。
conda activate tuyang(tuyang是环境名,可以替换成自己的)

sudo apt-get install libopencv-dev
sudo apt-get install python-numpy

三、硬件连接

笔记本网口不具供电功能,接上相机指示灯不亮,没有反应。换了nvidia nx板子以后,相机电源指示灯正常,Power 灯以 1Hz 的频率闪烁,运行程序发现获取一次图像就找不到设备了,原因是网口供电标准AF是不够的。如果是网口供电,那么POE供电标准为AT标准,也就是功率30W以上。不太确定AF是否可用,按理说可以。如果没有网口,就用DC供电。下面将供电需求整理了一下。

网口供电需求:POE 供电标准IEEE 802.3 at

PoE国际技术标准经过演变,目前主要有以下三种:IEEE 802.3 af, IEEE 802.3 at, IEEE 802.3 bt标准。每种标准规范对受电端的功率要求、供电端的功率、供电端电压范围、受电端电压范围等参数的要求都不同。具体规范参见表一(部分)。
IEEE 802.3 af/at/bt 标准基础参数对比
表一:IEEE 802.3 af/at/bt 标准基础参数对比
参考文档:PoE供电的三种国际标准 (utepo.com)
注:网口需要是千兆网口

DC供电:36V-48V

DC供电:干电池、蓄电池、直流发电机等供电。相机连接两根线,一根连接普通网口,另一根连接36V-48V电源。通电后,深度相机连接电脑后开始系统初始化,直到相机背面 Power 灯以 1Hz 的频率闪烁。就连接好啦。

四、编译camport3

编译

将压缩包解压后,进入 camport3 目录,执行以下命令编译示例代码。

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

在 camport3/sample/build/bin 目录下生成若干编译生成的可执行文件。
测试能否找到设备
查看设备列表是否能找到相机。运行如下命令:

sudo ./ListDevices

以我的设备为例,找到3个设备接口,一个USB、两个网口,一个是用于网络连接的,那么另一个就是相机。
以 root 权限运行以下命令,即可接收并显示深度图像。至此说明相机是没问题的,为后续进行python接口编译奠定基础。

sudo ./SimpleView_FetchFrame
提醒

运行应用程序后,如果提示 “Couldn’t open device, some information will be missing, ret: -3”,请检查系统的访问权限配置是否正确。

如果找不到相机 / 能找到相机但无法获取数据,可以尝试以下两种方法
  1. 设置网络
    设置自己的网络为自动获取IP(DHCP)或本地链接(Link-Local Only)

  2. 设置网络深度相机 IP 地址
    在camport3/sample/build/bin 目录下运行终端。
    示例程序:ForceDeviceIP
    设置为动态 IP 地址(新版相机支持)
    指令:ForceDeviceIP.exe -dynamic <MAC>
    其中, 可从设备标签上获得,格式一般为:xx:xx:xx:xx:xx:xx。该指令执行后,会清空网络深度相机 IP 配置,恢复为 DHCP 动态获取方式并立即动态申请 IP 地址;相机断电重启后,设备主动以 DHCP 方式申请 IP。某些旧版本相机不支持该指令。
    示例:ForceDeviceIP.exe -dynamic 68:f7:56:36:90:a3
    设置为动态 IP 地址(旧/新版相机支持)
    指令:ForceDeviceIP.exe -dynamic <MAC> <newIP> <newNetmask> <newGateway>
    其中, 可从设备标签上获得,格式一般为:xx:xx:xx:xx:xx:xx; 为临时使用的 IP 地址、掩码。该指令执行后,会临时使用 newIP 配置相机,然后清空相机 IP 配置,恢复为 DHCP 动态获取方式并立即动态申请 IP 地址。相机断电重启后,设备保持以 DHCP 方式申请 IP 地址。
    示例:ForceDeviceIP.exe -dynamic 68:f7:56:36:90:a3 192.168.1.160 255.255.255.0 192.168.1.1

五、编译SWIG 4.0.1并安装

参考教程:https://blog.csdn.net/qq_45237293/article/details/105282298
下载SWIG 4.0.1,试过4.0.2 会报如下错误。
在这里插入图片描述
换成swig 4.0.1,如果报如下错误:
在这里插入图片描述
原因是未设置库,或库不对,可运行如下代码修改,其中lib_Aarch64根据自己的网络架构修改。

sudo cp lib/linux/lib_Aarch64/libtycam.so* /usr/lib/

六、编译MultiLanguage SDK python接口

按照以下步骤,编译示例代码:
打开 pcammls-master 目录下 CMakeLists.txt,修改 camport3 的本地路径、编译目标语言(PYTHON)及 PYTHON 版本,如下图所示:
在这里插入图片描述

在 pcammls-master 目录下打开终端并依次执行以下命令:

mkdir build
cd build
cmake ..
make
sudo make install

编译后,切换至目录 /usr/local/PYTHON 并运行生成的 python 文件即可。生成的库也在里面。
编译出的文件为只读模式,如果需要二次开发,则cd 到/usr/local/PYTHON目录下修改权限

sudo chmod 777 文件名

或者

sudo chmod 777 *
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值