Brevet FR2657807A1 — publié le 19910809

La présente invention concerne un robot muni d'une pluralité de moyens moteurs, ainsi qu'unie unité de rotation modulaire pour robot. La complexité croissante des tâches assignées à des robots et des situations auxquelles ils sont appelés à réagir nécessite des unités centrales informatiques de plus en plus puissantes devant gérer à distance un grand nombre de capteurs et d'actionneurs. Plus particulièrement, l'unité centrale doit non seulement prendre en compte ensemble des informations qui lui sont délivrées par les différents capteurs et en déduire une stratégie, mais encore assurer en temps réel le suivi de cette stratégie au niveau des capteurs et des actionneurs. Dans le cas d'un robot multîcapteur, une autre difficulté réside dans le rapatriement vers l'unité centrale des informations fournies par les capteurs, soit sur 1T état du robot lui-même, soit sur son environnement. Les problèmes de connectique qui en résultent sont souvent difficiles à résoudre. Enfin les robots existants sont généralement dédiés à un type de tâche bien précis, de sorte quVil nTest pas possible de les modifier simplement pour les affecter à un autre type de tâche. La présente invention vise à pallier ces inconvénients en fournissant un robot pouvant être réalisé de façon modulaire, dans lequel la puissance de calcul est répartie au niveau des différents modules, et dans lequel les communications entre les différents modules sont assurées de façon optimale. A cet effet, l'invention a tout d'sabord pour objet un robot muni d'une pluralité de moyens moteurs, caractérisé par le fait qutau moins certains de ces moyens moteurs sont chacun associé localement à un processeur, les différents processeurs étant reliés entre eux par un réseau de communication, et à des moyens de commande reliés au processeur pour commander les moyens moteurs à partir des messages circulant sur le réseau et décodés par le processeur. Dans un mode de réalisation particulier de l'invention, chaque processeur est agencé pour enregistrer tous les messages circulant sur le réseau, un message comprenant l'identification des processeurs destinataires, pour déterminer stil est lui-même destinataire, et pour ne tenir compte du message que dans ce cas. Les messages circulant sur le réseau peuvent en outre comprendre l'identification du processeur émetteur du message suivant. Ils peuvent également comprendre un code de commande pour au moins un des moyens moteurs et une zone paramètre éventuellement nécessaire à la commande. Le robot selon l'invention peut en outre comprendre une unité centrale agencée pour interroger successivement sur le réseau, à intervalles de temps réguliers, l'ensemble des processeurs, ces derniers étant agencés pour émettre en réponse sur le réseau un ensemble d'informations d'état sur les moyens moteurs auxquels ils sont associés. Plus particulièrement, les moyens moteurs peuvent être agencés soit pour provoquer une rotation entre une partie du robot et une autre, soit pour configurer un capteur. On conçoit qutune telle architecture multiprocesseur soit susceptible d'alléger considérablement les échanges d'informations au sein du robot ainsi que les tâches de l'unité centrale. Le suivi des moyens moteurs est effectué localement par les moyens de commande qui leur sont associés, seules les informations nécessaires à la gestion d'ensemble du robot transitant sur le réseau en direction de r unité centrale. Inversement, les moyens moteurs sont commandés à partir des messages circulant sur le réseau et décodés par le processeur, ces messages pouvant provenir soit d'un autre processeur du réseau, soit de l'unité centrale. Par ailleurs, l'architecture en réseau donne une grande souplesse d'utilisation, un robot selon l'invention pouvant aisément être modifié et reconfiguré en fonction des tâches qui lui sont assignées. Sous l'aspect réseau, l'invention se présente sous la forme d'un ensemble de processeurs interlocuteurs, chaque interlocuteur étant en permanence à l'écoute de celui qui émet sur le réseau. Seuls, les processeurs destinataires du message en tiennent compte. En outre, un processeur ne peut émettre sur le réseau que si le dernier message l'a désigné comme futur émetteur, ce qui confère au réseau un caractère déterministe indispensable au contrôle en temps réel d'une machine complexe. Dans le cas où seule l'unité centrale est susceptible de poser des questions ou de donner des ordres, elle se désignera elle-même comme futur émetteur dans le cas d'un ordre, et désignera comme futur émetteur le destinataire de la question dans ce dernier cas. Les moyens moteurs peuvent être destinés soit à provoquer des mouvements du robot lui-même, par exemple des mouvements de rotation d'une partie par rapport à une autre, soit à configurer des capteurs, par exemple en provoquant la rotation d'une bague de réglage d'une caméra vidéo. L'invention a également pour objet une unité de rotation modulaire pour robot, caractérisée par le fait qu'elle comprend un organe amont, un organe aval monté à rotation sur l'organe amont, des moyens moteurs pour faire pivoter l'organe aval par rapport à l'organe amont, un processeur, un premier connecteur monté sur l'organe amont pour connecter le processeur à une partie amont d'un réseau de communication, un deuxième connecteur monté sur l'organe aval pour connecter la partie aval du réseau de communication à ladite partie amont, des moyens de connexion pour relier le premier connecteur au deuxième connecteur, et des moyens de commande reliés au processeur pour commander les moyens moteurs à partir de messages circulant sur le réseau et décodés par le processeur. Cette unité peut comprendre en outre un capteur ou un actionneur monté sur son organe aval, et des moyens de commande reliés au processeur pour commander le capteur ou l'actionneur à partir de messages circulant sur le réseau et décodés par le processeur. Dans un mode de réalisation particulier, l'unité selon l'invention comprend un troisième connecteur monté sur l'organe amont et un quatrième connecteur monté sur l'organe aval, lesdits connecteurs étant reliés par lesdits moyens de connexion pour transmettre en amont de l'unité des informations provenant d'un capteur monté sur ou en aval de l'unité. Bien entendu, les premier et troisième connecteur peuvent être groupés en un seul, de même que les deuxième et quatrième. Plus particulièrement, les moyens de commande des moyens moteurs peuvent comprendre un générateur de profil apte à générer une succession de positions désirées à partir des ordres fournis par le réseau, et une boucle de régulation, par exemple un filtre proportionnelintégral-différentiel numérique programmable, agencée pour comparer chaque position désirée avec la position effective de organe aval par rapport à l'organe amont. On décrira maintenant à titre d'exemple non limitatif un mode de réalisation particulier de l'invention en référence aux dessins schématiques annexés dans lesquels - la figure 1 est une vue d'ensemble en perspective d'un robot selon l'invention, - la figure 2 est un schéma de son architecture, - la figure 3 est une vue de dessus d'une unité de rotation, - la figure 4 est une vue en coupe selon la ligne IV-IV de la figure 3, - la figure 5 est un schéma-bloc illustrant deux unités de rotation disposées en série, - la figure 6 illustre l'asservissement d'une unité de rotation, - la figure 7 représente un profil de vitesse réalisable à l'aide de cet asservissement, - la figure 8 illustre le protocole de communication du réseau et, - les figures 9-1 à 9-8 représentent le format de la trame utilisée sur ce réseau. L'appareil de la figure 1 est essentiellement un support de capteurs et est composé d'un socle 1, d'un tube central 2 et d'un ensemble d'unités de rotation portant les capteurs à partir du tube 2. En remontant le tube central 2, on trouve tout d'abord deux capteurs monochromes 3 et 3' regroupant chacun une caméra CCD et une machine de traitement d'images programmable. Chaque caméra est munie d'un objectif à trois fonctions motorisées et asservies : diaphragme, zoom et mise au point. Chaque capteur 3, 3' est supporté par une unité de rotation 4, 4' d'axe horizontal pour orienter le capteur en site. Chaque unité 4, 4' est à son tour supportée par une unité de rotation 5, 5' permettant d'orienter le capteur en azimut. Enfin, les unités 5, 5' sont déportées du tube central 2 à l'aide d'unités de rotation 6, 6' coaxiales au tube. Ces unités 6,6t donnent de nouveaux degrés de liberté dans l'utilisation des capteurs 3, 3' en paire stéréo. En mode commun, ils contrôlent l'azimut de la paire et en mode différentiel, ils agissent sur l'écartement des caméras. Si ces unités 6, 6' d' azimut central sont compensées par les unités 5, 5' d'azimut des capteurs, ceux-ci conservent leur orientation. Il est également possible de faire converger les axes de visée dans le plan horizontal. En outre, dans le fonctionnement à deux capteurs indépendants, les unités 6, 6' peuvent modifier la position relative des deux capteurs et éviter ainsi qu'un capteur ne gêne l'autre. Au-dessus des capteurs 3, 3', une caméra CCD couleur 7 est montée sur une unité de rotation 8 à axe horizontal pour l'orienter en site, cette unité 8 étant elle-même montée sur une unité 9 coaxiale au tube 2 pour 11 orienter en azimut. Ensuite, une autre unité de rotation 10 coaxiale au tube 2 porte un ensemble il de télémètrie ultrasonore. Cet ensemble comporte six sonars 12 ayant par exemple un champ de 300 et répartis régulièrement à 600 sur 360" pour permettre une surveillance tout azimut minimisant les déplacements de leur unité de rotation d'azimut 10. Enfin, des microphones 13 sont régulièrement répartis sur une antenne linéaire 14 permettant de détecter la direction de provenance des sons, cette antenne 14 étant montée sur une unité de rotation 15 coaxiale au tube central 2. La figure 2 représente l'architecture générale du dispositif. Le socle 1 contient, outre les alimentations électriques, un ordinateur hôte 16 relié par un bus 17 à une carte "réseau" 18 également contenue dans le socle. Cette carte comporte une mémoire double accès dans laquelle l'ordinateur 16 pose ses messages en émission et vient puiser ses messages en réception. La carte 18 gère en outre les codes de détection d'erreurs, le bon acheminement des messages et le protocole de communication sur le réseau. Ce réseau, schématisé en 19, relie la carte 18 aux différentes unités de rotation entre 4, 5, 6, 4',5',6',8 ,9 ,11 et 15. Si l'on se réfère maintenant aux figures 3 et 4, on voit une unité de rotation généralement cylindrique comprenant un plateau fixe 20 solidaire d'un moyeu 21 et un plateau tournant 22 monté à rotation sur le moyeu 21. Bien entendu, on entend par plateau fixe le plateau le plus en amont par rapport au tube central 2. En fait, seules les unités de rotation 6, 6',9, 10 et 15 ont leur plateau fixe réellement solidaire de la structure porteuse, les autres unités de rotation ayant leur plateau fixe monté en fait sur la partie mobile d'une autre unité de rotation. En outre, une ceinture 23 est montée dans le cas présent solidaire du plateau tournant 22, mais elle pourrait être bien entendu également montée solidaire du plateau fixe 20. Diverses possibilités sont utilisées dans le dispositif de la figure 1. C'est ainsi que les unités de rotation 6, 6', 9, 10 et 15 sont fixées au tube central 2 par l'intermédiaire de leur moyeu et ont leur ceinture solidaire du plateau tournant. Des moyens de fixation 24 et 24' relient les ceintures des unités de rotation 5 et 6, et 5 r et 6' respectivement. Par contre, les unités 5 et 5' ont leur ceinture solidaire du plateau fixe, des moyens de fixation 25 et 25' reliant les plateaux tournants des unités 5, 5' respectivement aux ceintures des unités 4, 4'. Ces dernières unités 4, 4' ont leur ceinture solidaire du plateau fixe, les capteurs monochromes 3, 3' étant montés sur les plateaux tournants de ces unités. L'unité de rotation 8 est montée par son plateau fixe à la ceinture tournante de l'unité de rotation 9 par l'intermédiaire de moyens de fixation 26, et la caméra couleur 27 est montée sur le plateau tournant de l'unité de rotation 8. La ceinture de cette unité de rotation 8 peut être solidaire soit du plateau fixe soit du plateau tournant. Enfin, l'ensemble 11 est monté sur le plateau tournant de l'unité 10 et l'antenne acoustique 14 est montée sur la ceinture tournante de l'unité 15. Si l'on revient aux figures 3 et 4, on voit que chaque unité de rotation possède un moteur 27, solidaire du plateau fixe 20 et muni d'un compteur incrémental 28. Un accouplement 29 relie l'arbre de sortie 30 du moteur 27 à l'arbre d'entrée 31 d'un réducteur 32 à vis sans fin. La sortie du réducteur 32 porte une roue dentée 33 entraînant une courroie de transmission 34 qui engrène elle-même avec une poulie 35 solidaire du plateau tournant 22. Le plateau fixe 20 supporte également une carte processeur/réseau 36 et une carte asservissement 37, ainsi qu'unie carte 38 destinée au contrôle spécifique d'un capteur lorsque l'unité de rotation supporte directement un tel capteur. C'est ainsi que les unités de rotation de site des capteurs monochromes possèdent une carte d'asservissement de l'objectif, ou que l'unité de rotation d'azimut des sonars abrite une carte les interfaçant au processeur pour déclencher les mesures. Enfin, le plateau fixe 20 supporte un connecteur d'entrée réseau 39 par lequel s'effectue également l'alimentation électrique et un connecteur de sortie capteur 40 tandis que le plateau tournant 22 supporte un connecteur de sortie réseau/alimentation 41 et un connecteur d'entrée capteur 42 (figure 5). Les connecteurs 39 et 41 d'une part et 40 et 42 d'autre part sont reliés à l'intérieur de l'unité de rotation par des moyens de connexion tels qu'un joint tournant à balai 43. La figure 5 représente schématiquement les unités de rotation 8 et 9 et la caméra couleur 7 montée sur le plateau tournant de l'unité 8. La carte processeur/réseau 36 est reliée au réseau 19 par le connecteur 39 et commande, d'une part le moteur 27 par l'intermédiaire de la carte asservissement 37 et d'autre part, les bagues d'objectif de la caméra 7 par l'intermédiaire de la carte de contrôle 38. Les commandes 44 des bagues d'objectif 45 de la caméra 7 passent par le connecteur 42, de même que la sortie 46 de cette caméra qui est ensuite ramenée au socle par l'intermédiaire des joints tournants des unités de rotation 8 et 9. On remarquera que l'unité de rotation 9, ne supportant pas directement de capteurs, ne comporte pas de carte homologue à la carte 38. On voit à la figure 6 que la carte asservissement 37 comporte pour l'essentiel un générateur de profil trapézoïdal programmable 47 et un filtre PID numérique également programmable 48. Le générateur de profil 47 génère des profils de vitesse trapézoldaux tels que ceux représentés à la figure 7 à partir des ordres reçus du réseau 19 par l'intermédiaire de la carte processeur/réseau 36. Ce générateur de profil 47 peut travailler soit en mode vitesse, soit en mode position mais, dans les deux cas, il envoit au filtre 48 une succession de positions désirées. Au lancement d'un mode vitesse, une rampe d'accélération est générée jusqu a ce que la vitesse de consigne soit atteinte. Cette vitesse est maintenue jusqu a nouvel ordre. Ce nouvel ordre peut être une nouvelle consigne de vitesse qui sera alors atteinte en respectant l'accélération programmée, ou un ordre d'arrêt. Le mode position démarre de la même façon mais une rampe de décélération intervient au moment voulu pour obtenir l'arrêt sur la position finale désirée. Au cours d'un mode position, la vitesse de palier et la vitesse finale peuvent être modifiées. Un ordre d'arrêt est également pris en compte. Par contre, dans les deux modes, le changement de consigne d'accélération est ignore. Il existe trois ordres d'arrêt possibles : l'arrêt doux qui respecte la consigne d'accélération, l'arrêt brutal qui fige instantanément la consigne de position à la position courante, et l'arrêt d'urgence qui annule la sortie du filtre 48. Tous ces paramètres sont accessibles à l'utilisateur ainsi que leur lecture et celle des vitesses et positions instantanées. Si l'on se réfère maintenant à la figure 8, une base de temps à 50Hz est transmise par une ligne spéciale du réseau à toutes les unités de rotation pour synchroniser les tâches de gestion mécanique dans ces unités ainsi que les sessions de communication sur le réseau. Les communications sont donc organisées en sessions de 20ms. Comme illustré sur la figure qui représente trois sessions successives, une session est découpée en trois phases. Au cours de la première phase, rien ne se passe sur le réseau. Le début de cette phase est déclenchée par la base de temps qui envoit une interruption à l'ordinateur hôte 16. Celui-ci est ainsi invité à déposer dans la carte réseau 18 les messages qu'il désire éventuellement transmettre et à récupérer les réponses aux questions qu'il aurait pu poser lors de la session précédente. Pendant le même temps, les unités de rotation cadencées par l'interruption à 50Hz échantillonnent toutes en phase leur état mécanique (position et mot d'état) et exécute les ordres éventuellement transmis lors de la cession précédente. La phase 2 consiste à donner successivement la parole à toutes les unités de rotation qui répondent par convention leur position instantanée et un ensemble d'indicateurs binaires formant leur mot d'état, dans lequel on trouve par exemple l'état d'arrêt d'urgence, le fait d'être immobile ou en cours de mouvement, etc.. Enfin, la phase 3 est le reflet de la phase 1. Les ordres et questions déposées par l'ordinateur hôte sont transmis sur le réseau et, dans le cas de questions, les réponses sont automatiquement obtenues par la carte réseau. Ainsi, vu de l'ordinateur hôte 16, la pile des messages à transmettre est vidée toutes les 20ms, les ordres sont pris en compte dans les unités de rotation 20ms après leur envoi, et les réponses sont disponibles 20ms après les questions. La figure 9 montre que les messages échangés sur le réseau respectent une trame fixe de 8 mots de 16 bits. Les figures 9-1 à 9-8 représentent les mots 1 à 8 respectivement. Dans chaque message, le numéro du destinataire est réparti sur 24 bits. Chaque processeur est associé à un bit et un seul, de sorte qu'il est possible d'envoyer un message à plusieurs destinataires à la fois. Dans le mot 1, les bits 0 à 11 sont les bits de poids fort des destinataires, les bits 12 et 13 sont libres, le bit 14 indique, lorsqu'il est à 0 qu'il s'agit d'une trame de base seule et lorsqu'il est à 1 qu'il s'agit d'une trame de base plus une trame étendue, et le bit 15 est toujours 0. Dans le mot 2, les bits 0 à Il sont les bits de poids faible du destinataire, les bits 12 à 13 sont libres et le bit 15 est toujours 0. Dans le mot 3, les bits 0 à 5 désignent l'émetteur suivant, les bits 6 à Il indiquent la source du message, les bits 12 à 14 sont libres, et le bit 15 est toujours 0. Dans le mot 4, les bits 0 à 14 constituent le mot d'état et le bit 15 est toujours 0. Les mots 5 à 8 sont notamment utilisés pour une commande et un paramètre tel qu'une vitesse ou une accélération, éventuellement associé à cette commande. La commande est répartie sur les bits 8 à 14 des mots 5 et 6 et le paramètre est réparti sur les bits 0 à 7 des mots 5 à 8. Les bits 8 à 14 du mot 7 indiquent le numéro de message et les bits 15 des mots 5, 6 et 7 sont toujours 0. Enfin, les bits 8 à 14 du mot 8 constituent le contrôle de parité de la trame envoyée et le bit 15 du mot 8 est un bit de synchronisation de trame. REVENDICATIONS 1 - Robot muni d'une pluralité de moyens moteurs (27), caractérisé par le fait qu'au moins certains de ces moyens moteurs sont chacun associé localement à un processeur (36), les différents processeurs étant reliés entre eux par un réseau de communication (19) et à des moyens de commande (37) reliés au processeur pour commander les moyens moteurs à partir de messages circulant sur le réseau et décodés par le processeur. 2 - Robot selon la revendication 1, caractérisé par le fait que chaque processeur est agencé pour enregistrer tous les messages circulant sur le réseau, un message comprenant l'identification des processeurs destinataires, pour déterminer s il est lui-même destinataire, et pour ne tenir compte du message que dans ce cas. 3 - Robot selon l'une quelconque des revendications 1 et 2, caractérisé par le fait qu'un message circulant sur le réseau comprend l'identification du processeur émetteur du message suivant. 4 - Robot selon l'une quelconque des revendications 1 à 3, caractérisé par le fait qu'un message comprend un code de commande pour au moins un des moyens moteurs et une zone paramètre éventuellement nécessaire à la commande. 5 - Robot selon l'une quelconque des revendications 1 à 4, caractérisé par le fait qu'il comprend en outre une unité centrale (18) agencée pour interroger successivement sur le réseau, à intervalles de temps réguliers, l'ensemble des processeurs, ces derniers étant agencés pour émettre en réponse sur le réseau un ensemble d'informations d'état sur les moyens moteurs auxquels ils sont associés. 6 - Robot selon l'une quelconque des revendications 1 à 5, caractérisé par le fait qu'au moins l'un des moyens moteurs est agencé pour provoquer une rotation entre une partie du robot et une autre. 7 - Robot selon l'une quelconque des revendications 1 à 6, caractérisé par le fait qu'au moins l'un des moyens moteurs est agencé pour configurer un capteur (3, 3',7 ,11,14). 8 - Unité de rotation modulaire pour robot, caractérisée par le fait qu'elle comprend un organe amont (20), un organe aval (22) monté à rotation sur l'organe amont, des moyens moteurs (27) pour faire pivoter l'organe aval par rapport à l'organe amont, un processeur (36), un premier connecteur (39) monté sur l'organe amont pour connecter le processeur à une partie amont d'un réseau de communication (19), un deuxième connecteur (41) monté sur l'organe aval pour connecter la partie aval du réseau de communication à ladite partie amont, des moyens de connexion (43) pour relier le premier connecteur au deuxième connecteur, et des moyens de commande (37) reliés au processeur pour commander les moyens moteurs à partir de messages circulant sur le réseau et décodés par le processeur. 9 - Unité selon la revendication 8, caractérisée par le fait qu'elle comprend en outre un capteur (7) ou un actionneur monté sur son organe aval et des moyens de commande (38) reliés au processeur pour commander le capteur ou l'actionneur à partir de messages circulant sur le réseau et décodés par le processeur. 10 - Unité selon l'une quelconque des revendications 8 et 9, caractérisée par le fait qu'elle comprend un troisième connecteur (40) monté sur l'organe amont et un quatrième connecteur (42) monté sur l'organe aval, lesdits connecteurs étant reliés par lesdits moyens de connexion pour transmettre en amont de l'unité des informations provenant d'un capteur monté sur ou aval de l'unité. 11 - Unité selon l'une quelconque des revendications 8 à 10, caractérisée par le fait que lesdits moyens de commande des moyens moteurs comprennent un générateur de profil (47) apte à générer une succession de positions désirées à partir des ordres fournis par le réseau, et une boucle de régulation agencée pour comparer chaque position désirée avec la position effective de l'organe aval par rapport à organe amont. 12 - Unité selon la revendication 11, caractérisée par le fait que ladite boucle de régulation est un filtre proportionnel-intégraldifférentiel, numérique, programmable (48).