Utiliser un LiDAR 360 degrés dans Max
// Conception interactive // Utiliser un LiDAR 360 degrés dans Max
Pour créer des œuvres interactives qui suivent la position du public ou d’un performeur dans l’espace, deux options non intrusives, relativement accessibles et peu dispendieuses s’offrent à nous :
- Une caméra infrarouge installée au-dessus d’un espace où de la lumière infrarouge est utilisée de façon à éclairer les gens, mais pas le sol.
- Un LiDAR 360 degrés.
Nous allons ici explorer la technique numéro deux.
Qu'est-ce qu'un LiDAR 360 degrés?
Un LiDAR est un capteur qui utilise un laser pour mesurer les distances entre lui-même et les objets qui l'entourent. Dans les LiDAR 360 degrés, le laser est monté sur un moteur, ce qui lui permet de créer une carte en deux dimensions de ce qui l’entoure. C’est un outil souvent utilisé pour aider les robots ou les voitures autonomes à « voir » et à naviguer dans leur environnement.
Lire les données du LiDAR
Pour ce projet, j'ai fait appel au programmeur Alexandre Quessy. Celui-ci a programmé une petite application en C++ qui permet de prendre les données du LiDAR et de les transformer en un flux OSC qui peux ensuite être repris dans Max afin de le traiter. Le petit programme est disponible ici : https://github.com/interferences-at/rplidar_osc.
C’est n’est malheureusement pas, pour l’instant, une application prête à être utilisée telle quelle. Il faut télécharger le code et le compiler soi-même sur un ordinateur Windows 10. Le tout est cependant relativement bien expliqué pour une personne qui a une certaine base en programmation. Je vais éventuellement ajouter une capture d’écran pour indiquer comment faire.
Traiter les données dans MAX
Une fois les données du LiDAR transformées en un flux OSC, on peut facilement les traiter à l’aide des objets jit.cv, offerts dans le Package Manager, en appliquant les étapes suivantes :
- Transformer le flux OSC en image openGL.
- Transformer l’image openGL en texture vidéo.
- Ici, j’ai deux façons de fonctionner dépendamment du projet :
- Envoyer l’image dans Resolume via SPOUT. De cette manière, on peut utiliser directement la vidéo pour faire allumer des lumières là où les gens se trouvent.
- Utiliser les objets jit.cv et les algorithmes de blob tracking pour avoir les données XY des personnes dans l’espace.
Voici le patch Max, que vous pouvez télécharger en cliquant sur l’image :