Skip to content

brahimcode604/SmartAgriNavigator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

🌱 SmartAgriNavigator

Navigation Optimisée des Robots Mobiles avec A* Adaptatif et Courbes de Bézier


📌 Description

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.


🎯 Objectifs

  • 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

🧠 Principe Théorique

Fonction classique de A*

F(n) = G(n) + H(n)

Version adaptative utilisée dans ce projet

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

⚙️ Améliorations Implémentées

1️⃣ Distance de Manhattan

H(n) = |x - x_goal| + |y - y_goal|

Adaptée aux environnements en grille.


2️⃣ Pondération Dynamique

  • k = 3 → si proche d’un obstacle
  • k = 1 → en zone libre

Permet d’adapter la recherche selon le contexte.


3️⃣ Zone de Sécurité (Obstacle Inflation)

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

4️⃣ Lissage par Courbes de Bézier

Utilisation des polynômes de Bernstein pour lisser la trajectoire.

Résultat :

  • Mouvement fluide
  • Suppression des angles brusques
  • Chemin plus naturel

🛠 Technologies Utilisées

  • Python 3.x
  • NumPy
  • Matplotlib
  • SciPy
  • heapq (Priority Queue)

📂 Structure du Projet

SmartAgriNavigator/ │ ├── main.py ├── README.md ├── requirements.txt └── images/


📦 Installation

Cloner le projet

git clone https://github.com/brahimcode604/SmartAgriNavigator.git cd SmartAgriNavigator

Installer les dépendances

pip install -r requirements.txt

Ou manuellement :

pip install numpy matplotlib scipy


▶️ Exécution

python main.py


📊 Résultat

Le programme :

  1. Génère une grille 30x30
  2. Ajoute des obstacles
  3. Calcule le chemin avec A* adaptatif
  4. Applique le lissage Bézier
  5. Affiche :
    • Chemin brut (rouge pointillé)
    • Chemin optimisé (bleu)
    • Point de départ (vert)
    • Point d’arrivée (rouge)

📈 Comparaison avec A* Classique

Critère A* Classique Version Adaptative
Sécurité Non Oui
Fluidité Faible Élevée
Zone tampon Non Oui
Réalisme Faible Élevé

🔬 Perspectives

  • Comparaison avec RRT* et D*
  • Intégration sous ROS
  • Tests sur robot réel
  • Ajout d’obstacles dynamiques

👨‍🎓 Contexte Académique

Projet réalisé dans le cadre du module : Introduction à l’Intelligence Artificielle

Master Science des Données et Analytique (SDA)


👥 Auteurs

  • EL BAHLOUL Brahim
  • Saih Mounssif

Encadré par : Pr. J. Bakkas


📜 Licence

Projet académique – Usage éducatif.

About

Navigation Optimisée des Robots Mobiles avec A* Adaptatif et Courbes de Bézier

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages