EMOS¶
EMOS (Emergency Multi-robot Operation System) provides business-agnostic multi-agent LLM discussion and subtask allocation: given a task story, subtask definitions, and robot capability descriptions, it allocates subtasks to heterogeneous robots through multi-round discussion, falling back to heuristic allocation when the LLM is unavailable or parsing fails.
Positioning¶
Input: a caller-supplied
EMOSScenarioConfig(scenario narrative, subtasks, position rules, fallback policy) andEMOSRobotAgentSpecrobot profiles, plus an Isaac Lab-compatiblebase_env.Output: a subtask-to-robot allocation handed to execution layers such as navigation and manipulators.
Boundary: EMOS does not build the simulation scene, ships no scenario content, and does not interpret the business meaning of subtasks.
Core flow¶
EMOSScenarioConfig (task story + subtasks + position rules)
+
EMOSRobotAgentSpec (robot profiles) + base_env (robot positions)
↓
EMOSDiscussionManager multi-round discussion scheduling
↓
LLM output parsing → subtask allocation
↓ (LLM unavailable / parsing failed)
preferred_fallback heuristic allocation
build_from_agent_specs() reads robot positions from the articulation / rigid-object state of base_env for use during discussion and allocation.
Using EMOS with EAI¶
The Fire Rescue experiment shows the full EMOS integration: the factory fire-inspection scenario runs EMOS discussion and task allocation, then hands results to the navigation and execution layers. Code, full configuration reference, and dependencies live under algorithm/emos/.
Source¶
Upstream repository: EMOS; the copy bundled with EAI lives under algorithm/emos/.