Você está na página 1de 12

Arquitecturasoftwarepararobotsmvilesaplicandolametodologa

MDASR
Softwarearchitecturetomobilerobotsusingthemethodology
MDASR
NelsondeJ.LondooOspina.PhD.
ProfesorDepartamentodeIng.Elctrica,ymiembrodelgrupodeinvestigacinenmanejoeficientedelaenerga
GIMEL.FacultaddeIngeniera,UniversidaddeAntioquia,Medelln.Colombia.
nlondono@udea.edu.co
Recibidopararevisin24deAbrilde2009,aceptado23deOctubrede2009,versinfinal25deNoviembrede2009

Resu men Se a p lica la M et od ologa d e Desa r r ollo d e


Ar quitecturasSoftwareparaRobotsMDASR,comoherramienta
deespecificacin,anlisisydiseodeunaArquitecturadeControl
R ea ct iva . L a met od ologa se a p oya en mt od os y lengu a jes
a mplia ment e a d op t a d os como el P U (P r oceso Un ifica d o d e
DesarrollodeSoftware)yUML(LenguajeUnificadodeModelado),
apropiandoconceptosymtodosempleadosenIngenieraSoftware

PalabrasClaveRobtica,ArquitecturadeRobots,Ingenierade
Software,Proceso Unificadode Modelado.
AbstractAdopting a methodologica l str ategy that covers the
differentstages ofthedevelopment ofasystem, theMethodology
ofDevelopmentofArchitecturesSoftware forRobotsMDASR,
it is applied as tool of specifica tion, analysis and design of a
ReactiveControlArchitecture.Themethodologyrestsonmethods
and languages widely adopted as the PU (Pr ocess Unified of
Development of Softwar e) and the UM L (Language Un ified of
Shaped) and adapting concepts of methods used in Engineering
Softwar e.

KeywordsRobotics,Robots architecture, Software engineering,


Unified Modeled Process,software Development.
I . I NTR O DUC C IO N

omando comobase unapropuesta Metodolgica para


