DVR Simulator – Un nouveau simulateur FPV

Cela fait un moment que j’avais pas pris le temps d’écrire un article sur mon blog, et pour cause, des tas de changements. Aujourd’hui j’aimerais prendre 5 minutes pour parler de mon nouveau projet à long terme : DVR Simulator. Pour ceux qui ne sont pas familiarisés le FPV (First Person View), c’est une discipline où on ajoute un système de transmission vidéo à un drone de course et on utilise des lunettes qui affichent le retour caméra avec une latence très faible. On peut faire de la course (les fameuses courses de drone), du freestyle, du cinématique, du long range, etc.. Il existe aujourd’hui plusieurs excellents simulateurs comme Liftoff et DRL par exemple.

Mes deux drones, un Martian VI 4S et un LAL5 6S

Pourquoi un autre simulateur ?

Un BetaFPV 65 Pro sur un bando

J’utilise beaucoup le simulateur Liftoff et je trouvais dommage qu’il n’y ai pas d’option pour utiliser un casque VR afin de simuler les lunettes FPV. De là j’ai réalisé un petit proof of concept avec Unity où je contrôlais un drone en première personne en VR. Au début en stéréo, puis en monoscopique, c’est à dire avec l’équivalent d’un écran de cinéma devant les yeux, de la 2D donc, comme les lunettes FPV.

Le simulateur fonctionne aussi bien sur un écran standard (une majorité de personnes) qu’avec un casque VR. Il n’est pas nécessaire d’avoir un casque VR, il est là uniquement pour simuler les lunettes, si vous en avez un.

De là j’ai continué de développer l’idée et j’ai fais essayer mon simulateur à des proches qui sont soit pilotes FPV, soit pilote avion/hélico. Ce qui ressortait c’est que les gens qui n’ont pas l’habitude des drones, n’y arrivaient pas du tout. C’était donc probablement une très bonne idée d’ajouter un module dédié à l’apprentissage du pilotage de drone.

Tu es fou ! Utiliser la VR ça va rendre les gens malade !

C’est malheureusement quelque chose que j’entend souvent et pour cause, les gens ne lisent pas 🙂 Les lunettes FPV diffusent la même image sur les deux yeux, il n’y a donc pas de profondeur et ça ne rend pas malade. Dans les lunettes ont a une image en NTCS, PAL ou HD avec un champs de vision maximum de 50° ! Le simulateur va faire la même chose avec le casque, c’est à dire utiliser la même image sur les deux yeux et proposer un champs de vision (réglable) entre 30° et 50°.

L’expérience est ainsi très proche de ce que l’on a dans les lunettes en vrai, sans motion sickness, car ce n’est pas de la stéréo.

Mais du coup pas de stéréo du tout ? C’est pas de la VR !

On peut activer une vue stéréoscopique et avoir un immersion totale, en VR avec de la profondeur. C’est quelque chose de rigolo à essayer, mais ce n’est pas recommandé de l’activer si on est sensible car c’est très intensif (sauf si vous faite de la cinématique). Il y a plusieurs modes stéréo

  • Stéréo sans head tracking et sans positional tracking (comme sur les lunettes FPV, mais en 3D)
  • Stéréo avec head tracking et sans positional tracking
  • Stéréo avec head et positional tracking

Et pour les pilotes confirmés ?

Je ne pense pas pouvoir, seul, rivaliser avec des gros simulateurs comme Liftoff ou DRL. Cependant je vais faire de mon mieux pour que tout le monde soit satisfait. Une demande très récurrente est la possibilité de tout régler sur le drone. J’ai un début de réponse à ça !

L’éditeur de Physique du drone

Comme vous pouvez le voir sur la capture d’écran ci-dessus, l’éditeur de physique permet de régler tout un tas de choses. On a les paramètres de frottement et frottement angulaire, la puissance des moteurs, les rates et prochainement les PIDs. J’ai aussi un composant permettant de simuler du vent ! Il n’est pas encore activable, mais ça sera prochainement le cas. Enfin il est possible de sauvegarder et partager ses paramètres !

L’étude du code source de Betaflight

Betaflight est un firmware open source utilisé dans un tas de contrôleur de vol. Pour simuler un drone, c’est une bonne idée d’essayer de fonctionner comme lui. Le code de Betaflight est très spécifique aux microcontrôleurs, mais sa lecture est cependant très instructive.

