FR 3092416 A1 20200807 FR 1900974 A 20190131 Description Titre de l'invention : SYSTÈME ET PROCÉDÉ D'INTERACTION AVEC DES ROBOTS DANS DES APPLICATIONS DE RÉALITÉ MIXTE Domaine technique 100011 La présente description concerne le domaine des systèmes de commande pour des robots et, en particulier, un système permettant des applications de réalité augmentée et mixte. Technique antérieure [0002] On a déjà proposé de prévoir des systèmes permettant des applications de réalité augmentée et mixte. [0003] La "réalité augmentée" correspond à une vue en temps réel directe ou indirecte d'un environnement du monde réel physique dont les éléments sont "augmentés" par des informations produites par un ordinateur, comme des informations visuelles et audio, qui sont superposées sur la vue en temps réel. [0004] La "réalité mixte", connue aussi sous le nom de réalité hybride, est la fusion de mondes réels et virtuels pour produire de nouveaux environnements et de nouvelles visualisations dans lesquels des objets physiques et numériques peuvent coexister et interagir en temps réel. La réalité mixte déduit son nom du fait que le monde n'est ni entièrement physique ni entièrement virtuel, mais est un mélange des deux mondes, [0005] 11 y a toutefois une difficulté technique pour obtenir des environnements de réalité mixte dans lesquels des événements impliquant des éléments virtuels dans un monde virtuel peuvent être synchronisés avec le comportement dynamique d'objets réels dans le monde physique. Résumé de l'invention [0006] Un objet de modes de réalisation de la présente description est de répondre au moins partiellement à une ou plusieurs difficultés de l'art antérieur. [0007] Selon un premier aspect, on prévoit un dispositif de traitement pour mettre en oeuvre un système de réalité mixte, le dispositif de traitement comprenant un ou plusieurs coeurs de traitement et une ou plusieurs mémoires d'instructions mémorisant des instructions qui, lorsqu'elles sont exécutées par lesdits un ou plusieurs coeurs de traitement, amènent lesdits un ou plusieurs coeurs de traitement à : tenir à jour un monde virtuel impliquant au moins une première réplique virtuelle correspondant à un premier robot dans le monde réel ; générer un ou plusieurs événements virtuels impactant la première réplique virtuelle dans le monde virtuel ; générer un signal de commande pour contrôler le premier robot en réponse auxdits un ou plusieurs 2 événements virtuels ; et transmettre le signal de commande au premier robot pour modifier le comportement du premier robot et fournir une réponse du monde réel auxdits un ou plusieurs événements virtuels. [0008] Selon un mode de réalisation, les instructions amènent en outre lesdits un ou plusieurs coeurs de traitement à recevoir, avant de générer le signal de commande, une commande d'un utilisateur ou générée par un ordinateur destinée à contrôler le premier robot, la génération du signal de commande comprenant une modification de la commande d'un utilisateur ou générée par un ordinateur sur la base desdits un ou plusieurs événements virtuels. [0009] Selon un mode de réalisation, les instructions amènent en outre lesdits un ou plusieurs coeurs de traitement à limiter le signal de commande résultant d'une commande d'un utilisateur ou générée par un ordinateur en l'absence d'événement virtuel à une première plage, et le signal de commande fournissant une réponse du monde réel auxdits un ou plusieurs événements virtuels excède la première plage. [0010] Selon un mode de réalisation, les instructions amènent en outre lesdits un ou plusieurs coeurs de traitement à générer un flux vidéo de réalité mixte à relayer vers une interface d'affichage, le flux vidéo de réalité mixte comprenant un ou plusieurs éléments virtuels provenant du monde virtuel synchronisés dans le temps et dans l'espace et fusionnés avec un flux vidéo brut capturé par une caméra. [0011] Selon un mode de réalisation, les instructions amènent lesdits un ou plusieurs coeurs de traitement à générer des éléments virtuels dans le flux vidéo de réalité mixte représentant des événements virtuels déclenchés par le comportement du premier robot dans le monde réel. [0012] Selon un mode de réalisation, les instructions amènent en outre lesdits un ou plusieurs coeurs de traitement à suivre de façon continue les coordonnées de 6 degrés de liberté du premier robot correspondant à sa position et son orientation sur la base de données de suivi fournies par un système de suivi. [0013] Selon un mode de réalisation, les instructions amènent en outre lesdits un ou plusieurs coeurs de traitement à générer le signal de commande pour assurer des interactions sans contact du premier robot avec un ou plusieurs objets statiques ou mobiles réels ou d'autres robots, sur la base au moins des données de suivi du premier robot et des coordonnées de 6 degrés de liberté desdits un ou plusieurs objets statiques ou mobiles réels ou d'autres robots. [0014] Système de réalité mixte, comprenant : le dispositif de traitement susmentionné ; une zone d'activité comprenant le premier robot et un ou plusieurs autres robots sous le contrôle du dispositif de traitement ; et un système de suivi agencé pour suivre des positions et des orientations relatives du premier robot et desdits un ou plusieurs autres robots. 3 100151 Selon un mode de réalisation, le premier robot est un drone ou un robot terrestre. [0016] Selon un mode de réalisation, le système de réalité mixte comprend en outre une ou plusieurs interfaces de commande par un utilisateur pour générer des commandes d'utilisateur. [0017] Selon un autre aspect, on prévoit un procédé de commande d'un ou plusieurs robots dans un système de réalité mixte, le procédé comprenant : tenir à jour, par un ou plusieurs coeurs de traitement sous le contrôle d'instructions mémorisées par une ou plusieurs mémoires d'instructions, un monde virtuel impliquant au moins une première réplique virtuelle correspondant à un premier robot dans le monde réel ; générer un ou plusieurs événements virtuels impactant la première réplique virtuelle dans le monde virtuel ; générer un signal de commande pour contrôler le premier robot en réponse auxdits un ou plusieurs événements virtuels ; et transmettre le signal de commande au premier robot pour modifier le comportement du premier robot et fournir une réponse du monde réel auxdits un ou plusieurs événements virtuels. Brève description des dessins [0018] Ces caractéristiques et avantages, ainsi que d'autres, seront exposés en détail dans la description suivante de modes de réalisation particuliers faite à titre illustratif et non limitatif en relation avec les figures jointes parmi lesquelles : [0019] [fig.1] la figure 1 est une vue en perspective d'un système de réalité mixte selon un exemple dc réalisation de la présente description ; [0020[ W8.21 la figure 2 représente schématiquement un système informatique du système de réalité mixte de la figure 1 plus en détail selon un exemple de réalisation ; [0021] [fig.3] la figure 3 représente schématiquement un dispositif de traitement de la figure 2 plus en détail selon un exemple de réalisation ; [00221 [fig.4] la figure 4 représente le monde réel selon un exemple de réalisation de la présente description ; [0023[ [fig.51 la figure 5 représente un monde virtuel correspondant au monde réel de la figure 4 ; [0024[ [fig.6] la figure 6 représente des images vidéo pendant la génération d'une image vidéo de réalité mixte ; [0025] [fig.7] la figure 7 représente schématiquement une boucle de commande pour contrôler un robot sur la base d'une commande selon un exemple de réalisation ; [0026] [fig.8] la figure 8 représente un exemple d'une fonctionnalité du monde virtuel ayant un effet dans le monde réel selon un exemple de réalisation de la présente description ; [0027] [fig.9] la figure 9 représente une fonctionnalité de clôture virtuelle selon un exemple de réalisation de la présente description ; et [0028] [fig.10] la figure 10 représente une fonctionnalité de collision sans contact simulée entre des robots selon un exemple de réalisation de la présente description. Description des modes de réalisation [0029] Dans la présente description, le terme "couplé" est utilisé pour désigner une connexion entre des éléments d'un système qui peut être directe, ou qui peut se faire par l'intermédiaire d'un ou plusieurs éléments intermédiaires comme des tampons, des interfaces de communication, des réseaux intermédiaires, etc. [0030] En outre, dans la présente description, les termes suivants seront considérés comme ayant les définitions suivantes : [0031] "Robot" - toute machine ou dispositif mécanique qui fonctionne dans une certaine mesure de façon automatique et dans une certaine mesure sous le contrôle d'un utilisateur. Par exemple, comme cela sera décrit plus en détail ci-après, un robot est par exemple dans une certaine mesure contrôlé à distance via une interface de commande sans fil sur la base de commandes d'utilisateur. [0032] "Application de réalité mixte" - application dans laquelle il y a des interactions entre le monde réel et un monde virtuel. Par exemple, des événements survenant dans le monde réel sont suivis et appliqués au monde virtuel, et des événements survenant dans le monde virtuel provoquent des effets dans le monde réel. Certains exemples de jeux vidéo interactifs en réalité mixte sont donnés sur le site Internet www.drone-interactive.com. Le nom "Drone Interactive" peut correspondre à une ou plusieurs marques déposées. Bien que dans la description suivante on décrive des modes de réalisation d'un système de réalité mixte sur la base d'un exemple d'application d'un jeu interactif, il sera clair pour l'homme de l'art que le système décrit ici pourrait avoir d'autres applications, comme dans la maintenance de machines ou de bâtiments, l'exploration, y compris l'exploration spatiale, l'industrie manufacturière, comme une chaîne de fabrication, dans les recherches et les secours, ou dans la formation, y compris la formation de pilotes ou de conducteurs dans le contexte de l'une quelconque des applications susmentionnées. [0033] "Réplique virtuelle" - élément virtuel dans le monde virtuel qui correspond à un élément réel dans le monde réel. Par exemple, un mur, une montagne, un arbre ou un autre type d'élément peut se trouver dans le monde réel, et est aussi défini dans le monde virtuel sur la base d'au moins certaines de ses propriétés dans le monde réel, et en particulier ses coordonnées dans 6 degrés de liberté (DoF) correspondant à sa position et à son orientation relatives, son modèle 3D ou son comportement dynamique dans le cas d'éléments mobiles. Certaines répliques virtuelles peuvent correspondre à des éléments mobiles, comme des robots, ou même à un utilisateur dans certains cas spécifiques déciits plus en détail ci-après. Alors que les coordonnées de 6 DoF d'éléments statiques sont par exemple mémorisées une seule fois pour une application donnée, les coordonnées de 6 DoF d'éléments mobiles, comme des robots, sont suivies et appliquées à leurs répliques virtuelles dans le monde virtuel, comme on va le décrire plus en détail ci-après. Finalement, le comportement de chaque réplique virtuelle imite celui des éléments mobiles correspondants dans le monde réel. [0034] La figure 1 est une vue en perspective d'un système de réalité mixte 100 selon un exemple de réalisation de la présente description. La figure 1 illustre seulement les éléments du monde réel du système, le monde virtuel étant tenu à jour par un système informatique 120 décrit plus en détail ci-après. [0035] Le système 100 comprend par exemple une zone d'activité 102 de forme et de di- mensions quelconques. La zone d'activité 102 définit par exemple un volume dans lequel le système de réalité mixte peut opérer, et en particulier dans lequel un certain nombre de robots peuvent opérer et dans lequel les coordonnées de 6 DoF (position et orientation) des robots peuvent être suivies. Bien que dans l'exemple de la figure 1 la zone d'activité 102 définisse un volume sensiblement cylindrique, dans des variantes de réalisation d'autres formes seraient possibles. Les dimensions et la forme de la zone d'activité 102 vont dépendre de facteurs tels que le nombre et la taille des robots, le type d'activité réalisée par les robots et des contraintes provenant du monde réel. [0036] Un ou plusieurs robots se trouvent par exemple dans la zone d'activité 102 et peuvent interagir entre eux, avec d'autres objets réels mobiles ou statiques réels dans la zone d'activité, et avec des éléments virtuels dans le monde virtuel. Par exemple, la zone d'activité 102 définit une zone de jeu dans laquelle sont utilisés des robots faisant partie d'un jeu en réalité mixte. Dans l'exemple de la figure 1, les robots comprennent des chones 108 et des robots terrestres ayant la forme de modèles réduits de véhicules 110, bien que le ou les types particuliers de robots dépendent du jeu ou de l'application. En effet, les robots pourraient être de tout type pouvant être contrôlé à distance. Le nombre de robots pourrait aller de un à quelques dizaines de robots. [0037] Chacun des robots se trouvant dans la zone d'activité 102 est par exemple un robot commandé à distance qui est au moins partiellement contrôlable par une interface sans fil. Il serait toutefois aussi possible qu'un ou plusieurs robots comprennent des lignes de commande filaires. [0038] On supposera ici que chacun des robots se trouvant dans la zone d'activité 102 comprend une source d'énergie, comme une batterie, et un ou plusieurs actionneurs, moteurs, etc. pour provoquer le mouvement de pièces de chaque robot sur la base de commandes d'un utilisateur et/ou sous le contrôle d'une ou plusieurs boucles de commande automatique. Par exemple, les drones comprennent une ou plusieurs hélices créant des translations vers l'avant, vers l'arrière, latérales et/ou verticales, et les robots terrestres ayant la forme de modèles réduits de véhicules comportent un moteur pour entraîner une ou plusieurs roues du véhicule et un ou plusieurs actionneurs pour 6 contrôler la direction de certaines roues du véhicule. Bien sûr, les types particuliers de moteurs ou d'actionneurs utilisés pour le déplacement des robots dépendront du type de robot et des types d'opérations pour lesquels chacun d'eux est conçu. [0039] Le système informatique 120 est par exemple agencé pour suivre l'activité dans le monde réel (dans la zone d'activité 102) et aussi pour tenir à jour un monde virtuel, et fusionner les mondes réels et virtuels afin de fournir à un ou plusieurs utilisateurs et/ou spectateurs une expérience de réalité mixte, comme on va le décrire maintenant plus en détail. [0040] Le système de réalité mixte 100 comprend par exemple un système de suivi 112 capable de suivre les positions et les orientations relatives (coordonnées de 6 DoF) des robots, et dans certains cas d'autres objets mobiles ou statiques, dans la zone d'activité 102. Les informations de position sont par exemple suivies avec une précision relativement élevée, par exemple avec une précision de 1 cm ou moins, et l'orientation est par exemple mesurée avec une précision de 1 degré ou moins. En effet, la performance globale du système pour la synchronisation précise des mondes réel et virtuel et pour la création d'interactions entre eux va dépendre dans une certaine mesure de la précision des données de suivi. Dans certains modes de réalisation, les robots ont six degrés de liberté, trois étant des composantes de translations et trois étant des composantes de rotation, et le système de suivi 112 est capable de suivre la position et l'orientation de chacun d'eux par rapport à ces six degrés de liberté. [0041] Dans certains modes de réalisation, chacun des robots peut comporter une pluralité de marqueurs actifs ou passifs (non illustrés) qui peuvent être détectés par le système de suivi 112. Les émetteurs du système de suivi 112 émettent par exemple de la lumière infrarouge, et des caméras, qui peuvent être intégrées dans les émetteurs de lumière, par exemple détectent les coordonnées de 6 DoF des robots sur la base de la lumière réfléchie par ces marqueurs. Par exemple, chaque objet suivi (y compris les robots) comporte un motif unique de marqueurs qui lui permet d'être identifié parmi les autres objets suivis et qui permet de déterminer son orientation. En plus, le système de suivi 112 peut comprendre un ou plusieurs émetteurs qui émettent de la lumière dans des longueurs d'onde non visibles dans la zone d'activité 102. On peut trouver de nombreux systèmes de suivi différents basés de ce type de technologie de suivi, par exemple celui vendu sous le nom de "Optitrack" (le nom "Optitrack" peut correspondre à une marque déposée). [0042] Dans d'autres modes de réalisation, la lumière a la forme de faisceaux lumineux, et les robots comprennent des éléments de capture de lumière (non illustrés) qui détectent le moment où le robot traverse un faisceau lumineux, et en identifiant le faisceau lumineux, les coordonnées de 6 DoF du robot peuvent être estimées. Un tel système est par exemple proposé par la société HTC sous le nom de "Lighthouse" (les noms 7 "HTC" et "Lighthouse" peuvent correspondre à des marques déposées). [0043] Il serait aussi possible que les robots comprennent des systèmes de suivi embarqués, par exemple basés sur des modules de mesures inertielles ou tout autre dispositif de détermination de position, permettant aux robots de détecter leurs coordonnées de 6 DoF (position et orientation), et de relayer ces informations vers le système informatique 120. [0044] Dans encore d'autres modes de réalisation, on pourrait utiliser des types de systèmes de suivi différents, comme un système basé sur des modules UWB (ultra large bande), ou des systèmes basés sur des caméras visibles dans lesquels on utilise un traitement d'image pour réaliser une reconnaissance d'objets et pour détecter les coordonnées de 6 DoF (position et orientation) des robots. [0045] Le système informatique 120 reçoit par exemple des informations provenant du système de suivi 112 indiquant, en temps réel, les coordonnées de 6 DoF (position et orientation) de chacun des objets suivis (y compris des robots) dans la zone d'activité 102. En fonction du type de système de suivi, ces informations peuvent être reçues via une connexion filaire et/ou via une interface sans fil. [0046] Le système de réalité mixte 100 comprend des caméras pour capturer en temps réel (en flux) des images vidéo de la zone d'activité qui sont traitées pour créer des flux vidéo de réalité mixte pour les afficher à des utilisateurs et/ou des spectateurs. Par exemple, le système de réalité mixte 100 comprend une ou plusieurs caméras fixes 114 disposées à l'intérieur ou à l'extérieur de la zone d'activité 102 et/ou une ou plusieurs caméras 116 montées sur certains ou sur la totalité des robots. Une ou plusieurs des caméras fixes 114 ou des caméras de robots 116 sont par exemple une caméra à mouvement panoramique et d'inclinaison, ou une caméra avec panoramique, inclinaison et zoom (PTZ). Dans le cas d'une caméra 114 externe à la zone d'activité 102, elle peut être agencée pour capturer la zone 102 entière, fournissant une vue globale de la scène de réalité mixte. [0047] Les flux vidéo capturés par les caméras 114 et/ou 116 sont par exemple relayés sans fil vers le système informatique 120, bien que pour certaines caméras, comme les caméras fixes 114, des connexions filaires puissent être utilisées. [0048] Le système informatique 120 est par exemple capable de communications sans fil avec les robots dans la zone d'activité 102. Par exemple, le système informatique 120 comprend, pour chaque robot, une interface de commande de robot munie d'une ou plusieurs antennes 122 permettant des transmissions sans fil des signaux de commande vers les robots, et une interface vidéo de robot munie d'une ou plusieurs antennes 123 permettant la réception sans fil des flux vidéos à partir des caméras 116 des robots. Bien qu'une seule antenne 122 et une seule antenne 123 soient illustrées en figure 1, le nombre de chacune des antennes est par exemple égal au nombre de robots. 8 [0049] Le système informatique 120 est par exemple un système central par l'intermédiaire duquel tous les robots se trouvant dans la zone d'activité 102 peuvent être contrôlés, toutes les interactions entre les mondes réel et virtuel sont gérées, et tout le traitement vidéo est réalisé pour créer des flux vidéo de réalité mixte. En variante, le système informatique 120 peut être constitué de plusieurs modules répartis dans différents emplacements. [0050] Des interfaces d'utilisateur permettent par exemple à des utilisateurs de contrôler un ou plusieurs des robots et/ou permettent à des utilisateurs ou des spectateurs d'être immergés dans le jeu ou l'application de réalité mixte en regardant des images de réalité mixte de la zone d'activité 102. Par exemple, une ou plusieurs interfaces de commande 125 sont prévues, comprenant par exemple un joystick 126, une manette de contrôle de jeu 128, et/ou un volant de direction 130, bien qu'on puisse utiliser tout type d'interface de commande. Les interfaces de commande 125 sont par exemple connectées par des connexions filaires au système informatique 120, bien que dans des variantes de réalisation on puisse utiliser des connexions sans fil. En outre, pour permettre à des utilisateurs ou des spectateurs d'être immergés dans le jeu ou l'application de réalité mixte en regardant des images de réalité mixte de la zone d'activité 102, une ou plusieurs interfaces d'affichage 132 sont prévues, comme un casque de réalité virtuelle (VR) ou des lunettes vidéo 136, et/ou un écran d'affichage 138, et/ou un casque de réalité augmentée (AR) à vision transparente 134, bien qu'on puisse utiliser tout type d'affichage. Dans certains modes de réalisation, des flux audio sont fournis à chaque utilisateur. Par exemple, les casques 134 et 136 sont équipés d'écouteurs. En plus ou à la place, un haut-parleur 140 peut fournir de l'audio à des utilisateurs et/ou des spectateurs. Les interfaces d'affichage 132 sont par exemple connectées par des connexions filaires au système informatique 120, bien que dans des variantes de réalisation on puisse utiliser des connexions sans fil. [0051] La zone d'activité 102 comprend par exemple, en plus des robots, un ou plusieurs autres objets statiques ou mobiles ayant des répliques virtuelles dans le monde virtuel. Par exemple, en figure 1, un mur 142 et un ballon 143 sont respectivement un objet statique et un objet mobile qui sont dupliqués dans le monde virtuel. 11 pourrait aussi y avoir toutes autres sortes d'objets, comme des éléments de scène statiques ou mobiles, des décorations, des boules, des pendules, des grilles, des portes battantes et/ou des fenêtres, etc. Les coordonnées de 6 DoF (position et orientation) de ces objets peuvent être suivies par le système de suivi 112. Comme on va le déciire ci-après, il peut y avoir des interactions entre les robots et le mur 142, et/ou le ballon 143 et/ou toutes autres sortes d'objets qui peuvent amener le système informatique 120 à produire des éléments virtuels dans le monde virtuel, et aussi des réponses physiques dans le monde réel. Bien sûr, on pourrait trouver toutes sortes de types d'objets fixes ou mobiles dans 9 la zone d'activité 102 et les dupliquer dans le monde virtuel. Dans certains modes de réalisation, tous les éléments réels, mobiles ou fixes, se trouvant dans la zone d'activité 102 ont une réplique virtuelle. Cela permet aux coordonnées de 6 DoF (position et orientation) de ces éléments réels d'être mémorisées ou suivies par le système informatique 120, et cela permet, par exemple, d'éviter des collisions de robots avec ces objets. [0052] Dans certains modes de réalisation, des utilisateurs peuvent avoir une interaction directe avec des robots dans la zone d'activité 102. Par exemple, la figure 1 illustre un utilisateur dans la zone d'activité 102 portant un casque de réalité augmentée à vision transparente (AR) 134 qui permet une vue directe des images de réalité mixte de la zone d'activité 102. Le système de suivi 112 est par exemple capable de suivre les coordonnées de 6 DoF (position et orientation) du casque AR 134, par exemple sur la base de marqueurs fixés au casque AR 134, de sorte que les images de réalité mixte appropriées peuvent être générées et fournies à l'affichage du casque AR 134. [0053] Dans certains cas, un ou plusieurs utilisateurs peuvent interagir avec un ou plusieurs robots d'une manière différente, autre que l'utilisation des interfaces de commande 125 décrites précédemment (un contrôleur de jeu, un joystick ou similaire). Par exemple, l'utilisateur se trouvant dans la zone d'activité 102 peut utiliser une baguette 144 ou tout autre objet physique pour interagir directement avec les robots. Le système de suivi 112 suit par exemple les mouvements de la baguette 144, et le système informatique 120 contrôle par exemple les robots en fonction de ces mouvements. Par exemple, un ou plusieurs drones peuvent être repoussés par la baguette 144, ou dirigés vers des régions indiquées par la baguette 144, bien que tout type d'interaction puisse être envisagé. [0054] La figure 2 représente schématiquement un exemple d'architecture du système in- formatique 120 du système de réalité mixte de la figure 1 plus en détail. [0055] Le système 120 comprend par exemple un dispositif de traitement (PROCESSING DEVICE) 202 mis en oeuvre par un ou plusieurs ordinateurs en réseau. Le dispositif de traitement 202 comprend par exemple une mémoire d'instructions (INSTR MEMORY) 204 et un ou plusieurs coeurs de traitement (PROCESSING CORE(S)) 206. Le dispositif de traitement 202 comprend aussi par exemple une mémoire de stockage (STORAGE MEMORY) 208, mémorisant les données traitées par les coeurs de traitement 206, comme on va le décrire plus en détail ci-après. [0056] Le dispositif de traitement 202 reçoit par exemple des commandes d'utilisateur (CMD) provenant desdites une ou plusieurs interfaces de commande (CONTROL INTERFACE(S)) 125. Une commande d'utilisateur correspond au contrôle souhaité par l'utilisateur du robot, indiquant par exemple un déplacement souhaité et/ou un autre comportement souhaité du robot. En outre, des commandes d'utilisateur peuvent aussi correspondre à une action de déclenchement souhaitée par l'utilisateur dans le jeu ou l'application de réalité mixte. Dans certains modes de réalisation, le dispositif de traitement 202 produit des signaux de retour FB qui sont renvoyés vers la ou les interfaces de commande 125. Ces signaux de retour amènent par exemple la ou les interfaces d'utilisateur 125 à vibrer en réponse à des événements dans le jeu ou l'application de réalité mixte, ou fournissent d'autres formes de réponse retournée (retour haptique ou autre). [0057] Le système de informatique 120 comprend par exemple une interface de caméra(s) de robot(s) (ROBOT CAMERA(S) INTERFACE) 210 qui reçoit sans fil un ou des flux vidéo bruts (RAW VIDEO STREAM(S)) à partir des caméras de robots 116 d'un ou plusieurs robots et transmet ces flux vidéo bruts au dispositif de traitement 202. En outre, le système informatique 120 comprend par exemple une interface de commande de robot (ROBOT CONTROL INTERFACE) 212 qui reçoit des signaux de commande robot (CTRL) à partir du dispositif de traitement 202 et transmet sans fil ces signaux de commande à un ou plusieurs robots. Le système informatique 120 comprend par exemple une interface de caméra(s) fixe(s) (FIXED CAMERA(S) INTERFACE) 214 qui reçoit des flux vidéo bruts à partir des caméras fixes 114 par l'intermédiaire d'une interface sans fil ou filaire et transmet ces flux vidéo bruts au dispositif de traitement 202. Bien que cela ne soit pas illustré en figure 2, le dispositif de traitement 202 peut aussi produire des signaux de commande pour contrôler le mouvement panoramique, l'inclinaison et/ou le zoom de la ou des caméras fixes 114 et/ou de la ou des caméras de robots 116. [0058] Le dispositif de traitement 202 modifie par exemple les flux vidéo bruts reçus de la ou des caméras fixes 114 et/ou de la ou des caméras de robots 116 pour générer des flux vidéo de réalité mixte (MIXED REALITY VIDEO STREAM(S)), et dans certains cas (non illustrés) des flux audio, qui sont transmis aux interfaces d'affichage (DISPLAY INTERFACE(S)) 132. [0059] Le dispositif de traitement 202 reçoit aussi par exemple des données de suivi (TRACKING DATA) correspondant aux coordonnées de 6 DoF (position et orientation) de tous les objets suivis (robots et objets statiques/mobiles) à partir du système de suivi (TRACKING SYSTEM) 112. [0060] La figure 3 illustre schématiquement les fonctionnalités du dispositif de traitement 202 de la figure 2 plus en détail, et en particulier représente un exemple de modules logiciels mis en oeuvre dans le dispositif de traitement 202 par du logiciel chargé dans la mémoire d'instructions 204 et exécuté par les coeurs de traitement 206. Bien sûr, le dispositif de traitement 202 peut avoir diverses mises en oeuvre, et certaines fonctionnalités pourraient être mises en oeuvre par du matériel ou par un mélange de matériel et de logiciel. 11 [0061] Le dispositif de traitement 202 par exemple met en oeuvre un module de réalité mixte (MIXED REALITY MODULE) 302, comprenant un module d'affichage (DISPLAY MODULE) 304 et un moteur d'interaction réel-virtuel (REAL-VIRTUAL INTERACT. ENGINE) 305. Le dispositif de traitement 202 comprend aussi par exemple une base de données (DATABASE) 306 mémorisée dans la mémoire de stockage 208, un module de commande de robots (ROBOT CONTROL MODULE) 310 et dans certains cas un module d'intelligence artificielle (A.I. MODULE) 309. [0062] Le module de réalité mixte 302 reçoit des commandes d'utilisateur (CMD) pour contrôler des robots correspondants à partir de la ou des interfaces de commande (CONTROL INTERFACE(S)) 125 des interfaces d'utilisateurs (USER INTERFACES), et dans certains modes de réalisation génère le ou les signaux de retour FB renvoyés à ces interfaces de commande 125. En plus ou à la place, un ou plusieurs robots peuvent être contrôlés par des commandes (CMD AI) générées par le module d'intelligence artificielle 309 et reçues par le module de réalité mixte 302. [0063] La base de données 306 mémorise par exemple un ou plusieurs des éléments suivants - des données de robots, comprenant au moins pour chaque robot, un modèle 3D et un modèle dynamique indiquant respectivement la forme 3D et le comportement dynamique du robot; - des données d'objets réels, comprenant au moins pour chaque objet réel statique/ mobile se trouvant dans la zone d'activité 102 un modèle 3D, et pour ceux qui sont statiques, leurs coordonnées de 6 DoF permanentes (position et orientation) ; - des données d'application de réalité mixte, comprenant par exemple des modèles 3D de chaque élément virtuel contenu dans le monde virtuel, des données d'affichage tête-haute (HUD), des données d'effets spéciaux (FX), certaines règles spécifiques dépendant de l'application, et dans le cas d'un jeu vidéo, des données d'activité de jeu - des données de caméra, comprenant au moins pour chaque caméra (la ou les caméras fixes 114 et la ou les caméras de robots 116) ses paramètres intrinsèques et extrinsèques, et pour celles qui sont fixes, leurs coordonnées de 6 DoF (position et orientation) permanentes. [0064] Le module de réalité mixte 302 construit et tient à jour le monde virtuel, qui est composé de tous les éléments virtuels y compris les répliques virtuelles des robots et des objets réels statiques/mobiles se trouvant dans la zone d'activité 102. En particulier, le moteur d'interaction réel-virtuel 305 reçoit les données de suivi (TRACKING DATA) à partir du système de suivi 112 et utilise les données mémorisées dans la base de données 306 pour assurer la synchronisation des coordonnées de 6 DoF (position et orientation) entre les éléments réels (les robots et les objets réels 12 statiques/mobiles dans la zone d'activité 102) et leurs répliques virtuelles correspondantes dans le monde virtuel. [0065] Le moteur 305 produit aussi par exemple des signaux de commande modifiés CMD' pour contrôler un ou plusieurs robots sur la base de commandes d'utilisateur initiales (CMD) ou de commande générées par Al (CMD AI) et des interactions réel/virtuel associées auxdits un ou plusieurs robots. Par exemple, ces interactions réel-virtuel sont générées en fonction des coordonnées de 6 DoF (position et orientation) suivies des robots, des données de robots (comprenant les modèles dynamiques de robots) provenant de la base de données 306, et d'événements survenant dans l'application de réalité mixte et/ou, en fonction de l'application, sur la base d'autres règles spécifiques provenant de la base de données 306. Dans le cas d'un jeu vidéo, ces règles peuvent être définies dans les données d'activité de jeu. Le moteur 305 met aussi en oeuvre par exemple des routines anticollision afin d'empêcher des collisions entre les robots eux-mêmes et/ou entre un robot et un autre objet réel dans la zone d'activité 102, et dans certains cas entre un robot et un élément virtuel se trouvant dans le monde virtuel. On va décrire ci-après certains exemples d'interactions réel-virtuel en faisant référence aux figures 8,9 et 10. [0066] Le module d'affichage 304 génère par exemple un ou des flux vidéo de réalité mixte sur la base du ou des flux vidéo bruts provenant de la ou des caméras fixes 114 et/ou de la ou des caméras de robots 116 et les relaye vers des interfaces d'affichage 132 correspondantes après avoir incorporé des éléments virtuels (comme la vue d'un ou plusieurs éléments virtuels, des données d'affichage tête-haute, des effets spéciaux visuels, etc.) générés par le moteur d'interaction réel-virtuel 305. Par exemple, des éléments virtuels générés par le moteur d'interaction réel-virtuel 305 sont synchronisés dans le temps et dans l'espace et fusionnés avec le ou les flux vidéo bruts. Par exemple, la vue d'un ou plusieurs éléments virtuels dans l'application de réalité mixte est présentée à une interface d'affichage dans une position et une orientation qui dépendent du champ de vision et des coordonnées de 6 DoF (position et orientation) de la caméra fixe ou de la caméra de robot 114/116 correspondante. [0067] Le module de commande de robots 310 reçoit par exemple les signaux de commande modifiés CMD' générés par le moteur d'interaction réel-virtuel 305 et génère un ou plusieurs signaux de commande CTRL sur la base de ces signaux de commande pour contrôler un ou plusieurs des robots (TO ROBOT CONTROL INTERFACE), comme on va le décrire plus en détail ci-après en relation avec la figure 7. [0068] On va maintenant décrire plus en détail le fonctionnement du module de réalité mixte 302 en faisant référence aux figures 4, 5 et 6(A) à 6(E). [0069] La figure 4 est une vue dans le monde réel en perspective d'une zone d'activité 400. Dans l'exemple de la figure 4, la zone d'activité 400 comprend un mur statique 402, et 13 deux robots qui sont deux drones 404 et 406. En outre, l'arrière-plan de la zone d'activité 400 comprend un décor d'arrière-plan 409 comportant des éléments graphiques imprimés. Le drone 404 comporte par exemple une caméra 116 ayant un champ de vision 407. Dans cet exemple, la caméra 116 est fixée de manière rigide au drone, niais dans des variantes de réalisation la caméra 116 pourrait être une caméra à panoramique et inclinaison, ou une caméra PTZ. [0070] La figure 5 est une vue en perspective du monde virtuel 500 correspondant à la zone d'activité 400 de la figure 4, et au même instant que la vue de la figure 4. Le monde virtuel comprend les répliques virtuelles 402', 404' et 406' correspondant respectivement au mur réel 402 et aux drones réels 404 et 406. Les positions et les orientations des répliques virtuelles 402', 404' et 406' dans le monde virtuel sont les mêmes que celles du mur réel 402 et des drones réels 404 et 406 dans le monde réel, et peuvent par exemple être déterminées par le module de réalité mixte 302 sur la base des coordonnées de 6 DoF des drones 404 et 406 fournies par le système de suivi 112, et des coordonnées de 6 DoE du mur réel 402 mémorisées dans la base de données 306. De la même manière, la réplique virtuelle 404' du drone 404 comporte une caméra virtuelle 116' ayant un champ de vision virtuel 407' correspondant au champ de vision 407 du drone réel 404. Dans l'exemple de la figure 5, il n'y a pas d'arrière-plan dans le monde virtuel. Le monde virtuel 500 comprend aussi certains éléments purement virtuels, en particulier un dragon volant 408', une explosion virtuelle 410' entre la réplique virtuelle 404' du drone 404 et la queue du dragon, et une explosion virtuelle 412' entre la queue du dragon et un bord de la réplique virtuelle 402' du mur 402. [0071] Le module d'affichage 304 produit un flux vidéo de réalité mixte en fusionnant le flux vidéo brut du monde réel capturé par la caméra 116 du drone réel 404 avec des images virtuelles du monde virtuel correspondant au point de vision de la caméra virtuelle 116' de la réplique virtuelle 404' du ch-one 404, comme on va le décrire maintenant plus en détail en faisant référence aux figures 6(A) à 6(E). [0072] La figure 6(A) est une image réelle extraite du flux vidéo brut capturé par la caméra 116 du drone 404 au même instant que celui des figures 4 et 5. En correspondance avec le champ de vision 407, cette image comprend le drone 406, une partie du mur 402, et une partie du décor d'arrière-plan 409 de la zone d'activité. Cette image est par exemple reçue par le module d'affichage 304 du module de réalité mixte 302 à partir de la caméra 116 du drone 404 par l'intermédiaire de l'interface de caméras de robots 210 de la figure 2. [0073] La figure 6(B) illustre une image produite par ordinateur correspondant au point de vision de la caméra virtuelle 116' de la réplique virtuelle 404' du drone 404 au même instant que celui des figures 4 et 5. Cette image comprend une partie du dragon 408', 14 une partie de l'explosion 410' et des parties des répliques virtuelles 402' et 406' du mur 402 et du drone 406. L'image comprend aussi par exemple, dans l'avant-plan, un afficheur tête-haute (HUD) 602' indiquant par exemple un score d'un joueur et/ou d'autres informations selon l'application de réalité mixte. Dans le présent mode de réalisation, l'image est construite à partir des plans suivants : - premier plan : le HUD 602' ; - deuxième plan : l'explosion 410' ; - troisième plan : la portion de queue du dragon 408' ; - quatrième plan : la réplique virtuelle 402' du mur ; - cinquième plan : les ailes du dragon 408' ; - sixième plan : la réplique virtuelle 406' du drone ; - septième plan : la tête du dragon 408' ; - plan d'arrière-plan : vide, comme cela est représenté par des hachures en trait pointillé interrompu en figure 6B. [0074] La figure 6(C) illustre un exemple de masque d'image généré à partir de l'image de la figure 6(B) par le module d'affichage 304, dans lequel des zones de l'image réelle de la figure 6(A) qui doivent être conservées dans l'image finale (l'arrière-plan et des parties visibles des répliques virtuelles) sont représentées par des hachures en diagonale, et des zones à remplacer par des parties visibles des éléments purement virtuels de la figure 6(B) sont représentées en blanc. [0075] La figure 6(D) représente l'image de la figure 6(A) après l'application du masque d'image de la figure 6(C). Les contours des zones dans lesquelles les éléments virtuels vont être ajoutés sont représentés par des lignes en trait interrompu. [0076] La figure 6(E) représente l'image finale faisant partie du flux vidéo de réalité mixte, et correspondant à l'image de la figure 6(D) sur laquelle les éléments virtuels de la figure 6(B) ont été fusionnés. Dans cet exemple, l'image finale comprend la fusion des images vidéo originales du (Irone 406, du mur 402, et du décor d'arrière-plan 409, avec les éléments purement virtuels 408', 410' et 602'. Cette fusion est réalisée tout en prenant en compte les occultations possibles entre les divers plans de l'image. [0077] Dans certains modes de réalisation, le module d'affichage 304 génère, pour chaque image du flux vidéo brut en cours de traitement, un masque d'image similaire à celui de la figure 6(C), qui est appliqué à l'image correspondante du flux vidéo brut. Le moteur d'interaction réel-virtuel 305 fournit aussi par exemple au module d'affichage 304 une image comprenant les éléments virtuels à fusionner avec l'image réelle, similaire à l'exemple de la figure 6(B), et le module d'affichage 304 fusionne par exemple les images pour générer l'image finale similaire à celle de la figure 6(E). [0078] Le module d'affichage 304 traite par exemple chaque flux vidéo brut reçu d'une caméra de robot/fixe 116/114 de manière similaire à l'exemple des figures 6(A) à 6(E) afin de générer des flux vidéo de réalité mixte correspondants vers chaque interface d'affichage. [0079] La figure 6 est utilisée pour illustrer les principes qui peuvent être utilisés pour générer les images de réalité mixte, et il sera évident pour l'homme de l'art que la mise en oeuvre de ces principes pourrait prendre diverses formes. [0080] La figure 7 illustre schématiquement une boucle de commande 700 pour contrôler un robot, comme un drone 108 de la figure 1, selon un exemple de réalisation, en utilisant le moteur d'interaction réel-virtuel (REAL-VIRTUAL INTERACTION ENGINE) 305 et le module de commande de robots 310 de la figure 3. [0081] Comme cela est représenté en figure 7, des commandes d'utilisateur (CMD) ou des commandes générées par AI (CMD AI) sont reçues par le moteur d'interaction réel-virtuel 305, et sont traitées en prenant en compte les événements survenant dans l'application de réalité mixte et/ou d'autres règles spécifiques comme des routines anticollision, afin de générer des commandes modifiées CMD', qui sont fournies au module de commande de robots 310. [0082] Le module de commande de robots 310 comprend par exemple un module de fonction de transfert 701 qui transforme chaque commande CMD' en un état de robot souhaité (DESIRED STATE), comprenant les coordonnées de 6 DoF souhaitées (position et orientation) du robot. Le module 310 comprend aussi un module de soustraction 702 qui calcule en continu une valeur d'état d'erreur (ERR STATE) comme étant la différence entre l'état de robot souhaité et l'état de robot mesuré (MEASURED STATE) généré par un autre module de fonction de transfert 703 sur la base des données de suivi (TRACKING DATA) fournies par le système de suivi 112. La valeur d'état d'erreur est fournie à un contrôleur (CONTROLLER) 704, qui par exemple utilise le modèle dynamique de robots (ROBOT DYNAMIC MODELS) provenant de la base de données 306, et vise à générer des signaux de commande CTRL qui minimisent cette valeur d'état d'en-eur. Les signaux de commande CTRL générés sont par exemple transmis sans fil aux robots 108 par l'intermédiaire de l'interface de commande de robots. [0083] On va maintenant décrire plus en détail la modification des signaux de commande CMD par le moteur d'interaction réel-virtuel 305 par l'intermédiaire de quelques exemples en faisant référence aux figures 8 à 10. Ces figures illustrent un exemple de la commande d'un drone 802. Cependant, il apparaîtra à l'homme de l'art que les principes pourraient s'appliquer à d'autres types de robots. [0084] La figure 8(A) illustre un premier exemple dans lequel le drone 802 vole en direction d'une zone d'augmentation virtuelle 804', qui par exemple existe seulement sous forme d'un élément virtuel dans le monde virtuel. Une jauge de poussée 806' est illustrée en association avec le drone 802, et indique, à l'aide d'une ban-e grisée, le 16 niveau de poussée appliqué au drone à un instant donné. Cette jauge de poussée 806' est présentée afin d'aider à la compréhension du fonctionnement du moteur d'interaction réel-virtuel 305, et une telle jauge virtuelle peut être ou non affichée à un utilisateur, par exemple en tant que partie du HUD, en fonction de l'application de réalité mixte. [0085] Une version agrandie dc la jauge de poussée 806' est représentée en haut de la figure 8(A). On peut voir que cette jauge est divisée en quatre parties. Un point central correspond à une poussée nulle (0), et les zones à gauche dc cc point correspondent à une poussée inverse appliquée au dronc 802, alors que les zones à droite de ce point correspondent à une poussée directe appliquée au dronc 802. Une portion 808 couvre une plage dc poussée directe allant de zéro jusqu'à une limite CMD_MAX de la commande d'utilisateur, et une portion 810 couvre une plage de poussée inverse allant de zéro à une limite -CMD_MAX dc la commande d'utilisateur. Une portion 812 couvre une plage de poussée directe allant de CMD_MAX à un niveau supérieur CMD MAX', et une portion 814 couvre une plage de poussée inverse allant dc - CMD_MAX à un niveau -CMD MAX'. Les niveaux CMD_MAX' et -CMD MAX' correspondent par exemple aux limites effectives du drone en termes de poussée. Ainsi, les portions 812 et 814 ajoutent de la flexibilité au moteur d'interaction réel-virtuel 305 lui permettant dc dépasser les limites normales de commande d'utilisateur pour ajouter des effets du monde réel en réponse à des événements virtuels, comme on va le décrire plus en détail ci-après. Dans certains modes de réalisation, la puissance appliquée au robot pour générer la poussée résultant de la commande CMD_MAX' est supérieure d'au moins 50 % à la puissance appliquée au robot pour générer la poussée résultant de la commande CMD_MAX. [0086] Dans l'exemple de la figure 8(A), la jauge de poussée 806' indique une poussée directe inférieure au niveau CMD_MAX, cette poussée résultant par exemple seulement de la commande d'utilisateur CMD pour le drone 802. Ainsi, le ch-one se déplace à vitesse modérée en direction de la zone 804', comme cela est représenté par une flèche 816. [0087] La figure 8(B) illustre le drone 802 un peu plus tard lorsqu'il atteint la zone d'augmentation virtuelle 804'. Le moteur d'interaction réel-virtuel 305 détecte la présence du drone 802 dans cette zone 804', et augmente alors la poussée jusqu'à un niveau renforcé compris entre CMD_MAX et CMD_MAX', comme cela est indiqué par la jauge de poussée 806'. Comme cela est représenté par une flèche 818, la vitesse du drone 802 augmente par exemple en résultat de cela jusqu'à un niveau haut. Par exemple, le moteur d'interaction réel-virtuel 305 détermine la nouvelle poussée sur la base de la commande d'utilisateur CMD, augmentée d'un certain pourcentage, comme 100 %. 17 [0088] La figure 9 illustre un exemple de fonctionnalité de clôture virtuelle, sur la base d'un mur virtuel 902'. [0089] La figure 9(A) correspond à un premier instant où le drone 802 se déplace en direction du mur virtuel 902', par exemple avec la poussée maximum CMD_MAX de la commande d'utilisateur, entraînant une vitesse relativement élevée. [0090] La figure 9(B) illustre la situation juste après la collision. Lorsque le drone 802 atteint un point situé à une distance donnée du mur 902', le moteur d'interaction réel-virtuel 305 simule par exemple une collision en appliquant une poussée inverse maximum -CMD_MAX' au drone 802 pour simuler un rebond sur le mur 902'. En réponse, le drone 802 par exemple ralentit rapidement jusqu'à l'arrêt, puis repart en marche arrière, par exemple sans même dépasser le mur virtuel 902'. Simultanément, une explosion virtuelle 904' peut être générée dans le monde virtuel afin de donner un retour visuel de la collision virtuelle aux utilisateurs / spectateurs. [0091] Bien que dans l'exemple de la figure 9 le mur 902' soit purement virtuel, on pourrait utiliser la même approche pour éviter des collisions avec des objets réels dans la zone d'activité 102. [0092] La figure 10 illustre un exemple de collision simulée sans contact entre deux drones. [0093] La figure 10(A) correspond à un premier instant où le drone 802 se déplace à une vitesse relativement faible dans une direction avant, et un autre drone 1002 se déplace dans la même direction vers le drone 802 avec la poussée maximum CMD_MAX et ainsi à une vitesse relativement élevée. [0094] La figure 10(B) illustre la situation après une collision sans contact simulée entre les drones 802 et 1002. Par exemple, lorsque le ch-one 1002 atteint une certaine distance par rapport au drone 802, le moteur d'interaction réel-virtuel 305 simule une collision en appliquant une poussée inverse élevée au drone 1002, comme cela est représenté par la jauge de poussée 1004', par exemple entre les limites -CMD_MAX et - CMD_MAX', pour simuler un rebond à partir de la collision. Le moteur d'interaction réel-virtuel 305 augmente aussi par exemple la poussée du drone 802, par exemple jusqu'à la poussée avant maximum CMD_MAX', afin de simuler que le drone 802 est poussé avec force par derrière. Simultanément, une explosion virtuelle 1006' peut être générée dans le monde virtuel afin de donner un certain retour visuel de la collision sans contact aux utilisateurs / spectateurs. [0095] Dans certains cas, le moteur d'interaction réel-virtuel 305 peut aussi simuler des dommages causés à un robot à la suite d'une collision, par exemple en réduisant toute commande d'utilisateur CMD d'un certain pourcentage pour simuler une perte de poussée. [0096] Un avantage des modes de réalisation décrits ici est qu'ils permettent de mettre en oeuvre un système de réalité mixte dans lequel des événements dans un monde virtuel 18 peuvent être utilisés pour générer des réponses dans le monde réel. Cela est obtenu en générant, par le moteur d'interaction réel-virtuel 305, des commandes de robot modifiées pour créer des comportements de robot spécifiques dans le monde réel. Cela permet par exemple une simulation relativement approchée d'événements virtuels dans le monde réel, amenant ainsi une expérience d'utilisateur particulièrement réaliste. [0097] Avec la description ainsi faite d'au moins un mode de réalisation illustratif, diverses altérations, modifications et améliorations apparaîtront facilement à l'homme de l'art. Par exemple, il apparaîtra clairement à l'homme de l'art que les diverses fonctions du système informatique décrit ici pourraient être mises en oeuvre entièrement en logiciel ou au moins partiellement en matériel. [0098] En outre, il apparaîtra clairement à l'homme de l'art que les divers éléments décrits en relation avec les divers modes de réalisation pourraient être combinés, dans des variantes de réalisation, selon diverses combinaisons. 19 [Revendication 1] [Revendication 2] [Revendication 3] [Revendication 4]