SPECOLA: A Tool for Specification Driven Robot Evaluation
Organizations: Cornell University
Abstract
Simulation benchmarks are a useful way to measure progress in robotics; typically they provide success rate as the dominant measure of performance. However, success rate reports only whether a rollout completed the task, hiding by what margin it succeeded, how sensitive the success is to goal parameter changes, requirements it may have violated, and whether success persisted. Signal Temporal Logic (STL) provides a formal language for capturing specifications; it can be used to define requirements, and measure how close a robot behavior is to satisfying or violating them. Using STL monitors in a simulator, however, requires exposing simulator state and mapping it to specification-relevant signals. We present Specola, a tool for evaluating robot behaviors in simulation with respect to STL specifications. Specola provides an interface for writing specifications over simulator signals, and creates and manages the relevant monitors while a policy executes. We provide a Python API and command-line interface for integrating monitoring into existing policy execution loops. We provide an adapter interface for connecting new simulators, and provide adapters for nine simulation environments and benchmarks, including LIBERO, RoboCasa, Isaac Lab, and RoboDojo. We provide case studies that illustrate the nuanced evaluation that Specola enables. Code and adapters are available at https://github.com/specola-eval/specola.
Figures & tables
| STL | Meaning | Specola syntax |
|---|---|---|
| not | not , ! | |
| and | and , && | |
| or | or , || | |
| implies | -> | |
| historically | historically[a,b] , G[a,b] | |
| once | once[a,b] , F[a,b] |
| Command and arguments | Output |
|---|---|
| discover [--ui UI] [--web [PORT]] | Entities and signals |
| write-specs [--output FILE] [--ui UI] | Validated YAML specifications |
| check FILE | Resolved signals and bindings |
| run --specs FILE [--mode MODE] [--demo FILE] [--steps N] [--web [PORT]] | Per-step robustness; optional dashboard |
| report RESULTS_DIR [--by COLUMNS] [--csv FILE] [--parquet FILE] | Saved-run summary |
| view RECORDING_DIR [--port PORT] | Recording in a browser |
Robotic Policy Evaluation
Robotic policy evaluation measures whether learned controllers succeed reliably, generalize across conditions, recover from failures, and behave safely.
See all 126 papers