-
Notifications
You must be signed in to change notification settings - Fork 9
02. Concepts
mqjinwon edited this page Apr 2, 2024
·
1 revision
This page introduces the concepts required to understand how Stride Simulator works and how its code is structured.
'exts/stride.simulator' directory is the root path of the StrideSim extension. There are four directories consisting of the StrideSim extension. All StrideSim sources are in stride
directory.
exts/stride.simulator
├── config # Configurations of stride.simulator.
├── data # Resources files.
├── docs # Document files.
└── stride # Source code.
└── simulator
- Assets: The assets include Universal Scen Descriptions (USD) used on NVIDIA Isaac, if necessary.
- Backends: A collection of classes designed for interfacing with the backend layer. These classes are tasked with the reception of command messages for vehicle control and the transmission of vehicle states. For instance, assigning a ROS2Backend class to a vehicle enables it to process incoming target commands from the ROS2 layer, altering its operational state accordingly. Furthermore, this setup facilitates the vehicle in broadcasting its current state back to the ROS2 layer as a ROS2 topic. This mechanism ensures seamless communication and control flow between the software components and the physical or simulated vehicles they manage.
- Interfaces: A Singleton class to communicate with the NVIDIA Isaac simulator and Vehicle Manager. This class handles data between Isaac Simulator components such as the world, stage, view, and StrideSim's Vehicle Manager.
- Tests: Test code.
- UI: UI code that operates as an extension for Isaac Sim. It contains code related to the user interface, offering visual tools and interfaces for interaction with Stride Simulator.
-
Vehicles:
- Controllers: Controller classes designed to control robot operations. These controllers interpret target commands, such as linear and angular velocities, and calculate the torque values required at specific vehicle joints.
- Quadruped Robot: Quadruped robots have controllers and sensor models. The classes update their state based on target commands, such as positions and velocities. Additionally, they update sensor states through Isaac Sim's physics callbacks.
- Sensors: Sensor models used for autonomous driving.