ArquitecturasRobot[13],quecubrelasdiferentesetapas
deldesarrollodeunsistema,sepresentancomocasodeestudio
laarquitecturareactivaaplicadaaunsistemarobot,siguiendo
lospasospropuestosenMDASR(MetodologadeDesarrollo
de Arquitecturas Software para Robots [14][15], cuya
caracterstica ms importante es que se apoya en mtodos y
lenguajesampliamenteaceptadosporlacomunidadcientficay
adoptadosendiferentesreasdelconocimiento,comoloson:el
PU(ProcesoUnificadodeDesarrollodeSoftware)[9]yelUML

Lenguaje Unificado de Modelado [3][4][20][19],


complementadosconmtodosempleadosenIngenieraSoftware
[12][6].
Con base en laArquitectura Reactiva aplicada a un robot
comercial,seejemplificacadaunodelospasospropuestosenla
metodologa, enfatizandoen losdiagramas de casosde Uso,
quepermitenilustrarlaarquitectura,ypresentandolasetapas
de anlisis y diseo de forma general mediante los pasos
concebidosenMDASR.
Esimportanteaclararque,porlimitacionesdeespacio,todos
loscasosdeuso,diagramasdediseoyanlisisnopuedenser
detallados, presentando solo algunos de los esquemas y
resultadosobtenidoseneldesarrollodelproyecto.

II. M DASR DIAGRAM A GENERAL

LaMetodologadeDesarrollodeArquitecturasSoftwarepara
Robots (MDASR) [14], es una metodologa concebida para
facilitarlacomunicacinentreelingenieroenRobtica(quien
concibe la arquitectura) y elingeniero de sistemas (quien la
desarrolla), se apoya en los paradigmas de la ingeniera de
software,adoptandomtodosdeespecificacin,anlisis,diseo
eimplementacinestndaresyellenguajederepresentacin
msrelevanteactualmentecomoesUML.Lafigura1ilustra,de
formagrfica,lametodologa,queproponenlospasosaseguir
enlaconcepcin,anlisis,diseoeimplementacin.Setoma
como caso de estudio e ilustracin de la metodologa, una
ArquitecturaReactivaaplicadaaunrobotcomercial[10].
El objetivo es que, siguiendo los lineamientos de la
metodologa,lasolucinpropuestaporelIngenieroenRobtica,
"ArquitecturaReactiva",searepresentadadeformaestndar,

RevistaAvancesenSistemaseInformtica,Vol.6No.3,Diciembrede2009ISSN16577663

134

RevistaAvancesenSistemaseInformtica,Vol.6No.3,Diciembrede2009ISSN16577663

guiadaporunprocedimientosistemtico,comoseilustraenla
figura1,paraobtenerunsistemacompletamenteespecificado
porCasosdeUso,AnalizadoyDiseadosiguiendounconjunto
lospasos,bajounlenguajeyprocedimientoquelleguehastael

programador,quienenltimainstanciaconvertirlaarquitectura
enunconjuntodeelementossoftware.
Enelejemplosetomacadapasoysedesarrollahastaunnivel
queseafcilmentecomprendidoporelingenierodesistemas

VI SI ONG ENERAL
DELSIST EM A
ElRob otE ntor no

Preliminares:

Entorno,
Considera ciones,
ArquitecturaGeneral

Usuario

Usuario

Propsito
Objetivo
S.Actual
S.Propuesto
Requisitos(CU)

E SP EC IFI CACI ON
delaAr quitectur a

Visin Gen er ald elSistemaRob ot


Ar qu itectu r aob jetodedesa r r ollo
Req uisitos(Casosd eUso)

In ter fa z
Usua r io

M O DELO
(CASOSDEUSO)
Usuario

Arquitectura.
Paquetes
SubPaquetes
Clases
ModeloAnal

ANAL ISIS
Arquitectura Softwa re

Desarrollador

SistemasoPaq u etes
Arq u itectu ra Softwa r e
Su bPaq u etesySub sistema s
deAn lisis
Identifica r.ClasesAn lisis
Dia gr ama d eIn ter accin

DISEO

M ODELO DEANALISIS

Desarrollador

ArquitecturaSoftwa repara
Robots

Nod os
Sistema sySub sist emas
CasosdeUsoDise o
Clase(d ia gr am s)

Desarrollador

Arquitectura
Clases/Objeto
s
Modelo
Clases
DiseoClases

M O DELODEDISEO
ArquitecturaSoftwa re

IM PLEM ENTACION
Clases,
Compon entes
Emp aq u etar
Depen d encia s

Usuario

ARQUITECTURA
SOFTWARE

Figur a 1. Diagrama general de MDASR.


III. ARQUITECTURA REACTIVA

Enelcampodelasarquitecturassoftwarepararobots,son
muchaslaspropuestasenfoquesytendenciasdecontrolque
seproponen.Esascomosecuentaconunagrancantidadde
arquitecturasconorientacionesdeacuerdo alastcnicasde
procesamiento deinformacin, algoritmos deevaluacin de
decisiones,etc.Unasdelasmasrecurrentes,cuandosetratade
sistemas denavegacin y exploracin, sonlas arquitecturas
reactivas[5][7][16][21][17][11][18],sebasanenmodelos
biolgicosydeacciones,queexplicanelcomportamientode
diversosorganismosvivosdetipoestmulorespuestaas,el
robotpercibeelmundoyejecuta,enrespuesta,laaccinque
parezcamsapropiada[17].Enestetipodearquitecturas,la
informacinpercibidanoseintegraniseasociaaningnmodelo
delmundo.

Comosedijoanteriormente,parailustrarlametodologa,se
seguirn los pasos propuestos por la MDASR, aplicados
especficamenteaunalaarquitecturareactiva.
A. Especificacin - Control Reactivo
Elcontrolreactivo,seconcibecomounaseriedemdulos
elementales,capacesdeproduciraccionesderespuestadirecta,
enconcordanciaconlainformacinsensorialdisponible,este
tipodeaccinpuedeserejecutadacomorespuestafija,anteun
proceso de sensado (proceso reactivo o instintivo) o por
ejecucin refleja, despus de ser aprendido (procesos
reflexivos).
Elmodulodecontrolreactivoeselencargadodeejecutarlos
comportamientos elementales que requieran los mdulos
superiores,entendindosecomocomportamientoselementales
aquellosconformadosporunciclodesensorizacin,acciones
elementales y combinacin de ellas. Un comportamiento

ArquitecturasoftwarepararobotsmvilesaplicandolametodologaMDASRLondoo.

elementalsedefinecomoundispositivocomputacional,que
interpreta datos sensoriales, los procesa y produce una
respuesta[8].

Velarporlaseguridad
Resolverproblemasdeatascamientoyerroresproducidos
enelsistema(Software/Hardware).

Informarlasfallasocasionadasalosnivelessuperiores.

Visin general del sistema: El bloque Reactivo es el


encargadodeejercerpropiamenteelcontroldirectodelRobot.
Suobjetivofundamentalesgarantizarsunavegacin,operado
por un sistema de Control Reactivo (CR), basado en
Comportamientos[1].Suscaractersticasprincipalesson:

Sistemaactual. SecuentaconelsistemaKheperabsico,de
consecucincomercial[10].
Sistema Control reactivo propuesto. La Arquitectura
Software propuesta, debe implementar el conjunto de
operaciones que garanticen que el sistema ejecute control
reactivo, el Caso de Uso principal es precisamente
Ejecutar_Control_ Reactivo, el cual ejecuta las acciones
necesarias paragarantizar dicho comportamiento y,por sus
caractersticas,requiereunconjuntodecomandosconsiderados
Casosde Usoque extiendenelprincipal. Poresta razn,es
necesario realizar una especificacin mas detallada de este
sistema,queconlleveadefinirundiagramadecasosdeuso
comoseilustraenlafigura2.
En el esquema propuesto, el actor puede ser un operador
humano,uncomputadorosimplementeunCasodeUsodeun
sistemadecontrolmsgeneraldenominadoEjecutar_Control
_Reactivo.

Permitirejecucindecomportamientoselementales.
Ser flexible, lo que permite incluir comportamientos
adicionales.

Permitirquesuimplementacinsoporteunagranvariedad
detcnicas,incluyendoreglasheursticas,redesneuronales,
lgicaborrosaalgoritmosgenticos,etc.
Los comportamientos elementales son conmutados de
acuerdoalosrequerimientosdelUsuario
PropsitodelsistemaCR: Engeneralestebloquerecibelas
rdenesdelUSUARIOygarantizasuejecucinparaello,toma
lainformacinsensricarequerida,laprocesa,yenvaunaorden
deAccin,resultadodelprocesamientodelControlReactivo.
AlcancedelsistemaCR: Engeneral,elcontrolreactivodebe:
Garantizarfuncionamientoreactivo

Caso de Uso Ejecutar Control Reactivo: La figura 3


proponeeldiagramadeCasosdeUsodeunaArquitecturade
ControlReactivo.

Ejecutar_Rectiva
<<Include>>
<<Include>>
Leer
Sensores

Usuario
Mover
Motores

Robot

Figur a 2. Caso de Uso Ejecutar_Control_Reactivo


Activar/Desactivar_
Modo_Reactivo
Tomar
Info_Sensor
es

<<Extend>>

<<Include>>

Evaluar_Info
_Sensorica

<<Extend>>

Evaluar
comportamiento_a_
Activar

Leer
Sensores
<<Include>>

Desbloqueo

<<Extend>>

<<Include>>

Evaluar

<<Extend>>
<<Include>>

Eject.Modo
Automo

<<Include>>

Activar_
Comportamiento

Rectiva
Ejecutar
tarea
<<Include>>

Seguridad

Preventivo

<<Extend>>

<<Extend>>

<<Extend>>

Navegacin

Calcular_
Acion_Motores

Comportamietnos

<<Include>>
<<Extend>>

<<Extend>>

Gestion_
Fallas

Robot

Deliberativo
Gestion_
Alarmas

Usuario

Mover
Robot

<<Include>>

135

Mover
Motores

Figur a 3. Diagrama de Casos de Uso detallado Ejecutar_Control_Reactivo

136

RevistaAvancesenSistemaseInformtica,Vol.6No.3,Diciembrede2009ISSN16577663

Este tipo de diagramas, es producto de un proceso de


especificacinprevio,queporlimitacionesdeespacionose
detallaenesteartculo,enelquesehandetalladoyjustificado
losdiferentesCasosdeUsoqueloconformanyadems,debe
iracompaadodeunadescripcin,Identificacin,Anlisisy
RefinamientodecadaunodedichosCasosdeUso[15].

Elrobotpermaneceparadohastatantosedelaordende

Desde una concepcin general, "Control Reactivo" debe


cumplirunaseriedefuncionesqueseresumeneneldiagrama
de casos de uso, pero que para efectos de claridad, en las
primerasetapasdeespecificacin,esconvenientedefinircon
unpocomasdedetalle.Porejemplo,elcontrolreactivodebe:

IniciarelmododecontrolReactivoenelmomentoderecibir

laordencorrespondiente.
Cargarcomportamiento deseadoporelusuario odefinir
comportamientopordefecto.Eltipodecomportamientoest
definido de acuerdo a las necesidades del usuario o en
funcindelarespuestaenlaevaluacindelainformacin
sensorial.
Adquirirlosdatosdelossensores.
Evaluarlainformacinrecibida.Implicadefinirelalgoritmo
deevaluacinyloscriteriosdedecisindefinidosporel
usuario
Definirloscomportamientosquedebensetenidosencuenta
de acuerdo a la misin y las condiciones de el medio
(Informacinsensada).
Activarelcomportamiento.
Evaluarelcomportamientoactivoydefinirsucontinuidado
cambiodeestado.
Calcularlainformacindesalidadelcomportamiento,como
una accin de velocidad lineal y curvatura (Accin de
Control),enparmetrosnormalizadosydarlasordenesalos
motores.
Ejecutarelalgoritmodegestindefallos,cuandosedetecte
unacondicinnoprevista.

Tambin,seidentifica,enlaespecificacindelsistemareactivo
esperado, una serie de requerimientos de Comportamiento
(Behavioral),queayudanaidentificar,conmayorniveldedetalle,
loselementosquedefinenelsistemadecontroldeseado.As,
porejemplo:

El Software debe poder iniciar en cualquier instante,

independientedelestadodelRobot.
La seal de Activar debe iniciar el proceso de
comportamientoreactivodelroboteiniciartodaslastareas
queserequieran.Pordefectoarrancarenunaconfiguracin
bsica.Entonces,aliniciar:
HabilitacomportamientoCargado.
Calcula permanentemente la velocidad relativa Robot
Obstculo
Operapermanentementeenunmodoproteccin(Prioridad).

Arrancar.
Debepermitircomportamientosadicionales,loqueexige
modularidadyestandarizacindelosobjetos.
Debepermitircambiarloscomportamientosenelinstante
quelorequieraelusuario.
Debe permitir una comunicacin con el usuario, para
informarlodelestadodelsistemacuandolorequiera.
Enelinstantequeelusuariodecideparar,todaslastareas
queseestnejecutandoenelmomentodebenserparadasy
sedebedarordendeparoalosactuadores.
Permitedesactivartodoelsistemadecontrolreactivo.
Debedetectarlasinconsistenciasyfallosdelsistema.

AnlisisdeRequerimientosnoFuncionales: Son aquellas


exigenciasdelsistemaquenotienenefectosfuncionales,pero
queayudanaidentificarnecesidadesorestricciones,parael
ejemplo:

Elsistemadebeserconfiable,verstilytenerlaposibilidad

de interactuar con diferentes tipos de Robot o vehculos


implemetadoenunaplataforma.
Elsistemadecontrolobedeceauncomportamientoreactivo,
por lo cual su respuesta est sujeta a la velocidad de
procesamiento, la simplicidad de los algoritmos y a la
confiabilidadysencillezdelossensores.
Debefuncionarendiferentestiposdeambiente,conuna
granvariedaddesensoresyactuadores.
Debepermitirincorporarotrosmdulosdecomportamiento.
Debepermitirinvolucrar,enloscomportamientos,cualquier
tipo de sistema de control: PID, Fuzzy, Neuronal, etc.
(Comportamientosreflejos).
Velarporlaseguridad
Resolverproblemasdeatascamientoyerroresproducidos
enelsistema(Software/Hardware).
Cadaunodeloscomportamientospuedeserconsiderado
comounaformadeControldelRobot.
Susalidadebeserdeterminstica
Cadaunoescompletamenteindependiente
Loscomportamientosnoposeenmemoria.

B. Refinamiento Caso de Uso Ejecutar Control Reactivo


UnarevisingeneraldeIdentificacinyAnlisisdeCasosde
Uso,implicadetallarmslaespecificacin,paramuchoscasos
de uso, que deben ser iterativamente refinados, ejemplo:
Navegacin,Desbloqueo,Preventivo ,Seguridad,etc.
Lasfiguras4ilustranelresultadodelprocesoderefinamientos
delcasodeusoNavegacin.

137

ArquitecturasoftwarepararobotsmvilesaplicandolametodologaMDASRLondoo.

C. Especificacin Comportamientos
Como se observa en la figura 4, otro elemento bsico de
unaarquitecturadecontrol,paraunsistemarobot,eselCaso
deUso Comportamiento,pueses posiblequeel robottenga
lacapacidaddeactuar,nosoloenoperacinreactivapura,sino
obedeciendo a comportamientos [2]. El control de
comportamientosdelsistema,propuestocomoobjetivobsico

delpaquete,requiereserdetalladoy,aligualqueelanterior,
debeserespecificadoconmayorprecisin.Productodeeste
procedimiento,sepresentaeldiagramadeCasosdeUsoque
implementa este paquete, figura 5. Como se observa, es
dispendioso, pero necesario, realizar todos los procesos de
identificacin,anlisisyrefinamientodecadaunodeloscasos
deusocontempladosenelsistema.

Otros

<<Include>>

<<Extend>>
Activar_
Comportamiento

Braitenberg

<<Extend>>
<<Include>>
Navegacion

<<Extend>>

Vargar
Explorar

<<Extend>>

<<Include>>

<<Extend>>
Seguir
Trayectoria

Rectiva
<<Extend>>

<<Include>>

<<Extend>>
Atracciona
Punto

<<Extend>>
Ejecutar
tarea

<<Extend>>

<<Include>>
IrZona
Libre

<<Include>>

<<Include>>

Eject.Modo
Automo

Robot

Misma
Direcion

Usuario
Mover
Robot

Leer
Sensores

<<Include>>

Mover
Motores

<<Include>>

Figur a 4. Diagrama de Casos de uso detallado "Navegacin"


Fusionar

Combinar

Conmutar
Gestionar
Comportami
etnos
Reactivo
<<Extend>>

<<Include>>

Ejecutar
Comportamietnos

Arrastrar
Objetos
<<Extend>>

<<Extend>>
<<Extend>>
Ejecutar
tarea

<<Extend>>

Seguir
Trayectoria

<<Extend>>

Tareas
Basicas

<<Include>>

Acoplar

Leer
Sensores

<<Extend>>
Seguir
Objeto

<<Extend>>
Eject.Modo
Automo

Buscar
Objetivo

<<Extend>>

Usuario
Otros

Robot

Mover
Robot

<<Include>>
Mover
Motores

Figur a 5. Diagrama de Casos de uso detallado que implementa Ejecutar_Comportamientos

RevistaAvancesenSistemaseInformtica,Vol.6No.3,Diciembrede2009ISSN16577663

138

D. Anlisis - Identificacin de Paquetes de Anlisis -Por casos


de uso
Enestepunto,cadaunodelospaquetedeanlisisdelsistema,
vadelamanoconeltipodeCasodeUsoqueresuelven,as,por
ejemplo,sedefineunpaquetedenominadoSist_Navegacin,
que implementa todos los casos de uso relacionados con la
navegacindelrobotenmodoreactivo.Enlafigura6seilustra
elpaqueteysuscasosdeusoqueimplementa.
E jecutar_c ompo rta
m ie tnos_na ve gac i n

Sistema_Control_Reactivoi

Sist_Navegacion

Sist_Desbloqueo

Sist_Preventivo

Sist_Seguridad

Figur a 7. Arquitectura por paquetes de Sistema de Control Reactivo

Enlafigura7sepresentaelsistemadecontrolreactivoque
cobija las cuatro funciones fundamentales de un sistema de
controlreactivocomoelpropuesto.

S ist _ N a ve g a c io n
E je c _ C o m p_
B ra i te n b er g
E je c _ C om p _V
a rg a r E x p lo ra r

E je c _ C om p _
S e g u ir
T ra y e c to ria

Figur a 6. Diagrama de Casos de uso detallado que implementa


Sist_Navegacin

Deformasimilar,seplanteanlosotrospaquetesdelsistema
decontrolreactivoqueseresumenelnumeralsiguiente.

Arquitecturaporpaquetes: Enelprocesodesubdivisin
delsistemasoftware,elcontrolreactivopuedeserclasificado
deacuerdoalascaractersticasespecficasdelafuncinque
cumple, en laArquitectura propuesta. En nuestro caso, se
subdivide dicho control en paquetes que desempean
funcionesespecficas,enelcontextodelaarquitecturayque,
por sus caractersticas, implementan los casos de uso
relacionadosconsufuncin.
Na vega cion

Algoritm o_
Ir_a_Onjetivo

APartirdelos(Sub)PaquetesdeAnlisis:Cadasubpaquete,
enfuncindesuscaractersticasyparticularidadesdefinidas
enlasetapasanteriores,puedeserimplementadomedianteun
conjuntodeclasesqueseidentificanenestaetapadelproceso
(enmuchasocasiones,estnapoyadosporelesquemageneral
presentadoporelingenieroenrobtica)
Control Reactivo:Elcontrol reactivo,definido comoun
conjuntode paquetesqueapoyan estaestructura decontrol,
puedeserpropuestocomounmodelodeclasesqueimplementan
cadaunodeestospaquete,enlafigura8seilustraalgunosde
estospaquetes,obtenidosmedianteelprocedimientopropuesto
porlametodologa.

G estor _
Desbloqueo

E stados_
Sensores_
Requeridos

Algoritm o_

Seguir
tra yectoria

Algoritm o_
Va ga r/E xplora r

Otros

Algoritmo_
Salir_Zonas
_M uertas

Algoritmo_
Bordea_ Muro

Estados_
Senso res_
Requeridos

Otros

Segurida d

P reventivo

Gesto_
P r eventivo

Algoritm o_
Ir_a_Zona_
Libre

E. Identificacin de Clases
Tomandocomobaselospaquetesysubpaquetes,definidos
enlasltimasiteracionesdelsistemadecontrolanterior,se
proponeunaseriedeclasesqueimplementarncadaunode
ellos.

Desbloqueo

G esto_
Na vega cin

A lgoritm o_
E vadir

Cada uno de los subpaquetes, contiene las clases y


elementos necesarios para implementar las acciones
correspondientesasufuncinespecfica.

Algoritm o_
Alejarse_de_
Obstaculo

Gesto_
Segur ida d

Estados_
Sensores_
Requeridos

Algoritm o_

Bor dea r_
Obsta culo

Otros

Algoritmo_
Girorapido

Algoritmo_
Alejarse_
Rapdo

Estados_
Sensores_
Requeridos

Algoritmo_
Eva dir_Ra pid
o

Figur a 8. Modelo de Clases Subpaquete: Navegacin, Desbloqueo, Preventivo, Seguridad

Otros

139

ArquitecturasoftwarepararobotsmvilesaplicandolametodologaMDASRLondoo.

APartirdelosCasosdeUso: Enestaetapa,tomandocomo
referencia los casos de uso definidos anteriormente, se

identificanclasesysuinterrelacin.Enlafigura9,seilustran
algunosmodelosdeclasespropuestosparalaArquitectura:

Iniciar

Velocidad
Lmite
Velocidad
actual
GeneradorSet
Poin

IUIniciar

Mover
Motores(n)

Mover_Por
_Velocidad

Velocidad
actual

Velocidad
Lmite

IUFijar
velocidad

GeneradorSet
Poin
Usuario

Mover
Motores(n)

IUFijar
velocidad

Usuario

Actualizar
Velocidad

Velocidad
actual

Velocidad
actual

ModoTeleoperacin

Mover
Motores(n)

GeneradorSet
Poin

Actualizar
Velocidad

GeneradorSet
Poin

Motores

IUIniciar

Velocidad
Lmite

Actualizar_
Velocidad

Mover
Motores(n)

Motores

Velocidad
Lmite

Moverseporvelocidad

Seguir_Muro

BaseDatos
Trayectoria

Evaluar
sensores
Comado
SeguirMuro

Ejecutar_
Trayectoria

Velocidad
actual

I_Sensores
M over
Motores(n)

Velocidad
consigna
GeneradorSet
Poin

Velocidad
Lmite

Algoritmo
Seguimiento
muros

Evaluar
Obstaculo

IUFijar
Trayectoria

IU_Sensores(n)
Generador
Trayectoria
GeneradorSet IU.Actuadorte(n)
Poin

Motores
GeneradorSet
Poin
Usuario

Mover
Motores(n)
GeneradorSet
Poin

Seguirmuro
I_Sensores

IUFijar
Trayectoria

Sensores

IU.Actuadorte(n)
Motores

Usuario
Generador
Trayectoria

Velocidad
consigna

Algoritmo
Seguimiento
muros

Evaluar
Obstaculo

Evaluar
sensores

Seguir_Muro

Sensores
IU_Sensores(n)

BaseDatos
Trayectoria

Velocidad
actual

Velocidad
L mite

Ejecutartrayectoria

Figur a 9. Identificacin de clase e interacciones Caso de Uso

F. Interacciones Entre Objetos de la Arquitectura - Diagrama


de Secuencias
ElDiagramadesecuencias,correspondienteacadaunode
loscasosdeuso,seejemplificaenlafigura10,enelcualse
presenta solo el caso de condicin normal y se omite la
condicindebloqueoycolisin.
CasodeUso"SeguimientoMuro":Descripcintextualdel
flujo de sucesos
Elusuario,mediantelainterfaz(Grfica,comandoobotn),

ejecutalaordenseguimientodemuro.

ElgeneradordeValorconsigna(setpoint)evalasensores:si
nosedetectanobstculos,generaunvalordeconsignaigual
paralosdosmotoresyloenvaalainterfazMover_Motores
Sidetectaobstculos,sigueunasecuenciadepasosdefinido
porelflujodeeventospropuestoporlafigura10,queilustra
larelacinentreclasesqueactanesestecasodeuso,y
unapropuestainicialdelflujodeeventos.

140

RevistaAvancesenSistemaseInformtica,Vol.6No.3,Diciembrede2009ISSN16577663

1:OrdenSeguirmuro

:Operador

2:IniciarSeguirmuro

Seguirmuro

13:SetPointMotores

13:SetPointMotores

InterfazMotores(n)

GeneradorSetPoin

Motores

3:Calculardireccin
12:Valores
Limite)

11:LeerValoreslmite

10:Nuevaconsigana
(Direccinyngulos)
Velocidadconsigna

5:LeerSensores
Proximidad

4:Haycambiodeestado?
9:Hay
cambio
deestado

Algoritmo
Seguimiento
muros

Evaluar
sensores

6:ValoresLedos

Interfaz_
Sensores

7:Lectura
Normalizada

Sensores

8:LoopEvaluar
hastaCambio
deestado

Flujodesucesos(Condicinnormal)
Figur a 10. Interrelacin y flujo de eventos. Caso de Uso Seguir_Muro

G. Modelo de Clases
ElModelodeAnlisisdelaArquitecturadecontrolSoftware
paraRobot,sepresentaenlafigura11.

Enestaseccinsepresenta,someramente,losconceptosms
relevantesquehandeconsiderarse,comoilustracinenelmarco
deldesarrollodelaarquitecturapropuesta.

H. Diseo - Control Reactivo


EldiseoestmsprximoalosdominiosdelIngenierode
Softwarey,portanto,esstequien,enltimainstancia,identifica
ydefinecadaunodeloselementosconstitutivosdeestaetapa.

RefinamientodelaSolucin:Tomamoscomoreferenciael
sistemadecontrolreactivo.Enlafigura12seproponenlos
subsistemas que lo conforman, los cuales se subdividen de
acuerdo a las caractersticas de comportamiento que debe
ejecutarelrobot,enfuncindesuresponsabilidad.

