0% encontró este documento útil (0 votos)
23 vistas22 páginas

Diseño de UV-BOT: Robot Móvil Educativo

Cargado por

kunsasori3
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
23 vistas22 páginas

Diseño de UV-BOT: Robot Móvil Educativo

Cargado por

kunsasori3
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Ingeniería y Competitividad, Volumen 10, No. 2, p.

53 - 74 (2008)

INGENIERÍA ELECTRÓNICA

Diseño y prueba de un robot móvil con tres niveles


de complejidad para la experimentación en robótica
Felipe Gómez*, Francisco Muñoz*, Beatriz E. Florián**,
Carlos A. Giraldo**, Eval B. Bacca-Cortes*§

* Escuela de Ingeniería Eléctrica y Electrónica, Universidad del Valle, Cali, Colombia


** Escuela de Ingeniería de Sistemas, Universidad del Valle, Cali, Colombia
§ e-mail: evbacca@[Link]

(Recibido: Mayo 28 de 2008 - Aceptado: Noviembre 12 de 2008)


Resumen

Un robot móvil (llamado UV-BOT), fue diseñado en la Universidad del Valle para la
experimentación en robótica y puede ser usado por personas con o sin conocimiento en robótica.
UV-BOT es un robot diferencial y para uso en interiores; cuenta con sensores de proximidad,
detección de luz, localización y comunicaciones, y su velocidad es controlada mediante dos
controladores PI, uno en cada rueda. El firmware del robot fue diseñado usando un micro-núcleo de
tiempo real conocido como FreeRTOS, que soporta tres niveles de complejidad, los cuales poseen un
conjunto de funcionalidades desde el punto de vista de percepción, movilidad, comunicación,
programación y disponibilidad de demos. Estas funcionalidades son empleadas por la interfaz de
usuario para programar el robot gráficamente (nivel básico), usando XML (nivel intermedio) o C
(nivel avanzado). En su nivel avanzado, el robot soporta la programación orientada a
comportamientos. Estos comportamientos fueron utilizados para realizar las pruebas de desempeño
del robot móvil. Como resultado de estas pruebas, se encontró que el sistema de localización de UV-
BOT muestra una incertidumbre promedio de 17 cm. Los comportamientos de retorno (por posición
y luz) y evasión de obstáculos muestran errores promedio de 15 y 12 cm, respectivamente. De este
modo, con UV-BOT se pueden implementar exitosamente tareas básicas en robótica cooperativa.

Palabras clave: Robots móviles, Programación de comportamientos, Robótica cooperativa,


Educación en ingeniería.
ELECTRONICS ENGINEERING

Design and testing of a mobile robot with three levels


of complexity for robotics experimentation
Abstract
A mobile robot (called UV-BOT) was designed at Universidad del Valle for robotics experimentation
and can be employed for users with or without any previous knowledge on robotics. UV-BOT is a
differential and for indoors-use-only robot; it has sensors for proximity, light detection, localization,
and communications, and its speed is controlled by means of two PI controllers, one for each wheel.
The robot's firmware was designed by using a real time micro-kernel, known as FreeRTOS, which
supports three levels of complexity that have a set of functionalities from the standpoint of
perception, mobility, communication, programming, and demos availability. These functionalities
are employed by the user interface to program the robot graphically (basic level), using XML
(intermediate level) or C (advanced level). At its advanced level, UV-BOT supports behavior-
oriented programming. Behaviors were used to carry out the performance tests for the mobile robot.
As an outcome of these tests, it was found that the localization system of UV-BOT exhibits an
average error of 17 cm. Homing (by position and light) and obstacle- avoidance behaviors exhibit
average errors of 15 and 17 cm, respectively. In this way, tasks in cooperative robotics can be
implemented successfully.

Keywords: Mobile robots, Behavior programming, Cooperative robotics, Engineering education.

53
Ingeniería y Competitividad, Volumen 10, No. 2, p. 53 - 74 (2008)

1. Introducción que una vez el módulo LEGO Mindstorms 2.0


(LEGO, 2008) ha cumplido las expectativas como
La robótica móvil es un área de investigación y juguete, los niños y jóvenes desean una
desarrollo de alta exigencia. Hace unos años, era plataforma con más sensores y posibilidades de
un tema casi exclusivo de las universidades y programación.
grandes empresas. A lo largo de los últimos años,
el tema ha estado migrando desde estas entidades Comercialmente, se encuentra una amplia gama
al público en general, lo cual puede verse en el de robots móviles orientados al entretenimiento,
aumento de sitios comerciales donde se venden desarrollo de pequeñas aplicaciones e
módulos de robots para armar, de diferentes investigación. La Tabla 1 muestra un consolidado
grados de complejidad. Paralelo a esto, el empleo de las características de varias plataformas usadas
de la robótica móvil como herramienta en la comúnmente para educación e investigación.
educación de niños y jóvenes, tanto a nivel Estas plataformas fueron seleccionadas teniendo
nacional como internacional, se ha incrementado en cuenta como criterios la definición de las
notoriamente. Es el caso de programas de herramientas de programación y el soporte de
educación infantil, se pueden mencionar los documentos educativos. Sin embargo, las
siguientes: el programa de NASA Mars plataformas con las que normalmente se cuenta
Exploration Rover Mission: Classroom (NASA, para educación, tienen una vida útil muy pequeña
2008) para la exploración de otros mundos, las y pronto dejan de brindar la posibilidad de más
escuelas de robótica de LEGO (LEGO, 2008), las experiencias para el niño o joven, lo cual
experiencias de robótica en la Universidad de los precisamente se observó a lo largo de los
Niños (EAFIT, 2007), los cursos de robótica en semilleros de robótica. En contraste, las
Maloka (MALOKA, 2006) y los plataformas orientadas a la investigación poseen
semilleros de robótica de la Universidad del Valle interfaces de programación más complicadas de
(UNIVALLE, 2003). manejar para alguien sin conocimientos previos
en robótica y son realmente diseñadas para
Este impacto de la robótica móvil en la educación público más preparado en el tema. Entonces, en
de niños y jóvenes se debe a la gran motivación este trabajo se presenta el diseño y prueba de un
que el área despierta y a las expectativas que robot móvil con capacidades de percepción,
inspira. Es innegable la naturaleza actuación y comunicaciones básicas,
multidisciplinaria que la robótica posee. Esta programable desde el PC a través de una interfaz
naturaleza constituye la piedra angular para usar la amigable y que integra (a nivel de firmware e
robótica móvil como herramienta para la interfaz de usuario) diferentes niveles de
enseñanza de una amplia variedad de conceptos complejidad para el aprendizaje de la robótica
como programación, estructuras mecánicas, móvil. Estos niveles son: básico, para usuarios
electrónica, ciencias básicas, comunicaciones, con ninguna experiencia en robótica; intermedio,
etc. En términos generales, la robótica móvil para usuarios con experiencias previas en
permite, a través de motivantes experiencias robótica; y avanzado, para usuarios con
prácticas, iniciar científicamente a niños y conocimientos previos en robótica.
jóvenes, lo cual actualmente es una necesidad ante
el desinterés nacional y global de los jóvenes en La herramienta propuesta responde a algunas de
estudiar profesiones en ingeniería (Ulloa, 2008; las principales fortalezas de la robótica
Londoño, 2008). pedagógica como son la integración de distintas
áreas del conocimiento, la operación con objetos
Hace ya cuatro años la Universidad del Valle, en manipulables y concretos, la apropiación de un
convenio con la Biblioteca Departamental Jorge lenguaje gráfico, la operación y el control de
Garcés Borrero, desarrolla los semilleros de diferentes variables de manera sincrónica, el
robótica, en los cuales aproximadamente 300 desarrollo de un pensamiento sistémico, la
niños y jóvenes de diferentes edades se han creación de entornos de aprendizaje, la
iniciado científicamente a través de la robótica construcción y evaluación de sus propias
móvil. A lo largo de esta experiencia, se observó estrategias de adquisición del conocimiento bajo

