Python (Ubuntu)
This topic introduces how to obtain and run the Mech-Eye API Python samples on Ubuntu.
Sample List
Samples are divided into the following categories: basic, advanced, and util.
-
basic samples: Connect and acquire data.
-
advanced samples: Acquire data in more complicated manners and set model-specific parameters.
-
util samples: Obtain camera information and set common parameters.
The samples in each category and their descriptions are provided below.
basic
-
connect_to_camera: Connect to a camera.
-
connect_and_capture_images: Connect to a camera and obtain the 2D image, depth map, and point cloud data.
-
capture_2d_image: Obtain and save the 2D image.
-
capture_depth_map: Obtain and save the depth map.
-
capture_point_cloud: Obtain and save the untextured and textured point clouds.
-
capture_point_cloud_hdr: Set multiple exposure times, and then obtain and save the point cloud.
-
capture_point_cloud_with_normals: Calculate normals and save the point cloud with normals.
advanced
-
convert_depth_map_to_point_cloud: Generate a point cloud from the depth map and save the point cloud.
-
multiple_cameras_capture_sequentially: Obtain and save 2D images, depth maps, and point clouds sequentially from multiple cameras.
-
multiple_cameras_capture_simultaneously: Obtain and save 2D images, depth maps, and point clouds simultaneously from multiple cameras.
-
capture_periodically: Obtain and save 2D images, depth maps, and point clouds periodically for the specified duration from a camera.
-
mapping_2d_image_to_depth_map: Generate untextured and textured point clouds from a masked 2D image and a depth map.
-
render_depth_map: Obtain and save the depth map rendered with the jet color scheme.
-
transform_point_cloud: Obtain and save the point clouds in the custom reference frame.
-
set_parameters_of_laser_cameras: Set the parameters specific to laser cameras (the DEEP and LSR series).
-
set_parameters_of_uhp_cameras: Set the parameters specific to the UHP series.
-
register_camera_event: Define and register the callback function for monitoring camera events.
-
capture_stereo_2d_images: Obtain the 2D images from both 2D cameras of Deep (V3), Laser L Enhanced (V3), PRO XS-GL (V4), LSR L-GL (V4), LSR S-GL (V4), and DEEP-GL (V4).
util
-
get_camera_intrinsics: Obtain and print the camera intrinsic parameters.
-
print_camera_info: Obtain and print the camera information, such as model, serial number, firmware version, and temperatures.
-
set_scanning_parameters: Set the parameters in the 3D Parameters, 2D Parameters, and ROI categories.
-
set_depth_range: Set the Depth Range parameter.
-
set_point_cloud_processing_parameters: Set the Point Cloud Processing parameters.
-
manage_user_sets: Manage parameter groups, such as obtaining the names of all parameter groups, adding a parameter group, switching the parameter group, and saving parameter settings to the parameter group.
-
save_and_load_user_set: Import and replace all parameter groups from a JSON file, and save all parameter groups to a JSON file.
Prerequisites
In order to use the Python samples of Mech-Eye API, the following prerequisites must be satisfied:
-
Make sure that the variant of Python installed is 64-bit, and that the version is between 3.7 and 3.11.
-
Obtain the samples.
-
Install the required software.
-
(Optional) Install software libraries on which the samples depend.
Obtain Samples
Python samples are included in the installation path of Mech-Eye SDK or can be obtained from GitHub by cloning. The samples in the installation path are the version at the time of Mech-Eye SDK release. The version on GitHub may contain the latest changes.
-
The samples in the installation directory are located in /opt/mech-mind/mech-eye-sdk/samples/python/area_scan_3d_camera.
-
The samples cloned from GitHub are located in xxx/mecheye_python_samples/area_scan_3d_camera.
Execute the following command to clone the Python samples from GitHub:
cd ~
git clone https://github.com/MechMindRobotics/mecheye_python_samples.git
Install Required Software
In order to use the Python samples of Mech-Eye API, dependency libraries, Mech-Eye SDK, and Python Mech-Eye API must be installed.
-
Install Mech-Eye SDK: Please refer to Mech-Eye SDK Installation Guide (Ubuntu).
-
Install pip3 or upgrade pip3 to ensure its version is 20.3.1 or above.
Instructions
-
Execute the following command to check if pip3 is installed and its version:
pip3 -V
-
Execute the following command to install pip3:
sudo apt install python3-pip
-
Execute the following command to upgrade pip3:
python3 -m pip install --upgrade pip
-
-
Upgrade g++ to ensure that its version is 12 or above.
If the g++ version is lower than 12, import
will fail.Instructions
-
Execute the following command to install a later version g++ (using g++ 13 as an example):
sudo add-apt-repository ppa:ubuntu-toolchain-r/test sudo apt-get update sudo apt install g++-13
-
Use the
ls
command to check the installed versions of g++:ls /usr/bin/g++*
-
Execute the following command to add all installed versions of g++ as alternatives (using g++ 9 and g++ 13 as examples):
The number at the end of the command is priority. The larger the number, the higher the priority. sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-9 10 sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-13 20
-
Execute the following command to select the g++ version. Enter the number corresponding to the later version g++ to select this version.
sudo update-alternatives --config g++
-
Execute the following command to check if the later version g++ is successfully selected:
g++ --version
-
-
Install Python Mech-Eye API.
sudo pip3 install MechEyeApi
(Optional) Install Dependent Software Libraries
Some samples contain functions that depend on OpenCV. If you need to use the samples listed below, OpenCV must be installed (latest version recommended).
-
capture_2d_image
-
capture_depth_map
-
multiple_cameras_capture_sequentially
-
multiple_cameras_capture_simultaneously
-
capture_periodically
-
capture_stereo_2d_images
-
render_depth_map
Execute the following command to install the latest version of OpenCV:
sudo apt-get install libopencv-dev
sudo apt-get install python3-opencv
Run Samples
The paths provided in this section correspond to the samples included in the installation path. If you are using the samples cloned from GitHub, please modify the paths correspondingly. |
Follow these steps to run the samples:
-
Navigate to the folder where a sample is located. Replace category with the category name of the sample.
cd ~/opt/mech-mind/mech-eye-sdk/samples/python/area_scan_3d_camera/category
-
Run the sample: replace sample_name with the name of the sample. While the sample is running, input the index of the camera to which you want to connect according to the instruction, and press Enter to connect to the camera.
sudo python3 sample_name.py
-
If image and/or point cloud files are saved by the sample, you can find the files in the folder where the sample is located.
When writing your own program, use the import command to import Mech-Eye API first:
|