Experticia

Mapas

Mapas

Modelo
Sensores

Modelo Parmetros Parmetros


Actuadores
Robot
Tareas

Objetvo

Acople

Gestor_Base_Datos

Arrastre

IU

:Operador

Gestor_
Supersor_
Tares

Seguimiento_
Objeto

Gestor_
Comportamiento

I_Inp I_Out Interprete_


Comandos

Busqueda_
Objetivo

Planificador
Otros

Interfaz_Sensores
Evaluador_Planificad_ Sistema_
Trayectoria Local
Localizacion

Sensores
Algoritmos_
Especiales

Control_
Reactivo

Comandos
Bsicos

Interfaz_
Motores
Motores

Navegacin
Preventivos
Seguridad

Desbloqueo
Evadir_
Obstaculos

Evadir_
Abismo

Fuga
Giro_
Emergencia

Vagar
Seguir_ Evadir_
Muro Ostculo

Paro_
Emergencia

Seguir_
Trayectoria
Salir_Zona_
Muerta

Ir_a_
Objetivo

Ir_Zona_
Libre

Pasar_Zona_
Estrecha

Figur a 11. Ejemplo de Modelo de Clases de unaArquitectura Software de Control para Robots

141

ArquitecturasoftwarepararobotsmvilesaplicandolametodologaMDASRLondoo.

