C++(Ubuntu)

本章介绍如何在Ubuntu系统中使用CMake配置Mech-Eye API的C++例程,并使用make指令构建例程。

例程简介

目前提供了如下例程:

  • TriggerWithSoftwareAndFixedRate:通过软触发 + 固定频率的方式触发数据采集,然后获取并保存采集的数据。

  • TriggerWithExternalDeviceAndFixedRate:通过外部触发 + 固定频率的方式触发数据采集,然后获取并保存采集的数据。

  • TriggerWithSoftwareAndEncoder:通过软触发 + 编码器的方式触发数据采集,然后获取并保存采集的数据。

  • TriggerWithExternalDeviceAndEncoder:通过外部触发 + 编码器的方式触发数据采集,然后获取并保存采集的数据。

  • TriggerMultipleProfilersSimultaneously:异步触发多台轮廓测量仪进行采集,然后获取并保存采集的数据。

  • BlindSpotFiltering:识别并去除死角造成的错误数据,然后获取过滤后的轮廓线数据。

  • NoiseRemoval:去除深度数据中的噪点,然后获取过滤后的轮廓线数据。

  • ProfileAlignment:校正轮廓线中沿X轴和Z轴方向的振动(即对齐轮廓线),然后校正后的轮廓线数据。

  • RenderDepthMap:获取并保存使用jet配色方案渲染的深度图。

  • TransformPointCloud:获取并保存自定义坐标系下的点云。

  • ManageUserSets:管理参数组,如获取所有参数组的名称、新增参数组、切换参数组和保存参数设置至参数组。

  • PrintProfilerStatus:获取并打印轮廓测量仪型号、序列号、固件版本、温度等信息。

  • RegisterProfilerEvent:定义并注册检测轮廓测量仪事件的回调函数。

  • UseVirtualDevice:获取虚拟设备中储存的轮廓线数据,并生成和保存强度图和深度图。

关于触发轮廓测量仪进行数据采集的不同方式,请参考触发数据采集的方式

使用前提

使用Mech-Eye API的C++例程,需先满足以下使用前提:

若使用Ubuntu系统的虚拟机,请保证磁盘可用空间大于20G,否则软件安装可能失败。

获取例程

C++例程包含在Mech-Eye SDK的安装路径中,也可从GitHub克隆获取。安装路径中的例程为Mech-Eye SDK发布时的版本,GitHub上的例程可能包含最新修改。

  • 安装路径中的例程位于/opt/mech-mind/mech-eye-sdk/samples/cpp/profiler路径下;

  • 通过GitHub克隆获取的例程位于xxx/mecheye_cpp_samples/profiler路径下。

安装必需软件

使用Mech-Eye API的C++例程,必须更新软件源列表,并安装依赖库及Mech-Eye SDK。

  1. 更新软件源列表:

    sudo apt-get update
  2. 安装依赖库:

    sudo apt-get install -y build-essential pkg-config cmake
  3. 安装Mech-Eye SDK:详见Mech-Eye SDK安装指南(Ubuntu)

(可选)安装依赖的软件库

部分例程中的功能依赖以下第三方软件库。如需使用下表中列出的例程,则必须安装其依赖的软件库。

  • OpenCV:最新版本

如未安装可选软件库,则配置例程前必须执行禁用不需要的例程(可选)中的操作。

依赖第三方软件库的例程详见下表。

例程

BlindSpotFiltering

NoiseRemoval

ProfileAlignment

RenderDepthMap

TriggerWithSoftwareAndFixedRate

TriggerWithExternalDeviceAndFixedRate

TriggerWithSoftwareAndEncoder

TriggerWithExternalDeviceAndEncoder

TriggerMultipleProfilersSimultaneously

UseVirtualDevice

安装OpenCV

请执行以下命令安装最新版本的OpenCV:

sudo apt update && sudo apt install -y unzip
wget -O opencv.zip https://github.com/opencv/opencv/archive/4.x.zip
unzip opencv.zip
mkdir build && cd build
cmake ../opencv-4.x
cmake --build .
sudo make install

构建及运行例程

你可以一次性构建全部例程,也可以仅构建单独一个例程。

本节以安装路径中包含的例程为例提供相关路径,如使用从GitHub克隆获取的例程,需对应更改路径。

禁用不需要的例程(可选)

未安装可选软件库的情况下一次性构建全部例程时,必须进行该节的操作。否则使用CMake配置例程时将报错。

如不需要使用依赖OpenCV的例程,在一次性构建全部例程前,需对CMakeLists文件进行编辑,禁用这些例程。

  1. 在编辑器(如vi)中打开/opt/mech-mind/mech-eye-sdk/samples/cpp/profiler/CMakeLists.txt

  2. 编辑option语句:找option(USE_OPENCV…​)行,将行末的ON改为OFF,可禁用依赖OpenCV的例程。

  3. 在编辑器中保存对CMakeLists文件的修改。

构建例程

请执行以下步骤构建例程:

  1. 进入例程所在路径:

    • 如一次性构建全部例程,请使用以下指令。

      cd /opt/mech-mind/mech-eye-sdk/samples/cpp/profiler/
    • 如单独构建某个例程,请使用以下指令。将SampleName替换为例程名称。

      cd /opt/mech-mind/mech-eye-sdk/samples/cpp/profiler/SampleName/
  2. 在例程所在路径下新建build文件夹,用于保存编译完成的例程等。

    sudo mkdir build && cd build
  3. 配置并构建例程:

    sudo cmake ..
    sudo make
如修改了例程文件夹中的源码文件,需删除build文件夹后,重新执行第2和3步,重新构建例程。

运行例程

构建例程后,请执行以下步骤运行例程:

  1. 进入例程路径下的build文件夹(如构建例程后直接运行例程,可跳过此步):

    • 如一次性构建了全部例程,请使用以下指令。

      cd /opt/mech-mind/mech-eye-sdk/samples/cpp/profiler/build/
    • 如单独构建了某个例程,请使用以下指令。将SampleName替换为例程名称。

      cd /opt/mech-mind/mech-eye-sdk/samples/cpp/profiler/SampleName/build/
  2. 运行例程:将SampleName替换为例程名称。例程运行过程中,请根据提示输入待连接轮廓测量仪的编号(index),并按Enter键连接轮廓测量仪。

    sudo ./SampleName
  3. 如例程保存了图像或点云,将在build文件夹中得到保存的文件。

我们重视您的隐私

我们使用 cookie 为您在我们的网站上提供最佳体验。继续使用该网站即表示您同意使用 cookie。如果您拒绝,将使用一个单独的 cookie 来确保您在访问本网站时不会被跟踪或记住。