Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| pathplanning [2019/03/11 17:37] – [Amélioration d’algorithme RRT] sshen | pathplanning [2019/03/11 21:39] (current) – [Résultat et Discussion du Projet] sshen | ||
|---|---|---|---|
| Line 36: | Line 36: | ||
| Dans ce programme, la taille de la carte que nous avons conçue est ajustable. Nous pouvons ajuster la taille de la carte en fonction de la taille de la carte d' | Dans ce programme, la taille de la carte que nous avons conçue est ajustable. Nous pouvons ajuster la taille de la carte en fonction de la taille de la carte d' | ||
| Les détails de la configuration d’environnement continue sont les suivants : \\ | Les détails de la configuration d’environnement continue sont les suivants : \\ | ||
| + | |||
| - Point de départ : | - Point de départ : | ||
| - Point d' | - Point d' | ||
| Line 53: | Line 54: | ||
| Ici nous présentons trois exemples. | Ici nous présentons trois exemples. | ||
| \\ | \\ | ||
| - | {{ :rrt1.png?!1000 }} | + | {{ :undefined: |
| - | \\ | + | |
| + | Le point rouge est le point de départ et Le point jaune est le point de d’arrivée; | ||
| Les cercles noirs et les rectangles noirs sont les obstacles; | Les cercles noirs et les rectangles noirs sont les obstacles; | ||
| Les points bleus sont un chemin le plus proche;\\ | Les points bleus sont un chemin le plus proche;\\ | ||
| Les traits rouges sont l' | Les traits rouges sont l' | ||
| \\ | \\ | ||
| - | Source:\\ | ||
| - | Real-time obstacle avoidance for manipulators and mobile robots [en ligne]. Disponible sur : https:// | ||
| + | \\ | ||
| + | Source:\\ | ||
| + | Khatib, Oussama. " | ||
| ==== Amélioration d’algorithme RRT==== | ==== Amélioration d’algorithme RRT==== | ||
| L’algorithme RRT présente également quelques inconvénients: | L’algorithme RRT présente également quelques inconvénients: | ||
| Line 69: | Line 72: | ||
| L’algorithme RRT ci-dessus ne recherche que l’arbre aléatoire en expansion rapide à partir du point initial. Si deux arbres poussent étendre simultanément à partir du point initial et du point cible pour rechercher l’espace, l’efficacité est plus supérieure. Esn 2000, les professeurs LaValle et Kuffner de l' | L’algorithme RRT ci-dessus ne recherche que l’arbre aléatoire en expansion rapide à partir du point initial. Si deux arbres poussent étendre simultanément à partir du point initial et du point cible pour rechercher l’espace, l’efficacité est plus supérieure. Esn 2000, les professeurs LaValle et Kuffner de l' | ||
| \\ | \\ | ||
| - | {{ :rrt2.png?1000 }} | + | {{ :: |
| + | |||
| + | Le point rouge est le point de départ et Le point jaune est le point de d’arrivée; | ||
| + | Les cercles noirs et les rectangles noirs sont les obstacles; | ||
| + | Les points bleus sont un chemin le plus proche;\\ | ||
| + | Les traits bleus sont le premier arbre; Les traits verts sont le deuxième arbre.\\ | ||
| \\ | \\ | ||
| Source:\\ | Source:\\ | ||
| Line 80: | Line 88: | ||
| De plus, nous devons calculer la distance (cf. euclidienne) entre les deux points. Nous pouvons donc utiliser le modèle CUDA. Les fonctions CUDA C exécutées sur le GPU sont appelées KernelsLa détection de collision avec plusieurs points a également un impact significatif sur la réduction de la durée d’exécution du RRT. Pour réaliser notre Kernels de CUDA, nous avons utilisé C et PyCuda. | De plus, nous devons calculer la distance (cf. euclidienne) entre les deux points. Nous pouvons donc utiliser le modèle CUDA. Les fonctions CUDA C exécutées sur le GPU sont appelées KernelsLa détection de collision avec plusieurs points a également un impact significatif sur la réduction de la durée d’exécution du RRT. Pour réaliser notre Kernels de CUDA, nous avons utilisé C et PyCuda. | ||
| \\ | \\ | ||
| - | {{ :rrt3.png?1000 }} | + | {{ :inkedrrt3_li.png?1000 }} |
| + | Le point rouge est le point de départ et Le point jaune est le point de d’arrivée; | ||
| + | Les cercles noirs et les rectangles noirs sont les obstacles; | ||
| + | Les points bleus sont un chemin le plus proche;\\ | ||
| + | Les traits rouges sont l' | ||
| \\ | \\ | ||
| Line 96: | Line 108: | ||
| Le chemin bleu est le chemin réel, et le noir est le chemin idéal. Nous pouvons remarquer que les formes de deux chemins sont presque les mêmes. | Le chemin bleu est le chemin réel, et le noir est le chemin idéal. Nous pouvons remarquer que les formes de deux chemins sont presque les mêmes. | ||
| \\ | \\ | ||
| + | Pour comparer les 3 algorithmes de RRT, nous avons calculé la valeur moyenne de 10 fois et les résultats sont dans le tableau suivant :\\ | ||
| | ^ Longueur de noeud_liste | | ^ Longueur de noeud_liste | ||
| ^ RRT | 919 | 110 |9,56 | | ^ RRT | 919 | 110 |9,56 | | ||
| Line 120: | Line 133: | ||
| Par exemple, il est difficile à obtenir la solution plus optimale pour l’algorithme RRT. Nous pouvons utiliser l' | Par exemple, il est difficile à obtenir la solution plus optimale pour l’algorithme RRT. Nous pouvons utiliser l' | ||
| - | ===== Conclusion de Projet===== | + | ===== Descriptif des fichiers/ |
| - | Ce projet a été très enrichissant pour moi car il m’a permis | + | ==== Installation |
| + | Télécharger le projet: \\ | ||
| + | git clone https:// | ||
| + | Installer | ||
| + | ./ | ||
| + | sudo python3 -m pip install -e . \\ | ||
| + | Changer la branche: \\ | ||
| + | git checkout sheng\\ | ||
| + | Enter la répertoire ./ | ||
| + | cd ./ | ||
| + | Utiliser Jupyter pour ouvrir mon projet: \\ | ||
| + | jupyter notebook \\ | ||
| - | J'ai beaucoup amélioré mes propres compétences de programmation (Python). J'ai également utilisé beaucoup d' | + | \\ |
| - | + | {{ ::jupyter.png?800 }} | |
| - | Je suis très satisfait d’avoir eu l’occasion de participer à ce projet. Fort de cette expérience, | + | \\ |
| + | Il existe plusieurs fichiers, | ||
| + | rrt.ipynb : l' | ||
| + | rrt-connect.ipynb : l' | ||
| + | p-rrt.ipynb : l' | ||
| + | Environnement.ipynb : il permet | ||
| + | rrt.py : exemple de pygame RRT\\ | ||
| Pour les détails de ce projet, vous pouvez regarder mon rapport technique et les codes sur ce Github (https:// | Pour les détails de ce projet, vous pouvez regarder mon rapport technique et les codes sur ce Github (https:// | ||