Cada unos de estos subsistemas, a su vez, pueden ser


subdivididos en unidades ms pequeas y manejables para
facilitarlaimplementacinymodularidaddelsoftware.As,por
ejemplo, el subsistema de navegacin reactiva, puede ser
subdivididoen:

Vagar(Navegacinaleatoria)
Seguirunatrayectoriapintadaenelsuelo.
Moversehaciaunobjeto(Atraccinaunpunto).
Irazonaslibresdirigidas.
Moverseenlamismadireccin(permanecerentrayectoria).
Arrastrarobjeto.
Moverseunadireccinrelativa(posicin/Angulo)

Asuvez,elsistemadenavegacinpuedeserconsideradocomo
unsubsistema(apoyadoenelmodelodeanlisis),figura13.

Nota:Larelacinentresubsistemaspuedegenerarinterfaces,
asporejemplo,paraelSubsistemaControl_Reactivopropuesto
anteriormente,sepuederepresentarsusdiferentesinterfaces
comoseilustraenlafigura14.
Control
Reactivo

Seguridad
Navegacin
Paro_Emergencia
Giro_Emr gencia

ComandosBsicos

.
.

ComandosBsicos

.
.
.

ComandosBsicos
Preventivos
Desbloqueo
Zona s_Libres

Contr ol
Reactivo

