Per spostare robot o calcolare percorsi da spostare dal punto A al punto B, devi utilizzare una struttura grafica . Un grafico è un insieme di nodi e un insieme di spigoli che mettono in relazione i nodi. Un percorso è una sequenza di segmenti (cioè due nodi e il bordo usato per andare dal primo al secondo). Un algoritmo di individuazione dei percorsi consente quindi di calcolare un percorso ottimale tra 2 punti.
Se il tuo robot si muove su un'area piatta e limitata (un piano, un edificio), è sufficiente una mappa 2D con coordinate X e Y per ciascun nodo. I nodi rappresenterebbero i punti chiave per i possibili percorsi (entrambe le estremità di un corridoio, un centro di porte, ecc. Se necessario, potrebbe essere utilizzata una struttura 3D per rappresentare il livello del pavimento.
Se il tuo robot si muove su una scena più grande, allora devi usare le coordinate GPS (latitudine, longitudine). Dal punto di vista dell'algoritmo del grafico, non cambia molto, è solo che il calcolo della distanza tra i punti diventerà più complesso.
In quest'ultimo caso, potresti essere interessato all'utilizzo di formati di dati in cui puoi facilmente ottenere dati, come OpenStreetMap . Utilizza diversi formati di dati, ma uno di questi è XML OSM o il suo OSM JSON variante. Ma prima di reinventare la ruota, potresti prendere in considerazione librerie / framework esistenti .
Infine, nota che nella vita reale i nodi sono punti astratti e un segmento di strada o corridoio è più grande della linea teorica tra due nodi. Qui una possibilità è creare una griglia di nodi strettamente interconnessi. L'altro consiste nell'utilizzare i nodi per calcolare il percorso, ma lasciare che il robot si discosti dalla traiettoria teorica ideale, all'interno di alcune tolleranze, in base alla topologia nota e ad alcuni sensori per evitare collisioni.
Ma ora stiamo entrando in aspetti molto complessi con un ampio set di soluzioni.