__init__

VehicleClient.__init__( ip="", port=41451, timeout_value=3600, run_in_background: bool = False, )

Initializes the VehicleClient

Arguments
ip
str, optional

IP address of the server, defaults to localhost

port
int, optional

Port number of the server, defaults to 41451

timeout_value
int, optional

Timeout value for the connection, defaults to 3600

run_in_background
bool, optional

Whether to run the client in background, defaults to False. When true, this client does not print info unless necessary.

reset

VehicleClient.reset()

Reset the vehicle to its original starting state

Note that you must call enableApiControl and armDisarm again after the call to reset

ping

VehicleClient.ping()

If connection is established then this call will return true otherwise it will be blocked until timeout

Returns
bool
bool

bool

getClientVersion

VehicleClient.getClientVersion()

No description provided!

getServerVersion

VehicleClient.getServerVersion()

No description provided!

getMinRequiredServerVersion

VehicleClient.getMinRequiredServerVersion()

No description provided!

getMinRequiredClientVersion

VehicleClient.getMinRequiredClientVersion()

No description provided!

enableApiControl

VehicleClient.enableApiControl(is_enabled, vehicle_name="")

Enables or disables API control for vehicle corresponding to vehicle_name

Arguments
is_enabled
bool

True to enable, False to disable API control

vehicle_name
str, optional

Name of the vehicle to send this command to

isApiControlEnabled

VehicleClient.isApiControlEnabled(vehicle_name="")

Returns true if API control is established.

If false (which is default) then API calls would be ignored. After a successful call to enableApiControl, isApiControlEnabled should return true.

Arguments
vehicle_name
str, optional

Name of the vehicle

Returns
bool
bool

If API control is enabled

armDisarm

VehicleClient.armDisarm(arm, vehicle_name="")

Arms or disarms vehicle

Arguments
arm
bool

True to arm, False to disarm the vehicle

vehicle_name
str, optional

Name of the vehicle to send this command to

Returns
bool
bool

Success

simPause

VehicleClient.simPause(is_paused)

Pauses simulation

Arguments
is_paused
bool

True to pause the simulation, False to release

simIsPause

VehicleClient.simIsPause()

Returns true if the simulation is paused

Returns
bool
bool

If the simulation is paused

simContinueForTime

VehicleClient.simContinueForTime(seconds)

Continue the simulation for the specified number of seconds

Arguments
seconds
float

Time to run the simulation for

simContinueForFrames

VehicleClient.simContinueForFrames(frames)

Continue (or resume if paused) the simulation for the specified number of frames, after which the simulation will be paused.

Arguments
frames
int

Frames to run the simulation for

getHomeGeoPoint

VehicleClient.getHomeGeoPoint(vehicle_name="")

Get the Home location of the vehicle

Arguments
vehicle_name
str, optional

Name of vehicle to get home location of

Returns
GeoPoint
GeoPoint

Home location of the vehicle

confirmConnection

VehicleClient.confirmConnection()

Checks state of connection every 1 sec and reports it in Console so user can see the progress for connection.

simSetLightIntensity

VehicleClient.simSetLightIntensity(light_name, intensity)

Change intensity of named light

Arguments
light_name
str

Name of light to change

intensity
float

New intensity value

Returns
bool
bool

True if successful, otherwise False

simSwapTextures

VehicleClient.simSwapTextures(tags, tex_id=0, component_id=0, material_id=0)

Runtime Swap Texture API

Arguments
tags
str

string of ”,” or ”, ” delimited tags to identify on which actors to perform the swap

tex_id
int, optional

indexes the array of textures assigned to each actor undergoing a swap

component_id
int, optional

component_id

material_id
int, optional

material_id

Returns
list[str]
list[str]

List of objects which matched the provided tags and had the texture swap perfomed

simSetObjectMaterial

VehicleClient.simSetObjectMaterial(object_name, material_name, component_id=0)

Runtime Swap Texture API

Arguments
object_name
str

name of object to set material for

material_name
str

name of material to set for object

Returns
bool
bool

True if material was set

simSetObjectMaterialFromTexture

VehicleClient.simSetObjectMaterialFromTexture( object_name, texture_path, component_id=0 )

Runtime Swap Texture API

Arguments
object_name
str

name of object to set material for

texture_path
str

path to texture to set for object

Returns
bool
bool

True if material was set

simSetObjectMaterialFromTextureURL

VehicleClient.simSetObjectMaterialFromTextureURL( object_name, url, component_id=0 )

Runtime Swap Texture API

Arguments
object_name
str

name of object to set material for

url
str

url for texture to set for object

Returns
bool
bool

True if material was set

simSetTimeOfDay

VehicleClient.simSetTimeOfDay( is_enabled, start_datetime="", is_start_datetime_dst=False, celestial_clock_speed=1, update_interval_secs=60, move_sun=True, )

Control the position of Sun in the environment

Sun’s position is computed using the coordinates specified in OriginGeopoint in settings for the date-time specified in the argument, else if the string is empty, current date & time is used

Arguments
is_enabled
bool

True to enable time-of-day effect, False to reset the position to original

start_datetime
str, optional

Date & Time in %Y-%m-%d %H:%M:%S format, e.g. 2018-02-12 15:20:00

is_start_datetime_dst
bool, optional

True to adjust for Daylight Savings Time

celestial_clock_speed
float, optional

Run celestial clock faster or slower than simulation clock

update_interval_secs
float, optional

Interval to update the Sun’s position

move_sun
bool, optional

Whether or not to move the Sun

simEnableWeather

VehicleClient.simEnableWeather(enable: bool)

Enable Weather effects. Needs to be called before using simSetWeatherParameter API

Arguments
enable
bool

True to enable, False to disable

simSetWeatherParameter

VehicleClient.simSetWeatherParameter(param, val)

Enable various weather effects

Arguments
param
WeatherParameter

(WeatherParameter): Weather effect to be enabled

val
float

Intensity of the effect, Range 0-1

simGetImage

VehicleClient.simGetImage(camera_name, image_type, vehicle_name="", external=False, capture_3d=False, cubemap=False)

Get a single image

Returns bytes of png format image which can be dumped into abinary file to create .png image string_to_uint8_array() can be used to convert into Numpy unit8 array

Arguments
camera_name
str

Name of the camera, for backwards compatibility, ID numbers such as 0,1,etc. can also be used

image_type
ImageType

(ImageType): Type of image required

vehicle_name
str, optional

Name of the vehicle with the camera

external
bool, optional

Whether the camera is an External Camera

capture_3d
bool, optional

Whether to capture 3D images (default: False).

cubemap
bool, optional

Whether to capture cubemap images otherwise equirectangular (default: False).

Returns
Binary
Binary

string literal of compressed png image

getImages

VehicleClient.getImages( camera_name, image_types: List[ImageType], vehicle_name="", capture_3d=False, cubemap=False )

Get multiple images

Arguments
image_types
list[ImageType]

list[ImageType]: Images required

vehicle_name
str, optional

Name of vehicle associated with the camera

capture_3d
bool, optional

Whether to capture 3D images (default: False).

cubemap
bool, optional

Whether to capture cubemap images otherwise equirectangular (default: False).

Returns
list[ImageResponse]
list[ImageResponse]

simGetImages

VehicleClient.simGetImages( requests: ImageRequest, vehicle_name="", external=False, capture_3d=False, cubemap=False )

Get multiple images

Arguments
requests
list[ImageRequest]

list[ImageRequest]: Images required

vehicle_name
str, optional

Name of vehicle associated with the camera

external
bool, optional

Whether the camera is an External Camera

capture_3d
bool, optional

Whether to capture 3D images (default: False).

cubemap
bool, optional

Whether to capture cubemap images otherwise equirectangular (default: False).

Returns
list[ImageResponse]
list[ImageResponse]

simGetImagesAlongTrajectory

VehicleClient.simGetImagesAlongTrajectory( poses: List[Pose], requests, vehicle_name="", external=False, capture_3d=False, cubemap=False )

Get images along a trajectory (specified by position and pose) when

Arguments
poses
list[Pose]

list[Pose]: A list of poses of the vehicle, at which images are to be requested

requests
list[ImageRequest]

list[ImageRequest]: Images required

vehicle_name
str, optional

Name of vehicle associated with the camera

external
bool, optional

Whether the camera is an External Camera, defaults to False

capture_3d
bool, optional

Whether to capture 3d images (default: False).

cubemap
bool, optional

Whether to capture cubemap images otherwise equirectangular (default: False).

Returns
list[ImageResponse]
list[ImageResponse]

simGetPresetLensSettings

VehicleClient.simGetPresetLensSettings( camera_name: str, vehicle_name: str = "", external: bool = False )

Get the preset lens settings for the camera

Arguments
camera_name
str

camera name

vehicle_name
str, optional

vechile name. Defaults to "".

external
bool, optional

Whether the camera is an External Camera. Defaults to False.

Returns
_type_
_type_

description

simGetLensSettings

VehicleClient.simGetLensSettings( camera_name: str, vehicle_name: str = "", external=False )

Get the lens settings for the camera

Arguments
camera_name
str

camera name

vehicle_name
str, optional

vechile name. Defaults to "".

external
bool, optional

Whether the camera is an External Camera. Defaults to False.

simSetPresetLensSettings

VehicleClient.simSetPresetLensSettings( preset_lens_settings, camera_name: str, vehicle_name: str = "", external=False, )

No description provided!

simGetPresetFilmbackSettings

VehicleClient.simGetPresetFilmbackSettings( camera_name, vehicle_name="", external=False )

No description provided!

simSetPresetFilmbackSettings

VehicleClient.simSetPresetFilmbackSettings( preset_filmback_settings, camera_name, vehicle_name="", external=False )

No description provided!

simGetFilmbackSettings

VehicleClient.simGetFilmbackSettings(camera_name, vehicle_name="", external=False)

No description provided!

simSetFilmbackSettings

VehicleClient.simSetFilmbackSettings( sensor_width, sensor_height, camera_name, vehicle_name="", external=False )

No description provided!

simGetFocalLength

VehicleClient.simGetFocalLength(camera_name, vehicle_name="", external=False)

No description provided!

simSetFocalLength

VehicleClient.simSetFocalLength( focal_length, camera_name, vehicle_name="", external=False )

No description provided!

simEnableManualFocus

VehicleClient.simEnableManualFocus( enable, camera_name, vehicle_name="", external=False )

No description provided!

simGetFocusDistance

VehicleClient.simGetFocusDistance(camera_name, vehicle_name="", external=False)

No description provided!

simSetFocusDistance

VehicleClient.simSetFocusDistance( focus_distance, camera_name, vehicle_name="", external=False )

No description provided!

simGetFocusAperture

VehicleClient.simGetFocusAperture(camera_name, vehicle_name="", external=False)

No description provided!

simSetFocusAperture

VehicleClient.simSetFocusAperture( focus_aperture, camera_name, vehicle_name="", external=False )

No description provided!

simEnableFocusPlane

VehicleClient.simEnableFocusPlane(enable, camera_name, vehicle_name="", external=False)

No description provided!

simGetCurrentFieldOfView

VehicleClient.simGetCurrentFieldOfView(camera_name, vehicle_name="", external=False)

No description provided!

simTestLineOfSightToPoint

VehicleClient.simTestLineOfSightToPoint(point, vehicle_name="")

Returns whether the target point is visible from the perspective of the inputted vehicle

Arguments
point
GeoPoint

(GeoPoint): target point

vehicle_name
str, optional

Name of vehicle

Returns
[bool]
[bool]

