-
Notifications
You must be signed in to change notification settings - Fork 2
bender_sensors
Contiene algoritmos para el manejo (obtención de datos, publicación y procesamiento básico) de los diversos sensores del Robot y launchfiles relacionados.
El package está configurado para trabajar con hardware específico, pues crea los tópicos/servicios de acuerdo a los datos únicos de cada sensor utilizado.
Table of Contents:
[TOC]
- Vendor: Hokuyo
- Model: URG-04LX-UG01
- Long Detection range: 5.6[m]
- Wide Angle: 240°
- Disponible Hardware IDs: { H0903381 }
- For a detailed description click here
- Vendor: Hokuyo
- Model: URG-04LX
- Long Detection range: 4[m]
- Wide Angle: 240°
- Disponible Hardware IDs: { H0804550 }
- For a detailed description click here
- Vendor: Hokuyo
- Model: UTM-30LX
- Long Detection range: 30[m]
- Wide Angle: 270°
- Disponible Hardware IDs: { FILL }
- For a detailed description click here
- Vendor: Logitech
- Model: Webcam C270
- Disponible Hardware IDs: {444EC120, 271BA220, 033F2610, BA1BA220}
- For a detailed description click here
- Vendor: TODO
- Model: TODO
- Disponible Hardware IDs: { TODO }
- Vendor: Microsoft
- Disponible Hardware IDs: {A00363809752042A, A00365808192051A, B00364626688048B }
- Vendor informartion: Click Here
A continuación se presentan los sensores utilizados comunmente. Para saber la posición de cada sensor, ver bender_tf.
- Name: laser_front
- Sensor: Hokuyo URG-04LX-UG01
- Hardware ID: H0903381
- Name: laser_rear
- Sensor: Hokuyo URG-04LX
- Hardware ID: H0804550
- Name: laser_waist
- Sensor: Hokuyo URG-04LX-UG01
- Hardware ID: H0903381
- Name: camera_right_eye
- Sensor: Logitech Webcam C270
- Hardware ID: TODO
- Name: camera_forehead
- Sensor: Logitech Webcam C270
- Hardware ID: TODO
- Name: kinect_head
- Sensor: Microsoft Kinect
- Hardware ID: B00364626688048B
- Name: kinect_waist
- Sensor: Microsoft Kinect
- Hardware ID: TODO
Todos los lasers usan el package hokuyo_node.
- Frame ID:
/bender/sensors/<name>_link
- Published Topics:
- /bender/sensors/<name>/scan (sensor_msgs/LaserScan)
- /bender/sensors/<name>/diagnostics (diagnostic_msgs/DiagnosticStatus)
- Services:
- /bender/sensors/<name>/self_test (diagnostic_msgs/SelfTest)
Las cámaras ocupan el nodo camera_server del package bender_sensors
.
TODO: Check package camera_umd/uvc_camera
- Frame ID:
/bender/sensors/<name>_link
- Published Topics: None
- Services:
- /bender/sensors/<name>/image_service (bender_srvs/ImageService)
Para los kinects se ocupa el package openni_launch. Para controlar el led y motor del sensor, se utiliza el nodo kinect_aux
- Frame ID:
/bender/sensors/<name>_link
- Transforms: (<ns>:
/bender/sensors/<name>
)- <ns>_link
- <ns>_rgb_optical_frame
- <ns>_depth_optical_frame
- TODO
- <ns>_link
- Published Topics:
- /bender/sensors/<name>
- /rgb/: rgb camera
- camera_info (sensor_msgs/CameraInfo)
- image_raw (sensor_msgs/Image)
- image_mono (sensor_msgs/Image)
- image_color (sensor_msgs/Image)
- image_rect (sensor_msgs/Image)
- image_rect_color (sensor_msgs/Image)
- /depth/: depth camera
- camera_info (sensor_msgs/CameraInfo)
- image_raw (sensor_msgs/Image)
- image (sensor_msgs/Image)
- image_rect (sensor_msgs/Image)
- disparity (stereo_msgs/Disparity_Image)
- points (sensor_msgs/PointCloud2)
- /depth_registered/: with registration enabled (alined with rbg)
- camera_info (sensor_msgs/CameraInfo)
- image_raw (sensor_msgs/Image)
- image (sensor_msgs/Image)
- image_rect (sensor_msgs/Image)
- disparity (stereo_msgs/Disparity_Image)
- points (sensor_msgs/PointCloud2)
- /ir/: IR camera
- camera_info (sensor_msgs/CameraInfo)
- image_raw (sensor_msgs/Image)
- image_rect (sensor_msgs/Image)
- projector/: IR projector
- camera_info (sensor_msgs/CameraInfo)
- /rgb/: rgb camera
- /bender/sensors/<name>
- ros-fuerte-laser-drivers laser_drivers
- ros-fuerte-openni-camera openni_camera
- ros-fuerte-openni-launch openni_launch
port: /dev/sensors/hokuyo_H0903381 port: /dev/sensors/hokuyo_H0804550 port: /dev/video5, /dev/video6, /dev/video7
Utilitario para la obtención de imágenes desde una cámara.
TODO: Implementación actual sólo permite el uso de hasta 4 cámaras, ya que opencv sólo soporta lectura para puertos /dev/video[0-7] y por el mapeo usado, cada cámara ocupa dos puertos. Ver forma de entregar a opencv el nombre del puerto deseado y no el número de video. Tal vez con cvCaptureFromFile(string filename)
- ~image_service (bender_srvs/ImageService)
- Obtiene una imagen desde la cámara
-
~cam_number (int, default:-1)
- Número de cámara (/dev/video[0-7])
- -1: La primera encontrada
-
~cam_width (int, default:640)
- Ancho de imagen
-
~cam_height (int, default:480)
- Altura de la imagen
Utilitario para visualizar los datos recopilados por el nodo camera_service
.
- ~cam_name (string, default:"default_camera")
- Utilizado para el título de la ventana y la llamada al servicio.
Utilitario para la unión de 2 lecturas sensor_msgs/LaserScan
realizadas en el mismo plano, por sensores en 0° y 180°, como si fuera el escaneo de sólo un laser virtual posicionado en el centro y con un barrido de 360°.
Lanza el nodo camera_service con la configuración dada por los siguientes parámetros:
- cam_name = "default_camera"
- cam_number = -1 (número de /dev/video[0-9] al que conectarse)
- cam_height = 480
- cam_width = 640
- cam_fov_h = 60.0
Lanza el nodo camera_service_client para la cámara de nombre 'cam_name'
Para simplificar el trabajo, se tienen launchfiles para las cámaras default de bender: camera_forehead.launch y camera_right_eye.launch
Lanza nodos necesarios para un kinect: tf's, nodelet manager, etc., creando un arbol de transformadas para el kinect espeficidado y los tópicos especificados en la sección correspondiente.
Launch Parameters: { camera, device_id }
Ejemplo:
- camera: "kinect_waist"
- device_id: B00367707227042B
Para los kinects 'kinect_waist' y 'kinect_head' se puede utilizar: kinect_waist.launch & kinect_head.launch, respectivamente.
Lanza los nodos publicadores de tf's para el kinect especificados por el parámetro 'camera'.