Agents

For a higher level description of the agents, see HoloOcean Agents.

Definitions for different agents that can be controlled from HoloOcean

Classes:

AgentDefinition(agent_name, agent_type[, ...])

Represents information needed to initialize agent.

AgentFactory()

Creates an agent object

ControlSchemes()

All allowed control schemes.

HoloOceanAgent(client[, name])

A learning agent in HoloOcean

HoveringAUV(client[, name])

A simple autonomous underwater vehicle.

TorpedoAUV(client[, name])

A simple foward motion autonomous underwater vehicle.

TurtleAgent(client[, name])

A simple turtle bot.

UavAgent(client[, name])

class holoocean.agents.AgentDefinition(agent_name, agent_type, sensors=None, starting_loc=(0, 0, 0), starting_rot=(0, 0, 0), existing=False, is_main_agent=False)

Represents information needed to initialize agent.

Parameters
  • agent_name (str) – The name of the agent to control.

  • agent_type (str or type) – The type of HoloOceanAgent to control, string or class reference.

  • sensors (SensorDefinition or class type (if no duplicate sensors)) – A list of HoloOceanSensors to read from this agent.

  • starting_loc (list of float) – Starting [x, y, z] location for agent (see Coordinate System)

  • starting_rot (list of float) – Starting [roll, pitch, yaw] rotation for agent (see Rotations)

  • existing (bool) – If the agent exists in the world or not (deprecated)

class holoocean.agents.AgentFactory

Creates an agent object

Methods:

build_agent(client, agent_def)

Constructs an agent

static build_agent(client, agent_def)

Constructs an agent

Parameters

Returns:

class holoocean.agents.ControlSchemes

All allowed control schemes.

ANDROID_TORQUES

Default Android control scheme. Specify a torque for each joint.

Type

int

CONTINUOUS_SPHERE_DEFAULT

Default ContinuousSphere control scheme. Takes two commands, [forward_delta, turn_delta].

Type

int

DISCRETE_SPHERE_DEFAULT

Default DiscreteSphere control scheme. Takes a value, 0-4, which corresponds with forward, backward, right, and left.

Type

int

NAV_TARGET_LOCATION

Default NavAgent control scheme. Takes a target xyz coordinate.

Type

int

UAV_TORQUES

Default UAV control scheme. Takes torques for roll, pitch, and yaw, as well as thrust.

Type

int

UAV_ROLL_PITCH_YAW_RATE_ALT

Control scheme for UAV. Takes roll, pitch, yaw rate, and altitude targets.

Type

int

HAND_AGENT_MAX_TORQUES

Default Android control scheme. Specify a torque for each joint.

Type

int

class holoocean.agents.HoloOceanAgent(client, name='DefaultAgent')

A learning agent in HoloOcean

Agents can act, receive rewards, and receive observations from their sensors. Examples include the Android, UAV, and SphereRobot.

Parameters
  • client (HoloOceanClient) – The HoloOceanClient that this agent belongs with.

  • name (str, optional) – The name of the agent. Must be unique from other agents in the same environment.

  • sensors (dict of (str, HoloOceanSensor)) – A list of HoloOceanSensors to read from this agent.

name

The name of the agent.

Type

str

sensors

List of HoloOceanSensors on this agent.

Type

dict of (string, HoloOceanSensor)

agent_state_dict

A dictionary that maps sensor names to sensor observation data.

Type

dict

Methods:

act(action)

Sets the command for the agent.

add_sensors(sensor_defs)

Adds a sensor to a particular agent object and attaches an instance of the sensor to the agent in the world.

clear_action()

Sets the action to zeros, effectively removing any previous actions.

get_joint_constraints(joint_name)

Returns the corresponding swing1, swing2 and twist limit values for the specified joint.

has_camera()

Indicatates whether this agent has a camera or not.

remove_sensors(sensor_defs)

Removes a sensor from a particular agent object and detaches it from the agent in the world.

set_control_scheme(index)

Sets the control scheme for the agent.

set_physics_state(location, rotation, ...)

Sets the location, rotation, velocity and angular velocity of an agent.

teleport([location, rotation])

Teleports the agent to a specific location, with a specific rotation.

Attributes:

action_space

Gets the action space for the current agent and control scheme.

control_schemes

A list of all control schemes for the agent.

act(action)

Sets the command for the agent. Action depends on the agent type and current control scheme.

Parameters

action (np.ndarray) – The action to take.

property action_space

Gets the action space for the current agent and control scheme.

Returns

The action space for this agent and control

scheme.

Return type

ActionSpace

add_sensors(sensor_defs)

Adds a sensor to a particular agent object and attaches an instance of the sensor to the agent in the world.

:param sensor_defs (HoloOceanSensor or: list of HoloOceanSensor):

Sensors to add to the agent.

clear_action()

Sets the action to zeros, effectively removing any previous actions.

property control_schemes

A list of all control schemes for the agent. Each list element is a 2-tuple, with the first element containing a short description of the control scheme, and the second element containing the ActionSpace for the control scheme.

Returns

Each tuple contains a short description and the ActionSpace

Return type

(str, ActionSpace)

get_joint_constraints(joint_name)