Success

simTestLineOfSightBetweenPoints

VehicleClient.simTestLineOfSightBetweenPoints(point1, point2)

Returns whether the target point is visible from the perspective of the source point

Arguments
point1
GeoPoint

(GeoPoint): source point

point2
GeoPoint

(GeoPoint): target point

Returns
[bool]
[bool]

Success

simGetWorldExtents

VehicleClient.simGetWorldExtents()

Returns a list of GeoPoints representing the minimum and maximum extents of the world

Returns
list[GeoPoint]
list[GeoPoint]

list[GeoPoint]

simRunConsoleCommand

VehicleClient.simRunConsoleCommand(command)

Allows the client to execute a command in Unreal’s native console, via an API. Affords access to the countless built-in commands such as “stat unit”, “stat fps”, “open [map]”, adjust any config settings, etc. etc. Allows the user to create bespoke APIs very easily, by adding a custom event to the level blueprint, and then calling the console command “ce MyEventName [args]”. No recompilation of airgen needed!

Arguments
command
[string]

Desired Unreal Engine Console command to run

Returns
[bool]
[bool]

Success

simGetMeshPositionVertexBuffers

VehicleClient.simGetMeshPositionVertexBuffers()

Returns the static meshes that make up the scene

Returns
list[MeshPositionVertexBuffersResponse]
list[MeshPositionVertexBuffersResponse]

list[MeshPositionVertexBuffersResponse]

simGetCollisionInfo

VehicleClient.simGetCollisionInfo(vehicle_name="")

No description provided!

Arguments
vehicle_name
str, optional

Name of the Vehicle to get the info of. This call will also reset the collision info (state of the vehicle) to False.

Returns
CollisionInfo
CollisionInfo

CollisionInfo

simSetVehiclePose

VehicleClient.simSetVehiclePose(pose, ignore_collision, vehicle_name="", on_ground=False)

Set the pose of the vehicle

If you don’t want to change position (or orientation) then just set components of position (or orientation) to floating point nan values

Arguments
pose
Pose

(Pose): Desired Pose pf the vehicle

ignore_collision
bool

Whether to ignore any collision or not

vehicle_name
str, optional

Name of the vehicle to move

on_ground
bool

Whether to set the vehicle position on ground position

simSetVehicleGeoPose

VehicleClient.simSetVehicleGeoPose(geopose, ignore_collision, vehicle_name="", on_ground=False)

Set the pose of the vehicle

If you don’t want to change position (or orientation) then just set components of position (or orientation) to floating point nan values

Arguments
pose
Pose

(Pose): Desired Pose pf the vehicle

ignore_collision
bool

Whether to ignore any collision or not

vehicle_name
str, optional

Name of the vehicle to move

on_ground
bool

Whether to set the vehicle position to ground position

simSetGeoReference

VehicleClient.simSetGeoReference(geopoint)

Set the geo reference of the scene (only valid for Cesium)

Arguments
geopoint
GeoPoint

(GeoPoint): Desired GeoPoint of the scene

simGetVehiclePose

VehicleClient.simGetVehiclePose(vehicle_name="")

The position inside the returned Pose is in the frame of the vehicle’s starting point

Arguments
vehicle_name
str, optional

Name of the vehicle to get the Pose of

Returns
Pose
Pose

Pose

simSetTraceLine

VehicleClient.simSetTraceLine(color_rgba, thickness=1.0, vehicle_name="")

Modify the color and thickness of the line when Tracing is enabled

Tracing can be enabled by pressing T in the Editor or setting EnableTrace to True in the Vehicle Settings

Arguments
color_rgba
list

desired RGBA values from 0.0 to 1.0

thickness
float, optional

Thickness of the line

vehicle_name
string, optional

Name of the vehicle to set Trace line values for

simGetObjectPose

VehicleClient.simGetObjectPose(object_name)

The position inside the returned Pose is in the world frame

Arguments
object_name
str

Object to get the Pose of

Returns
Pose
Pose

Pose

simSetObjectPose

VehicleClient.simSetObjectPose(object_name, pose, teleport=True)

Set the pose of the object(actor) in the environment

The specified actor must have Mobility set to movable, otherwise there will be undefined behaviour. See https://www.unrealengine.com/en-US/blog/moving-physical-objects for details on how to set Mobility and the effect of Teleport parameter

Arguments
object_name
str

Name of the object(actor) to move

pose
Pose

(Pose): Desired Pose of the object

teleport
bool, optional

Whether to move the object immediately without affecting their velocity

Returns
bool
bool

If the move was successful

simSetObjectGeoPose

VehicleClient.simSetObjectGeoPose(object_name, geopose, teleport=True)

Set the pose of the object(actor) in the environment

The specified actor must have Mobility set to movable, otherwise there will be undefined behaviour. See https://www.unrealengine.com/en-US/blog/moving-physical-objects for details on how to set Mobility and the effect of Teleport parameter

Arguments
object_name
str

Name of the object(actor) to move

pose
Pose

(Pose): Desired Pose of the object

teleport
bool, optional

Whether to move the object immediately without affecting their velocity

Returns
bool
bool

If the move was successful

simGetObjectScale

VehicleClient.simGetObjectScale(object_name)

Gets scale of an object in the world

Arguments
object_name
str

Object to get the scale of

Returns
airgen.Vector3r
airgen.Vector3r

Scale

simSetObjectScale

VehicleClient.simSetObjectScale(object_name, scale_vector)

Sets scale of an object in the world

Arguments
object_name
str

Object to set the scale of

scale_vector
airgen.Vector3r

Desired scale of object

Returns
bool
bool

True if scale change was successful

simGetObjectDimensions

VehicleClient.simGetObjectDimensions(object_name)

Gets bounds of an object in the world

Arguments
object_name
str

Object to get the bounds of

Returns
airgen.Vector3r
airgen.Vector3r

