Lynx Orb-SLAM3 propose un suivi 6DoF open source performant pour casques Android XR Snapdragon, favorisant transparence, personnalisation et innovation libre.
Lynx Orb-SLAM3 : suivi 6DoF open source pour casques Android XR
Lynx vient de publier un système de suivi de position 6DoF open source qui tourne sur Android et s’appuie sur l’algorithme ORB-SLAM3.
Pensé pour les SoC Qualcomm (XR2 Gen 1/Gen 2 notamment), il exploite le DSP Hexagon pour déplacer une grosse partie du calcul hors CPU et offrir un tracking fluide tout en préservant l’autonomie. Au-delà de l’annonce, c’est un pas concret vers une XR plus ouverte, où chercheurs, makers et petites équipes peuvent itérer sans dépendre d’un SDK propriétaire.
Petit rappel : Lynx est la startup française derrière le casque autonome Lynx R1. Le suivi publié ici n’est pas celui utilisé par défaut sur le R1 (de nombreux constructeurs s’appuient sur la pile Qualcomm), mais une alternative ready-to-use orientée ouverture, auditabilité et personnalisation. En clair : si vous avez besoin d’un SLAM dont vous comprenez chaque ligne et que vous pouvez modifier pour votre configuration capteurs, vous êtes au bon endroit.
Sommaire
Pourquoi ce SLAM open source compte
- Transparence : code auditable (GPLv3), utile pour les secteurs sensibles (santé, défense, industrie).
- Portabilité : conçu pour Android/ARM, adaptable à d’autres matériels ARM au-delà de Qualcomm.
- Performance : pipe caméra 640×400 → pose 6DoF à ~90 FPS sur Snapdragon XR2 Gen 1 grâce au DSP.
- Contrôle : vous gérez l’intégration runtime, la récupération après perte, les cas limites et la télémétrie.
Comment ça fonctionne (sans mal de crâne)
Le cœur, c’est ORB-SLAM3, une référence académique et industrielle. L’implémentation Lynx adapte l’algorithme aux contraintes mobiles : front-end visuel optimisé, accès direct aux flux caméras, et offload des parties gourmandes sur le Hexagon DSP (traitement d’images/senseurs). Résultat : le CPU respire, ce qui laisse de la marge au rendu et à la logique de jeu. Le pipeline sort des poses 6DoF (position + orientation) qu’un moteur (Unity/Unreal ou moteur maison) consomme à 90 Hz pour stabiliser la scène.
Licences et cadre d’usage
Le projet est distribué sous GPLv3. Si vous l’intégrez et le distribuez, vous devez conserver l’ouverture du code et publier vos modifications. Pour des produits fermés, réfléchissez à une séparation stricte des composants ou à un autre choix de licence, selon vos contraintes.
Cas d’usage typiques
- Prototypage XR : labos, étudiants, studios indé.
- Industriel : besoins d’audit de la chaîne de vision par l’IT/sécurité.
- Recherche : comparaisons d’algorithmes, jeux de données, variantes capteurs.
- Produits de niche : HMD spécialisés, robots téléopérés, vision embarquée.
Ce que ça n’apporte pas (encore)
- Pas de miracle sans caméras correctement étalonnées ni bonne texture dans la scène.
- Résolution/format d’entrée actuellement aligné sur le Lynx R1 (voir doc officielle pour les variantes).
- Après root et patch, plus d’OTA : chaque MAJ système exige un flash complet.
Tutoriel : installer et tester Lynx Orb SLAM 3
Important : la procédure requiert de rooter votre casque Android compatible Qualcomm. Vous le faites à vos risques et périls (sauvegardez tout). Une fois patché, les mises à jour OTA ne fonctionneront plus.
Prérequis
- Android Studio Narwhal 2025.1.2
- Qualcomm QFIL & QUD installés
- Qualcomm Hexagon SDK 5.5.5.0 (définir
HEXAGON_SDK_ROOT
) - Python ≤ 3.11
- Un casque Android/Qualcomm (ex. Lynx R1) + câble USB
- Outil de root Magisk + module Magisk OverlayFS
- Accès au firmware de votre appareil (pour récupérer
boot.img
)
Étape 1 — cloner le projet
git clone https://github.com/Lynx-MR/LynxOrbSlam3
cd LynxOrbSlam3
git submodule update --init --recursive
Étape 2 — flasher/retour usine (si nécessaire)
Installez QFIL/QUD. Suivez la documentation de votre casque pour restaurer un firmware propre. Sauvegardez vos données au préalable.
Étape 3 — root avec Magisk
- Installez l’APK Magisk sur le casque :
adb install -g Magisk-v30.2.apk
- Copiez le
boot.img
du firmware sur l’appareil :adb push boot.img /sdcard/
- Dans Magisk → Install → Select and patch a file → choisissez
boot.img
. - Récupérez le fichier patché :
adb pull /storage/emulated/0/Download/ .
- Flashez le boot patché (via QFIL ou fastboot avancé) :
adb reboot fastboot fastboot flash boot_a magisk_patched-[…].img fastboot flash boot_b magisk_patched-[…].img fastboot reboot
- Rouvrez Magisk, terminez la configuration, puis activez
su
:adb shell su exit
Étape 4 — installer Magisk OverlayFS
- Poussez le module :
adb push magisk-overlayfs-release_v3.2.2-fixed.zip /sdcard/
- Dans Magisk → Modules → installez le ZIP puis redémarrez.
Étape 5 — patch appareil & signature DSP
- Vérifiez l’environnement :
echo %HEXAGON_SDK_ROOT% # sous Windows, retourne le chemin du SDK
- Depuis le dossier
setup/
du projet, exécutez en cmd (pas PowerShell) :prepareDeviceDemoApp.bat
- Le casque redémarre. S’il bascule en 2D persistante, reprenez l’étape de flash du boot patché.
Étape 6 — installer le module Lynx SLAM
- Poussez le module :
adb push setup/LynxSlamModule.zip /sdcard/
- Installez dans Magisk, redémarrage (plusieurs reboots peuvent survenir).
- Vérifiez le mode SELinux :
adb shell su getenforce # doit afficher: permissive
Étape 7 — installer & lancer le service SLAM
adb install -g SlamService\build\outputs\apk\debug\SlamService-debug.apk
Ouvrez l’application depuis le Lynx Launcher. Vous pouvez aussi cocher l’option Grant all permissions (-g) dans Android Studio et lancer directement depuis l’IDE.
Vérifier que tout tourne
- Le service publie une pose 6DoF à ~90 Hz (XR2 Gen 1) avec entrées caméras 640×400.
- Surveillez la charge CPU/GPU : une baisse marquée après offload DSP est attendue.
- Dans un moteur 3D, connectez-vous au flux de poses et affichez une grille/sol ancré monde.
Bonnes pratiques et dépannage
- Étalonnage : conservez des matrices intrinsèques/extrinsèques cohérentes (évitez les approximations).
- Lumière & texture : évitez murs unis, vitres et scènes trop sombres ; ajoutez des marqueurs visuels temporaires pour diagnostiquer.
- Récupération tracking : mettez en place un relocalization timeout & des indices UI clairs.
- Thermal : profils d’alimentation raisonnés, framerate adaptatif, ventilation si dev long.
- Après root : pas d’OTA. Pour mettre à jour, reflashez via QFIL, re-rootez et réappliquez les patchs.
Limitations connues
- Résolution caméra actuellement limitée au profil Lynx R1 (voir documentation constructeur pour variantes).
- Outils de build & scripts ciblent Windows (adaptation Linux faisable).
- L’accès aux accélérateurs propriétaires exige le root.
Ressources utiles
- Documentation & code : Lynx Orb-SLAM3 (GitHub)
- Doc capture vidéo Lynx : Référence capteurs
- Magisk : Releases officielles
- Qualcomm Hexagon SDK : consultez votre portail développeur Qualcomm
Conclusion : une brique XR qui change la donne
En rendant un suivi 6DoF performant, portable et modifiable, Lynx aligne la XR avec l’esprit open source : apprendre, expérimenter, partager. Ce n’est pas la voie la plus simple (le root fait peur, à raison), mais c’est une voie qui ouvre des portes — notamment si vous avez des exigences d’audit ou des pipelines atypiques. À vous de jouer : clonez, testez, profilez… et contribuez.
0 commentaires