Sistema de visión empotrado en arquitectura de control distribuida

Anuncio
Sistema de visión empotrado en arquitectura de control
distribuida para robot humanoide
Pau Muñoz Benavent, J. Francisco Blanes Noguera,
José Simó Ten, Javier O. Coronel, Miguel Albero Gil
Instituto de Automática e Informática Industrial,
Universidad Politécnica de Valencia,
Valencia, España.
{pamuobe, pblanes, jsimo, jacopa1,mialgil}@upvnet.upv.es
Resumen
Los sistemas de visión artificial son una de las
aplicaciones más complejas del ámbito de los
sistemas sensoriales en tanto la señal a tratar es
compleja en términos lógicos y de espacio. Por
este motivo en este tipo de aplicaciones los
requerimientos computacionales son siempre muy
altos lo cual hace todavía más compleja su
implantación en sistemas móviles como es el caso
de los robots. En este trabajo 1 se presentan una
solución basada en el desarrollo en un sistema
empotrado de visión que forma parte del sistema
distribuido de un robot humanoide. Esta
arquitectura provee al robot un nodo específico
para el tratamiento de las imágenes independiente
del encargado del control del robot. Pero por otro
lado ambos intercambian información lo que
permite relacionar los lazos de control que se
ejecutan en ellos, definiendo así una arquitectura
distribuida de control.
1. INTRODUCCIÓN
Los primeros experimentos realizados en el
campo de la visión por computador datan de
finales de 1950 y la gran mayoría de los conceptos
que hoy se consideran esenciales fueron
introducidos en los años 80. Desde entonces, la
visión por computador representa uno de los
campos de la inteligencia artificial que más ha
crecido en los últimos años. El objetivo de todo
sistema de visión por computador es la
interpretación de una escena a través de las
imágenes capturadas por el sensor de visión
(transformación imagen-información), más allá
del procesamiento de imágenes (transformación
imagen-imagen).
La visión por computador es una materia con
aplicaciones múltiples en campos tan diversos
como
medicina,
biología,
meteorología,
seguridad, transporte, entretenimiento, domótica y
robótica.
En el caso de la robótica, los sistemas de visión se
están convirtiendo en la principal fuente de
información sensorial. Uno de los desarrollos que
más auge está tomando hoy en día son los robots
humanoides. Por un lado plantean retos a resolver
(estabilidad, sensorización,
integración
de
sistemas de visión) de gran interés desde el punto
de vista de los sistemas empotrados de control, y
por otro lado su natural orientación a la imitación
del ser humano, ofrece un campo de trabajo en
cuestiones como la inteligencia artificial, la
interacción hombre-máquina y la cooperación
entre robots como ninguna otra plataforma
robótica ofrece.
En el siguiente artículo se presenta una propuesta
de sistema de visión activo empotrado integrado
en la arquitectura de control distribuida del robot
como sensor inteligente, capaz de interpretar el
entorno y generar la información a compartir con
el resto del sistema de control.
1
Este trabajo se desarrolla en el marco del proyecto
SIDIRELLI DPI-2008-06737-C02-01/02 del Ministerio
de Educación y Ciencia.
Una de las formas más productivas de analizar el
comportamiento de los diseños son las
competiciones, ya que se pueden comparar los
desarrollos con los de otros grupos de
investigación y extraer conclusiones. En esta línea
se enmarcan los eventos RoboCup, que sirven de
punto de encuentro de numerosos grupos de
robótica humanoide de todo el mundo.
Los promotores de la RoboCup pretenden
conseguir que los robots humanoides se asemejen
cada vez más a un humano, por lo que incluyen
restricciones en el diseño del robot. En el área de
la visión, por ejemplo, se ha restringido el campo
de visión de las cámaras y se ha limitado el
número de cámaras a dos como máximo.
17, 19, 21], cámaras CM OS [3, 6, 7, 9, 11, 15,
21] o cámaras CCD [2])
cámaras CM OS con microcontrolador
dedicado [8, 14].
La gran mayoría de los grupos presentan
propuestas de visión monoscópica (una única
cámara), a excepción de [11,15] que presentan un
sistema de visión estéreo o estereoscópica (dos
cámaras). Los sistemas de visión estéreo
pretenden asimilarse a la visión humana y
permiten cálculos mucho más precisos de
longitudes y posiciones en escenarios 3D, a costa
de mayor uso de recursos.
La RoboCup Soccer League, donde se pretende
participar con el desarrollo aquí propuesto,
consiste de una serie de pruebas técnicas y
partidos entre robots enmarcados en el fútbol
robótico. Para ayudar en el procesamiento del
entorno, los objetos de interés (porterías, pelota,
campo y líneas) se identifican con colores alejados
en el espectro de colores, de forma que una
posible primera diferenciación pueda realizarse
por colores
En cuanto al procesamiento de la imagen, los
pasos básicos sobre los que trabajan todos los
grupos se muestra en la figura 1.
Si bien es cierto que como escenario de trabajo se
plantea un entorno tipo RoboCup, la propuesta de
hardware y arquitectura de control está pensada
para poder ser aplicada en cualquier entorno
cambiante y garantizar la caracterización de un
entorno dinámico en tiempo real.
Reconocimiento
de objetos
2. ES TADO DEL ARTE
La competición de la RoboCup permite poner a
prueba, año tras año, los diseños de numerosos
grupos de investigación de todo el mundo. Desde
el año 1997, la evolución de los robots
humanoides y, en concreto, de los sistemas de
visión y su integración en las arquitecturas de
control, ha sido constante. Para la edición
RoboCup 2010, las distintas propuestas de
hardware para el sistema de visión y de
integración en la arquitectura de control pueden
agruparse en:
webcams conectadas a una PDA dedicada de
propósito general [1,13]
cámaras conectadas a la placa principal de
procesamiento (caso de webcams [4, 5, 10, 16,
Adquisición de la
imagen
Segmentación
Estimación
posición objetos
respecto al robot
Autolocalización
del robot
Figura 1. Pasos básicos en el procesamiento de la
imagen
El hecho diferenciador entre grupos es la
implementación de cada uno de los pasos
(distintas resoluciones de la imagen y distintos
espacios de color, segmentación por “image
scoring” en lugar del típico por umbrales de color
[17]) y la adición de algunas funcionalidades extra
como detección de líneas [15, 16], planificación
de trayectorias de los robots a partir de la
caracterización del entorno[11], identificación de
robots [13] e intercambio de mensajes entre robots
para coordinación y fusión de información [19],
entre otras.
acceso a periféricos), 32 M bytes SDRAM , 4
M bytes Flash y cristal a 25 M hz.
3. PLATAFORMA DE TRABAJ O
El sensor del sistema de visión es una cámara
CMOS Omnivision O V7660, que es controlada a
través de la interfaz Serial Camera Control Bus
(SCCB), y que puede entregar imágenes en
distintas resoluciones y formatos.
El sistema de visión está integrado en el robot
humanoide M icroBIROII, un Robot Bípedo
humanoide de 56 cm de altura con un peso
aproximado de 4kg con 21 grados de libertad,
impulsados por servomotores, diseñado por el
Instituto de Automática e Informática Industrial
de la Universidad Politécnica de Valencia.
La plataforma microBIROII dispone de tres
conjuntos de sensores principales, todos ellos en
continuo proceso de desarrollo y actualización:
sensor de inclinación (módulo de acelerómetros),
sensor de presión (módulo de galgas) y el sensor
de visión.
Figura 3. Hadrware del sistema de visión
4.2. Unidad de control principal
Como unidad de control principal del robot se
utiliza un módulo que integra un procesador del
tipo PXA320, que destaca por su alto rendimiento
y bajo consumo. Éste permite gestionar los buses
SSP-SPI, USB, Ethernet o una conexión WiFi
entre otros.
Actualmente se está desarrollando una FPGA
que se mapeará en memoria y que permitirá
derivar a ella la gestión de los buses de
comunicaciones, liberando de esta tarea al
microprocesador principal.
Figura 2. El robot humanoide microBIROII
4. HARDWARE
4.1. Sistema de visión
El sistema de visión es soportado por un módulo
empotrado que contiene un conector RJ45, un
conector para cámara CM OS y un módulo CM BF537E de la familia Blackfin de Analog
Devices, con un D SP Blackfin 537 (hasta 600
M hz, 132 Kbytes de memoria interna nivel L1,
4.3. Comunicación entre sistema de visión y la
unidad de control principal
Para el intercambio de información entre el
sistema de visión y la unidad de control principal
se ha implementado un protocolo de mensajes
basado en TCP/IP. La caracterización del entorno
del robot resultado del procesamiento de la
imagen se envía al módulo de control, que es el
encargado de tomar las decisiones pertinentes.
5. ARQUITECTURA
La propuesta se basa en integrar un sistema de
visión empotrado en la arquitectura de control
distribuida del robot humanoide. Todo el cómputo
referente a la percepción visual del entorno se
realiza en el D SP del sistema de visión y la
información extraída es compartida con todo el
sistema de control distribuido por medio de la
comunicación Ethernet.
5.1. Sistema de visión
La aplicación implementada en el DSP del sistema
de visión está concebida como un proceso
multihilo: un hilo principal, uno para adquisición
de la imagen y uno para procesamiento de la
imagen.
El hilo principal se encarga de la inicialización de
la cámara y las comunicaciones y de lanzar los
hilos de adquisición y de procesamiento, que se
sincronizar entre ellos mediante un mecanismo de
semáforos.
El hilo de adquisición de la imagen se encarga de
recoger las imágenes que entrega el sensor a
través del driver. El hilo de procesamiento recoge
la imagen guardada en el buffer por el hilo de
adquisición y aplica los algoritmos para extraer la
información requerida. Dicha información es
almacenada y comunicada al módulo de control
del robot mediante el protocolo sobre TCP creado.
Los hilos se implementan sobre el VisualDSP
Kernel, un sistema operativo muy ligero y
robusto, integrado en el entorno de desarrollo del
Blackfin que permite, entre otras cosas, definir
hilos, prioridades, regiones críticas, semáforos y
mensajes.
El periodo del hilo de adquisición está ligado
al frame rate de captura de imágenes de la
cámara. Si trabajamos en resolución QVGA (320
x 240 pixels) el frame rate es de 30 fps, lo que
implica un periodo de 33 ms para el hilo de
adquisición. El tiempo de cómputo del hilo de
adquisición es mínimo, ya que la imagen se
guarda en el buffer por DM A (Direct Memory
Access) sin usar el procesador. Durante este
momento el procesador es usado por el hilo de
procesamiento, que tiene un tiempo de cómputo
de unos 10 ms. En conclusión, se obtiene una
imagen procesada cada 33 ms, con una utilización
de procesador de aproximadamente 30%. El
cronograma de tiempos se muestra en la figura 4
(el hilo superior en la imagen es el hilo de
procesamiento y el segundo es el hilo de
adquisición).
5.2. Unidad de control principal
La unidad de control principal se encarga de
interpretar la información proveniente del sistema
de visión para decidir el comportamiento a
realizar. Además, es la encargada de procesar los
datos recogidos del resto de sensores del robot
(módulo de inclinación y módulo de presión).
Actualmente, el sistema de visión transmite
información relativa a la localización de los
objetos en la imagen cada 33 ms. Se ha
implementado tracking de objetos, de forma que
las coordenadas de los objetos en la imagen se
traducen a rotaciones de los servos de la cabeza
para poder seguir el objeto en cuestión. El sistema
de control utiliza esta información para posicionar
los servos.
Se pretende que en un futuro la unidad de control
principal, en función de las necesidades y los
recursos disponibles, marque el tipo de
procesamiento adecuado en términos de tiempo y
fiabilidad.
6. PROCES AMIENTO DE LA IMAGEN
El trabajo desarrollado hasta el momento abarca
los pasos de segmentación de imágenes y
reconocimiento de objetos (pelota y portería).
6.1. Espacio de color y resolución
El espacio de color escogido para la imagen
entregada por el sensor es YUV, que separa la
información de cada pixel en componentes de
iluminancia (Y) y crominancia (U,V). Se trabaja
con una resolución QVGA (ancho de 320 pixels y
alto de 240).
Figura 4. Crónograma de tiempos de la aplicación en el DSP del sistema de visión
6.2. Segmentación de la imagen y conectividad
de pixels
El objetivo de las técnicas de segmentación de
imagen es extraer los pixels del conjunto
siguiendo unos criterios definidos para simplificar
el procesamiento y análisis posterior. Las técnicas
de conectividad permiten agrupar pixels
adyacentes similares en entidades más grandes.
En nuestro caso, los criterios de segmentación se
basan en el color, de forma que los pixels
extraídos de la imagen corresponden a objetos de
colores conocidos con antelación. De la imagen
original se aíslan los pixels cuyo color esté dentro
de unos umbrales definidos previamente. Al
mismo tiempo, se agrupan los pixels contiguos del
mismo color y se caracterizan las agrupaciones de
pixels (color, número total de pixels, ancho, alto y
centroide).
Se compararon cinco algoritmos distintos de
conectividad de pixels, de entre los cuales se
adoptó el Run Length Encoding. Los tiempos de
procesamiento de los algoritmos implementados
en M atlab se presentan en la Tabla 1.
t e (s)
% respecto al
mejor
M atrices de
adyacencia
1.32
146
“Flood fill approach”
1.96
216
“Equivalence class
resolution”
0.981
108
“Union find”
1.04
115
“Run length
encoding”
0.906
100
Algoritmo
Tabla 1.
Comparación algoritmos segmentación y
conectividad imagen
El algoritmo Run length encoding implementado
representa la imagen segmentada como secuencias
de 1s o runs, caracterizadas con el pixel inicio y
número de pixels. Las runs adyacentes se agrupan
en candidatos a objeto.
candidatos run_lenght_encoding()
for cada fila en la imagen
agrupa pixels contiguos del mismo color
en runs
run = {color,no_pixels,fila,centro}
if run es adyacente a candidato y del mismo
color actualiza candidato
else
crea
candidato
=
{color,
centroide,
alto, ancho}
return candidato
Algoritmo 1. Segmentación y conectividad de pixels
6.3. Reconocimiento de objetos
Una vez caracterizadas las agrupaciones de pixels
con color, alto, ancho y centroide se aplican
algoritmos de forma para identificar los objetos
(pelota y portería).
Banco de pruebas de algoritmos de
procesamiento de imagen.
Una vez ajustados los parámetros de
configuración de la cámara, se marcan los rangos
de color de los objetos, que serán utilizados por
los algoritmos de segmentación.
El hecho de poseer esta aplicación permite
adaptarse rápidamente a las condiciones del
entorno, cuestión esta básica en las pruebas de la
RoboCup.
La interfaz gráfica se muestra en la figura 5.
Centroide object_identification(candidatos,
objeto)
for cada candidato a objeto
filtro_de_forma(candidato)
decision(candidatos_filtrados)
if decision == ok
return candidato.centroide
Algoritmo 2. Identificación de objetos
6.4. Mensaje TCP
Una vez localizados en la escena los objetos de
interés, la información relativa a aquellos que han
sido identificados se transmite (identificador de
objeto y coordenadas en la imagen) organizando
la indoemación en forma de matriz y se transmite
a la unidad principal de control. Dicha transmisión
se realiza a través de una conexión TCP lo cual
garantiza la entrega de los datos, cuestión
fundamental para el control del robot.
7. APLICACIÓN GUI
La aplicación desarrollada permite conectarse
directamente al sistema de visión del robot y
realizar las siguientes acciones:
Adaptación
de
los
parámetros
de
configuración de la cámara a las condiciones
de iluminación del entorno y del momento.
Calibración de los colores de los objetos
según las condiciones de iluminación
Procesamiento online de las imágenes
capturadas por el robot.
Figura 5. Interfaz gráfica de la aplicación
8. RES ULTADOS
8.1. Segmentación de la imagen y conectividad
de pixels
En la figura 6 se muestran distintas imágenes
segmentadas. Los pixels segmentados son
aquellos cuyo color coincide con el color de los
objetos a identificar (pelota y portería azul).
Con la conectividad se caracterizan las
agrupaciones de pixels que permitirán identificar
los objetos. Además, se eliminan aquellas
agrupaciones que no contengan un número
mínimo de pixels.
Figura 6. Algoritmos de segmentación y identificación de objetos sobre distintas imágenes
8.2. Identificación de los objetos
Se identifican los objetos de entre las distintas
agrupaciones de pixels caracterizadas y se
construye el mensaje con la posición, en
coordenadas de la imagen, de los distintos objetos
identificados para transmitirlo al módulo de
control. Los resultados se muestran en la figura 6.
9. TRAB AJO FUTURO
El trabajo inmediato se centrará en completar los
pasos básicos comentados en la figura 1, esto es,
la estimación de los objetos respecto del robot y la
autolocalización del robot en el entorno.
Para ayudar en la autolocalización del robot,
se pretende además desarrollar un algoritmo de
detección de líneas para combinarlo con la
información de localización de los objetos fijos
(porterías).
Además, se abordarán otras cuestiones como
la fusión y compartición de información entre
robots o la posibilidad de incorporar la visión
estereoscópica.
Referencias
[1] Tzuu-Hseng S. Li et al “aiRobots: Team
Description for Humanoid KidSize League of
RoboCup
2010”.
Workshop
Robocup
Singapore 2010.
[2] Chokchai Pengyasa et al. “Team BSRU-I:
Team Description Paper”. Workshop Robocup
Singapore 2010.
[3] Aphilux Buathong et al. “Chibi Dragon Team
Description Paper”. Workshop Robocup
Singapore 2010.
[4] Luis F Lupián et al. “Cyberlords RoboCup
2010 Humanoid KidSize Team Description
Paper”. Workshop Robocup Singapore 2010.
[5] M . Friedmann et al. “Darmstadt Dribblers.
Team Description Paper for Humanoid
KidSize League of RoboCup 2010”.
Workshop Robocup Singapore 2010.
[6] Bennet Fischer et al. “FUmanoid Team
Description Paper 2010. Workshop Robocup
Singapore 2010.
[7] Lim Sock Lip et al. “Team NYP Lions: Team
Description Paper”. Workshop Robocup
Singapore 2010.
[8] Roberto Carlos Ramírez M árquez et al.
“PIONEROS M EXICO Team Description
Paper
ROBOCUP
2010
Singapore”.
Workshop Robocup Singapore 2010.
[9] Guangnan Ye et al. “PKU-SHRC Team
Description for RoboCup 2010”. Workshop
Robocup Singapore 2010.
[10] Buck Sin N g et al. “Robo-Erectus Jr-2010
KidSize Team Description Paper”. Workshop
Robocup Singapore 2010.
[11] Keith Sullivan et al. “RoboPatriots: George
M ason University 2010 RoboCup Team”.
Workshop Robocup Singapore 2010.
[12] Shohei Takesako et al. “SitiK KIT. Team
Description for the Humanoid KidSize League
of RoboCup 2010”. Workshop Robocup
Singapore 2010.
[13] S. Hamidreza M ohades Kasaei et al. “Persia
Humanoid Robot. Team Description Paper
2010”. Workshop Robocup Singapore 2010.
[14] Guillermo Villarreal-Pulido et al. “BogobotsTecMTY humanoid kid-size team 2010”.
Workshop Robocup Singapore 2010.
[15] R. Gerndt et al. “WF Wolves KidSize Team
Description RoboCup 2010”. Workshop
Robocup Singapore 2010.
[16] Jaekweon Han et al. “Team DARwIn. Team
Description for Humanoid KidSize League of
RoboCup
2010”.
Workshop
Robocup
Singapore 2010.
[17] Soo Theng Koay et al. “Team Description
2010 for Team RO-PE”. Workshop Robocup
Singapore 2010.
[18] Thavida M aneewarn et al. “Team KM UTT:
Team Description Paper”. Workshop Robocup
Singapore 2010.
[19] Tang Qing “ZJUDancer Team Description
Paper”. Workshop Robocup Singapore 2010.
[20] Ching-Chang Wong et al. “Humanoid Soccer
Robot Design by TKU Team for Humanoid
League of RoboCup 2010”. Workshop
Robocup Singapore 2010.
[21] Chung-Hsien Kuo et al. “Team Description
Paper: HuroEvolution Humanoid Robot for
RoboCup
2010
Humanoid
League”.
Workshop Robocup Singapore 2010.
[22] Javier Testart et al. “UChile RoadRunners
2010 Team Description Paper”. Workshop
Robocup Singapore 2010.
Descargar