Extents in X, Y, Z

simGetObjectCenter

VehicleClient.simGetObjectCenter(object_name)

Gets the center of an object in the world

Arguments
object_name
str

Object to get the center of

Returns
airgen.Vector3r
airgen.Vector3r

Center position

simListSceneObjects

VehicleClient.simListSceneObjects(name_regex=".*")

Lists the objects present in the environment

Default behaviour is to list all objects, regex can be used to return smaller list of matching objects or actors

Arguments
name_regex
str, optional

String to match actor names against, e.g. “Cylinder.*”

Returns
list[str]
list[str]

List containing all the names

simLoadLevel

VehicleClient.simLoadLevel(level_name)

Loads a level specified by its name

Arguments
level_name
str

Name of the level to load

Returns
bool
bool

True if the level was successfully loaded

simListAssets

VehicleClient.simListAssets()

Lists all the assets present in the Asset Registry

Returns
list[str]
list[str]

Names of all the assets

simSpawnObject

VehicleClient.simSpawnObject( object_name, asset_name, pose, scale, physics_enabled=False, is_blueprint=False, )

Spawned selected object in the world

Arguments
object_name
str

Desired name of new object

asset_name
str

Name of asset(mesh) in the project database

pose
airgen.Pose

Desired pose of object

scale
airgen.Vector3r

Desired scale of object

physics_enabled
bool, optional

Whether to enable physics for the object

is_blueprint
bool, optional

Whether to spawn a blueprint or an actor

Returns
str
str

Name of spawned object, in case it had to be modified

simSpawnObjectFromPath

VehicleClient.simSpawnObjectFromPath(object_name, path, pose, scale, physics_enabled=False)

Spawned selected object in the world

Arguments
object_name
str

Desired name of new object

asset_name
str

Name of asset(mesh) in the project database

pose
airgen.Pose

Desired pose of object

scale
airgen.Vector3r

Desired scale of object

physics_enabled
bool, optional

Whether to enable physics for the object

is_blueprint
bool, optional

Whether to spawn a blueprint or an actor

Returns
bool
bool

True if object was spawned, False otherwise

simSpawnObjectFromURL

VehicleClient.simSpawnObjectFromURL(object_name, url, pose, scale, physics_enabled=False)

Spawned selected object in the world

Arguments
object_name
str

Desired name of new object

asset_name
str

Name of asset(mesh) in the project database

pose
airgen.Pose

Desired pose of object

scale
airgen.Vector3r

Desired scale of object

physics_enabled
bool, optional

Whether to enable physics for the object

is_blueprint
bool, optional

Whether to spawn a blueprint or an actor

Returns
bool
bool

True if object was spawned, False otherwise

simDestroyObject

VehicleClient.simDestroyObject(object_name)

Removes selected object from the world

Arguments
object_name
str

Name of object to be removed

Returns
bool
bool

True if object is queued up for removal

simSetSegmentationObjectID

VehicleClient.simSetSegmentationObjectID(mesh_name, object_id, is_name_regex=False)

Set segmentation ID for specific objects

Arguments
mesh_name
str

Name of the mesh to set the ID of (supports regex)

object_id
int

Object ID to be set, range 0-255.

is_name_regex
bool, optional

Whether the mesh name is a regex. If True, all meshes matching the regex will be set to the same ID

Returns
bool
bool

If the mesh was found

simSetSegmentationInstanceID

VehicleClient.simSetSegmentationInstanceID(mesh_name, instance_id, is_name_regex=False)

Set segmentation ID for specific instances

Arguments
mesh_name
str

Name of the mesh to set the ID of (supports regex)

instance_id
int

start of instance ID to be set, range 0-255. Gets incremented each time for each instance (mesh)

is_name_regex
bool, optional

Whether the mesh name is a regex

Returns
int
int

number of instances (meshes) matched with mesh_id updated

simGetSegmentationObjectID

VehicleClient.simGetSegmentationObjectID(mesh_name)

Returns Object ID for the given mesh name (case-sensitive)

Arguments
mesh_name
str

Name of the mesh to get the ID of

simAddDetectionFilterMeshName

VehicleClient.simAddDetectionFilterMeshName( camera_name, image_type, mesh_name, vehicle_name="", external=False )

Add mesh name to detect in wild card format

For example: simAddDetectionFilterMeshName(“Car_”) will detect all instance named “Car_

Arguments
camera_name
str

Name of the camera, for backwards compatibility, ID numbers such as 0,1,etc. can also be used

image_type
ImageType

(ImageType): Type of image required

mesh_name
str

mesh name in wild card format

vehicle_name
str, optional

Vehicle which the camera is associated with

external
bool, optional

Whether the camera is an External Camera

simSetDetectionFilterRadius

VehicleClient.simSetDetectionFilterRadius( camera_name, image_type, radius_cm, vehicle_name="", external=False )

Set detection radius for all cameras

Arguments
camera_name
str

Name of the camera, for backwards compatibility, ID numbers such as 0,1,etc. can also be used

image_type
ImageType

(ImageType): Type of image required

radius_cm
int

Radius in [cm]

vehicle_name
str, optional

Vehicle which the camera is associated with

external
bool, optional

Whether the camera is an External Camera

simClearDetectionMeshNames

VehicleClient.simClearDetectionMeshNames( camera_name, image_type, vehicle_name="", external=False )

Clear all mesh names from detection filter

Arguments
camera_name
str

Name of the camera, for backwards compatibility, ID numbers such as 0,1,etc. can also be used

image_type
ImageType

(ImageType): Type of image required

vehicle_name
str, optional

Vehicle which the camera is associated with

external
bool, optional

Whether the camera is an External Camera

simGetDetections

VehicleClient.simGetDetections( camera_name, image_type, vehicle_name="", external=False )

Get current detections

Arguments
camera_name
str

