Skip to content

02. Concepts

mqjinwon edited this page Apr 2, 2024 · 1 revision

Concepts

This page introduces the concepts required to understand how Stride Simulator works and how its code is structured.

Directory Tree

StrideSim Extension

'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

Sources

  • 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.
Clone this wiki locally