Interfaces and Outputs
The current public SMART repository does not ship a packaged public Python
client library such as SMARTClient. The supported user-facing interface in
the repository is the command-line workflow built around run_sim.py, text
input files, and the generated output files.
Public Entry Point
The main entry point is run_sim.py in the source repository root:
python run_sim.py \
--map_name=random-32-32-20.map \
--scen_name=random-32-32-20-random-1.scen \
--num_agents=50 \
--path_filename=example_paths_xy.txt \
--flip_coord=0
Current command-line arguments from python run_sim.py --help:
--map_name- input map file--scen_name- input scenario file--num_agents- number of agents to load from the scenario--headless- whether to disable ARGoS visualization--argos_config_name- generated ARGoS config filename--path_filename- input path file for the MAPF plan--stats_name- output CSV filename for simulation statistics--port_num- RPC port shared by the server and robot executors--flip_coord- coordinate convention flag,0for(x,y),1for(y,x)
What run_sim.py Does
For each run, run_sim.py:
Reads the .map and .scen files.
Generates an ARGoS configuration file through
ArgosConfig/.Starts
build/server/ADG_serverwith the selected path file.Starts
argos3with the generated.argosfile.
Public Outputs
The current repo produces three main kinds of outputs:
A generated ARGoS XML file,
output.argosby defaultA CSV file,
stats.csvby defaultA JSON summary printed by
ADG_serverto standard output at the end of the run
The CSV header written by the current server implementation is:
steps finish sim,sum of steps finish sim,time finish sim,sum finish time,original plan cost,#type-2 edges,#type-1 edges,#Nodes,#Move,#Rotate,#Consecutive Move,#Agent pair,instance name,number of agent
The JSON summary contains the same main fields plus several time values in seconds:
steps finish sim
sum of steps finish sim
time finish sim
sum finish time
original plan cost
simulated makespan seconds
simulated sum of cost seconds
simulated average sum of cost seconds
#type-2 edges
#type-1 edges
#Nodes
#Move
#Rotate
#Consecutive Move
#Agent pair
instance name
number of agent
Internal RPC Layer
SMART uses rpclib internally between the ADG server and the robot
executors. In the current public code, the server binds the following methods:
initupdatereceive_updateget_configupdate_finish_agentcloseServer
These RPC calls are implementation details of the shipped controller/server pair. They are useful for code readers, but they are not documented as a stable public client API.
What Is Not in the Public Repo
The current public repository does not include:
a packaged
smart_clientPython modulea public pause/resume callback API
a documented JSON or REST control layer
bundled example scripts named
simple_client.pyorbatch_experiment.py
Next Steps
Planner Integration - prepare planner outputs for SMART
Usage Guide - run the full workflow from source
Input Formats - format maps, scenarios, and path files correctly