Name of the camera, for backwards compatibility, ID numbers such as 0,1,etc. can also be used

image_type
ImageType

(ImageType): Type of image required

vehicle_name
str, optional

Vehicle which the camera is associated with

external
bool, optional

Whether the camera is an External Camera

Returns
DetectionInfo
DetectionInfo

array

simPrintLogMessage

VehicleClient.simPrintLogMessage(message, message_param="", severity=0)

Prints the specified message in the simulator’s window.

If message_param is supplied, then it’s printed next to the message and in that case if this API is called with same message value but different message_param again then previous line is overwritten with new line (instead of API creating new line on display).

For example, simPrintLogMessage("Iteration: ", to_string(i)) keeps updating same line on display when API is called with different values of i. The valid values of severity parameter is 0 to 3 inclusive that corresponds to different colors.

Arguments
message
str

Message to be printed

message_param
str, optional

Parameter to be printed next to the message

severity
int, optional

Range 0-3, inclusive, corresponding to the severity of the message

simGetCameraInfo

VehicleClient.simGetCameraInfo(camera_name, vehicle_name="", external=False)

Get details about the camera

Arguments
camera_name
str

Name of the camera, for backwards compatibility, ID numbers such as 0,1,etc. can also be used

vehicle_name
str, optional

Vehicle which the camera is associated with

external
bool, optional

Whether the camera is an External Camera

Returns
CameraInfo
CameraInfo

CameraInfo

simGetDistortionParams

VehicleClient.simGetDistortionParams(camera_name, vehicle_name="", external=False)

Get camera distortion parameters

Arguments
camera_name
str

Name of the camera, for backwards compatibility, ID numbers such as 0,1,etc. can also be used

vehicle_name
str, optional

Vehicle which the camera is associated with

external
bool, optional

Whether the camera is an External Camera

Returns
List
List

(float): List of distortion parameter values corresponding to K1, K2, K3, P1, P2 respectively.

simSetDistortionParams

VehicleClient.simSetDistortionParams( camera_name, distortion_params, vehicle_name="", external=False )

Set camera distortion parameters

Arguments
camera_name
str

Name of the camera, for backwards compatibility, ID numbers such as 0,1,etc. can also be used

distortion_params
dict

Dictionary of distortion param names and corresponding values

vehicle_name
str, optional

Vehicle which the camera is associated with

external
bool, optional

Whether the camera is an External Camera

simSetDistortionParam

VehicleClient.simSetDistortionParam( camera_name, param_name, value, vehicle_name="", external=False )

Set single camera distortion parameter

Arguments
camera_name
str

Name of the camera, for backwards compatibility, ID numbers such as 0,1,etc. can also be used

param_name
str

Name of distortion parameter

value
float

Value of distortion parameter

vehicle_name
str, optional

Vehicle which the camera is associated with

external
bool, optional

Whether the camera is an External Camera

simSetCameraPose

VehicleClient.simSetCameraPose(camera_name, pose, vehicle_name="", external=False)
  • Control the pose of a selected camera
Arguments
camera_name
str

Name of the camera to be controlled

pose
Pose

(Pose): Pose representing the desired position and orientation of the camera

vehicle_name
str, optional

Name of vehicle which the camera corresponds to

external
bool, optional

Whether the camera is an External Camera

simSetCameraFov

VehicleClient.simSetCameraFov( camera_name, fov_degrees, vehicle_name="", external=False )
  • Control the field of view of a selected camera
Arguments
camera_name
str

Name of the camera to be controlled

fov_degrees
float

Value of field of view in degrees

vehicle_name
str, optional

Name of vehicle which the camera corresponds to

external
bool, optional

Whether the camera is an External Camera

simCameraLookAt

VehicleClient.simCameraLookAt(camera_name, pose, vehicle_name="")
  • Control the pose of a selected camera
Arguments
camera_name
str

Name of the camera to be controlled

pose
Pose

(Pose): Pose representing the desired position the camera has to observe

vehicle_name
str, optional

Name of vehicle which the camera corresponds to

external
bool, optional

Whether the camera is an External Camera

simGetGroundTruthKinematics

VehicleClient.simGetGroundTruthKinematics(vehicle_name="")

Get Ground truth kinematics of the vehicle

The position inside the returned KinematicsState is in the frame of the vehicle’s starting point

Arguments
vehicle_name
str, optional

Name of the vehicle

Returns
KinematicsState
KinematicsState

Ground truth of the vehicle

simSetKinematics

VehicleClient.simSetKinematics(state, ignore_collision, vehicle_name="")

Set the kinematics state of the vehicle

If you don’t want to change position (or orientation) then just set components of position (or orientation) to floating point nan values

Arguments
state
KinematicsState

(KinematicsState): Desired Pose pf the vehicle

ignore_collision
bool

Whether to ignore any collision or not

vehicle_name
str, optional

Name of the vehicle to move

simGetGroundTruthEnvironment

VehicleClient.simGetGroundTruthEnvironment(vehicle_name="")

Get ground truth environment state

The position inside the returned EnvironmentState is in the frame of the vehicle’s starting point

Arguments
vehicle_name
str, optional

Name of the vehicle

Returns
EnvironmentState
EnvironmentState

Ground truth environment state

getImuData

VehicleClient.getImuData(imu_name="", vehicle_name="")

No description provided!

Arguments
imu_name
str, optional

Name of IMU to get data from, specified in settings.json

vehicle_name
str, optional

Name of vehicle to which the sensor corresponds to

Returns
ImuData
ImuData

ImuData

getBarometerData

VehicleClient.getBarometerData(barometer_name="", vehicle_name="")

No description provided!

Arguments
barometer_name
str, optional

Name of Barometer to get data from, specified in settings.json

vehicle_name
str, optional

Name of vehicle to which the sensor corresponds to

Returns
BarometerData
BarometerData

BarometerData

getMagnetometerData

