Writing FlightGogglesClient's config file
Vehicle models and camera models can be added in the FlightGogglesClient.yaml file. The state block contains the configuration of rendering environments. The sceneFilename
can be Abandoned_Factory_Morning
, Stata_GroundFloor
, or Stata_Basement
. The camera parameters including width, height, the field of view, depth scale can be configured in this block.
state: sceneFilename: "Stata_GroundFloor" camWidth: 1024 camHeight: 768 camFOV: 70.0 camDepthScale: 0.20
In order to render the camera image with multiple machines, users can add a new renderer in renderer
block. The input port and the output port have to be matched with renderer binary’s ports.
renderer: 0: inputPort: "10253" outputPort: "10254" 1: inputPort: "10255" outputPort: "10256"
By modifying the objects
block, the users can add obstacles or vehicle models into FlightGoggles environments. The object’s size can be changed by updating size_x
, size_y
, size_z
. Also, users can select which renderer to render the objects by assigning renderer id on renderer
. If there are no assigned renderer id, objects will be shown in all renderers.
These are the object model that can be registered: Gate
, Blackeagle
, Square_Gate
, Circular_Gate
.
objects: 0: ID: uav1 prefabID: Blackeagle size_x: 5 size_y: 5 size_z: 5 renderer: 0 1: ID: Gate1 prefabID: gate size_x: 200 size_y: 200 size_z: 200
The camera model can be registered in the camera_model
block. Users can configure the output type of each camera by changing outputShaderType
.
camera_model: 0: ID: cam1 outputShaderType: -1 initialPose: [0, 0, 0, 1, 0, 0, 0] renderer: 0 freq: 30 1: ID: cam2 outputShaderType: -1 initialPose: [0, 0, 0, 1, 0, 0, 0] renderer: 1 freq: 30
The camera shader index can be configured as follows:
CameraShader - RGB = -1, - InstanceID = 0, - SemanticID = 1, - DepthCompressed = 2, - DepthMultiChannel = 3, - SurfaceNormals = 4 - grayscale = 5 - opticalFlow = 6
The vehicle model can be registered in the vehicle_model
block. The vehicle’s type and the frequency of the inertial measurement unit can be configured in this block. The camera model can be attached to the vehicle to the cameraInfo
block. Every camera model has to be registered in the camera_model
block before attaching it to the vehicle. Also, the object model can be attached to the objectsInfo
block. Same as the camera model, every object model has to be registered in the objects
block before attaching it to the vehicle.
The parameters for each vehicle (e.g. mass or actuator noise) can be configured by modifying files multicopterDynamicsSim.yaml and carDynamicsSim.yaml. Also, the user can assign specific configuration files for each vehicle by adding config_file
option to the vehicle_model
block. The initial pose of vehicles and cameras can be configured with initialPose
option which is composed of position and quaternion (in order of WXYZ).
vehicle_model: uav1: type: "drone" initialPose: [-6.5, -18.5, -2.0, 1.0, 0, 0, 0] imu_freq: 200 config_file: "multicopterDynamicsSim.yaml" objectsInfo: uav1: relativePose: [0, 0, 0.3, 0.3, 0.707, 0, 0, -0.707] cameraInfo: cam1: relativePose: [0, 0, 0, 1, 0, 0, 0] car1: type: "car" initialPose: [-6.5, -18.5, -0.2, 0.707, 0, 0, -0.707] imu_freq: 50 config_file: "carDynamicsSim.yaml" cameraInfo: cam2: relativePose: [0, 0, 0, 1, 0, 0, 0]