Agent Configuration

HoloOcean agents are declared in a list in the scenario dictionary. Each agent is defined using a new dictionary in the list.

Note

The first agent in the agents array is the “main agent”.

"agents":[
   {
      "agent_name": "uav0",
      "agent_type": "{agent types}",
      "sensors": [
         "array of sensor objects"
      ],
      "location": [1.0, 2.0, 3.0],
      "rotation": [1.0, 2.0, 3.0],
      "location_randomization": [1, 2, 3],
      "rotation_randomization": [10, 10, 10],
      "control_scheme": "{control scheme type}",
   },
   {
      "agent_name": "uav1",
      ...
   }
]

Below is a description of the keys in the agent dictionary:

Agent Name

agent_name is a string that specifies the name of the agent. This name is used to identify the agent when interacting with the environment.

Agent Type

agent_type is a string that specifies the type of agent. This table gives the current valid arguments for agent_type:

Agent Type

String in agent_type

HoveringAUV

HoveringAUV

SurfaceVessel

SurfaceVessel

TorpedoAUV

TorpedoAUV

CougUV

CougUV

BlueROV2

BlueROV

SphereAgent

Sphere

TurtleAgent

TurtleAgent

FixedWing

FixedWing

UAV Agent

UAV

Details on each agent can be found at the individual agent pages in HoloOcean Agents. This list will be updated as more agents are added to HoloOcean.

Sensors

sensors is an array of sensor objects that are attached to the agent. Each sensor is defined using a new dictionary in the list. For details on configuring and using sensors, see Sensor Configuration.

Location and Rotation

These keys define the location and orientation of the agent in the world, measured in meters and degrees respectively. The location is in the format [dx, dy, dz] and the rotation is [roll, pitch, yaw], rotated about XYZ fixed axes, ie R_z R_y R_x.

Note

  • Location uses HoloOcean world coordinates, not Unreal Engine level coordinates!

  • HoloOcean coordinates are right handed in meters.

  • See Units and Coordinates in HoloOcean for details.

Location Randomization

location_randomization and rotation_randomization are optional. If provided, the agent’s start location and/or rotation will vary by a random amount sampled uniformly from the specified range. Ranndomization in each direction is sampled independently.

The location randomization value is measured in meters, in the format [dx, dy, dz]. The rotation randomization is in the format [roll, pitch, yaw], rotated about the XYZ fixed axes (i.e. R_z*R_y*R_x).

Control Scheme

control_scheme is a string that specifies the control scheme (represented as an integer) used by the agent.

Control schemes determine how commands sent to the agent are interpreted. Most agents have a control scheme that exposes their thrusters, fins, and so forth to direct commands. Other control schemes implement convenient features, such as position PID controllers. A Custom Dynamics control scheme is available for users to fine-tune the motion of the vehicle.

For more details on control schemes, see Control Schemes.