VehicleClient.getMagnetometerData( magnetometer_name="", vehicle_name="" )

No description provided!

Arguments
magnetometer_name
str, optional

Name of Magnetometer to get data from, specified in settings.json

vehicle_name
str, optional

Name of vehicle to which the sensor corresponds to

Returns
MagnetometerData
MagnetometerData

MagnetometerData

getGpsData

VehicleClient.getGpsData(gps_name="", vehicle_name="")

No description provided!

Arguments
gps_name
str, optional

Name of GPS to get data from, specified in settings.json

vehicle_name
str, optional

Name of vehicle to which the sensor corresponds to

Returns
GpsData
GpsData

GpsData

getDistanceSensorData

VehicleClient.getDistanceSensorData( distance_sensor_name="", vehicle_name="" )

No description provided!

Arguments
distance_sensor_name
str, optional

Name of Distance Sensor to get data from, specified in settings.json

vehicle_name
str, optional

Name of vehicle to which the sensor corresponds to

Returns
DistanceSensorData
DistanceSensorData

DistanceSensorData

getLidarData

VehicleClient.getLidarData(lidar_name="", vehicle_name="")

No description provided!

Arguments
lidar_name
str, optional

Name of Lidar to get data from, specified in settings.json

vehicle_name
str, optional

Name of vehicle to which the sensor corresponds to

Returns
LidarData
LidarData

LidarData

simGetLidarSegmentation

VehicleClient.simGetLidarSegmentation(lidar_name="", vehicle_name="")

NOTE: Deprecated API, use getLidarData() API instead Returns Segmentation ID of each point’s collided object in the last Lidar update

Arguments
lidar_name
str, optional

Name of Lidar sensor

vehicle_name
str, optional

Name of the vehicle wth the sensor

Returns
list[int]
list[int]

Segmentation IDs of the objects

simFlushPersistentMarkers

VehicleClient.simFlushPersistentMarkers()

Clear any persistent markers - those plotted with setting is_persistent=True in the APIs below

simPlotPoints

VehicleClient.simPlotPoints( points, color_rgba=[1.0, 0.0, 0.0, 1.0], size=10.0, duration=-1.0, is_persistent=False, )

Plot a list of 3D points in World NED frame

Arguments
points
list[Vector3r]

list[Vector3r]: List of Vector3r objects

color_rgba
list, optional

desired RGBA values from 0.0 to 1.0

size
float, optional

Size of plotted point

duration
float, optional

Duration (seconds) to plot for

is_persistent
bool, optional

If set to True, the desired object will be plotted for infinite time.

simPlotLineStrip

VehicleClient.simPlotLineStrip( points, color_rgba=[1.0, 0.0, 0.0, 1.0], thickness=5.0, duration=-1.0, is_persistent=False, )

Plots a line strip in World NED frame, defined from points[0] to points[1], points[1] to points[2], … , points[n-2] to points[n-1]

Arguments
points
list[Vector3r]

list[Vector3r]: List of 3D locations of line start and end points, specified as Vector3r objects

color_rgba
list, optional

desired RGBA values from 0.0 to 1.0

thickness
float, optional

Thickness of line

duration
float, optional

Duration (seconds) to plot for

is_persistent
bool, optional

If set to True, the desired object will be plotted for infinite time.

simPlotLineList

VehicleClient.simPlotLineList( points, color_rgba=[1.0, 0.0, 0.0, 1.0], thickness=5.0, duration=-1.0, is_persistent=False, )

Plots a line strip in World NED frame, defined from points[0] to points[1], points[2] to points[3], … , points[n-2] to points[n-1]

Arguments
points
list[Vector3r]

list[Vector3r]: List of 3D locations of line start and end points, specified as Vector3r objects. Must be even

color_rgba
list, optional

desired RGBA values from 0.0 to 1.0

thickness
float, optional

Thickness of line

duration
float, optional

Duration (seconds) to plot for

is_persistent
bool, optional

If set to True, the desired object will be plotted for infinite time.

simPlotArrows

VehicleClient.simPlotArrows( points_start, points_end, color_rgba=[1.0, 0.0, 0.0, 1.0], thickness=5.0, arrow_size=2.0, duration=-1.0, is_persistent=False, )

Plots a list of arrows in World NED frame, defined from points_start[0] to points_end[0], points_start[1] to points_end[1], … , points_start[n-1] to points_end[n-1]

Arguments
points_start
list[Vector3r]

list[Vector3r]: List of 3D start positions of arrow start positions, specified as Vector3r objects

points_end
list[Vector3r]

list[Vector3r]: List of 3D end positions of arrow start positions, specified as Vector3r objects

color_rgba
list, optional

desired RGBA values from 0.0 to 1.0

thickness
float, optional

Thickness of line

arrow_size
float, optional

Size of arrow head

duration
float, optional

Duration (seconds) to plot for

is_persistent
bool, optional

If set to True, the desired object will be plotted for infinite time.

simPlotStrings

VehicleClient.simPlotStrings( strings, positions, scale=5, color_rgba=[1.0, 0.0, 0.0, 1.0], duration=-1.0, )

Plots a list of strings at desired positions in World NED frame.

Arguments
strings
list[String], optional

List of strings to plot

positions
list[Vector3r]

list[Vector3r]: List of positions where the strings should be plotted. Should be in one-to-one correspondence with the strings’ list

scale
float, optional

Font scale of transform name

color_rgba
list, optional

desired RGBA values from 0.0 to 1.0

duration
float, optional

Duration (seconds) to plot for

simPlotTransforms

VehicleClient.simPlotTransforms( poses, scale=5.0, thickness=5.0, duration=-1.0, is_persistent=False )

Plots a list of transforms in World NED frame.

Arguments
poses
list[Pose]

list[Pose]: List of Pose objects representing the transforms to plot

scale
float, optional

Length of transforms’ axes

