Architecture
System Overview
LuckyRobots is gRPC-only. The Python SDK connects directly to LuckyEngine over gRPC.
Components
LuckyEngine: Physics simulation backend (MuJoCo-based) exposing a gRPC server
Python client: LuckyEngineClient / LuckyRobots wrapper
Communication Architecture
┌───────────────┐ gRPC ┌─────────────────┐
│ Python_Client │◄──────────────────────►│ LuckyEngine │
│ (LuckyEngine │ (default 50051) │ (MuJoCo + gRPC) │
│ Client) │ └─────────────────┘
└───────────────┘
gRPC Services
LuckyEngine exposes the following gRPC services (defined in hazel_rpc.proto):
SceneService: Scene inspection and entity manipulation
MujocoService: Joint state queries and control commands (SendControl, GetJointState)
AgentService: RL-style observation/action streaming, unified snapshots (GetObservation), and agent resets (ResetAgent)
TelemetryService: Telemetry data streaming
CameraService: Camera frame streaming
ViewportService: Viewport pixel streaming
Message System
LuckyRobots no longer includes a node / pubsub / service layer. All control and observation flows are direct gRPC calls to LuckyEngine.
Configuration
Default ports:
gRPC server (LuckyEngine):
127.0.0.1:50051
Environment variables:
LUCKYENGINE_PATH: Path to LuckyEngine executableLUCKYENGINE_HOME: Directory containing LuckyEngine