View
3
Download
0
Category
Preview:
Citation preview
�
�
Diseño, Instalación y Calibración de un sensor laser tridimensional para un robot
móvil.
Carolina Córdoba Uribe
Universidad de los Andes Facultad de Ingeniería
Departamento de Ingeniería Mecánica Bogotá, Colombia
Junio de 2010
�
�
Diseño,�Instalación y Calibración de un sensor laser tridimensional para un robot
móvil.
Por
Carolina Córdoba Uribe
Proyecto de Grado presentado a la Universidad de Los Andes
para el cumplimiento del requisito de grado para el Titulo de
Ingeniera Mecánica
Profesor Asesor
Carlos Francisco Rodríguez
Dr. Eng. Mec
Departamento de Ingeniería Mecánica
Universidad de Los Andes
Universidad de los Andes Facultad de Ingeniería
Departamento de Ingeniería Mecánica Bogotá, Colombia
Junio de 2010
© Carolina Córdoba Uribe, 2010
��
�
DECLARACION DEL AUTOR
Por la presente, declaro que soy la autora única de este trabajo de grado. Esta es una copia
fiel del documento, incluyendo revisiones finales por parte del asesor de proyecto de grado.
Entiendo que mi trabajo de tesis puede ser divulgado y publicado por medios electrónicos y
físicos por parte de la Universidad de Los Andes.
��
�
AGRADECIMIENTOS
A Carlos Francisco Rodríguez, mi asesor, por guiarme en este proceso, su gran apoyo e
interés y por hacerme posible trabajar en un proyecto dentro del área de la Ingeniería
Mecánica que más me apasiona.
A Fernando de la Rosa por sus enseñanzas e interés y todos valiosos aportes a mi proceso
de aprendizaje durante el trabajo.
A mis padres, Luis Fernando Córdoba y Olga Cristina Uribe porque gracias a ellos todo
este proceso fue posible.
A mi hermano Andrés Córdoba porque ha sido mi ejemplo a seguir en todo mi desarrollo
académico y me ha permitido aprender a su lado.
A Jorge Eduardo Acuña porque me ha enseñado a aprender de otra manera y sacarle el
mayor gusto a las cosas, por su compañía, motivación y enseñanzas.
Al laboratorio Colibrí de La Universidad de Los Andes y sus integrantes.
A todas las personas que aportaron al proyecto de forma directa o indirecta.
A todos ustedes porque creyeron en mí y me apoyaron.
��
�
CONTENIDO
�
DECLARACION DEL AUTOR��������������������������������������������������� �����������������������������������������������������
AGRADECIMIENTOS������������������������������������������������������������������������������������������������������ ���������������
LISTA DE FIGURAS������������������������������������������������������������������������������������������������������������������������
LISTA DE TABLAS��������������������������������������������������� ����������������������������������������������������������������������
LISTA DE ANEXOS��������������������������������������������������� ����������������������������������������������������������������������
RESUMEN������������������������������������������������������������������������������������������������������ ���������������������������������
1.� INTRODUCCION������������������������������������������������������������������������������������������������������ �������������
2.� OBJETIVOS�����������������������������������������������������������������������������������������������������������������������������
2.1.� Objetivo general��������������������������������������������������� �������������������������������������������������������������
2.2.� Objetivos específicos���������������������������������������������������������������������������������������������������������
3.� MARCO TEORICO������������������������������������������������������������������������������������������������������������������
3.1.� Principios de la Robótica���������������������������������������������������������������������������������������������������
3.1.1.� Terminología��������������������������������������������������� ����������������������������������������������������������
3.2.� Robótica������������������������������������������������������������������������������������������������������ ����������������������
3.2.1.� Grados de Libertad – DOF����������������������������������������������������������������������������������������
3.3.� Fuentes de Potencia de un Robot��������������������������������������������������� �����������������������������������
3.3.1.� Servo Motores������������������������������������������������������������������������������������������������������ �����
3.4.� Robot Pioneer P3 - DX [7]�������������������������������������������������������������������������������������������������
3.4.1.� Comunicaciones���������������������������������������������������������������������������������������������������������
3.5.� Sensores������������������������������������������������������������������������������������������������������ ���������������������
3.5.1.� Sensor Laser Hokuyo URG����������������������������������������������������������������������������������������
3.5.2.� Sensor laser tridimensional����������������������������������������������������������������������������������������
3.6.� Navegación visual del Robot Pioneer y Algoritmos de localización������������������������������������
4.� MÉTODOLOGÍA��������������������������������������������������� �����������������������������������������������������������������
4.1.� Diseño y Construcción del Sensor laser tridimensional�����������������������������������������������������
4.1.1.� Sensor laser tridimensional���������������������������������������������������������������������������������������
4.1.2.� Diseño y Construcción de una plataforma de un grado de Libertad�����������������������������
4.2.� Control del sensor laser tridimensional��������������������������������������������������� ���������������������������
4.2.1.� Control de un Servo���������������������������������������������������������������������������������������������������
��
�
4.3.� Calibración del sensor Laser tridimensional�����������������������������������������������������������������������
4.3.1.� Análisis de las mediciones sensoriales�����������������������������������������������������������������������
4.4.� Caracterización de Obstáculos������������������������������������������������������������������������������������������
4.4.1.� Análisis de puntos sobre el plano������������������������������������������������������������������������������
4.4.2.� Puntos Obtenidos para diferentes tipos de Obstáculos�������������������������������������������������
5.� RESULTADOS��������������������������������������������������� ���������������������������������������������������������������������
5.1.� Sensor laser tridimensional������������������������������������������������������������������������������������������������
5.2.� Control de un Servo������������������������������������������������������������������������������������������������������ �����
5.3.� Calibración del sensor laser tridimensional������������������������������������������������������������������������
5.3.1.� Error Porcentual y Propagación de Incertidumbre�������������������������������������������������������
5.4.� Caracterización de obstáculos��������������������������������������������������� �����������������������������������������
5.4.1.� Análisis de puntos sobre el plano – caracterización del piso����������������������������������������
5.4.2.� Caracterización de otros obstáculos��������������������������������������������������� �������������������������
6.� TRABAJOS FUTUROS������������������������������������������������������������������������������������������������������������
6.1.� Localización������������������������������������������������������������������������������������������������������ ����������������
6.2.� Mapas de Navegación��������������������������������������������������������������������������������������������������������
7.� CONCLUSIONES������������������������������������������������������������������������������������������������������ �������������
8.� BIBLIOGRAFIA������������������������������������������������������������������������������������������������������ ����������������
��
�
LISTA DE FIGURAS
�
Figura 1: Brazos Robóticos Programables.����������������������������������������������������������������������������������������
Figura 2: Robots de Nueva generación para exploración de espacios o juegos.����������������������������������
Figura 3: Robots Humanoides para realizar tareas específicas.��������������������������������������������������� ��������
Figura 4: Servomotores para aplicaciones de Robótica Móvil. [5]������������������������������������������������������
Figura 5: Conexiones de los servomotores. [5]����������������������������������������������������������������������������������
Figura 6: Pulsos de onda cuadrada para el control de un servomotor. [6]�������������������������������������������
Figura 7: Robot P3 DX de la empresa Mobile Robots������������������������������������������������������������������������
Figura 8: Robots de la empresa Mobile Robots. [7]���������������������������������������������������������������������������
Figura 9: Esquema de la ubicación de los componentes del robot P3 DX. [7]������������������������������������
Figura 10: Ejemplo de un sensor de Posición (sonares). [8]��������������������������������������������������������������
Figura 11: Ejemplo de un sensor de rango (Laser). [8]����������������������������������������������������������������������
Figura 12: Ejemplo de un sensor de proximidad (cámara). [8]��������������������������������������������������� ��������
Figura 13: Laser Hokuyo URG-04LX, dimensiones. [9]��������������������������������������������������������������������
Figura 14: Rango de escaneo del laser de barrido. [9]������������������������������������������������������������������������
Figura 15: Sensor laser tridimensional construido a partir de un sensor laser de barrido horizontal. [11]���������������������������������������������������������������������������������������������������������������������������������������������������
Figura 16: Sensor laser tridimensional construido a partir de un laser de barrido montado sobre un eje móvil. [11]���������������������������������������������������������������������������������������������������������������������������������
Figura 17: Diseños preliminares de la plataforma de un grado de libertad������������������������������������������
Figura 18: Diseño de plataforma tipo columpio��������������������������������������������������� ������������������������������
Figura 19: Dimensiones de la plataforma que garantizan que las paredes de la plataforma no intervengan en los datos sensoriales.�������������������������������������������������������������������������������������������������
Figura 20: Circuito controlador servo – serial Polulu. [21]��������������������������������������������������� ��������������
Figura 21: Esquema de calibración del sensor laser tridimensional. [10]��������������������������������������������
Figura 22: Sistemas generalizado de coordenadas sobre el Robot�����������������������������������������������������
Figura 23: Sistema de coordenadas del sensor laser tridimensional���������������������������������������������������
Figura 24: Rango total y rango máximo de los datos sensoriales en el barrido horizontal�������������������
Figura 25: Configuración del Sensor laser tridimensional sobre el Robot. Esquema para la determinación de distancias máximas según el rango del laser Hokuyo URG-04LX.�������������������������
Figura 26: Configuración del Sensor laser tridimensional sobre el Robot. Esquema para la determinación de distancias verticales.����������������������������������������������������������������������������������������������
Figura 27: Esquema de corrección de distancias del sensor laser tridimensional diseñado.�����������������
Figura 28: Sensor laser tridimensional instalado sobre el robot����������������������������������������������������������
Figura 29: Dimensiones finales de la plataforma que garantizan que las paredes de la plataforma no intervengan en los datos sensoriales.�������������������������������������������������������������������������������������������������
��
�
LISTA DE GRAFICAS
�
Gráfica 1: Escaneo tridimensional completo sobre una pared a 0.5 m������������������������������������������������
Gráfica 2: Nubes de puntos teóricos para diferentes distancias de calibración x y ángulos de inclinación de 0, 15 y 30 grados.��������������������������������������������������� ����������������������������������������������������
Gráfica 3: Nubes de puntos teóricos para diferentes distancias de calibración x y ángulos de inclinación de 0, 15 y 30 grados��������������������������������������������������������������������������������������������������������
Gráfica 4: Incertidumbre de z en función de la distancia de calibración��������������������������������������������
Gráfica 5: Incertidumbre de z en función del ángulo de inclinación��������������������������������������������������
Gráfica 6: Error porcentual de z en función de la distancia de calibración������������������������������������������
Gráfica 7: Error porcentual de z en función de la del ángulo de inclinación���������������������������������������
Gráfica 8: Nube de puntos del piso con el robot quieto y el sensor laser tridimensional a diferentes ángulos de inclinación�����������������������������������������������������������������������������������������������������������������������
Gráfica 9: Nube de puntos del piso con el robot en movimiento y el sensor laser tridimensional en un ángulo d de inclinación constante.������������������������������������������������������������������������������������������������
Gráfica 10: Silla vista desde atrás con el Robot quieto a 2 metros.�����������������������������������������������������
Gráfica 11: Escalera vista desde atrás con el Robot quieto a 2 metros del primer escalón.������������������
Gráfica 12: Hueco sobre el piso visto por el robot al realizar un escaneo sobre el piso.����������������������
Gráfica 13: Sobresalto sobre el piso visto por el robot al realizar un escaneo sobre el piso.����������������
��
�
LISTA DE TABLAS
�
Tabla 1: Características del fabricante del sensor laser de barrido [9]�������������������������������������������������
Tabla 2: Características físicas y mecánicas de la plataforma de un grado de libertad������������������������
Tabla 3: Características del servomotor seleccionado������������������������������������������������������������������������
Tabla 4: Valores para la programación del servo motor para cumplir con las propiedades de movimiento establecidas para la plataforma de un grado de libertad.�������������������������������������������������
Tabla 5: Calculo de incertidumbre y error porcentual para un ángulo d inclinación de 0 grados, para cada una de las distancia de calibración.��������������������������������������������������� ����������������������������������������
Tabla 6: Calculo de incertidumbre y error porcentual para un ángulo de inclinación de 15 grados, para cada una de las distancia de calibración.��������������������������������������������������� ��������������������������������
Tabla 7: Calculo de incertidumbre y error porcentual para un ángulo de inclinación de 30 grados, para cada una de las distancia de calibración.��������������������������������������������������� ��������������������������������
��
�
LISTA DE ANEXOS
�
Anexo 1: Algoritmo en Mathemática para el procesamiento de datos, calibración del sensor laser tridimensional y análisis de incertidumbre.������������������������������������������������������������������������������������������Anexo 2: Algoritmo en C++ para el control del servo mediante una conexión serial a un computador��������������������������������������������������� ������������������������������������������������������������������������������������������������������ ��
�
�
RESUMEN
Para que un robot pueda navegar de forma autónoma dentro de un entorno, necesita saber
en cada momento con exactitud su posición dentro de este, de ahí la necesidad de la
localización. Este un problema clásico dentro del área de la robótica móvil, el robot debe
poder estimar de forma autónoma su posición dentro del mundo, apoyándose solo en la
información de sus lecturas sensoriales, e información del entorno que recibe en forma de
un mapa de puntos. Este trabajo presenta la investigación y el procedimiento llevado a
cabo para el diseño y montaje de un sensor laser tridimensional al Robot P3DX el cual
permite obtener lecturas sensoriales a partir de las cuales es posible para el robot navegar
por un entorno con obstáculos. La metodología llevada a cabo durante el proyecto se
dividió en una serie de etapas: 1) Diseño y Construcción del sensor laser tridimensional, 2)
Control del sensor laser tridimensional, 3) Calibración del sensor laser tridimensional, 4)
Caracterización de obstáculos a partir de mediciones obtenidas con el sensor laser
tridimensional. El documento presenta la investigación bibliográfica realizada para la
delimitación del problema, el diseño mecánico de la plataforma de un grado de libertad
donde fue instalado el laser de barrido horizontal para la obtención de un laser
tridimensional y los resultados experimentales obtenidos al realizar pruebas de calibración
y caracterización con el sensor laser tridimensional integrado al robot.
Palabras clave: Robot, sensor laser, servomotor, control, navegación autónoma.
��
�
1. INTRODUCCION
Tradicionalmente, la robótica móvil se preocupaba por diseñar sistemas autónomos que
cumplieran con tareas predeterminadas, de esta forma se generaban trayectorias que los
robots seguían y solo podían operar bajo estas condiciones. Sin embargo, actualmente el
posicionamiento autónomo, la navegación, la detección de obstáculos constituyen las tareas
más importantes en el diseño de robots móviles. Es de gran importancia que el mismo robot
conozca su posición con respecto al mundo, con el fin de fijarse una trayectoria a medida
que avanza por un terreno para alcanzar una posición final deseada. Si un robot no conoce
su posición exacta al comenzar la trayectoria y no tiene un sistema que le permita
identificar los objetos u obstáculos a lo largo de la trayectoria, se enfrentará a problemas
para alcanzar su destino.
Los sensores, son los dispositivos que permiten a un robot percibir su entorno, un sensor es
un transductor que convierte algún fenómeno físico en señales eléctricas que el micro-
procesador del robot puede leer. Existe una amplia gama de sensores y actuadores
utilizados en robótica, creando en sí mismos un campo de investigación de gran interés. Los
sensores laser se utilizan en la detección de obstáculos, debido a que son los que permiten
mayor seguridad y los que proporcionan resultados más precisos. Normalmente, estos
sensores funcionan mediante un barrido del emisor al emitir un haz de laser a lo largo del
entorno con el que interactúa el robot. El receptor recoge los ecos de las distintas posiciones
del barrido midiendo el tiempo de incidencia para cada ángulo, a partir de estos datos se
puede conocer la distancia a la que se encuentran los objetos.
En este proyecto de grado se propone la instalación de un laser de barrido en una
plataforma de un grado de libertad sobre un robot móvil para facilitar la navegación
autónoma de este. El laser de barrido funciona mediante la propagación del haz de laser
emitido por un laser puntual. Mediante un espejo que se mueve a cierta velocidad, el haz
realiza un barrido de 240 grados, sobre un plano. Si el laser es instalado horizontalmente,
entonces permite al robot identificar objetos a la altura a la que se encuentra instalado. Sin
���
�
embargo en el proyecto se busca aumentar el rango de reconocimiento del laser, por lo
tanto, se integrará el laser al robot móvil mediante una plataforma de un grado de libertad
que permita realizar un barrido en la dirección perpendicular al barrido del laser. De esta
forma se obtiene un dispositivo de visión de adquisición tridimensional.
El laser instalado en el robot como mecanismo visual para la identificación de objetos a
distancia, permite realizar mediciones de las distancias entre el robot y los obstáculos a
diferentes ángulos, lo que integrado con una programación adecuada permite al robot
navegar por el ambiente de forma autónoma tomando decisiones a cerca de los obstáculos
que encuentra en su camino.
Durante la investigación se buscaba encontrar las distancias máximas y mínimas a las que
el laser puede reconocer objetos horizontal y verticalmente con el fin de que el robot pueda
esquivarlos o pasar por debajo de ellos sin chocarse. Adicionalmente se encontró un
método de calibración generalizada y un algoritmo para el cálculo exacto de la posición de
un objeto respecto al robot a partir de datos experimentales obtenidos de las mediciones del
laser de barrido.
Finalmente se realizaron una serie de pruebas de caracterización de obstáculos mediante las
cuales se logro obtener el perfil en 3D de diferentes objetos que pueden representar un
obstáculo para el robot en un ambiente común. Entre estos objetos se caracterizaron, sillas,
escaleras, huecos, sobresaltos en el piso. Al conocer la geometría exacta de estos objetos y
la distancia a la que se encuentran del robot en cualquier situación permite darle órdenes a
priori al robot de forma tal que al reconocer el obstáculo decida si debe pasar por debajo
por encima o esquivar el obstáculo.
Por otra parte, se han estudiado diversos métodos para la generación autónoma de mapas y
de algoritmos de navegación autónoma para el cálculo adecuado de distancias, lo que abre
puertas a nuevas investigaciones sobre lo logrado en este proyecto.
En este trabajo se describe la construcción del sensor laser tridimensional, el sistema de
control del sensor independiente del Robot, la calibración del sensor y la caracterización de
obstáculos. El proyecto se realizó en los laboratorios de La Universidad de Los Andes con
���
�
un Robot Pioneer 3 [1] y un laser Hokuyo, Modelo URG-04LX de barrido de 240º [2].
Estos equipos hacen parte del laboratorio de Visualización Inmersiva y Sistemas
Autónomos donde participa el grupo GIAP. Esto permite la utilización de los equipos para
el desarrollo de diversas aplicaciones multidisciplinarias.
Los capítulos siguientes muestran los objetivos generales y específicos del proyecto
(Capitulo2), el marco teórico y los antecedentes relativos a la investigación (Capitulo 3), La
metodología y procedimientos llevados a cabo para el desarrollo del proyecto (Capitulo4),
los resultados obtenidos durante cada una de las etapas del proyecto junto con su análisis
(Capitulo 5) y Finalmente las conclusiones obtenidas a partir del desarrollo del proyecto.
(Capitulo 6).
���
�
2. OBJETIVOS
Los objetivos logrados a lo largo de la realización del proyecto se listan a continuación:
2.1. Objetivo general
Habilitar un sensor laser tridimensional como sistema de visión en un robot móvil, que
permita a este desenvolverse de forma autónoma en cualquier entorno.
2.2. Objetivos específicos
Para cumplir el objetivo general del proyecto se propusieron una serie de objetivos
específicos que permiten generar una línea organizada del desarrollo del mismo:
• Estudiar métodos para construir un sensor láser tridimensional a partir de un sensor
láser de barrido horizontal.
• Construir una plataforma de un grado de libertad (rotación vertical) para la
instalación de un laser de barrido horizontal.
• Integrar el sensor láser tridimensional con el robot móvil, como mecanismo visual
para la identificación de objetos a distancia en diferentes planos.
• Obtener un método de calibración del laser sobre el robot a partir de las distancias
máximas y mínimas de reconocimiento de objetos en cada dirección.
• Hacer reconocimiento de espacios con el sensor laser.
• Obtener conclusiones a partir de del reconocimiento de espacios con el laser
tridimensional integrado al Robot.
���
�
3. MARCO TEORICO
En este capítulo del trabajo se realiza una introducción a una serie de temas y conceptos
fundamentales para el desarrollo del proyecto de grado. Esta investigación bibliográfica
establece las bases sobre las cuales se lleva a cabo el proyecto. Se desarrollan tanto temas
teóricos como experimentales relevantes a la hora de realizar cualquiera de las etapas del
proyecto.
3.1. Principios de la Robótica
El termino Robot tiene origen en la palabra checa “Robota” la cual significa trabajador
forzado. Por siglos el ser humano ha construido maquinas que imitan las partes del cuerpo
humano. Los antiguos egipcios unieron brazos mecánicos a las estatuas de sus dioses. Los
griegos construyeron estatuas que operaban con sistemas hidráulicos. En Europa durante
los siglos XVII y XVIII fueron construidos muñecos mecánicos que tenían características
de robots. Todos estos modelos fueron construidos con el único objeto de entretener a reyes
y multitudes. [1]
Sin embargo, actualmente los robots son usados para llevar a cabo tareas difíciles y
repetitivas que son casi imposibles o peligrosas para ser desarrolladas por el ser humano.
En particular, robots articulados (similares en capacidad de movimiento a un brazo
humano) son los más usados en la industria de manufactura, en una gran variedad de
aplicaciones.
Los principios de la Robótica pueden ubicarse 350 años antes de Cristo cuando el
matemático griego, Arquitas construye un pájaro mecánico llamado “La Paloma”, que es
propulsada por vapor. En el año 322 A.C. El filósofo griego Aristóteles escribe: “Si cada
herramienta, cuando se le ordene, o incluso de su propio acuerdo, puede hacer el trabajo
���
�
que le corresponde... entonces no habría necesidad ni de los aprendices para los maestros o
de los esclavos para los señores.”. Años más tarde en 1495 Leonardo Da Vinci diseño un
dispositivo mecánico que se ve como un caballero armado. Los mecanismos de adentro del
“Robot de Leonardo” están diseñados para hacer la jugada de caballo como si no
hubiera una persona real en su interior. Durante los siglos 15, 16, 17 y 18 se realizaron
múltiples construcciones como relojes, cajas de música autómatas que simulaban el sonido
de un instrumento, telares automáticos y barcos autómatas que simulan la navegación. El
control por realimentación, el desarrollo de herramientas especializadas y la división del
trabajo en tareas más pequeñas que pudieran realizar obreros o máquinas fueron
ingredientes esenciales en la automatización de las fábricas en el siglo XVIII. [1]
A medida que mejoraba la tecnología se desarrollaron máquinas especializadas para tareas
como poner tapones a las botellas o verter caucho líquido en moldes para neumáticos. Sin
embargo, ninguna de estas máquinas tenía la versatilidad del brazo humano, y no podía
alcanzar objetos alejados y ponerlos en la posición deseada. En el siglo 20 se empiezan a
desarrollar nuevas tecnologías en el campo de la robótica entre ellas los brazos robóticos, el
desarrollo del brazo artificial multi articulado, o manipulador, llevó al moderno robot. El
inventor estadounidense George Devol desarrolló en 1954 un brazo primitivo que se podía
programar para realizar tareas específicas. [1]
Figura 1: Brazos Robóticos Programables.
���
�
En el año 1961 Unimate, la compañía de José Engleberger y George Devoe, construyó el
primer robot industrial, el puma (Brazo manipulador universal programable). En 1966 El
Instituto de Investigación de Stanford, Shakey crea el primer robot móvil que responde a
sus propias acciones. En 1969 Víctor Scheinman crea el Brazo de Stanford, el brazo se
convierte en un estándar y aun hoy influye en el diseño de brazos robóticos en. En la
década de 1970 los robots se difundieron en muchos otros sectores industriales, desde la
industria mecánica a la electrónica, tanto así que ya se emplean en las más variadas tareas.
En 1975, nuevamente el ingeniero mecánico estadounidense Victor Scheinman, cuando
estudiaba la carrera en la Universidad de Stanford, en California, desarrolló un manipulador
polivalente realmente flexible conocido como Brazo Manipulador Universal Programable
(PUMA, siglas en inglés). El PUMA era capaz de mover un objeto y ponerlo en cualquier
orientación en un lugar deseado que estuviera a su alcance. El concepto básico multi
articulado del PUMA es la base de la mayoría de los robots actuales.En 1981 Takeo
Kanade construye el brazo de accionamiento directo, el primero con motores instalados
directamente en las articulaciones del brazo, esto lo hace más rápido y mucho más
preciso. En 1989 un robot andante llamado Genghis es presentado por el Grupo de Robots
en el MIT. [1]
Figura 2: Robots de Nueva generación para exploración de espacios o juegos.
���
�
En los años 90 se empiezan a desarrollar robots que simulan el cuerpo humano, llamados
humanoides. Los robots adquieren un importante rol en la exploración de territorios
desconocidos, en el 2000 Honda lanza un nuevo robot humanoide ASIMO. A partir de este
momento Honda empieza una carrera por lograr una simulación más adecuada de los
movimientos de las articulaciones del ser humano, cada cierto tiempo comercializan un
robot más autónomo y con movimientos más naturales. La investigación en este campo ha
crecido mucho en los últimos años, las aplicaciones de ahora van mucho más allá de la
industria, ya que los nuevos robots humanoides están siendo empleados en asistencia a
minusválidos, en intervenciones de los primeros auxilios en lugares inaccesibles o en la
eventualidad de catástrofes ambientales. [1]
Figura 3: Robots Humanoides para realizar tareas específicas.
3.1.1. Terminología
• Robot: Un dispositivo electromecánico con grados de libertad múltiples (DOF), que
es programable para lograr una variedad de tareas.
• DOF (grados de libertad): el número movimientos independientes que un
dispositivo o mecanismo puede hacer.
���
�
• Área de trabajo: Es el espacio dentro del cual el robot se desenvuelve, constituye el
volumen de espacio que el robot puede llegar a alcanzar utilizando todos sus
sensores.
• Sensor: Lee variables en el movimiento de robot para el empleo en el control.
Posición: La posición (ubicación) (constante) de translación de algo.
• Orientación: La posición (ubicación) rotatoria (de ángulo) de algo.
• Eslabón: Un pedazo rígido de material que une (conecta) uniones en un robot.
• Unión: El dispositivo que permite al movimiento relativo entre dos eslabones en un
robot.
• Cinemática: El estudio de movimiento sin tener en cuenta las fuerzas que actúan.
• Dinámica: El estudio de movimiento con respeto a fuerzas. Actuador: Proporciona
la fuerza para el movimiento de robot. Sensor: Lee variables en el movimiento de
robot para el empleo en el control.
• Velocidad: la distancia por unidad de tiempo en la cual el robot puede moverse, por
lo general especificada en pulgadas por segundo o metros por segundo. La
velocidad por lo general es especificada en una carga específica. La velocidad real
puede variar según el peso llevado por el robot.
• Exactitud: la capacidad del robot de ubicarse a la posición (ubicación) deseada con
el error mínimo (por lo general 25 mm).
• Repetitividad: la capacidad de un robot para repetidamente ubicarse cuando se le
pide realizar una tarea múltiples veces.
3.2. Robótica
La Robótica es la ciencia o rama de la tecnología, que estudia el diseño y construcción de
máquinas capaces de desempeñar tareas realizadas por el ser humano o que requieren del
uso de inteligencia. Estas maquinas programados para realizar autónomamente diferentes
tipos de actividades son llamadas Robots y se describen como manipuladores automáticos
��
�
controlados, reprogramables capaces de posicionar y orientar piezas, dispositivos
especiales. Los Robots más utilizados en la industria tienen la forma de uno o varios brazos
terminados en una muñeca. [2]
El brazo robótico es probablemente el robot más complejo matemáticamente ya que tiene
muchas articulaciones con diferentes grados de libertad, a continuación se trataran algunos
conceptos básicos de la construcción de un brazo robótico ya que estos se tendrán en cuenta
para la construcción de la plataforma de un grado de libertad. [2]
3.2.1. Grados de Libertad – DOF
Un cuerpo aislado en el espacio puede desplazarse libremente en un movimiento que se
puede descomponer en 3 rotaciones y 3 traslaciones geométricas independientes
(traslaciones y rotaciones respecto de ejes fijos en las 3 direcciones de una base referida a
nuestro espacio de tres dimensiones). [3]
Para un cuerpo unido mecánicamente a otros cuerpos (mediante pares cinemáticas), algunos
de estos movimientos elementales desaparecen. Se conocen como grados de libertad los
movimientos independientes que permanecen.
Más concretamente, los grados de libertad son el número mínimo de velocidades
generalizadas independientes necesarias para definir el estado cinemático de
un mecanismo o sistema mecánico. El número de grados de libertad coincide con el número
de ecuaciones necesarias para describir el movimiento. En caso de ser un
sistema holónomo, coinciden los grados de libertad con las coordenadas independientes. [3]
En mecánica clásica y lagrangiana, la dimensión d del espacio de configuración es igual a
dos veces el número de grados de libertad GL, d = 2·GL.
��
�
Los grados de libertad, o DOF, es un término muy importante a la hora de diseñar una
plataforma robótica. Hablar de grados de libertad equivale al número y tipo de movimientos
del manipulador. Cada grado de libertad es una articulación en el brazo, un lugar donde
puede doblarse o girar. Normalmente, puede identificarse el número de grados de libertad
por el número de actuadores en el brazo del robot. Cada grado se ve reflejado en una
articulación, comúnmente los movimientos en las articulaciones se implementan por medio
de servomotores. [3]
El codo, es una articulación de un grado de libertad que permite el movimiento vertical
dentro de un rango menor a 180 grados, esta articulación puede desarrollarse con un
servomotor según el peso que este debe levantar y el torque que realiza. Este tipo de
movimiento y de articulación es el que se utilizara en el proyecto para el diseño de la
plataforma de un grado de libertad donde se instalara el laser de barrido horizontal.
Mediante el movimiento de la plataforma se logra obtener un sensor laser tridimensional.
3.3. Fuentes de Potencia de un Robot
Un elemento importante de un robot es el sistema de Potencia. Este suministra el poder, que
permite al robot moverse. El funcionamiento dinámico de un robot principalmente depende
del tipo de fuente de poder. Los diferentes tipos de fuentes de poder incluyen fuentes
hidráulicas, eléctricas y neumáticas, cada tipo es utilizado para diferentes aplicaciones
dependiendo de la labor que realiza el robot y la fuerza a la cual se encuentra sujeto En el
caso de robótica móvil de investigación donde comúnmente se utilizan robots pequeños que
necesitan altos grados de precisión se utilizan motores eléctricos que permiten exactitud y
repetitividad en el movimiento. Los servo motores son motores ampliamente utilizados en
al campo de la robótica móvil. [4]
�
3.3.1. Servo Moto
Los servos son un tipo e
posicionarse de forma inm
Para su funcionamiento,
movimiento a realizar Est
reducción de engranaje y
dimensiones. Un servo es
motor eléctrico, unos engra
salida para indicar la posi
margen de operación de
utilizados para control de p
combustible, etc., para m
robótica. [5]
Fi
Estos servos reciben señal
que va a tierra GND (negr
requiere (amarilla). La ali
voltios. [5]
res
especial de motor que se caracterizan por
mediata en cualquier posición dentro de su r
el servo espera un tren de pulsos que co
tán generalmente formados por un amplific
y la realimentación, todo en un misma
un sistema compacto que incorpora un circ
anajes, un brazo que se mueve, y un potenció
ición del brazo. El resultado es un servo d
180° aproximadamente. Comúnmente los
posición de alerones, timón, dirección (en auto
modelos a escala, adicionalmente se han v
igura 4: Servomotores para aplicaciones de Robótica Móvil. [5]
por tres cables: alimentación para el motor
ro) y una señal controladora que determina
mentación de estos servos es, normalmente
���
su capacidad para
rango de operación.
orresponden con el
cador, un motor, la
caja de pequeñas
cuito electrónico, un
ómetro ubicado a la
de posición con un
servo motores son
os), alimentación de
vuelto populares en
Vcc(Rojo), el cable
a la posición que se
e, de entre 4,8 y 6
���
�
Figura 5: Conexiones de los servomotores. [5]
Estos colores de identificación y el orden de las conexiones dependen del fabricante del
servo. Es importante identificar las conexiones ya que un voltaje de polaridad contraria
podría dañar el servo. Los servomotores tienen la característica de trabajar dentro de un
rango de ángulo determinado, por lo general de 0 a 180 grados lo cual permite un control
preciso para aplicaciones que requieran de movimientos finos. [5]
El estándar de la señal controladora para todos los servos, es un pulso de onda cuadrada de
1,5 milisegundos que se repite a un ritmo entre 10 a 22 ms. Mientras el pulso se mantenga
en ese ancho, el servo se ubicará en la posición central de su recorrido. Si el ancho de pulso
disminuye, el servo se mueve de manera proporcional hacia un lado. Si el ancho de pulso
aumenta, el servo gira hacia el otro lado. Generalmente el rango de giro de un servo de
éstos cubre entre 60° y 180° de la circunferencia total. [6]
���
�
Figura 6: Pulsos de onda cuadrada para el control de un servomotor. [6]
Si el intervalo entre pulso y pulso es inferior al mínimo, puede interferir con la
temporización interna del servo, causando un zumbido, y la vibración del brazo de salida.
Si es mayor que el máximo, entonces el servo pasará a estado dormido, entre pulsos. Esto
provoca que se mueva con intervalos pequeños. [6]
3.3.1.1. Características de un servo.
A la hora de elegir un servo para un proyecto de robótica específico es importante tener en
cuenta las siguientes características [6]:
Fuerza. (Torque): La fuerza de un servo se mide habitualmente en kilos x cm. Los
catálogos por abreviar hablan de Kg directamente, pero se están refiriendo al par, al torque.
���
�
Peso: Es simplemente lo que pesa el servo. Según el peso se clasifican en micro servos,
mini servos, servos estándar, servos extra grandes, si bien estas clasificaciones pueden
cambiar con el proveedor. Existen servos desde varios gramos hasta varios cientos.
Velocidad: Se refiere a la velocidad máxima con la que se mueve el eje. Generalmente los
servos tienen velocidades entre 7 y 25 milésimas de segundo para girar el eje 60º.
Analógico/digital: Ambos tipos son 100 % compatibles con un receptor estándar, los
digitales son más rápidos y precisos, pero más costosos.
Engranajes: Los engranajes pueden ser de distintos materiales plásticos, fibra de carbono,
acero, titanio, entre otros. Cada tipo con sus ventajas e inconvenientes.
3.4. Robot Pioneer P3 - DX [7]
Para el caso de investigación de nuevas tecnologías móviles, se utilizan plataformas
sencillas en las cuales pueden realizarse diferentes tipos de experimentación en diversos
campos de la robótica con el fin de mejorar continuamente los sistemas eléctricos y
mecánicos, las aplicaciones de control y las interfaces que los componen.
La empresa Mobile Robots, fue fundada en 1995 con la creación del primer robot Pioneer,
hasta evolucionar a lo que es ahora. Hoy, la empresa maneja una amplia gama de robots
que varían en funcionalidad y precio. Sin embargo todos comparten una arquitectura común
con una misma plataforma de programación lo que los hace ampliamente compatibles entre
sí. Adicionalmente la empresa ofrece algunas interfaces gratuitas para la programación de
tareas simples en el robot. [7].
���
�
Figura 7: Robot P3 DX de la empresa Mobile Robots
Las Plataformas MOBILEROBOTS cumplen los estándares de los robots móviles ya que
contienen todos los componentes básicos para la detección y la navegación en un entorno
real. Estas plataformas se han convertido en referencias importantes para la investigación
en robótica. Las plataformas tienen una amplia gama de aplicaciones de control mediante
software. El desarrollo de software incluye la interface Advanced Robotics for Aplications
(ARIA) y ARNetworking, la cual se basa en lenguajes y librerías C + +, Java y Python. [7]
El Pioneer 3-DX es un robot móvil inteligente totalmente autónomo que salió al mercado
en el año 2004. El Robot es pequeño y por lo tanto se presta muy bien la navegación en
sitios estrechos y espacios desordenados. Con su servidor ARCOS (Software de cliente
MOBILEROBOTS), el Pioneer 3 es plenamente capaz de cartografiar su entorno. [7]
Figura 8: Robots de la empresa Mobile Robots. [7]
���
�
Posee un sistema de ruedas diferencial, controladas por motores DC reversibles. El sistema
de control de tracción es transparente manejado por el micro controlador y se tienen una
retroalimentación odométrica con encoders de precisión integradas al sistema, asociados a
las ruedas que permiten saber cuánto han girado estas. [7]
El manejo de potencia de las tres baterías que ofrecen hasta 252 W – h es controlado por el
micro controlador y ofrece una amplia variedad de interfaces de salida para conectar
periféricos adicionales. [7]
Este Robot está equipado con un conjunto de sensores que le permiten explorar con
flexibilidad su entorno, y actuadores que le permiten moverse. Dispone de una corona de 16
transductores de ultrasonido que rodean al robot (8 en la parte delantera y 8 en la parte
trasera), estos pueden ser utilizados para calcular distancias o detectar obstáculos cercanos.
[7]
Figura 9: Esquema de la ubicación de los componentes del robot P3 DX. [7]
Con la configuración básica de hardware el Pioneer 3-DX junto con el software de ARIA
puede realizar varias tarea tales como: Explorar aleatoriamente, navegar con el robot
controlado por teclas o joystick, planear caminos de navegación gradiente, desplegar un
mapa de las lecturas del sonar, localizarse usando el sonar, comunicar información de los
���
�
sensores y control relacionadas al sonar, la cámara y el laser, correr programas en C++,
probar actividades rápidamente. [7]
Adicionalmente el robot tiene la opción de expansión para usar el P3DX con otros
periféricos y adicionalmente tiene la posibilidad de aumentar la funcionalidad. El Robot
cuenta con múltiples salidas para conectar periféricos específicos como sonares, sensores o
giroscopios a través de puertos auxiliares que funcionan bajo es estándar RS232. [7]
3.4.1. Comunicaciones
Los Robots manejan la estructura cliente servidor. La plataforma robótica actúa como
servidor manejando las tareas de bajo nivel como control de velocidad y dirección de los
motores, la adquisición de datos de algunos sensores o el manejo del posicionamiento a
partir de la lectura de los encoders (decodificadores). Por otro lado se necesita un cliente
software corriendo en un computador que maneje las tareas de alto nivel, tales como la
generación de mapas, la navegación, la planeación de caminos, etc. Esta arquitectura tiene
la ventaja de que un cliente software puede cambiar transparentemente de robot servidor
siempre y cuando este preste los mismos servicios de hardware. Además puede haber varios
clientes controlando un mismo servidor dando paso a aplicaciones de inteligencia
distribuida. [7]
La comunicación entre el servidor en el micro controlador del robot y el cliente software se
hace a través de la conexión serial HOST en el robot. Existen múltiples formas de
comunicar un cliente software con el micro controlador a través de este puerto.
���
�
3.4.1.1. Plataforma de desarrollo ARIA
La comunicación del robot Pioneer P3Dx está basada en un microprocesador Renesas SH2
que está controlado por el software Advanced Robotics Control and Operations
(ARCOS).Posee un Además es posible la programación mediante la Plataforma ARIA. [7]
Tal como viene el P3-DX con el software de Aria permite:
• Explorar aleatoriamente
• Navegar con el robot controlado por teclas o joystick
• Planear Caminos con navegación gradiente
• Desplegar un mapa de las lecturas del sonar
• Localizarse usando el sonar
• Comunicar información de sensores y control relacionadas al sonar, el encoder
(decodificador) del motor , los controles del motor, entradas del usuario y
información de recarga de la batería
• Correr programas en C++
• Probar actividades rápidamente
• Simular los comportamientos con el simulador que acompaña el ambiente de
desarrollo.
Es preciso conocer la arquitectura de la plataforma de desarrollo Aria para poder entender
cómo es que funciona, y poder hacer uso de la misma y realizar modificaciones o adiciones
en los programas que controlan el robot. Aria está compuesta por diferentes librerías que
tienen una función específica para manejar la información del robot y sus sensores. Por
ejemplo, ArRobot es la clase principal de aria, en ella se encuentra toda la información
primaria del robot siendo controlado. Esta clase por si sola representa el robot estándar sin
ningún tipo de sensores, solo motores. ArRangeDevice es la clase que maneja todos los
dispositivos que envíen algún tipo de lectura como el laser y los sonares. Entre todas las
��
�
clases de aria existen otras que permiten al robot tomar accione concretas según la situación
en la que se encuentre y responder ante diferentes circunstancias. [7]
3.5. Sensores
Los Robots son agentes autónomos que por definición perciben su entorno a través de
sensores y actúan con él a través de actuadores. La capacidad del robot depende entonces
de su autonomía, de sus actuadores y por supuesto de sus sensores. Para un agente
autónomo es fundamental que este conozca el ambiente que lo rodea para interactuar
apropiadamente con él. Al conocer su entorno, el Robot puede tomar decisiones acerca de
cómo moverse por él sin chocar con obstáculos. Algo muy deseable también es que el robot
sea capaz de reconocer cambios en su entorno. Para lograr esto, el robot necesita de
sensores los cuales le permiten medir y cuantificar las distintas variables de su entorno.
La visión es la ventana al mundo de muchos organismos. Su función principal es reconocer
y localizar objetos en el ambiente mediante el procesamiento de las imágenes o
información sensorial de cualquier tipo. La visión computacional es el estudio de estos
procesos, para entenderlos y construir maquinas con capacidades similares. Un área muy
ligada a la de la visión computacional es el procesamiento de imágenes. El objetivo del
procesamiento de imágenes es mejorar la calidad de estas para su posterior utilización o
interpretación.
Los sensores facilitan la información necesaria para que los robots interpreten el mundo
real. Todo robot debe tener al menos un sensor con el que interactuar. La mayoría de los
sistemas robóticos incluyen al menos sensores de choques con obstáculos o bumpers y
algún sensor de guiado por infrarrojos o ultrasonidos. Los sensores avanzados,
generalmente son transductores que convierten una variable del entorno en energía
eléctrica procesable por el robot, además de detectar algo, son capaces de reportar una
��
�
medida de lo detectado, como puede ser un sensor de temperatura, o un medidor de
distancias ultrasónico por ejemplo. [8]
Los sensores pueden ser clasificados así:
• Sensores de posición: Se utilizan para controlar la posición de las
articulaciones. Información sobre la posición se vuelve a administrar el control de
los sistemas que se utilizan para determinar la precisión de posicionamiento. [8]
Figura 10: Ejemplo de un sensor de Posición (sonares). [8]
• Sensores de Rango: Rango de sensores miden las distancias de un punto de
referencia a otros puntos de importancia. Alcance de detección es logra por medio
de la televisión cámaras o transmisores de sonar y de receptores. [8]
Figura 11: Ejemplo de un sensor de rango (Laser). [8]
���
�
• Sensores de velocidad: Se utilizan para estimar la velocidad con la que un
manipulador se mueve. La velocidad es un parte importante del comportamiento
dinámico del manipulador. El tacómetro de CC es una de los dispositivos más
utilizados para la retroalimentación de información de velocidad. El tacómetro, que
es esencialmente un generador de corriente, proporciona una salida de voltaje
proporcional a la velocidad angular de la armadura. Esta información se introduce
de nuevo a la los controles para una adecuada regulación del movimiento. [8]
• Sensores de proximidad: Se utilizan para indicar el sentido y la presencia de un
objeto dentro de un determinado distancia sin contacto físico. Esto ayuda a prevenir
accidentes y daños a la el robot. [8]
Figura 12: Ejemplo de un sensor de proximidad (cámara). [8]
Una de las principales áreas de estudio en la robótica móvil es la de cómo proveer al robot
con la información necesaria para conocer su ubicación exacta respecto a un obstáculo con
respecto a un sistema generalizado de coordenadas. El sensor que se estudia en este trabajo
está dentro de la categoría de sensores activos, en la modalidad de adquisición de distancias
y profundidad.
���
�
3.5.1. Sensor Laser Hokuyo URG
Para los Robots es de gran importancia darse una idea de profundidad con el fin de saber la
posición exacta de un obstáculo, y conocer las dimensiones y forma del objeto. Los
sensores que utilizan los robots para lograr esto son conocidos como rangefinders. Estos
dispositivos permiten medir la distancia desde la posición del sensor a un punto objetivo.
El sensor laser utiliza el principio de reflexión, enviando un haz de luz al ambiente
esperando que este se refleje en una superficie y capturando dicha reflexión. El laser
constituye un instrumento de medición de distancia muy exacto, pudiendo medir distancias
de varios metros con errores de unos pocos milímetros. Adicionalmente la luz de laser
permite obtener una gran cantidad de mediciones por segundo (1 millón /seg).
El Hokuyo, Modelo URG-04LX. Es un sensor laser 2D de alta precisión que ofrece perfiles
del entorno. Se caracteriza por ser compacto y liviano conservando precisión y bajo
consumo de energía. Además tienen un amplio ángulo de barrido a alta resolución. Todas
estas características lo hacen un sensor ideal para el reconocimiento del medio ambiente en
aplicaciones de robótica, el sensor tiene un precio de $2400 dólares. [9]
Figura 13: Laser Hokuyo URG-04LX, dimensiones. [9]
���
�
El área de escaneo del laser URG es de un semicírculo de 240º, con un radio máximo de
4000 mm aunque este rango puede variar según el material de los objetos y tienen una
resolución angular de 0.36 º. Se alimenta por una fuente de poder de 5 voltios y 500 mA. Se
conecto por medio del puerto serial a una velocidad que va desde 19.2 Kbps hasta 750 Kbs.
[9]
Figura 14: Rango de escaneo del laser de barrido. [9]
A continuacion se presenta una tabla con las principales caracteristicas del laser presentadas
por el fabricante:
Tabla 1: Características del fabricante del sensor laser de barrido [9]
������ ����������������������������
���� ����� �
���� ����������� �������� ����������
������� �!����
�������� !��"
����� �������� ����
���������� ������������ ��
����� ������������������ ���
����������� ������������ ��� �
�������� ��
��� ��������������������� ��
�������������� ������ ��#$
������������������������ �
� � ����
���
�
El funcionamiento del sensor se basa en el envió de un rayo de luz de 785nm. Este rayo de
luz es modulado a 2 frecuencias distintas, cercanas a 50MHz. Posteriormente se calcula la
distancia al objeto basándose en la diferencia de fase de la onda emitida y la onda recibida,
mediante la siguiente ecuación [10]:
� � ��4��
Donde c es la velocidad de la luz, f la frecuencia de modulación y � la diferencia de fase, la
cual se obtienen haciendo un muestreo de la señal de salida y entrada a mas o menos el
doble de la frecuencia.
El barrido se realiza repitiendo esta operación múltiples veces mientras un motor gira una
serie de espejos de emisión y recepción ubicados al interior del laser que permiten
direccionar el haz de luz, de esta manera se obtiene un barrido completo de hasta 682
lecturas.
El laser es muy sensible a los materiales que componen los diferentes obstáculos que
reflejan la luz así como a las condiciones de luz del ambiente, por lo tanto se vuelve
indispensable realizar una calibración y caracterización de la interface laser – ambiente para
cada aplicación. [10]
3.5.2. Sensor laser tridimensional
Uno de los temas básicos de la robótica móvil es el mapeo automático de los ambientes.
Los robots móviles equipados con sensores láser 3D son muy adecuados para esta
tarea. Recientemente se han desarrollado varias técnicas para la adquisición de datos en tres
dimensiones con escáneres de barrido 2D. Además de hacer posible la navegación de robots
en el espacio 3D, otras aplicaciones interesantes surgen con la disponibilidad de
datos en 3D precisos y densos. Con estos datos, el robot podría ser utilizado para
���
�
crear mapas precisos de su entorno. Los sensores 3D para robots móviles son muy escasos
en el mercado. Por lo tanto la mayoría de investigaciones en el campo de la visión por laser
para la robótica móvil se han centrado en la construcción de sensores 3D a partir de la
instalación de sensores 2D sobre soportes giratorios o plataformas móviles. Los datos de
estos sensores corresponden a cientos de puntos 2D que generan densas nubes de puntos.
Por lo tanto es necesario un procesamiento eficiente de estos datos con el fin de obtener una
representación real del ambiente. [11]
Figura 15: Sensor laser tridimensional construido a partir de un sensor laser de barrido horizontal. [11]
�
3.5.2.1. Trabajos Relacionados
Horno et al. [12] corrigió la posición planar (2D) de un robot móvil mediante el uso de
planos verticales extraídos de datos 3D. Sequeira et al. [13] utilizo un láser puntual
montado en una unidad de paneo horizontal y vertical (pan-tilt) para crear modelos 3D de
las escenas interiores. Sus trabajos se centran principalmente en la reconstrucción de
espacios 3D. Nuechter et al. [14], se presenta un análisis para las exploraciones 3D
obtenidas a partir por de un escáner láser rotativo. Utilizan el algoritmo iterativo del punto
más cercano (ICP) para minimizar la medida de error global y generar modelos
���
�
consistentes. Muchos más trabajos se han realizado con respecto a la visión laser
tridimensional donde se proponen algoritmos de calibración para los sensores y generación
de mapas de localización a partir de los sensores tridimensionales. Sin embargo esta es un
área de la robótica que apenas se está investigando y tienen un campo de exploración muy
amplio. Nuevos modelos están siendo diseñados y probados en los diferentes centros de
investigación de robótica de todo el mundo.
3.6. Navegación visual del Robot Pioneer y Algoritmos de localización
El primer problema a resolver en los robots móviles es la navegación. El campo de la
robótica móvil se caracteriza por la incertidumbre presente en los entornos reales. Para que
un robot pueda navegar de forma autónoma dentro de un entorno necesita saber en cada
momento con exactitud su posición dentro de este, de ahí la necesidad de la localización. Es
un problema clásico dentro del área de la robótica móvil, se trata de que el robot pueda
estimar de forma autónoma su posición dentro del mundo, apoyándose solo en la
información de sus lecturas sensoriales, e información del entorno que en general la recibe
en forma de un mapa.
Se llama navegación al conjunto de métodos y técnicas usados para dirigir el curso de un
robot móvil a medida que este atraviesa su entorno. El robot tiene que llegar a algún destino
sin chocar con obstáculos fijos, ni con otros móviles que eventualmente puedan aparecer en
el camino. Con la aparición de la navegación de robots han surgido problemas específicos
como la construcción de mapas, la localización, y la planificación de caminos. Según la
manera en que se mueve un robot en su entorno pueden clasificarse los tipos de navegación
en: navegación global y navegación local. [15]
La navegación global se basa en calcular la ruta a seguir por el robot. Se encarga de generar
un plan de acción para mover el robot desde un punto origen a un punto destino. Este
conocimiento puede ser adquirido mediante un mapa del entorno o construido por medio de
���
�
las medidas sensoriales del robot. Para calcular la ruta se usan técnicas de planificación o
búsqueda.
La navegación local por el contrario es reactiva, apoyándose en medidas sensoriales
obtenidas a cada momento y que le sirven al robot para tomar decisiones en ese instante.
Esto implica que este tipo de navegación sea sensible, a cambios en el entorno como lo son
objetos dinámicos o en movimiento.
Algunos métodos de navegación local son:
Método de velocidad y curvatura (CVM) [Reid Simmons, 1996]: Este método trabaja
añadiendo restricciones de velocidad al espacio y escogiendo el punto en el espacio que
satisface todas las restricciones y maximiza una función objetivo. Las restricciones derivan
de las limitaciones físicas de la velocidad y la aceleración propias del robot, y de los datos
sensoriales que indican la presencia de obstáculos. Estos últimos se usan para representar,
para cada posible curvatura, cuán lejos puede viajar el robot antes de colisionar con un
obstáculo. La distancia curva a los obstáculos se haya dividiendo el espacio de velocidad en
un numero discreto de regiones, cada una de los cuales tiene una distancia constante al
punto de impacto. Este método encuentra el punto de cada región que maximiza la función.
El punto máximo de entre todos, se usa para comandar el robot. [16] [17]
Método de carriles y velocidad (VLM) [Reid Simmons, 1996]: Este método combina el
CVM con un nuevo método direccional llamado el método de carriles. El método de
carriles divide en entorno en carriles, y luego elige el mejor a seguir para optimizar el viaje
hacia la dirección deseada. Una dirección local es calculada para entrar y seguir el mejor
carril, y CVM usa esta dirección para determinar las velocidades lineal y angular óptimas.
Para ello considera la dirección a seguir, las limitaciones físicas y las restricciones del
entorno. Combinando los métodos de dirección y velocidad, VLM consigue un movimiento
libre de colisiones así como un movimiento suave teniendo en cuenta la dinámica del robot.
[16] [17]
���
�
La forma más difícil de localización para un robot móvil, es cuando se enfrenta usando
sensores no específicos de posición (láser), en este caso la información de posición se
obtiene relacionando las lecturas sensoriales (del láser,) con el “mapa” del entorno.
Una técnica buena para la localización local son los filtros de Kalman, se trata de un filtro
de Bayes recursivo que estima la distribución a posteriori del estado de un sistema en
función de los datos. En el caso de la localización de un robot móvil, el sistema dinámico es
el robot móvil y su entorno, mientras que el estado es su posición, que corresponde a la
posición del robot y su ángulo de orientación (x, y) dentro de un sistema de coordenadas
cartesianas fijo a su entorno. [15]
La técnica de Desvío Tangencial, tiene como fundamento evitar obstáculos mediante la
ejecución de trayectorias tangenciales a estos. Cuando se encuentra un obstáculo en el
camino, para evitarlo se genera un punto de destino virtual temporario. Cuando el algoritmo
de desvío verifica la ausencia de obstáculos, el punto destino real es reanudado y el robot
retorna su búsqueda. [18]
Por último la localización probabilística, es una de las mejores técnicas para la localización
en interiores. En este sentido permite la incorporación de observaciones y actuaciones. La
idea principal de este método se basa en tener un modelo capaz de estimar la probabilidad
de “estar en una posición” basándose solo en la información del entorno, comparando esta
información con la que se está leyendo por el sensor real podemos calcular la probabilidad
de esta posición. Esa estimación se actualiza con la incorporación de nuevas observaciones
y movimientos. Para fusionar la nueva probabilidad con la anterior se hace uso de la regla
de Bayes. Con este planteamiento este método consigue una buena localización incluso
desconociendo la posición inicial del robot, también permite representar situaciones
ambiguas y resolverlas posteriormente. [19]
Todas las técnicas presentadas hasta ahora hacen uso de sensores. No hay sensores sin
errores, todo sensor tiene sus limitaciones y condiciones de funcionamiento si se perturba el
ambiente normal del trabajo (cambio de condiciones climáticas, temperatura, luminosidad),
su funcionamiento deja de ser normal. Este tipo de detalles son muy importantes, por lo
��
�
tanto a la hora de elegir el sensor, hay que saber su rango de errores e intentar corregirlos,
ya que el resultado final de la localización dependerá de manera directa de estos errores.
[20]
Debe tenerse en cuenta que en el proyecto no se busca generar trayectorias. El problema
que se busca solucionar con este proyecto es el de reconocimiento de objetos por lo tanto
solo se utilizaran las partes de los métodos que permiten la estimación de distancias entre
los objetos y el robot.
Es interesante plantear la posibilidad de futuros proyectos a partir de este proyecto, ya que
puede continuarse en la aplicación de los métodos para generar trayectorias libres de
obstáculos, mediante el sensor que será instalado y calibrado.
��
�
4. MÉTODOLOGÍA
La metodología del proyecto de dividió en una serie de etapas con el fin de cumplir los
objetivos propuestos. Estas etapas fueron las siguientes: 1) Diseño y Construcción de una
plataforma de un grado de libertad para la instalación del laser de barrido horizontal. 2)
Control del sensor laser tridimensional. 3) Calibración del sensor laser tridimensional y 4)
Caracterización de obstáculos mediante la obtención de datos sensoriales a partir del sensor
laser tridimensional
A continuación se describen las diferentes metodologías llevadas a cabo para alcanzar cada
uno de los objetivos del proyecto.
4.1. Diseño y Construcción del Sensor laser tridimensional
�
4.1.1. Sensor laser tridimensional
En este proyecto se diseña e instala un sensor laser tridimensional a partir de un laser de
barrido 2D mediante la instalación de este sobre una plataforma móvil, como se hizo en
[11], a continuación se muestran algunas imágenes que ilustran el método utilizado.
Figura 16: Sensor laser tridimensional construido a partir de un laser de barrido montado sobre un eje móvil. [11]
���
�
Los sensores láser 3D se construyen generalmente con un movimiento de rotación de un
escáner 2D de manera escalonada o continua alrededor de su eje lateral o radial. La
combinación de la rotación de el espejo en el interior del escáner 2D con la rotación externa
de una plataforma o simplemente un eje de un grado de libertad, producen puntos con
coordenadas esféricas. Sin embargo, ya que en la realidad es imposible ajustar los dos
centros de rotación exactamente en el mismo punto, los parámetros medidos no pueden
medirse exactamente en coordenadas esféricas ya que existen valores de desplazamiento.
Estos valores de desplazamiento deben estimarse calibrando el sensor 3D al considerar su
observación modelo. [11]
Para la obtención del sensor laser tridimensional a partir del sensor laser de barrido Hokuyo
URG-04LX, fue necesario diseñar y construir una plataforma de un grado de libertad que
permitiera la rotación del punto de acción del laser siempre sobre el mismo punto con el fin
de evitar errores en las mediciones. A continuación se explica el proceso de diseño y
construcción llevado a cabo.
4.1.2. Diseño y Construcción de una plataforma de un grado de Libertad
Como se explico anteriormente el laser Hokuyo URG-04LX corresponde a un laser de
barrido horizontal, por lo tanto la plataforma necesaria para generar una detección
tridimensional es una plataforma de un grado de libertad que rote con respecto al eje
horizontal, con un eje de movimiento concéntrico a la línea de acción del laser para obtener
coordenadas polares y que evite la necesidad de hacer correcciones adicionales en los datos
sensoriales que se obtienen directamente del laser.
Para diseñar la plataforma de un grado de libertad, inicialmente se utilizo la idea de la
articulación de codo de un brazo robótico, a partir de éste se diseño el primer modelo de la
plataforma. Una vez se tuvo la idea preliminar de lo que se quería se diseñaron diferentes
tipos de plataforma de un grado de libertad incluyendo uniones de bola, uniones tipo
���
�
bisagra entre otras. A continuación se presenta una imagen de cada uno de los diseños
preliminares realizados:
Figura 17: Diseños preliminares de la plataforma de un grado de libertad.
Inicialmente se obtuvieron 6 tipos de plataforma diferentes a las cuales se les realizo un
análisis cualitativo partir de las necesidades de la aplicación. Con este análisis se llego a la
conclusión de que era necesario construir una plataforma que permitiera que el punto de
acción del laser estuviera sobre el eje de rotación para que las coordenadas en x y y en cada
ángulo de inclinación estuvieran sobre el mismo sistema de coordenadas siempre. Por lo
tanto finalmente se eligió la plataforma tipo columpio la cual acopla dos láminas dobladas
en u con un eje central.
���
�
Figura 18: Diseño de plataforma tipo columpio.
Los ajustes de las dimensiones y detalles de la plataforma se iniciaron al construir un
prototipo en balso partiendo de algunas dimensiones según los requerimientos del laser. A
partir del prototipo se hicieron las correcciones pertinentes para llegar al diseño final, entre
estas se tuvo en cuenta el acople del motor, las dimensiones de las laminas dobladas en u
para evitar que al hacer el barrido horizontal el laser identificara las paredes como
obstáculos, y el acople del laser en la plataforma. Para lograr una plataforma que cumpliera
con todas las características requeridas se realizaron una serie de cálculos geométricos.
Finalmente se utiliza un análisis inverso con el fin de garantizar las condiciones que debe
cumplir la plataforma inicialmente propuestas, conociendo cada una de las dimensiones de
la plataforma se calculan las diferentes dimensiones con el fin de asegurar que el laser no
reconozca las paredes de la plataforma como obstáculo.
Figura 19: Dimensiones de la plataforma que garantizan que las paredes de la plataforma no intervengan en los datos
sensoriales.
���
�
A partir de las dimensiones mostradas en la figura 19 puede comprobarse que la acción del
laser no esté siendo interrumpida por las paredes de la plataforma mediante la siguiente
ecuación:
� � ��� ���� (1)
Como el rango total del laser es de 240 grados entones ρ debe tener un valor mínimo de 30
grados para que el laser no reconozca la pared de la plataforma como un obstáculo. Esto
puede verse en la figura 19, a partir de la línea de los 180 grados el laser debe tener un
rango libre de 30 grados en cada lado con el fin de poder realizar un escaneo horizontal
completo.
Otro punto muy importante en la plataforma es la elección del servomotor que la moverá.
Este se elige según las características de voltaje de alimentación, corriente de consumo,
torque nominal y pico, tamaño, velocidad, peso, rango de movimiento, y costo. Las
propiedades físicas de la plataforma se determinan mediante la simulación de esta con sus
respectivas dimensiones y materiales en el software Solid Edge y se confrontan con
mediciones experimentales de peso y dimensiones y el cálculo teórico de las propiedades
dinámicas. A partir de estos valores es posible entonces calcular el torque máximo de la
plataforma y fijar la velocidad angular y resolución angular deseada del sensor laser
tridimensional para finalmente la elegir el servo motor.
4.2. Control del sensor laser tridimensional
Para controlar el sensor laser tridimensional, es necesario integrar la fuente de potencia de
este, es decir el servomotor al Robot Móvil. El Robot Pioneer P3 – DX dispone de varios
puertos serial los cuales están destinados para la conexión y control de cualquier tipo de
dispositivo o sensor adicional que quiera ser instalado el Robot. En este caso, el dispositivo
adicional a ser conectado y controlado se trata de la fuente de potencia de la plataforma de
���
�
un grado de libertad: Un servomotor de pulsos. En general los servomotores se alimentan
por los hilos rojo-negro con 5 V y se les envía la posición mediante un pulso por el cable
cafe cuya duración (0,5 a 2,5ms) indican la posición (0 a 180º). Este pulso se debe refrescar
cada 20ms.
Los puertos serial del P3 DX son robustos y permiten enviar datos o “pulsos”, por lo tanto
la integración del sensor laser tridimensional con el Robot móvil se realiza mediante la
conversión de la señal del servomotor a una señal serial. Esto se hace mediante un circuito
controlador serial –servo el cual se encuentra disponible en el mercado. En este caso se
adquirió un circuito controlador serial – servo de marca Polulu [21] el cual permite
controlar hasta 8 servos, esto es de gran utilidad ya que luego de terminar el proyecto
quedan disponibles 7 conexiones servo para el control de estos en proyectos posteriores de
articulaciones robóticas, sensores adicionales, etc.
Figura 20: Circuito controlador servo – serial Polulu. [21]
�
El controlador Polulu serial de 8-servo permite controlar hasta ocho servos RC con
cualquier tipo de control por computador. La interfaz para el controlador de servo es un
puerto estándar RS-232 o una línea serie de nivel TTL. El controlador de servo es
compatible con todo tipo de servo motores y con cualquier lenguaje de programación
[21]. El controlador viene ya programado con el control para servos por lo cual el usuario
lo único que debe hacer es conectar el servo y programar de forma sencilla el ciclo de
���
�
movimiento del servo según la aplicación. En este caso se utiliza el lenguaje de
programación C++.
4.2.1. Control de un Servo
El control de un servo se limita a indicar en qué posición se debe situar y cuanto tiempo
debe permanecer en esta posición. Estas órdenes consisten en una serie de pulsos. La
duración del pulso indica el ángulo de giro del motor. Cada servo tiene sus márgenes de
operación, que corresponden con el ancho del pulso máximo y mínimo que el servo
entiende. Los valores más generales corresponden con valores entre 1 ms y 2 ms, que
dejarían al motor en ambos extremos. El valor 1,5 ms indicaría la posición central, mientras
que otros valores del pulso lo dejan en posiciones intermedias.
Es importante destacar que para que un servo se mantenga en la misma posición durante un
cierto tiempo, es necesario enviarle continuamente el pulso correspondiente. De este modo,
si existe alguna fuerza que le obligue a abandonar esta posición, intentará resistirse. Si se
deja de enviar pulsos (o el intervalo entre pulsos es mayor del máximo) entonces el servo
perderá fuerza y dejará de intentar mantener su posición, de modo que cualquier fuerza
externa podría desplazarlo.
En este proyecto se busca mover la plataforma de un grado de libertad mediante el servo,
con el fin de generar los puntos sensoriales tridimensionales, para esto en el diseño inicial
de la plataforma se fijo un rango total de movimiento y la resolución angular. Con el fin de
obtener los datos sensoriales de forma más organizada se estableció que en cada ángulo
vertical el laser debía hacer un escaneo horizontal en una dirección y según esto se
calcularon los tiempos de escaneo.
Conociendo cada uno de los parámetros de escaneo, inicialmente se desarrollo un programa
en lenguaje C++ para la programación del movimiento del servo, este programa debía
���
�
incluir el reconocimiento de la conexión del puerto serial del computador para enviar los
pulsos desde el programa. Finalmente, este programa fue implementado dentro de la
interfaz del Robot con el fin de que el sensor laser tridimensional sea utilizado como el
mecanismo de visión principal del Robot. La programación realizada en este proyecto
incluye en la interfaz del Robot, el movimiento del servo y la posición angular de la
plataforma. Para trabajos futuros se propone incluir dentro de esta interfaz el procesamiento
de los datos sensoriales en línea con el fin de que el Robot pueda reconocer obstáculos y
tomar decisiones simultáneamente.
4.3. Calibración del sensor Laser tridimensional
En cierto punto durante la preparación de un sistema de medición, cantidades de entrada
conocidas deben ser establecidas en el sensor – transductor y debe observarse el
comportamiento de la salida del sistema. Tal comparación permite que la magnitud de la
salida sea correctamente interpretada en términos de la magnitud de entrada. El
procedimiento de calibración permite establecer la escala de medición de la salida del
sistema de medición. De esta forma es posible calibrar un instrumento tanto en escala como
en confiabilidad de resultados.
Para obtener mediciones de un sensor láser con alta precisión y certidumbre, primero debe
hacerse una caracterización de éste. Dicha caracterización se debe hacer posicionando el
láser a distancias conocidas de un obstáculo para realizar mediciones y verificar que las
mediciones entregadas por el láser corresponden a las distancias correctas.
���
�
Figura 21: Esquema de calibración del sensor laser tridimensional. [10]
Utilizando el método propuesto en [10] se puede realizar dicha calibración, con lo cual se
obtiene el error de las mediciones y su varianza. De este análisis se obtienen los datos para
realizar un análisis de propagación de incertidumbre para las mediciones tridimensionales.
Para realizar la toma de datos con el sensor láser tridimensional debe realizarse un análisis
geométrico previo con el fin de conocer como se obtendrán las distancias y las relaciones
geométricas que existen entre estas. Debido a la naturaleza del diseño del sensor laser
tridimensional, las coordenadas obtenidas de las mediciones se encuentran en coordenadas
polares las cuales mediante las relaciones geométricas pueden ser convertidas a
coordenadas rectangulares.
En el trabajo de grado “Integración de un sensor laser a la plataforma robótica Mobile
robots” [10] se desarrolló un software para la obtención de los valores de los datos
sensoriales del robot en el tiempo (URG demo). Este programa permite guardar los datos en
un archivo .npu el cual puede ser leído desde cualquier programa de análisis numérico con
el fin de procesar los datos.
Para el procesamiento de los datos obtenidos en la calibración del laser se desarrollo una
función en el software Mathemática® la cual al ser corrida permite organizar los datos de
��
�
distancia y ángulo para finalmente hacer las transformaciones a coordenadas rectangulares
y graficar los resultados.
También se realizo una función en Mathemática que permite generar los datos de distancias
en x, y, z teóricos fijando diferentes distancias x (distancia desde el punto de acción del
laser hasta la pared) para la calibración del sensor laser tridimensional. Teniendo la base de
datos teóricos es posible realizar un análisis d error y de propagación de incertidumbre
suponiendo una distribución normal de los datos con el fin de determinar la precisión y
exactitud del sensor laser tridimensional.
4.3.1. Análisis de las mediciones sensoriales
Para obtener los valores teóricos en cada una de las coordenadas con respecto al sistema de
referencia del Robot es necesario realizar un análisis geométrico y determinar las relaciones
que existen entre las coordenadas polares y rectangulares.
4.3.1.1. Sistemas de coordenadas del Robot y del Laser
Antes de iniciar el análisis geométrico con el fin de conocer los rangos máximos de
medición en cada una de las distancias y las relaciones polares y rectangulares a las cuales
será calibrado el robot, es importante primero definir el sistema de coordenadas
generalizado del Robot con el fin de hacer todas las transformadas geométricas a partir de
este sistema de coordenadas.
��
�
Figura 22: Sistemas generalizado de coordenadas sobre el Robot.
La configuración del sensor laser tridimensional permite obtener mediciones de láser en
coordenadas polares medidas desde el origen del sistema de coordenadas del láser. Se debe
tener en cuenta que como el láser no se encuentra en el centro de rotación del robot, se debe
hacer una conversión de coordenadas de láser a coordenadas del robot.
Figura 23: Sistema de coordenadas del sensor laser tridimensional.
Conociendo el sistema de coordenadas generalizado del robot y el sistema de coordenadas
del laser con respecto al sistema de coordenadas generalizado es posible hacer el análisis de
coordenadas de las mediciones sensoriales del laser y de esta forma pueden obtenerse
���
�
relaciones entre las diferentes coordenadas, conociendo la posición instantánea tanto del
haz de laser como de la plataforma de un grado de libertad.
4.3.1.2. Rangos Máximos del barrido horizontal
Inicialmente se determinan las distancias máximas que puede medir el sensor laser de
barrido a partir de su rango máximo de escaneo. Se sabe por lo datos del fabricante que a
una distancia x de la pared el radio máximo de escaneo del laser corresponde a 4000 mm
como puede verse en la figura 22.
Figura 24: Rango total y rango máximo de los datos sensoriales en el barrido horizontal.
A partir de esta configuración si se conoce la distancia x a la pared mediante una medición
métrica pueden entonces obtenerse las siguientes relaciones para conocer el ángulo máximo
al que puede obtenerse una medición sensorial “θ” y la distancia “y” máxima que alcanza a
medir el Robot.
������,������� � �4000 ! " (2)
���
�
# � �� $% &�"' (3)
Donde x es la distancia perpendicular del robot al objeto de calibración. Como puede verse
en la ecuación a medida que x se hace más grande, es decir, si el robot esta mas lejos del
obstáculo, entonces se obtendrán menos mediciones sensoriales que den información del
obstáculo debido a la restricción del radio total que puede identificar el laser Hokuyo.
4.3.1.3. Relaciones geométricas de las mediciones del sensor laser
tridimensional
Al realizar las mediciones sensoriales con el sensor tridimensional diseñado es posible
obtener valores en “x”, en “y” y el ángulo de rotación “θ” con respecto a la horizontal de la
plataforma el cual coincide con el ángulo de rotación del haz de laser.
Figura 25: Configuración del Sensor laser tridimensional sobre el Robot. Esquema para la determinación de distancias
máximas según el rango del laser Hokuyo URG-04LX.
En la figura puede verse la configuración general del robot y el sensor laser tridimensional,
la altura total del Robot incluyendo la plataforma es de 343 mm y 321mm hasta el eje de
���
�
rotación alrededor del eje horizontal del haz de laser, el rango de rotación alrededor del eje
horizontal de la plataforma es de 30 grados hacia arriba y 30 grados hacia abajo con
respecto al plano horizontal.
Figura 26: Configuración del Sensor laser tridimensional sobre el Robot. Esquema para la determinación de distancias
verticales.
Conociendo el ángulo de inclinación de la plataforma de un grado de libertad y la distancia
x a la pared es posible conocer las coordenada z.
(�������� � ���� ! �"�������� ) �� �*�� (4)
Donde h es la altura la altura total del robot junto con la plataforma hasta el eje de rotacion
del sensor tridimensional (321 mm), x es la distancia horizontal a la pared desde el punto de
acción del laser y α es el ángulo de inclinación del sensor laser tridimensional respecto a la
horizontal.
���
�
4.3.1.4. Transformadas Geométricas
Conociendo el sistema de coordenadas generalizado del Robot, el sistema de coordenadas
del láser y conociendo las relaciones geometrías que existen entre las diferentes
coordenadas, es posible construir las matrices de transformadas geométricas que describen
el sistema. Aunque la plataforma de un grado de libertad fue diseñada con el fin de evitar
correcciones adicionales de los datos, debido a las restricciones geométricas para la
construcción de esta se produjeron algunas desviaciones entre el eje de rotación y el punto
de donde sale el haz de laser. Estas distancias deben tenerse en cuenta con el fin de obtener
datos más exactos.
Figura 27: Esquema de corrección de distancias del sensor laser tridimensional diseñado.
�
El modelo del sensor laser tridimensional puede escribirse de la siguiente forma como lo
propone [22]:
+,-./01234 � + �6�7 !�687 8687 �7 0!86�7 8687 �6 �6�� 9 86��0!86�� 9 �6��/ :�67001 <
���
�
�6 � cos@αAB, �7 � cos@θAB, 86 � sin@αAB, 87 � sin@θAB, Donde ρEA es la jotaesima distancia medida con su orientación correspondiente θj en el
plano de escaneo i, que hace el ángulo αj con el plano horizontal. El offset del eje de
rotación externo y el centro de los espejos internos que propagan el haz de laser tiene
componentes dx y dz. [X, Y, Z]T son coordenadas de cada punto medido con respecto al
sistema de coordenadas del laser [22].
Se debe tener en cuenta que como el láser no se encuentra en el centro de rotación del
robot, se debe hacer una conversión de coordenadas de láser a coordenadas del robot. A
partir de las dimensiones del robot y láser y sus posiciones relativas dentro del robot, se
generan las matrices homogéneas de transformaciones geométricas. Se utiliza un sistema de
coordenadas generalizado en m donde el origen está definido por la posición inicial del
robot. Las coordenadas se expresan como (X, Y, Z) y las orientaciones como (Rx, Ry, Rz)
con respecto al sistema de coordenadas inicial del robot. Entonces, la posición inicial 3D
del robot se toma como (0, 0, 0) y los ángulos de Euler, XYZ fijos, como (0, 0, 0). El
origen del sistema de coordenadas del láser se encuentra en
(∆,01234,4GHGI, ∆-01234,4GHGI , ∆.01234,4GHGI) y sus ángulos son (0,0,0). La secuencia de
transformadas geométricas a aplicar usando la composición es [23]:
J�KLKM � �@∆,01234,4GHGI, ∆-01234,4GHGI, ∆.01234,4GHGIBN��0�J�����
La matriz homogénea resultante de aplicar la secuencia correspondiente es:
O,-.1P4GHGI
� O 1000 0100 0010 ∆,01234,4GHGI∆-01234,4GHGI∆.01234,4GHGI1 P O,-.1P01234
Para los casos en que el robot se desplaza, se debe cambiar el punto de referencia de
acuerdo al desplazamiento del robot. Cuando esto ocurre, se deben convertir los puntos de
láser al robot y del robot al origen (posición inicial del robot). Esto se hace mediante la
���
�
transformada [23]:
O,-.1PQRSTG
� : UN4GHGIV 0 0 0
UJWX4GHGIV 1 < O 1000 0100 0010 ∆,01234,4GHGI∆.01234,4GHGI∆-01234,4GHGI1 P O,-.1P01234
Donde N4GHGI es la matriz de 3x3 que representa la rotación del robot con respecto a los
ejes de coordenadas del mundo y JWX4GHGI es la posición del robot correspondiente al
momento en que se tomaron datos del láser. Esta transformada sirve para hacer
reconstrucciones incrementales del espacio 3D durante varios escaneos desde distintas
posiciones/orientaciones del robot.
4.3.1.5. Análisis de Incertidumbre
El error puede ser definido como la diferencia entre el valor medido y el valor real de
cualquier cantidad que se mida. Mientras se conoce el valor medido, el valor real muy
pocas veces se conoce y por lo tanto no es posible conocer el error. Si se calcula un
intervalo dentro del cual puede estar el error entonces se obtiene la incertidumbre y se
estima con una probabilidad lo suficientemente alta que el error no será más grande que la
incertidumbre en ningún caso. [24]
El error realmente no puede ser conocido debido a que nunca se conoce el valor real sin ser
medido antes, y cualquier instrumento puede producir algún tipo de incertidumbre. El error
o la incertidumbre pueden ser estimados mediante herramientas muy efectivas cuando se
tienen muestras lo suficientemente grandes de daros. Sin embargo el experimentador debe
conocer a priori que tan bien esta calibrado el experimento para estimar los errores posibles
y las magnitudes más probables. [24]
���
�
El error en una cantidad de medición puede ser definido como [24]:
Y � "��Z6ZK ! "���� (5)
Y el error porcentual es [24]:
Y�%� � |"��Z6ZK ! "����|"���� (6)
El objetivo principal de diseñar un experimento o un sensor es minimizar su error en la
medición. Sin embargo después de terminar el experimento siempre existirá un rango de
incertidumbre debido a diferentes factores experimentales, la incertidumbre puede definirse
como [24]:
!] ^ Y ^ ] (7)
"��Z6ZK ! ] ^ "���� ^ "��Z6ZK 9 ] (8)
El primer paso para el cálculo del error de una medición es reconocer las posibles causas de
error y tenerlas en cuenta. Las posibles causas de error varían de un experimento a otro y un
solo experimento puede contener una gran cantidad de fuentes de incertidumbre. Sin
embargo la mayoría de errores se pueden distinguir como dos clases generales de estos:
error sistemático y error de precisión. El error sistemático también conocido como error
“bias” es aquel que ocurre siempre de la misma manera en cada medición, un ejemplo de
este es el error de escala de un instrumento de medición. Los errores de precisión o errores
aleatorios son diferentes en cada medición pero tienen un valor promedio igual a 0. [24]
Los errores “bias” no pueden ser tratados mediante herramientas estadísticas porque no
muestran una distribución pero pueden estimarse mediante la comparación del instrumento
a un estándar más preciso. [24]
Para estimar la precisión es importante tener en cuenta ambos tipos de error. Después de
determinar los valores de los errores en una medición de x, deben combinarse las dos para
���
�
obtener la incertidumbre total de este valor si el error “bias” es Bx y el error de precisión es
Px entonces [24]:
_� � @ �̀ 9 J� B%/ (9)
4.3.1.5.1. Propagación de Incertidumbre
Muchas veces las cantidades medidas son utilizadas para calcular otras cantidades. Cada
medición incluye cierta incertidumbre y estas incertidumbres generaran una incertidumbre
para el valor calculado. Esto se llama propagación de la incertidumbre y se define como
[24]:
]b � c� d�d"% ]%� 9 � d�d" ] � 9 e � d�d"f ]f�
(10)
En este caso quiere calcularse la propagación de la incertidumbre en las mediciones de las
coordenadas en z teniendo en cuenta la incertidumbre causada por la medición métrica de la
altura del laser, la causada por las mediciones del sensor laser y por otro lado la
incertidumbre causada por la posición angular dada con el servomotor. En el caso del
servomotor la incertidumbre o resolución está dada por el número de posiciones que este
adquiere para ir de la posición final hasta la posición inicial. Entonces la incertidumbre es 1
sobre el número de posiciones. Como en este caso no hay muestras par a realizar un análisis
estadístico entonces puede estimarse el tamaño esperado de la los errores potenciales de
precisión. Para empezar se estima la precisión de una muestra simple y el error sistemático
en cada variable medida y luego se propagan estas incertidumbres a Z. Primero se establece
que error sistemático existe en las mediciones y en las escalas de los instrumentos tales
como el metro y el laser. La incertidumbre de precisión puede ser causada por diferentes
��
�
factores tales como la vibración o el movimiento brusco del robot que produzca una
desviación en la medición. El tamaño de la desviación estándar del error depende de que
tan precisa sea la escala de medición. Al conocer las diferentes incertidumbres en cada
variable puede entonces calcularse la propagación de incertidumbre con el error “bias” y
luego la propagación de incertidumbre con la desviación estándar, por lo tanto la
incertidumbre para z está dada por [24]:
g̀ � c�d(d� `h� 9 � d(d"����� `������� 9 �d(d* f̀�
(11)
ig � c�d(d� ih� 9 � d(d"����� i������� 9 �d(d* if�
(12)
La estimación para una sola muestra de z con un grado de confianza de 95% es:
Jg � 1.96σm (13)
Finalmente la incertidumbre total de la medición puede obtenerse con la ecuación 9.
4.4. Caracterización de Obstáculos
Para hacer una comprobación experimental de que el sensor laser está diseñado y calibrado
de la forma correcta, se realizan escaneos controlados a diferentes objetos o escenarios
donde se posiciona el Robot. En este caso se utiliza un escenario abierto con la iluminación
adecuada donde el robot no alcance a detectar paredes sino solo el piso o en el caso que
haya un objeto frente a él determine su forma y distancia a la que se encuentra.
Inicialmente se realiza una caracterización del piso. Esta se hace de dos maneras, con el
Robot quieto y luego con el robot en movimiento. A partir de la nube de puntos obtenida
mediante las mediciones del laser se realiza un análisis planar con el fin de determinar si los
��
�
puntos se encuentran en su mayoría dentro de un mismo plano, a partir de este análisis es
posible determinar si el sensor laser está obteniendo los puntos de la forma correcta.
Una vez se realiza el análisis de los puntos sobre el plano y se corrobora la correcta
detección de puntos por medio del sensor laser tridimensional se realiza la caracterización
de diferentes objetos y escenarios tales como sillas, cajas, sobresaltos en el piso, desniveles
y huecos en el piso y escaleras. Estas caracterizaciones se realizan con el Robot quieto ya
que el fin es determinar si reconoce el objeto correctamente, si lo hace de esta manera lo
hará igualmente cuando este en movimiento.
4.4.1. Análisis de puntos sobre el plano
Para realizar el análisis de puntos sobre un plano es necesario utilizar conceptos del algebra
lineal tales como vector normal y la ecuación del plano, estos conceptos y la forma de
realizar el análisis planar se describe a continuación [25]:
Si A, B y C tres puntos en R3 y sea π un plano que contiene A, B y C, entonces un vector
normal de N de π viene dado por u n v, donde u � ABoooooop y v � AC.
En general tres puntos no alineados determinan en forma única un plano, este hecho
permite, dados tres puntos A, B y C, no alineados, calcular la ecuación del plano que los
contiene. Si x es un punto cualquiera de π, entonces la ecuación del plano se puede obtener
mediante cualquiera de las siguientes igualdades. [25]
@W,ooooop ! WooooopB · r � 0, @W,ooooop ! W`ooooopB · r � 0, @W,ooooop ! WsooooopB · r � 0 (14)
Conociendo la ecuación del plano, todos los puntos tomados sobre el piso se evalúan en
esta ecuación esperando que se cumpla la igualdad y de esta forma puede determinarse que
porcentaje de los puntos se encuentran sobre el plano. [25]
���
�
4.4.2. Puntos Obtenidos para diferentes tipos de Obstáculos
Una vez se corrobora que efectivamente los puntos tridimensionales identifican de forma
correcta las superficies planares es posible hacer una caracterización de obstáculos. Para
identificar los obstáculos se tomaron los puntos 3D con el Robot quieto, a partir de las
mediciones del laser se obtuvieron nubes de puntos que representaban cierto espacios
obstáculos. Para poder determinar la forma en que el robot identifica los obstáculos se
filtraron todos los datos con z igual a o y de esta forma pueden verse solo los objetos con
altura o los desniveles.
���
�
5. RESULTADOS
En este capítulo se presentan los resultados obtenidos a partir de cada uno de los
procedimientos planteados en la sección de metodología.
5.1. Sensor laser tridimensional
Luego de elegir el diseño más adecuado para la plataforma de un grado de libertad y el
servo motor para generar el movimiento necesario esta fue simulada en Solid Edge para
calcular sus propiedades físicas y finalmente fue construida en lámina de acero de calibre
16 (1.52 mm) e instalada junto con el laser sobre el robot como puede verse en la figura 27:
���
�
Figura 28: Sensor laser tridimensional instalado sobre el robot
Como puede verse, tal y como se había descrito anteriormente el sensor 3D es una
configuración específica basada en un escáner láser 2D montado en un soporte girado por
un servo motor. La resolución angular de la plataforma se establece en 0,36 grados, con un
rango total de escaneo de 60 grados de θmin =-30 grados a θmax= 30 grados con respecto a la
horizontal obteniendo de esta manera 166 mediciones en un escaneo completo. Según estas
propiedades, el escáner tridimensional toma alrededor de veinte segundos para realizar una
exploración completa del espacio tridimensional entre los rangos de escaneo horizontal y
vertical. A continuación se presenta una tabla con las características generales de la
plataforma:
Tabla 2: Características físicas y mecánicas de la plataforma de un grado de libertad
���������� ������������ �
����� ������������������ ���
��������� ������������������� ��
���������!�������"����� ��
��� �������������������� ����
#��� �������������$%�� �������
���&����� ����������'�����(��� ����
���
�
Donde:
(15)
(16)
El Servo Motor Elegido debía poder mover la plataforma según las propiedades
establecidas desde el inicio del diseño. Para tal objetivo se eligió un servo motor a pulsos
marca Power HD de referencia 3001HB el cual permitió obtener las propiedades dinámicas
de la plataforma según lo esperado:
Tabla 3: Características del servomotor seleccionado
Del análisis de distancias para garantizar que el haz del laser no se vea interrumpido por las
paredes de la plataforma se obtienen lo siguiente:
Figura 29: Dimensiones finales de la plataforma que garantizan que las paredes de la plataforma no intervengan en los
datos sensoriales.
���&��������������(��� ����
��� ����������������������������� ����
����'������������� ���
�������� ��
�����
���
�
De la figura se tiene que:
� � 3.148 ��
� � 1.818 ��
Y por lo tanto de la ecuación 1 se tiene que:
� � 0.52 N�� � 30.0068°
De tal modo que el rango total del haz del laser sin ser interrumpido por las paredes de la
plataforma es de: N� yz � 180° 9 2�30.0068°� � 240.014°
Este valor cumple con el escaneo total del laser Hokuyo URG-04LX el cual tienen un rango
total de escaneo de 240°.
5.2. Control de un Servo
El programa desarrollado en C++ para el control del servo y movimiento de la plataforma
de un grado de libertad desde un cable serial conectado a un computador se encuentra
anexo (ANEXO 2). Para la programación del movimiento del servo según las
características que se buscaban de resolución angular y rango máximo de escaneo se
establecieron las siguientes características:
Tabla 4: Valores para la programación del servo motor para cumplir con las propiedades de movimiento establecidas
para la plataforma de un grado de libertad.
��������� ������� ���������� ��
��������� ����!����������� ��
������������� �
�������������������� �������� �%�
����� ������������������ �
���
�
Según las propiedades de movimiento establecidas para la plataforma de un grado de
libertad, pueden relacionarse los rangos de escaneo de la plataforma (grados) y del
servomotor (pulsos) para finalmente obtener las relaciones de movimiento, tiempo y
resolución angular mostradas en la tabla 4.
5.3. Calibración del sensor laser tridimensional
Para la calibración de sensor laser tridimensional, el robot se ubicó a diferentes distancias
frente a una pared blanca en un ambiente con luz controlada. En cada distancia horizontal
se hace un escaneo tridimensional completo, la grafica1, se muestra un ejemplo de un
escaneo tridimensional completo sobre una pared plana a 0.5 m del Robot.
Gráfica 1: Escaneo tridimensional completo sobre una pared a 0.5 m
A partir de las transformaciones geométricas para obtener los datos 3D al analizar las
coordenadas polares medidas con el sensor laser tridimensional es posible obtener una nube
de puntos con coordenadas 3D para la caracterización de lo que el laser ve.
0.0
0.2
0.4
0.6
x
-4
-2
0
2
4
y
0.0
0.1
0.2
0.3
0.4
z
���
�
Estas transformaciones se realizan mediante una función creada en el programa matemática
la cual realiza el procesamiento de los datos y genera la nube de puntos. Mediante otra
función similar se generan los datos teóricos utilizando las mismas transformadas
geométricas para generar las diferentes nubes de puntos.
En las graficas 2 y 3 pueden verse los datos teóricos y experimentales respectivamente para
las diferentes distancias x conocidas (0.5m, 1m, 1.5m, 2m, 2.5m, 3m, 3.5m). Para mayor
claridad las graficas muestran los escaneos horizontales para ángulos de inclinación de 0,
15 y 30 grados.
Gráfica 2: Nubes de puntos teóricos para diferentes distancias de calibración x y ángulos de inclinación de 0, 15 y 30
grados.
0.00.5
1.01.5
2.0
x
-4-2
02
4
y
0.0
0.1
0.2
0.3
0.4
z
0.00.5
1.01.5
2.0
x
-4-2
02
4
y
0.0
0.1
0.2
0.3
0.4
z
���
�
Gráfica 3: Nubes de puntos teóricos para diferentes distancias de calibración x y ángulos de inclinación de 0, 15 y 30
grados
Como puede verse en la grafica 3, los datos experimentales presentan una dispersión
alrededor del dato teórico, esto corresponde al error y a la incertidumbre generado en los
datos sensoriales debido a diferentes factores. Teniendo la nube de puntos experimentales y
teóricos es posible realizar el análisis de error porcentual de los puntos y también realiza el
análisis de propagación de incertidumbre.
5.3.1. Error Porcentual y Propagación de Incertidumbre
Teniendo la nube de puntos teórica y experimental para cada posición, es posible calcular el
error porcentual de las mediciones mediante la ecuación y. Adicionalmente utilizando las
ecuaciones 11, y 12 es posible realizar el análisis de propagación de incertidumbre de la
coordenada z calculada a partir de los datos experimentales.
Para calcular la incertidumbre de z, a partir del error sistemático y el error de precisión de
cada una de las variables independientes, se utilizan los datos de precisión del fabricante de
los instrumentos de medición y para conocer la incertidumbre de las mediciones se utilizan
valores obtenidos de calibraciones previas del sensor laser de barrido. La incertidumbre del
servo motor no es posible conocerla ya que no se tienen suficientes replicas del
experimento y por lo tanto se estima que la desviación estándar de esta medición es del
10% de la medida. El análisis de incertidumbre se realiza para cada una de las distancias de
calibración para un barrido tridimensional completo. A continuación se presentan tablas
para las diferentes distancias de calibración y los resultados de error porcentual y de
incertidumbre obtenido para algunos ángulos de inclinación del sensor laser tridimensional
(0, 15 y 30 grados).
��
�
Tabla 5: Calculo de incertidumbre y error porcentual para un ángulo de inclinación de 0 grados, para cada una de las
distancia de calibración.
Tabla 6: Calculo de incertidumbre y error porcentual para un ángulo de inclinación de 15 grados, para cada una de las
distancia de calibración.
Tabla 7: Calculo de incertidumbre y error porcentual para un ángulo de inclinación de 30 grados, para cada una de las
distancia de calibración.
�
Adicionalmente se presentan las graficas de incertidumbre y error en función del ángulo y
de incertidumbre y error en función de la distancia de calibración con el fin de realizar el
análisis correspondiente de cómo varían estos valores según la distancia y el ángulo. Estas
graficas se realizaron solo con algunos ángulos de inclinación ya que todos los datos siguen
una misma tendencia.
#��&��'����� �� � ��� � ��� � ���
�(��� �� �� �� �� �� �� ��
�)*���� �" �" �" �" �" �" �"
��� �� �� �� �� �� �� ��
+(
+)*���� ���� ���� ���� ��� ���� ���� ����
+� �" �" �" �" �" �" �"
)* +,++-./ +,++-01 +,++.21 +,++33+ +,++%+2 +,++%0. +,++224
�������5� +,320 +,./4 +,%20 +,%03 +,21% +,1%2 +,/-1
���������� ��� ����+������
#��&��'����� �� � ��� � ��� � ���
�(��� �� �� �� �� �� �� ��
�)*���� �" �" �" �" �" �" �"
�� �� �� �� �� �� �� ��
+(
+)*���� ���� ���� ���� ��� ���� ���� ����
+� �" �" �" �" �" �" �"
)* +,+332% +,+1/-% +,-++24 +,-3%-. +,-1//3 +,.+--- +,.3%/.
�������5� +,31. +,.2. +,%31 +,2+- +,2/1 +,1-3 +,10%
���������� ��� ����-2������
#��&��'����� �� � ��� � ��� � ���
�(��� �� �� �� �� �� �� ��
�)*���� �" �" �" �" �" �" �"
�� �� �� �� �� �� �� ��
+(
+)*���� ���� ���� ���� ��� ���� ���� ����
+� �" �" �" �" �" �" �"
)* +,+332% +,+1/-% +,-++24 +,-3%-. +,-1//3 +,.+--- +,.3%/.
�������5� +,31. +,.2. +,%31 +,2+- +,2/1 +,1-3 +,10%
���������� ��� ����-2������
��
�
Gráfica 4: Incertidumbre de z en función de la distancia de calibración
Gráfica 5: Incertidumbre de z en función del ángulo de inclinación
A partir de las graficas 4 y 5 puede concluirse que la incertidumbre aumenta linealmente
con la distancia de calibración, también aumenta con el ángulo de inclinación de la
plataforma pero de forma potencial. Este comportamiento es de esperarse ya que la
incertidumbre de z depende tanto de la distancia de calibración como del ángulo de
inclinación de la plataforma, por lo tanto al aumentar estos valores, la incertidumbre de la
distancia z se hace más grande. Aunque la incertidumbre es pequeña esta debe ser
�
��
��
���
��
���
��
���
��
�� � ��� � ��� � ��� �
�,�
��
#��&��'������$�*�-��'�.���
�������
���������
��������
�
��
��
���
��
���
��
���
��
� � �� � �� � ��
�,�
��
/��0*�����1�'*���'�.���������
��
�
���
�
���
�
���
���
�
considerada en el momento en que el sensor tridimensional sea utilizado para la navegación
autónoma para garantizar la seguridad del robot.
Gráfica 6: Error porcentual de z en función de la distancia de calibración
Gráfica 7: Error porcentual de z en función de la del ángulo de inclinación
En cuanto al error porcentual de las mediciones se concluye que este depende
exclusivamente de la precisión del sensor laser tridimensional. A partir de las graficas 6 y 7
se concluye que el error para todas las mediciones permanece constante con el cambio de
���
�
��
��
��
��
��
���
�� � ��� � ��� � ��� �
�,���
#��&��'������$�*�-��'�.���
���������
�������
��������
�
��
��
��
��
��
���
� � �� � �� � ��
�,���
/��0*�����1�'*���'�.���������
���
����
�����
���
�����
���
�����
���
�
ángulo. Por otro lado el error para las mediciones mayores a 1 m permanece constante
debido a la precisión del laser de barrido de 10% de la medición, sin embargo para las
mediciones menores a 1 m el error aumenta ya que en estos casos la precisión es de ± 10
mm, esto puede verse en el comportamiento de ambas graficas. Los valores de error
porcentual pueden varias según las condiciones del ambiente, el material del obstáculo, el
color del obstáculo y la iluminación. Este estudio se realizo en [10] donde pueden
consultarse diferentes casos y configuraciones ambientales.
5.4. Caracterización de obstáculos
5.4.1. Análisis de puntos sobre el plano – caracterización del piso
A partir de las nubes de puntos obtenidas mediante la caracterización del piso con el robot
quieto escaneando el piso a diferentes ángulos (Grafica 3) y con el robot en movimiento
escaneando el piso siempre en el mismo ángulo (Grafica 4) se realiza el análisis planar.
Gráfica 8: Nube de puntos del piso con el robot quieto y el sensor laser tridimensional a diferentes ángulos de inclinación
0
1
2
3
4
x
-5
0
5
y
-0.02
-0.01
0.00
0.01
0.02
z
���
�
Gráfica 9: Nube de puntos del piso con el robot en movimiento y el sensor laser tridimensional en un ángulo d de
inclinación constante.
�
Para obtener la ecuación del plano se escogen tres puntos sobre el plano z=0. Con estos
puntos se obtiene el vector normal al plano, y la ecuación del plano.
65 z � 0
Finalmente todos los puntos de la nube obtenida mediante el sensor laser tridimensional son
evaluados en la ecuación del plano con el fin de definir si el sensor laser tridimensional esta
identificando correctamente los planos.
Como puede verse en las graficas 3 y 4 los puntos oscilan alrededor de z=0 debido a la
incertidumbre inducida por las mediciones del sensor laser tridimensional, por lo tanto para
realizar este procedimiento, debe fijarse un rango de tolerancia de modo que la mayor parte
de los puntos sean parte del plano, realizando un análisis visual de los datos puede fijarse
una tolerancia de ±0.002m alrededor de z=0, por lo tanto todos los puntos que estén dentro
de esta tolerancia se considera que están dentro del plano. Al realizar el análisis planar de la
nube de puntos teniendo en cuenta esta tolerancia es posible establecer el porcentaje de
0.0
0.5
1.0
1.5
2.0
x
-5
0
5
y
-0.02
-0.01
0.00
0.01
0.02
z
���
�
puntos que se encuentran dentro del plano y de esta forma corroborar la forma en que el
sensor laser tridimensional está identificando los planos.
Finalmente se obtiene que para un escaneo utilizando el sensor laser tridimensional en
promedio el 98,97% de los puntos están sobre el plano. Este análisis permite entonces
concluir que el sensor laser tridimensional reconoce de forma correcta y confiable los
planos y por lo tanto se puede realizar una caracterización de ciertos obstáculos, para la
identificación de diferentes formas compuestas por planos en diferentes direcciones y
posiciones.
5.4.2. Caracterización de otros obstáculos
Con el robot quieto y a una distancia conocida del objeto, se obtienen nubes de puntos que
representaban ciertos espacios con obstáculos. Para caracterizar el obstáculo se realiza una
Filtración de los datos con z igual a cero (0) y se obtiene la forma del obstáculo desde la
perspectiva que lo está observando el robot.
Silla: A continuación se presenta la nube de puntos para una silla a 2 metros vista por el
robot desde atrás.
Gráfica 10: Silla vista desde atrás con el Robot quieto a 2 metros.
0.00.5
1.01.5
2.0
x
-0.20.00.2y
0.0
0.5
1.0
z
���
�
Escaleras: A continuación se presenta la nube de puntos para una escalera a 2 metros vista
por el robot desde el frente.
Gráfica 11: Escalera vista desde atrás con el Robot quieto a 2 metros del primer escalón.
Hueco: A continuación se presenta la nube de puntos para un hueco sobre el piso vista por
el robot al realizar un escaneo sobre el plano del piso.
Gráfica 12: Hueco sobre el piso visto por el robot al realizar un escaneo sobre el piso.
0.00.5
1.01.5
2.0
x
-0.50.0
0.5y
0.0
0.5
1.0
z
0.0
0.5
1.0x
-4
-20
24
y-0.2
-0.1
0.0
0.1
0.2
z
���
�
Sobresalto: A continuación se presenta la nube de puntos para un sobresalto sobre el piso
vista por el robot al realizar un escaneo sobre el plano del piso.
Gráfica 13: Sobresalto sobre el piso visto por el robot al realizar un escaneo sobre el piso.
En las graficas 10,11, 12,13, puede verse la manera en la que el robot reconoce formas y
distancias, es claro que el robot tienen puntos ciegos por lo tanto si se encuentra quieto solo
puede ver una parte del espacio que esta frente a él limitado por el rango y el radio
máximos del haz de laser. Sin embargo cuando el robot esta en movimiento, cambiando de
posición constantemente este puede ver en cada instante objetos que se aparecen ante él en
todas las direcciones lo que le permite tener una idea del espacio tridimensional completo.
La caracterización de objetos es de gran importancia ya que permite darse una idea de la
forma en que el robot ve el ambiente. A partir de las graficas se entiende que el robot puede
ver objetos en forma, y en profundidad lo cual le da una visión muy realista del mundo.
Para trabajos futuros puede pensarse en la instalación de nuevos sensores laser
tridimensionales en los lados del robot con el fin de agregarle un rango de visión mayor.
0.0
0.5
1.0 x
-4-2
024 y
0.00
0.05
0.10
0.15
0.20
z
���
�
6. TRABAJOS FUTUROS
6.1. Localización
La localización, es uno de los problemas clásicos dentro del área de robótica móvil. El
problema consiste en que un robot se localiza automáticamente dentro de un determinado
mundo usando para ello sus sensores, y la información de su entorno que en general se
ofrece en forma de un “mapa”. Actualmente hay técnicas más avanzadas de localización y
creación de mapas simultáneamente, SLAM (Simultaneous Localization and Mapping).
Como trabajo futuro utilizando el sensor laser tridimensional instalado y calibrado en este
proyecto, se propones un sistema de control de lectura de datos con el sensor
tridimensional, el sistema de control debe validar de forma automática los puntos,
reconociendo, formas y verificando que el robot pueda cruzar por encima o por debajo del
objeto o simplemente deba esquivarlo. Por lo tanto el control tiene como prioridad obedecer
las órdenes que provengan del sistema sensorial del robot.
Para que el robot pueda tomar las decisiones a partir de la nube de puntos obtenida del
sensor, se requiere una estructura lógica de funciones de movimiento que permitan al robot
tomar decisiones según el obstáculo con que se encuentre. A partir del reconocimiento de
formas de los obstáculos el robot debe ser capaz de tomar decisiones acerca de que debe
hacer, si esquivar el obstáculo o sobrepasándolo pudiendo calcular su posición en cada
momento son el fin de evitar golpearse en cualquier momento.
���
�
6.2. Mapas de Navegación
Los mapas de navegación se pueden realizar a partir de escenarios conocidos previamente
ingresando esta información al robot con el fin de que realice ciertos movimientos según el
escenario donde se va amover. Sin embargo en el caso de entornos exteriores se complica
un poco más, ya que el terreno no es plano, presenta rugosidades y los obstáculos no suelen
conocerse con anterioridad.
El sensor laser tridimensional construido proporciona al robot la suficiente independencia
como para desplazarse en entornos interiores o exteriores. Según los datos sensoriales
obtenidos mediante el sensor láser tridimensional el robot es capaz de determinar qué
camino es más seguro para él. Esta habilidad resulta especialmente interesante en tareas de
exploración de terrenos complicados. El sensor permite la construcción de mapas de
navegación en tiempo real, además de ser capaz de crear modelos en entornos interiores
complejos, con alta densidad de obstáculos.
Como trabajo futuro se propone la programación avanzada de mapas de navegación en
línea utilizando las mediciones sensoriales mediante diferentes métodos de localización
como los expuestos en el marco teórico de este documento.
�
��
�
7. CONCLUSIONES
Se logro diseñar, construir e instalar un sensor laser tridimensional a partir de un sensor
laser de barrido e instalarlo como mecanismo de visión del Robot Móvil P3 DX. Esta
instalación abre las puertas para nuevos proyectos en las distintas disciplinas de la
ingeniería en La Universidad en el área de la robótica. Esto es de gran importancia ya que
la navegación, y localización se han convertido en la mayor preocupación de las
investigaciones en esta área. Los sensores laser 3D hasta ahora están siendo inventados, y
por lo tanto haber diseñado y calibrado un sensor laser tridimensional permitió un
acercamiento y entendimiento de nuevos desarrollos de tecnología sensorial para Robots
Móviles
A partir del diseño y la construcción de la plataforma se logro establecer un mecanismo de
calibración generalizado para los datos obtenidos con el sensor laser tridimensional. La
manera en la que se analizan los datos en la calibración, generando una nube de datos con
respecto al sistema generalizado del robot permite que las matrices de transformadas
geométricas utilizadas para la generación de puntos tridimensionales sean utilizadas en
línea de forma que tal que el robot pueda procesar los datos de forma simultánea a la toma
de decisiones incluyendo la incertidumbre de la medida. Sin embargo en el caso de trabajos
futuros de localización y generación de mapas de navegación se hace necesario realizar una
nueva conversión de los datos a un sistema de coordenadas global ubicado en algún punto
del ambiente por el que se desenvuelve el Robot, con el fin de tener puntos sensoriales
medidos siempre con respeto al mismo origen.
A partir del análisis de incertidumbre es posible establecer que la precisión del sensor laser
es muy buena lo cual implica que este puede ser utilizado para la navegación autónoma. El
hecho de conocer la incertidumbre en cada medición, permite una navegación más segura
para el Robot en trabajos futuros de localización. Si el robot conoce su posición exacta
respecto a un obstáculo, este podrá sobre pasarlo o esquivarlo sin sufrir ningún accidente
como chocarse con algo o irse a un hueco.
��
�
Se lograron identificar planos con el sensor laser tridimensional lo cual implica que el
sensor laser es capaz de reconocer objetos desde diferentes perspectivas y distancias. El
hecho de que sensor laser tridimensional identifique planos a diferentes distancias,
orientaciones e inclinaciones permitió realizar una caracterización de obstáculos en
distancia y en forma. Esta caracterización de obstáculos será de gran utilidad al generar
mapas de navegación local.
�
���
�
8. BIBLIOGRAFIA
[1] Sánchez-Martín FM, Jiménez Schlegl P, Millán Rodríguez F, Salvador-Bayarri J,
Monllau Font V, Palou Redorta J, Villavicencio Mavrich H. Historia de la robótica: de Arquitas de Tarento al Robot da Vinci. Actas Urológicas Españolas Marzo 2007.
[2] Consultado en: http://www.societyofrobots.com/. Abril 10 de 2010
[3] Robert L. Norton. Design of Machinery. Fourth edition.
[4] Consultado en: http://www.webelectronica.com.ar/news29/nota05.htm. Abril 10 de 2010
[5] Consultado en: http://www.all-robotics.com/motores/servomotores. Abril 24 de 2010
[6] Consultado en: http://axxon.com.ar/rob/MotorServo_basico.htm. Mayo 10 de 2010
[7] Pioneer 3 Operations Manual, © 2007 MobileRobots Inc. All rights reserved.
[8] Eduardo J. Carletti. Sensores - Conceptos generales: Descripción y
funcionamiento (http://axxon.com.ar/rob/Sensores_general.htm)
[9] Scanning Laser Range Finder URG-04LX Specifications. 2005.10.26
(http://www.acroname.com/robotics/info/articles/laser/laser.html)
[10] Francisco Alfonso Vides Cerón, Jorge Sosa dias Integración de un sensor laser a la plataforma robótica Mobile Robots, Junio 2008.
[11] Paloma de la Puente, Diego Rodriguez-Losada, Alberto Valero and Fernando
Matia. 3D Feature Based Mapping Towards Mobile Robots’ Enhanced Performance in Rescue Missions
[12 J. Horn, G. Schmidt, ”Continuous localization of a mobile robot based on 3D-laser-range-data, predicetd sensor images, and dead-reckoning”, Robotics and Autonomous Systems, 1995, v. 14, pp. 99-118
[13] V. Sequeira, J. G. M. Goncalves, M.I.Ribeiro,”3D Reconstruction of Indoor Environments” Proceedings of Internation Conference on Image Processing, 1996, v. 2, pp. 405-408.
[14] A. N¨uchter, H. Surmann, ”6D SLAM with an Application in Autonomous Mine
���
�
Mapping”, Proceedings of ICRA, 2004, New Orleans.
[15] Bayesian landmark learning for mobile robot localization. In To appear in Machine Learning, April 1997.
[16] Simmons R.:“The curvature-velocity method for local obstacle avoidance”
proceedings of the 1996 International Conference on Robotics and Automation.
[17] Kurt Konolige.:“A gradient method for realtime robot control.” IROS, 2000.
[18] Alexandre Santos Brandao, Mario Sarcinelli Filho y Teodiano Freire Bastos
Filho. Navegación de Robots Móviles con Desvío de Obstáculos:
Implementación de Desvío Tangencial Modificado. XII Reunión de Trabajo en
Procesamiento de la Información y Control, 16 al 18 de octubre de 2007.
[19] S. Thrun. Probabilistic algorithms in robotics. AI Magazine, 2000.
[20] Raúl Benítez. Sistema de localización basado en la detección de segmentos para
robot móviles. Proyecto fin de carrera, URJC, 2004.
[21] http://www.pololu.com/catalog/product/727
[22] Davide Scaramuzza, Ahad Harati, and Roland Siegwart. Extrinsic Self
Calibration of a Camera and a 3D Laser Range Finder from Natural Scenes
[23] Juan Camilo Gamboa Higuera. Fusión de imágenes de cámara y datos de distancia sobre Robot Mobil, Junio 2009
[24] Thomas G. Beckwith, Roy D. Marangoni, John H. Lienhard V. Mechanical
Measurements. Sixth Edition
[25] Consultado en: http://www.cidse.itcr.ac.cr/cursos-linea/Algebra-Lineal/html-alcides/node15.html. Mayo 13 de 2010.
[26] Blais, F., Rioux, M., and Beraldin, J. A.: 1988, Practical considerations for a design of a high precision 3-D laser scanner system. Opto-mechanical and electro-optical design of industrial system, SPIE 958, 225-246.
[27] David M. Cole and Paul M. Newman. Using Laser Range Data for 3D SLAM in Outdoor Environments. Oxford University Robotics Research Group Department of Engineering Science
���
�
University of Oxford
[28] Jan Weingarten and Roland Siegwart. EKF-based 3D SLAM for Structured Environment Reconstruction. Ecole Polytechnique F´ed´erale de Lausanne (EPFL) Autonomous Systems Lab
[29] Y. y. Cha and D. g. Gweon, A calibration and range-data extraction algorithm for
an omnidirectional laser range finder of a free-ranging mobile robot,
mechatronics vol. 6, pp. 665-689.
[30] Guoyu Wang , Bing Zheng, Xin Li, Z. Houkes , P.P.L. Regtien.: Modelling and
calibration of the laser beam-scanning triangulation measurement system,
Robotics and Autonomous Systems 40: 267–277.
[31] J.Fraczek, Z.Busc, A.Morecki.: Laser Calibration and kinematical analysis and
synthesis of Robots, Warsaw University of Technology, Institute of Aeronautics
and applied mechanics.
[32] J. L. Lázaro, A. Gardel , M. Mazo , C. Mataix , J. C. García, R. Mateos
.:1999,Mobile Robot with Wide Capture Active Laser Sensor and Environment
Definition, Journal of Intelligent and Robotic Systems 30: 227–248.
[33] Evans, J. M., King, S. J., and Weiman, C. F. R.: 1990, Visual navigation and
obstacle avoidance structures light systems, U.S. Patent No. 4-954-962-4.
[34] Jarvis, R. A.: 1983, A perspective on range-finder techniques for computer
vision, IEEE Trans. Pattern Analysis Mach. Intelligence 5(2), 122-139.
[35] Kemmotsu, K. and Kanade, T.: 1995, Uncertainty in object pose determination
with three ligth-stripe range measurements, IEEE Trans. Robotics Automat.
11(5), 741-747.
[36] Khadraoui, D., Motyl, G., Martinet, P., Gallice, J. and Chaumet, F.: 1996, Visual
servoing in robotics scheme using a camera-laser stripe sensor, IEEE Trans.
Robotics Automat. 12(5), 743-750.
[37] King, S. J. and Weiman, C. F. R.: 1990, HelpMate autonomous mobile robot
���
�
navigation system, SPIE 1388, Mobile Robots V, Boston, MA, 90-98.
[38] Lázaro, J. L.: 1998, Modelado de entornos mediante infrarrojos. Aplicación al
guiado de robots móviles, Tesis doctoral, Escuela Politécnica, Universidad de
Alcalá.
[39] Vassilios E. Theodoracatos , Dale E. Calkins, A 3-D vision system model for
automatic object surface sensing, International Journal of Computer Vision, v.11
n.1, p.75-99, Aug. 1993 [doi>10.1007/BF01420594]
[40] Willson, R. G.: 1994, Modelling and calibration of automated Zoom lenses, PhD
Thesis, Robotics Institute, Carnegie Mellon University, Technical Report. CmU-
RI-TR.94-03, Carnegie Mellon University.
Anexo 1 : Algoritmo en Mathemática para el procesamiento de datos, calibración del sensor laser tridimen-sional y análisis de incertidumbre.
PROCESAMIENTO DE DATOS
Funcion para realizar el procesamiento de los datos experimentales obtenidos a partir delprograma Demo URG y calcular la coordenada en z a partir d elas relaciones geometricas ylas matrices de transformadas conociendo las coordenadas x,y y el angulo de inclinacion. Elalgoritmo convierte las coordenadas del laser a las coordenadas del Robot:
data1 =
Import@"E:\\Resultados Tesis\\Datos Laser\\0.5m\\30grados
H2L.npu", "Table"D;Clear@DataAnalD;DataAnal@data_D :=
Module@8data2, data3, data4, data5, Theta0, Theta, ∆x = 0.20<,data2 = Drop@data, 81, 8<D;
data3 = Select@data2, OddQ@Position@data2, �D@@1, 1DDD &D;data4 = Table@ReadList@StringToStream@data3@@i, 1DDD, Number,
RecordSeparators → ","D, 8i, 1, Length@data3D<D;data5 = Table@8data4@@i, jDD + ∆x, data4@@i, j + 1DD<,
8i, 1, Length@data4D<, 8j, 1, Length@data4@@iDDD − 1, 2<D;Theta0 = Table@Tan@i DegreeD, 8i, −30, 30, 0.36<D;Theta = Take@Join@Theta0,
Reverse@Theta0D, Theta0, Reverse@Theta0DD, 645D;DataAnal@dataD = Table@Append@data5@@i, jDD,
0.338 − Hdata5@@i, j, 1DD∗ Theta@@iDDLD,8i, 1, Length@data5D<, 8j, 1, Length@data5@@iDDD<DD
SolAnal = DataAnal@data1D;ListPointPlot3D @SolAnalAxesLabel → 8x, y, z<,
PlotRange → 880, 3.5<, 8−4, 4<, 80, 0.1<<D;GENERACION DE DATOS TEORICOS
Funcion para generar los datos teoricos en coordenadas rectangulares x,y y z con respectoal sistema de coordenadas del Robot para compararlos con los datos experiementales yhacer el analisis de error de los instrumentos de medicion.
Clear@TeoAnalD;
TeoAnal@x_D := Module@8Theta0, Theta, Thetab0<,Theta0 = Table@Tan@i DegreeD, 8i, −30, 30, 0.36<D;
Thetab0 = Table@Tan@i DegreeD, 8i, −120, 120, N@240 ê94D<D;Theta = Take@Join@Theta0,
Reverse@Theta0D, Theta0, Reverse@Theta0DD, 645D;TeoAnal@xD = Table@8x, x ∗Thetab0@@jDD, 0.338 − x ∗Theta@@iDD<,
8i, 1, Length@ThetaD<, 8j, 1, Length@Thetab0D<DDSolTeo = TeoAnal@0.5D;ListPointPlot3D@SolTeo, AxesLabel → 8x, y, z<,
PlotRange → 880, 3.5<, 8−4, 4<, 80, 1<<D;PROPAGACION DE INCERTIDUMBRE
Funcion para calcular la propagacion de incertidumbre de los datos
Clear@EstAnalD;vect1 = DataAnal@data1D;Theta0 = Table@Tan@i DegreeD, 8i, −30, 30, 0.36<D;Theta = Take@Join@Theta0, Reverse@Theta0D, Theta0, Reverse@Theta0DD, 645D;
EstAnal@lista1_, lista2_D := ModuleB8Bh = 0.01, Bx = 0.001,
Bn = 0.03, σh = 0.2, σx = 0.1, σn = 0.4, dzlh = 1, h = 0.338<,EstAnal@lista1, lista2D =
TableB-JIHdzlh∗ BhL2 + H−Tan@lista2@@iDDD ∗BxL2 +H−lista1@@i, j, 1DD∗ Sec@lista2@@iDDD ∗BnL2M2 +
I1.96 ∗,IHdzlh ∗σhL2 + H−Tan@lista2@@iDDD∗ σxL2 +H−lista1@@i, j, 1DD∗ Sec@lista2@@iDDD∗σnL2MM2N,
8i, 1, Length@lista2D<, 8j, 1, Length@lista1@@iDDD<FFSol = EstAnal@vect1, ThetaD;prom = Mean@�D & ê@ EstAnal@vect1, ThetaD;Mean@Flatten@promDD;
ERROR PORCENTUAL
Funcion para calcular el error porcentual de los datos
Clear@ErrorD;v1 = DataAnal@data1D;v2 = TeoAnal@05D;
2 Anexo 1.nb
Error@ve1_, ve2_D :=
ModuleBError@ve1, ve2D =Abs@ve1@i, j, 1D − ve2@i, j, 1DD
ve2@i, j, 1D ,
8i, 1, Length@ve1@@iDDD<FSolError = Error@v1, v2D;
CARACTERIZACION DE OBSTACULOS
Funcion para filtrar los datos con coordenda z=0 y obtener solo los datos que representanostaculos ocn altura o desniveles
Select@DataAnal@data1D, �@@3DD ≠ 0 &D;
Anexo 1.nb 3
Anexo 2: Algoritmo en C++ para el control del servo mediante una conexión serial a
un computador
/* Instalación y Calibración de un laser de barrido para un robot móvil. Programa controlador Serial servo Proyecto de Grado Carolina Córdoba Uribe */ #include <stdio.h> #include <stdlib.h> #include <windows.h> #include <conio.h> #include <time.h> HANDLE openPort(int);//Serial protocol HANDLE comPort;//Serial protocol void put(int servo, int angle);//Moves servo (0-7) to angle (Min-Max) void neutral();//Sends all servos to halfway between max and min void waitMS(int ms);//Milisecond delay function static int min=2100, max=3100, step=-6;//Decrease steop size for finer control int done=0; int cont; int p; int main(){ char input[32]; int i; printf("Programa controlador Serial servo\n\n"); comPort=openPort(1);//***PUT YOUR COM PORT NUMBER HERE!*** if(done){ printf("Program Terminated!\n"); system("PAUSE"); return -1; } � neutral(); cont=min; for(p=min; p<10000000000000000;p++){ if(cont==3096)step=-1*step; if(cont==2100)step=-1*step; cont=cont+step; put(0,cont);//send servo 0 to position waitMS(100);//wait 0.1 second } } void neutral(){ int i;
for(i=0;i<8;i++){ put(i,(max+min)/2); } printf("\n"); } void put(int servo, int angle){ unsigned char buff[6]; DWORD len; unsigned short int temp; unsigned char pos_hi,pos_low; temp=angle&0x1f80; pos_hi=temp>>7; pos_low=angle & 0x7f; buff[0]=0x80;//start byte buff[1]=0x01;//device id buff[2]=0x04;//command number buff[3]=servo;//servo number buff[4]=pos_hi;//data1 buff[5]=pos_low;//data2 WriteFile(comPort, &buff, 6, &len, 0); printf("Servo %d Set to %d\n", servo, angle); } void waitMS(int ms){ clock_t endwait; endwait=clock()+ms*CLOCKS_PER_SEC/1000; while(clock()<endwait); } HANDLE openPort(int portnum){ char port[]="com", pnum[]="Error"; _itoa_s(portnum,pnum,10); strcat(port,pnum); HANDLE serial=CreateFile(port,GENERIC_READ|GENERIC_WRITE,0,0,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0); if(serial==INVALID_HANDLE_VALUE){ if(GetLastError()==ERROR_FILE_NOT_FOUND){ printf("Error, %s Not Found\n", port); done=1; return serial; } printf("Com Error\n"); done=1; return serial; } DCB dcbSerialParams={0}; dcbSerialParams.DCBlength=sizeof(dcbSerialParams);
if(!GetCommState(serial, &dcbSerialParams)){ printf("Com State Error\n"); done=1; return serial; } dcbSerialParams.BaudRate=CBR_19200;//CBR_baudrate dcbSerialParams.ByteSize=8; dcbSerialParams.Parity=NOPARITY;//NOPARITY, ODDPARITY, EVENPARITY dcbSerialParams.StopBits=ONESTOPBIT;//ONESTOPBIT, ONE5STOPBITS, TWOSTOPBITS if(!SetCommState(serial, &dcbSerialParams)){ printf("Serial Protocol Error\n"); done=1; return serial; } COMMTIMEOUTS timeouts={0}; timeouts.ReadIntervalTimeout=50; timeouts.ReadTotalTimeoutConstant=50; timeouts.ReadTotalTimeoutMultiplier=10; timeouts.WriteTotalTimeoutConstant=50; timeouts.WriteTotalTimeoutMultiplier=10; if(!SetCommTimeouts(serial,&timeouts)){ printf("Timeout Setting Error\n"); done=1; return serial; } return serial; } �
Recommended