
Table des matières:
2025 Auteur: John Day | [email protected]. Dernière modifié: 2025-01-23 14:46

Dans ce instructable, je vais vous expliquer comment nous laissons un robot Nao imiter nos mouvements à l'aide d'un capteur kinect. L'objectif réel du projet est un objectif pédagogique: un enseignant a la possibilité d'enregistrer certains ensembles de mouvements (par exemple une danse) et peut utiliser ces enregistrements pour permettre aux enfants de la classe d'imiter le robot. En parcourant toute cette instructable étape par étape, vous devriez être en mesure de recréer entièrement ce projet.
Il s'agit d'un projet lié à l'école (NMCT @ Howest, Courtrai).
Étape 1: Connaissances de base
Pour recréer ce projet, vous devez posséder quelques connaissances de base:
- Connaissances de base en Python
- Connaissances de base en C# (WPF)
- Connaissances de base en trigonométrie
- Connaissances sur la façon de configurer MQTT sur un Raspberry Pi
Étape 2: Acquisition du matériel nécessaire
Matériel requis pour ce projet:
- Tarte aux framboises
- Capteur Kinect v1.8 (Xbox 360)
- Robot Nao ou robot virtuel (Chorégraphe)
Étape 3: Comment ça marche



Un capteur kinect est connecté à un ordinateur exécutant l'application WPF. L'application WPF envoie des données à l'application Python (robot) à l'aide de MQTT. Les fichiers locaux sont enregistrés si l'utilisateur le souhaite.
Explication détaillée:
Avant de commencer l'enregistrement, l'utilisateur doit entrer l'adresse IP du courtier MQTT. En plus de cela, nous avons également besoin du sujet sur lequel nous voulons publier les données. Après avoir appuyé sur Démarrer, l'application vérifiera si une connexion a pu être établie avec le courtier et nous donnera un retour. Vérifier si un sujet existe n'est pas possible, vous êtes donc entièrement responsable de celui-ci. Lorsque les deux entrées sont correctes, l'application commence à envoyer des données (les coordonnées x, y et z forment chaque joint) du squelette qui est suivi vers le sujet sur le courtier MQTT.
Étant donné que le robot est connecté au même courtier MQTT et abonné au même sujet (cela doit également être entré dans l'application python), l'application python recevra désormais les données de l'application WPF. En utilisant la trigonométrie et des algorithmes auto-écrits, nous convertissons les coordonnées en angles et en radians, que nous utilisons pour faire tourner les moteurs à l'intérieur du robot en temps réel.
Lorsque l'utilisateur a terminé l'enregistrement, il appuie sur le bouton d'arrêt. Maintenant, l'utilisateur obtient une fenêtre contextuelle lui demandant s'il souhaite enregistrer l'enregistrement. Lorsque l'utilisateur clique sur Annuler, tout est réinitialisé (les données sont perdues) et un nouvel enregistrement peut être lancé. Si l'utilisateur souhaite sauvegarder l'enregistrement, il doit saisir un titre et cliquer sur « enregistrer ». Lorsque vous appuyez sur « enregistrer », toutes les données acquises sont écrites dans un fichier local en utilisant le titre saisi comme nom de fichier. Le fichier est également ajouté à la liste sur le côté droit de l'écran. De cette façon, après avoir double-cliqué sur la nouvelle entrée dans la liste, le fichier est lu et envoyé au courtier MQTT. Par conséquent, le robot jouera l'enregistrement.
Étape 4: Configuration du courtier MQTT

Pour la communication entre le kinect (projet WPF) et le robot (projet Python) nous avons utilisé MQTT. MQTT se compose d'un courtier (un ordinateur Linux sur lequel le logiciel mqtt (par exemple Mosquitto)) s'exécute et d'un sujet sur lequel les clients peuvent s'abonner (ils reçoivent un message du sujet) et publier (ils publient un message sur le sujet).
Pour configurer le courtier MQTT, téléchargez simplement cette image jessie entière. Il s'agit d'une installation propre pour votre Raspberry Pi avec un courtier MQTT dessus. Le sujet est "/Sandro".
Étape 5: Installation du kit de développement logiciel Kinect V1.8
Pour que kinect fonctionne sur votre ordinateur, vous devez installer le kit de développement logiciel Microsoft Kinect.
Vous pouvez le télécharger ici:
www.microsoft.com/en-us/download/details.a…
Étape 6: Installation de Python V2.7
Le robot fonctionne avec le framework NaoQi, ce framework n'est disponible que pour python 2.7 (PAS 3.x), alors vérifiez quelle version de python vous avez installée.
Vous pouvez télécharger python 2.7 ici:
www.python.org/downloads/release/python-27…
Étape 7: Codage



Github:
Remarques:
- Codage avec le kinect: vous cherchez d'abord le kinect connecté. Après avoir enregistré cela dans une propriété, nous avons activé color- et skeletonstream sur le kinect. Colorstream est la vidéo en direct, tandis que skeletonstream signifie qu'un squelette de la personne devant la caméra sera affiché. Colorstream n'est pas vraiment nécessaire pour que ce projet fonctionne, nous l'avons simplement activé parce que le bitmapping du skeletonstream au colorstream semble fluide !
- En réalité c'est vraiment le squelette qui fait le boulot. L'activation de skeletonstream signifie que le squelette de la personne est suivi. De ce squelette, vous recevez toutes sortes d'informations, par exemple. orientations osseuses, informations articulaires, … La clé de notre projet était l'information articulaire. En utilisant les coordonnées x-y et z de chacune des articulations du squelette suivi, nous savions que nous pouvions faire bouger le robot. Ainsi, toutes les 0,8 secondes (à l'aide d'une minuterie), nous publions les coordonnées x, y et z de chacune des articulations sur le courtier mqtt.
- Étant donné que le projet python a un abonnement sur le courtier mqtt, nous pouvons désormais accéder aux données à l'intérieur de ce projet. A l'intérieur de chaque articulation du robot se trouvent deux moteurs. Ces moteurs ne peuvent pas simplement être dirigés en utilisant directement les coordonnées x, y et z. Ainsi, en utilisant la trigonométrie et un peu de bon sens, nous avons converti les coordonnées x, y et z des articulations en angles sous-stables pour les robots.
Donc, toutes les 0,8 secondes, le projet WPF publie les coordonnées x, y et z de chacune des articulations. Par conséquent, à l'intérieur du projet python, ces coordonnées sont converties en angles, qui sont ensuite envoyés aux moteurs correspondants du robot.
Conseillé:
Système de suivi des mouvements de la tête pour la réalité virtuelle : 8 étapes

Système de suivi des mouvements de la tête pour VR : Je m'appelle Sam KODO. Dans ce tuto, je vais vous apprendre étape par étape comment utiliser les capteurs Arduino IMU pour créer un système de suivi de la tête pour la VR. Dans ce projet, vous aurez besoin de : - Un écran LCD HDMI :https://www.amazon.com/Elecrow-Capacitive-interfac…- Un
Faire reconnaître les choses aux aveugles en touchant les choses autour d'eux à l'aide de MakeyMakey : 3 étapes

Faire reconnaître les choses par les aveugles en touchant les choses autour d'eux à l'aide de MakeyMakey : introductionCe projet vise à faciliter la vie des aveugles en identifiant les choses autour d'eux grâce au sens du toucher. Moi et mon fils Mustafa, nous avons pensé à trouver un outil pour les aider et pendant la période où nous utilisons le matériel MakeyMakey t
Lire les données du capteur à ultrasons (HC-SR04) sur un écran LCD 128 × 128 et les visualiser à l'aide de Matplotlib : 8 étapes

Lire les données du capteur à ultrasons (HC-SR04) sur un écran LCD 128 × 128 et les visualiser à l'aide de Matplotlib : dans cette instructable, nous utiliserons le LaunchPad MSP432 + BoosterPack pour afficher les données d'un capteur à ultrasons (HC-SR04) sur un 128 × 128 LCD et envoyer les données au PC en série et les visualiser à l'aide de Matplotlib
Nao Robot Copie des mouvements via la caméra Xbox Kinect : 4 étapes

Nao Robot Copying Movements Through Xbox Kinect Camera : Dans le cadre d'un projet dans notre classe d'informatique au lycée (Porter Gaud), moi-même (Legare Walpole) et un autre étudiant (Martin Lautenschlager) avons entrepris d'obtenir un robot humanoïde Nao pour imiter nos mouvements à travers une caméra cinétique Xbox. Pendant des mois aucun pro
Gérez 100 appareils dans les applications, les organisations, les rôles et les utilisateurs Ubidots : 11 étapes

Gérer 100 appareils dans les applications, les organisations, les rôles et les utilisateurs d'Ubidots : à cette occasion, j'ai décidé de tester la fonctionnalité de la plate-forme IoT Ubidots pour la gestion des utilisateurs dans le cas où elle aurait de nombreux appareils pour plusieurs organisations ou entreprises sous la même Plateforme Ubidots. Information du maire : vous