Naviguer dans le code de Betaflight (et d’Emuflight récemment) est très intéressant car il y a plusieurs subtilités que l’utilisateur classique ne connait pas. Par exemple il est possible de choisir comment les rates sont calculées (Betaflight, KISS, Raceflight). Les valeurs PIDs exposées dans le configurateur ne sont pas les valeurs appliquées, elles sont toutes multipliées par une constante différente !

Il y a probablement pleins d’autres choses rigolotes dans le code que je découvrirais au fur et à mesure.

Un point technique sur la différence entre un vrai drone et un simulateur

Dans la vie réelle, nous avons un tas de contraintes physiques ! Le gyroscope par exemple est utilisé pour calculer les rotation du drone et ce composant ne donne malheureusement pas une valeur très juste. Le signal est effectivement très perturbé, il faut donc le filtrer. En fait, il y a un tas de filtres partout sur les contrôleurs de vol.

Dans un simulateur nous sommes dans des conditions parfaites ! C’est ce qui explique le gap qu’il peut y avoir souvent entre un simulateur et la réalité.

Parlons des modes de jeu

Il y a 3 modes de jeu :

  • Apprentissage où on apprend comme faire voler un drone
  • Freestyle
  • Racing

Le mode Racing dispose d’un mode multijoueur différé ! En gros vous allez faire une course, plusieurs tours et à la fin de la partie, les données de votre course seront enregistrées dans un fichier. Ce fichier peut être partagé avec d’autres utilisateurs du simulateur. Une fois sur un autre PC, l’autre joueur peut choisir de jouer contre vous.

Evidemment, je prévois d’intégrer du multijoueur en temps réel, le code est fait pour, mais j’aime beaucoup l’idée du multijoueur différé. C’est aussi grâce à cette fonctionnalité qu’il y a des opposants ! Tous les bots sont en réalité des courses enregistrées par de vrais pilotes FPV !

Prise en charge des manettes et des radios commande

Le jeu est réglé pour fonctionner par défaut avec des manettes types Xbox One/PS4. Avec cette configuration le simulateur est tout à fait utilisable, il n’y a pas de soucis de dead zone ou autre. Je fais beaucoup de tests à la manettes (je ne pilote pas aux pouces en plus) et c’est une très bonne expérience.

L’intérêt d’un simulateur de drone FPV est d’utiliser une vraie radio ! Prendre en charge plusieurs radios est un vrai cauchemar car aucun constructeur ne semble s’accorder sur les valeurs min/mid/max des axes renvoyées. La X9 Lite est un bon exemple de radio qui renvoie des valeurs cohérentes. Quoi qu’il en soit pour palier à ça, il y a un système de calibration manuel avec 3 moteurs d’entrées utilisateur. Cela laisse 3 fois plus de possibilités au simulateur de prendre en charge votre radio. Pour l’instant le moteur principal (SDL2) semble fonctionner avec la gamme FrSky et Devo.

Quid des drones disponibles

Pour le moment le simulateur intégre les drones suivant :

  • BetaFPV 65 Pro
  • F330*
  • ZMR 250*
  • Un quad type Phantom pour l’apprentissage
  • Une frame type obsession**
  • Une vielle frame**

(*) Ces deux drones sont les premières machines sur lesquelles j’ai volé, j’en garde de très bons souvenirs
(**) Ces deux drones vont disparaitre dans la version finale

L’idée c’est d’ajouter des drones réel, comme le Beta FPV 65 Pro, mais ce n’est pas évident, il faut demander les droits d’utilisation, etc… Il y aura dans tous les cas au moins une dizaine de drone dans la version 1.0

Disponibilité, Prix et Plateformes

Le simulateur n’est pas encore disponible et ne sera terminé, au mieux, qu’à la fin de l’année 2020. Il arrivera sur les plateformes suivantes :

PlateformeDistribution
WindowsSteam, Itch.io, Microsoft Store
Linux, MacSteam, Itch.io
AndroidItch.io, Playstore
Oculus QuestItch.io, Sidequest
Le jeu fonctionne aussi sur Xbox One !

J’aimerais aussi qu’il arrive sur Xbox One et pourquoi pas d’autres supports. Mais j’aurais l’occasion d’en reparler plus tard.

Suivre le projet

Sur Facebook ou via mon compte Twitter !

A bientôt 🙂