54
Ingeniería y Competitividad, Volumen 10, No. 2, p. 53 - 74 (2008)

Tabla 1. Resumen de características de plataformas para educación e investigación.

PLATAFORMAS PARA EDUCACIÓN PLATAFORMAS PARA INVESTIGACIÓN

LEGO P3-DX
SR1 Mindstorms RIS HEMISSON KHEPERA II AMIGOBOT

PLATAFORMA

Herramienta
Programación BasicX BotStudio Webots, C C y JAVA C y JAVA
propia, C y JAVA
Motorola
Hitashi H8/3292 PIC16F877
Procesador BasicX-24 68331 Renesas SH7144 Hitashi H8S
16 MHz 20 MHz
25 MHz
EEPROM Flash
(32 kbyte) 32 kbytes de (512 kbytes) 1 Mbyte de
Memoria RAM - 1 Mbyte de flash
RAM (externos) RAM flash
(400 bytes) (512 kbytes)
2 motores DC 2 motores DC 2 motores DC
Locomoción 2 motores DC 2 motores DC 2 motores DC con encoders con encoders con encoders
incrementales incrementales incrementales
8 de luz
2 de contacto
2 sensores de infrarrojos,
1 de inclinación
contacto, 6 de detección 8 de
2 de luz
Sensores 1 sensor de luz de obstáculos proximidad 8 de sonar 8 de sonar
1 de infrarrojo
1 sensor de infrarrojos, infrarrojos
1 de ultrasonido rotación 2 de detección
1 de temperatura
de línea
6 baterías AA de 6 baterías AA de 1 batería
Alimentación 1 batería de 9V recargable de 1 batería de 12 V 1 batería de 12V
1.5 V 1.5 V NiMH
Comunicación Puerto serial Puerto infrarrojo Puerto serial Puerto serial Puerto serial Puerto serial
70 mm de 33 cm de largo 44 cm de largo
12 cm de
Dimensiones - - diámetro 28 cm de ancho 38 cm de ancho
diámetro
30 mm de alto 15 cm de alto 22 cm de alto
Peso - - 200 g 80 g 3.6 kg 9 kg

una orientación pedagógica, el crecimiento actuación y sus comunicaciones. En segundo


personal, el aprendizaje del proceso científico y el lugar, se discuten los requerimientos bajo los
modelado matemático (Esteban, 2000). cuales se diseñaron el firmware y la interfaz de
usuario de la herramienta. En tercer lugar, se
De esta forma, se ayuda a motivar el proceso de describen tanto el firmware como la interfaz de
aprendizaje en los diversos niveles de la usuario diseñados. Finalmente, se describen las
educación, desde temprana edad hasta la vida pruebas y resultados de la herramienta, que están
profesional, estimulando áreas del desarrollo orientados a demostrar el cumplimiento de los
como la cognición y el lenguaje, utilizando requerimientos y la funcionalidad de la
elementos que despiertan interés y motivación por herramienta.
aprender, y sin obligar a mecanizar conceptos
abstractos sin que ellos sean analizados y 2. Descripción del hardware del robot
observados para su aplicación práctica. De este
modo, esta herramienta maneja un contexto 2.1 Estructuras mecánica y electrónica
concreto para su aprendizaje.
Los dos robots móviles implementados presentan
Este artículo está estructurado de la siguiente una forma ovalada que tiene 24.5 cm de largo,
manera. En primer lugar, se hace una descripción 18 cm de ancho y 13 cm de alto. El chasis está
del hardware del robot, describiendo brevemente construido de un material plástico que, en la parte
su estructura mecánica, su modelo cinemático y superior, tiene una tapa removible para alojar las
dinámico, sus sistemas de percepción, su baterías que alimentan el robot y tres botones:

55
Ingeniería y Competitividad, Volumen 10, No. 2, p. 53 - 74 (2008)

encendido, reinicio y operación. El botón de actualización del BootLoader y otro que usa
encendido tiene forma circular y está en el centro; comunicaciones tipo SPI para futuras
el botón de reinicio se encuentra a la derecha del expansiones. La Figura 1b muestra el diagrama de
botón de encendido y se usa para reiniciar una bloques del hardware del robot. En esta figura se
aplicación recientemente descargada. El botón de observan 5 componentes principales: el sistema
operación se encuentra a la izquierda del botón de de percepción (proximidad, luz y contacto), el
encendido y se usa para determinar si se quiere sistema de actuación [servo-motores de DC con
descargar una nueva aplicación o ejecutar la que sus codificadores (encoders) incrementales], el
está descargada (Figura 1a). Al lado izquierdo, el sistema de comunicaciones (de luz infrarroja,
robot posee tres conectores tipo RJ: uno para la RS232 y un pequeño alto-parlante para
descarga de programas al robot, uno para la interacción con el usuario), la alimentación para
todo el sistema y el microcontrolador.

a)

b)

Figura 1. (a) Estructura mecánica del UV-BOT. (b) Diagrama de bloques


de los componentes electrónicos del UV-BOT.

2.2 Sistema de percepción criterios como economía, mantenimiento de las


