Brevet FR2918477A1 — publié le 20090109

PROCEDE D'EDITION DE MOUVEMENTS D'UN ROBOT L'invention se rapporte à un procédé d'édition de mouvements d'un 5 robot à partir d'un équipement informatique apte à communiquer avec le robot. L'invention se rapporte également à un système d'édition de mouvements d'un robot comprenant un équipement informatique apte 10 à communiquer avec le robot. L'invention se rapporte également à un programme d'ordinateur qui, à l'exécution, lorsqu'il est chargé sur un équipement informatique apte à communiquer avec un robot, permet l'édition de mouvements 15 du robot. On connaît notamment des procédés d'édition de mouvements d'un robot. De tels procédés permettent à un développeur ou à un utilisateur d'éditer des mouvements que le robot pourra par la suite 20 reproduire. Il peut par exemple s'agir d'un mouvement de marche, de danse, ou plus simplement au fait de lever un bras ou de saluer. Dans un tel procédé connu, un programme d'ordinateur est chargé sur l'équipement informatique apte à communiquer avec le robot. Ce 25 programme d'ordinateur génère par exemple une interface qui permet de modifier la position d'une ou plusieurs articulations du robot par l'intermédiaire de moteurs associés à ces articulations. L'interface peut apparaître sur un écran de l'équipement informatique sous la forme d'un curseur à déplacer entre deux bornes, ou d'une valeur 30 numérique à modifier. La modification de la position du curseur ou de la valeur numérique permet de modifier la position d'un moteur du robot. Ce robot peut être soit un robot réel séparé de l'équipement informatique, soit un robot virtuel affiché par exemple sur un écran de l'équipement informatique. Dans les procédés connus, on définit donc, grâce au programme d'ordinateur chargé sur l'équipement informatique, une pluralité de positions pour le robot. Ces différentes positions sont alors intégrées dans une séquence temporelle de positions, appelée en langue anglaise timeline . Une telle séquence temporelle de positions comprend une série de positions de référence appelées en langue anglaise keyframe , qui sont liées entre elles par une transition dans le temps, de sorte à définir la séquence temporelle de positions. Dans la séquence temporelle de positions, les différentes positions à atteindre par le robot, et donc les différentes positions des moteurs du robot, sont générées comme mentionné ci-dessus à partir de l'interface affichée sur l'équipement informatique, par exemple au moyen d'un curseur. Un tel procédé d'édition à partir d'un curseur affiché sur l'équipement informatique a l'avantage de permettre un réglage fin des positions de référence dans la séquence temporelle de positions. Toutefois, un tel procédé est fastidieux pour définir des grands mouvements du robot et donc un réglage grossier des positions. En particulier, si les déplacements du robot sont définis à partir d'un curseur actionnant un moteur, il est compliqué de manipuler les curseurs de chacun des moteurs à actionner pour un mouvement ample. Les procédés d'édition de mouvements d'un robot connus ne permettent donc pas à un utilisateur d'éditer une grande gamme de mouvements, et ce de façon simple. Le problème résolu par l'invention est donc de faciliter l'édition d'une grande gamme de mouvements d'un robot. Ce problème est résolu, selon un premier aspect de l'invention, par un procédé d'édition de mouvements d'un robot à partir d'un équipement informatique apte à communiquer avec le robot, le procédé comprenant des étapes dans lesquelles : on génère une pluralité de positions de références du robot ; on génère une séquence temporelle de positions, la séquence temporelle de positions comprenant la pluralité de positions de références, et des mouvements de transition entre deux positions de référence successives ; dans lequel l'étape consistant à générer la pluralité de positions de référence comprend des étapes dans lesquelles : on génère une position de référence de la séquence temporelle de positions par des moyens de déplacement de l'équipement informatique, les moyens de déplacement provoquant le déplacement du robot, de sorte à définir la position de référence ; l'étape consistant à générer la pluralité de positions de référence comprenant en outre une étape dans laquelle on génère en outre la position de référence en déplaçant le robot dans une position souhaitée ; on enregistre, sur l'équipement informatique, des caractéristiques de la position souhaitée, on définit la position de référence à partir des caractéristiques de la position souhaitée. Grâce à l'invention, un utilisateur peut donc définir les positions de référence d'abord par un réglage grossier de la position du robot en déplaçant le robot réellement ou virtuellement, puis par un réglage fin grâce aux moyens de déplacement de l'équipement informatique. Ceci permet de générer simplement un grand nombre de positions du robot. Selon un mode de réalisation, l'étape consistant à générer la pluralité de positions de référence comprend en outre une étape dans laquelle : - on affiche une représentation graphique de l'évolution temporelle des caractéristiques d'au moins une articulation du robot en fonction de la séquence temporelle de positions ; - on modifie la représentation graphique de l'évolution temporelle de sorte à modifier la séquence temporelle de positions ; - on génère une nouvelle séquence temporelle de positions en fonction des modifications de la représentation graphique. Selon un mode de réalisation, le robot comprend une pluralité d'articulations, et le procédé comprend une étape dans laquelle : - on génère une pluralité de séquences temporelles de positions chacune des séquences temporelles de positions comprenant des positions de référence correspondant à des positions d'une partie des articulations parmi la pluralité d'articulations. Dans ce mode de réalisation, les séquences temporelles de positions de la pluralité de séquences temporelles de positions sont lues simultanément, de sorte à provoquer un mouvement du robot pour la pluralité d'articulations. Selon un mode de réalisation, le robot est un robot réel. Selon un autre mode de réalisation, le robot est un robot virtuel affiché sur un écran de l'équipement informatique. Dans ce cas, le robot virtuel est généré à partir d'un robot réel et 30 d'un simulateur, le simulateur étant agencé de sorte que chaque mouvement du robot réel soit susceptible de provoquer le même mouvement pour le robot virtuel, et chaque mouvement du robot virtuel soit susceptible de provoquer le même mouvement pour le robot réel.25 Le problème susmentionné est également résolu, selon un deuxième aspect de l'invention, par un programme d'ordinateur qui, à l'exécution, lorsqu'il est chargé sur un équipement informatique apte à communiquer avec un robot, permet l'édition de mouvements du robot selon le procédé précédemment décrit. L'invention se rapporte également à un système d'édition de mouvements d'un robot comprenant un équipement informatique apte à communiquer avec le robot, le système comprenant des premiers moyens pour générer une pluralité de positions de référence du robot ; des deuxième moyens pour générer une séquence temporelle de positions, la séquence temporelle de positions comprenant la pluralité de positions de références, et des mouvements entre deux positions de référence successives; - des moyens de déplacement aptes à provoquer le déplacement d'au moins un moteur du robot, des troisième moyens pour générer une position de référence de la séquence temporelle de positions à partir des moyens de déplacement de l'équipement informatique de sorte à définir la position de référence ; des quatrième moyens pour générer en outre la position de référence en déplaçant le robot dans une position souhaitée, pour enregistrer, sur l'équipement informatique, les caractéristiques de la position souhaitée, et pour définir la position de référence à partir des caractéristiques de la position souhaitée. Selon un mode de réalisation du système susmentionné, le système comprend des moyens pour afficher une représentation graphique de l'évolution temporelle des caractéristiques d'au moins un moteur du robot en fonction de la séquence temporelle de positions ; des moyens pour modifier la représentation graphique de l'évolution temporelle de sorte à modifier la séquence temporelle de positions et des moyens pour modifier une nouvelle séquence temporelle de positions en fonction des modifications de la représentation graphique. Selon un mode de réalisation, le robot comprend une pluralité d'articulations, et le système comprend des moyens pour générer une pluralité de séquences temporelles de positions, chacune des séquences temporelles de positions comprenant des positions de référence correspondant à des positions d'une partie des articulations parmi la pluralité d'articulations. Dans ce cas, le système comprend des moyens pour lire simultanément les séquences temporelles de positions de la pluralité de séquences temporelles de positions de sorte à provoquer un mouvement du robot selon la pluralité d'articulations. On décrit maintenant un mode de réalisation de l'invention en 20 référence aux figures annexées dans lesquelles : FIG. 1 représente un système selon l'invention FIG. 2 représente une première interface pour la mise en oeuvre du procédé selon l'invention ; 25 FIG. 3 représente une deuxième interface comprenant une séquence temporelle de positions pour la mise en oeuvre du procédé selon l'invention ; FIG. 4 représente une troisième interface pour la mise en oeuvre du procédé selon l'invention. 30 La FIG. 1 représente de façon générale un robot réel 1. L'invention permet d'éditer des mouvements du robot réel 1. Le robot réel 1 comprend des moteurs, au niveau de ses articulations, et des capteurs permettant de déterminer la position des moteurs. Le robot réel 1 est apte à communiquer, c'est-à-dire à échanger des données avec un équipement informatique 2 par des moyens de communication 3. Ces moyens de communication 3 sont par exemple du type réseau sans fil Wifi. La FIG. 2 représente une première interface 4 pour la mise en oeuvre du procédé d'édition de mouvements d'un robot selon l'invention. Cette interface 4 est générée sur un écran de l'équipement informatique 2 lorsque l'on charge un programme d'ordinateur sur l'équipement informatique 2. La première interface 4 comprend une fenêtre 5 fournissant une représentation virtuelle sous la forme d'un robot virtuel 6 du robot réel 1. Le robot virtuel 6 est réalisée par simulation du robot réel 1 par un simulateur. Le simulateur peut être activé ou désactivé, et permet de visualiser dans la fenêtre 5 les mouvements et les actions du robot réel 1, ainsi que les éventuelles lumières, sons ou paroles produits par le robot réel 1. Le simulateur intègre les lois de la physique, et fait par exemple que le robot tombe s'il est en déséquilibre, et provoque un contact lorsque le robot réel touche un objet. Afin de faciliter la définition des mouvements, le simulateur permet également de visualiser ce qu'une caméra intégrée au robot réel 1 voit. Ceci permet de définir les mouvements du robot réel 1 à partir du robot virtuel 6, tout en tenant compte de l'environnement du robot réel 1. Le simulateur est lié au robot réel 1 de sorte que tous les comportements du robot réel 1 peuvent s'effectuer sur le robot virtuel 6. Lorsque le simulateur est activé, un mouvement sur le robot virtuel 6 provoque le même mouvement sur le robot réel 1. De même, un mouvement sur le robot réel 1 provoque le même mouvement sur le robot virtuel 6. Plusieurs robots réels 1 peuvent également être représentés dans la fenêtre 5 sous la forme de plusieurs robots virtuels 6, même si les robots réels 1 ne sont pas physiquement proches, de sorte que les robots réels 1 peuvent être commandés de façon groupée et synchronisée à partir du simulateur. Puisque le simulateur permet de commander indifféremment le robot réel 1 et le robot virtuel 6, la description de l'invention qui suit et les actions sur le robot sont applicables de façon identique au robot virtuel 6 et au robot réel 1. Lorsque l'utilisateur définit des mouvements complexes du robot dans lequel celui-ci risque de tomber, on préférera tout particulièrement l'utilisation du robot virtuel en désactivant au moins partiellement le simulateur pour ne pas endommager le robot réel 1. Dans la suite de la description, on décrira des actions sur le robot réel 1, mais il est entendu que les mêmes actions peuvent être appliquées au robot virtuel 6. La zone 7 de l'interface 1 comprend une pluralité de curseurs 7a, 7b, 7c susceptibles d'être déplacés par exemple grâce à une souris associée à l'équipement informatique 2. Chacun des curseurs définit une position d'un moteur du robot réel 1 et donc d'une articulation du robot réel 1. Lorsqu'un des curseurs est déplacé jusqu'à une certaine valeur, le moteur associé est déplacé en fonction du déplacement du curseur. Les curseurs 7a, 7b et 7c, correspondent donc à des mouvements d'un moteur au niveau d'une articulation du robot, par exemple respectivement aux moteurs de la tête, du coude, et de l'épaule. Les curseurs 7a, 7b, et 7c, permettent un réglage fin de la position des moteurs associés. Selon l'invention, il est également possible de définir une position du robot réel 1 en déplaçant, par exemple manuellement, le robot réel 1. Ce déplacement manuel définit une position souhaitée pour le robot. Cette position souhaitée est alors enregistrée par l'équipement informatique 2. Ce type de déplacement permet notamment une définition grossière des positions du robot, par exemple en faisant passer le bras du robot d'une position basse à une position haute par actionnement du moteur de l'épaule. Suite à ce déplacement grossier, un déplacement fin à l'aide des curseurs 7a, 7b et 7c précédemment décrits permet d'affiner la position du robot. La combinaison des possibilités de déplacements fins et grossiers décrits précédemment permet à un utilisateur d'éditer de façon simple un grand nombre de mouvements du robot. Afin de simplifier encore la définition des positions du robot, l'interface 4 peut également comprendre une fenêtre 14 comprenant une liste de positions prédéfinies P1, P2, P3. A chacune de ces positions, sont associés les paramètres des articulations associés aux moteurs. En cliquant sur un élément de cette liste, par exemple à l'aide d'une souris, le robot prend la position définie par ces paramètres. A partir de ces différents moyens de positionnement du robot, on définit des positions de référence du robot. Illustré FIG. 3, ces positions de références sont insérées dans une séquence temporelle de positions 9a, 9b comprenant des trames de référence 10. Chacune des trames de référence 10 correspond à une position de référence 10 du robot, c'est-à-dire à la définition des caractéristiques de chaque moteur du robot ou d'une partie des moteurs du robot. Pour générer la séquence temporelle de position 9a, 9b à partir des positions de référence 10, on définit un mouvement correspondant à une transition 11 entre deux positions de référence 10. La transition peut être une transition linéaire, dans laquelle le mouvement de chaque articulation associée à un moteur est régulier et à vitesse constante entre les deux positions de référence 10. La transition peut également être une transition douce dans laquelle le mouvement présente une phase d'accélération puis de décélération de sorte que le mouvement global ne présente pas d'à coups à chaque position de référence. D'autres types de transition peuvent également être ajoutés et définis par un utilisateur. Selon l'invention, des séquences temporelles de position différentes 9a et 9b peuvent être utilisées pour différents sous- ensembles de l'ensemble des moteurs et des articulations du robot. Par exemple, la séquence 9a peut correspondre aux mouvements des moteurs de la partie supérieure du robot comprenant notamment les épaules, les coudes et la tête, et la séquence 9b peut correspondre aux mouvements des moteurs de la partie inférieure du robot comprenant notamment les hanches, les genoux et les chevilles. De la sorte, on facilite grandement les possibilités de définition des mouvements du robot, puisqu'une trame de référence n'a pas à comprendre la définition des positions pour toutes les articulations, mais seulement une partie d'entre elles. En lançant les différentes séquences temporelles 9a, 9b de façon synchronisée, un mouvement de l'ensemble du robot est alors obtenu. Chacune des séquences 9a, 9b peut être activée ou désactivée, et lancée indépendamment des autres séquences. En cas de conflit entre deux séquences, c'est-à- dire lorsque, lors de la lecture de deux séquences distinctes, la même articulation doit prendre, au même instant, deux positions différentes, on peut soit prioriser une séquence sur une autre, soit procéder à une moyenne entre les différentes positions. Il est également possible de préciser l'intervalle de temps entre deux trames de références et de copier les caractéristiques d'une trame dans une autre trame. Afin de vérifier que le mouvement du robot défini dans la séquence temporelle de positions correspond bien au mouvement souhaité, il est possible de jouer la séquence définie à l'aide d'une fonction de lecture de la séquence. Lorsque la séquence temporelle de positions est définie, il est possible d'afficher la position d'une articulation particulière en fonction du temps. Une fenêtre 12 réalisant un tel affichage est illustrée FIG. 4. Sur la FIG. 4, la fenêtre 12 comprend un diagramme 13 illustrant l'évolution de la position d'une articulation associée à un moteur du robot. Le diagramme 13 est éditable et peut être modifié à l'aide d'une souris associée à l'équipement informatique 2. L'édition du diagramme 13 permet également un réglage fin des transitions entre deux positions de référence, ainsi qu'un réglage fin des positions de l'articulation au sein d'une trame de référence, pour définir une nouvelle position de référence. L'ensemble des fonctions définies ci-dessus permet alors une édition particulièrement simple des mouvements du robot, même par un utilisateur novice dans la programmation robotique. En outre, chacune des positions ou des séquences temporelles de positions définies grâce à l'invention peut, après avoir été mise en mémoire, être échangée par des utilisateurs, de sorte qu'une communauté de nombreux utilisateurs peut améliorer l'édition des mouvements du robot, chacun des utilisateurs de la communauté étant susceptible d'utiliser les mouvements édités par les autres utilisateurs de la communauté.20 REVENDICATIONS 1. Procédé d'édition de mouvements d'un robot (1, 6) à partir d'un équipement informatique (2) apte à communiquer avec le robot, le 5 procédé comprenant des étapes dans lesquelles : - on génère une pluralité de positions de références (10) du robot ; on génère au moins une séquence temporelle de positions (9a, 9b), la séquence temporelle de positions comprenant la 10 pluralité de positions de référence (10), et des mouvements de transition (11) entre deux positions de référence successives; dans lequel l'étape consistant à générer la pluralité de positions de référence comprend des étapes dans lesquelles : on génère une position de référence de la séquence temporelle 15 de positions par des moyens de déplacement (7a, 7b, 7c) de l'équipement informatique, les moyens de déplacement provoquant le déplacement du robot, de sorte à définir la position de référence ; 20 le procédé étant caractérisé en ce que l'étape consistant à générer la pluralité de positions de référence comprend en outre une étape dans laquelle - on génère en outre la position de référence en déplaçant le robot dans une position souhaitée ; 25 - on enregistre, sur l'équipement informatique, des caractéristiques de la position souhaitée, on définit la position de référence à partir des caractéristiques de la position souhaitée. 30 2. Procédé selon la revendication 1 dans lequel l'étape consistant à générer la pluralité de positions de référence comprend en outre une étape dans laquelle :- on affiche une représentation graphique (13) de l'évolution temporelle des caractéristiques d'au moins une articulation du robot en fonction de la séquence temporelle de positions ; - on modifie la représentation graphique de l'évolution temporelle de sorte à modifier la séquence temporelle de positions ; - on génère une nouvelle séquence temporelle de positions en fonction des modifications de la représentation graphique. 3. Procédé selon l'une des revendications précédentes, dans lequel le robot comprend une pluralité d'articulations, et dans lequel - on génère une pluralité de séquences temporelles de positions (9a, 9b), chacune des séquences temporelles de positions comprenant des positions de référence correspondant à des positions d'une partie des articulations parmi la pluralité d'articulations. 4. Procédé selon la revendication précédente dans lequel les séquences temporelles de positions de la pluralité de séquences temporelles de positions sont lues simultanément, de sorte à provoquer un mouvement du robot pour la pluralité d'articulations. 5. Procédé selon l'une des revendications précédentes dans lequel le robot est un robot réel (1). 6. Procédé selon l'une des revendications 1 à 4 dans lequel le robot 25 est un robot virtuel (6) affiché sur un écran de l'équipement informatique. 7. Procédé selon la revendication précédente dans lequel le robot virtuel est généré à partir d'un robot réel et d'un simulateur, le 30 simulateur étant agencé de sorte que chaque mouvement du robot réel soit susceptible de provoquer le même mouvement pour le robot virtuel, et chaque mouvement du robot virtuel soit susceptible de provoquer le même mouvement pour le robot réel.20 8. Système d'édition de mouvements d'un robot comprenant un équipement informatique apte à communiquer avec le robot, le système comprenant des premiers moyens pour générer une pluralité de positions de référence du robot ; des deuxième moyens pour générer une séquence temporelle de positions, la séquence comprenant la pluralité de positions de référence, le mouvement du robot entre deux positions de référence étant généré à partir d'une interpolation ; des moyens de déplacement aptes à provoquer le déplacement d'au moins un moteur du robot, des troisième moyens pour générer une position de référence de la séquence temporelle de positions à partir des moyens de déplacement de l'équipement informatique de sorte à définir la position de référence ; des quatrième moyens pour générer en outre la position de référence en déplaçant le robot dans une position souhaitée, pour enregistrer, sur l'équipement informatique, les caractéristiques de la position souhaitée, et pour définir la position de référence à partir des caractéristiques de la position souhaitée. 9. Système selon la revendication 8 comprenant des moyens pour afficher une représentation graphique de l'évolution temporelle des caractéristiques d'au moins un moteur du robot en fonction de la séquence temporelle de positions ; des moyens pour modifier la représentation graphique de l'évolution temporelle de sorte à modifier la séquence temporelle de positions et des moyens pour modifier une nouvelle séquence temporelle de positions en fonction des modifications de la représentation graphique. 10. Système selon la revendication 8 ou 9 dans lequel le robot comprend une pluralité d'articulations, et dans lequel le système comprend des moyens pour générer une pluralité de séquences temporelles de positions, chacune des séquences temporelles depositions comprenant des positions de référence correspondant à des positions d'une partie des articulations parmi la pluralité d'articulations. 11. Système selon la revendication précédente, comprenant des moyens pour lire simultanément les séquences temporelles de positions de la pluralité de séquences temporelles de positions de sorte à provoquer un mouvement du robot selon la pluralité d'articulations. 12. Programme d'ordinateur qui, à l'exécution, lorsqu'il est chargé sur un équipement informatique apte à communiquer avec un robot, permet l'édition de mouvements du robot selon l'une quelconque des revendications 1 à 7.15