Hello tout le monde!
Autant vous le dire tout de suite, je vais vous présenter une envie qui me trotte dans la tête depuis un moment déjà, mais la réalisation promet d'être titanesque! (surtout pour moi, qui suis loin d'être expert! ^^)
En quelques mots, j'ai envie de faire des salles indoor de drones et autres véhicules RC, totalement automatisées (free-to-play oblige!), dans lesquelles nous pourrions jouer en ligne.
Autant dire que cela va soulever quelques défis techniques, aussi je viens vous proposer d'étudier la chose ensemble, l'union fait la force!
Les impératifs:
-une géolocalisation au poil de *** près (environ 1cm)
-une latence réduite à sa plus simple expression (très clairement, en dessous de 50ms, y compris connexion joueur/serveur)
-(toujours garder à l'esprit que plus il y a de véhicules ensembles sur le circuit, plus c'est fun! Gare aux interférences!)
Je précise que sur la latence nous avons une possibilité pour se simplifier la tâche si besoin, le "GPS" servira essentiellement au contrôle automatisé en local des véhicules, si l'on manque de temps on peut se passer d'envoyer les données calculées par nos soins dans les tuyaux du web.
Avant d'aller plus loin, laissez moi vous introduire une idée toute bête concernant le système "GPS" qui, je l'espère, vous séduira autant que moi...
Étant donné que nous parlons de salles indoor, je penses pouvoir me passer des phases de calculs harassantes, pour déterminer la position.
En lieu et place des systèmes que vous connaissez déjà, j'ai envie de faire un truc extrêmement redondant, avec une véritable multitude de récepteurs radiofréquences planqués dans le circuit, sans même prendre de précautions pour les positionner précisément.
Ensuite, pour que le système s'auto-configure, je coiffe mon circuit d'un châssis robotique 3 axes (comme une imprimante 3D), au bout duquel je viens fixer un des modules d'émission (celui qui sera sur les véhicules, un petit gueulard qui balance son nom et peut-être l'heure toutes les x ms).
Puis, je lance un programme dont la tâche sera de balader l'émetteur dans toutes les zones accessibles aux véhicules, afin de relever les données de réception qui correspondent à tel ou tel endroit de la "map".
Magique, non?
Une idée que j'ai eu hier soir, 24h de réflexion n'ont pas suffit pour m'en dégouter, c'est plutôt bon signe!
Allez, passons à la partie plus technique, je vais commencer par une petite liste de ce que l'on trouveras niveau hardware côté véhicule et côté circuit, pour que vous cerniez un peu mieux de quoi je parles. (je restes volontairement vague)
Côté véhicule:
-Une UC, arduino ou autre contrôleur de vol, probablement plusieurs versions en fonction des exigences des différents types de véhicules.
-Des capteurs
-Un émetteur pour le "GPS"
-Un émetteur pour les capteurs (peut-être couplé avec l'émetteur "GPS")
-Un émetteur pour la vidéo (5.8Ghz)
-Un récepteur pour les commandes du drone
Côté circuit:
-Une multitudes de récepteurs pour le "GPS"
-Une réception des infos des capteurs
-Une réception des différents flux vidéos
-Un émetteur des commandes des véhicules (pour éviter de filtrer les redondances, il faudrait prévoir là un seul émetteur par véhicule, qui couvre toute la zone)
-ce qu'il faudra pour traiter les données et les envoyer en ligne, ou encore contrôler les véhicules en full-auto sur place, mais c'est un autre chapitre.
C'est encore très vague, mais vu qu'il faut bien commencer quelque part, je vais me concentrer tout d'abord sur la partie "GPS".
Pour faire ce petit miracle, 2 options intéressantes s'offrent à nous:
-travail sur la puissance de réception du signal
-travail sur la différence entre l'heure d'envoi et l'heure de réception du signal (probablement plus précis que la première, mais cela demande plus de calculs et plus de programmation, notamment une coordination régulière des horloges véhicules/circuit, bref c'est carrément plus compliqué, je la garde sous le coude en plan B!)
Donc, si je veux travailler sur la puissance du signal, il est bon d'envisager une technologie qui perd très rapidement de l'intensité avec la distance.
Elle me semble toute trouvée --> bluetooth
Une fois arrivé là me viennent nombre de questions que le novice que je suis a encore un peu de mal à résoudre, je suis sûr que vous allez pouvoir me faire gagner du temps!
Tout d'abord, par manque d'habitude j'ai beaucoup de mal à identifier la bonne architecture pour remonter les infos des récepteurs "GPS", ainsi que pour estimer les délais d'une telle architecture, si vous pouviez m'aider à y voir plus clair!
Question concrète: si j'ai entre 100 et 200 modules de réception bluetooth que je veux relier à une UC (une vraie, une grosse!) le plus rapidement possible; quelle architecture prévoir pour une latence la plus faible possible? (si ça prend plus de 5 voire maxi 10ms, j'abandonne!)
Autre question, si quelqu'un a l'habitude d'utiliser l'un ou l'autre des modules bluetooth pour arduino, savez vous s'il est aisé de récupérer des données fiables sur la puissance de réception du signal? Est-ce intégré/déjà réalisé? Ou bien une galère de plus à développer soi-même, ce qui m'orienterais vers le plan B?
Voici un bonne base pour les (nombreuses!) réflexions à venir, bravo si vous avez tenu jusque-là, en espérant que tout ceci puisse allez plus loin, imaginez seulement...
-des courses de bolides volants et roulants
-des décors "plus vrais que nature"
-des simulateurs de tout un tas de véhicules hors du commun, tels que des pelleteuses et des bulldozers, qui deviennent attrayants avec du vrai sable à pousser, un vrai terrain à modifier...
-des "sandboxs réelles" totalement gérées par la communauté, où l'on pourrait imaginer des joueurs qui construisent des circuits avec les bulldozers, tandis que d'autres viennent courir dessus en quad ou en buggy, par exemple.
-des couches virtuelles en plus de l'image filmée
-des jeux de tirs ne sont pas à exclure à terme, par exemple avec des drones, si leur positionnement deviens très très précis, nous pouvons imaginer tirer avec des projectiles virtuels, que l'on voit par dessus le retour caméra, avec le drone adverse qui part en vrille s'il est touché.
-(...)
C'est tout un monde de jeu qui s'ouvre à nous!
Joyeuses fêtes! ^^