2. C++ (Ubuntu)¶
本章将介绍如何在 Ubuntu 上运行 C++ 例程。
2.1. 例程简介¶
例程主要分为4类: Basic 、 Advanced 、 Util 和 Laser 。
Basic
ConnectToCamera :连接到相机
ConnectAndCaptureImage :连接相机并采集2D图像
CaptureColorMap :从相机采集彩色图
CaptureDepthMap :从相机采集深度图
CapturePointCloud :从相机采集点云
CaptureHDRPointCloud :设置多次曝光采集点云
CapturePointCloudROI :设置ROI并采集点云
Advanced
CaptureCloudFromDepth :将深度图转化为点云
CaptureTimedAndPeriodically :循环采图 “暖机”
CaptureSimultaneouslyMultiCamera :多个相机同时采图
CaptureSequentiallyMultiCamera :多个相机轮流采图
Util
GetCameraIntri :获取并打印相机内参
PrintDeviceInfo :打印 SDK 以及相机固件版本信息
SetDepthRange :设置相机深度范围
SetUserSets :设置参数组,包括切换或增减参数组等
SetParameters :相机参数相关的各种设置,包括setUserSets的全部功能
Laser
SetLaserFramePartitionCount :设置激光相机的激光扫描分区号
SetLaserFrameRange :设置激光相机的激光扫描视野
SetLaserFringeCodingMode :设置激光相机的条纹编码模式
SetLaserPowerLevel :设置激光相机的功率级别
注意
以上例程已包含在 Mech-Eye SDK 软件包中 。
2.2. 准备工作¶
更新软件源列表,并安装依赖库。
sudo apt-get update sudo apt-get install -y build-essential pkg-config cmake
安装 Mech-Eye SDK 。
安装方法参考 在 Ubuntu 上安装 Mech-Eye SDK 。
安装完成后,samples(例程)文件夹的路径为
/opt/mech-mind/mech-eye-sdk/samples/
。安装第三方库。
标注有(OpenCV)或标注有(PCL)的例程需安装第三方库。
注意
若使用虚拟机安装软件,请预留 大于 20G 的磁盘空间,否则可能会导致安装失败。
安装 PCL 。
sudo apt-get install libpcl-dev
安装 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. 使用指南¶
编译例程。
在编译例程时,用户可以一次编译所有例程,也可以单独编译某个例程,二选一即可。
注意
每次修改例程下的源码文件,都需要重新编译以更新可执行文件。
一次编译所有例程。
进入例程文件夹。
cd /opt/mech-mind/mech-eye-sdk/samples/
在
/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
在当前路径执行 cmake 与 make 。
sudo cmake . sudo make
编译成功后,生成的例程位于
/opt/mech-mind/mech-eye-sdk/samples/
。
单独编译某个例程。
进入单个例程文件夹,此处以 CaptureSequentiallyMultiCamera 为例 。
cd /opt/mech-mind/mech-eye-sdk/samples/Advanced/CaptureSequentiallyMultiCamera/
在
/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
在当前路径执行 cmake 与 make 。
sudo cmake . sudo make
编译成功后,生成的例程位于
/opt/mech-mind/mech-eye-sdk/samples/Advanced/CaptureSequentiallyMultiCamera/
。
运行例程。
在
/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
文件提供关于该例程的简要说明。