C++ (Ubuntu)

Vous consultez actuellement la documentation pour la dernière version (2.5.4). Pour accéder à une autre version, cliquez sur le bouton "Changer de version" situé dans le coin supérieur droit de la page.

■ Si vous n’êtes pas sûr de la version du produit que vous utilisez, veuillez contacter le support technique Mech-Mind pour obtenir de l’aide.

This topic introduces how to configure the Mech-Eye API C++ samples with CMake and then build the samples with the make command on Ubuntu.

Liste des exemples

Les exemples sont répartis dans les catégories suivantes : Basic, Advanced, Util, Calibration, Pcl et Halcon.

  • Basic exemples: Se connecter et acquérir des données.

  • Advanced exemples: Acquérir des données de manière plus complexe et définir des paramètres spécifiques au modèle.

  • Util exemples: Obtenir les informations de la caméra et définir des paramètres communs.

  • Calibration exemples: Effectuer l’étalonnage main-œil avec Mech-Eye API.

  • Pcl exemples: Utiliser la bibliothèque PCL pour convertir la structure de données et visualiser les données.

  • Halcon: obtenir des nuages de points lisibles par HALCON via Mech-Eye API.

The samples in each category and their descriptions are provided below.

Basic
  • ConnectToCamera: Se connecter à une caméra.

  • ConnectAndCaptureImages: Se connecter à une caméra et obtenir l’image 2D, la carte de profondeur et les données de nuage de points.

  • Capture2DImage: Obtenir et enregistrer l’image 2D.

  • CaptureDepthMap: Obtenir et enregistrer la carte de profondeur.

  • CapturePointCloud: Obtenir et enregistrer les nuages de points non texturés et texturés.

  • CapturePointCloudHDR: Définir plusieurs temps d’exposition, puis obtenir et enregistrer le nuage de points.

  • CapturePointCloudWithNormals: Calculer les normales et enregistrer le nuage de points avec des normales.

  • SaveVirtualDevice: Enregistrer les données acquises par la caméra en tant que fichier de périphérique virtuel.

Advanced
  • ConvertDepthMapToPointCloud: Générer un nuage de points à partir de la carte de profondeur et enregistrer le nuage de points.

  • MultipleCamerasCaptureSequentially: Obtenir et enregistrer des images 2D, des cartes de profondeur et des nuages de points de manière séquentielle depuis plusieurs caméras.

  • MultipleCamerasCaptureSimultaneously: Obtenir et enregistrer simultanément des images 2D, des cartes de profondeur et des nuages de points depuis plusieurs caméras.

  • CapturePeriodically: Obtenir et enregistrer périodiquement, pendant la durée spécifiée, des images 2D, des cartes de profondeur et des nuages de points depuis une caméra.

  • Mapping2DImageToDepthMap: Générer des nuages de points non texturés et texturés à partir d’une image 2D masquée et d’une carte de profondeur.

  • RenderDepthMap: Obtenir et enregistrer la carte de profondeur rendue avec la palette de couleurs jet.

  • TransformPointCloud: Obtenir et enregistrer les nuages de points dans le repère personnalisé.

  • SetParametersOfLaserCameras: Définir les paramètres spécifiques aux caméras laser (les séries DEEP et LSR).

  • SetParametersOfUHPCameras: Définir les paramètres spécifiques à la série UHP.

  • RegisterCameraEvent: Définir et enregistrer la fonction de rappel pour surveiller les événements de la caméra.

  • WarmUp: Préchauffer l’appareil.

  • CaptureStereo2DImages: Obtenir les images 2D des deux caméras 2D de Laser L Enhanced, LSR L-GL, LSR S-GL, NANO ULTRA-GL, et DEEP-GL.

Util
  • GetCameraIntrinsics: Obtenir et afficher les paramètres intrinsèques de la caméra.

  • PrintCameraInfo: Obtenir et afficher les informations de la caméra, telles que le modèle, le numéro de série, la version du firmware et les températures.

  • SetScanningParameters: Définir les paramètres dans les catégories Paramètres 3D, Paramètres 2D et ROI.

  • SetDepthRange: Définir le paramètre Plage de profondeur.

  • SetPointCloudProcessingParameters: Définir les paramètres de Traitement du nuage de points.

  • ManageUserSets: Gérer des groupes de paramètres, par exemple obtenir les noms de tous les groupes de paramètres, ajouter un groupe de paramètres, changer de groupe de paramètres et enregistrer des réglages de paramètres dans le groupe de paramètres.

  • SaveAndLoadUserSet: Importer et remplacer tous les groupes de paramètres depuis un fichier JSON, et enregistrer tous les groupes de paramètres dans un fichier JSON.

Calibration
  • HandEyeCalibration: Effectuer l’étalonnage main-œil.

Pcl
  • ConvertPointCloudToPcl: Obtenir les données de nuage de points depuis la caméra et les convertir vers la structure de données PCL.

  • ConvertPointCloudWithNormalsToPcl: Obtenir les données de nuage de points avec normales depuis la caméra et les convertir vers la structure de données PCL.

