Boa tarde, querido habratchiteli!Observações recentes e experiência pessoal mostraram que conectar uma câmera Microsoft Kinect Xbox 360 para uso no ROS Indigo no Ubuntu 14.04 geralmente causa problemas. Em particular, ao iniciar o pacote ROS do openni_launch, o dispositivo não pode ser detectado e um erro "Nenhum dispositivo conectado" é gerado. Neste artigo, descreverei meu método passo a passo de configurar o ambiente para usar o Microsoft Kinect do ROS Indigo. Quem está interessado, por favor, sob o corte!Câmera Microsoft Kinect
Este sensor já foi escrito em detalhes no artigo . Em poucas palavras, o Microsoft Kinect é uma câmera 3D (RGB-D, vermelha, verde, azul e profundidade), baseada na tecnologia de luz estruturada, que permite obter um mapa de profundidade das superfícies dos objetos que caem no campo de visão da câmera. O mapa de profundidade pode ser transformado em uma "nuvem" tridimensional de pontos, na qual cada ponto tem as coordenadas exatas X, Y e Z no espaço e, em alguns casos, a cor no formato RGB. "Nuvens" de pontos são usadas na reconstrução de objetos, na construção de mapas de terreno em robótica de serviço, reconhecimento de objetos e muitas outras tarefas no campo da visão computacional em 3D.
O ROS fornece suporte para o sensor Kinect. A “nuvem” de pontos recebidos pelo sensor pode ser visualmente exibida no programa rviz.
O ROS possui pacotes especiais openni_launch e openni_camera para usar o sensor Kinect.Instalação do driver para o Microsoft Kinect Sensor
Primeiro, você precisa instalar a biblioteca OpenNI, destinada a vários sensores RGB-D (Kinect, ASUS Xtion, PrimeSense).Instale alguns pacotes adicionais que o OpenNI requer para instalar: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
Agora instale diretamente o OpenNI 1.5.4 a partir das fontes: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
Agora baixe a biblioteca avin-KinectSensor para o sensor Kinect aqui .unzip avin2-SensorKinect-v0.93-5.1.2.1-0-g15f1975.zip
cd avin2-SensorKinect-15f1975/Bin
Dependendo do tipo de sistema (32 ou 64 bits), selecione o instalador apropriado. Para um sistema de 32 bits, execute as seguintes etapas:tar -xjf SensorKinect093-Bin-Linux-x86-v5.1.2.1.tar.bz2
cd Sensor-Bin-Linux-x86-v5.1.2.1
Para um sistema de 64 bits, faremos:tar -xjf SensorKinect093-Bin-Linux-x64-v5.1.2.1.tar.bz2
cd Sensor-Bin-Linux-x64-v5.1.2.1
Por fim, conclua a instalação:sudo ./install.sh
Instale pacotes openni_ *
A última coisa que precisamos fazer - é a instalação de pacotes openni_launch e openni_camera , que permite receber e trabalhar com câmeras de dados OpenNI compatíveis com profundidade de ROS. A instalação desses pacotes é muito simples:sudo apt-get install ros-indigo-openni-camera ros-indigo-openni-launch
Verificando a instalação do driver
Agora está tudo pronto! Verifique o sucesso da instalação. Funcione em diferentes terminais:roscore
roslaunch openni_launch openni.launch depth_registration:=true
rosrun rviz rviz
Definir o argumento depth_registration: = true indica que queremos ativar o registro OpenNI e receber dados XYZRGB da câmera (profundidade e cor).Primeiro, no rviz, expanda a seção Opções globais na coluna esquerda Monitores e defina o valor / camera_link para o campo Quadro fixo como na figura:
Assim, configuramos o sistema de coordenadas necessário para a exibição correta dos dados da câmera Kinect.No rviz, criamos uma nova exibição. Para fazer isso, clique no botão Adicionar e selecione o tipo de exibição PointCloud2 como na figura:
Selecione o tópico / camera / depth_registered / points para a nova tela e
depois selecione o valor “RGB8” para o campo Color Transformer.Agora vamos ver uma imagem semelhante:
Um valor de "RGB8" permite exibir uma "nuvem de pontos" colorida, onde cada ponto tem coordenadas X, Y, Z e cor RGB.Quero chamar sua atenção para o fato de o Microsoft Kinect Xbox 360 funcionar apenas com USB 2.0. Conectar a câmera via USB 3.0 pode levar a um erro de detecção de dispositivo, sobre o qual falei no início deste artigo.O portal oficial do ROS possui tutoriais sobre como trabalhar com dados da câmera RGB-D usando a Point Cloud Library . Esses tutoriais fornecem todas as informações necessárias para começar com nuvens de pontos.Desejo-lhe boa sorte no uso de câmeras RGBD em ROS para resolver seus problemas de visão por computador!