Skip to content

UAbstractImitationConnector

An abstract class for connectors between Unreal Engine and imitation learning environments.

This class provides the basic structure and functionality for connecting Unreal Engine environments with external expert policies for imitation learning purposes.

Subclassed by URPCImitationConnector

class UAbstractImitationConnector : public UObject

Methods

Public

UAbstractImitationConnector

UAbstractImitationConnector()

Constructor for the abstract imitation connector.


UAbstractImitationConnector

~UAbstractImitationConnector()

Destructor for the abstract imitation connector.


Init

virtual void Init(const FTrainingDefinition &AgentDefinitions)

Initialize this imitation connector with training definitions.

Parameters

  • AgentDefinitions (const FTrainingDefinition)

Init

void Init(const TArray<TScriptInterface<IBaseImitationScholaEnvironment>>
&InEnvironments)

Initialize this imitation connector by collecting environments and building training definitions.

Parameters

  • InEnvironments (const TArray<TScriptInterface<IBaseImitationScholaEnvironment>>)

SetStatus

void SetStatus(EImitationConnectorStatus NewStatus)

Set the status of the connector and broadcast appropriate delegates.

Parameters

  • NewStatus (EImitationConnectorStatus)

SubmitStateWithInitialState

inline virtual void
SubmitStateWithInitialState(const FImitationTrainingState &InState,
const FInitialState &InInitialState)

Submit imitation state to external source with initial state information.

Parameters

  • InState (const FImitationTrainingState)

  • InInitialState (const FInitialState)


SubmitState

inline virtual void SubmitState(const FImitationTrainingState &InState)

Submit imitation state to external source without initial state information.

Parameters

  • InState (const FImitationTrainingState)

CheckForStart

inline virtual bool CheckForStart()

Check if the connector is ready to start processing.


IsRunning

inline bool IsRunning()

Check if the connector is currently running.


IsNotStarted

inline bool IsNotStarted()

Check if the connector has not started or is closed.


CollectEnvironments

void CollectEnvironments(
TArray<TScriptInterface<IBaseImitationScholaEnvironment>>
&OutCollectedEnvironments)

Collect all imitation environment actors from the current world.

Parameters

  • OutCollectedEnvironments (TArray<TScriptInterface<IBaseImitationScholaEnvironment>>)

PrepareEnvironments

void PrepareEnvironments(
const TArray<TScriptInterface<IBaseImitationScholaEnvironment>>
&InEnvironments)

Prepare environments for imitation by wrapping them in type-erased interfaces.

Parameters

  • InEnvironments (const TArray<TScriptInterface<IBaseImitationScholaEnvironment>>)

Step

void Step()

Execute one step of imitation learning across all environments.

Protected

HandleImitationStep

void HandleImitationStep(FImitationTrainingState &OutTrainingState,
FInitialState &OutInitialState)

Handle a single step of imitation learning.

Parameters

  • OutTrainingState (FImitationTrainingState)

  • OutInitialState (FInitialState)

Attributes

OnConnectorStarted

FImitationConnectorStartedSignature OnConnectorStarted

Delegate broadcast when the connector starts.


OnConnectorClosed

FImitationConnectorClosedSignature OnConnectorClosed

Delegate broadcast when the connector closes.


OnConnectorError

FImitationConnectorErrorSignature OnConnectorError

Delegate broadcast when the connector encounters an error.


Environments

TArray<IImitationScholaEnvironment *> Environments =
TArray<IImitationScholaEnvironment *>()

Array of type-erased environment pointers currently used for imitation.


FTrainingDefinition

FTrainingDefinition TrainingDefinition = FTrainingDefinition()

Training definition containing environment and agent definitions.


Status

EImitationConnectorStatus Status = EImitationConnectorStatus::Running

Current status of the connector.


bFirstStep

bool bFirstStep = true

Flag indicating whether this is the first step (requires reset).

Source: Source/ScholaImitation/Public/ImitationConnectors/AbstractImitationConnector.h