92
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

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Diseño, Instalación y Calibración de un sensor laser

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

Page 2: Diseño, Instalación y Calibración de un sensor laser

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

Page 3: Diseño, Instalación y Calibración de un sensor laser

��

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.

Page 4: Diseño, Instalación y Calibración de un sensor laser

��

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.

Page 5: Diseño, Instalación y Calibración de un sensor laser

��

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���������������������������������������������������������������������������������������������������

Page 6: Diseño, Instalación y Calibración de un sensor laser

��

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������������������������������������������������������������������������������������������������������ ����������������

Page 7: Diseño, Instalación y Calibración de un sensor laser

��

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.�������������������������������������������������������������������������������������������������

Page 8: Diseño, Instalación y Calibración de un sensor laser

��

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.����������������

Page 9: Diseño, Instalación y Calibración de un sensor laser

��

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.��������������������������������������������������� ��������������������������������

Page 10: Diseño, Instalación y Calibración de un sensor laser

��

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��������������������������������������������������� ������������������������������������������������������������������������������������������������������ ��

Page 11: Diseño, Instalación y Calibración de un sensor laser

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.

Page 12: Diseño, Instalación y Calibración de un sensor laser

��

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

Page 13: Diseño, Instalación y Calibración de un sensor laser

���

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

Page 14: Diseño, Instalación y Calibración de un sensor laser

���

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).

Page 15: Diseño, Instalación y Calibración de un sensor laser

���

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.

Page 16: Diseño, Instalación y Calibración de un sensor laser

���

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

Page 17: Diseño, Instalación y Calibración de un sensor laser

���

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.

Page 18: Diseño, Instalación y Calibración de un sensor laser

���

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.

Page 19: Diseño, Instalación y Calibración de un sensor laser

���

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.

Page 20: Diseño, Instalación y Calibración de un sensor laser

���

• Á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

Page 21: Diseño, Instalación y Calibración de un sensor laser

��

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.

Page 22: Diseño, Instalación y Calibración de un sensor laser

��

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]

Page 23: Diseño, Instalación y Calibración de un sensor laser

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

Page 24: Diseño, Instalación y Calibración de un sensor laser

���

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]

Page 25: Diseño, Instalación y Calibración de un sensor laser

���

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.

Page 26: Diseño, Instalación y Calibración de un sensor laser

���

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].

Page 27: Diseño, Instalación y Calibración de un sensor laser

���

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]

Page 28: Diseño, Instalación y Calibración de un sensor laser

���

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

Page 29: Diseño, Instalación y Calibración de un sensor laser

���

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.

Page 30: Diseño, Instalación y Calibración de un sensor laser

���

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

Page 31: Diseño, Instalación y Calibración de un sensor laser

��

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

Page 32: Diseño, Instalación y Calibración de un sensor laser

��

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]

Page 33: Diseño, Instalación y Calibración de un sensor laser

���

• 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.

Page 34: Diseño, Instalación y Calibración de un sensor laser

���

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]

Page 35: Diseño, Instalación y Calibración de un sensor laser

���

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]

������ ����������������������������

���� ����� �

���� ����������� �������� ����������

������� �!����

�������� !��"

����� �������� ����

���������� ������������ ��

����� ������������������ ���

����������� ������������ ��� �

�������� ��

��� ��������������������� ��

�������������� ������ ��#$

������������������������ �

� � ����

Page 36: Diseño, Instalación y Calibración de un sensor laser

���

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

Page 37: Diseño, Instalación y Calibración de un sensor laser

���

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

Page 38: Diseño, Instalación y Calibración de un sensor laser

���

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

Page 39: Diseño, Instalación y Calibración de un sensor laser

���

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]

Page 40: Diseño, Instalación y Calibración de un sensor laser

���

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

Page 41: Diseño, Instalación y Calibración de un sensor laser

��

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.

Page 42: Diseño, Instalación y Calibración de un sensor laser

��

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]

Page 43: Diseño, Instalación y Calibración de un sensor laser

���

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

Page 44: Diseño, Instalación y Calibración de un sensor laser

���

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.

Page 45: Diseño, Instalación y Calibración de un sensor laser

���

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.

Page 46: Diseño, Instalación y Calibración de un sensor laser