dimensiones reducidas del robot, facilidad de
UV-BOT posee un sistema de percepción ofrecer al niño o joven herramientas suficientes
compuesto por sensores de proximidad para realización de experiencias interesantes. De
infrarrojos, sensores de contacto, sensores de acuerdo con la revisión de las plataformas
intensidad de luz y odómetros en cada rueda. Estos comerciales, estos sensores son los más
sensores se seleccionaron teniendo en cuenta comúnmente empleados.

56
Ingeniería y Competitividad, Volumen 10, No. 2, p. 53 - 74 (2008)

Sensores de proximidad. La Figura 2a muestra Ellos brindan una resolución de 135 pulsos por
la distribución de los sensores de proximidad. Dos giro de la rueda.
de ellos se encuentran a cada lado del robot, otro en
el frente y otros dos a 45º del sensor central. Para 2.3 Modelos cinemático y dinámico
su implementación, se usaron dispositivos Sharp
GP1UD28YK. Su rango de activación se UV-BOT es un robot de tipo diferencial, con un
encuentra alrededor de los 20 cm medidos desde el soporte trasero y para ser usado en ambientes
sensor. interiores. Según Ollero (2007), el modelo
cinemático de un robot diferencial puede
Sensores de intensidad de luz. La Figura 2b describirse mediante las expresiones:
muestra la distribución de los sensores de
intensidad de luz. Dos de ellos se encuentran a vd + vi (
wd +wi )
c (1)
v= =
cada lado del robot y otro en el frente. El sensor 2 2
del frente está ubicado en un soporte que puede ser
rotado hacia adelante o hacia el piso, de tal manera
que puede usarse para implementar algoritmos
vd - vi (
wd - wi)
c
w= = (2)
sencillos de seguimiento de trayectorias con alto b b
contraste. Estos sensores se implementaron
usando fotorresistencias y su sensibilidad fue donde c es el radio de las ruedas (3.81 cm para este
medida en el robot obteniéndose como resultado caso), b (18 cm para este caso) es la separación de
0.353 cd / V. las ruedas, vi es la velocidad lineal de la rueda
izquierda, vd es la velocidad lineal de la rueda
Sensores de contacto. La Figura 2c muestra la derecha, wi es la velocidad angular de la rueda
distribución de los sensores de contacto. Todos izquierda, wd es la velocidad angular de la rueda
ellos se ubicaron en el parachoques frontal del derecha, v es la velocidad lineal del robot y w es la
robot, ampliando el área de contacto. velocidad angular del robot.
Sistema de odometría. La Figura 3 muestra los El sistema de locomoción del robot se basó en
planos coordenados global y del robot, los cuales servo-motores modificados Futaba S3003, los
son asumidos para el cálculo de la odometría. Los cuales se basan en un motor de corriente directa
odómetros son codificadores incrementales (DC), cuyo modelo de primer orden es bien
ubicados en cada rueda del robot. conocido (Ogata, 1996) y que se usó para
establecer el modelo dinámico del robot.

a) b) c)
Figura 2. (a) Distribución de los sensores de proximidad. (b) Distribución de los sensores de intensidad de luz.
(c) Distribución de los sensores de contacto.

57
Ingeniería y Competitividad, Volumen 10, No. 2, p. 53 - 74 (2008)

En las ecuaciones anteriores, VD es la velocidad


lineal de la rueda derecha, VI es la velocidad lineal
de la rueda izquierda, UD es el voltaje aplicado al
motor derecho, UI es el voltaje aplicado al motor
izquierdo, K es la ganancia de los modelos y τ es
su constante de tiempo. Para mejorar el tiempo de
establecimiento a 0.55 s y mejorar el error de
estado estacionario, se diseño un control digital
tipo PI usando el modelo de la planta mostrado en
la Ec. (6). La función de transferencia del
controlador digital se muestra en la Ec. (7) y la
función de transferencia en bucla cerrada teniendo
en cuenta el retenedor de orden cero se muestra en
Ec. (8).
Figura 3. Planos coordenados para el cálculo de la
odometría.

Después de realizar una identificación lineal