thickness
float, optional

Thickness of transforms’ axes

duration
float, optional

Duration (seconds) to plot for

is_persistent
bool, optional

If set to True, the desired object will be plotted for infinite time.

simPlotTransformsWithNames

VehicleClient.simPlotTransformsWithNames( poses, names, tf_scale=5.0, tf_thickness=5.0, text_scale=10.0, text_color_rgba=[1.0, 0.0, 0.0, 1.0], duration=-1.0, )

Plots a list of transforms with their names in World NED frame.

Arguments
poses
list[Pose]

list[Pose]: List of Pose objects representing the transforms to plot

names
list[string]

List of strings with one-to-one correspondence to list of poses

tf_scale
float, optional

Length of transforms’ axes

tf_thickness
float, optional

Thickness of transforms’ axes

text_scale
float, optional

Font scale of transform name

text_color_rgba
list, optional

desired RGBA values from 0.0 to 1.0 for the transform name

duration
float, optional

Duration (seconds) to plot for

startRecording

VehicleClient.startRecording()

Start Recording

Recording will be done according to the settings

stopRecording

VehicleClient.stopRecording()

Stop Recording

isRecording

VehicleClient.isRecording()

Whether Recording is running or not

Returns
bool
bool

True if Recording, else False

simSetWind

VehicleClient.simSetWind(wind)

Set simulated wind, in World frame, NED direction, m/s

Arguments
wind
Vector3r

(Vector3r): Wind, in World frame, NED direction, in m/s

simCreateVoxelGrid

VehicleClient.simCreateVoxelGrid(position, x, y, z, res, of)

Construct and save a binvox-formatted voxel grid of environment

Arguments
position
Vector3r

(Vector3r): Position around which voxel grid is centered in m

res
float

Resolution of voxel grid in m

of
str

Name of output file to save voxel grid as

Returns
bool
bool

True if output written to file successfully, else False

simBuildSDF

VehicleClient.simBuildSDF(position, x, y, z, res)

Construct a signed distance field of the environment centered at position, and with dimensions (x, y, z). Internally, the SDF is stored as a special case of a voxel grid with floating point distances instead of boolean occupancy.

Arguments
position
Vector3r

(Vector3r): Global position around which field is centered in m

res
float

Resolution of distance field in m

simCheckOccupancy

VehicleClient.simCheckOccupancy(position)

Check and return occupancy of a point. Requires signed distance field to be built beforehand.

Arguments
position
Vector3r

(Vector3r): Global position at which occupancy is to be checked (m)

simGetSignedDistance

VehicleClient.simGetSignedDistance(position)

Get signed distance of a point (distance to the closest ‘object surface’) in the environment. Requires signed distance field to be built beforehand.

Distance is positive if the point is in free space, and negative if the point is inside an object.

Arguments
position
Vector3r

(Vector3r): Global position at which distance is to be computed (m)

Returns
dist
dist

(float)

simGetSignedDistances

VehicleClient.simGetSignedDistances(positions)

Get signed distance of a list of points (distance to the closest ‘object surface’) in the environment. Requires signed distance field to be built beforehand.

Distance is positive if the point is in free space, and negative if the point is inside an object.

Arguments
positions
list

List of global positions at which distance is to be computed (m)

Returns
dists
dists

(list)

simGetSDFGradient

VehicleClient.simGetSDFGradient(position)

Get the SDF gradient at a point (vector pointing away from the closest ‘object surface’) in the environment. Requires signed distance field to be built beforehand.

Arguments
position
Vector3r

(Vector3r): Global position at which gradient is to be computed (m)

Returns
gradient
gradient

Vector3r: SDF gradient at the position

simCheckInVolume

VehicleClient.simCheckInVolume(position, volume_object_name)

Check if a point is inside a volume.

Arguments
position
Vector3r

(Vector3r): Global position at which volume is to be checked (m)

volume_object_name
str

Name of the volume object

simProjectToFreeSpace

VehicleClient.simProjectToFreeSpace(position, mindist)

Project a given point into free space using the SDF, with a specified minimum clearance from existing objects. Returns the same point if the point is already free, else follows the SDF gradient to find a free point that satisfies the minimum distance constraint.

Arguments
position
Vector3r

(Vector3r): Global position to project (m)

mindist
float

Minimum distance from objects to satisfy when finding the free point

Returns
free_pt
free_pt

Vector3r: Projected position in free space

simSaveSDF

VehicleClient.simSaveSDF(filepath)

Save the constructed signed distance field to a file.

Arguments
filepath
str

Filename to save the SDF to

simLoadSDF

VehicleClient.simLoadSDF(filepath)

Load a saved signed distance field.

Arguments
filepath
str

Filename to load the SDF from

simGetRandomFreePoint

VehicleClient.simGetRandomFreePoint(search_radius)

Return a random free (unoccupied) point within a radius around the vehicle.

Arguments
search_radius
float

Radius around the vehicle to search for a free point in m

Returns
Vector3r
Vector3r

/None: Free/unoccupied point coordinates if successful, else None

simPlanPathToRandomFreePoint

VehicleClient.simPlanPathToRandomFreePoint(search_radius, smooth_path, draw_path)

Plan a collision-free path to a random point within a radius around the vehicle and return the intermediate waypoints.

Arguments
search_radius
float

Radius around the vehicle to search for a free point in m

smooth_path
bool

Returns a smooth spline if True, else returns a list of coarse waypoints

draw_path
bool

Draws the path in the Unreal environment if True

Returns
list[Vector3r]
list[Vector3r]

List of waypoints if successful, else empty list

simPlanPathToRandomizeGoal

VehicleClient.simPlanPathToRandomizeGoal( start, goal, search_radius, num_trials, smooth_path, draw_path )

Plan a collision-free path from the current position to a random point within a radius around the goal and return the intermediate waypoints.

Arguments
start
Vector3r

