Utilizing AMD Schola and UnrealRoboticsLab with AMD ROCm™ Software to Train a Robotic Arm
Summary
This post details a pipeline for training a 6 degrees-of-freedom (DOF) robotic arm using AMD Schola, UnrealRoboticsLab (URLab), and AMD ROCm™ software within Unreal Engine 5.7. The system integrates Unreal Engine's high-fidelity rendering with MuJoCo's accurate contact physics via URLab, which imports robots defined in MJCF. AMD Schola, an open-source Unreal plugin version 2.1.1, then exposes this environment to Python training frameworks like Stable Baselines 3 through gRPC, creating a standard Gymnasium-compatible interface. The article provides bundled C++ code for an xArm6 reach task, covering observation and action space definitions, reward shaping, episode termination logic, and observation normalization. Training can be accelerated on AMD GPUs using PyTorch on ROCm, supporting multiple parallel simulators for increased throughput. The pipeline allows for iterative development, live policy visualization, and deployment of ONNX models.
Key takeaway
For AI Engineers developing robotic arm control policies, this pipeline offers a robust solution for high-fidelity simulation and training. You should utilize Unreal Engine 5.7 with URLab for accurate physics and Schola for Gymnasium-compatible RL loops. Configure reward shaping and observation normalization within `AXArmEnvironment` and use AMD ROCm™ for GPU-accelerated training. This approach streamlines development, allowing visual debugging and efficient deployment of ONNX models.
Key insights
Integrating Unreal Engine, MuJoCo via URLab, and Schola enables high-fidelity, physics-accurate robotic arm reinforcement learning on AMD hardware.
Principles
- Combine high-fidelity rendering with accurate physics.
- Decouple simulation from RL training via gRPC.
- Pin observation/action spaces in code for consistency.
Method
Define robot in MJCF, import into Unreal via URLab, integrate C++ glue code for Schola, configure reward/termination/normalization, then train using Schola CLI with Python frameworks.
In practice
- Use `AXArmEnvironment` for custom task logic.
- Disable onboard camera streaming for faster training.
- Clone environment actors for parallel training.
Topics
- Robotic Arm Training
- Reinforcement Learning
- Unreal Engine Simulation
- MuJoCo Physics Engine
- AMD ROCm Software
- Schola RL Plugin
Code references
Best for: Robotics Engineer, Machine Learning Engineer, AI Engineer
Related on AIssential
Editorial summary, takeaway, and curation by AIssential. Original article published by AMD ROCm Blogs.