Seguir _Muro
Evadir

.
.

Navegaci n
Segu rida d

Figur a 14. Interfaces "Relacin entre Subsistemas y clases"

Desbloqueo
P reventivo s

Figur a 12. Subsistemas de Control_Reactivo


Navegacin

Vagar

Seguir_Linea

Zona s_Libres

Atraccion_
a_Punto

Arra stra r_
Objetos

J. Diseo de Clases-Objetos
DiseodeCasosdeUso:Identificacinclasesdediseo
porcasodeuso.
TomandocomobaseelCasodeUso"Seguimientodemuro",
vistoenlaetapadeanlisis,seidentificacadaunadelasclases
participantesenelCasodeUso,ysepresentacomoundiagrama
UMLfigura15.
DiagramadesecuenciaparacadapartedeCasodeUso:
ParaelCasodeUsopropuestoenelnumeralanterior,sepuede
plantareldiagramadesecuencias,ejemplificadoenlafigura16.
Seasume,enesteejemplo,queloscomandosseejecutanva
teclado.
Nota:Podraconsiderarsequeelusuarioseaunnivelsuperior
decontrol,encuyocasoesposiblequeserequieraunainterfaz
quefacilitelacomunicacin.
ClasesdeDiseo

Figur a 13. Subsistemas de Navegacin

