Python(Ubuntu)¶
本章将介绍如何在 Ubuntu 上运行 Python 例程。
例程简介¶
例程分为 5 类:Basic、Advanced、Util、Laser 和 UHP。
Basic
ConnectToCamera:连接相机。
ConnectAndCaptureImage:连接相机并获取 2D 图、深度图及点云数据。
CaptureColorMap:从相机获取并保存 2D 图。
CaptureDepthMap:从相机获取并保存深度图。
CapturePointCloud:使用单个曝光时间采集图像,生成并保存白色点云和彩色点云。
CaptureHDRPointCloud:使用多个曝光时间采集图像,生成并保存白色点云和彩色点云。
CapturePointCloudROI:获取并保存感兴趣区域内的白色点云和彩色点云。
CapturePointCloudFromTextureMask:从覆盖掩膜的 2D 图和深度图生成并保存白色点云和彩色点云。
Advanced
CaptureCloudFromDepth:从 2D 图与深度图生成并保存点云。
CaptureSequentiallyMultiCamera:使用多台相机按序获取并保存 2D 图、深度图及点云。
CaptureSimultaneouslyMultiCamera:使用多台相机同时获取并保存 2D 图、深度图及点云。
CaptureTimedAndPeriodically:在设定时间内,定时获取并保存 2D 图、深度图和点云。
Util
GetCameraIntri:获取并打印相机内参。
PrintDeviceInfo:获取并打印相机型号、序列号、固件版本、温度等信息。
SetDepthRange:设置相机深度范围。
SetParameters:设置相机参数。
SetUserSets:执行参数组相关功能,如获取参数组名称,修改参数组名称,保存参数组参数信息等。通过参数组可以保存一组参数值并快速应用。
Laser
SetLaserFramePartitionCount:将投影仪视野分为多个分区,结构光一次投射到一个分区。整个视野的输出由所有分区的图像融合而成。
SetLaserFrameRange:设置结构光投射范围,整个视野范围从 0 到 100。
SetLaserFringeCodingMode:设置结构光样式的编码模式。
SetLaserPowerLevel:设置激光器的输出功率(最大输出功率的百分比),影响激光强度。
UHP
SetUHPCaptureMode:设置采集模式(分为:2D 相机 1,2D 相机 2 及同时使用两个 2D 相机并融合输出)。
SetUHPFringeCodingMode:设置结构光样式的编码模式。
部分例程需安装第三方库后,才可使用,详见下表:
Samples |
open3d |
opencv-python |
CaptureColorMap |
√ |
|
CaptureDepthMap |
√ |
|
CapturePointCloud |
√ |
|
CaptureHDRPointCloud |
√ |
|
CapturePointCloudROI |
√ |
|
CapturePointCloudFromTextureMask |
√ |
|
CaptureCloudFromDepth |
√ |
准备工作¶
确保 Python 版本在 3.6.5 至 3.10 之间。
(可选)安装 OpenCV。
sudo apt-get install libopencv-dev sudo apt-get install python3-opencv
(可选)安装 Open3D。
sudo pip install open3d
使用指南¶
安装软件¶
在线安装
安装 pip。
sudo apt install python3-pip如已安装 pip,需保证 pip 版本在 20.3 或以上。使用以下指令升级 pip:
python3 -m pip install --upgrade pip安装 MechEyeApi。
sudo pip3 install MechEyeApi
离线安装
确认本地已有 .whl 安装包。
安装 .whl 安装包。
pip3 install xxx.whl查看软件包是否已安装。
pip3 list
运行例程¶
下载例程。
cd ~ git clone https://github.com/MechMindRobotics/mecheye_python_samples.git
进入各个例程文件夹内,运行程序(此处以 ConnectToCamera.py 为例)。
cd ~/mecheye_python_samples/source/Basic sudo python3 ConnectToCamera.py
输出结果如下所示:
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: Vx.x.x Firmware Version: Vx.x.x ............................ 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 命令以系统管理者的身份执行例程程序 。
涉及采集图像或点云的例程,运行结束后,默认将图片或点云数据保存至该例程文件所在的目录下。
调用 Mech-Eye API 前,需调用接口命令,命令为:
python3 import MechEye
请在 import open3d` 前 import MechEye。