���

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

Page 47: Diseño, Instalación y Calibración de un sensor laser

���

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

Page 48: Diseño, Instalación y Calibración de un sensor laser

���

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

Page 49: Diseño, Instalación y Calibración de un sensor laser

���

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.

Page 50: Diseño, Instalación y Calibración de un sensor laser

���

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

Page 51: Diseño, Instalación y Calibración de un sensor laser

��

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.

Page 52: Diseño, Instalación y Calibración de un sensor laser

��

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

Page 53: Diseño, Instalación y Calibración de un sensor laser

���

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)

Page 54: Diseño, Instalación y Calibración de un sensor laser

���

# � �� $% &�"' (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

Page 55: Diseño, Instalación y Calibración de un sensor laser

���

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.

Page 56: Diseño, Instalación y Calibración de un sensor laser

���

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 <

Page 57: Diseño, Instalación y Calibración de un sensor laser

���

�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

Page 58: Diseño, Instalación y Calibración de un sensor laser

���

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]

Page 59: Diseño, Instalación y Calibración de un sensor laser

���

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

Page 60: Diseño, Instalación y Calibración de un sensor laser

���

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

Page 61: Diseño, Instalación y Calibración de un sensor laser

��

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

Page 62: Diseño, Instalación y Calibración de un sensor laser

��

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]

Page 63: Diseño, Instalación y Calibración de un sensor laser

���

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.

Page 64: Diseño, Instalación y Calibración de un sensor laser

���

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:

Page 65: Diseño, Instalación y Calibración de un sensor laser

���

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

���������� ������������ �

����� ������������������ ���

��������� ������������������� ��

���������!�������"����� ��

��� �������������������� ����

#��� �������������$%�� �������

���&����� ����������'�����(��� ����

Page 66: Diseño, Instalación y Calibración de un sensor laser

���

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.

���&��������������(��� ����

��� ����������������������������� ����

����'������������� ���

�������� ��

�����

Page 67: Diseño, Instalación y Calibración de un sensor laser

���

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.

��������� ������� ���������� ��

��������� ����!����������� ��

������������� �

�������������������� �������� �%�

����� ������������������ �

Page 68: Diseño, Instalación y Calibración de un sensor laser

���

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

Page 69: Diseño, Instalación y Calibración de un sensor laser

���

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

Page 70: Diseño, Instalación y Calibración de un sensor laser

���

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).

Page 71: Diseño, Instalación y Calibración de un sensor laser

��

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������

Page 72: Diseño, Instalación y Calibración de un sensor laser

��

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�'*���'�.���������

��

���

���

���

Page 73: Diseño, Instalación y Calibración de un sensor laser

���

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�'*���'�.���������

���

����

�����

���

�����

���

�����

Page 74: Diseño, Instalación y Calibración de un sensor laser

���

á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

Page 75: Diseño, Instalación y Calibración de un sensor laser

���

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

Page 76: Diseño, Instalación y Calibración de un sensor laser

���

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

Page 77: Diseño, Instalación y Calibración de un sensor laser

���

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

Page 78: Diseño, Instalación y Calibración de un sensor laser

���

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

Page 79: Diseño, Instalación y Calibración de un sensor laser

���

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.

Page 80: Diseño, Instalación y Calibración de un sensor laser

���

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.

Page 81: Diseño, Instalación y Calibración de un sensor laser

��

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.

Page 82: Diseño, Instalación y Calibración de un sensor laser

��

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.

Page 83: Diseño, Instalación y Calibración de un sensor laser

���

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

Page 84: Diseño, Instalación y Calibración de un sensor laser

���

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

Page 85: Diseño, Instalación y Calibración de un sensor laser

���

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

Page 86: Diseño, Instalación y Calibración de un sensor laser

���

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.

Page 87: Diseño, Instalación y Calibración de un sensor laser

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;

Page 88: Diseño, Instalación y Calibración de un sensor laser

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 = [email protected];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

Page 89: Diseño, Instalación y Calibración de un sensor laser

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

Page 90: Diseño, Instalación y Calibración de un sensor laser

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;

Page 91: Diseño, Instalación y Calibración de un sensor laser

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);

Page 92: Diseño, Instalación y Calibración de un sensor laser

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; } �