上位机与相机交叉编译开发环境
Percipio 网络深度相机支持用户在相机内部运行自己开发的嵌入式应用,用户可以充分利用相机内部的计算资源进行图像预处理或者应用逻辑处理。支持嵌入式应用的具体相机型号可咨询 Percipio 技术支持。
备注
USB 深度相机不支持用户在相机内部运行嵌入式应用。
示例程序编译
下载 Camport SOC SDK,链接:https://github.com/percipioxyz/camport3_soc.git
在 SDK 根目录下执行
./build.sh
,执行完成后,./build/bin
目录下可以看到生成的可执行文件 RawFetchFrame。通过 scp 或者 sftp 将可执行文件拷贝到相机的用户应用文件夹,请参考 应用安装。
用户程序编译
参考 SDK 的
./Sample/RawFetchFrame
,在 Sample 目录下创建用户程序目录后开发应用程序。修改
./Sample/CMakeLists.txt
,在 ALL_SAMPLES 中增加用户程序目录路径。执行
./build.sh
,执行完成后,./build/bin
目录下生成可执行文件。通过
scp
或者sftp
将可执行文件拷贝到相机的用户应用文件夹,请参考 应用安装。
使用 Opencv的程序编译流程
参考 SDK 的
./Sample/RawFetchFrame
, 在 Sample 目录下创建使用 OpenCV 的程序目录后开发应用程序。修改
./Sample/CMakeLists.txt
,在 ALL_SAMPLES 中增加使用 OpenCV 的程序目录路径。执行
./build.sh opencv
,执行完成后,./build/bin
目录下生成可执行文件。通过
scp
或者sftp
将可执行文件拷贝到相机的用户应用文件夹,同时,将需要的 OpenCV 库拷贝到相机,OpenCV 库在./ThirdPartyLib/Opencv-3.4/lib
目录下,请参考 应用安装。
程序和库文件的安装
通过
scp
或者sftp
将需要安装的文件拷贝到相机上的/mnt/ram
目录下:scp ur_FILES percipio@XXX.XXX.XXX.XXX:/mnt/ram
使用
putty
或者其他终端远程登录相机:ssh percipio@XXX.XXX.XXX.XXX
在相机内将压缩包解压,并将执行文件以及共享库等拷贝到
/usr/local
下相应的目录中:cd /mnt/ram cp ur_ELFS_FILENNAME /usr/local/bin cp ur_lib*.so /usr/local/lib/ cp ur*config /usr/local/etc
执行
sync
命令,将修改固化到 flash 中。
备注
拷贝过程分两步,首先务必要复制到
/mnt/ram
目录下,以防应用程序是压缩打包的文件,解压过程中文件系统空间不够而出错。文件少的时候可以不使用用压缩文件,文件较多的时候建议要打包之后拷贝到相机上解压缩;目前相机支持
tar
、tar.gz
、tar.bz2
、未加密的zip
文件这几种压缩文件,分别使用tar -xvf
、tar -xzvf
、tar -xjvf
、unzip
命令解压。用户二次开发目录
/usr/local
的最大存储容量为 25MB。文件解压缩后,务必复制到用户目录下,否则
/mnt/ram
中内容重启之后会丢失。开发中使用的
libtycam.so
库文件,相机文件系统中已经包含,用户不必再次拷贝到/usr/local/lib
下。用户安装的应用程序或者脚本需要添加执行权限
chmod a+x ELFS_FILENNAME
。XXX.XXX.XXX.XXX 为目标相机的 IP 地址。
设置程序开机启动
登录相机
ssh percipio@XXX.XXX.XXX.XXX
修改启动脚本
vi /usr/local/etc/start_app.sh 1 #!/bin/bash 2 # Created By: Leon Zhou 3 # Created Time: 2019-04-26 20:29:12 4 # Modified Time: 2019-04-26 20:33:22 5 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib/ 6 export PATH=$PATH:/usr/local/sbin:/usr/sbin:/sbin 7 8 #Add your app start command below
在第8行添加你的 app 的启动命令,例如:
1 #!/bin/bash 2 # Created By: Leon Zhou 3 # Created Time: 2019-04-26 20:29:12 4 # Modified Time: 2019-04-26 20:33:22 5 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib/ 6 export PATH=$PATH:/usr/local/sbin:/usr/sbin:/sbin 7 8 #Add your app start command below 9 /usr/loca/bin/your_app
在控制台执行
sync
指令写入存储系统,并重启设备。
警告
调试过程中若需要重启
gevcam
,需要运行killall percipio_gev_disd
。不要在启动脚本中添加
reboot
等类似的语句!
网络配置
IP 设置
系统默认使用 DHCP 模式动态获取 IP 地址。
静态 IP 设置
登录相机执行下方指令或者应用程序或者脚本中修改下方配置文件进行 IP 配置,不建议使用 ifconfig 或者其他方式直接修改 IP,避免相机 IP 管理混乱。此方法修改之后配置文件固化在相机中,在重启相机之后生效。
echo "your_ip" > /etc/device_ip echo "your_gw" > /etc/device_gw echo "your_netmask" > /etc/device_netmask
动态IP设置
echo "" > /etc/device_ip echo "" > /etc/device_gw echo "" > /etc/device_netmask
警告
请谨慎修改 IP 地址、子网掩码、网关;如果设置不正确的值,会导致无法连接相机。
务必在控制台执行
sync
指令把修改写入存储系统,并重启设备。
NTP 服务器配置
小技巧
配置 NTP 服务器之前,需将相机的对时方式设置为 NTP 对时,详情请参见 对时设置。
相机支持 NTP 时间同步,默认使用的 NTP 服务器为:’cn.ntp.org.cn’ ‘0.ubuntu.pool.ntp.org’ ‘1.ubuntu.pool.ntp.org’。
如果用户已搭建了 NTP 服务器,可以执行下方指令将搭建 NTP 服务器的 IP 或者域名添加在
/etc/ntp_server
中:echo your_ntp_server > /etc/ntp_server