Λ
Procédé de définition d'un référentiei commun pour un système de jeux vidéo
L'invention concerne un procédé de définition d'un référentiei commun pour un système de jeux vidéo. En particulier, l'invention concerne aussi le suivi d'objets dans ce référentiei commun.
Le document WO 01/95988 A1 décrit un jeu de chasse pour deux véhicules télécommandés. Les véhicules sont commandés par deux utilisateurs et l'un des deux véhicules chasse l'autre. Les véhicules télécommandés sont chacun équipés d'une caméra vidéo. Les images délivrées par la caméra vidéo sont communiquées à deux ordinateurs, chacun des deux ordinateurs étant utilisés par l'un des deux joueurs contrôlant l'un des deux véhicules télécommandés. Chaque joueur peut donc voir sur l'écran de son ordinateur l'image délivrée par la caméra vidéo correspondante de son véhicule télécommandé.
Dans l'application du jeu de chasse mentionné ci-dessus, l'image vidéo du véhicule chasseur est traitée de telle façon que, si le véhicule chassé entre dans le champ de vision de la caméra vidéo du véhicule chasseur, l'ordinateur enlève de façon numérique l'image correspondant au véhicule chassé de l'image délivrée par la caméra vidéo du véhicule chasseur. L'image enlevée du véhicule chassé est remplacée par un personnage virtuel du jeu vidéo.
Dans ce contexte, le document WO 01/95988 envisage que le véhicule chassé soit équipé d'éléments réfléchissants sur les points essentiels de sa surface extérieure. Ces points réfléchissants servent à faciliter la détection de l'image du véhicule chassé dans l'image vidéo délivrée par la caméra vidéo du véhicule chasseur.
Ce document décrit donc l'utilisation de zones reconnaissables, c'est-à- dire d'éléments réfléchissants présents sur le véhicule chassé. En revan- che, un tel système ne permet pas la mise dans un même référentiei de deux véhicules télécommandés lors de l'initialisation d'un jeu vidéo. Le document US 6 309 306 A1 décrit également un système permettant de définir de façon générale un référentiei commun à deux véhicules télécommandés, mais avec les mêmes limitations que dans le cas du docu- ment précédent.
Le but de la présente invention est donc de proposer un tel procédé de définition d'un référentiel commun.
Selon l'invention, ce but est atteint par un procédé de définition d'un référentiel commun pour un système de jeu vidéo, le système comprenant : - au moins deux véhicules télécommandés, un premier véhicule et un second véhicule, comprenant chacun un capteur vidéo ; et
- un élément de référence avec des zones reconnaissables ; le procédé comprenant les étapes suivantes :
- positionnement du premier véhicule par rapport à l'élément de réfé- rence de façon à ce que des zones reconnaissables soient dans le champ de vision du capteur vidéo du premier véhicule ;
- traitement de l'image délivrée par le capteur vidéo du premier véhicule positionné pour repérer les zones reconnaissables dans l'image ;
- déduction de la position du premier véhicule par rapport à l'élément de référence grâce au repérage des zones reconnaissables ;
- transmission de la position du premier véhicule au deuxième véhicule. Le référentiel commun selon l'invention est un référentiel unique partagé par les deux véhicules télécommandés permettant d'initialiser les positions respectives des deux véhicules télécommandés par rapport à un point d'origine unique au début du jeu et de suivre les déplacements des deux véhicules durant le déroulement du jeu.
De préférence, le point d'origine du référentiel commun est défini par l'élément de référence comprenant des zones reconnaissables. Dans une application préférée, l'élément de référence est un objet réel distinct et indépendant des deux véhicules, notamment un pont ou un pylône, servant à définir un point de départ pour un jeu de course entre les deux véhicules.
De façon alternative, l'élément de référence peut aussi être intégré au deuxième véhicule sous forme d'un agencement d'éléments optiques. Dans ce dernier cas, l'élément de référence peut être un agencement de phares ou d'éléments réfléchissants tels qu'on les trouve à l'avant et à l'arrière de voitures automobiles.
De préférence, les zones reconnaissables de l'élément de référence comprennent des éléments optiques, notamment des LED clignotant à une fréquence connue ou des mires réfléchissantes.
Les deux véhicules télécommandés sont de préférence des jouets sous forme de véhicules terrestres, notamment des voitures de course ou des chars, ou des véhicules aériens, notamment des quadricoptères. Selon les étapes du procédé de l'invention, en premier, on place le pre- mier véhicule dans les alentours de l'élément de référence. L'emplacement du premier véhicule doit être choisi de telle façon que les zones re- connaissables de l'élément de référence entrent dans le champ de vision du capteur vidéo du véhicule. Si le premier véhicule est placé de telle façon que l'image délivrée par son capteur vidéo ne reproduit pas la partie de l'élément de référence contenant des zones reconnaissables, le traitement d'image effectué après ne pourra détecter des zones reconnaissables dans l'image délivrée par le capteur vidéo. Dans ce cas, le premier véhicule devra être replacé pour permettre le repérage des zones reconnaissables dans l'image. Une fois que les zones reconnaissables ont été repérées dans l'image, on en déduit la position du premier véhicule par rapport à l'élément de référence. Cette position peut être exprimée sous forme de coordonnées à deux ou trois dimensions et définissant la position du premier véhicule par rapport à l'élément de référence qui sert comme point d'origine dans le référentiel commun.
Finalement, la position du premier véhicule qui a été déduite est transmise au deuxième véhicule.
De préférence, les étapes du traitement de l'image ainsi que de la déduction de la position du premier véhicule sont effectuées par un calculateur embarqué sur le premier véhicule.
De façon préférée, le système de jeu vidéo peut en outre comprendre au moins deux entités électroniques, notamment deux consoles portables servant chacune à télécommander l'un des deux véhicules. Dans ce cas là, les images vidéo délivrées par les capteurs vidéo des véhicules télé- commandés peuvent être affichées sur des écrans des entités électroniques et les étapes de traitement d'images et des déductions de position peuvent être effectuées par des calculateurs présents dans les entités électroniques. De préférence, la déduction de la position du premier véhicule par rapport à l'élément de référence s'effectue par triangulation.
De plus, la communication entre les véhicules télécommandés et, le cas échéant entre les entités électroniques et les véhicules télécommandés, telle que la transmission de la position du premier véhicule au deuxième véhicule, peut s'effectuer par transmission radio à courte distance, no- tamment par protocole Bluetooth ou WiFi (marques déposées).
Le procédé selon l'invention possède l'avantage majeur de permettre la mise en place d'un système de coordonnées unique pour un système de jeux vidéo incluant plusieurs véhicules télécommandés. Ainsi, lors de l'initialisation d'un jeu vidéo, tel qu'un jeu de course ou un jeu de tir qui est censé impliquer les deux véhicules télécommandés, le système est en mesure de connaître les positions exactes des véhicules parties au jeu, ce qui est un pré requis pour un affichage et un suivi fiable de la position des véhicule durant le jeu vidéo. Un tel procédé est particulièrement avantageux pour un système de jeux vidéo où les véhicules télécommandés évo- luent sur un terrain réel quelconque qui n'est pas particulièrement aménagé pour des jeux vidéo, tel qu'un parc ou un jardin, et où le jeu a lieu dans une zone de jeux virtuels s'appuyant sur le terrain réel. Lorsque les différents jouets sont mis dans un même référentiel unique, un ou plusieurs objets virtuels peuvent être ajoutés dans l'espace du jeu. Par exemple, il peut s'agir de plots virtuels délimitant un circuit automobile pour voitures, ou d'anneaux virtuels visualisant un circuit pour des quadri- coptères volants. Les objets virtuels ajoutés peuvent se déplacer dans le référentiel. Ils peuvent être par exemple des voitures virtuelles se déplaçant sur un circuit ou des avions ennemis se déplaçant autour de quadri- coptères. Les objets sont alors visualisés par incrustation dans un espace en 3 dimensions de la console de jeux utilisée pour commander le jouet. Durant la période du jeu, les différents véhicules, par exemple des voitures ou des quadricoptères, de préférence estiment leur déplacement et leur position. Ceci se fait grâce à des capteurs embarqués qui peuvent être des accéléromètres, des gyroscopes, des caméras vidéos, des capteurs de pression, des capteurs de tension analogiques sur les moteurs de propulsion et de direction. Les mesures de ces capteurs peuvent être fusionnées et filtrées par des algorithmes d'un microcontrôleur embarqué sur le véhicule télécommandé. Puis, par des moyens radio, chaque jouet peut transmettre sa position à l'ensemble des autres jouets, soit chaque
fois qu'il se déplace, soit avec une fréquence donnée, par exemple 25 fois par seconde. De cette manière, durant tout le déroulement du jeu et dans le référentiel commun établi à la séquence initiale du jeu, les coordonnées des engins qui se déplacent sont tenues à jour. Grâce à l'ajout d'objets virtuels dans l'espace en 3 dimensions du jeu vidéo et la mise à jour en temps réel des positions des jouets, une interaction complète peut être mise en scène par le concepteur du jeu vidéo. Les différents jouets vidéo peuvent participer à un même jeu. Des joueurs peuvent les piloter. Les scénarios de jeu peuvent être une course de voi- ture sur un circuit virtuel, un jeu de tir l'un contre l'autre ou l'un avec l'autre contre des ennemis virtuels, ou bien un vol en formation lorsque on pilote un avion ou un quadricoptère.
On va maintenant décrire des exemples de mise en œuvre des procédés de l'invention, ainsi que des dispositifs et systèmes représentant des formes de réalisation de l'invention, en référence aux dessins annexés où les mêmes références numériques désignent d'une figure à l'autre des éléments identiques ou fonctionnellement semblables.
La figure 1 illustre une vue d'ensemble du système de jeu vidéo selon l'invention ;
Les figures 2a et 2b montrent deux exemples de véhicules télécommandés selon l'invention ; Les figures 3a et 3b sont des schémas synoptiques des éléments électroniques d'un véhicule télécommandé selon l'invention ; Les figures 4a à 4c montrent plusieurs exemples d'images aériennes utilisées dans le système de jeu vidéo selon l'invention ; La figure 5 illustre un principe de définition de zones de jeu selon l'inven- tion ;
Les figures 6a et 6b montrent la vue en deux dimensions selon l'invention ;
Les figures 7a à 7c montrent la vue en perspective selon l'invention ; La figure 8 est un exemple du point de vue délivré par la caméra vidéo embarquée sur le véhicule télécommandé selon l'invention ;
La figure 9 est un exemple d'affichage sur la console portable selon l'invention ;
La figure 10 illustre le positionnement virtuel d'un circuit de course sur une image aérienne selon l'invention ; La figure 11 illustre le procédé d'ajustement d'affichage selon l'invention ; Les figures 12a à 12 c illustrent un procédé de définition d'un référentiel commun selon l'invention ; et
Les figures 13a à 13 c illustrent une version alternative d'un jeu de course selon l'invention. 0
La figure 1 donne une vue d'ensemble d'un système selon l'invention. Le système comprend un système de jeu vidéo constitué d'un véhicule télécommandé 1 (dénommé par l'acronyme BTT, c'est-à-dire « BlueTooth Toy », ou bien WIT, c'est-à-dire « WiFiToy ») ainsi que d'une console portable 3 qui communique avec le véhicule 1 par une liaison Bluetooth 5. Le véhicule 1 peut être télécommandé par la console portable 3 à travers la liaison Bluetooth 5. Le véhicule 1 est en relation avec plusieurs satellites 7 à travers un cap- teur GPS embarqué sur le véhicule 1.
La console portable 3 quant à elle peut être équipée d'une connexion d'accès à Internet sans fil à haut débit, telle qu'une connexion WiFi 9. Cette connexion permet à la console 3 d'accéder au réseau Internet 11. De façon alternative, si la console portable n'est pas équipée elle-même d'une connexion à Internet, on peut envisager une connexion indirecte à Internet 13 à travers un ordinateur 15.
Une base de données 17 contenant des images aériennes terrestres est accessible à travers l'Internet 11. Les figures 2a et 2b montrent à titre d'exemple deux réalisations différen- tes du véhicule télécommandé 1. Sur la figure 2a, le jouet télécommandé 1 est une voiture de course. Cette voiture de course 1 dispose d'une caméra vidéo 19 intégrée dans son toit. L'image délivrée par la caméra vidéo 19 est communiquée à la console portable 3 par la liaison Bluetooth 5 pour être affichée sur l'écran de la console portable 3. La figure 2b montre que le jouet télécommandé 1 peut aussi être consti-
tué d'un quadricoptère à 4 hélices 21. De même façon que pour la voiture de course, le quadricoptère 1 dispose d'une caméra vidéo 19 sous forme de dôme se trouvant au centre de celui-ci.
Bien entendu, le véhicule télécommandé 1 peut aussi se présenter sous la forme d'un autre engin, par exemple sous la forme d'un bateau, d'une moto ou d'un char.
En résumé, le véhicule télécommandé 1 est essentiellement un véhicule piloté qui transmet la vidéo, auquel on ajoute des capteurs. Les figures 3a et 3b montrent de façon schématique les principaux com- posants électroniques du véhicule télécommandé 1.
La figure 3a détaille les composants électroniques de base. Un calculateur 23 est connecté à différents éléments périphériques tels que la caméra vidéo 19, des moteurs 25 servant à déplacer le véhicule télécommandé, et diverses mémoires 27 et 29. La mémoire 29 est une carte SD, c'est-à-dire une carte mémoire amovible de stockage de données numériques. Cette carte 29 peut être supprimée mais de préférence elle est gardée car sa fonction est d'enregistrer l'image vidéo délivrée par la caméra 19 pour ainsi permettre le repassage de séquences vidéo enregistrées. La figure 3b montre les fonctions additionnelles embarquées sur le véhi- cule télécommandé 1. Le véhicule 1 comprend essentiellement deux fonctions additionnelles : une centrale inertielle 31 , comprenant trois accélé- romètres 33 et trois gyroscopes 35, et un capteur GPS 37. Les fonctions additionnelles sont connectées au calculateur 23 par exemple par liaison série. On peut aussi ajouter une connexion USB (Universal Sériai Bus) au véhicule 1 pour pouvoir mettre à jour les logiciels exécutés dans le système électronique du véhicule 1.
La centrale inertielle 31 est un élément important du véhicule 1. Elle permet d'estimer en temps réel et précisément les coordonnées du véhicule. Elle estime en tout neuf coordonnées pour le véhicule : les positions X, Y, Z du véhicule dans l'espace ; les angles d'orientation D, G, D du véhicule (angles d'Euler) ; ainsi que les vitesses VX, VY, VZ sur chacun des trois axes cartésiens X, Y et Z.
Ces coordonnées de déplacement proviennent des trois accéléromètres 33 ainsi que des trois gyroscopes 35. Ces coordonnées peuvent être ob- tenues après un filtre de Kalman en sortie des mesures des capteurs.
Plus précisément, un microcontrôleur effectue la mesure et retransmet par liaison série ou bus série (Sériai Peripheral Interconnect, SPI) au calculateur 23. Le calculateur 23 effectue principalement un filtrage de Kalman et renvoie par la connexion Bluetooth 5 la position ainsi déterminée du véhi- cule 1 à la console de jeu 3. Le calcul du filtrage peut être optimisé : le calculateur 23 connaît les consignes qui sont envoyées au moteur de propulsion et de direction 25. Il peut utiliser ces informations pour établir la prédiction du filtre de Kalman. La position instantanée du véhicule 1 déterminée à l'aide de la centrale inertielle 31 est renvoyée à une fréquence de 25 Hz à la console de jeu 3, c'est-à-dire que la console de jeu reçoit une position par image.
Si le calculateur 23 est trop chargé en calcul, les mesures brutes issues de la centrale inertielle 31 peuvent être envoyées à la console de jeu qui effectuera elle-même le filtre de Kalman à la place du calculateur 23. Cette solution n'est pas souhaitable pour la simplicité et la cohérence du système car il vaut mieux que la totalité des calculs du jeu vidéo soit faite sur la console 3 et que la totalité de l'acquisition des données soit faite par le véhicule 1 , mais elle est néanmoins envisageable. Les capteurs de la centrale inertielle 31 peuvent être réalisés sous forme de capteurs piézoélectriques. Ces capteurs ont une forte variation à la température, ce qui signifie qu'on doit les maintenir à une température constante avec une sonde de température et un rhéostat ou qu'on doit, en utilisant une sonde de température, mesurer la température au niveau de ces capteurs piézoélectriques et compenser par logiciel la variation des capteurs à la température.
Le capteur GPS 37 n'est pas une fonction essentielle du véhicule télécommandé 1. Cependant, il permet une grande richesse de fonctions à un prix modeste. Il suffit un GPS d'entrée de gamme qui fonctionne principalement en extérieur et qui n'a pas un besoin de suivi en temps réel du tra- jet puisque le suivi en temps réel du trajet est assuré par la centrale inertielle 29. Il est aussi envisageable d'utiliser un GPS sous forme de logiciel. La console de jeu 3 est une console portable quelconque disponible sur le marché. Des exemples connus actuellement de consoles portables sont la Playstation portable (PSP) de Sony ou la Nintendo DS de Nintendo. Elle peut être pourvue d'une clé (dongle) Bluetooth 4 (cf. fig. 1 ) pour commu-
niquer par radio avec le véhicule 1.
La base de données 17 (figure 1) contient une bibliothèque d'images aériennes de préférence du monde entier. Il peut s'agir de photos obtenues à partir de satellites ou d'avions ou d'hélicoptères. Les figures 4a à 4c montrent divers exemples d'images aériennes pouvant être obtenues de la base de données 17. La base de données 17 est accessible par Internet afin que la console 3 puisse y accéder.
Les images aériennes téléchargées de la base de données 17 sont utilisées par la console de jeu 3 pour créer des points de vue synthétiques qui sont intégrés dans des jeux vidéo s'exécutant sur la console 3.
On va maintenant décrire le procédé selon lequel la console 3 acquiert les images aériennes de la base de données 17. Pour cela, l'utilisateur de la console 3 place son véhicule télécommandé 1 à un endroit réel, tel que dans un parc ou un jardin, où il veut jouer. Grâce au capteur GPS 37, le véhicule 1 détermine ses coordonnées terrestres. Celles-ci sont alors transmises par la liaison Bluetooth ou WiFi 5 à la console 3. La console 3 se connecte alors par la connexion WiFi 9 à travers Internet à la base de données 17. S'il n'y a pas de connexion WiFi sur le lieu du jeu, la console 3 mémorise la position terrestre déterminée. Ensuite, le joueur se déplace vers un ordinateur 15 ayant accès à Internet. Le joueur branche la console 3 sur l'ordinateur et la connexion entre la console 3 et la base de données 17 s'effectue alors de façon indirecte à travers l'ordinateur 15. La connexion entre la console 3 et la base de données 17 étant établie, les coordonnées terrestres mémorisées par la console 3 sont utilisées pour effectuer une recherche d'images aériennes ou de cartes dans la base de données 17 qui correspondent aux coordonnées terrestres. Une fois qu'une image reproduisant la zone terrestre dans laquelle se trouve le véhicule 1 a été trouvée dans la base de données 17, la console 3 télécharge l'image aérienne trouvée. La figure 5 donne un exemple de définition géométrique d'un fond de jeu en deux dimensions utilisé pour un jeu vidéo impliquant la console 3 et le véhicule 1.
Les carrés et rectangles montrés à la figure 5 représentent des images aériennes téléchargées de la base de données 17. Le carré d'ensemble A est divisé en 9 rectangles intermédiaires. De ces 9 rectangles intermédiai-
res le rectangle central est lui-même sous divisé en 16 carrés. De ces 16 carrés, 4 carrés au centre représentent la zone de jeu B proprement dite.' Cette zone de jeu B peut être chargée avec la définition maximum des images aériennes et les alentours immédiats de la zone de jeu B, c'est-à- dire les 12 carrés restants des 16 carrés, peuvent être chargés avec une définition moindre des images aériennes et les marges du jeu représentées par les 8 rectangles non sous divisés, à la périphérie du rectangle central sous divisé, peuvent être chargées avec des images aériennes de la base de données avec une définition encore moindre. En jouant sur la définition des différentes images proches ou éloignées du centre du jeu, la quantité de données à stocker et à traiter sur la console est optimisée et l'effet visuel de leur mise en perspective n'en est pas affecté. Les images les plus lointaines du centre du jeu sont affichées avec une définition correspondant à leur éloignement. Les images aériennes téléchargées sont utilisées par la console 3 pour créer des points de vue différents qui pourront être utilisés dans des jeux vidéo correspondants. Plus précisément, on envisage que la console 3 est capable de créer au moins deux points de vue différents à partir des images aériennes téléchargées, à savoir un point de vue à la verticale en deux dimensions (cf. les figures 6a et 6b) ainsi qu'un point de vue en perspective en trois dimensions (cf. les figures 7a à 7c). La figure 6a montre une image aérienne telle que téléchargée par la console 3. Le véhicule télécommandé 1 se trouve quelque part sur le terrain visualisé par l'image aérienne de la figure 6a. Cette image aérienne est utilisée pour créer une image de synthèse telle que montrée schéma- tiquement à la figure 6b. Le rectangle 39 représente l'image aérienne de la figure 6a. Sur ce rectangle 39 sont incrustés trois objets graphiques 41 et 43. Ces objets graphiques représentent respectivement la position du véhicule télécommandé sur la zone de jeu représentée par le rectangle 39 (cf. la tache 43 qui correspond à la position du véhicule télécommandé) et la position d'autres objets réels ou virtuels (cf. les croix 41 , pouvant par exemple représenter la position de concurrents réels ou d'ennemis virtuels d'un jeu vidéo). Il est envisageable que le logiciel du véhicule 1 veille à ce que celui-ci ne sorte pas de la zone de jeu définie par le rectangle 39.
Les figures 7a et 7c montrent le point de vue en perspective qui peut être réalisé par la console 3 à partir des images aériennes téléchargées. Cette image en perspective comprend un "sol" 45 dans lequel est inséré l'image aérienne téléchargée. Les côtés 47 quant à eux sont des images virtuelles de perspective à l'infini dont un exemple est montré à la figure 7b. Celles- ci sont générées par le moteur graphique trois dimensions en temps réel de la console de jeu 3.
Comme pour le point de vue en deux dimensions, des objets graphiques 41 et 43 indiquent aux joueurs la position de son propre véhicule (43) ain- si que la position de co-joueurs ou d'ennemis potentiels (41).
Pour la création des points de vue, il est aussi envisageable de télécharger le maillage d'élévation de la base de données 17. La figure 8 montre le troisième point de vue 49 qui est envisagé dans le système de jeu vidéo, à savoir le point de vue délivré par la caméra vidéo 19 embarquée sur le véhicule télécommandé 1. La figure 8 montre un exemple d'un tel point de vue. Sur cette image réelle vidéo, on incruste différents objets graphiques virtuels en fonction du jeu vidéo utilisé par le joueur. La figure 9 montre la console de jeu 3 avec un affichage qui résume de quelle façon les points de vue discutés antérieurement sont présentés au joueur. On distingue bien le point de vue 49 correspondant à l'image vidéo délivrée par la caméra vidéo 19. Le point de vue 49 comprend des incrustations virtuelles 51 qui dans le cas de la figure 9 sont des plots virtuels délimitant le parcours d'un circuit virtuel. Dans le point de vue 49, on peut aussi voir le capot réel 53 du véhicule téléguidé 1.
Le deuxième point de vue 55 correspond au point de vue vertical en deux dimensions montré aux figures 6a et 6b. Le point de vue 55 est constitué de la reproduction d'une image aérienne du terrain de jeu, sur laquelle est incrusté un circuit de course virtuel 57 avec un point 59 se déplaçant sur le circuit virtuel 57. Ce point 59 indique la position actuelle de l'engin téléguidé 1. En fonction du jeu vidéo, le point de vue en deux dimensions 55 peut être remplacé par une vue en perspective telle que décrite antérieurement. Finalement, l'affichage tel que montré à la figure 9 comprend une troisième zone 61 qui montre ici la jauge d'essence virtuelle du véhicule 1. On va maintenant décrire un exemple de jeu vidéo pour le système de jeu
vidéo montré à la figure 1. L'exemple est une course de voitures effectuée sur un terrain réel à l'aide du véhicule télécommandé 1 et de la console de jeu 3, la particularité de ce jeu étant que le circuit de course n'est pas réellement démarqué sur le terrain réel mais est uniquement positionné de façon virtuelle sur le terrain réel de jeu dans lequel évolue le véhicule 1.
Pour initialiser le jeu vidéo de course, l'utilisateur procède à l'acquisition de l'image aérienne correspondant à son terrain de jeu de la façon qui a déjà été décrite antérieurement. Une fois que la console de jeu 3 a télé- chargé l'image aérienne 39 reproduisant une vue verticale du terrain de jeu sur lequel se trouve la voiture 1 , le logiciel dessine un circuit de course virtuel 57 sur l'image aérienne 39 téléchargée tel que cela est montré à la figure 10. Le circuit 57 est généré de telle façon que sa ligne de départ virtuelle soit positionnée sur l'image aérienne 39 à proximité de la position géographique du véhicule 1. Cette position géographique du véhicule 1 correspond aux coordonnées délivrées par le module GPS, à laquelle on ajoute des valeurs physiques connues des dimensions du véhicule 1. Avec les touches 58 de la console 3, le joueur peut faire pivoter le circuit 57 autour de la ligne de départ, soumettre le circuit 57 à une homothétie en conservant la ligne de départ comme point invariant de l'homothétie (L'homothétie est réalisée dans des proportions définies correspondant à la manceuvrabilité de la voiture), ou faire glisser le circuit autour de la ligne de départ. On peut aussi prévoir de faire glisser la ligne de départ sur le circuit, le véhicule devant dans ce cas là rejoindre la ligne de départ pour commencer la partie.
Tout cela peut par exemple être utile si le jardin de la maison où le joueur désire exécuter le jeu vidéo n'est pas assez grand pour le circuit dessiné initialement par le logiciel. Le joueur peut ainsi changer la position du cir- cuit virtuel jusqu'à ce que celui-ci soit bien positionné sur le terrain de jeu réel.
Dans le cadre d'un jouet vidéo volant qui est une des applications préférées, par exemple un quadricoptère, une centrale inertielle de l'engin volant est utilisée pour le stabiliser. Une consigne de vol est transmise par la console de jeux à l'engin volant, par exemple « vol stationnaire » « virage
à droite » ou « atterrissage ». Le logiciel du microcontrôleur embarqué sur l'engin volant utilise les gouvernes de celui-ci : modification de vitesse des hélices ou contrôle de gouvernes aérodynamiques pour faire coïncider les mesures de la centrale inertielle avec la consigne de vol. De même, dans le cas du jouet vidéo de type véhicule automobile, des consignes sont retransmises par la console au microcontrôleur du véhicule, par exemple « tourner à droite » ou « freiner » ou « vitesse 1 mètre/seconde ». Le jouet vidéo peut disposer de capteurs principaux, par exemple un GPS et/ou une centrale inertielle composée d'accéléromètres ou de gyroscopes. Il peut aussi disposer de capteurs additionnels comme une caméra vidéo, un moyen de compter les tours des roues d'une voiture, un capteur de pression de l'air pour estimer la vitesse pour un hélicoptère ou un avion, un capteur de pression d'eau pour déterminer la profondeur pour un sous marin, ou des convertisseurs analogique vers numérique pour mesurer la consommation de courant à divers points de l'électronique embarquée, comme par exemple la consommation de chaque moteur électrique pour la propulsion ou la direction. Ces mesures peuvent être utilisées pour estimer la position du jouet vi- déo sur le circuit durant toute la séquence du jeu.
La mesure principalement utilisée est celle de la centrale inertielle qui comprend des accéléromètres et/ou gyroscopes. La mesure de celle-ci peut être confortée en utilisant un filtre, par exemple un filtre de Kalman, qui permet de réduire le bruit et de fusionner les mesures des autres cap- teurs, caméras, capteurs de pression, mesure de consommation électrique des moteurs, etc..
Par exemple, la position estimée du véhicule 1 peut être recalée périodiquement en utilisant l'image vidéo délivrée par la caméra 19 et en estimant le mouvement à partir de points fixes significatifs du décor dans l'image qui sont de préférence des points de fort contraste de l'image vidéo. La distance aux points fixes peut être estimée en minimisant des matrices selon des techniques de triangulation connues. La position peut aussi être recalée sur une plus grande distance (environ 50 mètres) en utilisant le GPS, en particulier des modules GPS récents utilisant des mesures de phases du signal des satellites.
La vitesse du jouet vidéo peut être estimée en comptant les tours de roue en utilisant par exemple une roue codée.
Si le jouet vidéo est propulsé par un moteur électrique, sa vitesse peut aussi être estimée en mesurant la consommation dudit moteur. Ceci re- quiert la connaissance du rendement du moteur à différents régimes, qui peut être mesuré préalablement sur un banc d'essai. Un autre moyen d'estimer la vitesse est d'utiliser la caméra vidéo 19. Dans le cas d'une voiture ou d'un engin volant, la caméra vidéo 19 est fixe ou bien sa position est connue par rapport au corps de l'engin et sa lon- gueur focale est aussi connue. Le microcontrôleur du jouet vidéo effectue un codage vidéo de type MPEG4, par exemple en utilisant le codage H263 ou H264. Ce codage implique le calcul de prédiction de mouvement de sous-ensemble de l'image entre deux images vidéo. Par exemple, ce sous-ensemble peut être un carré de 16*16 pixels. La prédiction de mou- vement est de préférence effectuée par un accélérateur matériel. L'ensemble des mouvements des sous-ensembles de l'image fourni une excellente mesure de vitesse de l'engin. Lorsque l'engin est fixe, la somme des mouvements des sous-ensembles de l'image est proche de zéro. Lorsque l'engin avance en ligne droite, les sous-ensembles d'image s'éloignent du point de fuite avec une vitesse proportionnelle à la vitesse de l'engin.
Dans le contexte du jeu vidéo de course de voitures, l'écran est divisé en plusieurs éléments tel que cela est montré à la figure 9. L'élément de gauche 49 visualise l'image délivrée par la caméra vidéo 19 de la voiture 1. L'élément de droite 55 permet de voir la carte du circuit et les voitures concurrentes (cf. le point de vue en haut à droite de la figure 9). Des indicateurs peuvent visualiser la vitesse réelle (à l'échelle de la voiture). Des paramètres du jeu peuvent être ajoutés, comme la vitesse ou la consommation d'essence de la voiture, qui peuvent être simulés (comme pour une course d'un grand prix de formule 1 ).
Dans le cadre de ce jeu vidéo, la console peut aussi mémoriser des courses. Si on ne dispose que d'une voiture, on peut courir contre soi-même. Dans ce cas là, sur l'écran, on peut envisager d'afficher l'image en trois dimensions en transparence de la position de la voiture lors d'un tour mémorisé.
La figure 11 détaille la façon dont les incrustations virtuelles 51 , c'est-à- dire les plots du circuit de course, sont adaptées dans l'affichage 49 correspondant au point de vue de la caméra vidéo embarquée sur le véhicule 1. La figure 11 montre de côté la topographie 63 du terrain réel sur lequel se déplace le véhicule 1 en exécutant le jeu vidéo de course. On constate que le sol du terrain de jeu n'est pas plat mais présente des descentes et des montées. La pente du terrain varie, ce qui est représenté par les flèches 65. Par conséquent, l'incrustation des limites du circuit 51 sur l'image vidéo ne peut pas être statique mais doit s'adapter en fonction de la pente du terrain de jeu. Pour prendre en compte ce problème, la centrale inertielle 31 du véhicule 1 dispose d'un capteur de l'assiette du véhicule. La centrale inertielle effectue une acquisition en temps réel de l'assiette instantanée du véhicule 1. A partir des valeurs instantanées de l'assiette, l'électronique du véhicule 1 estime deux valeurs, à savoir la pente du terrain (c'est-à-dire la moyenne à long terme de l'assiette) et la rugosité du circuit (c'est-à-dire la moyenne à court terme de l'assiette). Le logiciel utilise la valeur de la pente pour compenser l'affichage, c'est-à-dire pour déplacer les plots incrustés 51 sur l'image vidéo tel que cela est indiqué par la flèche 67 à la figure 11.
Il est aussi prévu que le logiciel d'ajustement de l'affichage des plots 51 fasse de l'apprentissage. Après que le véhicule 1 ait effectué un premier tour sur le circuit virtuel 57, les valeurs de pente et de rugosité sont connues pour tout le circuit, mémorisées et utilisées dans la composante prédiction d'un filtre de Kalman qui réestime la pente et la rugosité au prochain tour.
L'incrustation des plots virtuels 51 sur l'image vidéo peut aussi être améliorée en affichant uniquement des plots discontinus et en affichant un nombre faible de plots, par exemple uniquement 4 plots de chaque côté de la route. De plus, les plots distants peuvent être d'une couleur différente et uniquement servir comme indications et non comme définitions réelles du contour de la piste. De plus, les plots distants peuvent aussi être plus espacés que les plots proches. En fonction de l'application envisagée, il peut s'avérer nécessaire d'esti- mer en plus le mouvement de roulis de la voiture pour ajuster la position
des plots 51 , c'est-à-dire l'inclinaison éventuelle de la voiture par rapport à son axe longitudinal.
L'estimation de la rugosité du circuit sert de préférence à extraire Ia mesure de la pente dans les données issues des capteurs. Afin de définir précisément la géométrie du sol sur laquelle le circuit est posé, une phase d'apprentissage peut être conduite par le jeu vidéo. Cette phase d'apprentissage s'effectue avantageusement avant le jeu proprement dit, à vitesse lente et constante commandée par la console de jeux. Il est demandé au joueur de réaliser un premier tour de circuit pen- dant lequel la mesure des capteurs est mémorisée. A la fin du tour de piste, la valeur de l'élévation en de nombreux points du circuit est extraite des données mémorisées. Ces valeurs d'élévation sont ensuite utilisées durant le jeu pour positionner correctement les plots virtuels 51 sur l'image vidéo. Les figures 12a à 12c détaillent un procédé de définition d'un référentiel commun lorsque le jeu de course est effectué par deux ou plus véhicules télécommandés 1. Dans ce cas de figure, on est en présence de deux joueurs disposant chacun d'un véhicule télécommandé 1 et d'une console portable 3. Ces deux joueurs désirent effectuer l'un contre l'autre avec leurs deux véhicules 1 une course de voiture sur un circuit virtuel 57. L'initialisation d'un tel jeu à deux peut par exemple s'effectuer en sélectionnant le mode "deux voitures" sur sa console. Ceci a pour effet que le protocole Bluetooth ou WiFi de chaque voiture 1 entre en mode "recherche de partenaire". Lorsque la voiture partenaire est trouvée, chaque voiture 1 annonce à sa console 3 que le partenaire a été trouvé. Une des consoles 1 effectue alors la sélection des paramètres du jeu : choix du circuit tel que décrit antérieurement, le nombre de tours de course, etc. Puis le compte à rebours est lancé sur les deux consoles : les deux voitures communiquent entre elles grâce au protocole Bluetooth ou WiFi. Dans un but de simplification des échanges entres les différents périphériques chaque voiture 1 communique avec sa console 3 mais non avec celles des autres voitures. Les voitures 1 s'envoient alors leurs coordonnées en temps réel et chaque voiture 1 envoie ses propres coordonnées et les coordonnées du ou des concurrents à sa console 3 pilote. Sur la console, l'affichage du circuit 55 montre les positions des voitures 1.
Dans un tel jeu à voitures, le protocole Bluetooth se trouve dans un mode « Scatternet ». L'une des voitures est alors « Maître » et la console qui lui est appareillée est « Esclave », de même que l'autre voiture qui elle aussi est « Esclave ». De plus, les voitures s'échangent entre elles leur position. Un tel jeu de course avec deux ou plusieurs véhicules télécommandés 1 nécessite lors de l'initialisation du jeu que les voitures 1 soient mises dans le même référentiel commun. Les figures 12a à 12c détaillent le procédé de définition d'un référentiel commun correspondant. Tel que le montre la figure 12a, les voitures télécommandées 1 avec leur caméra vidéo 19 sont positionnées en face d'un pont 69 placé sur le terrain de jeu réel. Ce pont réel 69 représente Ia ligne de départ et est équipé de quatre LED 71. Chaque joueur pose sa voiture 1 de manière à ce qu'au moins deux LED 71 soient visibles sur l'écran de sa console 3. Les LED 71 ont des couleurs connues et peuvent clignoter à une fré- quence connue. De cette façon, les LED 71 peuvent être repérés facilement dans les images vidéo délivrées respectivement par les deux caméras vidéo 19. Un calculateur présent sur chacun des véhicules 1 ou chacune des consoles 3 effectue du traitement d'image et estime par triangulation la position respective de sa voiture 1 par rapport au pont 69. Une fois qu'une voiture 1 a estimé sa position par rapport au pont 69, elle transmet sa position à l'autre voiture 1. Les deux voitures 1 ayant estimé chacune leur position par rapport au pont 69, on en déduit la position des voitures 1 entre elles et la course peut commencer. La figure 12b est une vue de devant du pont 69 montrant les quatre LED 71. La figure 12c donne une représentation de l'affichage d'une console 3 lors de la procédure de détermination de la position d'un véhicule 1 par rapport au pont 69. Sur la figure 12c, on voit clairement que le calculateur effectuant le traitement d'image a réussi à détecter les deux LED clignotantes 71 , ce qui est indiqué sur la figure 12c par deux réticules 73. Une telle définition d'un référentiel commun par rapport au sol et entre les véhicules est particulièrement utile pour un jeu de course (chaque véhicule doit se référencer au circuit de course).
Pour d'autre jeux vidéo, tel qu'un jeu de tir, la définition d'un référentiel commun est plus simple : pour chaque véhicule il suffit de connaître sa position par rapport aux concurrents.
Les figures 13a à 13c sont des clichés correspondant à une version alternative du jeu vidéo de course, le jeu de course n'impliquant cette fois non une ou plusieurs voitures 1 mais plutôt un ou plusieurs quadricoptères 1 tel que montré à la figure 2b. Dans ce cas là, où le véhicule télécomman- dé 1 est un quadricoptère, la centrale inertielle est non seulement utilisée pour transmettre les coordonnées en trois dimensions du jouet à la console 3, mais aussi pour fournir au processeur embarqué sur le quadricoptère 1 les informations nécessaires pour le programme qui stabilise le quadricoptère 1. Avec un quadricoptère, la course n'est plus sur une piste comme dans le cas d'une voiture mais en trois dimensions. Dans ce cas, le circuit de course n'est plus représenté par des plots virtuels incrustés tels que montré à la figure 9, mais par exemple par des cercles virtuels 75 incrustés dans l'image vidéo (cf. fig. 13b) délivrée par la caméra vidéo 19 qui flottent dans l'espace. Le joueur doit diriger son quadricoptère 1 à travers les cercles virtuels 75.
Comme pour la voiture, trois vues sont possibles : l'image vidéo livrée par la caméra vidéo 19 avec des incrustations virtuelles, la vue à la verticale reposant sur une image aérienne téléchargée et la vue en perspective se basant également sur une image satellite ou aérienne téléchargée.
La figure 13b donne un aperçu d'une image vidéo à cercles virtuels incrustés 75 tel qu'elle pourra se présenter lors d'un jeu impliquant un quadricoptère. Le positionnement du circuit sur l'image aérienne téléchargée est effectué de la même façon que pour la course de voiture. Le circuit est positionné à la main par le joueur de façon à le positionner correctement en fonction des obstacles et des bâtiments. De la même façon, l'utilisateur peut ho- mothétier le circuit, le faire tourner autour du point de départ et faire glisser le point de départ sur la piste. L'étape de positionnement du circuit 57 est visualisée à la figure 13a.
De la même façon que pour la course de voitures, on prévoit pour une course impliquant plusieurs quadricoptères un élément séparé définissant la ligne de départ, par exemple un pylône 77 pourvu de trois LED clignotantes ou éléments réfléchissants 71. Les quadricoptères ou drones sont alignés dans le même repère grâce à l'image de leur caméra 19 et les
points significatifs dans l'image représentés par les trois LED 71 du pylône 77 qui clignotent. Du fait que tous les paramètres géométriques sont connus (position de la caméra, longueur focale, etc.), on positionne l'engin 1 sans ambiguïté dans le référentiel commun. Plus précisément, on posi- tionne l'engin 1 de telle façon qu'il soit posé sur le sol avec le pylône 77 en vue, on vérifie sur l'écran de sa console 3 que l'on voit bien les trois LED 71 clignoter. Les trois LED 77 clignotantes représentent les points significatifs pour la reconnaissance du repère. Le fait qu'elles clignotent à une fréquence connue permet de les identifier plus facilement par le logi- ciel.
Une fois la position par rapport au pylône 77 connue, les quadricoptères 1 s'échangent les informations (chacun passe à l'autre sa position par rapport au pylône 77) et de cette manière chaque quadricoptère 1 déduit la position de son concurrent. La course peut commencer depuis la position du quadricoptère 1 à laquelle a été effectuée la détection du pylône 77 par traitement d'image. Mais bien sûr la course peut aussi commencer depuis une autre position, la centrale inertielle pouvant mémoriser les déplacement des quadricoptères 1 de leur positon initiale vis-à-vis du pylône 77 avant la course. Un autre jeu envisagé est le jeu de tir entre deux ou plusieurs véhicules. Par exemple, le jeu de tir peut impliquer des chars munis d'une caméra vidéo fixe ou installée sur une tourelle ou bien des quadricoptères ou bien des quadricoptères contre des chars. Dans ce cas, il n'est pas nécessaire de connaître la position de chaque engin par rapport à un circuit mais plus simplement de connaître la position de chaque engin l'un par rapport à l'autre. Une procédure plus simple peut être mise en œuvre. Chaque engin dispose de LED clignotantes à une fréquence connue, avec des couleurs connues ou/et une géométrie connue à l'avance. Grâce au protocole de communication chaque engin échange avec les autres des informa- tions sur son type, la position de ses LED, leur fréquence de clignotement, leur couleur, etc.. On place chaque engin de manière qu'au début du jeu les LED de l'autre engin soit dans le champ de vision de son capteur vidéo 19. En effectuant une opération de triangulation on peut déterminer la position de chaque engin l'un par rapport à l'autre. Le jeu peut alors commencer. Chaque engin connaît, grâce à sa centrale
inertiθlle et ses autres moyens de mesure, sa position et son mouvement. Il les transmet aux autres engins.
Sur la console vidéo, l'image d'un viseur est incrustée par exemple au centre de l'image vidéo transmise par chaque engin. Le joueur peut don- ner une consigne de tir de projectiles vers un autre engin.
Au moment du tir, connaissant les positions retransmises par les autres engins et sa propre position, orientation et vitesse, le logiciel de l'engin tireur peut estimer si le tir a atteint son but. Le tir peut simuler un projectile qui arrive immédiatement sur sa cible, ou bien simuler le parcours parabo- lique d'une munition, ou le cheminement d'un missile guidé. La vitesse initiale de l'engin qui effectue le tir, la vitesse du projectile, la simulation de paramètres extérieurs, par exemple des conditions atmosphériques, peuvent être simulées. De cette manière, le tir du jeu vidéo peut être rendu plus ou moins complexe. La trajectoire des munitions missile, balle tra- çante, etc. peut être affichée en surimposition sur la console.
Les engins tels que des véhicules roulants ou volants peuvent aussi estimer la position des autres engins dans le jeu. Cela peut se faire par un algorithme de reconnaissance de formes utilisant l'image de la caméra 19. Sinon les engins peuvent être munis de parties permettant une identifica- tion comme par exemple des LED. Ces parties permettent en permanence aux autres engins d 'estimer leur position en plus des informations de la centrale inertielle transmises par les moyens radio. Ceci permet de rendre le jeu plus réaliste. Par exemple lors d'un jeu de chasse les uns contre les autres, un des joueurs peut se cacher derrière un détail du ter- rain, par exemple derrière un arbre. Le jeu vidéo, même s'il est informé grâce au moyens radio de la position de l'adversaire, ne pourra pas le repérer sur l'image vidéo et donc il invalidera le tir même si il est dans la bonne direction. Lorsqu'un engin est informé par sa console qu'il a été touché, ou lors d'une autre action de jeu, par exemple la simulation de manque de carburant, d'une panne ou de conditions atmosphériques, une séquence de simulation propre au scénario du jeu vidéo peut s'enclencher. Par exemple, dans le cas d'un quadricoptère, celui-ci peut être pris de secousses, ne plus voler en ligne droite, ou bien se poser d'urgence. Dans le cas d'un char, celui-ci peut simuler des dommages, rouler moins vite ou simuler le
fait que sa tourelle est bloquée. La transmission vidéo peut aussi être modifié, par exemple les images peuvent arriver brouillées, assombries, ou des effets comme les vitres de cockpit brisées peuvent être incrustées sur l'image vidéo. Le jeu vidéo selon l'invention peut mêler :
- les actions des joueurs : piloter les engins ;
- des éléments virtuels : un circuit ou des ennemis visualisés sur la console de jeux ;
- des simulations : des instructions envoyées au jouet vidéo pour modi- fier son comportement, par exemple une panne moteur et la limitation de la vitesse de l'engin ou une plus grande difficulté de pilotage. Ces trois niveaux d'interaction permettent d'accroître le réalisme entre le jeu vidéo sur la console et un jouet muni de capteurs et d'une caméra vidéo.