The Problem.
Running Gazebo simulations, PyTorch training loops, and ROS2 nodes simultaneously on a single machine creates resource contention that slows everything down. The Pi cluster offloads batch workloads that don't need GPU but do need persistent, always-on compute — freeing the main machine for interactive work.
Hardware
Raspberry Pi 4/5
Networking
Gigabit Ethernet
Orchestration
SSH + tmux / Ansible
Primary Use
ML Batch + Simulation
Cluster Topology.
Node Layout — Head + Worker Architecture
Head Node
Job scheduler & SSH gateway
Worker 01
RL training fragments / batch scripts
Worker 02
ROS2 node hosting / Gazebo aux
Worker 03
Data pipeline & logging
Workloads.
01
RL Training Fragments
CPU-bound tabular Q-learning runs and small PyTorch DQN training jobs that benefit from overnight persistence rather than interactive GPU time. Workers pick up training scripts via SSH and log results back to shared storage.
02
ROS2 Node Hosting
Offloads auxiliary ROS2 nodes — data logging, sensor bridges, topic recorders — that would otherwise consume CPU cycles on the main Gazebo host machine during simulation runs.
03
Parallel Batch Jobs
Hyperparameter sweeps and dataset preprocessing jobs distributed across workers using a simple SSH-based task queue. Not Kubernetes — intentionally minimal, because the workloads don't need orchestration overhead.
04
Always-On Availability
Cluster draws <40W total at idle. Runs 24/7 on a PoE switch — jobs can be kicked off and left to finish without keeping the main workstation powered overnight.
Pragmatic Infrastructure.
This isn't a showpiece cluster — it's a practical tool. Four Raspberry Pis on a PoE switch consume less power than a gaming GPU at idle, cost a fraction of cloud compute for persistent workloads, and build real hands-on knowledge of Linux networking, SSH key management, and distributed job coordination. That knowledge transfers directly to managing ROS2 multi-machine setups and simulation infrastructure.
Raspberry Pi
Ubuntu Server
Distributed Compute
SSH / Ansible
ROS2
ML Training
Linux Networking
PoE Switching