web-dev-qa-db-fra.com

Raspberry Pi avec Kinect

Quelqu'un pourrait-il obtenir les données de la caméra du Kinect à l'aide d'un Raspberry Pi?

Nous aimerions faire un Kinect sans fil en le connectant via Ethernet ou WiFi. Sinon, faites-moi savoir si vous avez une alternative de travail.

35
Cyril

Pour répondre à votre question, oui il est possible d'obtenir Image et profondeur sur le Raspberry Pi!

Voici comment.

Si vous voulez utiliser uniquement de la vidéo (couleur, pas profondeur), il y a déjà un pilote dans le noyau! Vous pouvez le charger comme ceci:

modprobe videodev
modprobe gspca_main
modprobe gspca_kinect

Vous obtenez un nouveau/dev/videoX et pouvez l'utiliser comme n'importe quelle autre webcam!

Si vous avez besoin de profondeur (c'est pourquoi vous voulez un kinect), mais avez un noyau plus ancien que 3.17, vous avez besoin d'un autre pilote qui peut être trouvé ici: https://github.com/xxorde/librekinect . Si vous disposez de la version 3.17 ou plus récente, la fonctionnalité librekinect est activée en basculant l'indicateur de profondeur de ligne de commande du module gspca_kinect:

modprobe gspca_kinect depth_mode=1

Les deux fonctionnent bien sur le Raspbian actuel.

40
xxorde

Si vous parvenez à brancher votre caméra kinect au Raspberry Pi, installez d'abord guvcview pour voir si cela fonctionne.

Sudo apt-get install guvcview

Tapez ensuite guvcview dans le terminal et il devrait ouvrir un panneau d'options et la vue de contrôle de la caméra. Si tout cela fonctionne et que vous souhaitez obtenir les données RAW pour effectuer certains traitements d'image, vous devrez compiler OpenCV (cela prend 4 heures de compilation) et après cela, vous aurez juste besoin de programmer ce que vous voulez. Pour le compiler, il suffit de chercher sur Google, il y a plein de tutoriels.

8
Sven Borden

Eh bien, pour autant que je sache, il n'y a pas d'histoires réussies sur l'obtention d'images de Kinect sur RaspberryPi.

Sur github il y a un issue dans le référentiel libfreenect sur ce problème. Dans ce commentaire l'utilisateur zarvox dit que RPi n'a pas assez de puissance pour gérer les données de Kinect.

Personnellement, j'ai essayé de connecter Kinect à RPi en utilisant OpenNI2 et Sensor , mais sans succès. Et ce n'était pas une décision intelligente car il est impossible de travailler avec Microsoft Kinect sur Linux en utilisant OpenNI2 en raison de restrictions de licence (Eh bien, en fait, ce n'est pas si impossible. Vous pouvez utiliser OpenNI2-FreenectDriver + OpenNI2 sous Linux pour connecter Kinect. Mais de toute façon, cette solution de contournement ne convient pas pour RaspberryPi, car OpenNI2-FreenectDriver utilise libfreenect).

Mais de toute façon, il existe de bons tutoriels sur la façon de se connecter ASUS Xtion Live Pro à RaspberryPi: n , deux . Et comment connecter Kinect à CubieBoard2 basé sur un bras plus puissant: trois .

5
iamantony

Si vous avez l'intention de faire de la robotique, la chose la plus simple est d'utiliser la bibliothèque Kinect sur ROS ici

Sinon, vous pouvez essayer OpenKinect, ils fournissent la bibliothèque libfreenect qui vous permet d'accéder aux accéléromètres de l'image et bien plus encore

OpenKinect sur Github ici

OpenKinect Wiki ici

Ici est un bon exemple avec le code et tous les détails dont vous avez besoin pour vous connecter au Kinect et faire fonctionner les moteurs en utilisant libfreenect.

Vous aurez besoin d'un concentrateur USB alimenté pour alimenter le Kinect et installer libusb.

Une deuxième possibilité est d'utiliser la bibliothèque OpenNI qui fournit un SDK pour développer des bibliothèques middleware pour s'interfacer avec votre application, il y a même une bibliothèque OpenNi pour le traitement ici .

2
kolergy

oui, vous pouvez utiliser Kinect avec Raspberry Pi dans un petit projet robotique. J'ai fait ce travail avec la bibliothèque openkinect. mon expérience est que vous devriez vérifier votre Raspberry Pi et surveiller la tension pi, pas le temps à basse tension. vous devez préciser votre codage pour utiliser un traitement plus faible et exécuter votre code plus rapidement. car si votre code avait un problème, votre traitement d'image serait la réponse plus lente aux objets. https://github.com/OpenKinect/libfreenecthttps://github.com/OpenKinect/libfreenect/blob/master/wrappers/python/demo_cv2_threshold.py

1
iman ansari