Returns the corresponding swing1, swing2 and twist limit values for the specified joint. Will return None if the joint does not exist for the agent.

Returns

obj )

Return type

(

has_camera()

Indicatates whether this agent has a camera or not.

Returns

If the agent has a sensor or not

Return type

bool

remove_sensors(sensor_defs)

Removes a sensor from a particular agent object and detaches it from the agent in the world.

:param sensor_defs (HoloOceanSensor or: list of HoloOceanSensor):

Sensors to remove from the agent.

set_control_scheme(index)

Sets the control scheme for the agent. See ControlSchemes.

Parameters

index (int) – The control scheme to use. Should be set with an enum from ControlSchemes.

set_physics_state(location, rotation, velocity, angular_velocity)

Sets the location, rotation, velocity and angular velocity of an agent.

Parameters
  • location (np.ndarray) – New location ([x, y, z] (see Coordinate System))

  • rotation (np.ndarray) – New rotation ([roll, pitch, yaw], see (see Rotations))

  • velocity (np.ndarray) – New velocity ([x, y, z] (see Coordinate System))

  • angular_velocity (np.ndarray) – New angular velocity ([x, y, z] in degrees (see Coordinate System))

teleport(location=None, rotation=None)

Teleports the agent to a specific location, with a specific rotation.

Parameters
  • location (np.ndarray, optional) –

    An array with three elements specifying the target world coordinates [x, y, z] in meters (see Coordinate System).

    If None (default), keeps the current location.

  • rotation (np.ndarray, optional) –

    An array with three elements specifying roll, pitch, and yaw in degrees of the agent.

    If None (default), keeps the current rotation.

class holoocean.agents.HoveringAUV(client, name='DefaultAgent')

A simple autonomous underwater vehicle.

Action Space::

[Vertical Front Starboard, Vertical Front Port, Vertical Back Port, Vertical Back Starboard,
Angled Front Starboard, Angled Front Port, Angled Back Port, Angled Back Starboard]
  • All are capped by max acceleration

Inherits from HoloOceanAgent.

Attributes:

control_schemes

A list of all control schemes for the agent.

Methods:

get_joint_constraints(joint_name)

Returns the corresponding swing1, swing2 and twist limit values for the specified joint.

property control_schemes

A list of all control schemes for the agent. Each list element is a 2-tuple, with the first element containing a short description of the control scheme, and the second element containing the ActionSpace for the control scheme.

Returns

Each tuple contains a short description and the ActionSpace

Return type

(str, ActionSpace)

get_joint_constraints(joint_name)

Returns the corresponding swing1, swing2 and twist limit values for the specified joint. Will return None if the joint does not exist for the agent.

Returns

obj )

Return type

(

class holoocean.agents.TorpedoAUV(client, name='DefaultAgent')

A simple foward motion autonomous underwater vehicle.

Action Space::

[left_fin, top_fin, right_fin, bottom_fin, thrust]
  • All are capped by max acceleration

Inherits from HoloOceanAgent.

Attributes:

control_schemes

A list of all control schemes for the agent.

Methods:

get_joint_constraints(joint_name)

Returns the corresponding swing1, swing2 and twist limit values for the specified joint.

property control_schemes

A list of all control schemes for the agent. Each list element is a 2-tuple, with the first element containing a short description of the control scheme, and the second element containing the ActionSpace for the control scheme.

Returns

Each tuple contains a short description and the ActionSpace

Return type

(str, ActionSpace)

get_joint_constraints(joint_name)

Returns the corresponding swing1, swing2 and twist limit values for the specified joint. Will return None if the joint does not exist for the agent.

Returns

obj )

Return type

(

class holoocean.agents.TurtleAgent(client, name='DefaultAgent')

A simple turtle bot.

Action Space:

[forward_force, rot_force]

  • forward_force is capped at 160 in either direction

  • rot_force is capped at 35 either direction

Inherits from HoloOceanAgent.

Attributes:

control_schemes

A list of all control schemes for the agent.

Methods:

get_joint_constraints(joint_name)

Returns the corresponding swing1, swing2 and twist limit values for the specified joint.

property control_schemes

A list of all control schemes for the agent. Each list element is a 2-tuple, with the first element containing a short description of the control scheme, and the second element containing the ActionSpace for the control scheme.

Returns

Each tuple contains a short description and the ActionSpace

Return type

(str, ActionSpace)

get_joint_constraints(joint_name)

Returns the corresponding swing1, swing2 and twist limit values for the specified joint. Will return None if the joint does not exist for the agent.

Returns

obj )

Return type

(

class holoocean.agents.UavAgent(client, name='DefaultAgent')

Attributes:

control_schemes

A list of all control schemes for the agent.

Methods:

get_joint_constraints(joint_name)

Returns the corresponding swing1, swing2 and twist limit values for the specified joint.

property control_schemes

A list of all control schemes for the agent. Each list element is a 2-tuple, with the first element containing a short description of the control scheme, and the second element containing the ActionSpace for the control scheme.

Returns

Each tuple contains a short description and the ActionSpace

Return type

(str, ActionSpace)

get_joint_constraints(joint_name)

Returns the corresponding swing1, swing2 and twist limit values for the specified joint. Will return None if the joint does not exist for the agent.

Returns

obj )

Return type

(