usando la respuesta al escalón para cada uno de los
C ( z) =
9.334 ( 1.1553 z -
z-
0.1555
1
( (7)
motores, se obtuvieron los modelos expresados
por las Ecs. (3) y (4).
0 .3898 z - 0 .0773
V (z) =2
K 0 .1647 z - 1.6018 z + 0 .2893 (8)
VD ( s) =UD ( s) = UD (s )
s+
t 1 0.161 s +1
(3)
Las Figuras 4 y 5 muestran la respuesta del motor
K 0.1694 izquierdo y derecho a un escalón de velocidad de
V I (s ) = UI (s ) = UI (s ) 17 cm / s. Las figuras muestran las respuestas en
s+
t 1 0. 177 s +1
(4) pruebas reales, a partir de las cuales se pudo medir
un tiempo de establecimiento de 0.6 s y un
Estos modelos poseen tiempos de establecimiento sobrepaso del 3.2 %. La pequeña oscilación
de 0.644 y 0.651 s, respectivamente. Dado que los presente alrededor de los 5 s es causada por un
modelos son bastante similares, se unificó el cambio en las características del terreno, pero que
modelo de la planta al promediar sus parámetros fue útil con el fin de observar la capacidad de
de primer orden, obteniendo las Ecs. (5) y (6), que regulación del controlador.
corresponden al modelo continuo y discreto de la
planta, respectivamente. El tiempo de muestreo 2.4 Sistema de comunicaciones
usado fue de 250 ms.
La Figura 6 muestra el sistema de comunicaciones
infrarrojas que los robots poseen en el momento
que están ejecutando alguna aplicación. El emisor
K 0.17 (5) es un LED infrarrojo que se encuentra en el frente
V (s ) =U (s ) = U (s )
s+
t 1 0.161s +1 del robot y el receptor es un módulo Sharp
GP1UD28YK, el cual está ubicado en la parte
trasera. Cuando el robot se encuentra en modo de
1.0559 z programación, el conector RJ11 de uno de los
P( z ) = (6) costados es usado para la descarga del programa.
z- 0.211655 En cualquiera de los dos casos se usa la misma
UART del microcontrolador ATMEGA32.

58
Ingeniería y Competitividad, Volumen 10, No. 2, p. 53 - 74 (2008)

velocidad (cm / s)

tiempo (s)

Figura 4. Respuesta real a un escalón de velocidad del motor derecho.


velocidad (cm / s)

tiempo (s)

Figura 5. Respuesta real a un escalón de velocidad del motor izquierdo.

Figura 6. Comunicación infrarroja entre robots.

59
Ingeniería y Competitividad, Volumen 10, No. 2, p. 53 - 74 (2008)

Dependiendo del modo de operación del robot, se A este nivel, no se realizan procesos complejos de
selecciona como fuente de datos ya sea el conector las señales de entrada o salida; se toma el flujo de
RJ11 (programación) o el medio infrarrojo información en bruto.
(ejecución de la aplicación).
3.2 Nivel de complejidad intermedio
3. Requerimientos para la experimentación
en robótica El nivel intermedio brinda la posibilidad de
controlar al robot más delicadamente,
La herramienta propuesta fue diseñada e permitiendo movimientos que tienen en cuenta
implementada con el fin de cumplir ciertos una distancia o ángulo determinado. Se introduce
requerimientos, los cuales son producto de la el manejo del movimiento en un plano,
experiencia de nuestro grupo de investigación en comunicaciones con mensajes más complejos
percepción y sistemas inteligentes en el desarrollo (tramas) y funciones de programación con
de los semilleros de robótica, y de la necesidad ya operaciones lógicas. A este nivel, también se
mencionada de brindar al usuario un esquema de cuenta completamente con las funcionalidades del
trabajo de complejidad creciente que va desde el nivel básico. La Tabla 3 muestra un resumen de
nivel básico hasta el nivel avanzado. sus características. El objetivo de este nivel es
A continuación, se detallan los requerimientos que comenzar a usar el robot como una herramienta
el firmware y la interfaz de usuario tuvieron en capaz de realizar tareas que son un conglomerado
cuenta para el desarrollo de la herramienta en 5 de percepciones y movimientos simples
ejes fundamentales: movilidad, percepción, introducidos en el nivel básico.
comunicaciones, programación y disponibilidad
de demos. 3.3 Nivel de complejidad avanzado

3.1 Nivel de complejidad básico El nivel avanzado hace uso de todas las
características anteriores y las usa para construir
El nivel básico está diseñado para que las una interfaz de software orientada a la
funcionalidades de movilidad, percepción, programación por comportamientos (Brooks,
comunicaciones y programación del robot sean 1986). Se usan esquemas de percepción, hasta 7
invocadas sin mayor dificultad por el usuario, diferentes comportamientos básicos que pueden
brindando una comprensión global de los ser fusionados (usando un árbitro colaborativo) y
estímulos y acciones del robot. La Tabla 2 muestra esquemas de actuación que modifican la
un resumen de sus características. velocidad lineal y angular del robot.

Tabla 2. Requerimientos del nivel de complejidad básico.

Tema Funcionalidad
Movilidad ·Encendido / apagado de motores.
·Variación de giro y velocidad de motores.
·Giros básicos: aleatorio, adelante, derecha, izquierda y atrás por un tiempo dado.
Percepción ·Lecturas binarias (activo / no activo) de los sensores infrarrojos y de contacto.
·Detección de umbrales de luz: iluminado u oscuridad para cada uno de los sensores de
luz.
Comunicaciones e Interacción ·Tocar canciones y notas.
·Enviar y recibir mensajes por IR.
Programación ·Definición de variables.
·Operaciones aritméticas básicas.
·Control de flujo de programas: while, for, if, repeat, etc.
Predefinidas ·Funciones para encontrar la luz u oscuridad.
·Función para seguir objetos.
·Función para evadir obstáculos.

60
Ingeniería y Competitividad, Volumen 10, No. 2, p. 53 - 74 (2008)

Tabla 3. Requerimientos del nivel de complejidad intermedio.

Tema Funcionalidad
Movilidad ·Avanzar y retroceder una distancia determinada.
·Girar un ángulo determinado.
·Avanzar, retroceder o girar hasta que un sensor perciba determinada condición.
Percepción ·Obtención de la posición XY del robot.
·Obtención de la velocidad de desplazamiento del robot.
Comunicaciones e Interacción ·Envío y recepción de códigos de identificación de otros robots.
·Determinación del momento adecuado para transmitir un mensaje.
Programación ·Operaciones lógicas (AND, OR, XOR).
·Desplazam ientos a la derecha o izquierda.
·Operaciones aritméticas como potenciación y raíz cuadrada.
Predefinidas ·Desplazamiento del robot a una coordenada XY determinada.

Tabla 4. Requerimientos del nivel de complejidad avanzado.

Tema Funcionalidad
Movilidad ·Modificación de la velocidad lineal y angular del robot.
·Modificación de la velocidad lineal de las ruedas.
·Modificación de las características de los controladores PI de las ruedas.
Percepción ·Representación vectorial de los sensores infrarrojos y de contacto.
·Obtención del sector angular libre de obstáculos.
·Obtención del sector angular con más o menos iluminación.
·Obtención de la orientación relativa hacia un objetivo en el plano XY.
Comunicaciones e Interacción ·Idénticas a las del nivel intermedio.
Programación ·En este caso las estructuras de programación, definición de variables y operaciones
sobre éstas son usadas teniendo en cuenta la sintaxis de ANSI C.
Predefinidas ·Comportamientos básicos de: evasión de obstáculos, adición de ruido, retorno por luz,
retorno por posición, seguimiento de objetos, seguimiento de muros y escape.
·Árbitro colaborativo para la fusión de las respuestas de los comportamientos.
·Planificador de prioridades con el fin de determinar la importancia relativa de los
comportamientos.

Además, se introduce el concepto de campos de • PWM motor derecho: para generar la señal de
potencial (Khatib, 1986), muy difundido en el PWM necesaria para mover el motor derecho.
ámbito de la navegación con robots móviles. El
objetivo del nivel avanzado es usar al robot como • PWM motor izquierdo: para generar la señal de
una herramienta para solucionar un problema real. PWM necesaria para mover el motor izquierdo.
La Tabla 4 muestra estas características.
• Sensores de luz y contacto: para capturar y
4. Descripción del firmware procesar la información de los sensores de luz y
contacto.
La Figura 7 muestra la estructura del firmware de
los robots móviles. Este fue desarrollado sobre un • Comunicaciones: para enviar y recibir
micro-núcleo de tiempo real de libre distribución información a través del sistema de
llamado FreeRTOS (FreeRTOS, 2005), sobre el comunicaciones infrarrojas.
cual se implementaron los siguientes procesos:
• Odometría y control de movimiento: para
• Sensores IR: para capturar y procesar la determinar la posición y orientación del robot cada
información de los sensores de proximidad 250 ms y para determinar la velocidad de
infrarrojos. desplazamiento del robot con los controladores PI.

61
Ingeniería y Competitividad, Volumen 10, No. 2, p. 53 - 74 (2008)

• Eventos (modificable por el usuario): para valores de los controladores PI de las ruedas
ubicar todos los eventos que pueden lanzar los derecha e izquierda, dirección de giro de los
sensores del robot, por ejemplo: detección de motores, posición en el plano XY y orientación del
obstáculos en alguno de los sensores de robot. De esta manera, las tareas antes
proximidad o contacto, detección de ciertos mencionadas son las únicas que interactúan con el
niveles de iluminación u oscuridad, llegada de un hardware del robot, mientras que la interfaz de
mensaje por el sistema de comunicaciones, etc. A software del usuario sólo accede a la estructura de
cada evento se le asocia una serie de instrucciones datos.
que el usuario especifica en las interfaces de
programación. 5. Descripción funcional básica de la
interfaz de usuario
• Principal (modificable por el usuario): para
ubicar el programa que el usuario quiere ejecutar y El aplicativo de software (ver diagrama de
que es concebido en alguna de las tres interfaces bloques en la Figura 8) permite la programación
de programación. del robot en tres niveles de conocimiento
progresivos: programación gráfica, programación
INICIO basada en XML y programación en ANSI C.
C ONFIGU RAC I9 ON DEL
Como el programa final que se compila y descarga
MICR OC ON TROLA DOR
en el robot debe ser escrito en ANSI C, el
aplicativo de software se encarga de hacer la
traducción transparente entre los lenguajes
PRINC IPAL E VENTOS utilizados en los dos niveles inferiores de
conocimiento.

Para usuarios novatos se brinda una interfaz de


MOVILIDAD
PER CE PCION
programación gráfica. Para usuarios intermedios
DER ECH A
se brinda una interfaz de programación para
código XML pues el lenguaje de programación del
robot a nivel intermedio fue creado como un
MOVILID AD COMU NICAC IÓN lenguaje basado en XML. Para usuarios
IZQUIERD A
avanzados se brinda una interfaz de
programación para código ANSI C. El aplicativo
permite al usuario generar y ver la traducción de
P ROXIM ID AD ESTRU CTUR A
OD OMETR IA
código de sus programas desde el nivel de novatos
GEN ERAL
hacia niveles superiores de aprendizaje.

Además de las tres interfaces diferentes de


Figura 7. Esquema de tareas en el firmware del robot. programación, el aplicativo de software presenta
un módulo de entrenamiento mediante la
La Figura 7 muestra un bloque llamado estructura descripción de problemas en forma de retos. El
general, que es una estructura de datos en la cual usuario debe superar estos problemas mediante la
todas las tareas leen y escriben datos. Este creación de un programa para cada reto. A
proceso de lectura y escritura es sincronizado por continuación se describe funcionalmente cada
un mecanismo de semáforos que FreeRTOS interfaz desde el punto de vista de lo que
ofrece con el fin de mantener la coherencia de la encontrará el usuario al ejecutar el aplicativo.
información. La estructura de datos alberga
información como velocidades actuales de las 5.1 Programación gráfica
ruedas derecha e izquierda, velocidad lineal del
robot, velocidad angular del robot, valores de En esta interfaz de programación, las rutinas,
activación de los sensores infrarrojos y de condiciones y funciones del robot se representan
contacto, valores actuales de los sensores de luz, mediante íconos en forma de bloque, organizados

62
Ingeniería y Competitividad, Volumen 10, No. 2, p. 53 - 74 (2008)

mediante pestañas por categorías. La Figura 9 5.2 Programación con XML


muestra una ventana de esta interfaz. Al lado
izquierdo se pueden escoger los bloques según su Se definió un lenguaje basado en XML para
categoría. Los bloques se arrastran hasta el espacio utilizar como lenguaje intermedio. Este lenguaje
de programación, donde se puede construir el permite especificar todas las funciones y ciclos
programa mediante la unión y configuración de que el robot puede realizar. El lenguaje creado es
bloques. Al lado izquierdo también están los extensible y las rutinas de traducción hacia los
controles para la magnificación (zoom), para la otros dos lenguajes del aplicativo (gráfico a XML,
navegación a lo largo del programa y para la XML a ANSI C) también se expresan mediante
eliminación de bloques del espacio de transformaciones a partir de archivos XML. De
programación. En la parte central de la pantalla se este modo, todas las interfaces del aplicativo de
arrastran los bloques para la construcción del software pueden seguir avanzando en conjunto
programa, y en la parte inferior se configuran los ante cambios en la especificación del robot. La
datos de entrada de cada bloque previamente Figura 10 muestra una ventana de la interfaz de
seleccionado. programación intermedia donde se brinda un
editor de XML.

Figura 8. Diagrama de bloques básico del aplicativo.

63
Ingeniería y Competitividad, Volumen 10, No. 2, p. 53 - 74 (2008)

Figura 9. Interfaz para la programación gráfica (nivel básico).

Figura 10. Interfaz para la programación en XML (nivel intermedio).

Figura 11. Interfaz para la programación en ANSI C (nivel avanzado).

64
Ingeniería y Competitividad, Volumen 10, No. 2, p. 53 - 74 (2008)

En esta interfaz se puede programar el robot 5.4 Retos y manejo de usuarios


usando el lenguaje creado (basado en XML). El
editor contiene una consola para la corrección de Los requerimientos del reto a superar se presentan
sintaxis y otra consola donde se muestra la salida en el módulo de retos. El usuario debe utilizar la
de la compilación y descarga. interfaz de programación gráfica para construir el
programa que supere el reto. La Figura 12a
5.3 Programación en ANSI C muestra un ejemplo de problema-reto donde se le
pide al usuario realizar un programa para que el
El nivel de programación más avanzado que se robot sea capaz de evitar un obstáculo (las
brinda es la programación directa en ANSI C del instrucciones se muestran en el lado derecho). El
robot. La Figura 11 muestra la interfaz de este usuario ha realizado el programa correspondiente
nivel. Esta interfaz de programación brinda un y debe ahora contestar las preguntas que permiten
editor de código ANSI C. El editor contiene una al aplicativo de software evaluar si se ha superado
consola donde se muestra la salida de la el reto. El aplicativo también incluye el registro de
compilación y descarga. Además, siempre se usuarios, el mantenimiento de los usuarios que
muestra una plantilla con la cual el usuario sólo usan el aplicativo y la realización de un proceso de
debe agregar el código C del programa principal y LOGIN para entrar al aplicativo y reanudar los
la activación o no de los eventos asociados a los retos que el usuario tiene almacenados.
sensores.

a)

b) c)

