Skip to content

Model Checking Quick Start Guide

Overview

The ADORe Model Checker monitors vehicle safety using Computation Tree Logic (CTL) to verify safety properties in real-time or from recorded data.

Quick Start

1. Run Live Vehicle Monitoring

Monitor a live vehicle for 60 seconds using the default configuration:

python3 adore_model_checker_cli.py --mode online --config default.yaml --vehicle-id 0 --duration 60 --output result.json

or if the ADORe model checker package is installed in your system:

adore-model-checker --mode online --config default.yaml --vehicle-id 0 --duration 60

Debug Mode

Run with detailed logging:

python3 adore_model_checker_cli.py --mode online --config default.yaml --vehicle-id 0 --duration 30 --debug

Understanding Results

Console Output

The tool displays real-time results showing: - PASS/FAIL status for each safety proposition - Success rate as percentage of passed checks - Statistics like max velocity, distances, compliance rates

Example output:

============================================================
DYNAMIC VEHICLE MONITORING RESULTS
============================================================

SUMMARY:
 Total Propositions: 2
 Analyzed: 2
 Passed: 2
 Failed: 0
 Success Rate: 100.0%
 Overall Result: PASS

DETAILED RESULTS:
 EGO_SPEED                      : PASS     (49 states)
                                    Max velocity: 3.34 m/s
                                    Speed threshold: 13.89 m/s
 NEAR_GOAL                      : PASS     (49 states)
                                    Final distance to goal: 2.85m
                                    Distance threshold: 5.00m

JSON Output

When using --output results.json, you get detailed statistics:

{
 "SUMMARY": {
   "total_propositions": 2,
   "analyzed": 2,
   "passed": 2,
   "failed": 0,
   "success_rate": 1.0,
   "overall_result": "PASS"
 },
 "EGO_SPEED": {
   "result": true,
   "status": "PASS",
   "states_analyzed": 49,
   "statistics": {
     "max_velocity": 3.34,
     "average_velocity": 3.03,
     "speed_threshold": 13.89
   }
 }
}

Default Safety Checks

The default configuration monitors: - EGO_SPEED: Vehicle stays under speed limit - NEAR_GOAL: Vehicle eventually reaches goal - SAFE_DISTANCE_X/Y: Maintains safe distances from obstacles - TIME_TO_COLLISION: Avoids imminent collisions - LANE_KEEPING: Stays within lane boundaries

Common Commands

Using Python Script Directly

# Quick 30-second check with results saved
python3 adore_model_checker_cli.py --mode online --config default.yaml --vehicle-id 0 --duration 30 --output check.json

# Debug mode for troubleshooting
python3 adore_model_checker_cli.py --mode online --config default.yaml --vehicle-id 0 --duration 10 --debug

Using Installed Package

If the ADORe model checker package is installed in your system:

# Quick 30-second check with results saved
adore-model-checker --mode online --config default.yaml --vehicle-id 0 --duration 30 --output check.json

# Debug mode for troubleshooting
adore-model-checker --mode online --config default.yaml --vehicle-id 0 --duration 10 --debug

Result Interpretation

  • PASS: Safety property was satisfied throughout monitoring
  • FAIL: Safety property was violated at least once
  • States analyzed: Number of time steps checked
  • Success rate: Percentage of propositions that passed
  • Overall result: PASS if all enabled propositions pass, FAIL otherwise

For More Technical Information

This quick start covers the basics of running model checks and viewing results. For comprehensive technical documentation, including:

  • Advanced Configuration: Custom safety propositions, data source mapping, formula types
  • Architecture Details: Internal components, evaluation functions, data transforms
  • Extending the Tool: Adding custom propositions and evaluation logic
  • Installation Guide: System requirements, dependencies, package building
  • Troubleshooting: Common issues, debug tips, performance considerations
  • Complete API Reference: All configuration options and command-line parameters

See the full README.md documentation.

The README includes detailed examples for: - Custom YAML configurations - All available safety proposition categories - CTL formula types and their use cases - Data source field path extraction - Performance tuning and optimization