Python (Ubuntu)¶
This section describes how to run Python samples on Ubuntu.
Sample List¶
Samples are divided into five categories, Basic, Advanced, Util, Laser and UHP.
Basic: camera connection and basic capturing functions.
Advanced: advanced capturing functions.
Util: obtain information from a camera and set camera parameters.
Laser: for Laser, LSR and DEEP series cameras only.
UHP: for UHP series cameras only.
Basic
ConnectToCamera: Connect to a Mech-Eye Industrial 3D Camera.
ConnectAndCaptureImage: Connect to a camera and obtain the 2D image, depth map and point cloud data.
CaptureColorMap: Obtain and save the 2D image from a camera.
CaptureDepthMap: Obtain and save the depth map from a camera.
CapturePointCloud: Obtain and save untextured and textured point clouds generated from images captured with a single exposure time.
CaptureHDRPointCloud: Obtain and save untextured and textured point clouds generated from images captured with multiple exposure times.
CapturePointCloudROI: Obtain and save untextured and textured point clouds of the objects in the ROI from a camera.
CapturePointCloudFromTextureMask: Construct and save untextured and textured point clouds generated from a depth map and masked 2D image.
Advanced
CaptureCloudFromDepth: Construct and save point clouds from the depth map and 2D image obtained from a camera.
CaptureSequentiallyMultiCamera: Obtain and save 2D images, depth maps and point clouds sequentially from multiple cameras.
CaptureSimultaneouslyMultiCamera: Obtain and save 2D images, depth maps and point clouds simultaneously from multiple cameras.
CaptureTimedAndPeriodically: Obtain and save 2D images, depth maps and point clouds periodically for the specified duration from a camera.
Util
GetCameraIntri: Get and print a camera’s intrinsic parameters.
PrintDeviceInfo: Get and print a camera’s information such as model, serial number, firmware version and temperatures.
SetDepthRange: Set the range of depth values to be retained by a camera.
SetParameters: Set specified parameters to a camera.
SetUserSets: Perform functions related to parameter groups, such as switching to a different parameter group, adding and deleting parameter groups, etc. The parameter group feature allows user to save and quickly apply a set of parameter values.
Laser
SetLaserFramePartitionCount: Divide the projector FOV into partitions and project structured light in one partition at a time. The output of the entire FOV is composed from images of all partitions.
SetLaserFrameRange: Set the projection range of the structured light. The entire projector FOV is from 0 to 100.
SetLaserFringeCodingMode: Set the coding mode of the structured light pattern.
SetLaserPowerLevel: Set the output power of the laser projector in percentage of max power. This affects the intensity of the laser light.
UHP
SetUHPCaptureMode: Set the capture mode (capture images with camera 1, with camera 2, or with both 2D cameras and compose the outputs).
SetUHPFringeCodingMode: Set the coding mode of the structured light pattern.
The following samples require third-party libraries to be installed (instructions provided below).
Samples |
open3d |
opencv-python |
CaptureColorMap |
√ |
|
CaptureDepthMap |
√ |
|
CapturePointCloud |
√ |
|
CaptureHDRPointCloud |
√ |
|
CapturePointCloudROI |
√ |
|
CapturePointCloudFromTextureMask |
√ |
|
CaptureCloudFromDepth |
√ |
Requirements¶
Make sure that the version of Python installed is between 3.6.5 and 3.8.
(Optional) Install OpenCV:
sudo apt-get install libopencv-dev sudo apt-get install python3-opencv
(Optional) Install Open3D:
sudo pip install open3d
Instructions¶
Install Required Software¶
Install pip:
sudo apt install python3-pip
If you have already installed pip, please make sure that the version of pip is 20.3 or above. Use the following command to upgrade pip:
python3 -m pip install --upgrade pip
Install MechEyeApi:
sudo pip3 install MechEyeApi
Run the Sample¶
Download the samples:
cd ~ git clone https://github.com/MechMindRobotics/mecheye_python_samples.git
Open a sample folder and run the sample (taking ConnectToCamera.py as an example):
cd ~/mecheye_python_samples/source/Basic sudo python3 ConnectToCamera.py
For ConnectToCamera, you will be prompted to enter the index of the camera that you want to connect:
Please enter the device index you want to connect:
Please enter the index and press Enter to confirm.
Below is an example of the full output of ConnectToCamera.py (0 is entered for the index):
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.
Attention
For samples that involve point cloud capturing, a regular user is unable to write point cloud files, so please use the sudo command to run the sample as the admin.
For samples that involve image and point cloud capturing, when the sample execution is complete, the image and point cloud data is by default saved to the folder of the sample.
Note
When writing your own program, use the import command to import Mech-Eye API first. Please import Mech-Eye API before importing Open3D.
python3
import MechEye