Figura 12. (a) Interfaz para el desarrollo de retos. (b) y (c) Interfaz para el proceso de
LOGIN y registro de usuarios.

65
Ingeniería y Competitividad, Volumen 10, No. 2, p. 53 - 74 (2008)

Las Figuras 12b y 12c muestran las interfaces de 6.2 Evasión de obstáculos
LOGIN y creación de un registro en el aplicativo.
La evasión de obstáculos es una característica
6. Pruebas y resultados muy deseada en un robot móvil, que en nuestro
caso se logra a través de un comportamiento que
Considerando las secciones anteriores, se observa usa esquemas de percepción basados en una
que existen muchos módulos que constituyen la representación vectorial de los sensores
herramienta propuesta. Con el fin de probar la infrarrojos (Bacca et al., 2003). Con este
funcionalidad de la herramienta, se comportamiento se obtiene una percepción
implementaron pequeñas aplicaciones en el nivel vectorial de los obstáculos que rodean al robot.
de complejidad avanzado, lo cual implica usar las La respuesta del comportamiento es entonces
funcionalidades de los niveles inferiores. Para convertida en comandos motores (Bacca et al.,
cada una de las aplicaciones se usó la interfaz de 2003) a través de un árbitro que usa un esquema de
software tanto en su nivel básico como en el prioridades definidas en el momento de la
avanzado. Este último nivel se usó para la programación.
programación orientada a comportamientos.
Las respuestas de los comportamientos son
Las aplicaciones seleccionadas son bien vectores normalizados, cuya dirección señala la
conocidas en el ámbito de la robótica móvil: orientación deseada del robot y cuya magnitud
evasión de obstáculos, retorno (homing) de indica el porcentaje de modificación de las
posición, retorno (homing) de luz y una carrera de velocidades lineales de cada rueda. Las
relevos como aplicación básica de robótica coordenadas X / Y del vector deseado se obtienen
cooperativa. mediante las siguientes expresiones:
n=
7
6.1 Sistema de localización
å
X=pn xn (9)
n=
0
La determinación de la incertidumbre del sistema
de localización es una prueba interesante que es
n=
7
previa a las pruebas con las aplicaciones basadas
en comportamientos. En tal prueba, el robot å
Y =pn y n
n=
0
(10)
describe un cuadrado de 1.5 m x 1.5 m, girando
hacia la derecha y luego hacia la izquierda. Esto se
muestra en las Figuras 13a y 13b. La prueba donde pn es la prioridad asociada al
descrita fue realizada 5 veces para cada lado. Las comportamiento n, y xn y yn son las respuestas de
gráficas de dispersión se muestran en las Figuras cada comportamiento. Estas ecuaciones muestran
13c y 13d, tanto para el giro hacia la izquierda cómo el árbitro colaborativo obtiene la respuesta
como hacia la derecha. que es enviada realmente a los motores, siempre
teniendo en cuenta el aporte de cada
Para el recorrido antihorario (hacia la izquierda) comportamiento activo. El conjunto de
se midió una incertidumbre promedio en X de comportamientos que la herramienta emplea se
± 13.89 cm y en Y de ± 13.8 cm, usando una muestra en la Figura 14. De este conjunto, sólo se
distribución t-Student con un margen de confianza usa la evasión de obstáculos.
de 97.5 %. Para el recorrido horario (hacia la
derecha) se midió una incertidumbre promedio en La Figura 15 muestra dos pruebas típicas para
X de ± 17.48 cm y en Y de ± 17.36 cm, usando una observar el comportamiento del robot ante los
distribución t-Student con un margen de confianza obstáculos del entorno.
de 97.5 %.

