Expand description
§embedded-astar
Bibliothèque de recherche de chemin A* no_std pour systèmes embarqués.
Conçue pour les microcontrôleurs et les environnements à ressources limitées,
cette crate fournit une implémentation complète d’A* sans allocation sur le tas,
reposant uniquement sur des structures de taille fixe allouées sur la pile
grâce à heapless.
§Fonctionnalités
- Compatible
no_std— aucun tas, aucun allocateur requis - Dimensions configurables —
LARGEUR,HAUTEURetCAPACITE_MAXfixés à la compilation - Heuristique de Manhattan — optimale pour les grilles à 4 directions
- Sécurité mémoire — dépassement de l’open set géré sans panique
- Zéro code
unsafe
§Démarrage rapide
use embedded_astar::{trouver_chemin, Point};
// Grille 8×8 : true = obstacle, false = case libre
// Indexée sous la forme grille[y][x]
let mut grille = [[false; 8]; 8];
grille[1][2] = true; // obstacle en (x=2, y=1)
let depart = Point::nouveau(0, 0);
let arrivee = Point::nouveau(7, 7);
// Paramètres de type : <LARGEUR, HAUTEUR, CAPACITE_MAX>
if let Some(chemin) = trouver_chemin::<8, 8, 64>(depart, arrivee, &grille) {
for p in chemin.iter() {
// utiliser p.x, p.y
}
}§Convention de grille
La grille est indexée sous la forme grille[y][x] :
true→ obstacle (case infranchissable)false→ case libre (franchissable)
§Réglage des capacités
Trois génériques constants pilotent l’utilisation mémoire :
| Paramètre | Rôle | Recommandation |
|---|---|---|
LARGEUR | Largeur de la grille (axe X) | = largeur de votre carte |
HAUTEUR | Hauteur de la grille (axe Y) | = hauteur de votre carte |
CAPACITE_MAX | Capacité de l’open set et du chemin retourné | ≥ 2 × √(L × H) |
Une grille 32×32 fonctionne bien avec CAPACITE_MAX = 128.
Une grille 64×64 nécessite CAPACITE_MAX = 256 ou plus.
Structs§
- Point
- Coordonnée entière 2D sur la grille.
Functions§
- trouver_
chemin - Exécute l’algorithme A* sur une grille booléenne d’obstacles.