La robotique est un mélange unique de science et de technologie qui produit des machines qui imitent les actions des humains.
Au début des années 2000, 90 % des robots se trouvaient dans les usines de fabrication de voitures et remplaçaient les humains pour des tâches répétitives. Désormais, les robots peuvent passer l'aspirateur dans les maisons et même servir dans les restaurants.
Un robot se compose généralement de trois types de composants ; le corps mécanique; le squelette électrique, et enfin un cerveau fait avec du code.
Ces composants permettent à un robot de collecter des données (souvent à partir de capteurs), de prendre des décisions via une logique programmée pour adapter son comportement et accomplir des tâches.
Les robots peuvent avoir trois types de programmes ; Télécommande (RC), Intelligence artificielle (IA), ou Hybride.
Les programmes RC nécessitent l'intervention d'un être humain qui peut donner le signal de démarrage et/ou d'arrêt de l'exécution du code au robot. Les programmes se composent de différents types d'algorithmes, chacun ayant une fonction différente.
Qu'est-ce qu'un algorithme ?
Un algorithme est une série de lignes de code qu'un robot peut utiliser pour exécuter certaines instructions. Il traduit les idées du développeur dans un langage compris par les robots.
Les algorithmes peuvent être exprimés dans de nombreux types de notation, y compris le pseudocode, les organigrammes, langages de programmation, ou tables de contrôle.
Dans cet article, nous aborderons certains types d'algorithmes courants utilisés dans ces programmes.
Types d'algorithmes utilisés en robotique
1. Algorithme A* à tout moment
L'algorithme A* est un algorithme de recherche de chemin qui est utilisé pour trouver le chemin le plus optimal entre deux points, c'est-à-dire avec le moindre coût.
Anytime A* Algorithm a un coût en temps flexible et peut renvoyer le chemin le plus court même s'il est interrompu car il génère d'abord une solution non optimale, puis l'optimise.
Cela permet une prise de décision plus rapide car le robot peut s'appuyer sur des calculs précédents au lieu de partir de zéro.
Comment cela fonctionne ?
Pour ce faire, il forme un «arbre» qui s'étend du nœud de départ jusqu'à ce que les critères de terminaison soient déclenchés, ce qui signifie qu'il existe un chemin moins coûteux disponible.
Une grille 2D est créée avec des obstacles et une cellule de départ et des cellules cibles sont localisées.
L'algorithme définit la "valeur" d'un nœud par f qui est la somme des paramètres g (le coût du déplacement du nœud de départ au nœud en question) et h (le coût du déplacement du nœud en question au nœud cible).
Applications
De nombreux jeux et cartes Web utilisent cet algorithme pour trouver efficacement le chemin le plus court. Il peut également être utilisé pour les robots mobiles.
Vous pouvez également résoudre des problèmes complexes comme le Newton-Raphson itération appliquée à la recherche de la racine carrée d'un nombre.
Il est également utilisé dans les problèmes de trajectoire pour prédire le mouvement et la collision d'un objet dans l'espace.
2. Algorithme D*
D*, Focused D* et D* Lite sont des algorithmes de recherche incrémentale pour trouver le chemin le plus court entre deux points.
Cependant, ils sont un mélange d'algorithmes A * et de nouvelles découvertes qui leur permettent d'ajouter des informations à leurs cartes pour les obstacles inconnus.
Ils peuvent ensuite recalculer un itinéraire en fonction de nouvelles informations, un peu comme le Mars Rover.
Comment cela fonctionne ?
Le fonctionnement de l'algorithme D* est similaire à celui de A*, l'algorithme définit d'abord f, h et crée une liste ouverte et fermée.
Après cela, l'algorithme D* détermine la valeur g du nœud actuel en utilisant la valeur g de ses nœuds voisins.
Chaque nœud voisin fait une estimation de la valeur g actuelle et la valeur g la plus courte est adaptée comme nouvelle valeur g.
Applications
D* et ses variantes sont largement utilisés pour les robots mobiles et véhicule autonome la navigation.
Ces systèmes de navigation comprennent un système prototype testé sur les rovers martiens Opportunity et Spirit et le système de navigation qui a remporté le DARPA Urban Challenge.
3. Algorithme PRM
Une PRM, ou feuille de route probabiliste, est un graphe de réseau de chemins possibles en fonction des espaces libres et occupés sur une carte donnée.
Ils sont utilisés dans les systèmes de planification complexes et également pour trouver des chemins à faible coût autour des obstacles.
Les PRM utilisent un échantillon aléatoire de points sur leur carte où un robot peut éventuellement se déplacer, puis le chemin le plus court est calculé.
Comment cela fonctionne ?
PRM se compose d'une phase de construction et de requête.
Dans la première phase, une feuille de route est tracée qui se rapproche des mouvements possibles dans un environnement. Une configuration aléatoire est alors créée et connectée à certains voisins.
Les configurations de départ et d'objectif sont connectées au graphique dans la phase de requête. Le chemin est alors obtenu par un Le chemin le plus court de Dijkstra requête.
Applications
PRM est utilisé dans les planificateurs locaux, où l'algorithme calcule un chemin en ligne droite entre deux points, à savoir le point initial et le point d'arrivée.
L'algorithme peut également être utilisé pour améliorer les applications de planification de trajectoire et de détection de collision.
4. Algorithme ZMP (Zero Moment Point)
Zero Moment Point (technique ZMP) est un algorithme utilisé par les robots pour maintenir l'inertie totale opposée à la force de réaction du sol.
Cet algorithme utilise le concept de calcul du ZMP et l'applique de manière à équilibrer les robots bipèdes. L'utilisation de cet algorithme sur une surface de sol lisse permet apparemment au robot de marcher comme s'il n'y avait pas de moment.
Des entreprises manufacturières comme ASIMO (Honda) utilisent cette technique.
Comment cela fonctionne ?
Le mouvement d'un robot marcheur est planifié à l'aide de l'équation du moment cinétique. Il s'assure que le mouvement articulaire généré garantit la stabilité posturale dynamique du robot.
Cette stabilité est quantifiée par la distance du point de moment zéro (calculé par l'algorithme) dans les limites d'une région de stabilité prédéfinie.
Applications
Les points de moment zéro peuvent être utilisés comme métrique pour évaluer la stabilité contre le basculement de robots tels que l'iRobot PackBot lors de la navigation sur des rampes et des obstacles.
5. Algorithme de contrôle différentiel intégral proportionnel (PID)
Le contrôle différentiel intégral proportionnel ou PID crée une boucle de rétroaction du capteur pour ajuster les paramètres des composants mécaniques en calculant la valeur d'erreur.
Ces algorithmes combinent les trois coefficients de base, c'est-à-dire la proportion, l'intégrale et la dérivée, de manière à produire un signal de commande.
Il fonctionne en temps réel et applique des corrections si nécessaire. Cela se voit dans voitures auto-conduite.
Comment cela fonctionne ?
Le contrôleur PID utilise trois termes de contrôle de proportionnalité, d'influence intégrale et dérivée sur sa sortie pour appliquer un contrôle précis et optimal.
Ce contrôleur calcule en continu une valeur d'erreur comme la différence entre un point de consigne souhaité et une variable de processus mesurée.
Il applique ensuite une correction pour minimiser l'erreur dans le temps en ajustant la variable de contrôle.
Applications
Ce contrôleur peut contrôler tout processus ayant une sortie mesurable, une valeur idéale connue pour cette sortie et une entrée du processus qui affectera la sortie mesurable.
Les contrôleurs sont utilisés dans l'industrie pour réguler la température, la pression, la force, le poids, la position, la vitesse et toute autre variable pour laquelle une mesure existe.
Conclusion
Donc, ce sont quelques-uns des algorithmes les plus couramment utilisés en robotique. Tous ces algorithmes sont assez complexes avec un mélange de physique, d'algèbre linéaire et de statistiques utilisés pour cartographier les actions et les mouvements.
Cependant, à mesure que la technologie progresse, les algorithmes robotiques se développeront pour devenir encore plus complexes. Les robots pourront accomplir plus de tâches et penser davantage par eux-mêmes.
Si vous avez aimé cet article, abonnez-vous à l'hebdomadaire de HashDork mises à jour par e-mail, où nous partageons les dernières nouvelles sur l'IA, le ML, le DL, la programmation et les technologies futures.
Soyez sympa! Laissez un commentaire