66
Ingeniería y Competitividad, Volumen 10, No. 2, p. 53 - 74 (2008)

a) b)

c)

d)

Figura 13. Pruebas del sistema de localización. (a) Recorrido cuadrado hacia la izquierda. (b) Recorrido cuadrado
hacia la derecha. (c) Curva de dispersión sentido antihorario. (d) Curva de dispersión sentido horario.

Figura 14. Conjunto de comportamientos de los robots.

67
Ingeniería y Competitividad, Volumen 10, No. 2, p. 53 - 74 (2008)

a) b)
Figura 15. Trayectorias del robot ante diferentes configuraciones de obstáculos.

Ambas configuraciones de obstáculos no son posición con evasión de obstáculos. El


conocidas previamente por el robot. La comportamiento de retorno por posición tiene
configuración mostrada en la Figura 15a es un como objetivo la posición XY (100 cm, 0 cm) en el
laberinto típico y la configuración de la Figura 15b plano global, y cuando el robot se acerca alrededor
es un corredor que se estrecha a medida que de una zona con ± 5 cm, el robot se detiene. La
avanza el robot. Esta configuración se usa para prueba fue realizada 5 veces. Las trayectorias
observar la respuesta del robot ante corredores obtenidas al procesar digitalmente la imagen se
amplios y estrechos. Las trayectorias en ambas muestran en la Figura 17a y la nube de puntos de
pruebas fueron filmadas y procesadas con el fin de las posiciones reales de llegada se muestra en la
extraer su evolución en el tiempo, usando un Figura 17b. De esta figura, se obtuvo una
programa de procesamiento digital de imágenes incertidumbre promedio de 12.8 cm en el eje X y
(Bacca et al., 2006). 15.32 cm en el eje Y usando una distribución
t-Student con un margen de confianza del 97.5 %.
6.3 Retorno por posición y por luz con evasión
de obstáculos 6.3.2 Retorno por luz y evasión de obstáculos

El retorno (homing) es un comportamiento típico Al cambiar la definición del área de interés usando
en robótica móvil cuyo objetivo es orientar al un estímulo análogo como es la luz, el
robot hacia una región de interés. Gracias a que los componente que cambia en el conjunto de
robots móviles soportan la programación comportamientos de la Figura 16 es el
orientada a comportamientos, el comportamiento comportamiento de retorno. Es decir, se desactiva
de retorno puede ser combinado con la evasión de el comportamiento 7 y se activa el 4, de arriba a
obstáculos, de tal manera que la combinación de abajo. En este caso, el robot no conoce
ambos resulta en un comportamiento emergente previamente la posición del estímulo; éste se guía
más complejo (Arkin, 1989). En nuestro caso, la usando sus fotoceldas, obteniendo un vector que
región de interés se define en dos formas: usando se orienta hacia el lugar con más intensidad
una posición en el plano coordenado global y lumínica, y se debe garantizar que el robot pueda
empleando un estímulo como es la luz. Ambas tener línea de vista hacia la fuente de luz, esto es,
formas se usaron en las pruebas que se muestran a los obstáculos no pueden ser muy altos. El robot
continuación. tampoco conoce la distribución de los obstáculos.
Ambos comportamientos básicos se mezclan para
6.3.1 Retorno por posición y evasión de obtener el resultado de la Figura 18a. La prueba
obstáculos fue realizada 5 veces. La Figura 18a muestra las
trayectorias obtenidas al procesar digitalmente los
La Figura 16 muestra el conjunto de vídeos de las pruebas.
comportamientos activos para el retorno por

