上位机与相机交叉编译开发环境

Percipio 网络深度相机支持用户在相机内部运行自己开发的嵌入式应用,用户可以充分利用相机内部的计算资源进行图像预处理或者应用逻辑处理。支持嵌入式应用的具体相机型号可咨询 Percipio 技术支持。

备注

USB 深度相机不支持用户在相机内部运行嵌入式应用。

示例程序编译

  1. 下载 Camport SOC SDK,链接:https://github.com/percipioxyz/camport3_soc.git

  2. 在 SDK 根目录下执行 ./build.sh,执行完成后, ./build/bin 目录下可以看到生成的可执行文件 RawFetchFrame。

  3. 通过 scp 或者 sftp 将可执行文件拷贝到相机的用户应用文件夹,请参考 应用安装

用户程序编译

  1. 参考 SDK 的 ./Sample/RawFetchFrame,在 Sample 目录下创建用户程序目录后开发应用程序。

  2. 修改 ./Sample/CMakeLists.txt,在 ALL_SAMPLES 中增加用户程序目录路径。

  3. 执行 ./build.sh,执行完成后, ./build/bin 目录下生成可执行文件。

  4. 通过 scp 或者 sftp 将可执行文件拷贝到相机的用户应用文件夹,请参考 应用安装

使用 Opencv的程序编译流程

  1. 参考 SDK 的 ./Sample/RawFetchFrame, 在 Sample 目录下创建使用 OpenCV 的程序目录后开发应用程序。

  2. 修改 ./Sample/CMakeLists.txt,在 ALL_SAMPLES 中增加使用 OpenCV 的程序目录路径。

  3. 执行 ./build.sh opencv,执行完成后, ./build/bin 目录下生成可执行文件。

  4. 通过 scp 或者 sftp 将可执行文件拷贝到相机的用户应用文件夹,同时,将需要的 OpenCV 库拷贝到相机,OpenCV 库在 ./ThirdPartyLib/Opencv-3.4/lib 目录下,请参考 应用安装

程序和库文件的安装

  1. 通过 scp 或者 sftp 将需要安装的文件拷贝到相机上的 /mnt/ram 目录下:

    scp ur_FILES percipio@XXX.XXX.XXX.XXX:/mnt/ram
    
  2. 使用 putty 或者其他终端远程登录相机:

    ssh percipio@XXX.XXX.XXX.XXX
    
  3. 在相机内将压缩包解压,并将执行文件以及共享库等拷贝到 /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
    
  4. 执行 sync 命令,将修改固化到 flash 中。

备注

  1. 拷贝过程分两步,首先务必要复制到 /mnt/ram 目录下,以防应用程序是压缩打包的文件,解压过程中文件系统空间不够而出错。

  2. 文件少的时候可以不使用用压缩文件,文件较多的时候建议要打包之后拷贝到相机上解压缩;目前相机支持 tartar.gztar.bz2、未加密的 zip 文件这几种压缩文件,分别使用 tar -xvftar -xzvftar -xjvfunzip 命令解压。

  3. 用户二次开发目录 /usr/local 的最大存储容量为 25MB。

  4. 文件解压缩后,务必复制到用户目录下,否则 /mnt/ram 中内容重启之后会丢失。

  5. 开发中使用的 libtycam.so 库文件,相机文件系统中已经包含,用户不必再次拷贝到 /usr/local/lib 下。

  6. 用户安装的应用程序或者脚本需要添加执行权限 chmod a+x ELFS_FILENNAME

  7. XXX.XXX.XXX.XXX 为目标相机的 IP 地址。

设置程序开机启动

  1. 登录相机

    ssh percipio@XXX.XXX.XXX.XXX
    
  2. 修改启动脚本

    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
    
  3. 在控制台执行 sync 指令写入存储系统,并重启设备。

警告

  1. 调试过程中若需要重启 gevcam,需要运行 killall percipio_gev_disd

  2. 不要在启动脚本中添加 reboot 等类似的语句!

网络配置

  1. 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
    

    警告

    1. 请谨慎修改 IP 地址、子网掩码、网关;如果设置不正确的值,会导致无法连接相机。

    2. 务必在控制台执行 sync 指令把修改写入存储系统,并重启设备。

  2. 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