ROS Kinect Xbox 360

ROS Kinect Xbox 360

comandos rapidos

freenect-glview

roslaunch openni_launch openni.launch

rosrun camera_calibration cameracalibrator.py --size 8x6 --square 0.108 image:=/camera/rgb/image camera:=/camera/rgb

 

Recentemente comprei uma kinect Xbox 360 para usar na construção de um robot semelhante ao chefbot (quando tiver os componentes todos, já só falta o nuc). Quando a kinect chegou é que reparei que faltava uma adaptador para a ligar à porta usb do computador. Agora chegou o adaptador e posso começar a aprender como posso usa-la em projectos de robótica.

 

 

A câmara que comprei é uma kinect Xbox 360 model 1414, julgo que seja das primeiras versões da kinect xbox 360.

  • A kinect xbox 360 tem cerca de 28cm de comprimento e integra os seguintes dispositivos:
  • câmara IR  3D (profundidade)
  • câmara RGB
  • vários microfones
  • motor da posição angular vertical
  • acelerometro?

A localização dos dispositivos na kinect é conforme a imagem abaixo.

As especificações básicas da Kinect são:

  • Resolução da cãmara RGB: 640 x 480 @30 fps
  • Resolução da câmara IR: 320 x 240 @30 fps
  • Campo de visão das câmeras (FoV): 43° vertical x 57° horizontal;
  • Distância min e max: 40cm (near mode) 450 cm
  • Amplitude vertical do motor (tilt motor): ±27°;
  • Audio input : 4 microfones –  16-kHz, 24-bit mono (PCM);
  • Analog-to-digital converter (ADC): 24-bit;
  • Acelerometro: 2G/4G/8G (configurado para 2G);
  • Processamento de sinais interno

 

https://support.xbox.com/en-US/xbox-360/accessories/kinect-sensor-lights-info

 

A primeira coisa a fazer é aprender como instalar os drivers e usa-la no ROS.

Os pacotes mínimos necessários são os seguintes (substituir kinectic pela distro do ros adequada)

sudo apt-get install ros-kinetic-vision-opencv
sudo apt install ros-kinetic-libfreenect
sudo apt-get install ros-kinetic-openni-launch
sudo apt-get install ros-kinetic-openni-camera
sudo apt-get install ros-kinetic-rgbd-launch

Por vezes é necessário mais qualquer coisa. Descrição das instalações que fiz por ordem.

Instalar a Kinect Xbox 360 no Ubuntu Trusty 14.04 e ROS Indigo

Instalar a Kinect Xbox 360 no Debian 9 e ROS Melodic

Instalar a Kinect Xbox 360 no Ubuntu Xenial 16.04 e ROS Kinetic

Posteriormente queremos visualizar os dados recolhidos da kinectic.

Kinect Xbox 360 no rviz

 

Outras informações

https://support.xbox.com/en-US/xbox-360/accessories/kinect-sensor-lights-info

 

Comandos básicos

 

lsusb | grep Xbox

freenect-glview

roslaunch openni_launch openni.launch

rosrun camera_calibration cameracalibrator.py –size 8×6 –square 0.108 image:=/camera/rgb/image camera:=/camera/rgb

 

Teste da instalação da Xbox no ROS

roscore &
roslaunch openni_launch openni.launch &

[ INFO] [1565030774.317403161]: Number devices connected: 1
[ INFO] [1565030774.317747415]: 1. device on bus 001:08 is a SensorV2 (2ae) from PrimeSense (45e) with serial id 'A00361A02199045A'
[ INFO] [1565030774.318949216]: Searching for device with index = 1
[ INFO] [1565030774.368167043]: Opened 'SensorV2' on bus 1:8 with serial number 'A00361A02199045A'
[ INFO] [1565030774.423764995]: rgb_frame_id = 'camera_rgb_optical_frame'
[ INFO] [1565030774.423952472]: depth_frame_id = 'camera_depth_optical_frame'
[ WARN] [1565030774.434594473]: Camera calibration file /home/inaciose/.ros/camera_info/rgb_A00361A02199045A.yaml not found.
[ WARN] [1565030774.434681290]: Using default parameters for RGB camera calibration.
[ WARN] [1565030774.434745156]: Camera calibration file /home/inaciose/.ros/camera_info/depth_A00361A02199045A.yaml not found.
[ WARN] [1565030774.434782358]: Using default parameters for IR camera calibration.

Lista dos tópicos

rostopic list
/camera/depth/camera_info
/camera/depth/disparity
/camera/depth/image
[…]
/camera/ir/camera_info
/camera/ir/image_raw
/camera/ir/image_raw/compressed
[…]
/camera/projector/camera_info
/camera/rgb/camera_info
/camera/rgb/image_color

 

roslaunch rgbd_launch kinect_frames.launch

NODES
/
camera_base_link (tf2_ros/static_transform_publisher)
camera_base_link1 (tf2_ros/static_transform_publisher)
camera_base_link2 (tf2_ros/static_transform_publisher)
camera_base_link3 (tf2_ros/static_transform_publisher)

ROS_MASTER_URI=http://localhost:11311

process[camera_base_link-1]: started with pid [2200]
process[camera_base_link1-2]: started with pid [2201]
process[camera_base_link2-3]: started with pid [2202]
process[camera_base_link3-4]: started with pid [2203]

rviz

Depth image frame id [camera_depth_optical_frame] doesn’t match color image frame id [camera_rgb_optical_frame]

Outras notas sobre o assunto

[Stream 80] Invalid magic b479
[Stream 80] Lost 1 packets
[Stream 80] Lost 1 total packets in 2338 frames (0.000428 lppf)
[Stream 80] Lost 3 packets
[Stream 80] Lost 4 total packets in 2338 frames (0.001711 lppf)
[Stream 80] Inconsistent flag 85 with 147 packets in buf (162 total), resyncing.

 

sudo apt-get install ros-indigo-kinect-aux

 

sudo apt-get install libnss-myhostname

sudo apt-get install mesa-utils

glxinfo | grep "OpenGL version"

export LIBGL_ALWAYS_SOFTWARE=1

sudo apt install vlc-plugin-access-extra