68
Ingeniería y Competitividad, Volumen 10, No. 2, p. 53 - 74 (2008)

Figura 16. Conjunto de comportamientos para el retorno por posición y evasión de obstáculos.

a)

b)

Figura 17. (a) Trayectorias obtenidas para el retorno por posición con evasión de obstáculos. (b) Nube de puntos de las
posiciones reales de llegada.

69
Ingeniería y Competitividad, Volumen 10, No. 2, p. 53 - 74 (2008)

a)

b)
Figura 18. (a) Trayectorias de la prueba de retorno por luz y evasión de obstáculos. (b) Nube de puntos de las
posiciones XY reales alcanzadas en la prueba.

Con el fin de establecer la incertidumbre para esta 6.4 Cooperación básica


prueba, el estímulo fue ubicado en la posición
(120 cm, 0 cm) del plano global. Como criterio de La última prueba realizada está orientada a
parada, se estableció la lectura del 98 % de la demostrar esta funcionalidad de la herramienta,
capacidad máxima de medición de iluminación de con el fin de resaltar la capacidad de comunicación
las fotoceldas del robot. La Figura 18b muestra la entre robots y poder con esto desarrollar tareas
nube de puntos XY que muestran los lugares sencillas de cooperación. La prueba consistió en
donde el robot detuvo su movimiento, los cuales la implementación de una carrera de relevos.
se encuentran en un rango entre 12 cm a 22 cm de El robot inicia su recorrido siguiendo una
la fuente de luz, teniendo una incertidumbre de trayectoria ovalada, al dar una vuelta se encuentra
17.3 cm (usando una distribución t-Student con un con el otro robot el cual aguarda el envío de un
margen de confianza del 97.5 %. mensaje a través del sistema de comunicaciones
infrarrojas y sólo en este instante inicia el mismo
recorrido y así sucesivamente.

70
Ingeniería y Competitividad, Volumen 10, No. 2, p. 53 - 74 (2008)

La Figura 19 muestra una secuencia de imágenes Este es el caso del retorno con evasión de
en la cual se puede observar lo anterior. Esta obstáculos, prueba que se llevó a cabo de dos
prueba es uno de los retos que los niños y jóvenes maneras: la primera usando el sistema de
realizan en el semillero de robótica de la odometría, donde se tienen dos comportamientos
Universidad del Valle y la Biblioteca con diferentes grados de importancia, 100 % de
Departamental. importancia para la evasión de obstáculos y 30 %
para orientar al robot hacia la zona de interés
7. Discusión de resultados (punto 100, 0) como se observa en la Figura 17a.
La Figura 17b contiene dos de las 5 pruebas
El desarrollo de las pruebas del sistema de realizadas, las cuales estuvieron dentro del margen
localización proporciona un círculo de de incertidumbre del sistema de localización
incertidumbre que en el peor de los casos tiene un (círculo de 17 cm de radio). En la Figura 17b se
radio de 17 cm. Este valor no es ajeno a la bien observa que inicialmente el robot se orienta hacia
conocida inexactitud de un sistema de localización su destino, pero modifica su trayectoria al
relativo basado en codificadores incrementales encontrarse con el obstáculo. La segunda forma
(Borenstein et al., 1996), pero gracias a la de implementación fue usando estímulos
flexibilidad de la plataforma, esto permite el externos; en este caso, luz que fue capturada por
planteamiento de desarrollos a corto plazo para la sus fotoceldas. Estas fotoceldas fueron usadas
corrección de errores sistemáticos de odometría para establecer un marco coordenado de
(Borenstein et al., 1996) y la adición de un compás intensidades de luz y luego un vector cuyo ángulo
digital para la compensación de los errores de determinaba la orientación hacia donde el robot
odometría usando filtros de Kalman (Ivanjko debía dirigirse. La Figura 18a muestra un
et al., 2004). comportamiento inicial parecido al descrito
anteriormente, con una modificación de la
Las plataformas móviles están en capacidad de trayectoria para evadir el obstáculo y luego
ejecutar aplicaciones que usan la programación acercarse a la zona de interés. Ya que en esta
basada en comportamientos. Los resultados de las prueba es difícil alcanzar por completo la fuente
pruebas de evasión de obstáculos presentadas en la del estímulo, dada la simplicidad de los sensores,
Figura 15a y 15b muestran al robot usando el robot terminó alrededor de la fuente con un
sensores simples para recorrer un laberinto o un círculo de incertidumbre de radio igual a 17 cm,
pasillo. Sin embargo, nótese que hay ciertas distancia a la cual, dependiendo del ángulo de
oscilaciones en la trayectoria detectada, lo cual aproximación, los sensores del robot entraban en
responde a que el espacio libre de obstáculos con saturación. Nótese adicionalmente que el conjunto
el cual se encuentra el robot es muy parecido al de comportamientos con que cuenta el robot está
rango de alcance de sus sensores. Esto se puede ver siendo parametrizado por las prioridades de cada
con más fuerza en la Figura 15b cuando el pasillo uno de ellos. Esto significa que la plataforma está
se estrecha paulatinamente. El robot actualmente preparada para modular su comportamiento
es programado bajo una perspectiva reactiva, lo emergente, dependiendo de la adecuada
cual no le permite tener una percepción global de activación y valor de las prioridades asociadas a
su entorno, sólo local y sin historia. Sin embargo, cada comportamiento.
al introducir la navegación con campos de
potencial, la plataforma se convierte en una Finalmente, los resultados mostrados permiten
herramienta bastante útil para el aprendizaje de observar que la plataforma posee una muy buena
este concepto a diferentes niveles de conocimiento flexibilidad de programación y que está concebida
en robótica. teniendo en cuenta conceptos para la navegación
de robots móviles acordes con el estado del arte
Lo interesante de la programación orientada a actual. Esto resulta muy útil para los objetivos
comportamientos es poder obtener un educativos bajo los cuales fue concebido el
comportamiento emergente más complejo que los sistema inicialmente, ya que permite la
comportamientos básicos que lo conforman. introducción a los siguientes conceptos: control de
movimiento, percepción básica usando la

71
Ingeniería y Competitividad, Volumen 10, No. 2, p. 53 - 74 (2008)

a) b)

