Skip to main content
An AirGen session is described by one config file: which robot, which scene, what the cameras look like, and what the world conditions are. The CLI writes a working config when you start a session — you edit it when you need something the picker doesn’t offer.

Robot and scene

id values come from the catalogs in Robots and Scenes. name is what you address the vehicle by from Python.
Poses are in the NED frame — X north, Y east, Z down. A negative Z is above the ground. This is an aviation convention and it is a common source of confusion if you are coming from Isaac, which is Z-up.
Orientation is either orientation_rpy_deg (roll, pitch, yaw in degrees) or rotation_wxyz (quaternion). Set one, not both.

Cameras

Each camera can carry several streams, so one physical viewpoint yields RGB and depth together.

Noise overlay

Cameras support a noise overlay for testing perception against degraded video — sensor grain, horizontal wave distortion, and scan-line artifacts:
Every field is optional; the ones you omit keep the engine default.

World conditions

Geographic origin

Anchor the world origin to real coordinates so GPS output matches a real site:

Time of day

Sun position is driven by a wall-clock datetime:
celestial_clock_speed multiplies how fast the sun moves — raise it to sweep a whole day of lighting in a short run.

Viewport

Accepted values: Fpv, GroundObserver, FlyWithMe, Manual, SpringArmChase, Backup, NoDisplay, Front. This controls only what the streamed viewport shows — it has no effect on the robot or on getImage() output.
The config is validated strictly: an unknown key is an error rather than a silently ignored line, so a typo fails the session start instead of quietly doing nothing.