[navigation] ; OBBLIGATORIO: no. ; Ruolo: sorgente video usata per simulare la camera del drone. ; Se vuoto o "none", usa webcam 0. ; Default se non indicato: testhd.mp4 video = testhd2_edit.mp4 ; OBBLIGATORIO: si. ; Ruolo: modello Ultralytics/YOLO moderno usato per rilevare gaylord ed etichette. ; Default se non indicato: C:\devel\flywms\runs\flywms_yolo11n_quick20\weights\best.pt weights = C:\devel\flywms\runs\flywms_yolo11n_quick20\weights\best.pt ; OBBLIGATORIO: no. ; Ruolo: device usato da Ultralytics. Usa "cpu" per forzare CPU; con GPU compatibile usare "0". ; Default se non indicato: cpu ultralytics_device = 0 ; OBBLIGATORIO: no. ; Ruolo: dimensione input YOLO. 640 e' il valore usato nel training rapido. ; Default se non indicato: 640 input_size = 640 ; OBBLIGATORIO: no. ; Ruolo: confidenza minima delle detection accettate dal detector. ; Default se non indicato: 0.25 min_confidence = 0.25 ; OBBLIGATORIO: no. ; Ruolo: classe tracciata dalla navigazione. Le altre detection non entrano nel tracker. ; Default se non indicato: gaylord target_class = gaylord ; OBBLIGATORIO: no. ; Ruolo: classe etichetta associata al gaylord centrato. ; Il bbox etichetta viene accettato solo se e' contenuto nel bbox del gaylord. ; Default se non indicato: etichetta label_class = etichetta ; OBBLIGATORIO: no. ; Ruolo: numero massimo di frame in cui una track puo' non essere vista prima di essere rimossa. ; Default se non indicato: 8 max_track_missed = 8 ; OBBLIGATORIO: no. ; Ruolo: soglia minima dello score che associa una detection a una track esistente. ; Default se non indicato: 0.25 min_match_score = 0.25 ; OBBLIGATORIO: no. ; Ruolo: distanza massima ammessa tra centri bbox, espressa come frazione della larghezza frame. ; Default se non indicato: 0.18 max_center_distance_ratio = 0.18 ; OBBLIGATORIO: no. ; Ruolo: mezza ampiezza della fascia azzurra di avvicinamento al centro. ; Non fa scattare la foto: indica solo che la track e' candidata. ; Default se non indicato: 0.18 center_tolerance_ratio = 0.18 ; OBBLIGATORIO: no. ; Ruolo: tolleranza stretta dalla linea verticale centrale per scattare la foto. ; La foto parte quando il centro bbox e' entro questa soglia. ; Default se non indicato: 0.035 snapshot_line_tolerance_ratio = 0.035 ; OBBLIGATORIO: no. ; Ruolo: limite verticale superiore della fascia utile della scaffalatura. ; Default se non indicato: 0.15 usable_y_min_ratio = 0.15 ; OBBLIGATORIO: no. ; Ruolo: limite verticale inferiore della fascia utile della scaffalatura. ; Default se non indicato: 0.85 usable_y_max_ratio = 0.85 ; OBBLIGATORIO: no. ; Ruolo: numero minimo di detection confermate prima di considerare affidabile una track. ; Default se non indicato: 3 min_track_hits = 3 ; OBBLIGATORIO: no. ; Ruolo: area minima del bbox gaylord rispetto all'intero frame. ; Serve a ignorare oggetti troppo lontani/piccoli. ; Default se non indicato: 0.02 min_gaylord_area_ratio = 0.02 ; OBBLIGATORIO: no. ; Ruolo: margine da bordo immagine per considerare un bbox tagliato. ; 0 disabilita questo filtro, utile con il video manuale di test. ; Default se non indicato: 0.0 edge_margin_ratio = 0.0 ; OBBLIGATORIO: no. ; Ruolo: padding aggiunto al bbox centrale prima di salvare il crop inviato all'OCR remoto. ; Default se non indicato: 0.03 ocr_payload_pad_ratio = 0.03 ; OBBLIGATORIO: no. ; Ruolo: padding aggiunto al bbox etichetta prima di salvare il crop inviato all'OCR remoto. ; Default se non indicato: 0.20 label_payload_pad_ratio = 0.20 ; OBBLIGATORIO: no. ; Ruolo: trend minimo dell'area bbox negli ultimi frame. Valori negativi tollerano leggera uscita. ; Default se non indicato: -0.35 min_area_trend = -0.35 ; OBBLIGATORIO: no. ; Ruolo: numero di candidati da valutare prima dello snapshot. ; 1 significa: scatta subito quando il centro tocca la linea. ; Default se non indicato: 1 snapshot_window_frames = 1 ; OBBLIGATORIO: no. ; Ruolo: directory dove salvare frame debug, crop OCR e snapshots.jsonl. ; Default se non indicato: navigate_snapshots snapshot_output_dir = navigate_snapshots ; OBBLIGATORIO: no. ; Ruolo: tempo massimo con cui il drone attende OCR remoto + verifica WMS. ; Con PaddleOCR il primo avvio del worker puo' richiedere alcuni secondi. ; Default se non indicato: 2.0 remote_ack_timeout_sec = 10.0 ; OBBLIGATORIO: no. ; Ruolo: risposta remota simulata. Valori: always-ack, always-nack, alternate. ; Default se non indicato: always-ack remote_ack_mode = always-ack ; OBBLIGATORIO: no. ; Ruolo: se true, invia realmente il payload etichetta al server WMS demo via HTTP. ; Se false, mantiene la risposta remota simulata locale. ; Default se non indicato: false wms_enabled = false ; OBBLIGATORIO: no. ; Ruolo: endpoint HTTP del server WMS demo, anche su altro PC. ; Esempio rete: http://192.168.1.50:8088/api/v1/navigation-snapshot ; Default se non indicato: http://127.0.0.1:8088/api/v1/navigation-snapshot wms_server_url = http://127.0.0.1:8088/api/v1/navigation-snapshot ; OBBLIGATORIO: no. ; Ruolo: identificativo del client/drone demo mandato nei metadati. ; Default se non indicato: flywms-demo-01 wms_client_id = flywms-demo-01 ; OBBLIGATORIO: no. ; Ruolo: timeout HTTP del worker WMS, in secondi. ; Deve essere maggiore del tempo OCR server; con PaddleOCR fast caldo circa 3s, primo avvio circa 8-10s. ; Default se non indicato: 2.0 wms_timeout_sec = 12.0 ; OBBLIGATORIO: no. ; Ruolo: numero massimo di snapshot in coda verso il WMS. ; Default se non indicato: 8 wms_queue_max_size = 8 ; OBBLIGATORIO: no. ; Ruolo: se true, oltre al crop etichetta invia anche il frame/debug gaylord. ; Default se non indicato: true wms_send_gaylord_debug = true ; OBBLIGATORIO: no. ; Ruolo: host su cui il server WMS demo FastAPI resta in ascolto. ; 0.0.0.0 consente connessioni da altri PC della rete. ; Default se non indicato: 0.0.0.0 wms_server_host = 0.0.0.0 ; OBBLIGATORIO: no. ; Ruolo: porta del server WMS demo FastAPI. ; Default se non indicato: 8088 wms_server_port = 8088 ; OBBLIGATORIO: no. ; Ruolo: directory in cui il server salva immagini e metadati ricevuti. ; Default se non indicato: wms_received wms_received_dir = wms_received ; OBBLIGATORIO: no. ; Ruolo: risposta simulata server. Valori: always-ack, always-nack, alternate, random. ; Default se non indicato: always-ack wms_fake_ack_mode = always-ack ; OBBLIGATORIO: no. ; Ruolo: ritardo finto del server per simulare OCR/WMS. ; Default se non indicato: 0.5 wms_fake_processing_sec = 0.5 ; OBBLIGATORIO: no. ; Ruolo: se true, il server WMS demo apre le finestre OpenCV immagine/payload. ; Default se non indicato: true wms_ui_enabled = true ; OBBLIGATORIO: no. ; Ruolo: se true, il server prova OCR reale sul crop etichetta. ; Default se non indicato: true wms_ocr_enabled = true ; OBBLIGATORIO: no. ; Ruolo: motore OCR server. Valori: paddleocr, easyocr, tesseract, fake. ; Default se non indicato: paddleocr wms_ocr_mode = paddleocr ; OBBLIGATORIO: no. ; Ruolo: Python del virtualenv isolato usato dal worker PaddleOCR. ; Default se non indicato: C:\devel\yolo-ocr\.venv-paddle-cpu\Scripts\python.exe wms_paddle_python = C:\devel\yolo-ocr\.venv-paddle-cpu\Scripts\python.exe ; OBBLIGATORIO: no. ; Ruolo: script worker PaddleOCR persistente. ; Default se non indicato: flywms_paddleocr_worker.py nella cartella flywms. wms_paddle_worker_script = C:\devel\flywms\flywms_paddleocr_worker.py ; OBBLIGATORIO: no. ; Ruolo: altezze a cui ridimensionare il crop etichetta prima dell'OCR. ; Per demo 96 e' la configurazione leggera. Per debug: 64,96,128. ; Default se non indicato: 96 wms_paddle_target_heights = 96 ; OBBLIGATORIO: no. ; Ruolo: quante varianti preprocessing usare nel worker PaddleOCR. ; Valori: fast, balanced, full. ; fast usa originale, CLAHE, CLAHE+sharpen ed e' il default per il server demo. ; Default se non indicato: fast wms_paddle_variant_set = fast ; OBBLIGATORIO: no. ; Ruolo: numero di cifre atteso nel codice UDC. ; Default se non indicato: 6 wms_paddle_expected_digits = 6 ; OBBLIGATORIO: no. ; Ruolo: numero minimo di varianti OCR che devono concordare sul codice. ; Default se non indicato: 2 wms_paddle_min_votes = 2 ; OBBLIGATORIO: no. ; Ruolo: confidenza minima del candidato PaddleOCR scelto. ; Default se non indicato: 0.70 wms_paddle_min_confidence = 0.70 ; OBBLIGATORIO: no. ; Ruolo: prefisso del codice fallback se OCR reale non legge nulla. ; Default se non indicato: UDC wms_fake_ocr_prefix = UDC ; OBBLIGATORIO: no. ; Ruolo: testo restituito quando OCR non determina il codice reale. ; Default se non indicato: udc non determinato wms_undetermined_code_text = udc non determinato ; OBBLIGATORIO: no. ; Ruolo: ritardo finto OCR/fallback in secondi. ; Default se non indicato: 0.2 wms_fake_ocr_delay_sec = 0.2 ; OBBLIGATORIO: no. ; Ruolo: operatore/drone simulato registrato nel payload WMS. ; Default se non indicato: udrone wms_operator = udrone ; OBBLIGATORIO: no. ; Ruolo: sito/magazzino simulato registrato nel payload WMS. ; Default se non indicato: demo-magazzino wms_site = demo-magazzino ; OBBLIGATORIO: no. ; Ruolo: durata simulata del movimento drone dal centro gaylord al centro etichetta. ; Default se non indicato: 3.0 label_move_sec = 3.0 ; OBBLIGATORIO: no. ; Ruolo: attesa simulata per stabilizzare la foto ravvicinata dell'etichetta. ; Default se non indicato: 2.0 label_stabilization_sec = 2.0 ; OBBLIGATORIO: no. ; Ruolo: durata simulata del ritorno dal centro etichetta al centro gaylord. ; Default se non indicato: 3.0 label_return_sec = 3.0 ; OBBLIGATORIO: no. ; Ruolo: direzione simulata di ripartenza dopo ACK. Valori: destra, sinistra. ; Default se non indicato: destra scan_direction = destra ; OBBLIGATORIO: no. ; Ruolo: larghezza massima delle finestre video di debug. ; Default se non indicato: 1280 preview_width = 1280 ; OBBLIGATORIO: no. ; Ruolo: profilo benchmark senza finestre OpenCV. ; Se true forza no_display e usa benchmark_preview_fps come target di cattura/preview. ; Default se non indicato: false benchmark_mode = false ; OBBLIGATORIO: no. ; Ruolo: FPS target di cattura/preview per il profilo benchmark. ; Default se non indicato: 30.0 benchmark_preview_fps = 30.0 ; OBBLIGATORIO: no. ; Ruolo: se true, il video di test viene riprodotto rispettando il framerate originale. ; Default se non indicato: true realtime_playback = true ; OBBLIGATORIO: no. ; Ruolo: FPS massimo per lettura/preview realtime. 0 usa il framerate della sorgente. ; Con video registrati puo' essere usato per simulare una preview piu' lenta, es. 24 fps. ; Con webcam/camere viene anche richiesto al driver, ma non tutti i driver rispettano il valore. ; Default se non indicato: 24.0 preview_fps = 24.0 ; OBBLIGATORIO: no. ; Ruolo: se true, usa FP16/half precision per YOLO quando gira su GPU. ; Su CPU viene ignorato automaticamente. ; Default se non indicato: true yolo_half = true ; OBBLIGATORIO: no. ; Ruolo: FPS massimo per inferenza YOLO. 0 esegue YOLO su ogni frame di preview. ; Nei frame intermedi la preview continua usando l'ultimo stato di tracking disponibile. ; Default se non indicato: 15.0 yolo_fps = 15.0 ; OBBLIGATORIO: no. ; Ruolo: massimo numero di frame da processare. 0 significa tutto il video. ; Default se non indicato: 0 max_frames = 0 ; OBBLIGATORIO: no. ; Ruolo: ogni quanti secondi stampare statistiche nel terminale. ; Default se non indicato: 2.0 stats_interval = 2.0 ; OBBLIGATORIO: no. ; Ruolo: file di log delle tempistiche dettagliate per frame. ; Default se non indicato: tempistiche.txt perf_log_path = tempistiche.txt ; OBBLIGATORIO: no. ; Ruolo: intervallo massimo tra due flush del file di tempistiche. ; Default se non indicato: 2.0 perf_log_flush_interval_sec = 2.0 ; OBBLIGATORIO: no. ; Ruolo: numero di righe bufferizzate prima del flush del file di tempistiche. ; Default se non indicato: 120 perf_log_flush_lines = 120 ; OBBLIGATORIO: no. ; Ruolo: ogni quanti frame aggiornare il moto apparente stimato dalle track. ; Default se non indicato: 5 motion_report_interval = 5 ; OBBLIGATORIO: no. ; Ruolo: movimento medio minimo in pixel per dichiarare destra/sinistra/su/giu. ; Default se non indicato: 1.5 motion_min_pixels = 1.5 ; OBBLIGATORIO: no. ; Ruolo: se true, logga nel terminale lo stato delle track e i motivi di non scatto. ; Default se non indicato: true debug_tracks = true ; OBBLIGATORIO: no. ; Ruolo: intensita' del flash visuale simulato al momento dello scatto, da 0 a 1. ; Default se non indicato: 0.70 flash_alpha = 0.70 ; OBBLIGATORIO: no. ; Ruolo: se true, disabilita tutte le finestre video. Usarlo solo per test headless. ; Default se non indicato: false no_display = false ; OBBLIGATORIO: no. ; Ruolo: se true, posiziona e ridimensiona le finestre OpenCV usando i valori sotto. ; Formato finestre: x,y,width,height ; Default se non indicato: true window_layout_enabled = true ; OBBLIGATORIO: no. ; Ruolo: posizione finestra principale con tracking gaylord/etichetta. navigate_window = 20,40,1100,620 ; OBBLIGATORIO: no. ; Ruolo: posizione finestra comandi e indicatori movimento. commands_window = 1140,40,760,520 ; OBBLIGATORIO: no. ; Ruolo: posizione finestra snapshot gaylord. snapshot_window = 1140,590,520,360 ; OBBLIGATORIO: no. ; Ruolo: posizione finestra crop etichetta. label_window = 1140,980,520,260