Un robot manipulateur est une machine programmable capable d’exécuter diverses tâches répétitives et, en principe, d’adapter son comportement à certains aléas et événements perturbant le fonctionnement nominal prévu. Les tâches peuvent être de type point à point ou de type continu (suivi de courbes, suivi de surfaces). Les premières correspondent aux procédés les plus répandus dans l’industrie manufacturière (soudage par résistance, palettisation, manutention...) par comparaison aux secondes (soudage à l’arc, encollage, découpe, projection/peinture...).
Fonctionnellement, un système robotisé se décompose en trois sous-ensembles (cf. figure) :
-
le bras manipulateur qui agit sur l’environnement. Son état, mesuré par les capteurs proprioceptifs (codeurs ou résolveurs), est modifié par les actionneurs ;
-
le système de commande : il comprend les cartes d’axes qui réalisent l’asservissement des articulations aux positions de consigne. Elles engendrent les consignes de vitesse qui sont converties et envoyées aux variateurs pilotant les actionneurs. Les entrées des cartes d’axes sont calculées par le générateur de mouvement à partir des consignes articulaires (déplacement des axes du robot) ou des consignes opérationnelles (translation et rotation de l’outil). Les systèmes de commande évolués peuvent traiter des données issues de capteurs extéroceptifs encore appelés capteurs d’environnement (systèmes de vision, capteurs d’effort, capteurs tactiles, proximètres) et modifier en ligne le comportement du robot (suivi de joint, par exemple) ;
-
le système de programmation qui réalise l’interface entre les actions spécifiées par l’opérateur et le système de commande du robot et des périphériques de la cellule. Ce sous-ensemble est l’objet de cet article.
Le système de commande et le système de programmation sont inclus dans la baie de commande du robot.
Les fonctions essentielles que doit réaliser un système de programmation de robots manipulateurs sont les suivantes :
-
spécifier des mouvements correspondant à la grande diversité d’opérations que l’on trouve en robotique. Selon la tâche, ces mouvements doivent minimiser les temps de cycle ou satisfaire des contraintes de vitesse imposées par le procédé. Ils peuvent être coordonnés avec les mouvements d’axes externes (positionneurs, convoyeurs ou autres robots) ;
-
synchroniser les mouvements du robot, des dispositifs périrobotiques et des autres équipements de l’atelier ou de la cellule de production ;
-
gérer les actions des outils ;
-
gérer les communications entrées/sorties ;
-
intégrer des informations sensorielles dans les primitives de mouvement : ces informations proviennent le plus souvent de simples capteurs tout ou rien (détection de présence, sécurité...) ; elles peuvent aussi être fournies par des capteurs plus évolués permettant de réaliser des tâches en présence d’incertitudes importantes grâce à des commandes référencées capteur (commande en effort, asservissement en distance) ;
-
contrôler l’exécution des programmes ;
-
communiquer avec l’opérateur via une interface appropriée.
L’évolution qu’ont subie les systèmes de programmation depuis une décennie est liée au gain en puissance considérable des baies de commande des robots. Celles-ci sont à base de processeurs 32 bits − certaines sont multiprocesseurs − souvent sur bus VME (mais ce n’est pas une règle : la nouvelle baie KR C1 de Kuka est équipée d’un processeur PC-Pentium, dispose de 4 emplacements ISA et fonctionne sous VxWorks). Elles peuvent ainsi intégrer un grand nombre de cartes spécialisées disponibles chez un grand nombre de fournisseurs, que ce soit pour la gestion des entrées/sorties, la vision industrielle... Les progrès de l’informatique ont par ailleurs permis de rendre les interfaces homme/machine beaucoup plus conviviales dans des environnements de type Windows (menus déroulants et multifenêtrage). Enfin, le développement des réseaux de terrain (CAN, Interbus-S, Profibus...) permet de faire communiquer beaucoup plus efficacement la baie de commande avec la périrobotique et les autres équipements de l’atelier.
On présente dans cet article les deux familles de méthodes disponibles pour programmer les robots : les méthodes par apprentissage et les méthodes hors ligne qui se caractérisent par des durées moindres d’intervention sur site. On verra qu’à bien des égards ces méthodes sont complémentaires, la justification des coûts et des temps de mise en œuvre conduisant, selon le contexte industriel, à choisir l’une ou l’autre famille de solutions. Pour la clarté de l’exposé, une première partie sera consacrée aux méthodes par apprentissage, les deux parties suivantes traitant des méthodes hors ligne, l’une des langages de programmation, l’autre de la programmation à partir de bases de données CAO-robotique.