I. Identificacin Interfaces de Subsistemas


La interfaz corresponde a una clase, que suministra
todos los elementos necesarios para comunicar la clase con
otras clases u objetos externos por tanto, incluir las
caractersticas,atributosymtodosquepermitanejecutarla
orden.

Unaversinsimplificadadeldiagramadeclasespara
unaarquitecturaderobotseilustraenlafigura17.Cadaunade
lasclasesrepresentadaspuedeconteneroextenderotrasclases.
DiseodeCadaClases
El diseo de cada claseest ligado a las caractersticas y
especificacionesdefinidasanteriormente.Comoilustracin,se
presentanalgunosejemplosrepresentativosdeestecaso.

RevistaAvancesenSistemaseInformtica,Vol.6No.3,Diciembrede2009ISSN16577663

142

SeguirMuro

Seguir_Muro

:Teclado

:Pantalla :Parametros :Seguir_


Muros

:Calculo_ :Procesad_ :Procesad_


SetPoint Sensores Motores

:Gestor_
Alarmas

OrdenSegumiento
LeersensoresProximidad

Teclado

EstadoSensores
Leer_Distancia_Lmite
Pantalla

Evalua(nocritico)
Gestor
Alarmas
Botones
Comandos

Definedireccinyngulo

Procesador_Mo
tores

Valoresconsiganparacadamotor
Parametros
Procesador_Sen
sores
Seguir_Muros

CalculoSet
Poin

Figur a 15. Clases que intervienen en el Caso de Uso Seguir_Muro

Figur a 16. Diagrama de Secuencias, "Seguir_ Muro"

Modelo_Entorno

Supervisor_Gestor_
Comportamientos

Interfaz_Usuario

Planificador_
Global
Pantalla

Botones
Comandos

Teclado

Estado_Actual

Control
Reactivo
Sistema_Sensor

Seguridad

Preventivo

Desbloque

NAleatoria

Navegacion

Atraccin_Punt
o

IrZ_Libre

Sistema
Actuador

Sensor_Infraroj Sensor_Ultraso
o

Seguim_Muro

Figur a 17. Ejemplo de Diagrama de Clases deArquitectura Software para Robots

Sensor_....

ArquitecturasoftwarepararobotsmvilesaplicandolametodologaMDASRLondoo.

Clase: " Seguimiento_Mur os"


Esbozo de la clase: Seguimiento_Muros contiene los
algoritmos necesarios para bordear los obstculos que son
detectadosenelrecorridoderobot,paraelloutilizacomodatos
deentradalosvalorescaptadosporlossensoresdeultrasonidos
yladistanciaalaqueserealizaelseguimiento.Apartirdeesta

143

informacin se genera como respuesta un vector (d, ) que


representaelincrementodedistanciaynguloquedeberecorrer
elrobot,respectivamente.Cuandonosedetectaobstculo,la
claseseinhabilitaautomticamente.
Esquemageneral: Figura18

Seguimiento_Muros
V_Sensores:Num=0
V_Velocidad:N um=0
Angulodegiro:Num=0

Sensores

+Iniciar_S_M()
+Parar_S_M()
Actuadores

S_M_Izquierda

S_MDerecha

S_M_Aleatorio

S_M.

Figur a 18. Representacin grfica de la clase Seguir_Muro

Descripcin de los mtodos: En este aparte se define e


mtodoutilizadoparaelseguimientodecontornoquepuede
ser presentado como una formula o como un algoritmo,
dependiendodelalgoritmoescogido.

Requisitosespeciales:Paraelseguimientodecontorno,la
respuesta del algoritmo debe se menor que un tiempo
predefinidoporelusuario,opuedeserdefinidadependiendo
delavelocidadactualdelrobot.
Los valores de ngulo y distancia pueden ser igualmente
limitadosaunvalormnimoparaevitardaosenlosdispositivos
deactuacin.

I V. C O NC L USI O NE S

Cubrir la brecha de comunicacin entre disciplinas muy


