Вы находитесь на странице: 1из 15

Revista Energa y Computacin

Vol. 18, Diciembre de 2010


RACK: Plataforma de desarrollo rpido de aplicaciones
en tiempo real

Jorge Nieto
!
"e#astian "molor$

%ernardo &agner


(1) Grupo de Investigacin en Sistemas en Tiempo Real RTS
Leibniz Universitt annover! "ppelstra#e $% "lemania
*nieto&rts'uni()annover'de
Recibido 17 de Octubre de 2010. Aceptado 01 de Mayo de 2011
Received* +ctober 1,! -.1. "ccepted* /a0 .1! -.11
RE"'(EN
Con lo contante incremento en la comple!idad de lo itema automati"aci#n y u
acelerado ciclo de dearrollo e incrementa tambi$n la importancia de %acilitar y
optimi"ar el o%t&are repecti'o. (n ete art)culo e preenta al 1rame2or3 RAC*
+Robotics "pplication 4onstruction 5it,, un marco de contrucci#n dearrollado para
aplicacione de rob#tica en tiempo real -ue puede er aplicado en 'aria .rea del control
autom.tico. (l itema oporta el dearrollo de componente tanto de tiempo real etricto
como de tiempo no real y de%ine todo lo elemento de pro/ramaci#n neceario +dri'er,
m#dulo para reali"ar %uncione de na'e/aci#n y 0erramienta para pro/ramar inter%ace
/r.%ica de uuario, para implementar itema comple!o. Adem., el RAC* pro'ee un
er'icio de comunicaci#n en tiempo real entre componente. (l preente art)culo e1plica
el die2o, a) como la implementaci#n de RAC* y decribe un robot aut#nomo de
e!emplo -ue ua ete itema.
Pala#ras clave: Robot aut#nomo de er'icio, ar-uitectura de tiempo real, itema
interconectado multi3robot, 4enomai.
RACK: )rame*or+ for construction of real,time
applications
A%"-RAC-
5it0 t0e contant increain/ in t0e comple1ity o% automation ytem and t0eir
accelerated de'elopment cycle, t0e need %or optimi"in/ and ma6in/ t0e repecti'e
o%t&are more acceible increae. 70i article preent t0e Robotic Application
Contruction *it +RAC*,. 70e %rame&or6 upport t0e de'elopment o% real3time and
non3real3time component and de%ine all neceary pro/rammin/ element to implement
comple1 ytem. 8eide, RAC* pro'ide a real3time, inter3component mea/in/
er'ice. 70e preent article decribe t0e dei/n and implementation o% RAC* and
decribe an e1ample o% an autonomou mobile robot baed on t0i %rame&or6.
Key*ords: Autonomou er'ice robot, real3time arc0itecture, interconnected muti3robot
ytem, 4enomai.
1
Revista Energa y Computacin
Vol. 18, Diciembre de 2010
. /N-R01'CC/2N
9na plata%orma rob#tica m#'il e un itema
comple!o compueto eencialmente por di%erente
enore, un con!unto de actuadore y un itema de
control -ue uper'ia la entrada y /enera accione
de control para /uiar el mo'imiento del robot de
acuerdo a una tarea predeterminada. :o robot
m#'ile aut#nomo encuentran aplicaci#n en
di'ero ecenario, por e!emplo como /u)a de
'iita a mueo ;1<, ayudante en la reali"aci#n de
tarea dom$tica, o incluo como medio de
optimi"aci#n de proceo lo/)tico indutriale,
como lo e el cao del montacar/a aut#nomo
dearrollado como producto de la cooperaci#n entre
el /rupo de in'eti/aci#n en itema de tiempo real
+R7=, de la 9ni'eridad de >an#'er y la emprea
=till ?mb> de Alemania, y -ue e encuentra
operando en el .rea de producci#n ;17<.
@ara lo/rar el control de tale robot e re-uieren
itema de c#mputo -ue realicen %uncione como
%ui#n enorial, percepci#n y na'e/aci#n. Adem.
e re-uiere un proceamiento determin)tico
implementado en controladore ditribuido, lo -ue
implica la neceidad de comunicaci#n en tiempo
real.
(l /rupo de in'eti/aci#n R7= dearroll# el *it de
Contrucci#n de Aplicacione para Rob#tica RAC*
+po u i/la en in/l$ Robotics "pplication
4onstruction 5it,, -ue e un 1rame2or3 compacto
die2ado para cumplir dic0o re-uerimiento y -ue
tiene el %in de %acilitar la implementaci#n de
itema de o%t&are para robot aut#nomo y u
in'eti/aci#n. Con la ayuda de RAC*, e pueden
implementar itema de control tanto en
plata%orma centrali"ada +un olo itema de
c#mputo, como en ditribuida. RAC* pro'ee la
%uncione elementale necearia para monitorear y
controlar robot aut#nomo en tiempo real.
Actualmente e1iten 'aria implementacione
imilare die2ada para cierto tipo de robot en
particular. (l itema operati'o de c#di/o abierto
para aplicacione rob#tica, OROCO= +por u
i/la en in/l$, ;8<, por e!emplo, %ue dearrollado
para ati%acer lo re-uerimiento de una amplia
/ama de o%t&are de rob#tica y control. Dic0o
1rame2or3 oporta %uncionalidade y er'icio
relati'o a la in/enier)a de control. =in embar/o,
ete carece de la inter%ace y lo componente
adecuado para permitir u uo en robot m#'ile.
:a plata%orma R73COR8A ;A< e una e1teni#n de
tiempo real para el middle2are COR8A ;B<C no
obtante, eta plata%orma no etaba diponible para
4enomai ;1D< +la e1teni#n de tiempo real para
:inu1,, -ue e el itema uado en lo robot del
R7= . Adem. de eto, lo autore conideran -ue
R73COR8A e demaiado e1teno para lo
ecenario de aplicaci#n etudiado en el intituto y,
por lo tanto, di%)cil de aprender para lo
principiante.
(1ite adem. un buen nEmero de proyecto de
o%t&are para rob#tica diponible, como por
e!emplo el F6ave7s Robotic +perating S0stemG
;10<, el proyecto F8la0er9StageG ;11<, o el F/obile
and "utonomous Robotics Integration :nvironment
+MARH(, ;12<. Io obtante, nin/uno de ello
cumpl)a con lo re-uerimiento del proceamiento
ditribuido en tiempo real etricto.
(n la i/uiente ecci#n e decribe el die2o del
1rame2or3 /en$rico RAC*. :a ecci#n HHH da una
'ii#n /eneral de la abtraccione diponible de
)ard2are y de la etructura de dato epec)%ica
para robot m#'ile, a) como de u inter%ace.
Apecto re%erente a la implementaci#n de
componente a) como lo re-uerimiento de
RAC* y la implementaci#n interna e preentan en
la ecci#n HV. 9n itema rob#tico de e!emplo
baado en RAC* e decribe en la ecci#n V. (l
preente art)culo concluye con un reumen y una
perpecti'a de la %utura me!ora al itema
preentado.
3 . 1E"CR/PC/2N 1E4 )RA(E&0RK
(n eta ecci#n e decribe la ar-uitectura del
itema RAC*. Dic0a ar-uitectura et. contruida
de %orma modular con un itema de comunicaci#n
entre componente baado en mena!e. Cada
componente repreenta una unidad de
proceamiento de dato -ue reali"a una tarea
epec)%ica, como el mane!o de un dipoiti'o
2
Revista Energa y Computacin
Vol. 18, Diciembre de 2010
+driver,, el re/itro de dato, control autom.tico y
depli/ue de la in%ormaci#n +inter%a" /r.%ica,, entre
otro. @or lo tanto, al/uno de lo componente de
RAC* on coniderado de alto ni'el y otro como
de ba!o ni'el, etableci$ndoe 'aria capa, como e
e1plica en la i/uiente ecci#n. :a comunicaci#n e
reali"a a tra'$ de un er'icio de mena!er)a con
capacidade de tiempo real, el cual %ue die2ado en
con!unto con la plata%orma.
Cada itema de c#mputo baado en RAC* puede
%uncionar ya ea de manera aut#noma como un
itema rob#tico, o como unidad de proceamiento
de dato +ubitema, para un itema rob#tico en
un ni'el uperior. @or e!emplo e puede tener un
computador embebido implementando una
ar-uitectura RAC*, el cual tiene la Enica tarea de
ad-uirir y procear dato de un enor l.er DD.
(te @C puede a u 'e" con%ormar un itema de
ad-uiici#n para un itema rob#tico con m.
proceadore ditribuido, el cual toma y recibe
in%ormaci#n y la emplea para reali"ar tarea de
na'e/aci#n. (l itema RAC* adem. pro'ee de
una inter%a" de uuario, i/ualmente modular, -ue
permite la bE-ueda de errore y el monitoreo del
itema.
3. . Ar5uitectura #asada en componentes
9n itema rob#tico con'encional et. con%ormado
por 'ario ubitema, ya ea de )ard2are o de
so1t2are, como por e!emplo er'omotore,
enore, proceamiento de lo dato de entrada,
controladore, comunicaci#n con el uuario, entre
otro. (l itema RAC* permite una abtracci#n de
cada uno de eto elemento, -ue en el conte1to del
1rame2or3 e denominan componentes.
Cada componente puede er una unidad aut#noma
operando en u propia unidad de c#mputo 0u$ped
+a partir de a0ora e uar. el t$rmino )ost, y a u
'e" di%erente )osts pueden etar inte/rado en un
robot m#'il. Hncluo 'aria plata%orma rob#tica
puede con%ormar un /rupo de robot cooperati'o.
:a ar-uitectura RAC* etablece una encapulaci#n
para lo componente, donde cada uno de ello no
puede acceder directamente a la memoria de lo
otro.
Ji/. 1. Dia/rama e-uem.tico de la ar-uitectura RAC* para un
itema de do )osts.
9n itema rob#tico adem. e puede coniderar
dede el punto de 'ita !er.r-uico con%ormado
principalmente por un ni'el alto, donde ocurre la
uper'ii#n, uno ni'el medio, donde ocurre el
control, uno medio3ba!o, correpondiente a lo
er'icio del itema operati'o y un ba!o ni'el,
donde e encuentran lo drivers cercano al
)ard2are.
RAC* e trata de un middle2are, eto e, una capa
de mediaci#n entre lo ni'ele medio3ba!o y
uperior mencionado arriba, como e muetra en la
Ji/. 1. (l %rame&or6 o%rece no olo er'icio de
tiempo real, como el mane!o de tarea y lo
mecanimo de comunicaci#n y incroni"aci#n
+mute1e, em.%oro,, ino tambi$n inter%ace bien
de%inida para mane!o de dipoiti'o, como por
e!emplo bu CAI y puerto erie, entre otro. :a
Ji/. 2 muetra un e!emplo impli%icado de un robot
ditribuido baado en RAC*. :a comunicaci#n
entre componente ocurre e1clui'amente a tra'$
de un er'icio de mena!er)a an.lo/o al itema de
reparto de correo. (te er'icio, denominado 7iM=
e e1plica m. adelante.
3.3 . Comunicacin entre componentes
RAC* o%rece un mecanimo conitente para
implementar la comunicaci#n entre componente
implemente uando bu"one de correo +mailbo;es,.
Cada componente ua un bu"#n primario para
recibir comando encapulado en %orma de
D
Revista Energa y Computacin
Vol. 18, Diciembre de 2010
mena!e, lo cuale 0an ido en'iado por otro
m#dulo +'er numeral 1,. Cada 'e" -ue e re-uiera,
e pueden crear nue'o bu"one para permitir la
recepci#n de dato de lo otro componente o para
ati%acer lo re-uerimiento indi'iduale de cada
componente.
Ji/. 2. Dia/rama e-uem.tico impli%icado de un itema
ditribuido uando RAC*.
(l 1rame2or3 de%ine adem. etructura de dato
correpondiente a lo mena!e. (to tipo on
Etile en el en')o de comando y de repueta, de
acuerdo al e-uema de llamado a procedimiento
remoto +R@C, ;21<, a) como de mena!e en una
ola direcci#n.
(l intercambio de dato e puede reali"ar a tra'$
de un modelo de conulta +polling,, en donde el
componente -ue re-uiere dato en')a una olicitud a
otro y epera a -ue ete le en')e un mena!e de
dato como repueta. @or otro lado, e poible
tambi$n el intercambio de dato a tra'$ de un
modelo publicarKsuscribir +publis)9subscribe,
;22<, en donde uno o m. componente
+suscriptores, pueden leer de un %lu!o de dato
+stream, /enerado por otro componente
+publicador,. @or con'enci#n un componente no
puede reali"ar el en')o de in%ormaci#n in -ue un
modulo receptor e lo 0aya pedido e1pl)citamente.
Ji/. D. Cabecera de un mena!e en RAC*.
Debido al car.cter de itema ditribuido, lo
componente pueden etar repartido en di%erente
ar-uitectura de computadore con di%erente
%ormato de orden de b0te, por lo cual, lo mena!e
recibido por un componente deben er con'ertido
al %ormato de orden byte local al momento de u
recepci#n, en cao de -ue el emior del mena!e ue
un %ormato di%erente.
Ji/. L. (tructura de una direcci#n en RAC*.
6 (ensa7es: A cada mena!e e le da un %ormato
conitente, el cual conta de un encabe"ado de 1A
byte y una ecuencia de dato de tama2o 'ariable.
(l encabe"ado contiene in%ormaci#n de enrutado
+direcci#n de ori/en y detino,, la lon/itud del
mena!e, u tipo, la prioridad en el canal de
tranmii#n y el mailbo; detino, un nEmero de
ecuencia y bit de marca +1lag bits,, lo cuale
codi%ican el orden de b0te del mena!e +Ji/. D,. :a
direcci#n de un mailbo; e creada de acuerdo al
nombre de la clae correpondiente, la intancia en
e!ecuci#n y el itema donde e et. e!ecutando.
(to e decribe en el i/uiente )tem. RAC* ua
internamente un cierto ran/o de direccione para
implementar er'icio de nEcleo +'er 2.A31,. @or lo
tanto, e pro'ee un o11set epecial para tipo
de%inido por el uuario.
(n cuanto al cuerpo del mena!e, ete puede
contener in%ormaci#n o un comandoC lo comando
de alida, e decir a-uello -ue on en'iado a otro
componente on codi%icado como tipo poiti'o
mientra -ue lo mena!e de entrada o repueta e
codi%ican como ne/ati'o.
36 Nomenclatura de las direcciones: @ara poder
acceder de %orma /lobal a lo componente, e
re-uiere de identi%icadore. (to identi%icadore
correponden a la direccione principale de
mailbo; de lo componente.
9na direcci#n de mailbo; o un identi%icador de
componente conite de cuatro campo de
identi%icaci#n o HD, a aberM el HD de itema, el HD
de intancia, el HD de clae y el HD local. Cada uno
de eto tiene un b0te de lon/itud. =in embar/o, al
L
Revista Energa y Computacin
Vol. 18, Diciembre de 2010
die2ar un nue'o itema rob#tico baado en
RAC*, e puede %i!ar indi'idualmente el tama2o de
lo campo. :a Ji/. L muetra la e/mentaci#n de
la direccione de bu"#n uada por lo itema
rob#tico en el R7=.
@or medio del HD de itema, e pueden ditin/uir
ine-u)'ocamente di%erente itema rob#tico o de
c#mputo. (l HD de clae de%ine la clae componente
/en$rica, como e e1plica poteriormente en la
ecci#n D.1. @ara uar 'ario componente de la
mima clae en un itema rob#tico, a cada
componente e le ai/na un HD para repreentar la
intancia correpondiente. (l HD local e ua para
direccionar lo ditinto mailbo;es en un
componente, empe"ando por 0 para el bu"#n de
recepci#n de comando.
86 Enrutado: :a ditribuci#n de mena!e 0acia lo
itema remoto e reali"a a tra'$ de un enrutado
!er.r-uico. Cada plata%orma de computador baada
en RAC* et. pro'ita de un enrutador de mena!e
+router, -ue re/itra lo bu"one de todo u
componente locale. @ara en'iar mena!e a otra
plata%orma o itema, e debe conocer la direcci#n
del enrutador correpondiente en el i/uiente ni'el.
Cada enrutador in%orma al enrutador de m. alto
ni'el, acerca de la preencia de todo lo bu"one
de componente reconocido. @or lo tanto el
enrutador de m. alto ni'el de un itema rob#tico
e encar/a de re/itrar a todo lo bu"one
diponible de otro itema rob#tico conectado
a ete. =e puede reali"ar un enrutado itema3a3
itema uando e1pl)citamente la HD de itema. (n
la Ji/. N, e muetra un e!emplo de enrutado
!er.r-uico.
(n el 1rame2or3 RAC* e1iten lo i/uiente tipo
de enrutadoreM
:nrutador <=sico O 9n ubitema -ue en')a
mena!e con una direcci#n de detino deconocida
a un enrutador de alto ni'el dado.
:nrutador de Sistema O (nrutador de m. alto ni'el
de un itema rob#tico indi'idual. 7oda la
direccione de bu"#n correpondiente al itema
local on re/itrada por ete enrutador. 9n
enrutador de itema puede recibir y reen'iar
mena!e de lo enrutadore de un ubitema
relacionado a) como de otro itema e1terno.
:nrutador de "lto >ivel O (te enrutador re/itra
lo mailbo;es de todo lo itema rob#tico
uado. =i el enrutador de alto ni'el no conoce la
direcci#n de detino, el mena!e e decartado. (l
router de m. alto ni'el del itema completo e
denomina :nrutador Superior.
Ji/. N. Jlu!o de dato en un enrutado !erar-uico.
3.8 . (odelo de e7ecucin
>ata el momento e 0an coniderado lo
componente de %orma abtracta. (n eta ecci#n e
entra en detalle en cuanto a la e!ecuci#n del
so1t2are del itema. Dede el punto de 'ita del
mane!o de mena!e, e tienen do tarea
principale, la tarea de comando +commandTas3, y
la tarea de dato +dataTas3,. 9n componente
/en$rico e!ecuta commandTas3, la cual blo-uea
inde%inidamente 0ata -ue recibe un mena!e,
depu$ de lo cual e!ecuta la rutina de mane!o o
comando pro;0 +pro;0 )andlers,. 9na 'e" la rutina
e %inali"ada, la tarea 'uel'e a blo-uear eperando
al i/uiente comando.
Ji/. A. Dia/rama %uncional de un m#dulo en RAC*.
N
Revista Energa y Computacin
Vol. 18, Diciembre de 2010
@or otro lado, lo componente encar/ado de
manipular y /enerar dato, e!ecutan la tarea
adicional dataTas3, -ue le permite olicitar y
recibir dato de otro componente. (to dato on
entonce proceado por el componente y
almacenado en un bu11er epec)%ico.
Dentro de lo componente e pueden implementar
otra tarea con %uncione epec)%ica +por e!emplo
un 2atc)dog,. ( poible adem. e!ecutar tarea
con una prioridad m. alta. A di%erencia del
1rame2or3 de so1t2are -ue %ue uado anteriormente
en el R7= ;2<, la prioridad de la tarea no et.
%i!ada en el c#di/o por medio de la HD de clae. De
eta manera, e pueden implementar %lu!o de dato
+data streams, incluyendo di%erente componente
por medio de una ai/naci#n de la prioridad.
3.9 . /nterfaces de (dulos :en;ricas
9n componente RAC* pro'ee do inter%ace de
aplicaci#n di%erente. 9na de ella +Inter1ace
R"45, e uada directamente por el middle2are
para el arran-ue, inicio y liberado de recuro
+clean up, del componente, mientra -ue la e/unda
+Inter1ace 8ro;0, e re-uiere para dar al
componente la poibilidad de comunicare con
otro por medio de %uncione pro;0.
:a Ji/. A muetra toda la tarea y %uncione de un
m#dulo /en$rico.
6 /nterface RACK: el 1rame2or3 ua la
i/uiente %uncione dentro de un m#dulo /en$ricoM
init() O Durante la car/a de un componente, la
%unci#n main() del componente e!ecuta eta %unci#n
con el %in de reer'ar memoria para toda la
etructura de dato, inciali"ar dipoiti'o y para
reali"ar otra tarea de iniciali"aci#n la cuale no
neceariamente deben ocurrir en el conte1to de
tiempo real.
command() O (ta %unci#n e llamada por una tarea
cada 'e" -ue un nue'o mena!e R@C e recibido.
Adem. la %unci#n e!ecuta rutina de mane!o pro;0
de acuerdo a lo comando del m#dulo.
cleanup() O Durante la %inali"aci#n o decar/a de un
componente en memoria, la %unci#n cleanup() e
llamada por la rutina de mane!o de e2al con el %in
de FborrarG el m#dulo, e decir, %inali"ar tarea
iniciada por ete y reiniciali"ar 'ariable interna.
=olamente la %unci#n main() tiene -ue er
implementada al crear un nue'o componente. 7oda
la otra %uncione /en$rica on parte inte/ral de
RAC*, in embar/o pueden er rede%inida para
reali"ar %uncione epec)%ica.
36 /nterface Pro<y: :a tarea commandTas3 e!ecuta
la i/uiente rutina de mane!o de acuerdo a lo
comando de pro;0 recibidoM
on() O =i un componente e acti'ado por otro, eta
rutina prepara el m#dulo para -ue pueda er
e!ecutado en el conte1to de tiempo real.
o11() O 9n componente puede er deacti'ado o
Fapa/adoG por medio de eta rutina. :a tarea
comandTas3 e!ecuta o11() para de0acer todo lo
pao pre'iamente reali"ado en la %unci#n on().
getStatus() O (ta rutina pro;0 de'uel'e el etado
actual del m#duloM :>"<L:6, i el m#dulo et.
0abilitado, 6IS"<L:6, i et. de0abilitado o
:RR+R, en cao -ue un error 0aya ocurrido y el
m#dulo no et$ operando en modo normal.
(ta rutina /en$rica de pro;0 on tambi$n parte
inte/ral de RAC*. :a %uncione on() y o11() e
pueden obre3ecribir por e!emplo para olicitar
continuamente dato de otro componente. :a
rutina de mane!o pro;0 on llamada por la tarea
commandTas3, por lo tanto eta no de#en
blo-uear de manera inde%inida.
3.= . /nterfaces de (dulos de 1atos
:o m#dulo almacenan dato a) como la
correpondiente marca de tiempo en u bu11er de
dato. (l nEmero de con!unto de dato y por
conecuente el 0itorial de marca de tiempo
depende del tama2o de bu11er empleado. Otro
componente pueden olicitar tanto dato corre3
pondiente a una marca de tiempo dada +polling, a)
como todo un %lu!o continuo de dato. :a marca
A
Revista Energa y Computacin
Vol. 18, Diciembre de 2010
de tiempo e neceitan por e!emplo para %ui#n
enorial, %acilitando el incroni"ado de lo dato.
Al contrario del m#dulo /en$rico, un m#dulo de
dato tiene %uncionale de inter1ace adicionale, la
cuale e decriben en eta ecci#n. :a Ji/. 7
muetra toda la tarea y %uncione de un m#dulo
de dato.
6 /nterface RACK: :a i/uiente %unci#n e debe
implementar dentro de un nue'o m#dulo de dato,
adicional a la inter1ace de m#dulo /en$ricaM
loop() O (n un ciclo peri#dico ne/ociado, la tarea
data tas3 e!ecuta eta %unci#n para obtener lo dato
neceario pro'eniente de drivers u otro
componente. :a tarea data tas3 tiene -ue etar
corriendo para -ue lo dato creado o manipulado
puedan er almacenado en un bu11er de dato
epec)%ico.
Ji/. 7. Dia/rama %uncional de un m#dulo de dato en RAC*.
36 /nterface Pro<y: 9n componente -ue produce o
manipula dato tiene -ue pro'eer rutina de mane!o
tipo pro;0 para implementar el modelo polling a)
como el de publica9suscribe. (ta rutina on parte
de RAC* y no pueden er obrecritaM
get6ata() O @ara %acilitar la implementaci#n de un
modelo polling e pro'ee eta rutina. Otro
componente pueden olicitar dato
correpondiente a una marca de tiempo dada. :a
tarea dataTas3 buca dentro del bu11er de dato la
in%ormaci#n adecuada y la en')a al receptor en
epera +modo )ncrono,.
get4ont6ata() O 9ando get4ont6ata(), lo
componente receptore olicitan un %lu!o continuo
de dato. (ta rutina a/re/a el recipiente a una lita
de FubcriptoreG +listeners,, depu$ de eto e
lle'a a cabo una ne/ociaci#n del tiempo de per)odo
por medio de la recepci#n del per)odo deeado y el
en')o de un 'alor de tiempo u/erido oportado por
ete componente. =i 0ay dato diponible y e
ati%ace la condici#n de tiempo, dataTas3 en')a lo
dato /enerado al recipiente +modo a)ncrono,.
stop4ont6ata() O (ta %unci#n e llamada por el
componente receptor para cerrar un %lu!o de dato,
con lo cual ete receptor e remo'ido de la lita de
ucriptore.
(n la 7abla 1 e litan toda la rutina /en$rica y
tipo pro;0.
7abla 1. Rutina /en$rica de un componente RAC*.
)uncin (dulo
on+, /en$rico
o%%+, /en$rico
/et=tatu+, /en$rico
/etData+, dato
/etContData+, dato
topContData+, dato
3.> . "ervicios Adicionales
6 "ervicio de registro de datos ?data logging6:
9n problema pr.ctico en el dearrollo de itema
ditribuido e el e/uimiento de toda la
in%ormaci#n y mena!e de depurado +debugging,
deple/ado en di%erente pantalla o motrado en
conola remota por di%erente componente. @or
ete moti'o, e re-uiere de un er'icio e/uro de
re/itro en tiempo real para colectar todo lo
mena!e de in%ormaci#n y depurado y motrarlo
en una inter1ace central de uuario. :a cantidad de
in%ormaci#n en'iada por ete er'icio debe er
%i!ada uando ni'ele de in%ormaci#n. :o
componente correpondiente pueden er a)
anali"ado, adem. e pueden detectar errore de
manera m. imple para er corre/ido
item.ticamente. 7oda la in%ormaci#n puede er
7
Revista Energa y Computacin
Vol. 18, Diciembre de 2010
/rabada en un dipoiti'o de almacenamiento para
lue/o er anali"ada.
36 1eteccin de Cam#io de Conte<to: (
importante ae/urae de -ue todo lo componente
et.n iendo e!ecutado en un etado prede%inido.
7area de tiempo cr)tico deben correr
continuamente en el conte1to de tiempo real. 9n
cambio indeeable de conte1to debe er detectado y
noti%icado. RAC* e capa" de detectar eto
cambio de conte1to y %or"ar una bE-ueda in'era
+bac3(tracing, para 0allar y corre/ir tale errore no
ob'io. :a detecci#n tambi$n reulta de ayuda para
'alidar librer)a deconocida relacionada con la
capacidade de tiempo real del itema.
86 %@s5ueda /nversa: Depu$ de la aparici#n de
e'ento ineperado o de errore, e inicia un
er'icio de bac3(tracing para aitir al pro/ramador
en la bE-ueda de la caua del error de manera m.
r.pida. RAC* muetra en la conola la pila de la
Eltima %uncione -ue %ueron llamada a %in de
poder anali"ar errore como %allo de e/mentaci#n
y cambio de conte1to.
L, Interface de Argumentos: RAC* pro'ee una
inter1ace para tran%erir ar/umento epec)%ico y
par.metro a lo componente. @ara ete prop#ito,
e da una etructura de dato para de%inir eto
ar/umento y /uardar u 'alore. Mientra e
inicia un componente, el middle2are anali"a todo
lo ar/umento y par.metro dado y ecribe lo
'alore correpondiente en la etructura de dato.
:o componente pueden acceder a eto 'alore
directamente.
3.A . /nterface grfica de usuario
:a inter1ace /r.%ica de uuario +?9H, oporta el
dearrollo de itema rob#tico pro'eyendo la
i/uiente %uncionalidadeM
An.lii de dia/n#tico de lo componente
Con%i/uraci#n de lo componente
@reentaci#n 'iual de la in%ormaci#n del
itema.
(l otro prop#ito de la ?9H e la operaci#n de un
itema rob#tico aut#nomo comple!o de manera
%.cil para el uuario, por medio de la i/uiente
%uncionalidadeM
Operaci#n de di'ero itema rob#tico.
(ntrada de punto de ruta para na'e/aci#n
Control de un c0ai por medio de un
?o0stic3 'irtual
8 . C0(P0NEN-E" 1E4 "/"-E(A
RACK
9n componente RAC* e la unidad e!ecutable m.
pe-ue2a de un itema rob#tico implementado con
RAC*. Debido a la encapulaci#n, lo
componente pueden er utituido por otro in
neceidad de cambiar el itema completo. Adem.,
e poible implementar lo componente en
di%erente len/ua!e de pro/ramaci#n y correr eto
m#dulo en itema ditribuido.
(n eta ecci#n e decribe la di'ii#n de eto
componente en clae y la implementaci#n de la
comunicaci#n entre ello por medio de pro;0s'
8. . Clases RACK
:a clae de componente pueden repreentar
clae abtracta de )ard2are como enore y
actuadore a) como m#dulo de proceamiento de
dato. Como e!emplo, componente tipo driver para
enore l.er como lo %abricado por =HC* ;18< o
Hbeo ;1B< on ai/nado a la clae Ladar. :a
comunicaci#n entre componente de di%erente
clae ocurre e1clui'amente a tra'$ de la pro;0s
decrita en la i/uiente ecci#n.
(n la 7abla 2 e muetran al/una de la clae
actualmente de%inida.
8.3 . Pro<ys RACK
De%inicione epec)%ica de clae como lo on lo
tipo mena!e, etructura de dato +incluyendo u
8
Revista Energa y Computacin
Vol. 18, Diciembre de 2010
%uncione de an.lii int.ctico o parsing, y
%uncione de pro;0 oportada on de%inida en un
pro;0 epec)%ico a cada componente RAC*
adicional a la pro;0s /en$rica y de dato decrita
en la ecci#n anterior. Debido a la clae
abtracta, olo e re-uiere un pro;0 para acceder a
todo lo componente imilare dentro de una
clae. Al/una clae tienen -ue e1tender la A@H
pro;0 /en$rica, por e!emplo la clae 4)assis'
7abla 2. Rutina /en$rica de un componente RAC*
Clase -ipo
Camera Dri'er
C0ai Dri'er
?@= Dri'er
?yro Dri'er
Poytic6 Dri'er
:adar Dri'er
Odometry Dri'er
=er'oDri'e Dri'er
@at0 Ia'i/ation
@ilot Ia'i/ation
@oition Ia'i/ation
=can2D Ia'i/ation
=canDD @erception
Ob!ectReco/nition @erception
@ara poder en'iar comando al componente 4)assis
y cumplir con tarea epeciale de na'e/aci#n e
debe %i!ar de antemano un piloto por medio de la
?9H. @or lo tanto, e pro'ee la %unci#n
set"ctive8ilot+,, perteneciente al c)assis8ro;0, a)
como la etructura y la %unci#n de an.lii int.ctico
correpondiente. Cuando e uan la %uncione
pro;0, lo dato recibido on con'ertido
autom.ticamente al tipo local.
9 . /(P4E(EN-AC/2N 1E "0)-&ARE
(l R7= traba!a con @C indutriale embebido
denominado 4a?as de 8rocesamiento :scalables o
Scalable 8rocessing <o;es! abre'iado =@8 +Ji/. 8,
;7<. (to et.n e-uipado con proceadore 18A y
tar!eta de e1pani#n @CK10L y adem. incluyen
puerto CAI y tar!eta de e1pani#n para puerto
erie r.pido. :a 'elocidad de lo proceadore de
nEcleo imple y doble 'ar)a de 2AAM>" a 2.2 ?>".
(l itema operati'o y el so1t2are de aplicaci#n
reiden en tar!eta de memoria CJ +e eli/i# ete
tipo de tar!eta por u robute",.
(l Hntituto R7= ua un itema operati'o baado en
:inu1 con la e1teni#n 4enomai. @or medio de
4enomai, todo lo componente RAC* on
capace de e!ecutar en el epacio de uuario y al
mimo tiempo enla"ando librer)a como la libra2
1DBL +@ire2ire, ;1N< o la opencv ;1A<. :o drivers
de ba!o ni'el para el epacio del 6ernel e pueden
acceder por medio del uo de la A@H Real(Time
6river /odel para con%ormar otro drivers' (to e
enla"an por e!emplo con un bu CAI o con puerto
erie. 7iM= ua Rtnet ;D< para en'iar mena!e de
tiempo real a tra'$ de (t0ernet.
RAC* oporta el dearrollo de componente por
medio de una librer)a de clae en CQQ. (l er'icio
7iM=, el cual traba!a en el epacio del 6ernel %ue
implementado en C. =e pro'ee adem. un pa-uete
Pa'a y un 1rame2or3 para dearrollar inter%ace de
uuario +incluyendo m#dulo ?o0stic3,, o decar/ar
componente o reali"ar prototipo de componente
no cr)tico.
Ji/. 8. Do ca!a de proceamiento ecalable +=@8, con
ditinta capacidade peri%$rica, dearrollada en el R7=.
B
Revista Energa y Computacin
Vol. 18, Diciembre de 2010
9. . "ervicio de mensa7era -i("
(l er'icio de mena!er)a 7iM= +por u i/la en
in/l$ Tin0 /essaging S0stem, %ue dearrollado en
el R7= como parte de RAC*. 7iM= conite de un
m#dulo de 6ernel y una librer)a de epacio de
uuario. :a %uncione centrale de 7iM= y de
enrutado obre Rtnet a) como obre 7C@KH@ on
implementada dentro del m#dulo 6ernel. @ara uar
el er'icio de mena!e por medio de componente
en el epacio de uuario e pro'ee una librer)a -ue
de%ine mailbo;es y la %uncione correpondiente.
9n componente puede ele/ir entre tre modo para
recibir mena!eM
8lo-ueando in tiempo muerto o timeout
+%unci#n pee3,
8lo-ueando olo una cantidad de tiempo
+%unci#n pee3Timed,
=in blo-uear +pee3I1,, lo -ue i/ni%ica
retornar inmediatamante en todo lo cao.
:a librer)a 7iM= oporta do opcione para obtener
mena!eM lo mena!e corto on copiado durante
una llamada a receive+, en un bu11er de dato dentro
del receptor. (l .rea de mena!e dentro del mailbo;
e liberada inmediatamente. =i e recibe un mena!e
lar/o, el proceo de copiado puede er muy lar/o y
lo recuro pueden er blo-ueado
inneceariamente. (n ete cao, el .rea de memoria
del mena!e puede er blo-ueada por la %unci#n
pee3+, y a) la tarea receptora puede traba!ar
directamente en u .rea de memoria. Cuando e
termina todo el traba!o, el .rea e deblo-ueada con
la %unci#n pee3Aend+,.
7iM= obtiene todo lo mena!e de RAC* y lo
en')a al mailbo; del componente detino uando ya
ea la pila de 7C@KH@ +tiempo no real, o Rtnet
+tiempo real,. =i el mailbo; et. locali"ado en el
mimo )ost, 7iM= copia el mena!e directamente al
bu11er de dato de un mailbo; libre y depierta a la
tarea -ue etaba a/uardando en el componente
correpondiente. :a Ji/. B muetra el %lu!o de dato.
Ji/.B. Hmplementaci#n de la comunicaci#n entre componente.
@ara enrutar mena!e de %orma determin)tica, debe
e1itir una cone1i#n por cable de (t0ernet. :o
mena!e a la inter1ace de uuario on tranmitido
por la pila normal 7C@KH@ de :inu1. @or lo tanto,
7iM= poee un enrutador interno para reen'iar
todo lo mena!e -ue no et.n diri/ido al itema
local 0acia un enrutador en un ni'el uperior +2.23D,
9.3 . Componentes
:o componente RAC* on aplicacione
independiente -ue pueden er e!ecutada
indi'idualmente. =e implementan uando lo
len/ua!e de pro/ramaci#n CQQ y Pa'a. 7oda la
%uncione de inter1ace decrita en 2.L e
implementan como %uncione 'irtuale en la clae
/odule'
Dentro de la implementaci#n de la %unci#n main()
olo e neceita una obrecar/a de la %uncione
'irtuale para implementar el m#dulo. A
continuaci#n, e muetra el c#di/o %uente de un
modulo impleM
class SimpleModule : Module {
moduleInit() {
Module::Init();
allocate_ressources();
}
moduleCleanup() {
free_ressources();
Module::cleanup();
}
moduleOn()
init_something();
Module::moduleOn();
}
main(){
simple =ne SimpleModule();
simple!"moduleIni();
return #;
}
}
10
Revista Energa y Computacin
Vol. 18, Diciembre de 2010
:a clae 1ata(odule e deri'a de la clae (odule
y e1tiende la clae con la %uncione e1plicada en
la ecci#n 2.N. Dentro de init() e reer'a memoria
para el bu11er de dato y en la %unci#n cleanup() e
libera nue'amente.
@or e!emplo, un modulo =can2D e deri'a de la
clae 6ata/odule' A continuaci#n e muetra el
c#di/o %uente de ete m#duloM
Class Scan$dModule : %ataModule{
&adar'ro() ladar;
*ac+Mail,o( ladarM,(;
ModuleInit(){
close_sensor_dri-er();
delete_ladar();
ladarM,(.destro)();
%ataModule::Cleanup();
}
//mane0a los comandos pro() definidos
moduleCommand(){
if( rec-_command == m)_command) {
handle_command();
}
else {
//atiende los comandos pro()
%ataModule::moduleCommand(rec-_command);
}
}
moduleOn() {
ladar!"On();
ladar!"getCont%ata(ladarM,();
%ataModule::moduleOn();
}
moduleOff() {
%ataModule::moduleOff();
ladar!"stopCont%ata(ladarM,();
ladar!"Off();
}
module&oop() {
,uffer = get_local_,uffer();
ladar%ata = ladarM,(.rec-();
dri-er%ata = get_data_from_sensor();
,uffer = calculate_data(ladar%ata1
dri-er%ata);
put_local_,uffer();
}
};
9.8 . /nterface :rfica de 'suario
:a ?9H et. implementada en Pa'a y e capa" de
controlar todo lo componente de di%erente
itema rob#tico. 7odo lo componente
car/ado on detectado y motrado en la inter1ace
+Ji/. 10,. (to pueden er 0abilitado y
de0abilitado. :a in%ormaci#n de lo componente
e actuali"ada peri#dicamente con una prioridad
ma ba!a -ue la de lo traba!o cr)tico y e
motrada en la ?9H en 'entana eparada. Cada
clae RAC* pro'ee una e1teni#n ?9H para
%acilitar el deplie/ue de u propia in%ormaci#n.
Dentro de la inter1ace, el er'icio de re/itro de
dato muetra toda la in%ormaci#n en la 'entana de
mena!e. (l concepto modular de RAC* e 0ace
e1pl)cito a tra'$ de la ?9H.
Ji/. 10. Hnter%a" /r.%ica de uuario motrando lo m#dulo
=canDD, =can2D y ?DO=, entre otro.
9.9 . "ervicio de /nformacin
@ara colectar y deple/ar toda la in%ormaci#n de lo
componente ditribuido e ua el itema /en$rico
ditribuido de alida +?DO=,. (te en')a todo lo
mena!e en el conte1to de tiempo no real con la
m. ba!a prioridad a la inter1ace central de uuario
uada por el operador del itema. (l er'icio
muetra ecuencialmente lo mena!e de
in%ormaci#n y depurado de todo lo componente
ditribuido en la ?9H y con'ierte toda la
direccione de lo mailbo;es en nombre le/ible
+0100012000 3R :adar;20<,.
:a in%ormaci#n deple/ada e coloreada de acuerdo
al ni'el de in%ormaci#n. De eta manera e pueden
notar mena!e importante al mimo tiempo.
(l ni'el puede er din.micamente %i!ado por la ?9H
para mantener libre el anc0o de banda tranmii#n.
11
Revista Energa y Computacin
Vol. 18, Diciembre de 2010
(1iten cinco ni'ele de deplie/ue de in%ormaci#n
de depurado implementadoM print, 2arning, error,
debug y debugAdetail. 7odo lo mena!e de
in%ormaci#n pueden er /rabado en un medio de
almacenamiento para u poterior an.lii.
= . "/"-E(A R0%2-/C0 1E EJE(P40
(n eta ecci#n e decribe uno de lo itema
rob#tico aut#nomo del R7=, >anna, el cual ua
RAC*. (l 'e0)culo rob#tico para ambiente
e1teriore tiene una lon/itud de 28N cm y un peo
de 800 6/. >anna puede na'e/ar aut#nomamente a
una 'elocidad m.1ima de L06mK0. (l 'e0)culo et.
e-uipado con una erie de componente incluyendo
m#dulo para control del c0ai, enore de ran/o
l.er 2D, ?@=, aceler#metro, un enor l.er DD de
alta reoluci#n, piloto para na'e/aci#n,
plani%icador de camino y locali"aci#n. (l robot e
muetra en la Ji/. 11.
Ji/. 11. Robot >anna.
:o dato del enor l.er 2D on ad-uirido por el
componente =can2D con el %in de /enerar mapa
laer en 2 dimenione +2D laser scan,, mientra
-ue el componente =canDD /enera nube de punto
en tre dimenione +in%ormaci#n tridimenional
obre el entorno,. Cada mapa e un con!unto de
punto correpondiente a la ditancia medida
por el enor. (ta on re-uerida por un m#dulo
-ue ua el m$todo de locali"aci#n /onte 4arlo ;N<
a) como por el m#dulo 8ilot8at) para calcular la
poici#n actual y detectar obt.culo en el ran/o
'iible.
(l m#dulo piloto tambi$n obtiene dato del
componente 8at), el cual crea trayectoria
cur'il)nea +splines, por medio de punto de ruta
dado por el uuario y en')a comando al m#dulo
4)asisanna del robot m#'il. (l componente para
locali"aci#n por el m$todo Monte Carlo re-uiere un
mapa de todo lo obt.culo et.tico en el .rea de
na'e/aci#n para ae/urar un poicionamiento
e1acto.
:a prioridad dada a lo componente en e!ecuci#n
depende de la repueta de tiempo necearia. :a
detecci#n de obt.culo en el ran/o del robot tiene
-ue ocurrir lo ma r.pido poible. De eta manera a
un componente -ue tiene -ue reaccionar muy
r.pidamente e le ai/na una alta prioridad. :o
componente -ue plani%ican nue'o camino 0acia
lo ob!eti'o dado tienen una prioridad ma ba!a.
(n la Ji/. 12 e muetra el %lu!o de dato, a) como
el per)odo uado y la prioridad dada a lo
componente RAC* e!ecut.ndoe en el robot
>anna.
Ji/.12. Jlu!o de dato y priori"aci#n para el robot >anna.
> . C0NC4'"/0NE" B PER"PEC-/CA"
(n ete art)culo e preent# el 1rame2or3 RAC* el
cual %acilita y optimi"a el dearrollo de itema
rob#tico ditribuido. RAC* incluye todo lo
componente abtracto de inter%a" con lo enore
y actuadore rob#tico t)pico, a) como con
componente /en$rico de proceamiento de dato.
9n amplio ran/o de tarea e cubierto por medio del
oporte del dearrollo de componente de tiempo
real y no real. (l itema de mena!er)a 7iM=
mane!a la comunicaci#n entre lo componenteC
7iM= e capa" de ati%acer tanto retriccione
12
Revista Energa y Computacin
Vol. 18, Diciembre de 2010
etricta de tiempo como re-uerimiento de
deempe2o.
Cabe recalcar -ue el 1rame2or3 e puede utili"ar en
otra rama de la in/enier)a, como por e!emplo el
control de proceo, donde e tendr)a en lu/ar de
componente aociado a enore l.er, ?@= u
odometr)a, componente aociado a la lectura de
enore de temperatura o prei#n y, en 'e" de
drivers para mane!ar el c0ai, m#dulo para
controlar '.l'ula o 'entiladore. :a %iloo%)a del
itema e mantendr)a intacta, lo -ue cambia on la
rutina de lo drivers +mane!o, y de lo
controladore.
Dentro del alcance de proyecto de in'eti/aci#n e
dearrollaron 'ario componente rob#tico o e
mi/raron componente del 1rame2or3 anterior. 9n
nEmero i/ni%icati'o de eo m#dulo eta
diponible actualmente como o%t&are de c#di/o
abierto. Al/una me!ora %utura al itema RAC*
incluyenM
Soporte mejorado en tiempo no realM a %in de
%acilitar la inte/raci#n de al/oritmo comple!o no
determin)tico, lo componente podr.n tambi$n
er e!ecutado en tiempo no real. (to incluir. un
oporte por parte de 7iM= para itema :inu1
et.ndar.
Control estricto de accesoM un proyecto actual del
R7= preta atenci#n a lo aunto de e/uridad del
er'icio de mena!er)a 7iM= ;L<. (l ob!eti'o e
retrin/ir el nEmero de componente cr)tico RAC*
lo cuale pueden incluir c#di/o malicioo. (ta
retricci#n e 0ar. controlando lo tipo admiible
de mena!e, u prioridade y el anc0o de banda
uado, de manera imilar a la oluci#n propueta de
protecci#n para el Rtnet ;N<.
Compresin de MensajesM ya -ue al/uno de lo
dato de la in%ormaci#n enorial contienen una
redundancia i/ni%icati'a, e debe incluir una
comprei#n de mena!e imple pero r.pida en el
er'icio 7iM=. (to ayudar. a reducir
adicionalmente lo re-uerimiento de anc0o de
banda, epec)%icamente en el cao de enlace
inal.mbrico.
Herramienta de configuracinM @ara %acilitar la
con%i/uraci#n de itema rob#tico, la cual incluye
la ditribuci#n y parametri"aci#n de lo
componente, a) como la ai/naci#n de recuro de
comunicaci#n e planea una 0erramienta /r.%ica de
oporte baada en el entorno de dearrollo (clipe
;2D<
RAC* e un o%t&are libre, diponible ba!o la
licencia publica /eneral reducida +:?@:,. Ma aEn,
muc0o de eto componente et.n baado en
librer)a e1terna de c#di/o abierto. (l proyecto
pretende %omentar el dearrollo de componente
adicionale de c#di/o abierto y la reutili"aci#n de
olucione libre diponible. Al mimo tiempo,
ete permite contruir proyecto de o%t&are
propietario baado en $l.
@ara decar/a y mayor in%ormaci#n, e puede
'iitar la p./inaM
0ttpMKKde'eloper.berlio.deKpro!ectKrac6
A . RE)ERENC/A" %/%4/0:RD)/CA"
;1< =. 70run, M. 8eet", et al., 8robabilistic
"lgorit)ms and t)e Interactive /useum Tour(Guide
Robot, Hnternational Pournal o% Robotic Reearc0,
Vol 1B+11,MB72BBB, 2000.
;2< O. 5ul%, P. *i"6a, 8. 5a/ner, " 4ompact
So1t2are @rame2or3 1or 6istributed Real(Time
4omputing, in Nt0 Real37ime :inu1 5or60op,
Valencia, =pain, 200D.
;D< P. *i"6a, 8. 5a/ner, S. T0an/, P. 8roenin6,
R7net O A Jle1ible >ard Real37ime Iet&or6in/
Jrame&or6, 10t0 H((( Hnternational Con%erence on
(mer/in/ 7ec0nolo/ie and Jactory Automation,
Catania, Htaly, diponible enM 0ttpMKK&&&.rt.uni3
0anno'er.deKrtnet, 200N.
;L< *i"6a, P. and 8. 5a/ner, 6omain and T0pe
:n1orcement 1or Real(Time +perating S0stems, B
t0
H((( Hnternational Con%erence on (mer/in/
7ec0nolo/ie and Jactory Automation, :ibon,
@ortu/al, 1A31B =eptember 200D.
1D
Revista Energa y Computacin
Vol. 18, Diciembre de 2010
;N< J. Dellaert, D. Jo1, 5. 8ur/ard, and =. 70run,
Monte Carlo :ocali"ation %or Mobile Robot, H(((
Hnternational Con%erence on Robotic and
Automation +HCRABB,, 1BBB.
;A< D.C. =c0midt, J. *u0n, An O'er'ie& o% t0e
Real3time COR8A =peci%ication, H((( computer
pecial iue on Ob!ect3Oriented Real3time
Ditributed Computin/, 2000.
;7< @. >o0mann, 9. ?erec6e, 8. 5a/ner, A
=calable @rocein/ 8o1 %or =ytem (n/ineerin/
7eac0in/ &it0 Robotic, Hnternational Con%erence
on =ytem (n/ineerin/, Co'entry, 9*, 200D.
;8< OROCO=, Open Robot Control =o%t&are,
diponible enM &&&.oroco.or/, conultado en
200A.
;B< Ob!ect Mana/ement ?roup, 70e Common
Ob!ect Re-uet 8ro6erM Arc0itecture and
peci%ication +COR8A 2.L.1,, diponible enM
&&&.om/.or/, conultado en 200A.
;10< D. Autin, Da'eU Robotic Operatin/ =ytem,
diponible enM &&&.dro.or/, conultado en 2010.
;11< 70e @layerK=ta/e @ro!ect, diponible enM
0ttpMKKplayerta/e.ource%or/e.net, conultado 200N.
;12< Mobile and Autonomou Robotic Hnte/ration
(n'ironment, diponible enM
0ttpMKKmarie.ource%or/e.netKinde1.0tml, 200A.
;1D< @. ?erum, 4enomaiM Real3time %rame&or6 %or
:inu1, diponible enM 0ttpMKK&&&.1enomai.or/,
conultado en 200A.
;1L< @. Mante/a""a, (. 8ianc0i, et al., R7AHM Real3
7ime Application Hnter%ace, :inu1 Pournal,
diponible enM &&&.rtai.or/, conultado en
=eptiembre de 2000.
;1N< H((( 1DBL uerpace library, diponible enM
0ttpMKKource%or/e.netKpro!ectKlibra&1DBL, 2010.
;1A< Open =ource Computer Viion :ibrary,
diponible enM
&&&.intel.comKtec0nolo/yKcomputin/Kopenc',
conultado en =eptiembre de 2010.
;17< D. :ec6in/, O. 5ul%, 8. 5a/nerM Localization
in a 2ide range o1 industrial environments using
relative B6 ceiling 1eatures, 1Dt0 H(((
Hnternational Con%erence on (mer/in/
7ec0nolo/ie and Jactory Automation, >ambur/,
2008.
;18< =HC* A?, diponible enM
0ttpMKK&&&.ic6.comK0omeKen.0tml, 200A.
;1B< H8(O Automobile =enor ?mb>, 200A,
0ttpMKK&&&.ibeoa.deK0tmlKprodKprod.0tml.
;20< Roboo%t 3 Ad'anced Robotic =olution,
diponible enM 0ttpMKK&&&.roboo%t.%rKoutdoor3
robot.0tml, conultado en 200D.
;21< A. 8irrell, 8.P. Ielon, Implementing remote
procedure calls, ACM 7ranaction on Computer
=ytem, Vol 2, pp. DB3NB, 1B8L.
;22< @.7. (u/ter, @.A. Jelber, R. ?uerraoui, A3M.
*ermarrec, T)e man0 1aces o1 publis) subscribe!
ACM Comput. =ur'., DN+2,M11L31D1, 200D.
;2D< (clipe De'elopment 7ool, diponible enM
0ttpMKK&&&.eclipe.or/K, 2010.
1L
Copyright of Energa y Computacin is the property of Universidad del Valle and its content may not be copied
or emailed to multiple sites or posted to a listserv without the copyright holder's express written permission.
However, users may print, download, or email articles for individual use.