sf-grid
package, you can start configuring the GRID Enterprise by creating and modifying the necessary JSON configuration files.
session_config.json
file defines the simulation and environmental settings for AirGen and GRID. This file includes everything from selecting the environment to configuring vehicles and camera setups.
Here is a baseline session configuration JSON:
env_name
in the session configuration JSON. The following environments are currently available:
Environment Name | File Name (without .tar.gz ) |
---|---|
Abandoned Factory | abandoned_factory |
City Block | city_block |
Construction Site | construction_site |
Electric Central | electric_central |
Factory District | factory_district |
Night City | night_city |
Office Building | office_building |
Parking Garage | parking_garage |
Neighborhood | neighborhood |
.tar.gz
extension when specifying the environment name in your JSON configuration.settings
object, you define the mode of simulation and specific parameters for vehicles, cameras, and other simulation elements.
"Multirotor"
for drone simulations or "Car"
for vehicle simulations.
VehicleType
and VehicleModel
settings.
"SimpleFlight"
; for cars, use "Chaos."
Vehicle Name | VehicleType | VehicleModel |
---|---|---|
Default | SimpleFlight | Default |
Industrial Drone | SimpleFlight | Matrice300RTK |
eVTOL | SimpleFlight | eVTOL |
Freefly Alta X | SimpleFlight | AltaX |
Freefly Astro | SimpleFlight | Astro |
Agricultural Drone | SimpleFlight | IndustrialX4 |
Holybro S500 | SimpleFlight | HolybroS500 |
ModalAI Starling 2 Max | SimpleFlight | Starling2Max |
Vehicles
category:
(X, Y, Z)
locations.
geo
is set to true
, this setting specifies the starting geographic coordinates for the robot, critical for geospatial simulations.
RandContrib
: Controls the blend ratio between the original pixel and the noise pixel. A value of 0 indicates no noise, while 1 means the pixel is entirely replaced by noise.RandSpeed
: Dictates the fluctuation speed of the noise. A value of 1 results in no fluctuation. Higher values, such as 1E6, lead to maximum fluctuation.RandSize
: Determines the coarseness of the noise. A value of 1 means each pixel receives unique noise. Larger values indicate that multiple pixels will share the same noise value, creating a coarser effect.RandDensity
: Specifies the proportion of pixels affected by noise. A value of 1 means all pixels will have noise. Higher values exponentially decrease the number of noisy pixels.HorzWaveContrib
: Sets the blend ratio between the original pixel and the noise pixel, where 0 means no noise and 1 means only noise.HorzWaveStrength
: Adjusts the overall intensity of the distortion effect.HorzWaveVertSize
: Defines the number of vertical pixels impacted by the effect.HorzWaveScreenSize
: Determines the extent of the screen area affected by this distortion.HorzNoiseLinesContrib
: Manages the blend ratio of noise pixels with image pixels. A value of 0 signifies no noise, while 1 indicates complete noise.HorzNoiseLinesDensityY
: Specifies the number of pixels within a horizontal line that are affected by noise.HorzNoiseLinesDensityXY
: Determines the quantity of noise-affected lines that appear on the screen.HorzDistortionContrib
: Controls the blend ratio between the original pixel and the noise pixel. A value of 0 results in no noise, and 1 means the pixel is entirely noise.HorzDistortionStrength
: Adjusts the magnitude of the distortion.true
, recording starts only when the vehicle or robot is moving.CameraDefaults
, allowing for multiple viewpoints within the simulation.WindowID
: Integer value (0-2) that identifies the subwindow positionCameraName
: String referencing any available camera on the vehicle or external cameraImageType
: Integer that determines the visualization type according to the ImageType enumVisible
: Boolean that controls whether the subwindow is displayedVehicleName
: Optional string that specifies which vehicle’s camera to use when multiple vehicles are present (ignored if camera is external)External
: Boolean that indicates if the camera is an external source (true
) or vehicle-mounted (false
)VehicleName
contains errors or references a non-existent vehicle, the first vehicle’s camera will be usedExternal: true
), the VehicleName
parameter is ignoredPhysX
.FastPhysicsEngine
and ExternalPhysicsEngine
.setVehiclePose()
, useful for integration with external simulators or pre-defined paths.ImageType
is -1.
0
, meaning no gimbal (i.e., the camera orientation changes with the body orientation on all axes). A value of 1
means full stabilization. Any value between 0
and 1
acts as a weight for the fixed angles specified (in degrees, in the world frame) in the Pitch
, Roll
, and Yaw
elements, along with the orientation of the vehicle body. If any of the angles is omitted from the JSON or set to NaN, that angle is not stabilized (i.e., it moves with the vehicle body).OriginGeopoint
for the date specified in StartDateTime
.
StartDateTime: String format %Y-%m-%d %H:%M:%S
. If empty, current date and time are used. Example: 2018-02-12 15:20:00
.
StartDateTimeDst: Adjusts for daylight savings time if true.
UpdateIntervalSecs: Sets how frequently the Sun’s position is updated.
CelestialClockSpeed: Controls how fast the Sun moves in the sky relative to simulation time. Example: 100
means the Sun advances 100 seconds for every 1 second of simulation time.
Once we have all the configurations set up, we can start the GRID session through our terminal which is covered in the next section.