Add a New Object ================ .. role:: guimenu .. role:: guiaction .. role:: guioption This tutorial guides you through the process of adding a new object primarily using :doc:`AI Hub `. The steps include registering a 3D mesh model, preparing an object detection model, and configuring pose estimation and grasping capabilities. Follow these steps to enable your robot to recognize, locate, and manipulate new objects. .. contents:: :local: :depth: 2 :backlinks: none :class: toc Step 1. Register a 3D Mesh Model --------------------------------- 1.1 Via externally sourced mesh model ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ You can upload a pre-existing 3D mesh model of an object to the AI Hub using :ref:`AI Hub: Data Management `. See :doc:`Tutorial: Upload A Mesh Model ` .. seealso:: For a programmatic approach to perform data management, refer to :ref:`API: Data Management Client `. 1.2 Via 3D scanning ^^^^^^^^^^^^^^^^^^^ Use :ref:`AI Hub: 3D Object Scanning (Scan Box only) ` to create a texturized 3D mesh model of your desired object(s). .. seealso:: For a programmatic approach to perform workspace/environment scanning, refer to :ref:`API: Robot Scan Client `. Step 2. Prepare an Object Detection model ------------------------------------------ 2.1 Generate a Training Dataset ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Use :ref:`AI Hub: Data Generation ` to generate one/several dataset(s) consisting your desired object(s). For detailed instructions on creating synthetic and/or real datasets, refer to: * :doc:`Tutorial: Generate Synthetic Dataset ` * :doc:`Tutorial: Collect Real Data ` * :doc:`Tutorial: Annotate Real Data ` .. seealso:: To programmatically generate a dataset, refer to the following client APIs: - :ref:`API: Data Generation Client ` - :ref:`API: Real Data Collection Client ` 2.2 Train an Object Detection Model ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Utilize :ref:`AI Hub: Model Training and Testing ` to train an object detection model on your registered dataset(s). See :doc:`Tutorial: Train an Object Detection Model ` .. seealso:: For a programmatic approach to train and infer an object detection model, go to :ref:`API: Instance Segmentation Client ` Step 3. Prepare a Pose Estimation model --------------------------------------- The default pose estimation model ``general/v_1`` that uses the method ``neura_nonDLPE1`` is a deterministic pose estimation algorithm. After registering the object mesh model, no additional action is required to use this model to perform 6D object pose estimation. .. attention:: Currently, no pose estimation method that require training are available. .. seealso:: For a programmatic approach to infer a pose estimation model, go to :ref:`API: Pose Estimation Client ` Step 4. Enable Grasping ----------------------- To perform pose-aware picks in an application, one is required to record grasps of the objects that will be picked. See :ref:`Tutorial: Enable Grasping of New Object ` to learn how to teach grasp poses.