Halcon
  • ConvertPointCloudToObjectModel3D: Obtenir les données de nuage de points depuis une caméra, puis transformer et enregistrer les nuages de points à l’aide de l’interface C++ HALCON.

    Cet exemple n’est pas disponible sur les plateformes basées sur l’architecture ARM64.

Prérequis

Pour utiliser les exemples C++ de Mech-Eye API, les prérequis suivants doivent être satisfaits :

  • Connectez correctement le Caméra et l’ordinateur.

  • La version du système d’exploitation Ubuntu est 18 ou supérieure.

  • Obtenez les exemples.

  • Installez les logiciels requis.

  • (Optionnel) Installez les bibliothèques logicielles dont dépendent les exemples.

Si vous utilisez une machine virtuelle Ubuntu, assurez-vous que l’espace disque disponible est supérieur à 20 Go. Sinon, l’installation des logiciels peut échouer.

Obtenir les exemples

Les exemples C++ sont inclus dans le chemin d’installation de Mech-Eye SDK ou peuvent être obtenus en clonant depuis GitHub. Les exemples dans le chemin d’installation correspondent à la version au moment de la publication de Mech-Eye SDK. La version sur GitHub peut contenir les derniers changements.

  • Les exemples du répertoire d’installation se trouvent dans /opt/mech-mind/mech-eye-sdk/samples/cpp/area_scan_3d_camera.

  • Les exemples clonés depuis GitHub se trouvent dans xxx/mecheye_cpp_samples/area_scan_3d_camera.

Installer les logiciels requis

Pour utiliser les exemples C++ de Mech-Eye API, la liste des sources logicielles doit être mise à jour, et Mech-Eye SDK ainsi que ses dépendances doivent être installés.

  1. Mettre à jour la liste des sources logicielles :

    sudo apt-get update
  2. Installer les dépendances :

    sudo apt-get install -y build-essential pkg-config cmake
  3. Installer Mech-Eye SDK : veuillez vous référer à Guide d’installation de Mech-Eye SDK (Ubuntu).

(Optionnel) Installer les bibliothèques logicielles dépendantes

Certains exemples incluent des fonctionnalités qui dépendent des bibliothèques logicielles tierces suivantes. Si vous devez utiliser les exemples listés dans le tableau ci-dessous, vous devez installer les bibliothèques logicielles dont ils dépendent.

  • OpenCV : version la plus récente recommandée

  • PCL : version la plus récente recommandée

  • HALCON : version 20.11 ou supérieure

    Les versions de HALCON antérieures à 20.11 ne sont pas entièrement testées.

Si l’une des bibliothèques logicielles optionnelles n’est pas installée, vous devez alors effectuer les étapes de Désactiver les exemples non nécessaires (optionnel) avant de configurer les exemples.

Veuillez vous référer au tableau suivant pour les exemples qui dépendent de bibliothèques logicielles tierces.

Exemple OpenCV PCL Halcon

Capture2DImage

CaptureDepthMap

MultipleCamerasCaptureSequentially

MultipleCamerasCaptureSimultaneously

CapturePeriodically

CaptureStereo2DImages

HandEyeCalibration

RenderDepthMap

ConvertPointCloudToObjectModel3D

ConvertPointCloudToPcl

ConvertPointCloudWithNormalsToPcl

Installer OpenCV

Exécutez la commande suivante pour installer la dernière version d’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

Installer PCL

Exécutez la commande suivante pour installer PCL :

sudo apt-get install libpcl-dev
Selon les versions d’Ubuntu, cette commande installe différentes versions de PCL. Sous Ubuntu 18.04, PCL 1.8.1 est installée ; sous Ubuntu 20.04, PCL 1.10.0 est installée.

Installer HALCON

Suivez les étapes suivantes pour installer HALCON :

  1. Après avoir téléchargé l’installateur HALCON, exécutez la commande suivante pour installer HALCON (en prenant la version 20.11 comme exemple) :

    tar zxvfHALCON-20.11.3.0-linux.tar.gz
    sudo sh install-linux.sh #Note down the installation directory of HALCON.
  2. Ajoutez les variables d’environnement liées à HALCON : ouvrez /etc/profile dans un éditeur (tel que vi) et collez les lignes suivantes à la fin du fichier. Remplacez /opt/halcon par le répertoire d’installation réel de HALCON.

    HALCONARCH=x64-linux; exportHALCONARCH
    HALCONROOT="/opt/halcon"; exportHALCONROOT
    HALCONEXAMPLES=${HALCONROOT}/examples; exportHALCONEXAMPLES
    HALCONIMAGES=${HALCONROOT}/examples/images; exportHALCONIMAGES
    PATH=${HALCONROOT}/bin/${HALCONARCH}:${PATH}; export PATH
    if [ ${LD_LIBRARY_PATH} ]; then
       LD_LIBRARY_PATH=${HALCONROOT}/lib/${HALCONARCH}:${LD_LIBRARY_PATH}; export LD_LIBRARY_PATH
    else
       LD_LIBRARY_PATH=${HALCONROOT}/lib/${HALCONARCH}; export LD_LIBRARY_PATH
    fi
    • Les changements seront appliqués lors de votre prochaine connexion. Vous pouvez aussi exécuter la commande source /etc/profile/ avant de configurer et de compiler les exemples.

    • Pour plus d’informations, veuillez consulter le guide d’installation de HALCON.

