How avbiswas/navigation-mappo-rl works
Multi Agent Navigation trains and evaluates cooperative agents in configurable obstacle courses. The main workflow is to choose a YAML scenario, train MAPPO against the multi-agent environment, save a model, then run inference in the original or another scenario. The environment supplies observations and rewards; its geometry, sensing, and rendering are distinct supporting stages. The README and source index establish the principal links, but several source excerpts are partial, so unsampled behavior is not expanded into additional flows.
Main entry points: environment.py Multi-agent environment · mappo.py MAPPO trainer · train_mappo.py Training entry point · inference.py Inference runner
Components 16
Scenario and world
- Scenario YAMLs
configs - Environment schema
nav/config_models.py
Simulation and sensing
- Multi-agent environment
nav/environment.py - Obstacles and boundary
nav/obstacles.py - Geometry utilities
nav/utils.py - Ray intersections
nav/ray_intersection.py
MAPPO learning
- MAPPO trainer
rl/mappo.py - Observation encoder
networks/actor_critic_network.py - Gaussian actions
rl/distributions.py - Rollout buffer
rl/rollout_buffer_with_states.py
Rendering
- Render snapshot models
nav/renderer_models.py - Live renderer
nav/live_renderer.py
Train and evaluate
- Training entry point
train_mappo.py - Inference runner
inference.py - Saved model
Other components
- Experimenter
Connections 29
- Experimenter → Scenario YAMLs: selects
README.md - Scenario YAMLs → Environment schema: follows schema
README.md - Experimenter → Training entry point: starts training
README.md - Training entry point → Scenario YAMLs: loads config
README.md - Training entry point → Multi-agent environment: trains in
train_mappo.py - Training entry point → MAPPO trainer: configures
train_mappo.py - Training entry point → Observation encoder: configures
train_mappo.py - Multi-agent environment → Environment schema: uses config
nav/environment.py - Multi-agent environment → Obstacles and boundary: uses geometry
nav/environment.py - Multi-agent environment → Geometry utilities: uses utilities
nav/environment.py - Multi-agent environment → Ray intersections: computes sensing
nav/environment.py - Multi-agent environment → Render snapshot models: creates snapshots
nav/environment.py - Multi-agent environment → Live renderer: updates display
nav/environment.py - Obstacles and boundary → Geometry utilities: uses utilities
nav/obstacles.py - Ray intersections → Obstacles and boundary: intersects shapes
nav/ray_intersection.py - Ray intersections → Environment schema: uses geometry types
nav/ray_intersection.py - Render snapshot models → Environment schema: uses config types
nav/renderer_models.py - Render snapshot models → Ray intersections: uses ray results
nav/renderer_models.py - Live renderer → Render snapshot models: renders snapshots
nav/live_renderer.py - MAPPO trainer → Observation encoder: encodes observations
rl/mappo.py - MAPPO trainer → Gaussian actions: uses action distribution
rl/mappo.py - MAPPO trainer → Rollout buffer: stores rollouts
rl/mappo.py - MAPPO trainer → Multi-agent environment: collects experience
rl/mappo.py - MAPPO trainer → Saved model: saves checkpoint
README.md - Experimenter → Inference runner: starts evaluation
README.md - Inference runner → Multi-agent environment: steps simulation
inference.py - Inference runner → MAPPO trainer: loads and predicts
inference.py - Inference runner → Scenario YAMLs: selects config
README.md - Saved model → Inference runner: loads checkpoint
README.md