SmartAgriNavigator est une implémentation améliorée de l’algorithme A* appliqué à la navigation autonome des robots mobiles en environnement agricole simulé.
Ce projet améliore la version classique de A* en intégrant :
- Une heuristique basée sur la distance de Manhattan
- Un coefficient dynamique (k adaptatif)
- Une zone de sécurité autour des obstacles
- Un lissage de trajectoire par courbes de Bézier
L’objectif est d’obtenir un chemin plus sûr, plus fluide et plus réaliste.
- Améliorer la qualité des trajectoires
- Réduire les angles brusques
- Éviter les obstacles de manière sécurisée
- Simuler un comportement réaliste d’un robot agricole
F(n) = G(n) + H(n)
F(n) = G(n) + k × H(n)
Où :
- G(n) : coût réel depuis le départ
- H(n) : distance de Manhattan
- k : coefficient dynamique
H(n) = |x - x_goal| + |y - y_goal|
Adaptée aux environnements en grille.
- k = 3 → si proche d’un obstacle
- k = 1 → en zone libre
Permet d’adapter la recherche selon le contexte.
Création d’une zone tampon autour des obstacles (valeur 0.5).
Avantages :
- Réduction des risques de collision
- Meilleure sécurité
- Trajectoire plus stable
Utilisation des polynômes de Bernstein pour lisser la trajectoire.
Résultat :
- Mouvement fluide
- Suppression des angles brusques
- Chemin plus naturel
- Python 3.x
- NumPy
- Matplotlib
- SciPy
- heapq (Priority Queue)
SmartAgriNavigator/ │ ├── main.py ├── README.md ├── requirements.txt └── images/
git clone https://github.com/brahimcode604/SmartAgriNavigator.git cd SmartAgriNavigator
pip install -r requirements.txt
Ou manuellement :
pip install numpy matplotlib scipy
python main.py
Le programme :
- Génère une grille 30x30
- Ajoute des obstacles
- Calcule le chemin avec A* adaptatif
- Applique le lissage Bézier
- Affiche :
- Chemin brut (rouge pointillé)
- Chemin optimisé (bleu)
- Point de départ (vert)
- Point d’arrivée (rouge)
| Critère | A* Classique | Version Adaptative |
|---|---|---|
| Sécurité | Non | Oui |
| Fluidité | Faible | Élevée |
| Zone tampon | Non | Oui |
| Réalisme | Faible | Élevé |
- Comparaison avec RRT* et D*
- Intégration sous ROS
- Tests sur robot réel
- Ajout d’obstacles dynamiques
Projet réalisé dans le cadre du module : Introduction à l’Intelligence Artificielle
Master Science des Données et Analytique (SDA)
- EL BAHLOUL Brahim
- Saih Mounssif
Encadré par : Pr. J. Bakkas
Projet académique – Usage éducatif.