(Vector3r): Start position in airgen coordinates

goal
Vector3r

(Vector3r): Goal position in airgen coordinates

search_radius
float

Radius around the vehicle to search for a free point in m

num_trials
int

number of random points to query for a free point

smooth_path
bool

Returns a smooth spline if True, else returns a list of coarse waypoints

draw_path
bool

Draws the path in the Unreal environment if True

Returns
list[Vector3r]
list[Vector3r]

List of waypoints if successful, else empty list

simPlanPath

VehicleClient.simPlanPath(start, goal, smooth_path, draw_path)

Plan a collision-free path between start and goal points and return the intermediate waypoints.

Arguments
start
Vector3r

(Vector3r): Start position in airgen coordinates

goal
Vector3r

(Vector3r): Goal position in airgen coordinates

smooth_path
bool

Returns a smooth spline if True, else returns a list of coarse waypoints

draw_path
bool

Draws the path in the Unreal environment if True

Returns
list[Vector3r]
list[Vector3r]

List of waypoints if successful, else empty list

getNavMeshInfo

VehicleClient.getNavMeshInfo()

Get NavMesh information, as an array of XYZ center, min and max values in global NED coordinates

Returns
list[Vector3r]
list[Vector3r]

List of values if successful, else empty list

isPointInCollision

VehicleClient.isPointInCollision(point)

Get Collision information about a point. Returns True if point is in collision, else False

Arguments
point
Vector3r

(Vector3r): Point to be checked in airgen coordinates

Returns
bool
bool

True if point is in collision, else False

isAnyPointInCollisionBatch

VehicleClient.isAnyPointInCollisionBatch(points)

Get Collision information about an array of points. Returns True if any of the points is in collision, else False

Arguments
points
list[Vector3r]

list[Vector3r]: List of points to be checked in airgen coordinates

Returns
bool
bool

True if any of the points is in collision, else False

simAddVehicle

VehicleClient.simAddVehicle(vehicle_name, vehicle_type, pose, pawn_path="")

Create vehicle at runtime

Arguments
vehicle_name
str

Name of the vehicle being created

vehicle_type
str

Type of vehicle, e.g. “simpleflight”

pose
Pose

(Pose): Initial pose of the vehicle

pawn_path
str, optional

Vehicle blueprint path, default empty wbich uses the default blueprint for the vehicle type

Returns
bool
bool

Whether vehicle was created

listVehicles

VehicleClient.listVehicles()

Lists the names of current vehicles

Returns
list[str]
list[str]

List containing names of all vehicles

getSettingsString

VehicleClient.getSettingsString()

Fetch the settings text being used by airgen

Returns
str
str

Settings text in JSON format

simCreateWaypoint

VehicleClient.simCreateWaypoint(context = "", vehicle_name = "")

Creates a waypoint using the vehicle transform. The created waypoint will be associated with the specified waypoints-context.

If context isn’t specified, it’ll default to the last-used context. If there’s no context present and context isn’t specified, a context named ‘defaultWaypoints’ will be auto created.

Arguments
vehicle_name
str, optional

Name of the vehicle

context
str, optional

Name of the associated waypoints-context

simDeleteWaypoints

VehicleClient.simDeleteWaypoints(context = "", only_recent = True, keep_context_alive = True)

Deletes waypoints for a specified context

If ‘only_recent’ is True, it’ll delete the youngest waypoint of the specified waypoints-context. If ‘only_recent’ is False, it’ll delete all waypoints for the specified context.

If context isn’t specified, it’ll default to the last-used context. If context isn’t specified and there’s no last-used context, it’ll throw an error.

Arguments
context
str, optional

Name of the associated waypoints-context

only_recent
bool, optional

Whether to delete only the youngest waypoint or all of them, for a context

keep_context_alive
bool, optional

If this is False, the context and all its associated waypoints will be deleted

simDeleteAllWaypoints

VehicleClient.simDeleteAllWaypoints()

Deletes all waypoints and all waypoint-contexts

simGetWaypointDataAsCsv

VehicleClient.simGetWaypointDataAsCsv(context = "")

Get the waypoints data of a waypoints-context as a CSV formatted string. If context isn’t specified, it’ll default to the last-used context. If context isn’t specified and there’s no last-used context, it’ll throw an error.

Arguments
context
str, optional

Name of the waypoints-context

Returns
waypoint_data
waypoint_data

(str): Waypoint data as a CSV formatted string

simGetWaypointDataAsJson

VehicleClient.simGetWaypointDataAsJson(context = "")

Get the waypoints data of a waypoints-context as a JSON string. If context isn’t specified, it’ll default to the last-used context. If context isn’t specified and there’s no last-used context, it’ll throw an error.

Arguments
context
str, optional

Name of the waypoints-context

Returns
waypoint_data
waypoint_data

(str): Waypoint data as a JSON formatted string

simSetWaypointColor

VehicleClient.simSetWaypointColor(color_rgb, index, context = "")

Changes the color of a given waypoint. If context isn’t specified, it’ll default to the last-used context. If context isn’t specified and there’s no last-used context, it’ll throw an error.

Arguments
color_rgb
list

desired RGB values from 0.0 to 1.0. e.g. [1, 1, 1]

index
int

The index of the Waypoint. The index of the first waypoint is 0.

context
str, optional

Name of the waypoints-context.

Returns
success
success

(bool): True if the color change was a success, false otherwise.

simResetWaypointColor

VehicleClient.simResetWaypointColor(index, context = "")

Resets the color of a given waypoint to the original. If context isn’t specified, it’ll default to the last-used context. If context isn’t specified and there’s no last-used context, it’ll throw an error.

Arguments
index
int

The index of the Waypoint. The index of the first waypoint is 0.

context
str, optional

Name of the waypoints-context.

Returns
success
success

(bool): True if the color reset was a success, false otherwise.

Was this page helpful?