Training your own DOPE model ============================ Overview ------------ The DOPE network architecture is intended to be trained on objects of a specific class, which means that using DOPE for pose estimation of a custom object class requires training a custom model for that class. `NVIDIA Isaac Sim `__ offers a convenient workflow for training a custom DOPE model using synthetic data generation (SDG). Tutorial Walkthrough -------------------- 1. Clone the `Isaac Sim DOPE Training repository `__ and follow the training instructions to prepare a custom DOPE model. 2. Using the `Isaac Sim DOPE inference script `__, test the custom DOPE model's inference capability and ensure that the quality is acceptable for your use case. 3. Follow steps 1-5 of the main DOPE :doc:`quickstart `. 4. At step 6, move the prepared ``.pth`` model output from the Isaac Sim DOPE Training script into the ``/tmp/models`` path inside the Docker container. ``bash docker cp custom_model.pth isaac_ros_dev-x86_64-container:/tmp/models`` 5. At step 7, run the ``dope_converter.py`` script with the custom model: .. code:: bash python3 /workspaces/isaac_ros-dev/src/isaac_ros_pose_estimation/isaac_ros_dope/scripts/dope_converter.py --format onnx --input /tmp/models/custom_model.pth 6. Proceed through steps 8-9. 7. At step 10, launch the ROS 2 launch file with the custom model: .. code:: bash ros2 launch isaac_ros_dope isaac_ros_dope_tensor_rt.launch.py model_file_path:=/tmp/models/custom_model.onnx engine_file_path:=/tmp/models/custom_model.plan 8. Continue with the rest of the :doc:`quickstart `. You should now be able to detect poses of custom objects.