Bonjour, cher habratchiteli!Des observations récentes et une expérience personnelle ont montré que la connexion d'une caméra Microsoft Kinect Xbox 360 pour une utilisation dans ROS Indigo sous Ubuntu 14.04 provoque souvent des problèmes. En particulier, lors du démarrage du package ROS openni_launch, le périphérique ne peut pas être détecté et une erreur «Aucun périphérique connecté» est générée. Dans cet article, je décrirai ma méthode étape par étape de configuration de l'environnement pour l'utilisation de Microsoft Kinect de ROS Indigo. Qui est intéressé, s'il vous plaît sous la coupe!Appareil photo Microsoft Kinect
Ce capteur a déjà été écrit en détail dans l' article . En bref, Microsoft Kinect est une caméra 3D (RGB-D, c'est-à-dire rouge, verte, bleue et profondeur) basée sur la technologie de lumière structurée, qui vous permet d'obtenir une carte de profondeur des surfaces des objets qui tombent dans le champ de vision de la caméra. La carte de profondeur peut être transformée en un «nuage» tridimensionnel de points, dans lequel chaque point a les coordonnées exactes X, Y et Z dans l'espace et, dans certains cas, la couleur au format RVB. Les «nuages» de points sont utilisés dans la reconstruction d'objets, la construction de cartes de terrain en robotique de service, la reconnaissance d'objets et de nombreuses autres tâches dans le domaine de la vision par ordinateur en 3D.
ROS prend en charge le capteur Kinect. Le «nuage» de points reçus par le capteur peut être affiché visuellement dans le programme rviz.
ROS propose des packages spéciaux openni_launch et openni_camera pour utiliser le capteur Kinect.Installation du pilote pour le capteur Microsoft Kinect
Vous devez d'abord installer la bibliothèque OpenNI, destinée à un certain nombre de capteurs RGB-D (Kinect, ASUS Xtion, PrimeSense).Installez certains packages supplémentaires qu'OpenNI requiert pour installer:sudo apt-get install git build-essential python libusb-1.0-0-dev freeglut3-dev openjdk-7-jdk
sudo apt-get install doxygen graphviz mono-complete
Installez maintenant directement OpenNI 1.5.4 à partir des sources:git clone https://github.com/OpenNI/OpenNI.git
cd OpenNI
git checkout Unstable-1.5.4.0
cd Platform/Linux/CreateRedist
chmod +x RedistMaker
./RedistMaker
Téléchargez maintenant la bibliothèque avin-KinectSensor pour le capteur Kinect à partir d'ici .unzip avin2-SensorKinect-v0.93-5.1.2.1-0-g15f1975.zip
cd avin2-SensorKinect-15f1975/Bin
Selon le type de système (32 ou 64 bits), sélectionnez l'installateur approprié. Pour un système 32 bits, procédez comme suit:tar -xjf SensorKinect093-Bin-Linux-x86-v5.1.2.1.tar.bz2
cd Sensor-Bin-Linux-x86-v5.1.2.1
Pour un système 64 bits, nous ferons:tar -xjf SensorKinect093-Bin-Linux-x64-v5.1.2.1.tar.bz2
cd Sensor-Bin-Linux-x64-v5.1.2.1
Enfin, terminez l'installation:sudo ./install.sh
Installer les packages openni_ *
La dernière chose que nous devons faire est d'installer les packages openni_launch et openni_camera , qui vous permettent de recevoir et de travailler avec des données provenant de caméras de profondeur compatibles OpenNI dans ROS. L'installation de ces packages est très simple:sudo apt-get install ros-indigo-openni-camera ros-indigo-openni-launch
Vérification de l'installation du pilote
Maintenant, tout est prêt! Vérifiez le succès de l'installation. Exécuter dans différents terminaux:roscore
roslaunch openni_launch openni.launch depth_registration:=true
rosrun rviz rviz
La définition de l'argument depth_registration: = true indique que nous voulons activer l'enregistrement OpenNI et recevoir les données XYZRGB de la caméra (profondeur et couleur).Tout d'abord, dans rviz, développez la section Options globales dans la colonne d'affichage de gauche et définissez la valeur / camera_link pour le champ Cadre fixe comme dans l'image:
Ainsi, nous définissons le système de coordonnées nécessaire pour l'affichage correct des données de la caméra Kinect.Dans rviz, nous créons un nouvel affichage. Pour ce faire, cliquez sur le bouton Ajouter et sélectionnez le type d'affichage PointCloud2 comme dans l'image:
Sélectionnez le sujet / caméra / profondeur_enregistrée / points pour le nouvel affichage.
Ensuite, sélectionnez la valeur "RGB8" pour le champ Transformateur de couleur.Maintenant, nous allons voir une image similaire:
Une valeur de «RGB8» vous permet d'afficher un «nuage de points» coloré, où chaque point a les coordonnées X, Y, Z et la couleur RVB.Je veux attirer votre attention sur le fait que Microsoft Kinect Xbox 360 ne fonctionne qu'avec USB 2.0. La connexion de l'appareil photo via USB 3.0 peut entraîner une erreur de détection de périphérique, dont j'ai parlé au tout début de l'article.Le portail officiel ROS propose des didacticiels sur l'utilisation des données de caméra RVB-D à l'aide de la bibliothèque de nuages de points . Ces didacticiels fournissent toutes les informations dont vous avez besoin pour démarrer avec les nuages de points.Je vous souhaite bonne chance dans l'utilisation des caméras RGBD dans ROS pour résoudre vos problèmes de vision par ordinateur!