Utilizing AMD Schola and UnrealRoboticsLab with AMD ROCm™ Software to Train a Robotic Arm

· Source: AMD ROCm Blogs · Field: Technology & Digital — Robotics & Autonomous Systems, Artificial Intelligence & Machine Learning, Software Development & Engineering · Depth: Intermediate, extended

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

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

Topics

Code references

Best for: Robotics Engineer, Machine Learning Engineer, AI Engineer

Related on AIssential

Open in AIssential →

Editorial summary, takeaway, and curation by AIssential. Original article published by AMD ROCm Blogs.