2. C++ (Ubuntu)

本章将介绍如何在 Ubuntu 上运行 C++ 例程。

2.1. 例程简介

例程主要分为4类: BasicAdvancedUtilLaser

Basic 例程:与连接和基础采集相关。
Advanced 例程:与高级采集技巧相关。
Util 例程:与获取相机信息及设置参数相关。
Laser 例程:仅适用于激光相机。

注意

以上例程已包含在 Mech-Eye SDK 软件包中 。

2.2. 准备工作

  1. 更新软件源列表,并安装依赖库。

    sudo apt-get update
    sudo apt-get install -y build-essential pkg-config cmake
    
  2. 安装 Mech-Eye SDK 。

    安装方法参考 在 Ubuntu 上安装 Mech-Eye SDK

    安装完成后,samples(例程)文件夹的路径为 /opt/mech-mind/mech-eye-sdk/samples/

  3. 安装第三方库。

    标注有(OpenCV)或标注有(PCL)的例程需安装第三方库。

    注意

    若使用虚拟机安装软件,请预留 大于 20G 的磁盘空间,否则可能会导致安装失败。

    1. 安装 PCL 。

      sudo apt-get install libpcl-dev
      
    2. 安装 OpenCV 。

      wget https://github.com/opencv/opencv/archive/3.4.5.tar.gz
      tar -zxvf 3.4.5.tar.gz
      cd opencv-3.4.5
      mkdir build
      cd build
      cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=`pwd`/install ..
      make && make install
      pkg-config --modversion opencv
      

2.3. 使用指南

  1. 编译例程。

    在编译例程时,用户可以一次编译所有例程,也可以单独编译某个例程,二选一即可。

    注意

    每次修改例程下的源码文件,都需要重新编译以更新可执行文件。

    • 一次编译所有例程。

      1. 进入例程文件夹。

        cd /opt/mech-mind/mech-eye-sdk/samples/
        
      2. /opt/mech-mind/mech-eye-sdk/samples/ 路径下,打开 CMakeLists.txt 文件,定位到第 88 行(set(OpenCV_DIR “/home/ubuntu/3rdParties/opencv-3.4.5/build”)),将双引号中的路径替换为本地 OpenCV 的 build 路径。

        sudo vi CMakeLists.txt
        
      3. 在当前路径执行 cmake 与 make 。

        sudo cmake .
        sudo make
        

        编译成功后,生成的例程位于 /opt/mech-mind/mech-eye-sdk/samples/

    • 单独编译某个例程。

      1. 进入单个例程文件夹,此处以 CaptureSequentiallyMultiCamera 为例 。

        cd /opt/mech-mind/mech-eye-sdk/samples/Advanced/CaptureSequentiallyMultiCamera/
        
      2. /opt/mech-mind/mech-eye-sdk/samples/Advanced/CaptureSequentiallyMultiCamera/ 路径下,打开 CMakeLists.txt 文件,定位到此行 set(OpenCV_DIR "/home/ubuntu/3rdParties/opencv-3.4.5/build") ,将双引号中的路径替换为本地 OpenCV 的 build 路径。本步骤仅在使用 OpenCV 的例程中需要执行。

        sudo vi CMakeLists.txt
        
      3. 在当前路径执行 cmake 与 make 。

        sudo cmake .
        sudo make
        

        编译成功后,生成的例程位于 /opt/mech-mind/mech-eye-sdk/samples/Advanced/CaptureSequentiallyMultiCamera/

  2. 运行例程。

    /opt/mech-mind/mech-eye-sdk/samples/ 路径下,以 ConnectToCamera 为例:

    sudo ./ConnectToCamera
    

    输出结果如下所示:

    Find Mech-Eye device...
    Mech-Eye device index : 0
    ............................
    Camera Model Name: Mech-Eye Pro M Enhanced
    Camera ID:         NEC15221A3000001
    Camera IP Address: 192.168.xx.xx
    Hardware Version:  V3.0.0
    Firmware Version:  V1.5.2
    ............................
    
    Please enter the device index you want to connect: 0
    Connected to the Mech-Eye device successfully.
    Disconnected from the Mech-Eye device successfully.
    

    程序运行过程中,请根据提示选择待连接相机编号,并等待程序运行完毕。

注意

  • 涉及采集点云的例程,普通用户没有权限对点云文件进行写入操作,所以使用 sudo 命令以系统管理者的身份执行例程程序 。

  • 涉及采集图像或点云的例程,运行结束后,默认将图片或点云数据保存至 /opt/mech-mind/mech-eye-sdk/samples/

小技巧

在每个例程文件夹下,ReadMe.txt 文件提供关于该例程的简要说明。