Logiciel robotique - Robot software

Un logiciel de robot est l'ensemble de commandes ou d'instructions codées qui indiquent à un dispositif mécanique et à un système électronique, connus ensemble sous le nom de robot , les tâches à effectuer. Le logiciel robot est utilisé pour effectuer des tâches autonomes. De nombreux systèmes logiciels et frameworks ont été proposés pour faciliter la programmation des robots.

Certains logiciels de robots visent à développer des dispositifs mécaniques intelligents. Les tâches courantes incluent les boucles de rétroaction , le contrôle , la recherche de chemin , le filtrage des données, la localisation et le partage des données .

introduction

Bien qu'il s'agisse d'un type de logiciel spécifique, il est encore assez diversifié. Chaque fabricant a son propre logiciel de robot. Alors que la grande majorité des logiciels concerne la manipulation de données et la visualisation du résultat à l'écran, les logiciels de robot sont destinés à la manipulation d'objets ou d'outils dans le monde réel.

Logiciel de robot industriel

Les logiciels pour robots industriels se composent d'objets de données et de listes d'instructions, appelés flux de programme (liste d'instructions). Par example,

Go to Jig1

C'est une instruction au robot d'aller aux données de position nommées Jig1. Bien entendu, les programmes peuvent également contenir des données implicites par exemple

Tell axis 1 move 30 degrees.

Les données et le programme résident généralement dans des sections distinctes de la mémoire du contrôleur de robot. On peut changer les données sans changer le programme et vice versa. Par exemple, on peut écrire un programme différent en utilisant le même Jig1 ou on peut ajuster la position de Jig1 sans changer les programmes qui l'utilisent.

Exemples de langages de programmation pour robots industriels

En raison de la nature hautement propriétaire du logiciel robotique , la plupart des fabricants de matériel robotique fournissent également leur propre logiciel. Bien que cela ne soit pas inhabituel dans d'autres systèmes de contrôle automatisés , le manque de normalisation des méthodes de programmation pour les robots pose certains défis. Par exemple, il existe plus de 30 fabricants différents de robots industriels , il faut donc également 30 langages de programmation de robots différents. Il existe suffisamment de similitudes entre les différents robots pour qu'il soit possible d'acquérir une compréhension globale de la programmation des robots sans avoir à apprendre le langage propriétaire de chaque fabricant.

Une méthode de contrôle des robots de plusieurs fabricants consiste à utiliser un post-processeur et un logiciel de programmation hors ligne (robotique) . Avec cette méthode, il est possible de gérer un langage de programmation de robot spécifique à la marque à partir d'un langage de programmation universel, tel que Python (langage de programmation) . Cependant, la compilation et le téléchargement de code hors ligne fixe sur un contrôleur de robot ne permettent pas au système robotique d'être conscient de l'état, il ne peut donc pas adapter son mouvement et récupérer à mesure que l'environnement change. Un contrôle adaptatif unifié en temps réel pour n'importe quel robot est actuellement possible avec quelques outils tiers différents.

Quelques exemples de langages de programmation de robots publiés sont présentés ci-dessous.

Tâche en anglais simple :

Move to P1 (a general safe position)
Move to P2 (an approach to P3)
Move to P3 (a position to pick the object)
Close gripper
Move to P4 (an approach to P5)
Move to P5 (a position to place the object)
Open gripper
Move to P1 and finish

VAL a été l'un des premiers « langages » de robots et a été utilisé dans les robots Unimate . Des variantes de VAL ont été utilisées par d'autres fabricants, dont Adept Technology . Stäubli utilise actuellement VAL3.

Exemple de programme :

PROGRAM PICKPLACE
  1. MOVE P1
  2. MOVE P2
  3. MOVE P3
  4. CLOSEI 0.00
  5. MOVE P4
  6. MOVE P5
  7. OPENI 0.00
  8. MOVE P1
.END

Exemple de programme Stäubli VAL3 :

begin
  movej(p1,tGripper,mNomSpeed)
  movej(appro(p3,trAppro),tGripper,mNomSpeed)
  movel(p3,tGripper,mNomSpeed)
  close(tGripper)
  movej(appro(p5,trAppro),tGripper,mNomSpeed)
  movel(p5,tGripper,mNomSpeed)
  open(tGripper)
  movej(p1,tGripper,mNomSpeed)
end

trAppro est une variable de transformation cartésienne. Si nous utilisons la commande in avec appro, nous n'avons pas besoin d'enseigner le point P2 et P4, mais nous transformons dynamiquement une approche de la position de sélection et de placement pour la génération de trajectoire.

Epson RC+ (exemple pour un micro à vide)

Function PickPlace
       Jump P1
       Jump P2
       Jump P3
       On vacuum
       Wait .1
       Jump P4
       Jump P5
       Off vacuum
       Wait .1
       Jump P1
Fend

ROBOFORTH (un langage basé sur FORTH ).

: PICKPLACE
P1
P3 GRIP WITHDRAW
P5 UNGRIP WITHDRAW
P1
;

(Avec Roboforth, vous pouvez spécifier des positions d'approche pour les endroits afin que vous n'ayez pas besoin de P2 et P4.)

Il est clair que le robot ne doit pas continuer le mouvement suivant tant que la pince n'est pas complètement fermée. La confirmation ou le temps imparti est implicite dans les exemples ci-dessus de CLOSEI et GRIP alors que la commande On vide nécessite une temporisation pour assurer une aspiration satisfaisante.

Autres langages de programmation de robots

Langage de programmation visuel

Le langage de programmation LEGO Mindstorms EV3 est un langage simple avec lequel ses utilisateurs peuvent interagir. Il s'agit d'une interface utilisateur graphique (GUI) écrite avec LabVIEW . L'approche consiste à commencer par le programme plutôt que par les données. Le programme est construit en faisant glisser des icônes dans la zone de programme et en les ajoutant ou en les insérant dans la séquence. Pour chaque icône, vous spécifiez ensuite les paramètres (données). Par exemple, pour l'icône d'entraînement du moteur, vous spécifiez quels moteurs et de combien ils se déplacent. Lorsque le programme est écrit, il est téléchargé dans la « brique » Lego NXT (microcontrôleur) pour être testé.

Langages de script

Un langage de script est un langage de programmation de haut niveau qui est utilisé pour contrôler l'application logicielle, et est interprété en temps réel, ou "traduit à la volée", au lieu d'être compilé à l'avance. Un langage de script peut être un langage de programmation à usage général ou il peut être limité à des fonctions spécifiques utilisées pour augmenter l'exécution d'une application ou d'un programme système. Certains langages de script, tels que RoboLogix , ont des objets de données résidant dans des registres, et le flux de programme représente la liste d'instructions, ou le jeu d'instructions , qui est utilisé pour programmer le robot.

Langages de programmation en robotique industrielle
Marque de robot Nom de la langue
ABB RAPIDE
Comau PDL2
Fanuc Karel
Kawasaki COMME
Kuka KRL
Stäubli VAL3
Yaskawa Informer

Les langages de programmation sont généralement conçus pour créer des structures de données et des algorithmes à partir de zéro, tandis que les langages de script sont davantage destinés à connecter ou à «coller» des composants et des instructions. Par conséquent, le jeu d'instructions du langage de script est généralement une liste simplifiée de commandes de programme qui sont utilisées pour simplifier le processus de programmation et fournir un développement d'application rapide.

Langues parallèles

Une autre approche intéressante mérite d'être mentionnée. Toutes les applications robotiques ont besoin de parallélisme et de programmation événementielle. Le parallélisme est l'endroit où le robot fait deux ou plusieurs choses en même temps. Cela nécessite du matériel et des logiciels appropriés. La plupart des langages de programmation s'appuient sur des threads ou des classes d'abstraction complexes pour gérer le parallélisme et la complexité qui l'accompagne, comme l'accès concurrent aux ressources partagées. URBI fournit un niveau d'abstraction plus élevé en intégrant le parallélisme et les événements au cœur de la sémantique du langage.

 whenever(face.visible)
 {
   headPan.val  += camera.xfov * face.x
   &
   headTilt.val += camera.yfov * face.y
 }

Le code ci-dessus déplacera les moteurs headPanet headTilten parallèle pour que la tête du robot suive le visage humain visible sur la vidéo prise par sa caméra chaque fois qu'un visage est vu par le robot.

Logiciel d'application robotique

Quel que soit le langage utilisé, le résultat final du logiciel robotique est de créer des applications robotiques qui aident ou divertissent les gens. Les applications incluent des logiciels de commande et de contrôle et de tâches. Le logiciel de commande et de contrôle comprend des interfaces graphiques de contrôle de robot pour les robots télécommandés, un logiciel de commande pointer-cliquer pour les robots autonomes et un logiciel de planification pour les robots mobiles dans les usines. Le logiciel de gestion des tâches comprend des interfaces glisser-déposer simples pour configurer les itinéraires de livraison, les patrouilles de sécurité et les visites des visiteurs ; il comprend également des programmes personnalisés écrits pour déployer des applications spécifiques. Un logiciel d'application robotique à usage général est déployé sur des plates-formes robotiques largement distribuées.

Considérations de sécurité

Les erreurs de programmation représentent un sérieux problème de sécurité, en particulier dans les gros robots industriels. La puissance et la taille des robots industriels signifient qu'ils sont capables d'infliger des blessures graves s'ils sont mal programmés ou utilisés de manière dangereuse. En raison de la masse et des vitesses élevées des robots industriels, il est toujours dangereux pour un humain de rester dans la zone de travail du robot pendant le fonctionnement automatique. Le système peut commencer à bouger à des moments inattendus et un humain sera incapable de réagir assez rapidement dans de nombreuses situations, même s'il est prêt à le faire. Ainsi, même si le logiciel est exempt d'erreurs de programmation, un grand soin doit être apporté pour rendre un robot industriel sûr pour les travailleurs humains ou les interactions humaines, telles que le chargement ou le déchargement de pièces, la suppression d'un bourrage de pièces ou la maintenance. Le livre ANSI/RIA R15.06-1999 American National Standard for Industrial Robots and Robot Systems - Safety Requirements (révision de ANSI/R15.06-1992) de la Robotic Industries Association est la norme acceptée sur la sécurité des robots. Cela comprend des lignes directrices pour la conception de robots industriels et la mise en œuvre ou l'intégration et l'utilisation de robots industriels dans l'usine. De nombreux concepts de sécurité tels que les contrôleurs de sécurité, la vitesse maximale pendant un mode d'apprentissage et l'utilisation de barrières physiques sont couverts.

Voir également

Les références

Liens externes