Compiler et exécuter les exemples

Vous pouvez compiler tous les exemples en une seule fois ou compiler un exemple individuellement.

Les chemins fournis dans cette section correspondent aux exemples inclus dans le chemin d’installation. Si vous utilisez les exemples clonés depuis GitHub, modifiez les chemins en conséquence.

Désactiver les exemples non nécessaires (optionnel)

Si vous n’avez pas installé certaines des bibliothèques logicielles optionnelles et souhaitez malgré tout compiler tous les exemples en une fois, vous devez effectuer les étapes de cette section. Sinon, une erreur se produira lors de la configuration des exemples avec CMake.

Si vous n’avez pas besoin des exemples qui dépendent d’OpenCV, de PCL ou de HALCON, veuillez modifier le fichier CMakeLists pour désactiver ces exemples avant de compiler tous les exemples en une fois.

  1. Ouvrez /opt/mech-mind/mech-eye-sdk/samples/cpp/area_scan_3d_camera/CMakeLists.txt dans un éditeur (tel que vi).

  2. Modifiez les lignes contenant options : trouvez les lignes commençant par options, changez ON à la fin de la ligne en OFF pour désactiver les exemples qui dépendent de la bibliothèque logicielle mentionnée dans cette ligne.

    Exemple : Si vous n’avez pas besoin de compiler l’exemple qui dépend de HALCON, remplacez ON à la fin de la ligne option(USE_HALCON…​) par OFF.

  3. Enregistrez les modifications dans l’éditeur et fermez le fichier CMakeLists.

Compiler l’exemple

Suivez les étapes suivantes pour exécuter l’exemple :

  1. Entrez dans le répertoire de l’exemple(s) :

    • Si vous souhaitez compiler tous les exemples en une seule fois, utilisez la commande suivante.

      cd /opt/mech-mind/mech-eye-sdk/samples/cpp/area_scan_3d_camera/
    • Si vous souhaitez compiler un seul exemple individuellement, utilisez la commande suivante. Remplacez Category par le nom de la catégorie de l’exemple et SampleName par le nom de l’exemple.

      cd /opt/mech-mind/mech-eye-sdk/samples/cpp/area_scan_3d_camera/Category/SampleName/
  2. Créez un dossier build dans le répertoire pour enregistrer les exemples compilés, etc.

    sudo mkdir build && cd build
  3. Configurer et compiler l’exemple(s) :

    sudo cmake ..
    sudo make
Si les fichiers du code source dans le dossier de l’exemple sont modifiés, veuillez supprimer le dossier build et répéter les étapes 2 et 3 pour recompiler les exemples.

Exécuter les exemples

Après avoir compilé les exemples, suivez les étapes suivantes pour exécuter l’exemple :

  1. Entrez dans le dossier build du répertoire de l’exemple(s) (Ignorez cette étape si vous exécutez l’exemple(s) directement après la compilation de l’exemple(s) :

    • Si tous les exemples ont été compilés en une fois, utilisez la commande suivante.

      cd /opt/mech-mind/mech-eye-sdk/samples/cpp/area_scan_3d_camera/build/
    • Si un seul exemple a été compilé individuellement, utilisez la commande suivante. Remplacez Category par le nom de la catégorie de l’exemple et SampleName par le nom de l’exemple.

      cd /opt/mech-mind/mech-eye-sdk/samples/cpp/area_scan_3d_camera/Category/SampleName/build/
  2. Exécutez l’exemple : remplacez SampleName par le nom de l’exemple. Pendant l’exécution de l’exemple, saisissez l’index du Caméra auquel vous souhaitez vous connecter selon les instructions, puis appuyez sur Enter pour vous connecter au Caméra.

    sudo ./SampleName
  3. Si des fichiers d’image et/ou de nuage de points sont enregistrés par l’exemple, vous pouvez les trouver dans le dossier build.

Cette page est-elle utile ?

Veuillez nous indiquer comment améliorer :

Nous accordons de l’importance à votre vie privée

Nous utilisons des cookies pour vous offrir la meilleure expérience possible sur notre site web. En continuant à utiliser le site, vous reconnaissez accepter l’utilisation des cookies. Si vous refusez, un cookie unique sera utilisé pour garantir que vous ne soyez pas suivi ou reconnu lors de votre visite sur ce site.