especializadas, fueel objetivode lapropuesta metodolgica
ejemplificada en este artculo, cuyo objetivo es,
fundamentalmente,ilustrarlosprocedimientosmasrelevantes
alafrontareldesarrollodeunaarquitecturadecontrolreactiva,
concebidaporelespecialistaenRobticaypresentadadetal
formaqueseafcilmenteasimiladaporelIngenierodeSoftware,
quien en ltima instancia es el que desarrolla el Software
requerido.
Enelartculosehaceunademostracinunpocomasfocalizada
eneltemadelaespecificacinyseilustra,demanerageneral,
los pasos relacionados con el Anlisis y diseo de la
arquitecturapropuesta.

Sedemuestra,queesposible,siguiendounprocedimiento
sistemtico,comoloproponeMDARS,facilitarlaconcepcin
alIngenieroenRobticaysucomunicacinconelIngenierode
Sistemas.
Como se observa, se hace un nfasis muy marcado el los
CasodeUsoysurepresentacinmedianteDiagramasdeCasos
de Uso de la arquitectura propuesta, facilitando una
aproximacinmuyrpidaalasetapasdeAnlisisyDiseo.
CubrirconmsdetallelasetapasdeDiseo,Implementacin,
propuestas en la metodologa (MDASR), al igual que una
descripcinmsdetalladadecadaunodeloselementossoftware,
noesobjetodeesteartculopero,conlesposibleidentificary
evaluarlosalcancesyventajasdelametodologa,conelejemplo
propuesto.

REFERENCIAS

[1] Arkin, R. C. (www), 2009. http://www.cc.gatech.edu/ai/ robotlab/


publications.html. [Con acceso en Feb. 2009].
[2]Arkin, R. C. 1999. BehaviorBased Robotics. 2 ed. The MIT Press,
Cambridge, Massachusetts, London, England.
[3] Booch, G., Jacobson, I., Runbaugh, J., 1999. El Lenguaje Unificado de
Modelado.Addison Wesley. Mxico.
[4] Booch, G., Rumbaugh, J. Jacobson, I.,2005. The Unified Modeling
Language User Guide" 2a Ed.Addison Wesley Professional.
[5] Braitenverg, V., 1984. Vehicles: Experiments in Synthetic Psycology".
Cambridge. MIT Press.
[6] Brengge, B. Dutoit,A. H., 2002. Ingeniera de Software Orientada a
Objetos. Pearson Educacin, Mxico.
[7] Brooks, (www). http://www.ai.mit.edu/people/ brooks/
publications.shtml. [Con acceso en Feb. 2009].

144

RevistaAvancesenSistemaseInformtica,Vol.6No.3,Diciembrede2009ISSN16577663

[8] Gachet, D., 1993. Control Reactivo de Robots Mviles. Tesis Doctoral.
Universidad Politcnica de Madrid.
[9] Jacobson, I. Booch, G. Rumbaugh, J., 2000. El Proceso Unificado de
Desarrollo de Software.Adison Westley, MadridEspaa.
[10] KTeam Corporation, 2009. Pagina disponible en internet en:
<http://www.kteam.com>. [Con acceso en Feb. 2009].
[11] Lampe, A., Chatila, R., 2006. Performance Measure For The
Evaluation of Mobile RobotAutonomy. Proceedings of the 2006
IEEE International Conference on Robotics andAutomation Orlando,
Florida.
[12] Londoo O., N., Tornero, J., 1998. Anlisis de la Metodologa
HOOD para la ImplementacindeArquitecturasAplicadas a Robots.
VIII Congreso Latinoamericano de Control Automtico, Via del
Mar, Chile,
[13] Londoo N., 2009. Metodologas de Desarrollo de Software, un
Enfoque a Robots Mviles.
Revista Politcnica. Politcnico Colombiano JIC.
[14] Londoo N., 2009.Aquitecturas Software de Robots, Metodologa
de Desarrollo. Octava Conferencia Iberoamericana en Sistemas,
Ciberntica e Informtica. Orlando, Florida.
[15] Londoo N., 2009. Una Propuesta Metodolgica para el Desarrollo
deArquitecturas Software Para Robots (MDASR). Tesis Doctoral,
Universidad delValle, Escuela de Ingeniera Elctrica y Electrnica.
[16] Mataric, M. J.,1990. BehaviorBased Control: Main Properties and
Implications". http://www robotics.usc.edu/~maja/publications.html.
[Con acceso en Feb. 2009].
[17] Mukerjee,A., Mali,A. D., 1999. Reactive Robots andAmnesics:A
Comparative Study in Memoryless Behavior. IEEE Transactions on
Tystems, Man, and Cyberneticspart C:Applications and Reviews,
Vol. 29, No. 2.
[18] Muoz, N. D., 2007. Estudio e Implementacin de unaArquitectura
de Control para el Robot Mvil GIRAA_02. Tesis de Maestra.
Universidad deAntioquia, Facultad de Ingeniera.
[19] OMG, 2003. Unified Modeling Language Specification. Retrieved
March 18, 2003. Disponible en internet en: <http://www.omg.org/
technology/documents /formal/uml.htm
[20] Rumbaugh, J., Jacobson, I. Booch, G., 2000. El lenguaje Unificado
de Modelado, Manual de Referencia. Racional Software Corporation.
[21] Ram,A.,Arkin, R. C., Moorman, K., Clark, R., 1996. Case Base
Reactive Navigation:A Method for on Line Selection andAdaptation
of Reactive Robotic Control Parameters. IEEE, Transaction on
systems, Man, and Cybernetics, Vol. 27, No. 3.

Você também pode gostar