# Data Collection

In this module, we’ll explain a data collection workflow focused on systematically gathering high-quality datasets for imitation learning using state machine-based workflows in simulation environments.

The module teaches how to define and automate a robotic ultrasound scanning process using distinct states.

## Learning Objectives

By the end of this chapter, you will be able to:

- Leverage state machines for data collection
- Perform scene randomization in Isaac Sim
- Collect and curate datasets for imitation learning

* [State Machines](https://docs.nvidia.com/learning/physical-ai/getting-started-with-isaac-for-healthcare/latest/training-healthcare-robots-from-scratch/03-data-collection/02-state-machine.md)
  * [State Machines for Data Collection](https://docs.nvidia.com/learning/physical-ai/getting-started-with-isaac-for-healthcare/latest/training-healthcare-robots-from-scratch/03-data-collection/02-state-machine.md#state-machines-for-data-collection)
    * [State Machine Architecture](https://docs.nvidia.com/learning/physical-ai/getting-started-with-isaac-for-healthcare/latest/training-healthcare-robots-from-scratch/03-data-collection/02-state-machine.md#state-machine-architecture)
    * [Control Modules](https://docs.nvidia.com/learning/physical-ai/getting-started-with-isaac-for-healthcare/latest/training-healthcare-robots-from-scratch/03-data-collection/02-state-machine.md#control-modules)
      * [Force Control Module](https://docs.nvidia.com/learning/physical-ai/getting-started-with-isaac-for-healthcare/latest/training-healthcare-robots-from-scratch/03-data-collection/02-state-machine.md#force-control-module)
      * [Orientation Control Module](https://docs.nvidia.com/learning/physical-ai/getting-started-with-isaac-for-healthcare/latest/training-healthcare-robots-from-scratch/03-data-collection/02-state-machine.md#orientation-control-module)
      * [Path Planning Module](https://docs.nvidia.com/learning/physical-ai/getting-started-with-isaac-for-healthcare/latest/training-healthcare-robots-from-scratch/03-data-collection/02-state-machine.md#path-planning-module)
    * [Code Deep Dive & Explanation](https://docs.nvidia.com/learning/physical-ai/getting-started-with-isaac-for-healthcare/latest/training-healthcare-robots-from-scratch/03-data-collection/02-state-machine.md#code-deep-dive-explanation)
    * [Data Collection](https://docs.nvidia.com/learning/physical-ai/getting-started-with-isaac-for-healthcare/latest/training-healthcare-robots-from-scratch/03-data-collection/02-state-machine.md#data-collection)
      * [Data Collection Mechanism](https://docs.nvidia.com/learning/physical-ai/getting-started-with-isaac-for-healthcare/latest/training-healthcare-robots-from-scratch/03-data-collection/02-state-machine.md#data-collection-mechanism)
      * [Data Collected Per Step](https://docs.nvidia.com/learning/physical-ai/getting-started-with-isaac-for-healthcare/latest/training-healthcare-robots-from-scratch/03-data-collection/02-state-machine.md#data-collected-per-step)
    * [Code Instructions](https://docs.nvidia.com/learning/physical-ai/getting-started-with-isaac-for-healthcare/latest/training-healthcare-robots-from-scratch/03-data-collection/02-state-machine.md#code-instructions)
      * [Synthetic Data Generation & Data Capture](https://docs.nvidia.com/learning/physical-ai/getting-started-with-isaac-for-healthcare/latest/training-healthcare-robots-from-scratch/03-data-collection/02-state-machine.md#synthetic-data-generation-data-capture)
      * [Prepare the Collected Dataset](https://docs.nvidia.com/learning/physical-ai/getting-started-with-isaac-for-healthcare/latest/training-healthcare-robots-from-scratch/03-data-collection/02-state-machine.md#prepare-the-collected-dataset)
      * [Process Termination](https://docs.nvidia.com/learning/physical-ai/getting-started-with-isaac-for-healthcare/latest/training-healthcare-robots-from-scratch/03-data-collection/02-state-machine.md#process-termination)
* [Teleoperation](https://docs.nvidia.com/learning/physical-ai/getting-started-with-isaac-for-healthcare/latest/training-healthcare-robots-from-scratch/03-data-collection/03-teleoperation.md)
  * [Teleoperation Witth Isaac Lab](https://docs.nvidia.com/learning/physical-ai/getting-started-with-isaac-for-healthcare/latest/training-healthcare-robots-from-scratch/03-data-collection/03-teleoperation.md#teleoperation-witth-isaac-lab)
    * [Code Walkthrough](https://docs.nvidia.com/learning/physical-ai/getting-started-with-isaac-for-healthcare/latest/training-healthcare-robots-from-scratch/03-data-collection/03-teleoperation.md#code-walkthrough)
      * [Key Files Structure](https://docs.nvidia.com/learning/physical-ai/getting-started-with-isaac-for-healthcare/latest/training-healthcare-robots-from-scratch/03-data-collection/03-teleoperation.md#key-files-structure)
    * [Teleoperation Logic](https://docs.nvidia.com/learning/physical-ai/getting-started-with-isaac-for-healthcare/latest/training-healthcare-robots-from-scratch/03-data-collection/03-teleoperation.md#teleoperation-logic)
    * [Code Instructions](https://docs.nvidia.com/learning/physical-ai/getting-started-with-isaac-for-healthcare/latest/training-healthcare-robots-from-scratch/03-data-collection/03-teleoperation.md#code-instructions)
      * [Launching the Teleoperation Script](https://docs.nvidia.com/learning/physical-ai/getting-started-with-isaac-for-healthcare/latest/training-healthcare-robots-from-scratch/03-data-collection/03-teleoperation.md#launching-the-teleoperation-script)
      * [Process Termination](https://docs.nvidia.com/learning/physical-ai/getting-started-with-isaac-for-healthcare/latest/training-healthcare-robots-from-scratch/03-data-collection/03-teleoperation.md#process-termination)
    * [Teleoperation With Keyboard](https://docs.nvidia.com/learning/physical-ai/getting-started-with-isaac-for-healthcare/latest/training-healthcare-robots-from-scratch/03-data-collection/03-teleoperation.md#teleoperation-with-keyboard)
      * [Keyboard Controller for SE(3): Se3Keyboard](https://docs.nvidia.com/learning/physical-ai/getting-started-with-isaac-for-healthcare/latest/training-healthcare-robots-from-scratch/03-data-collection/03-teleoperation.md#keyboard-controller-for-se-3-se3keyboard)
    * [Teleoperation Code Deep Drive & Video Walkthrough](https://docs.nvidia.com/learning/physical-ai/getting-started-with-isaac-for-healthcare/latest/training-healthcare-robots-from-scratch/03-data-collection/03-teleoperation.md#teleoperation-code-deep-drive-video-walkthrough)
* [Review](https://docs.nvidia.com/learning/physical-ai/getting-started-with-isaac-for-healthcare/latest/training-healthcare-robots-from-scratch/03-data-collection/04-review.md)
