FR 3133930 A1 20230929 FR 2202705 A 20220325 Systèmes et procédés de commande hybride position force d’un robot industriel Ce procédé de commande d’un robot industriel comporte des étapes consistant à : calculer (S104) dans des modules implémentés par l’unité centrale une consigne composite dépendant du temps et définissant des efforts et des vitesses articulaires, en fonction d’une trajectoire cible et d’un mode de fonctionnement, calculer (S106) dans des modules implémentés par l’unité centrale une matrice de comportement qui décrit un comportement désiré du bras de robot, en définissant des directions dans lesquelles la consigne composite calculée doit s’appliquer, calculer (S108) dans un module implémenté par l’unité auxiliaire une consigne d’effort articulaire de pilotage du module de régulation d’axe, calculer (S110) dans un module de régulation d’axe implémenté par l’unité auxiliaire les consignes de pilotage des modules de puissance en fonction de la consigne d’effort articulaire. Figure pour l'abrégé : 6 Systèmes et procédés de commande hybride position force d’un robot industriel La présente invention concerne les robots industriels, et porte plus particulièrement sur des systèmes et des procédés de commande d’un robot industriel manuellement guidable. ARRIERE-PLAN TECHNOLOGIQUE Les robots industriels, tels que les bras de robot, sont de plus en plus utilisés dans des applications de collaboration directe avec des opérateurs, dans lesquels les opérateurs peuvent agir directement sur le robot. C’est par exemple le cas d’applications chirurgicales, ou de certains procédés de fabrication industrielle, entre autres. Par exemple, l’opérateur peut agir directement sur le robot en manipulant et en déplaçant une partie du bras de robot. Ce déplacement est détecté par des capteurs du robot. En fonction de ce retour, le système de commande du robot modifie en conséquence des consignes envoyées aux moteurs du robot, par exemple pour amener ou maintenir le bras de robot à la position choisie par l’opérateur, ou pour accompagner un déplacement manuel du robot par l’opérateur. Généralement, la performance du guidage « manuel » d’un robot peut être mesurée par différents critères, tels que la facilité avec laquelle le robot peut être déplacé (la transparence), l’absence d’élasticité sous l’action de l’opérateur (la rigidité) et la stabilité, qui s’évalue lorsque que le robot atteint une position limite imposée par programmation ou par l’utilisateur. Aucune des solutions de contrôle de robot disponibles et connues à l’heure actuelle ne permette d’obtenir des résultats qui satisfassent ces trois critères, qui sont souvent difficiles à concilier. En effet, en pratique, un robot présentant une rigidité et une transparence satisfaisantes présentera une stabilité insuffisante, car il sera sujet à des rebonds lorsqu’il rentrera en contact avec un élément rigide de son environnement sous l’action d’un opérateur, par exemple. Il existe donc un besoin pour des systèmes et des procédés de commande de robots industriels permettant un guidage qui présente des performances améliorées lorsque le robot doit être guidé manuellement au moins partiellement. A cet effet, l’invention concerne un procédé de commande d’un robot industriel, le robot comportant : un bras de robot multiaxes comprenant au moins deux actionneurs électriques chacun capable de déplacer une partie du bras de robot par rapport à une autre partie du bras de robot autour ou le long d’un axe de mouvement, chaque actionneur électrique étant associé à un capteur configuré pour mesurer une position articulaire de l’actionneur correspondant, un effecteur placé à l’extrémité du bras de robot, un système de commande de robot comportant une unité centrale, une unité auxiliaire configurée pour piloter des unités de puissance, des unités de puissance aptes à délivrer un courant électrique approprié aux actionneurs électriques, une interface d’acquisition de données configurée pour recevoir et transmettre les mesures des capteurs associés aux actionneurs électriques, une liaison de communication connectant l’unité centrale, l’unité auxiliaire et l’interface d’acquisition de données, la liaison de communication comportant un bus de données, dans lequel le procédé de commande comporte des étapes consistant à: calculer dans des modules implémentés par l’unité centrale une consigne composite dépendant du temps et définissant des efforts et des vitesses articulaires, en fonction d’une trajectoire cible et d’un mode de fonctionnement, calculer dans des modules implémentés par l’unité centrale une matrice de comportement qui décrit un comportement désiré du bras de robot, en définissant des directions dans lesquelles la consigne composite calculée doit s’appliquer, calculer dans un module implémenté par l’unité auxiliaire une consigne d’effort articulaire de pilotage du module de régulation d’axe en fonction de ladite consigne composite précédemment calculée, et de ladite matrice de comportement, calculer dans un module de régulation d’axe implémenté par l’unité auxiliaire les consignes de pilotage des modules de puissance en fonction de la consigne d’effort articulaire. Dans certains modes de réalisation, le calcul de la consigne d’effort articulaire comporte le calcul de la dérivée temporelle d’un état interne homogène à une position articulaire, ce calcul étant réalisé en fonction de ladite consigne composite précédemment calculée, de ladite matrice de comportement, des positions articulaires mesurées, de vitesses articulaires dérivées à partir des positions articulaires mesurées, et de l’état interne. Dans certains modes de réalisation, la consigne d’effort articulaire de pilotage du module de régulation d’axe est calculée à partir d’une fonction de régulation qui régule l’écart entre la position articulaire et l’état interne, l’état interne étant déterminé par intégration de ladite dérivée temporelle de l’état interne. Dans certains modes de réalisation, l’unité centrale recalcule la consigne composite et la matrice de comportement avec une première fréquence et l’unité auxiliaire recalcule les consignes d’effort articulaire de pilotage du module de régulation d’axe avec une deuxième fréquence supérieure à la première fréquence. Dans certains modes de réalisation, la deuxième fréquence est entre deux et vingt fois plus élevée que la première fréquence, de préférence entre cinq et dix fois plus élevée que la première fréquence, de préférence encore huit fois plus élevée que la première fréquence. Dans certains modes de réalisation, l’unité auxiliaire calcule les consignes d’effort articulaire de pilotage du module de régulation d’axe avec une fréquence est choisie entre 500Hz et 20kHz, de préférence entre 5KHz et 12KHz, de préférence égale à 8KHz. Dans certains modes de réalisation, le module de régulation d’axe prend en compte des efforts mesurés par un capteur d’effort lors du calcul des consignes de pilotage des modules de puissance en fonction de la consigne d’effort articulaire. Dans certains modes de réalisation, l’unité centrale implémente un compensateur de gravité qui calcule le poids de l’effecteur et un convertisseur cartésien articulaire qui calcule la matrice de conversion à partir des positions articulaires et transmet le poids de l’effecteur et la matrice de conversion au module de régulation d’axe pour la prise en compte des efforts mesurés par un capteur d’effort monté en extrémité du bras de robot. Dans certains modes de réalisation, l’unité centrale implémente un compensateur de gravité qui calcule le poids de l’effecteur et un convertisseur cartésien articulaire qui calcule la matrice de conversion à partir des positions articulaires et transmet à la première fréquence le poids de l’effecteur et la matrice de conversion au module de régulation d’axe pour la prise en compte des efforts mesurés par un capteur d’effort monté en extrémité du bras de robot. Dans certains modes de réalisation, la liaison de communication est configurée de sorte à ce que l’unité centrale envoie de façon cyclique des trames de communication sur le bus de données, les modules de régulation d’axe et le capteur d’effort étant configurés pour lire ou ajouter des données dans la trame de données lors du passage de celle-ci, la trame de données étant remontée à l’unité centrale en fin de chaque cycle de communication Selon un autre aspect, l’invention concerne un robot industriel apte à mettre en œuvre un procédé de commande tel que décrit. BREVE DESCRIPTION DES FIGURES L’invention sera mieux comprise et d’autres avantages de celle-ci apparaîtront plus clairement à la lumière de la description qui va suivre, donnée uniquement à titre d’exemple et faite en référence aux dessins annexés, dans lesquels : la représente schématiquement et en blocs structurels un robot industriel selon l’invention conformément à un mode de réalisation ; la est un schéma bloc fonctionnel du robot industriel de la conformément au mode de réalisation de la ; la est un schéma fonctionnel synthétique illustrant le système de commande conforme à l’invention ; la est un schéma bloc illustrant la communication de données entre unités du robot ; la est un schéma fonctionnel détaillant les boucles d’effort et de vitesses ; la représente schématiquement un procédé de commande d’un robot industriel conforme à l’invention ; DESCRIPTION DETAILLEE DE MODES DE REALISATION DE L'INVENTION La représente un exemple de robot industriel 2. Le robot 2 comporte un bras de robot multiaxes 4. Par exemple, le bras de robot 4 comporte plusieurs segments articulés deux à deux autour d’axes de rotation. Le bras de robot 4 peut comporter un effecteur 6, tel qu’un outil pilotable, qui est placé en bout du bras de robot 4. Le bras de robot 4 comporte une pluralité d’actionneurs électriques, notés M1, M2, M3, M4, M5 et M6 sur l’exemple de la (et notés M1 à M6 dans ce qui suit). Chacun des actionneurs électriques est capable de déplacer par rotation ou par translation une partie du bras de robot 4 par rapport à une autre partie du bras de robot 4 autour d’un axe de mouvement, tels qu’un des axes de rotation. Chaque actionneur électrique M1 à M6 comporte un moteur électrique, tels que des moteurs électriques synchrones sans balais, ou tout autre moteur électrique adapté. Le robot 2 comporte aussi une pluralité de capteurs, notés C1, C2, C3, C4, C5 et C6 sur l’exemple de la (et notés C1 à C6 dans ce qui suit). Chaque actionneur électrique M1 à M6 est associé à un capteur C1 à C6. Chaque capteur C1 à C6 est configuré pour mesurer une position articulaire de cet actionneur électrique. Par exemple, les capteurs C1 à C6 sont des capteurs d’angle, tels que des codeurs rotatifs. La position articulaire correspond par exemple à une position angulaire de l’articulation De préférence, le robot 2 est un robot à 6 axes. Le bras de robot 4 présente donc six degrés de liberté et comporte six actionneurs électriques M1 à M6 et six capteurs C1 à C6. Le robot 2 comporte également un système de commande 8. Dans le mode de réalisation illustré sur les figures 1, 2 et 5, le système de commande 8 comporte : une unité centrale 5, une unité auxiliaire 7, et 6 unités de puissance 15. Au sens de la présente description, le qualificatif « articulaire » est utilisé pour désigner soit la position (angulaire) de chaque articulation du bras de robot 4, soit la position (angulaire) courante de chaque actionneur M1 à M6 du robot. L’expression « efforts articulaires » désigne les efforts commandés sur chaque articulation du bras de robot, ou sur chaque actionneur M1 à M6. Dans cette description, on désigne par « effort » une force ou un couple mécanique. L’unité centrale 5 est en communication avec l’unité auxiliaire 7 par une liaison de données tel qu’un bus de données 18, notamment un bus de terrain. En pratique, l’unité auxiliaire 7 est connecté électriquement à des unités de puissance 15 qui délivrent un courant électrique approprié aux actionneurs M1 à M6 par l’intermédiaire de conducteurs électriques 16. L’unité de puissance 15 est un dispositif comprenant des interrupteurs commandables couplés à une alimentation et apte à générer les courants dans les phases d’un moteur en fonction de signaux de commande des interrupteurs appelés consignes de pilotage d’unité de puissance. Il comprend des capteurs de mesure des courants de phase des moteurs. Ces mesures de courants sont transmises à la boucle de régulation de courant 62 de manière à adapter le pilotage des interrupteurs commandables de l’unité de puissance par rétroaction. Le système de commande 8 comporte également une interface d’acquisition de données 14, telle qu’une carte électronique. L’interface d’acquisition de données 14 est connectée aux capteurs C1 à C6 et est configurée pour recevoir les données mesurées par les capteurs C1 à C6. Par exemple, les capteurs C1 à C6 sont connectés à l’interface d’acquisition 14 par des liaisons de communication compatibles avec un protocole de communication industriel, tel que le protocole EnDat, ou équivalent. L’interface d’acquisition de données 14 est connectée à l’unité centrale 5 et à l’unité auxiliaire 7 par une liaison de données tel qu’un bus de données 18, notamment un bus de terrain. De préférence, le bus de données 18 est compatible avec le protocole de communication EtherCAT (Ethernet for Control Automation Technology). Les constituants du système de commande 8 peuvent avantageusement être regroupés dans une armoire de commande. En alternative, l’interface de d’acquisition de données 14 peut être placée dans le bras de robot comme les actionneurs M1 à M6 et les capteurs C1 à C6. L’unité centrale 5, l’unité auxiliaire 7 et les unités de puissance 15 peuvent être placés dans une armoire de commande 30 visible en pointillés sur la . Optionnellement, un capteur d’efforts multiaxes 20 placé sur le bras de robot 4 peut être connecté à l’unité centrale 5 et à l’unité auxiliaire 7, par exemple par l’intermédiaire du bus de données 18. De préférence, le capteur d’efforts multiaxes 20 est placé entre l’extrémité du bras de robot 4 et l’effecteur 6. De préférence, le capteur d'efforts multiaxes 20 est constitué d'au moins 6 dispositifs de mesures, par exemple des jauges de contraintes piezo-résistives solidaires d'un corps d'épreuve. L'agencement géométrique des dispositifs, non nécessairement aligné sur un repère cartésien canonique, permet de reconstruire le torseur d'effort complet par combinaison linéaire des mesures qu'il produit. Le capteur d’efforts multiaxes 20 est configuré pour fournir les efforts extérieurs multidimensionnels . Dans certaines variantes, toutefois, les efforts extérieurs exercés sur le bras de robot pourraient être déterminés par la mesure des courants des actionneurs. La fonction du capteur d’efforts multiaxes 20 pourrait alors être remplacée par un module d’analyse implémenté de façon électronique par le système de commande 8. Le bus de données 18 permet aux différents équipements tels que l’unité centrale 5, l’unité auxiliaire 7, l’interface d’acquisition de données 14, voire le capteur d’effort multiaxes 20, de communiquer en faisant circuler des trames de données envoyées de façon synchrone ou cyclique. De préférence, la communication est réalisée de façon unidirectionnelle mais en permettant une communication croisée (cross-communication en anglais). Par exemple, l’unité centrale (CPU) agit comme « maître » sur le bus de données et les autres équipements connectés agissent comme « esclaves ». Ces équipements « esclaves » peuvent lire les données contenues dans chaque trame de données, et ajouter des données dans la trame de données lors du passage de celle-ci, la trame de données étant remontée à l’unité centrale en fin de chaque cycle de communication. Comme illustré sur la figure 4, l’unité centrale 5 émet une trame de données 30 qui parvient en premier à l’interface d’acquisition de données 14. L’interface d’acquisition de données 14 complète la trame de données 30 avec des données comme par exemple les positions articulaires des actionneurs M1 à M6. La trame de données parvient ensuite au capteur d’effort multiaxes 20. Le capteur d’effort multiaxes 20 complète la trame de données avec les efforts extérieurs multidimensionnels mesurés. La trame de données 30 parvient ensuite à l’unité auxiliaire 7 qui peut lire les positions articulaires q r des actionneurs électriques M1 à M6 et les efforts extérieurs multidimensionnels mesurés qui viennent d’être écrits dans la trame de données 30. La trame de données 30 parvient ensuite à l’unité centrale 5 qui peut lire les positions articulaires des actionneurs électriques M1 à M6 et les efforts extérieurs multidimensionnels mesurés. En variante, l’unité centrale 5 peut mettre en œuvre des communications cycliques à des fréquences différentes. Certaines trames de données 30 émises à haute fréquence peuvent être dédiées à la communication des positions articulaires des actionneurs électriques M1 à M6 alors que certaines trames de données 30 émises à une fréquence plus basse peuvent être dédiées à la communication des efforts extérieurs multidimensionnels mesurés. Le protocole EtherCAT (EtherCAT Automation Protocol) permet d’implémenter une communication unidirectionnelle dans laquelle des trames de données circulent en suivant une boucle reliant successivement l’unité centrale 5, l’interface d’acquisition de données 14, le capteur d’efforts multiaxes 20 et l’unité auxiliaire 7. De plus, le protocole EtherCAT permet la communication croisée c’est-à-dire la possibilité pour un esclave d’envoyer des données qui vont être lues dans le même cycle de communication par un autre esclave placé après lui dans la boucle de communication. En variante, l’unité centrale 5, l’unité auxiliaire 7, l’interface d’acquisition de données 14 et le capteur d’efforts multiaxes 20 peuvent communiquer deux à deux par des bus de données différents. En particulier, le capteur d’efforts multiaxes 20 peut communiquer directement avec le module de régulation d’axe 12. Autrement dit, la liaison de communication connectant l’unité centrale (5), l’unité auxiliaire (7) et l’interface d’acquisition de données (14) peut comporter plusieurs bus de données de nature différente. La précise la façon dont le robot 2 est piloté par le système de commande 8. Sur la , des fonctions de pilotage du robot 2 sont représentés par un schéma bloc simplifié 40, seules les fonctions essentielles à la compréhension de l’invention étant illustrées et décrites en détail. Le système de commande 8 implémente un module d’exécution de programme applicatif (module 42), un générateur de trajectoire (module 44) et un gestionnaire d’impédance (module 46). Le module d’exécution de programme applicatif 42 adresse des instructions au générateur de trajectoire 44, par exemple sous la forme de commandes asynchrones. Le module d’exécution de programme applicatif 42 permet également de sélectionner le mode de fonctionnement approprié pour le gestionnaire d’impédance 46. Par exemple, on peut choisir un mode de fonctionnement en pilotage en position, ou un mode de fonctionnement en pilotage en effort, ou dans un mode de fonctionnement hybride mêlant pilotage en effort et pilotage en position, ou un mode de commande en impédance. Le module d’exécution de programme applicatif 42 peut aussi renvoyer des informations d’état à un utilisateur. Le générateur de trajectoire 44 reçoit des instructions de haut niveau (par exemple, une instruction de se déplacer en ligne droite à une destination donnée dans l’espace) et transforme ces instructions en une succession de positions articulaires ou de positions cartésiennes, par exemple en appliquant un modèle cinématique associée au bras de robot 4 et, le cas échéant, en tenant compte de contraintes mécaniques telles que des réductions et des couplages mécaniques éventuels. Le générateur de trajectoire 44 peut aussi, de manière similaire, générer des trajectoires d’effort (comme un effort dans une direction donnée passant progressivement d’une valeur à une autre). De préférence, les trajectoires de position et d’effort sont synchronisés. Le gestionnaire d’impédance 46 génère les commandes articulaires de manière à conférer au robot un comportement défini, par exemple pour suivre une trajectoire dans l’espace cartésien. Ces commandes sont de préférence générées en utilisant une information de mode de fonctionnement fournie par le module d’exécution de programme applicatif 42, mais aussi et surtout en fonction de consignes de mouvement (telles que des positions et des vitesses) et/ou des consignes d’effort synchrones, et en fonction d’une quantité, notée , qui sera décrite plus en détail dans ce qui suit. Par exemple, les commandes articulaires générées par le gestionnaire d’impédance 46 comportent une consigne composite d’effort et/ou de vitesse, notée « u », et une matrice de comportement, notée Y. Par exemple, Y est une matrice carrée de dimension n, et u est un vecteur de dimension n, n étant le nombre de moteurs du robot. La matrice de comportement Y décrit un comportement désiré du bras de robot, en définissant des directions dans lesquelles la consigne composite u doit s’appliquer. Les coefficients de la matrice de comportement peuvent être des fonctions dépendant du temps. De même, les consignes composites u peuvent dépendre du temps. En variante, les consignes composites u pourraient être séparées en deux variables distinctes : une consigne de vitesse d’une part et une consigne d’effort d’autre part. Toutefois, les regrouper en une seule variable permet de limiter les échanges de données entre composants dans l’implémentation physique. Dans cette description, le terme « impédance » est utilisé pour désigner l’impédance mécanique du bras de robot 4. En effet, un des buts du procédé de commande est de contrôler le comportement et la réponse du bras de robot 4 lorsqu’il est soumis à des efforts extérieurs, par exemple lorsqu’il rencontre un obstacle ou lorsqu’un utilisateur exerce un effort manuel sur le bras de robot (par exemple pour guider manuellement le robot). L’impédance mécanique du robot caractérise la réponse du bras de robot 4 à un effort mécanique extérieur. Une impédance nulle (ou quasi-nulle) signifie que le robot se déplace librement dès qu’on tente d’appliquer un effort sur lui. Une impédance infinie (ou très grande) signifie que le bras de robot reste immobile quel que soit l’effort extérieur appliqué. L’impédance du robot peut être choisie différemment pour différentes directions de l’espace, par exemple en sélectionnant une impédance très grande dans certaines directions et faible dans d’autres directions. De façon générale, le système de commande 8 du robot est configuré pour calculer les consignes composites u dépendant du temps et définissant des efforts et des vitesses articulaires, en fonction d’une trajectoire cible et d’un mode de fonctionnement choisi, et pour calculer la matrice de comportement Y qui décrit un comportement désiré du bras de robot, en définissant des directions dans lesquelles la consigne composite u calculée doit s’appliquer. Ce calcul peut être répété de façon cyclique. Le système de commande comporte également un régulateur d’impédance articulaire (module 48) qui reçoit la consigne composite u et la matrice de comportement Y générées par le gestionnaire d’impédance 46, ainsi que la position et la vitesse articulaire du robot (respectivement notées et ) obtenues à partir des capteurs C1 à C6. A partir de ces informations, le régulateur d’impédance articulaire 48 est configuré pour générer les consignes d’effort articulaire (notées « ») pour que le robot suive le comportement défini par la consigne composite u et la matrice de comportement Y générées par le gestionnaire d’impédance 46. En plus, le régulateur d’impédance articulaire 48 génère et/ou met à jour la quantité , qui correspond à un état interne assimilable à une consigne de position articulaire interne et virtuelle, qui sera utilisée à des fins de calcul. Le système de commande 8 comporte enfin un module de régulation d’axe 12. Ce module de régulation d’axe 12 met en œuvre une ou plusieurs boucles de régulation qui pilotent les actionneurs pour que les efforts appliqués suivent la consigne d’effort articulaire reçue depuis le régulateur d’impédance articulaire 48. Le module de régulation d’axe 12 comprend des boucles d’effort et de vitesse 61 qui assurent la régulation d’effort et de vitesse et génèrent les consignes de pilotage des boucles de courant qui peuvent prendre en compte des compensations de gravité du robot 4 et de l’effecteur 6. La vitesse articulaire est par exemple obtenue par dérivation numérique de la position q r du robot. En pratique, la position et la vitesse articulaire du robot ( et ) ainsi que tous les efforts articulaires peuvent se présenter sous la forme de vecteurs dont les coefficients correspondent aux différentes articulations ou actionneurs. En résumé, le système de commande du robot est ainsi configuré pour calculer une consigne d’effort articulaire de pilotage des modules de régulation d’axe et de la dérivée temporelle d’un état interne homogène à une position articulaire, ce calcul étant réalisé en fonction de ladite consigne composite u précédemment calculée, de ladite matrice de comportement Y, des positions articulaires mesurées, des vitesses articulaires dérivées à partir des positions articulaires mesurées , et de l’état interne . Le robot 2 comporte avantageusement une interface homme machine 52 (IHM) qui permet d’acquérir des commandes et des instructions venant d’un utilisateur et d’afficher ou envoyer des informations à l’utilisateur, telles que des informations sur l’état interne du robot 2 et/ou sur des paramètres de fonctionnement. Le système de commande 8 du robot implémente un module de calcul 10 qui incorpore les fonctions des modules 42, 44, 46 et 48. Le module de calcul 10 est apte à générer les consignes d’effort articulaire de pilotage d’un module de régulation d’axe 12. Ce module de régulation d’axe 12 est apte à générer les consignes de pilotage des unités de puissance 15 délivrent un courant électrique approprié aux moteurs M1 à M6. La figure 2 permet de décrire comment le module de calcul 10 et le module de régulation d’axe 12 sont implémentés. L’unité centrale 5 et l’unité auxiliaire 7 comportent chacune au moins un processeur, tel qu’un microcontrôleur programmable ou un microprocesseur, qui est couplé à une mémoire informatique qui comporte des instructions exécutables et/ou un code logiciel prévu pour mettre en œuvre un procédé de commande du robot lorsque ces instructions sont exécutées par le processeur. L’unité centrale 5 est apte à opérer les fonctions des modules 42, 44 et 46. L’unité centrale 5 communique à l’unité auxiliaire 7 la consigne composite u et la matrice de comportement Y par le bus de données 18. L’unité auxiliaire 7 est apte à opérer les fonctions du module 48 c’est à dire du régulateur d’impédance articulaire qui calcule les consignes d’effort articulaire et les transmet au module de régulation d’axe 12 qui met en œuvre des boucles de régulation d’effort et de vitesse 61 et une boucle de régulation de courant 62. L’unité auxiliaire 7 est également apte à opérer les fonctions du module de régulation d’axe 12. L’unité auxiliaire 7 est connectée aux 6 unités de puissance 15 et leur transmet ainsi des consignes de pilotage d’unité de puissance. Pour la clarté de la , seuls deux des six unités de puissance sont représentées. L’asservissement en effort articulaire peut être implémenté par le module de régulation d’axe 12 suivant des stratégies de régulation courantes bien connues, qui ne sont pas décrites plus en détail, l’essentiel étant que les efforts exercés sur chacune des articulations du robot respectent bien la consigne en effort articulaire calculée. En pratique, on peut avantageusement utiliser un asservissement en effort du robot basé sur un asservissement en courant de chacun des actionneurs M1 à M6, cet asservissement en courant étant réalisé par la boucle de courant 62, pour chaque actionneur M1 à M6, en fonction de l’information de position angulaire qui est issue du capteur C1 à C6 associé à cet actionneur M1 à M6 et de la mesure des courants des unités de puissance 15. Dans de nombreux cas, l’asservissement en effort réalisé par la boucle d’effort et de vitesse 61 peut également comporter une correction visant à compenser la gravité du bras de robot et les frottements, la correction des frottements étant calculée pour chaque articulation à partir de la vitesse de rotation déterminée pour cette articulation, la gravité étant calculée pour chaque articulation à partir de la position angulaire et du modèle dynamique du bras de robot 4. Dans certains cas, lorsque le capteur d’efforts multiaxes 20 est utilisé, une correction peut être apportée à la stratégie d’asservissement en fonction des forces et/ou des couples mesurés par le capteur d’efforts multiaxes 20. Différentes stratégies de correction peuvent être mises en œuvre selon qu’un capteur d’efforts multiaxes est monté à l’extrémité du bras de robot, ou selon que plusieurs capteurs d’efforts sont associés aux articulations respectives du bras de robot 4. Lorsqu’un capteur d’efforts multiaxes 20 est placé entre l’extrémité du bras de robot et l’effecteur 6, le module de calcul 10 comporte alors un compensateur de gravité 43 qui calcule le poids de l’effecteur . Le poids de l’effecteur est un vecteur représentant le torseur d’effort du poids de l’effecteur 6, exprimé dans le repère du capteur d’effort multiaxes 20. Il est calculé à partir des paramètres de l’outil porté par le robot (masse, position du centre de gravité), du modèle géométrique du bras du robot et des positions articulaires mesurées . Le poids de l’effecteur est soustrait à la mesure du capteur d’effort multiaxes 20 au niveau des boucles d’effort et de vitesse 61 pour ne pas prendre en compte le poids de l’effecteur dans la commande, mais uniquement les efforts exercés sur l’effecteur 6. Le module de calcul 10 comporte également un convertisseur cartésien articulaire 47 qui calcule la matrice de conversion . La matrice de conversion articulaire est la matrice qui permet de convertir les efforts extérieurs multidimensionnels qui sont exprimés dans l’espace cartésien en données exprimées dans l’espace articulaire. , où est la matrice jacobienne du robot reliant la vitesse cartésienne du centre du capteur d’effort multiaxes 20 aux vitesses articulaires du robot 2 et est une matrice qui permet de transformer les mesures du capteur d’effort multiaxes 20, initialement exprimées dans les coordonnées du capteur d’effort, pour les exprimer dans le système de coordonnées de la base du robot. et sont calculés à partir des positions articulaires . La matrice de conversion articulaire et le poids de l’effecteur sont transmis aux boucles d’effort et de vitesse 61. Dans le mode de réalisation choisi et comme illustré à la figure 4, La matrice de conversion articulaire et le poids de l’effecteur sont transmis aux boucles d’effort et de vitesse 61 par l’intermédiaire d’une trame de données 30 qui est issue de l’unité centrale 5 qui implémente le compensateur de gravité 43 et le convertisseur cartésien articulaire 47. Les boucles d’effort et de vitesse 61 sont implémentées par l’unité auxiliaire 7. Dans le calcul des consignes de pilotage des boucles de courants , les boucles d’effort et de vitesse 61 soustraient le poids de l’effecteur aux efforts extérieurs multidimensionnels pour ne pas tenir compte du poids de l’effecteur et appliquent matrice de conversion articulaire au résultat pour le convertir dans le domaine articulaire, comme donné dans la formule suivante : En alternative, les boucles d’effort et de vitesse 61 peuvent d’abord appliquer la matrice de conversion articulaire au poids de l’effecteur et aux efforts extérieurs multidimensionnels puis effectuer la soustraction. Selon une implémentation avantageuse illustrée à la figure 5, la correction des consignes d’effort articulaire , en présence d’un capteur d’effort 20, peut être réalisée en associant une compensation de la gravité avec deux correcteurs d’effort et de vitesse, respectivement notés et qui corrigent les consignes d’effort articulaires fournies au bras de robot 4. Par exemple, le correcteur d’effort est un régulateur de type intégral, et le correcteur de vitesse est de type proportionnel. Dans le mode de réalisation de l’invention choisi, le compensateur de gravité 43 et le convertisseur cartésien articulaire 47 sont implémentés dans l’unité centrale 5. La matrice de conversion articulaire et le poids de l’effecteur sont transmis par le bus de liaison 18 aux boucles d’effort et de vitesse 61 qui sont implémentés dans l’unité auxiliaire 7. Cette implémentation est avantageuse car elle permet que tous les calculs implémentés dans l’unité auxiliaire 7 sont réalisés en coordonnées articulaires. Ces calculs sont relativement simples (contrairement aux calculs faits dans les modules 43, 47, et 46). Cela permet au régulateur d’impédance 48 et aux boucles d’effort et de vitesse 61 d’être calculés à une fréquence plus importante. Par ailleurs, beaucoup de solutions connues nécessitent de remonter l’effort mesuré par le capteur d’effort 20 vers l’unité centrale pour que celle-ci calcule des consignes de position, de vitesse ou d’effort, qui sont destinés au contrôle des actionneurs, occasionnant ainsi plus de retard dans la boucle de régulation d’effort, ce qui se traduit par une précision moindre et par de moindres performances lorsque le robot doit être guidé manuellement au moins en partie. Comme illustré sur la figure 3, le régulateur d’impédance articulaire 48 comprend un module de résolution 70 et un module d’intégration 64. Le module de résolution 70 est configuré pour calculer les consignes en effort articulaire et pour transmettre les consignes en effort articulaire calculées au module de régulation d’axe 12. Ce calcul est réalisé en fonction de la consigne composite u précédemment calculée, de la matrice de comportement Y précédemment calculée, des positions articulaires mesurées, des vitesses articulaires dérivées à partir des positions articulaires mesurées et de l’état interne précédemment calculé. En particulier, la consigne d’effort articulaire servant à piloter le module de régulation d’axe 12 est calculée à partir d’une fonction de régulation qui régule l’écart entre la position articulaire et l’état interne (précédemment défini en référence au régulateur d’impédance articulaire 48). Le module de résolution 70 calcule la dérivée de l’état interne en fonction de la consigne composite u précédemment calculée, de la matrice de comportement Y précédemment calculée, de la position articulaire , de la vitesses articulaires et de l’état interne précédemment calculé. Le module d’intégration 64 détermine l’état interne par intégration de la dérivée temporelle de l’état interne. Par exemple, le module de résolution 70 utilise la valeur de la dérivée temporelle déjà connue à partir d’un cycle de calcul précédent, et stockée en mémoire. De préférence, la fonction de régulation est un régulateur proportionnel, dérivée et intégral (régulateur PID). Avantageusement, la consigne d’effort articulaire et la dérivée temporelle de l’état interne sont des solutions du système d’équations différentielles suivant : où est la fonction correspondant audit état interne, est la dérivée temporelle de l’état interne , est la consigne d’effort articulaire, ici présentées sous forme de vecteur, Y est la matrice de comportement et u est ladite consigne d’effort ou de position. Dans ces équations, Kp, Ki, et Kd sont des matrices de gains. En pratique, les gains Kp, Ki, et Kd sont les gains utilisés pour paramétrer le régulateur PID. Par exemple, Kp, Ki, et Kd correspondent respectivement aux gains proportionnel, intégral et dérivé. Kp et Ki peuvent éventuellement être des matrices nulles. Par exemple, dans ce système, la seconde équation réalise un asservissement de type proportionnel intégral dérivé (PID) de la position articulaire du robot sur la position . La première équation définit l’évolution de la position virtuelle représentée par l’état interne . Selon un premier exemple d’implémentation, le contrôle d’impédance articulaire peut être réalisé par un régulateur satisfaisant au système d’équations suivant : où est une variable intermédiaire utilisée pour calculer la matrice de comportement Y, cette variable intermédiaire étant calculée à partir de l’état interne , de la position articulaire et de la vitesse articulaire . La première implémentation du régulateur d’impédance est particulièrement avantageuse car la matrice de comportement Y est symétrique, de sorte que seule une partie des coefficients a besoin d’être transmise sur le bus de données 18, ce qui réduit encore plus le temps de communication. Selon un deuxième exemple d’implémentation, le contrôle d’impédance articulaire peut être réalisé par un régulateur satisfaisant au système d’équations suivant : où est la variable intermédiaire précédemment décrite, et P est une matrice de comportement analogue à la matrice de comportement Y, la matrice P étant définie à partir de la matrice de comportement Y au moyen de la formule suivante : dans laquelle « I » représente la matrice identité. Dans les deux implémentations du régulateur d’impédance, on peut utiliser d’autres types d’asservissement qu’un asservissement de type PID. Par exemple, on peut également définir la variable intermédiaire de la manière suivante, qui correspond à l’application d’un filtre numérique e f sur l’écart entre la position articulaire et l’état interne : dans lequel le filtre est donné par la formule suivante : où F(p) représente une transformation de Laplace et « p » est la variable de Laplace. On décrit maintenant des exemples de fonctionnement de cette régulation d’impédance articulaire dans différents modes de fonctionnement du robot 2. Dans un premier mode de fonctionnement, le robot 2 fonctionne en pilotage en position. Le bras de robot 4 est asservi en position et doit suivre la trajectoire articulaire générée (par exemple générée par le module 44) indépendamment des efforts extérieurs exercés sur le bras de robot 4. Par exemple, la trajectoire est définie par une position articulaire dépendante du temps et sa dérivée . Dans ce cas, le gestionnaire d’impédance 48 définit une matrice de comportement Y nulle, c’est-à-dire que les coefficients de la matrice de comportement Y sont tous nuls. Alternativement, cela correspond à définir P égale à la matrice identité dans la seconde implémentation du régulateur d’impédance décrite ci-dessus. Le gestionnaire d’impédance 48 impose également que la consigne composite u soit de la forme suivante : où le paramètre T est une constante de temps qui présente une valeur strictement positive. Dans ce cas, le système d’équations différentielles auquel satisfait le système de commande peut se réécrire de la façon suivante : Ainsi, la position angulaire est asservie sur la position virtuelle et va suivre la trajectoire définie par la position articulaire après un régime transitoire dont la durée est déterminée par la constante de temps T, et avec une précision qui dépendra des valeurs choisies pour les gains , et . Dans un deuxième mode de fonctionnement, le robot 2 fonctionne en pilotage manuel. Par exemple, on peut vouloir piloter les efforts articulaires du robot pour qu’ils suivent une consigne articulaire prédéterminée fournie par le générateur de trajectoire 44. Si la consigne est spécifiée par un torseur d’effort appliqué en un point du robot, alors la consigne articulaire équivalente est donnée par la formule suivante : où J désigne la matrice jacobienne du robot correspondant au point d’application de l’effort et l’exposant « T » désigne la transposée de la matrice. Un tel mode de fonctionnement est par exemple utile lorsque l’on souhaite laisser le bras de robot libre pour permettre à un utilisateur de piloter le bras de robot entièrement par un simple déplacement manuel. Dans ce cas, le gestionnaire d’impédance 46 définit la matrice de comportement (ou, de manière équivalente, , pour la seconde implémentation du régulateur d’impédance) et la consigne composite . Le système d’équations différentielles auquel satisfait le système de commande peut se réécrire de la façon suivante : En pratique, la première équation implique que l’écart entre la position angulaire virtuelle et la position angulaire converge vers zéro lorsque la consigne articulaire prédéterminée est constante. En pratique, les gains du régulateur PID ont des valeurs suffisamment élevées pour se permettre d’approximer que l’état interne soit égale à la position angulaire réelle même quand la consigne articulaire prédéterminée n’est pas constante. En d’autres termes, l’état interne suit la position courante du bras de robot 4. La seconde équation montre que la consigne d’effort articulaire transmise au bras de robot 4 correspond bien à la consigne articulaire prédéterminée , indépendamment de la position du bras de robot 4. Dans un troisième mode de fonctionnement, le robot 2 fonctionne dans un mode hybride combinant à la fois un pilotage en effort et un pilotage en position. Le bras de robot 4 doit suivre une trajectoire prédéfinie, tout en appliquant des efforts contrôlés dans certaines directions. Un tel mode de fonctionnement est par exemple utile lorsque l’on souhaite pouvoir guider le bras de robot à la main (« handguiding » en anglais) tout en suivant une trajectoire prédéfinie. Cela permet notamment de bloquer certains degrés de libertés du bras de robot 4, par exemple : en autorisant uniquement un guidage manuel du bras de robot 4 en translation ou en rotation, ou en bloquant l’extrémité du bras de robot 4 à une position fixe tout en libérant l’articulation des segments du bras de robot, ou alternativement en laissant l’extrémité du bras de robot 4 libre mais en bloquant tout ou partie des articulations du bras de robot 4. Par exemple, pour effectuer un tel blocage, tout ou partie des actionneurs M1 à M6 exercent un effort qui s’oppose à l’effort manuel exercé par l’utilisateur. Un tel mode de fonctionnement peut aussi être utile lorsque le robot est utilisé dans un procédé industriel de façonnage d’une pièce mécanique à l’aide d’un effecteur 6 porté par le bras de robot 4, au cours duquel l’effecteur 6 entre en contact direct avec la pièce mécanique, par exemple lors d’opérations de ponçage, ou d’ébavurage, ou d’assemblage, ou de suivi de contour de la pièce, et bien d’autres exemples encore. Un tel mode de fonctionnement peut enfin être utile lorsque l’on pilote le bras de robot à distance avec un retour d’effort, ou encore lorsque plusieurs robots industriels doivent collaborer pour manipuler un même objet, par exemple lors d’un procédé de fabrication d’une pièce mécanique. Un premier exemple du mode de fonctionnement hybride peut concerner un fonctionnement avec une contrainte de type « rotule », dans lequel on souhaite que l’extrémité du robot reste en un point donné, l’orientation étant libre. Par ailleurs, on veut pouvoir déplacer librement l’orientation de l’extrémité du robot, et donc les moments autour du point de rotation doivent rester nuls. Dans ce cas, le gestionnaire d’impédance 46 calcule la consigne composite u et la matrice de comportement Y de la façon suivante : ( pour la deuxième implémentation) où Jmv désigne la matrice jacobienne du robot calculée à partir de l’état interne et est la position cartésienne correspondant à l’état interne . Un deuxième exemple du mode de fonctionnement hybride est maintenant décrit. Dans ce mode de fonctionnement, le robot suit une trajectoire dans un plan (x,y), avec une orientation fixe. Dans la direction z orthogonale au plan (x,y), le robot applique un effort variable en fonction du temps. Ce mode de fonctionnement hybride peut être utile, par exemple, pour réaliser le ponçage d’une surface, par exemple dans un fonctionnement entièrement automatique. Dans ce deuxième mode de fonctionnement hybride, le générateur de trajectoire 44 génère les consignes et , qui définissent la trajectoire souhaitée dans le plan (x,y), ainsi que la valeur de l’effort souhaité dans la direction z, et les transmet au gestionnaire d’impédance 46. Le gestionnaire d’impédance 46 calcule la matrice de comportement Y et la consigne composite u de la façon suivante : (ou pour la deuxième implémentation) où J mv désigne la matrice jacobienne du robot calculée à partir de l’état interne , et sont les coordonnées dans le plan (x,y) de la position cartésienne de l’organe terminal correspondant à l’état interne , et , , représentent les coordonnées angulaires de l’organe terminal, correspondant à l’état interne . Dans un quatrième mode de fonctionnement de type « commande en impédance », le robot doit se comporter comme s’il était relié à un point suivant une trajectoire au moyen d’un ressort et d’un amortissement . Le vecteur contient les coordonnées cartésiennes (position et orientation) de la trajectoire. La vitesse associée est notée . Dans ce cas, le gestionnaire d’impédance 46 définit la matrice de comportement Y et la consigne composite u de la manière suivante : dans lequel est un vecteur des coordonnées cartésiennes (position et orientation) calculé à partir de l’état interne et du modèle géométrique du robot. Par exemple, les caractéristiques du ressort et de l’amortissement sont ici données sous forme de matrices. Pour tous les modes de fonctionnement décrits, le gestionnaire d’impédance 46 génère la matrice de comportement Y et la consigne composite u suivant les commandes reçues du Module d’exécution de programme applicatif 42 et du générateur de trajectoire 44. De retour aux figures 1, 2 et 3, on décrit maintenant des aspects de l’implémentation de la régulation d’impédance par le système de commande 8. Comme expliqué précédemment, le module d’exécution de programme applicatif 42, le générateur de trajectoire 44 et le gestionnaire d’impédance 46 sont avantageusement implémentés par l’unité centrale 5. Le régulateur d’impédance articulaire 48 et le module de régulation d’axe 12 sont implémentés par l’unité auxiliaire 7. Les calculs nécessaires pour mettre en œuvre la régulation d’impédance sont réalisés périodiquement au cours du temps. De façon particulièrement avantageuse, l’unité centrale 5 est configurée pour recalculer périodiquement la consigne composite u et la matrice de comportement Y avec une première fréquence de calcul, notée F1. Les consignes d’effort articulaire sont recalculées périodiquement avec une deuxième fréquence de calcul, notée F2, qui est supérieure à la première fréquence F1. Par exemple, la deuxième fréquence F2 est entre deux et vingt fois plus élevée que la première fréquence F1. De préférence, la deuxième fréquence F2 est entre cinq et dix fois plus élevée que la première fréquence F1. De préférence encore, la deuxième fréquence F2 est huit fois plus élevée que la première fréquence F1. Cela est particulièrement avantageux lorsque le régulateur d’impédance articulaire 48 est implémenté par l’unité auxiliaire 7. En effet, le régulateur d’impédance articulaire n’a besoin de mettre en œuvre qu’un nombre relativement limité d’opérations arithmétiques simples. Il peut donc fonctionner à haute fréquence. Cela permet d’avoir des gains Kp, Ki et Kd élevés, ce qui permet d’obtenir une bonne raideur et une bonne précision dans les directions commandées en position. Les calculs géométriques plus complexes sont implémentés dans l’unité centrale 5. Par ailleurs, implémenter la régulation d’impédance dans l’unité auxiliaire 7 séparément de l’unité centrale 5 procure un gain de performance car un seul processeur pilote alors les différents actionneurs M1 à M6. En étant au plus près des capteurs et des actionneurs, cela permet d’avoir des retards réduits dans les asservissements, et donc d’obtenir au final des performances supérieures. Implémenter la régulation d’impédance et le module de régulation d’axe 12 dans un seul processeur de l’unité auxiliaire 7 augmente les performances car il n’y a pas de retard de communication. Selon un exemple donné à des fins d’illustration, les consignes composites u et les matrices de comportement Y sont calculées par l’unité centrale 5 et transférées à l’unité auxiliaire 7 toutes les 1 milliseconde, soit avec une fréquence de 1000Hz. Chacune des composantes de ces commandes sont ensuite interpolées linéairement pour obtenir des valeurs pour chacun des cycles de calcul réalisés avec la deuxième fréquence F2, par exemple avec une fréquence de 8kHz. Plus généralement, un autre aspect avantageux de la mise en œuvre de l’invention réside dans le fait que la boucle d’asservissement et l’intégration de l’état interne q mv sont toutes les deux réalisées dans les coordonnées articulaires. Cela évite d’avoir à mettre en œuvre des transformations géométriques coûteuses en ressources de de calcul. Réduire le temps nécessaire pour effectuer les calculs liés à la régulation d’impédance lors de chaque cycle de calcul permet là aussi d’avoir des gains Kp, Ki, Kd plus élevés, et donc d’obtenir une meilleure précision, notamment dans les directions commandées en position. Le procédé de régulation d’impédance permet de fonctionner efficacement quel que soit le mode de fonctionnement choisi, que le robot fonctionne en mode de pilotage en effort, ou en mode de pilotage en position, ou dans le mode hybride ou en mode de pilotage en impédance. Les valeurs des coefficients de gain Kp, Ki et Kd peuvent être réglées une fois pour toutes, indépendamment du mode de fonctionnement. De façon particulièrement avantageuse, l’unité centrale 5 est configurée pour recalculer périodiquement la matrice de conversion articulaire et le poids de l’effecteur avec une troisième fréquence de calcul, notée F3 et inférieure à la deuxième fréquence F2. Par exemple, la deuxième fréquence F2 est entre deux et vingt fois plus élevée que la troisième fréquence F3. De préférence, la deuxième fréquence F2 est entre cinq et dix fois plus élevée que la troisième fréquence F3. De préférence encore, la deuxième fréquence F2 est huit fois plus élevée que la troisième fréquence F3. En choisissant, la troisième fréquence F3 égale à la première fréquence F1, l’unité centrale 5 peut mettre la matrice de conversion articulaire , le poids de l’effecteur , la matrice de comportement Y et la consigne composite u dans une même trame de données 30. La matrice de conversion articulaire et le poids de l’effecteur peuvent ensuite être interpolés linéairement pour obtenir des valeurs pour chacun des cycles de calcul des consignes de pilotage des boucles de courant , Grâce à l’invention, le guidage du robot est amélioré lorsque le robot doit être guidé manuellement au moins partiellement. Certains modes de réalisation peuvent être mis en œuvre indépendamment des autres modes de réalisation. La représente un exemple d’implémentation d’un procédé de fonctionnement conforme à l’invention. En variante, les étapes pourraient être exécutées dans un ordre différent. Certaines étapes pourraient être omises. L’exemple décrit ne fait pas obstacle à ce que, dans d’autres modes de réalisation, d’autres étapes soient mises en œuvre conjointement et/ou séquentiellement avec les étapes décrites. Le procédé débute à l’étape S100 par exemple avec le lancement d’un programme de pilotage du robot, notamment dans un mode de guidage manuel ou hybride. Au cours de cette étape, selon le mode de fonctionnement choisi, une trajectoire peut être acquise ou définie par le système de commande 8. En parallèle, un utilisateur peut, lors d’une étape S102, manipuler le bras de robot 4 pour imposer manuellement un effort ou un déplacement. Lors d’une étape S104, le système de commande 8 calcule dans le gestionnaire d’impédance 46 implémenté par l’unité centrale 5 la consigne composite u définissant des efforts et des vitesses articulaires, en fonction de la trajectoire cible et du mode de fonctionnement. Lors d’une étape S106, le système de commande 8 calcule dans le gestionnaire d’impédance 46 implémenté par l’unité centrale 5 la matrice de comportement Y en fonction du mode de fonctionnement. Lors d’une étape S108, le système de commande 8 calcule dans le régulateur d’impédance 48 implémenté par l’unité auxiliaire 7 la consigne d’effort articulaire et la dérivée temporelle dudit état interne , ce calcul étant réalisé en fonction de ladite consigne composite u précédemment calculée, de la matrice de comportement Y, des positions articulaires mesurées, de vitesses articulaires dérivées à partir des positions articulaires mesurées et de l’état interne. Comme exprimé précédemment, la consigne d’effort articulaire de pilotage des modules de régulation d’axe 12 est calculée à partir d’une fonction de régulation qui régule l’écart entre la position articulaire et l’état interne , l’état interne étant déterminé par intégration de ladite dérivée temporelle de l’état interne . A l’étape S110, le système de commande 8 calcule les consignes de pilotage des modules de puissance 15 en fonction de la consigne d’effort articulaire . Avantageusement, lors du calcul des consignes de pilotage de module de puissance 15, il est tenu compte d’un effort extérieur appliqué au robot, par exemple par un utilisateur exerçant manuellement un effort sur le bras de robot 4. L’invention a été décrite avec un bras de robot articulé suivant des rotations. Elle est applicable à un robot comportant des membres en translation l’un par rapport à l’autre. Les modes de réalisation et les variantes envisagés ci-dessus peuvent être combinés entre eux pour créer de nouveaux modes de réalisation. Procédé de commande d’un robot industriel (2), le robot comportant : un bras de robot multiaxes (4) comprenant au moins deux actionneurs électriques (M1, …, M6) chacun capable de déplacer une partie du bras de robot par rapport à une autre partie du bras de robot autour ou le long d’un axe de mouvement, chaque actionneur électrique étant associé à un capteur (C1, …, C6) configuré pour mesurer une position articulaire ( ) de l’actionneur correspondant, un effecteur (6) placé à l’extrémité du bras de robot, un système de commande (8) de robot comportant une unité centrale (5), une unité auxiliaire (7) configurée pour piloter des unités de puissance (15), des unités de puissance (15) aptes à délivrer un courant électrique approprié aux actionneurs électriques (M1, …, M6), une interface d’acquisition de données (14) configurée pour recevoir et transmettre les mesures des capteurs (C1, …, C6) associés aux actionneurs électriques (M1, …, M6) une liaison de communication connectant l’unité centrale (5), l’unité auxiliaire (7) et l’interface d’acquisition de données (14), la liaison de communication comportant un bus de données (18), dans lequel le procédé de commande comporte des étapes consistant à : calculer (S104) dans des modules implémentés par l’unité centrale (5) une consigne composite (u) dépendant du temps et définissant des efforts et des vitesses articulaires, en fonction d’une trajectoire cible et d’un mode de fonctionnement, calculer (S106) dans des modules implémentés par l’unité centrale (5) une matrice de comportement (Y) qui décrit un comportement désiré du bras de robot, en définissant des directions dans lesquelles la consigne composite (u) calculée doit s’appliquer, calculer (S108) dans un module implémenté par l’unité auxiliaire (7) une consigne d’effort articulaire ( ) de pilotage du module de régulation d’axe en fonction de ladite consigne composite (u) précédemment calculée, et de ladite matrice de comportement (Y), calculer (S110) dans un module de régulation d’axe (12) implémenté par l’unité auxiliaire (7) les consignes de pilotage des modules de puissance (15) en fonction de la consigne d’effort articulaire ( ). Procédé de commande selon la revendication 1, dans lequel le calcul de la consigne d’effort articulaire ( ) comporte le calcul de la dérivée temporelle ( ) d’un état interne ( ) homogène à une position articulaire, ce calcul étant réalisé en fonction de ladite consigne composite (u) précédemment calculée, de ladite matrice de comportement (Y), des positions articulaires ( ) mesurées, de vitesses articulaires ( ) dérivées à partir des positions articulaires mesurées ( ), et de l’état interne ( ). Procédé de commande selon la revendication 2, dans lequel la consigne d’effort articulaire ( ) de pilotage du module de régulation d’axe est calculée à partir d’une fonction de régulation qui régule l’écart entre la position articulaire ( ) et l’état interne ( ), l’état interne étant déterminé par intégration de ladite dérivée temporelle ( ) de l’état interne. Procédé de commande selon l’une quelconque des revendications précédentes, dans lequel l’unité centrale recalcule la consigne composite (u) et la matrice de comportement (Y) avec une première fréquence (F1) et l’unité auxiliaire (7) recalcule les consignes d’effort articulaire ( ) de pilotage du module de régulation d’axe (12) avec une deuxième fréquence (F2) supérieure à la première fréquence. Procédé de commande selon la revendication 4, dans lequel la deuxième fréquence (F2) est entre deux et vingt fois plus élevée que la première fréquence (F1), de préférence entre cinq et dix fois plus élevée que la première fréquence (F1), de préférence encore huit fois plus élevée que la première fréquence (F1). Procédé de commande selon l’une quelconque des revendications précédentes, dans lequel l’unité auxiliaire (7) calcule les consignes d’effort articulaire ( ) de pilotage du module de régulation d’axe (12) avec une fréquence (F2) est choisie entre 500Hz et 20kHz, de préférence entre 5KHz et 12KHz, de préférence égale à 8KHz. Procédé de commande selon l’une quelconque des revendications 1 à 6, dans lequel le module de régulation d’axe (12) prend en compte des efforts mesurés ( ) par un capteur d’effort (20) lors du calcul des consignes de pilotage des modules de puissance (15) en fonction de la consigne d’effort articulaire ( ). Procédé de commande selon la revendication 7 dans lequel l’unité centrale (5) implémente un compensateur de gravité (43) qui calcule le poids de l’effecteur ( ) et un convertisseur cartésien articulaire qui calcule la matrice de conversion ( ) à partir des positions articulaires ( ) et transmet le poids de l’effecteur ( ) et la matrice de conversion ( ) au module de régulation d’axe (12) pour la prise en compte des efforts mesurés ( ) par un capteur d’effort (20) monté en extrémité du bras de robot (4). Procédé de commande selon la revendication 8 et une des revendications 4 et 5 dans lequel l’unité centrale (5) implémente un compensateur de gravité (43) qui calcule le poids de l’effecteur ( ) et un convertisseur cartésien articulaire qui calcule la matrice de conversion ( ) à partir des positions articulaires ( ) et transmet à la première fréquence (F1) le poids de l’effecteur ( ) et la matrice de conversion ( ) au module de régulation d’axe (12) pour la prise en compte des efforts mesurés ( ) par un capteur d’effort (20) monté en extrémité du bras de robot (4) Procédé de commande selon l’une quelconque des revendications précédentes, dans lequel la liaison de communication est configurée de sorte à ce que l’unité centrale (10) envoie de façon cyclique des trames de communication sur le bus de données (18), les modules de régulation d’axe et le capteur d’effort étant configurés pour lire ou ajouter des données dans la trame de données lors du passage de celle-ci, la trame de données étant remontée à l’unité centrale en fin de chaque cycle de communication Robot industriel apte à mettre en œuvre un procédé de commande selon une des revendications 1 à 10.