c)

Figura 19. Secuencia de imágenes cooperación básica. (a) Robot próximo a llegar. (b) Transmisión del mensaje.
(c) El otro robot inicia el recorrido.

información original de los sensores, percepción sistema de movilidad diferencial, un sistema de


avanzada (Arkin, 1989) usando el concepto de localización relativa usando codificadores
esquemas (al convertir las lecturas de los sensores incrementales con una incertidumbre de 17 cm,
a un espacio vectorial), y programación de una velocidad lineal máxima de 19 cm / s, un
soluciones a problemas concretos (usando las sistema de control de velocidad PI para cada una
plataformas móviles, su firmware y su aplicativo de las ruedas y un firmware diseñado usando un
con sus tres niveles de complejidad). aplicativo de tiempo real (FreeRTOS) capaz de
soportar las funcionalidades para la programación
8. Conclusiones del robot con tres niveles de complejidad.
El aplicativo es un software que se comunica con
Se presenta un sistema de experimentación en el robot usando un enlace serial y que permite la
robótica compuesto por dos plataformas móviles y programación gráfica de aplicaciones para un
un aplicativo para la programación de los robots nivel básico de conocimientos de robótica, la
usando tres niveles de complejidad. Los robots programación usando XML para un nivel
están compuestos por 5 sensores infrarrojos de intermedio, la programación en ANSI C para un
proximidad, 3 de contacto, 3 fotoceldas, un nivel avanzado, la introducción a la herramienta

72
Ingeniería y Competitividad, Volumen 10, No. 2, p. 53 - 74 (2008)

usando retos, el registro de usuarios y el manejo de Brooks, R. (1986). A robust layered control system
los mismos con el fin que cada usuario mantenga for a mobile robot. IEEE Journal of Robotics and
la evolución de sus retos. Automation 2 (1), 14-23.

UV-BOT es un sistema de experimentación que EAFIT (Escuela de Administración, Finanzas y


reúne las ventajas de dos mundos, uno en el cual se Tecnología). (2007). Universidad de los Niños.
tienen robots de entretenimiento (cuya vida útil es [Link]
corta en el momento de ser usados como html
herramientas de aprendizaje en robótica) y otro
que tiende hacia el otro extremo, al tener Esteban, M. (2000). El diseño de entornos de
plataformas con un nivel de complejidad más aprendizaje constructivista. Adaptación de un
elevado y orientadas más que todo a investigación. artículo de D. Jonassen, publicado en
UV-BOT es una herramienta con la cual el usuario [Link]: el diseño de la instrucción,
puede realizar un acercamiento a la robótica móvil Madrid, Aula XXI Santillana.
sin tener conocimientos previos de ésta, para luego [Link]
gradualmente incrementar la complejidad de los
conceptos empleados y de los retos propuestos. FreeRTOS. (2005). RTOS implementation for AVR
microcontrollers.
[Link]
9. Referencias bibliográficas
Gómez, F., & Muñoz, F. (2007). Diseño e
Arkin, R. C. (1989). Motor schema-based mobile implementación de un robot móvil diferencial.
robot navigation. The International Journal of Trabajo de grado, Escuela de Ingeniería Eléctrica
Robotics Research 8 (4), 92-112. y Electrónica, Universidad del Valle, Cali,
Colombia.
ATMEL. (2005). 8-bit AVR microcontroller with
32 Kbytes in-system programmable flash Ivanjko, E., & Petrovic, I. (2004). Extended
(ATmega32, ATmega32L). Kalman filter based mobile robot pose tracking
h t t p : / / w w w. a t m e l . c o m / d y n / r e s o u r c e s / using occupancy grid maps. In Proceedings of the
prod_documents/[Link] 12th IEEE Mediterranean Electrotechnical
Conference (MELECON 2004), Vol. 1, p.311-314.
Bacca, E. B., Caicedo, E. F., & Santos-Victor, J. A.
(2003). A behavior-based homing strategy Jones, J. L., Flynn, A. M., & Seiger, B. A.(1999).
implemented on a layered control architecture. Mobile robots: inspiration to implementation.
In Proceedings of the 13th International Second edition, Natick, Massachusetts: A.K.
Symposium on Measurement and Control in Peters.
Robotics (ISMCR03), p. 149 – 154.
LEGO (2008), Mindstorms RIS 2.0 / NXT,
Bacca, E. B., & Caicedo, E. F. (2006). Control del [Link]
empuje de una barra usando dos robots móviles y
visión artificial. Ingeniería (Universidad Distrital Londoño, J. G. (2008). Escasez de ingenieros en
Francisco José de Caldas) 11 (2), 70-79. Colombia. Revista Portafolio, Redacción de
Economía y Negocios, Bogotá, Colombia.
Borenstein, J., & Feng, L. (1996). Measurement
and correction of systematic odometry errors in Khatib, O. (1986). Real-time obstacle avoidance
mobile robots. IEEE Transactions on Robotics for manipulators and mobile robots.
and Automation 12 (6), 869-880. The International Journal of Robotics Research
5 (1), 90-98.

73
Ingeniería y Competitividad, Volumen 10, No. 2, p. 53 - 74 (2008)

MALOKA. (2006). Semana colombiana de


robótica en Maloka del 16 al 18 de agosto.
[Link]
2210

NASA (National Aeronautics and Space


Administration). (2008). The robotics alliance
project.
[Link]

NASA JPL (National Aeronautics and Space


Administration Jet Propulsion Laboratory).
(2008). Mars exploration rover mission:
classroom.
[Link]
html

Ogata, K. (1996). Sistemas de control en tiempo


discreto. Segunda edición, Pearson Prentice-Hall.

Ollero, A. (2007). Robótica; manipuladores y


robots móviles. Barcelona, España: Marcombo
S.A.

Ulloa, G. (2008). ¿Qué pasa con la ingeniería en


Colombia ?. Tecno-Tips, Universidad ICESI,
Cali, Colombia.
[Link]
15/%c2%bfque-pasa-con-la-ingenieria-en-
colombia/

UNIVALLE (Universidad del Valle). (2003).


Semillero de robótica.
[Link]
php?id=1089

74

También podría gustarte