2008
Encuentro de Investigaci´on en Ingenier´ıa El´ectrica
Zacatecas, Zac, Marzo 13—14, 2008
Control de Robots M´oviles: Implementaci´on
Experimental en Tiempo Real con
Matlab/Simulink
Jes´us Marcel Garc´ıa–Ya˜nez y Javier Moreno–Valenzuela Centro de Investigaci´on y Desarrollo de Tecnologia Digital,
perteneciente al Instituto Polit´ecnico Nacional. Av. del Parque 1310, Tijuana, B.C. M´exico 22510 tel: (664)-623-1377; fax: (664)-623-1388
correo-e: garcia@citedi.mx, moreno@citedi.mx Resumen — Este trabajo reporta algunos
resultados preeliminares sobre el problema de control de los movimientos de un
robot m´ovil en ambientes sin obst´
acu-los. La idea fundamental consiste en la
implementaci´on de un controlador de
seguimiento de trayectorias, ya propuesto en la literatura, para el popular robot uniciclo Boe Bot. La efectividad de la plataforma experimental y el controlador
se muestra a trav´es de experimentos.
Abstract— This document reports some results on the motion control problem of wheeled mobile robot in environments without obstacles. The main idea con-sists in the implementation of a trajec-tory tracking controller, already proposed in the literature, in the popular unicycle robot Boe Bot. The efficiency of the ex-perimental platform and the controller in confirmed with the results obtained by ex-periments.
Descriptores — Robot m´ovil, plataforma
experimental, seguimiento de trayectorias, controlador.
I. INTRODUCCI ´ON
L
A rob´otica m´ovil ha sido un ´areaacti-va de investigaci´on y desarrollo durante
las ´ultimas tres d´ecadas. Este gran inter´es ha
sido impulsado por el gran numero de
apli-caciones que pueden ser s´olo dirigidas por
robots m´oviles y su habilidad para trabajar
en ambientes potencialmente arriesgados o poco estructurados [1]. Particularmente, sus aplicaciones est´an asociadas con funciones que requieren cierta destreza para resolver situaciones en las que se requiere trabajar en ambientes altamente nocivos o extremos
para las personas, tales como excavaci´on de
minas, aplicaciones militares, plantas
nucle-ares, transportaci´on de materiales qu´ımicos o
biol´ogicos altamente t´oxicos y en los ´ultimos
a˜nos exploraci´on espacial. De acuerdo a
es-tas aplicaciones, est´a claro que se requiere un buen sensado del entorno para llevar a cabo el preciso nivel de control que las tareas re-quieren.
Obtener informaci´on relevante sobre el
en-torno es una de los principales problem´aticas
em-plean diversos tipos de sensores, elementos que nos permiten establecer un puente
en-tre el mundo f´ısico y el mundo electr´onico
(retroalimentaci´on de informaci´on). En este
trabajo se propone un sistema de sensado
vi-sual para la extracci´on de informaci´on
so-bre la posici´on y orientaci´on de un robot
m´ovil dentro de su entorno. Al menos dos
principales aspectos justifican el uso de la visi´on para proveer de capacidad sensorial a
un robot m´ovil: la amplia disponibilidad de
c´amaras CCD de bajo costo y la gran
can-tidad de informaci´on del entorno donde se
mueve el robot en una sola imagen (en
com-paraci´on con las medidas de los sensores de
ultrasonido o l´aser). Actualmente, la visi´on
generalmente resulta en una buena
combi-naci´on balanceada de bajo ruido, alta
can-tidad de informaci´on y bajo costo. Sin
em-bargo, la extracci´on de informaci´on relevante
en tiempo real a partir de una sola imagen o un conjunto de im´agenes es una tarea bas-tante compleja, lo que sigue siendo un gran
obst´aculo todav´ıa para el uso intensivo de la
visi´on en robots m´oviles [2].
Un robot m´ovil es uno de los bien
conoci-dos sistemas que tienen las limitaciones de
mecanismos no-holon´omicos y muchos
tra-bajos con diversos m´etodos de control para este tipo de sistemas esta disponible en la literatura. El objetivo de este trabajo es pre-sentar los resultados obtenidos por la
imple-mentaci´on experimental de un controlador
propuesto en [1] para la soluci´on del pro-blema de seguimiento de trayectorias de un
robot m´ovil tipo uniciclo bajo restricciones
no-holon´omicas. Los resultados obtenidos en
la simulaci´on num´erica y experimentaci´on
muestran la efectividad tanto del controlador como de la plataforma experimental.
El resto de este documento esta organizado
de la siguiente manera. La secci´on II
presen-ta el modelado del sistema, el objetivo de control y el controlador para la soluci´on del problema de seguimiento de trayectorias. La
secci´on III presenta el sistema experimental
usado en la implementaci´on del controlador.
La secci´on IV reporta algunos resultados de
simulaci´on del robot m´ovil con la
incorpo-raci´on del controlador propuesto en [1]. La
secci´on V presenta resultados obtenidos en la
implementaci´on experimental del controlador
descrito en la secci´on II. Finalmente las
con-clusiones obtenidas se presentan en la secci´on
VI.
II. MODELADO Y CONTROL DE
ROBOTS M ´OVILES
A. Modelo del robot
El modelo m´as simple de un robot m´ovil
no-holon´omico es el uniciclo, un vehiculo de dos ruedas motoras actuadas por dos servomo-tores independientes y una rueda adicional
para mantener el equilibrio [3]. El robot m´ovil
usado en este trabajo es el Boe Bot, un mode-lo tipo unicicmode-lo desarrollado por Parallax [4], el cual se asume est´a bajo la restricci´on no-holon´omica de rodamiento puro y no desliza-miento.
El modelo cinem´atico del robot m´ovil con dos
ruedas actuadas es descrito por [1]
˙q = S(q)υ, (1)
donde q(t), ˙q(t) ∈ IR3
se definen como
q = [xc yc θ]T, ˙q = [ ˙xc ˙yc ˙θ]T, (2)
con xc(t), yc(t) denotando la posici´on del
cen-tro de masa del robot m´ovil a lo largo de las
coordenadas cartesianas (x,y), θ(t)
represen-ta el ´angulo de orientaci´on del robot, ˙xc, ˙yc
denotan los componentes de la velocidad
li-neal del robot representada por υ1(t) ∈ IR
1
˙θ(t) ∈ IR1
refiere la velocidad angular alrede-dor del eje vertical, mientras que la matriz
S(q) ∈ IR3×2 se define como S(q) = cos θ 0sin θ 0 0 1 , (3) y el vector de velocidad υ(t) ∈ IR2 se denota por υ = [υ1 ˙θ]T. (4)
La relaci´on entre υ1, ˙θ y la velocidad angular
de las ruedas del robot se define por ωDer ωIzq = 1/r 1 −1/r 1 υ 1 ˙θ , (5)
donde ωDer, ωIzq denotan la velocidad
angu-lar para las ruedas derecha e izquierda respec-tivamente, r representa el radio de las ruedas del robot.
B. Seguimiento de trayectorias
El objetivo de control para el problema de seguimiento de trayectorias consiste en que
la diferencia entre la posici´on y orientaci´on
actual del robot y una trayectoria de
posi-ci´on y orientaci´on de referencia variante con
el tiempo debe tender a cero [1]. Para
cuan-tificar el objetivo de control se definen ˜x(t),
˜ y(t), ˜θ(t) ∈ IR1 como sigue e x = xc−xrc, e y = yc−yrc, e θ = θ − θr, (6)
donde la posici´on y orientaci´on actual
deno-tada por xc(t), yc(t), θ(t) son definidas en (2)
y qr(t) = [ xrc(t) yrc(t) θr(t)]T ∈IR
3
denota una trayectoria de referencia variante con el tiempo. La trayectoria de referencia es gene-rada a trav´es de un modelo cinem´atico de referencia, el cual se define de acuerdo a
˙
qr = S(qr)υr, (7)
donde la matriz S(qr) fue definida en (3) y
υr(t) = [ υ1r(t) ˙θr(t)]T ∈IR2 denota la
veloci-dad lineal y angular variante con el tiempo, las cuales se asume son acotadas al igual que sus derivadas.
Con el fin de facilitar el desarrollo del sistema
en lazo cerrado y su an´alisis de estabilidad,
una transformaci´on global invertible ha sido definida en [1] como sigue
e 1 e2 e3 =
−cos θsin θ cos θ 0sin θ 0
0 0 1 ˜ x ˜ y ˜ θ .(8)
Para relacionar las se˜nales auxiliares del
e-rror denotadas por e1(t), e2(t) y e3(t) ∈ IR
1
al error de posici´on y orientaci´on dados por
˜
x(t), ˜y(t) y ˜θ(t) definidas en (6), se toma la
derivada con respecto al tiempo de (8) y u-sando (1)-(4), (6), (7) se obtiene e˙ 1 ˙ e2 ˙ e3 = υ1+ ˙θe2−υ1rcos e3 − ˙θe1+ υ1rsin e3 ˙θ − ˙θr . (9)
Se dice que si se encuentra una ley de
con-trol (υ1, ˙θ) para la transformaci´on cinem´atica
dada en (9) tal que si el l´ımite l´ım t→∞ e 1(t) e2(t) e3(t) = 0, (10)
se cumple, entonces se satisface el objetivo de control de seguimiento de trayectorias. Un controlador diferenciable y variante con el tiempo ha sido propuesto en [1] como sigue
υ 1 ˙θ = " −k1e1+ υ1rcos e3 −υ1r sine3 e3 e2 −k2e3+ ˙θr # ,(11)
donde k1, k2 son ganancias de control
cons-tantes y positivas. Sustituyendo la ley de con-trol dada en (11) dentro del sistema en lazo abierto en (9) se obtiene la siguiente expre-si´on ˙ e1 ˙ e2 ˙ e3 = ˙θe2−k1e1 − ˙θe1+ υ1rsin e3 −υ1rsine3 e3 e2 −k2e3 , (12)
1 ω 2 ω θ c x c y
Figura 1. Esquema de bloques: Plataforma experimental en tiempo real
que denota el sistema de lazo cerrado en
ter-minos del vector de estados [e1 e2 e3]T ∈IR
3
. Es posible demostrar que
l´ım t→∞ e 1(t) e2(t) e3(t) = 0, (13)
lo que implica que
l´ım t→∞ ˜ x(t) ˜ y(t) ˜ θ(t) = 0. (14)
III. SISTEMA EXPERIMENTAL
La validaci´on experimental del controlador
propuesto en este trabajo ha sido realizada usando una base experimental (figura 1) de-sarrollada en el Centro de Investigaci´on y De-sarrollo de Tecnologia Digital (CITEDI), la
cual emplea un lazo de retroalimentaci´on
vi-sual para el control de posici´on y orientaci´on
del robot m´ovil Boe Bot en ambientes libres
de obst´aculos. La figura 1 muestra un
diagra-ma de bloques del sistediagra-ma experimental. El desarrollo de la plataforma experimental se ha realizado usando el siguiente equipo:
un microcontrolador Basic Stamp II,
inclui-do en el robot m´ovil accionado por dos
ser-vomotores ubicados en las ruedas derecha e izquierda del robot, un adaptador se-rie/bluetooth Parani SD-100, un adaptador bluetooth EB-500, dos computadoras perso-nales, una c´amara de video CMOS y software cient´ıfico (Matlab/Simulink).
IV. RESULTADOS DE SIMULACI ´ON
Usando simulaciones num´ericas, en esta
sec-ci´on se ilustra el rendimiento del controlador
dado en (11) en lazo cerrado con el modelo
din´amico dado en (1).
La trayectoria deseada fue seleccionada de acuerdo a los siguientes parametros
υ1r = 6 [pixeles/seg],
˙θr= 0,025 [radianes/seg],
(15) mientras que las condiciones iniciales q(0) y
qr(0) del sistema fueron asignadas como sigue
q(0) = xc(0) yc(0) θ(0) = 55 40 0,15 , (16) qr(0) = xyrcrc(0)(0) θr(0) = 6040 0,25 . (17)
0 10 20 30 40 50 50 100 150 200 250 Tiempo [Segundos] [píxeles] x rc(t) xc(t)
Figura 2. Simulaci´on: componente xc(t) y xrc(t).
0 10 20 30 40 50 0 50 100 150 200 250 300 Tiempo [segundos] [píxeles] y rc(t) yc(t)
Figura 3. Simulaci´on: componente yc(t) y yrc(t).
Las ganancias del controlador han sido selec-cionadas como
k1= 1,
k2= 50. (18)
La simulaci´on fue realizada en un tiempo de 50 segundos. Los resultados obtenidos por la respuesta del sistema en lazo cerrado se mues-tran en las figuras 2-5.
Como se muestra en las figuras, el error
de seguimiento de posici´on y orientaci´on es
pr´acticamente cero despues de un tiempo de cinco segundos de simulaci´on, lo que muestra
0 10 20 30 40 50 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 Tiempo (segundos) [radianes] θr(t) θ(t)
Figura 4. Simulaci´on: componente θ(t) y θr(t)
50 100 150 200 250 0 50 100 150 200 250 300 Coordenada x [píxeles] Coordenada y [píxeles] Trayectoria deseada Trayectoria real
Figura 5. Simulaci´on: Trayectoria real (xc(t), yc(t))
y deseada (xrc(t), yrc(t)) la efectividad del controlador.
V. RESULTADOS EXPERIMENTALES A. Experimento
En esta secci´on se reportan resultados
expe-rimentales sobre la implementaci´on del
con-trolador (11) en el robot Boe Bot usando las trayectorias de referencia definidas por la
ecuaci´on diferencial (7), υ1r y ˙θr en (15), las
condiciones iniciales en (17), y las ganancias de control en (18). El experimento inicia con
la posici´on y orientaci´on del robot en q(0) en
resultados obtenidos se muestran en las
figu-ras 6-9. N´otese que ´estos coinciden con los
resultados producidos por la simulaci´on del sistema (1) usando el controlador (11),
des-critos en la secci´on IV.
En forma adicional, se han calculado del
ex-perimento las se˜nales de error de posici´on
˜
x(t), ˜y(t) y orientaci´on ˜θ(t). Dichas se˜nales
son mostradas en las figuras 10-12.
En estas figuras se observa que las se˜nales de
error ˜x(t), ˜y(t) y ˜θ(t) permanecen acotadas
y con cierta tendencia a oscilar. Particular-mente el error de posici´on se mantiene os-cilando entre valores menores a 10 [p´ıxeles],
mientras que el error de orientaci´on oscila
en-tre valores cercanos a 0.1 [radianes], estos he-chos implican que el error en la trayectoria del robot es proporcional a la curvatura de la referencia.
B. Discusi´on de resultados
De los resultados experimentales ilustrados por las figuras 6-12, es posible concluir que el controlador (11) presentado en este docu-mento alcanza un seguimiento razonable de la posici´on deseada variante con el tiempo, sin embargo el rendimiento del seguimiento de la
orientaci´on deseada no puede ser conveniente
para muchas aplicaciones. Basado en la expe-riencia que se tiene en el desarrollo y uso de la plataforma experimental se puede concluir que la carencia de exactitud en el
seguimien-to de orientaci´on se debe a algunos factores,
entre ellos esta la limitaci´on de la plataforma
experimental en relaci´on a la diferencia
en-tre las tasas de muesen-treo de datos empleadas
por los m´odulos del sistema, y es que aunque
el control y envio de comandos de velocidad para las ruedas del robot se realiza en tiempo
real, el calculo y retroalimentaci´on de la
posi-ci´on y orientaci´on actual del robot depende
de la tasa de transmisi´on de la c´amara
em-pleada, asi como del tiempo de procesamien-to de la imagen captada por el sistema de
visi´on. Otro obst´aculo en la implementaci´on
del controlador propuesto fue determinar la
posici´on y orientaci´on del robot m´ovil en el
espacio captado por la c´amara de una
for-ma eficiente. Para solucionar este obst´aculo
se emplearon algoritmos de binarizaci´on por
umbrales y an´alisis estad´ıstico para obtener
la posici´on de una marca de dimensiones y ca-racter´ısticas conocidas colocada sobre el cen-tro de masa del robot. Desafortunadamente por el movimiento del robot, las velocidades altas, los algoritmos de procesamiento de la imagen y la iluminaci´on empleada resulto en
una medici´on ruidosa. De este hecho se
ob-tiene que ya que la medici´on de la posici´on
solo necesita de una marca, el controlador fue capaz de alcanzar un rendimiento
razo-nable. Sin embargo la medici´on de la
posi-ci´on de dos marcas es necesaria para
deter-minar la orientaci´on del robot m´ovil. En
con-clusi´on ya que la posici´on de ambas marcas esta sujeta al error y el ruido, el resultado del
calculo de la orientaci´on del robot fue
com-prometido. Esta ultima observaci´on sugiere
que si la medici´on de posici´on y orientaci´on
se realizara con algoritmos de procesamien-to mas sofisticados, el error de seguimienprocesamien-to
en la posici´on y orientaci´on mostrado por el
controlador disminuir´ıa.
VI. CONCLUSIONES
En este trabajo se presentaron algunos avances en el desarrollo de una plataforma experimental basada en Matlab y Simulink que permite aplicaciones de control median-te dispositivos Bluetooth. Por otra parmedian-te se concluye que los resultados experimen-tales presentados en este documento son sa-tisfactorios, verificando con ello la efectivi-dad tanto del controlador empleado como de la plataforma experimental propuesta para
la soluci´on del problema de control de los
movimientos de robots m´oviles.
Referencias
[1] W. Dixon, D. Dawson, E. Zergeroglu, A.Behal Nonlinear Control of Wheeled Mobile Robots, John Wiley & Sons, 2004.
[2] C. M. Soria, R. Carelli, “Control de un Robot M´ovil Utilizando el Flujo Optico Obtenido a trav´es de un Sistema Omnidireccional Cata-di´optrico”, en memorias del IV Jornada Argenti-na de Rob´otica, Cordova, Argentina, 16 y 17 de noviembre, 2006.
[3] T. Hieu Bui, T. Tien Nguyen, T. Lam Chung and S. Bong Kim “A Simple Nonlinear Control of a Two-Wheeled Welding Mobile Robot”, In-ternational Journal of Control, Automation, and System Vol. 1, No. 1, pp. 35-41, 2003.
[4] Online : http://www.parallax.com/, website de Parallax, Inc.
[5] C. Canudas de Wit, B. Siciliano, G. Bastin Theory of Robot Control, Springer, 1996.
0 10 20 30 40 50 50 100 150 200 250 Tiempo [segundos] [píxeles] x rc(t) x c(t)
Figura 6. Experimento: componente xc(t) y xrc(t).
0 10 20 30 40 50 0 50 100 150 200 250 300 Tiempo [segundos] [Pixeles] y rc(t) yc(t)
Figura 7. Experimento: componente yc(t) y yrc(t).
0 10 20 30 40 50 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 Tiempo [segundos] [radianes] θr(t) θ(t)
Figura 8. Experimento: componente θ(t) y θr(t)
50 100 150 200 250 0 50 100 150 200 250 300 Coordenada x [píxeles] Coordenada y [píxeles] Trayectoria deseada Trayectoria real
Figura 9. Experimento: Trayectoria real (xc(t), yc(t)) y deseada (xrc(t), yrc(t))
0 10 20 30 40 50 −10 −8 −6 −4 −2 0 2 4 6 8 10 12 Tiempo [segundos] [pixeles]
Figura 10. Experimento: error de posici´on ˜x(t)
0 10 20 30 40 50 −15 −10 −5 0 5 Tiempo [segundos] [pixeles]
Figura 11. Experimento: error de posici´on ˜y(t)
0 10 20 30 40 50 −0.6 −0.5 −0.4 −0.3 −0.2 −0.1 0 0.1 Tiempo [segundos] [radianes]