- Schola Documentation
-
Examples
- Index
- Training NPCs to Play a MultiAgent Game of Tag
- Training StateTree RL Agents via Hierarchical Reinforcement Learning
-
Training an X-Arm 5 Robotic Arm with AMD Schola and Unreal Engine
-
API Documentation
- Index
-
Python API
- Index
-
Core
-
Extensions
-
Rllib
-
-
Scripts
- Index
-
Minari
-
Rllib
-
Sb3
-
Utils
- Index
-
Compile Proto
- Index
- compile_proto.add_api_macro
- compile_proto.add_third_party_include_guards
- compile_proto.default_warnings
- compile_proto.disable_warnings
- compile_proto.ensure_ue_verify_macro_sandbox
- compile_proto.fix_imports
- compile_proto.get_expected_generated_files
- compile_proto.get_files
- compile_proto.get_generated_cpp_file_types
- compile_proto.get_generated_python_file_types
- compile_proto.get_proto_files
- compile_proto.make_grpc_files
- compile_proto.make_proto_files
- compile_proto.move_files
- compile_proto.remove_stale_generated_files
-
C++ API (Unreal)
- Index
-
Classes
- Index
- AGymConnectorManager
- AImitationConnectorManager
- AImitationPlayerController
- AImitationPlayerControllerBase
- AMultiAgentImitationPlayerController
- ConstPointVisitor
- ConstSpaceVisitor
- ExchangeRPCWorker
- FCPUModelWrapper
- FCPURuntimeWrapper
- FEnhancedInputUtils
- FGPUModelWrapper
- FGPURuntimeWrapper
- FScholaEditorModule
- FScholaImitationModule
- FScholaInferenceUtilsModule
- FScholaInteractorsModule
- FScholaModule
- FScholaNNEModule
- FScholaProtobufModule
- FScholaTrainingModule
- IAgent
- IBaseImitationScholaEnvironment
- IBaseScholaEnvironment
- IConsumerBackend
- ICppOnlyMultiAgentEnvironment
- IExchangeBackend
- IGymConnector
- IImitationScholaEnvironment
- IModelInstanceInterface
- IModelInterface
- IMultiAgentImitationScholaEnvironment
- IMultiAgentScholaEnvironment
- IPolicy
- IProducerBackend
- IProtobufBackend
- IRuntimeInterface
- IScholaActuator
- IScholaEnvironment
- IScholaSensor
- ISingleAgentImitationScholaEnvironment
- ISingleAgentScholaEnvironment
- IStepper
- PointAllocator
- PointVisitor
- ProducerRPCWorker
- ProtobufPointDeserializer
- ProtobufPointSerializer
- ProtobufSpaceDeserializer
- ProtobufSpaceSerializer
- SpaceTransmuter
- SpaceVisitor
- TCallData
- TConsumerRPCBackend
- TConsumerRPCWorker
- TExchangeCallData
- TExchangeRPCBackend
- TImitationScholaEnvironment
- TProducerRPCBackend
- TRPCBackend
- TScholaEnvironment
- UAbstractGymConnector
- UAbstractImitationConnector
- UAgent
- UBaseImitationScholaEnvironment
- UBaseScholaEnvironment
- UBlueprintPolicy
- UBoxPointBlueprintLibrary
- UBoxSpaceBlueprintLibrary
- UBoxStacker
- UCameraSensor
- UCommunicationManager
- UCppOnlyMultiAgentEnvironment
- UDictPointBlueprintLibrary
- UDictSpaceBlueprintLibrary
- UDictStacker
- UDiscretePointBlueprintLibrary
- UDiscreteSpaceBlueprintLibrary
- UExternalGymConnector
- UGymConnector
- ULaunchableScriptFunctionLibrary
- UManualGymConnector
- UMovementInputActuator
- UMultiAgentImitationScholaEnvironment
- UMultiAgentScholaEnvironment
- UMultiBinaryPointBlueprintLibrary
- UMultiBinarySpaceBlueprintLibrary
- UMultiDiscretePointBlueprintLibrary
- UMultiDiscreteSpaceBlueprintLibrary
- UNNEPolicy
- UPipelinedStepper
- UPointBlueprintLibrary
- UPolicy
- URPCGymConnector
- URPCImitationConnector
- URayCastSensor
- URotationActuator
- UScholaActuator
- UScholaSensor
- USimpleStepper
- USingleAgentImitationScholaEnvironment
- USingleAgentScholaEnvironment
- USpaceBlueprintLibrary
- UStackerBase
- UStepper
- UTeleportActuator
-
Structs
- Index
- FAgentState
- FBoxPoint
- FBoxSpace
- FBoxSpaceDimension
- FCustomTrainingSettings
- FDictPoint
- FDictSpace
- FDiscretePoint
- FDiscreteSpace
- FEnvReset
- FEnvStep
- FEnvironmentDefinition
- FEnvironmentState
- FExternalGymConnectorSettings
- FImitationAgentState
- FImitationEnvironmentState
- FImitationLoggingSettings
- FImitationScriptSettings
- FImitationSettings
- FImitationState
- FImitationTrainingState
- FInitialAgentState
- FInitialEnvironmentState
- FInitialState
- FInteractionDefinition
- FLaunchableScript
- FLaunchableScriptRunnable
- FMinariCollectionSettings
- FMultiBinaryPoint
- FMultiBinarySpace
- FMultiDiscretePoint
- FMultiDiscreteSpace
- FNNEBindingCreator
- FNNEBoxBuffer
- FNNEBufferAllocator
- FNNEBufferVisitor
- FNNEDictBuffer
- FNNEDiscreteBuffer
- FNNEMultiBinaryBuffer
- FNNEMultiDiscreteBuffer
- FNNEPointBuffer
- FNNEPointCreator
- FNNEPointToBufferConverter
- FNNEStateBuffer
- FPoint
- FRLlibAPPOSettings
- FRLlibCheckpointSettings
- FRLlibIMPALASettings
- FRLlibLoggingSettings
- FRLlibNetworkArchSettings
- FRLlibPPOSettings
- FRLlibResourceSettings
- FRLlibResumeSettings
- FRLlibSACSettings
- FRLlibTrainingSettings
- FRPCServerSettings
- FSB3CheckpointSettings
- FSB3LoggingSettings
- FSB3NetworkArchSettings
- FSB3PPOSettings
- FSB3ResumeSettings
- FSB3SACSettings
- FSB3TrainingSettings
- FScriptArgBuilder
- FScriptSettingsBase
- FSpace
- FStartRequest
- FTrainingDefinition
- FTrainingReset
- FTrainingScriptSettings
- FTrainingSettings
- FTrainingState
- FTrainingStateUpdate
- FTrainingStep
- TBaseStructure
- TBaseStructure
- FPipelinedStepperFrame
-
Enums
- Index
- EConnectorStatus
- EImitationConnectorStatus
- EAgentStatus
- EAutoResetType
- EChannels
- EComSystemState
- EEnvironmentStatus
- EAgentTrainingStatus
- ERuntimeType
- EPointType
- EFrameOfReference
- ERLlibActivationFunctionEnum
- ERLlibTrainingAlgorithm
- ESB3ActivationFunctionEnum
- ESB3TrainingAlgorithm
- EScriptType
- EPythonEnvironmentType
- ESpaceValidationResult
- ESpaceType
- ETeleportDimensionFlags
- EPythonScript
- ETrainingUpdateType
- EConnectorStatusUpdate
Training an X-Arm 5 Robotic Arm with AMD Schola and Unreal Engine
This example provides a comprehensive walkthrough on how to setup all necessary pieces in order to perform training with the X-Arm 5 Robotic Arm.
Table of Contents
- Setup
- Task 1 - Reach with Fixed Location
- Task 2 - Reach with Random Location
- Task 3 - Reach with Random Target, Random Location
Getting Started
Begin with the Setup guide to configure your Unreal Engine project and set up the X-ARM 5 robot. This includes:
-
Initial Schola and Unreal Engine setup
-
Importing the robot model using Datasmith
-
Configuring physics meshes and constraints
-
Creating target blocks and environment blueprints
-
Setting up the world
Training Tasks
After completing the setup, there are three example training tasks:
-
Task 1 - Reach with Fixed Location: Learn the fundamentals by training the agent to reach and pick a specific colored block from fixed positions. This task introduces the basic observation, action, and reward structures.
-
Task 2 - Reach with Random Location: Build upon Task 1 by introducing randomized block positions. The agent must generalize its learned behavior to handle varying spatial configurations.
-
Task 3 - Reach with Random Target, Random Location: The most challenging task combines random target colors with random positions. This task also introduces advanced reward mechanisms based on progress tracking.
Prerequisites
Before starting, please refer to the Getting Started with Schola section to set up the Unreal Engine project and Schola plugin, if you haven’t already.