58
0 UGV Line Tracking System (Unmanned Ground Vehicle) Autor: Sergio Alejandro Alvarado Suancha TRABAJO DE GRADO PARA OPTAR POR EL TITULO DE INGENIERO ELECTRONICO Director: Ing. Francisco Carlos Calderón M.Sc Ingeniería Electrónica Facultad de Ingeniería Pontificia Universidad Javeriana Bogotá Colombia

UGV Line Tracking System (Unmanned Ground Vehicle) Sergio

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: UGV Line Tracking System (Unmanned Ground Vehicle) Sergio

0  

UGV Line Tracking System (Unmanned Ground Vehicle)  

               

Autor:  

Sergio Alejandro Alvarado Suancha                      

TRABAJO DE GRADO PARA OPTAR POR EL TITULO DE

INGENIERO ELECTRONICO

         

Director:  

Ing. Francisco Carlos Calderón M.Sc                          

Ingeniería Electrónica  

Facultad de Ingeniería Pontificia

Universidad Javeriana Bogotá

Colombia

Page 2: UGV Line Tracking System (Unmanned Ground Vehicle) Sergio

2  

1. Contenido  2. INTRODUCCION ...................................................................................................................... 4

 

3. MARCO TEORICO .................................................................................................................... 5  

3.1 Estado del Arte .................................................................................................................... 5  

3.2 Visión Artificial: ................................................................................................................. 8  

3.3 El software libre OpenCV ................................................................................................... 8  

3.3.1 Estructura de OpenCV ................................................................................................ 8  

3.4 Calibración de la Cámara Ps3 Eye View............................................................................. 9  

3.5 Morfología….......................................................................................................................15  

3.6 Segmentación …………………........................................................................................17  

3.7 Transformación de Perspectivas......................................................................................... 18  

3.8 BoeBot Robot..................................................................................................................... 18  

3.9 Arduino UNO. …................................................................................................................ 19  

3.10 BeagleboardXM…………….............................................................................................. 20 3.11 El software libre Angstrom................................................................................................. 21

 

4. OBJETIVOS .............................................................................................................................. 22  

4.1 Objetivo General ................................................................................................................ 22  

4.2 Objetivos Específicos ......................................................................................................... 22  

5. ESPECIFICACIONES ................................................................................................................ 23  

6. DESARROLLO .......................................................................................................................... 24  

6.1 Acondicionamiento chasis BoeBot. .....................................................................................24  

6.1.1 Placa Base BoeBot .......................................................................................................24  

6.1.2 Placa Base BoeBot y Tarjeta de Ensamble de Circuitos ..............................................25  

6.1.3 Placa de BoeBot Ensamblada......................................................................................26  

6.1.4 Puesta en funcionamiento parte eléctrica hardware. ................................................... 27  

6.2 Algoritmo de Detección de Ruta ......................................................................................... 28  

6.2.1 Captura de Imagen ...................................................................................................... 29  

6.2.2 Umbralización ............................................................................................................. 29  

6.2.3 Transformación de Perspectiva Birds Eye View......................................................... 30  

6.2.4 ROI de la Imagen ........................................................................................................ 30  

6.2.5 Recorrido de la Imagen Capturada y Almacenamiento de Centros de Pista. .............. 32  

6.2.6 Definición de Ángulos y Longitud de Trama.............................................................. 34  

6.3 Envío de Trama al Microcontrolador Arduino UNO .......................................................... 36  

Page 3: UGV Line Tracking System (Unmanned Ground Vehicle) Sergio

3  

7. ANÁLISIS DE RESULTADOS ............................................................................................... 38 7.1 Comportamiento del Robot Ante Diferentes Tipos de Curva ........................................... 38

 

7.2 Error desde una Vista Superior con Base en Medidas Euclidianas. .................................. 43  

8. CONCLUSIONES .................................................................................................................... 48  

9. REFERENCIAS ........................................................................................................................ 49  

10. Anexos................................................................................................................................... 50  

10.1 Anexo de Tabla 1 .............................................................................................................. 50  

10.2 Anexo de Tabla 2 .............................................................................................................. 51  

10.3 Anexo de Tabla 3 .............................................................................................................. 53  

10.4 Anexo de Tabla 4 .............................................................................................................. 55  

10.5 Anexo de Tabla 5 .............................................................................................................. 57

Page 4: UGV Line Tracking System (Unmanned Ground Vehicle) Sergio

4  

2. INTRODUCCION  Básicamente un vehículo no tripulado consiste en cualquier sistema mecánico móvil que pueda transportar un objeto o sistema con cierto grado de autonomía, dentro de las aplicaciones se encuentran:

 Militares: Supervivencia, detección de objetivos, visión en tiempo real del campo de batalla, etc.

Civiles: Detección de fuego, rescate, vigilancia, monitoreo de autopistas, transporte, etc.

Comerciales: Agricultura, envío de paquetes, seguridad, etc.

Los robots seguidores de línea son plataformas móviles que cumplen el objetivo de seguir una línea que dibuja una trayectoria determinada, este seguimiento se puede lograr gracias a sensores o a dispositivos de visión como cámaras. El avance tecnológico en este tipo de robots ha dado pie para que se desarrollen nuevas técnicas en lo que concierne a los vehículos no tripulados, ya que gracias a la identificación, el análisis y posterior seguimiento de una trayectoria determinada se puede lograr que un vehículo se desplace de manera autónoma

 La investigación y desarrollo de estos robots y vehículos no tripulados se ha convertido en un campo de la ingeniería con alto impacto a nivel mundial, ya que su uso ha aumentado con el tiempo en diferentes aplicaciones como por ejemplo los robots usados en las fuerzas armadas encargados de ejecutar misiones de reconocimiento, a estos se le suman los vehículos no tripulados que la comunidad científica está desarrollando para hacer de las vías un lugar más seguro para los que las transitan, de la misma forma los equipos de rescate usan este tipo de robots con el fin de encontrar sobrevivientes en zonas de desastres. Esto hace que exista una cantidad considerable de proyectos que usan la navegación no tripulada como base para encontrar nuevas aplicaciones que contribuyan a mejorar la condición humana.

 El propósito de este proyecto es controlar el movimiento de un robot no tripulado por medio del seguimiento de un patrón identificado con visión artificial. Este proyecto generaría impacto a nivel social ya que se quiere dejar una base para poder implementarlo en vehículos no tripulados (UGV) guiados por visión artificial.

 Este es un proyecto marco del grupo de investigación SIRP de la Pontificia Universidad Javeriana el cual quiere dejar una base para el posterior trabajo a un nivel más alto en los sistemas de tráfico y vehículos terrestres no tripulados.

 El desarrollo de este proyecto tiene como fin principal propiciar el desarrollo de vehículos no tripulados a gran escala, entregando resultados, recomendaciones y conclusiones para que a partir de la experiencia se pueda desarrollar un sistema mucho más robusto y eficiente.

Page 5: UGV Line Tracking System (Unmanned Ground Vehicle) Sergio

5  

3. MARCO TEORICO  3.1 Estado del Arte  

Existen investigaciones y proyectos de diferentes universidades y grupos investigativos a nivel mundial, un ejemplo claro es el vehículo no tripulado STANLEY desarrollado por la universidad de Stanford el cual ganó el concurso DARPA (Defense Advance Research Projects Agency) en 2005. Este concurso busca una aproximación técnica e innovadora que permita la operación autónoma de vehículos no tripulados de combate, los cuales puedan navegar de un punto a otro y de una manera inteligente evitar obstáculos de cualquier tipo.

 DESARROLLOS

STANLEY

Basado en un Volkswagen Touareg R5 este vehículo, fue el ganador del concurso organizado por DARPA (Defense Advanced Research Projects Agency) en el año 2004 el cual consistió en una travesía autónoma por el desierto Mojave a lo largo de 142 Millas.

 El vehículo equipado con un motor diesel, sensores, sistema de posicionamiento global (GPS), cámaras, sensores y antenas de transmisión, logro llegar a la meta en 6 h y 53 minutos gracias al avanzado proceso de ingeniería previo al concurso.

     

 

Figura 3.1 Tomado de Stanley: The Robot That won The DARPA Challenge -- http://www-robotics.usc.edu

Page 6: UGV Line Tracking System (Unmanned Ground Vehicle) Sergio

6  

CRUSHER  

Creado por el Centro Nacional de ingeniería y robótica de la universidad de Carnegie Mellon, este vehículo posee las capacidades a gran escala de operar autónomamente en terrenos complejos, caracterizándose por ser un vehículo de gran utilidad para diferentes tipos de misiones: vigilancia, reconocimiento, rescate, etc.

 

 

Figura 3.2 Tomada de Crusher: UGCV Perceptor Integration http://www.rec.ri.cmu.edu  

XM1216 Small Unmanned Ground Vehicle  

 

Figura 3.3 Tomada de Wikipedia -- XM1216 SUVG

Page 7: UGV Line Tracking System (Unmanned Ground Vehicle) Sergio

7  

El XM1216 SUVG es un vehículo no tripulado ligero, capaz de llevar a cabo operaciones militares en terrenos urbanos, túneles, alcantarillas y cuevas. El SUVG presta ayuda en el desempeño de tareas de alta intensidad para los seres humanos o funciones de alto riesgo (e.g. Inteligencia Urbana, Vigilancia, Misiones de Reconocimiento de Materiales Químico/Toxico, Misiones de Reconocimiento de Químicos Industriales, etc.)

 El SUVG trabaja para minimizar la exposición de los soldados a amenazas directas, su diseño modular permite que varias cargas le sean integradas de manera sencilla. Pesando menos de 13 kg, es capaz de llevar hasta 2.7 kg de peso extra.

 El XM1216 puede ser operado remotamente o manipulado por medio de un gamepad de Xbox 360 adaptado con dirvers especiales. Esto permite el control de la unidad, sin embargo si no se contara con un joystick convencional, se puede usar un control robusto conocido como Small HaWC (Harm’s Way Controller), que se ajusta a diferentes ambientes de combate y se puede usar en vez del gamepad de Xbox 360.

 En Febrero de 2012, el ejército americano anunció la intención de contratar a iRobot para el desarrollo del sistema robótico del XM1216, su desarrollo, soporte y prueba de hardware y software concerniente al XM1216.

 Guardium UGV

 

 

Figura 3.4 Tomada de defense-update.com Guardium  

El sistema Guardium de intercepción y observación autónoma fue desarrollado por G-NIUS Autonomous Unmanned Ground Vehicles, luego se unió a la compañía Venture, establecida por las industrias aeroespaciales israelíes y Elbit Systems. El sistema Guardium utiliza vehículos terrestres no tripulados que pueden ser operados desde un centro de comando, llevando a cabo patrullajes rutinarios con una respuesta rápida a emergencias. Este puede

Page 8: UGV Line Tracking System (Unmanned Ground Vehicle) Sergio

8  

retener elementos sospechosos que se encuentran en un perímetro definido y detenerlo hasta que las fuerzas de seguridad lleguen al lugar.

 El Guardium usa un chasis de un TomCar. El vehículo está equipado con un sistema de posicionamiento táctico y puede operar a velocidades de hasta 80km/h en terreno árido. El vehículo puede llevar cargas hasta de 300 kg, incluyendo el escudo que usa como armadura para proteger los elementos vitales de este. El Guardium puede ser equipado con una variedad de sensores, incluyento cámaras de video térmicas, con auto-enfoque y un micrófono sensible.

 Después de una evaluación exitosa en 2005 el Guardium fue elegido por las fuerzas de defensa israelíes para operar como parte de la seguridad de frontera. Para Mayo de 2008 fue usado para vigilar las fronteras del país al final del año en mención.

 3.2 Visión Artificial:  

La visión artificial por computador es la capacidad que tiene la maquina en esta caso el computador para ver el mundo que la rodea, el computador puede identificar imágenes en tres dimensiones a partir de varias imágenes bidimensionales, estas imágenes suelen ser tratadas para extraer de ellas cierto tipo de información requerida por el usuario.

 Las imágenes que son analizadas por el computador llegan a este por medio de un dispositivo que es sensible a cierta banda del espectro de frecuencia y que envía señales que corresponden al nivel de energía que incide sobre cierto lugar.

 3.3 El software libre OpenCV  

OpenCV es un conjunto de bibliotecas de código abierto disponibles desde http:SourceForge.net/projects/opencvlibrary. Están desarrolladas en lenguaje C y C++ y se pueden ejecutar desde Windows, Linux y Mac OS X.

 Estas bibliotecas ofrecen código diseñado eficientemente, orientado a aplicaciones capaces de ejecutarse en tiempo real en procesadores modernos. Estas bibliotecas tienen como objetivo proveer las funciones más usadas en visión por computadora y tiene más de 500 funciones implementadas. Se usan ampliamente en vigilancia, imágenes medicas, inspección industrial, interfaces de usuario, calibración de cámaras y recientemente se han usado estas bibliotecas en imágenes aéreas y mapas de calles, por ejemplo en la herramienta Google’s Street View. Se hace uso de la calibración de cámara y de funciones de openCV para hacer el proceso de sttiching, que consiste en combinar múltiples imágenes para producir una imagen panorámica o una imagen de alta resolución.

 3.3.1 Estructura de OpenCV  

Estas bibliotecas se dividen en cinco grandes grupos, en donde se encuentran divididas las funciones dependiendo de su utilidad: CXCORE, donde están implementadas las funciones principales de procesamiento de imágenes y algoritmos de visión; HighGUI, con todo lo relacionado a la sencilla interfaz grafica de OpenCV y las funciones que permitan importar

Page 9: UGV Line Tracking System (Unmanned Ground Vehicle) Sergio

9  

imágenes y video; ML, que cuenta con algoritmos de aprendizaje, clasificadores y demás; y CVAux, con funciones experimentales entre ellas BG/FG, esta ultima biblioteca cuenta con menos documentación que las demás siendo en algunos casos inexistente una documentación oficial del uso de la función o incluyendo solo el articulo del algoritmo implementado en otros casos.

 3.4 Calibración de la Cámara Ps3 Eye View.

La   importancia   de   la   calibración   de   la   cámara   es   necesaria   para   establecer   una   relación   entre   las  medidas  de  la  cámara  y  las  medidas  en  el  mundo  real.  Esto  es  importante  porque  las  escenas  no  son  solamente   imágenes   en   tres   dimensiones,   también   ocupan   un   espacio   físico   el   cual   les   otorga  unidades   de   medida   físicas,   la   relación   entre   las   unidades   naturales   de   la   cámara   (pixeles)   y   las  unidades  del  mundo  real  (e.g.  metros)  son  un  componente  critico  que  surge  al  tratar  de  reconstruir  una  escena  tridimensional.  

El  proceso  de  calibración  de  la  cámara  nos  entrega  tanto  la  geometría  de  la  cámara  como  el  modelo  de  distorsion  de  los  lentes.  Esos  dos  modelos  informativos  definen  los  parámetros  intrínsecos  de  la  cámara.  

Modelo  de  la  Camara  

Basándonos  en  el  modelo  mas  simpre  de  una  cámara,  el  modelo  pinhole:  una  cámara  sin  lente  con  una  abertura  muy  pequeña,  de   ahí   su  nombre  pinhole  que   traduce   “Hoyo  de  Aguja”.  Esta   cámara  puede  ser  vista  como  una  caja  a  prueba  de  luz  con  un  solo  orificio  el  cual  es  el  único  que  permite  la  entrada  de  luz  a  la  caja  Figura  3.5.  

 

Figura 3.5 modelo de camara pinhole

Cuando  la  luz  se  refleja  en  la  imagen  del  plano  solo  un  rayo  de  luz  entra  en  el  orificio  reflejado  desde  cualquier   punto   en   particular,   este   punto   se   refleja   en   una   superficie   que   forma   imágenes.   Como  resultado  la  imagen  reflejada  en  este  plano  (plano  proyectivo)  está  siempre  en  foco  y  el  tamaño  de  la  imagen  con  respecto  al  objeto  distante  está  dada  por  un  único  parámetro  de  la  cámara:  la  longitud  focal.  

Para  este  modelo  de  cámara  la  distancia  focal  esta  definida  como  la  distancia  de  abertura  del  hoyo  o  

Page 10: UGV Line Tracking System (Unmanned Ground Vehicle) Sergio

10  

foco   hacia   la   pantalla   o   imagen.   En   la   figura   3.5   la   distancia   focal   es   representada   por   la   letra   f,  donde  también  podemos  apreciar  la  distancia  de  la  cámara  al  objeto  Z,  la  longitud  del  objeto  X  y  la  imagen  del  objeto  en  el  plano  de  la   imagen  x.  En  la  figura  se  puede  apreciar  que  por  el  método  de  triangulos  semejantes.  

−𝑥 = 𝑓𝑋𝑍  

Formula 1 Definición de Distancia con base en Medición de Pixeles.

La  relación  que  da  una  equivalencia  entre  los  puntos  Qi  en  el  mundo  físico  con  coordenadas  (Xi,  Yi,  Zi)  y   los  puntos  proyectados  en  la  pantalla  con  coordenadas  (xi,  yi)  se  denomina  transformación  de  perspectiva.  Cuando  se  trabaja  con  transformaciones  de  este   tipo  es  conveniente  utilizar   lo  que  se  conoce  como  coordenadas  homogéneas.  Las  coordenadas  homogéneas  asociadas  con  un  punto  en  un   espacio   proyectivo   con   dimensión   n   son   expresadas   típicamente   cono   un   vector   dimensional  (n+1)  por  ejemplo  (x,y,z)  se  convierte  en  (x,  y,  z,  w).  

Con   la   restricción  adicional  que   cualquier  par  de  puntos   cuyos   valores   son  proporcionales   son  por  ende  equivalentes.  En  nuestro  caso  el  plano  de  la  imagen  es  el  epacion  pro  medio  del  cual  vamos  a  representar  puntos  en  el  pano  como  vectores  tridimensionales  q=(q1,  q2,  q3).  Recordando  que  todos  los  puntos  que   tienen  valores  proporcionales  en  el  espacio  proyectivo,   son  equivalentes,  podemos  recuperar   las   coordenadas   en   pixeles   reales   dividiendo   por   q3.   Esto   nos   permite   gestionar   los  parámetros  que  definen  nuestra  cámara  (es  decir  fx,  fy,  cx,  cy,  y)  en  una  única  matriz  de  3  x  3,  esta  matriz  la  denominaremos  matriz  intrínseca.  

La   proyección   de   los   puntos   del   mundo   físico   en   la   cámara   se   puede   resumir   en   la   siguiente  expresión:    

   

 

 

Formula 2 proyección de puntos del mundo fisico en la camara.

Multiplicando   se   puede   encontrar   que   w=Z   y   a   su   vez   como   conocemos   que   en   punto   q   está   en  coordenadas  homogéneas  debemos  dividirlo   entre  w   (o   Z)   con  el   fin   de   recuperar   las   definiciones  anteriores.  (No  aparece  el  signo  menos  por  que  ahora  estamos  mirando  la  imagen  no  invertida  en  el  plano  proyectivo   en   frente  del   agujero  de   alfiler   en   lugar   de   la   imagen   invertida   en   la   pantalla   de  proyección  detrás  del  agujero  de  alfiler).    

Con     el  modelo   de   agujero   de   alfiler   ideal,   podemos   explicar   como   se   establece   una   equivalencia  entre   el   espacio   tridimensional   real   y   la   imagen   proyectada,   pero   se   requiere   un   trabajo   muy  dispendioso  hacer  que   la   luz  suficiente  se  acumulase  para  obtener  una  proyección,  en   los  modelos  normales   de   cámara   esta   deficiencia   de   luz   es   reemplazada   por   un   lente,   el   cual   puede   capturar  bastante  luz  proyectada  en  una  superficie  mucho  mas  grande  que  la  que  alcanza  a  verse  a  través  del  agujero  de  alfiler,  todas  estas  ventajas  a  costa  de  introducir  distorsiones  en  la  imagen  proyectada.  

Page 11: UGV Line Tracking System (Unmanned Ground Vehicle) Sergio

11  

Ya  que  tenemos  una  idea  mas  grande  de  la  descripción  de  las  propiedades  intrínsecas  y  de  distorsion  de  una  cámara  de  forma  matematica,  surge  la  pregunta  de  cómo  determinar  la  matriz  intrínseca  y  de  distorsion,   es   ahí   donde   OpenCV   proporciona   varios   algoritmos   que   nos   ayudan   a   calcular   estos  parámetros   intrínsecos.   La   calibración   usada   en   este   proyecto   se   realizo   mediante   el   algoritmo  cvCalibrateCamera2().    

En  este,  el  método  de  calibración  consiste  en  enfocar   la  cámara  hacia  una  estructura  conocida  con  muchos  puntos  fáciles  de  identificar.  Mediante  la  visualización  de  este  objeto  desde  una  variedad  de  angulos,  es  posible  calcular  entonces  la  ubicación  (relativa)  y  la  orientación  de  la  cámara  al  momento  de  capturar  cada  imagen,  y  de  la  misma  forma  calcular  los  parámetros  intrínsecos  de  la  cámara.  Con  base   en   esto   y   con   el   fin   de   obtener   varios   puntos   de   vista   del   objeto,   lo   hacemos   girar   y   lo  trasladamos.  

Adicionalmente  a  estos  valores  intrínsecos  de  la  cámara,  es  importante  conocer  que  son  los  vectores  de  rotación  y  traslación  que  se  generan  durante  el  proceso  de  calibración.  

Para   cada   imagen   tomada  de   la   cámara  de  un  objeto  particular,  podemos  describir   la  posición  del  objeto   con   respecto   al   sistema  de   coordenadas  de   la   cámara  en   términos  de   rotación   y   traslación  Figura  3.6.  

 

 

 

 

 

 

 

Figura 3.6 descripcion de objeto conrespecto al sistema de coordenadas de la camara

En   general,   la   rotación  en   cualquier   número  de  dimensiones   se  puede  describir   en   términos  de   la  multiplicación   de   un   vector   de   coordenadas   por   una   matriz   cuadrada   de   tamaño   apropiado.   En  última   instancia,   una   rotación   es   equivalente   a   la   introducción   de   una   nueva   descripción   de   la  ubicación  de  un  punto  en  un  sistema  de  coordenadas  diferente.  Al  girar  el  sistema  de  coordenadas  por  un  ángulo  θ  es  equivalente  al  giro  en  contra  de  nuestro  punto  de  destino  en  torno  al  origen  de  dicho   sistema   de   coordenadas   en   el   mismo   ángulo   θ.   La   representación   de   una   rotación   de   dos  dimensiones  como  la  multiplicación  de  matrices  se  muestra  en  la  Figura  3.7    

Page 12: UGV Line Tracking System (Unmanned Ground Vehicle) Sergio

12  

Figura 3.7 rotacion en dos dimensiones

 

La   rotación   en   tres   dimensiones   puede   ser   descompuesta   en   una   rotación   alrededor   de   cada   eje  bidimensional  en  el  que  las  mediciones  de  eje  de  pivote  se  mantienen  constantes.  Si  hacemos  girar  alrededor  de  los  ejes    x-­‐,  y-­‐,  y  z-­‐  en  secuencia  con  la  rotación  respectiva  de  los  ángulos  ψ,  φ,  y  θ,  el  resultado  es  una  matriz  de  rotación  R  total  que  viene  dada  por  el  producto  de  las  tres  matrices  Rx  (ψ  ),  Ry  (φ),  y  Rz  (θ).  

Por  lo  tanto,  R  =  Rz  (θ),  Ry  (φ),  Rx  (ψ).  La  matriz  de  rotación  R  tiene  la  propiedad  de  que  su  inversa  es  su  traspuesta   (sólo   la  giramos  hacia  atrás),  por   lo  que  tenemos  RTR  =  RRT  =   I,  donde   I  es   la  matriz  identidad  consiste  en  1s  en  la  diagonal  y  0  en  todas  partes.  El  vector  de  traslación  es  la  forma  en  que  representan  un  cambio  de  sistema  de  coordenadas  a  otro  sistema  cuyo  origen  es  desplazada  a  otra  ubicación,   en   otras   palabras,   el   vector   de   traslación   es   sólo   la   de   establecer   desde   el   origen   del  sistema  de  coordenadas  primero  al  origen  de  la  segunda  sistema  de  coordenadas.  Por  lo  tanto,  para  pasar  de  un  sistema  de  coordenadas  centrado  en  un  objeto  a  uno  centrado  en  la  cámara,  el  vector  de  traslación  adecuada  es  simplemente  T  =  cámara  origen  –  objeto  origen.  Tenemos  entonces  (con  referencia   a   la   Figura   3.6   que   un   punto   en   el   objeto   con   coordenadas   Po   tiene   coordenadas  equivalentes  Pc  en  el  marco  de  coordenadas  de  la  cámara.  

Combinando  estas  ecuaciones  con  Po  junto  con  las  correcciones  intrínsecas  de  la  cámara,  formamos  el   sistema   de   ecuaciones   básico   que   estábamos   buscando   y   que   OpenCV   solucionó.   Finalmente  obtenemos  de  esta  forma  los  parámetros  de  calibración  de  la  cámara  que  estábamos  buscando.  

 

 

Page 13: UGV Line Tracking System (Unmanned Ground Vehicle) Sergio

13  

Hemos  visto  como  una  rotación  en  tres  dimensiones  puede  ser  definida  con  tres  ángulos  y  que  una  traslacion   de   tres   dimensiones   se   puede   especificar   con   los   tres   parámetros   (x,   y,   z),   por   lo   que  tenemos  seis  parámetros  hasta  ahora.  La  matriz   intrínseca  de  una  cámara  tiene  cuatro  parámetros  (fx,  fy,  cx,  y,  cy),  dando  un  total  de  diez  parámetros  que  deben  ser  resueltos  para  cada  vista  (pero  hay  que  tener  en  cuenta  que  los  parámetros  de  la  cámara  intrínsecas  son  los  mismos  entre  las  vistas).  Al  usar   un   objeto   plano,   se   evidencia   como   cada   vista   fija   ocho   parámetros.   Debido   a   que   los   seis  parámetros  de  rotación  y  de  traslación  cambian  entre  puntos  de  vista,  para  cada  vista  que  tenemos  limitaciones   en   dos   parámetros   adicionales   que   utilizamos   para   resolver   la   matriz   de   cámara  intrínseca.   Por   esto,   necesitaremos   por   lo   menos   dos   puntos   de   vista   para   resolver   todos   los  parámetros  geométricos.  

Para   obtener   estos   parámetros   es   necesario   definir   un   objeto   para   calibrar   la   cámara.   Como  definimos  que  necesitábamos  un  objeto  cuyas  características  fueran  fáciles  de  identificar  y  a  su  vez  medibles,   escogimos   un   tablero   de   ajedrez   con  medidas   especificas,   el   tablero   de   ajedrez   con   sus  colores  blanco  y  negro  no  harán  que  la  medida  sea  sesgada  ya  que  no  va  a  haber  diferencias  además  de  las  existentes  entre  los  dos  colores.  

Dada  la  imagen  de  un  tablero  de  ajedrez  se  usaron  las  funciones  cvFindChessboardCorners  OpenCV  ()  para  localizar  las  esquinas  del  tablero  de  ajedrez.  

int  cvFindChessboardCorners(  const  void*  image,  CvSize  pattern_size,  CvPoint2D32f*  corners,  int*  corner_count  =  NULL,  int  flags  =  CV_CALIB_CB_ADAPTIVE_THRESH    );  

Esta   función   toma   como  argumento  una   imagen   sencilla   que   contiene  un   tablero   de   ajedrez.   Esta  imagen   debe   estar   en   escala   de   grises   y   tener   8   bits.   El   segundo   argumento,   pattern_size,   indica  cuantas  esquinas  hay  en  cada  columna  y  en  cada   fila.  Este  conteo  equivale  al  numero  de  esquinas  interiores   de   la   imagen;   por   ende,   para   un   tablero   de   ajedrez   estándar   el   numero   de   esquinas  internas   será   7.   El   siguiente   argumento   es   simplemente   un   apuntador   a   un   arreglo   en   donde   se  guarda  el  numero  de  esquinas.  Este  arreglo  debe  ser   lo  suficientemente   largo  como  para  todas   las  esquinas  en  el  tablero  (49  en  una  tablero  de  ajedrez  estándar).  

Como  parte  de  este  proyecto,  se  ha  definido  dentro  del  código  cvFindChessboardCorners()  un  valor  de   umbral   con   el   fin   de   facilitar   el   trabajo   con   las   imágenes   capturadas   durante   el   proceso   de  calibración,   una   vez   se   encuentran   las   esquinas,   estas   se   dibujan   y   se   sobreponen   en   la   imagen  capturada  Figura  3.9  

 

 

 

 

Page 14: UGV Line Tracking System (Unmanned Ground Vehicle) Sergio

14  

 

 

 

 

 

 

 

 

Figura 3.8 Método de Calibración de la Cámara.

 

Figura 3.9 resultado cvFindChessboardCorners()

Con  el  fin  de  determina  las  matrices  intrínseca  y  de  distorsión  es  necesario  tener  un  numero  minimo  de  capturas,  este  número  se  determina  de  la  siguiente  manera,  digamos  que  tenemos  N  esquinas  y  K  imágenes  del  tablero  en  diferentes  posiciones.  K  imágenes  del  tablero  proporcionan  2NK  constantes  2   por   que   cada   punto   de   la   imagen   tiene   constantes   en   X   y   en   Y,   ignorando   los   parámetros   de  distorsion   del   momento   tenemos   4   parametros   intrínsecos   y   6K   parámetros   extrínsecos,   ya   que  necesitamos  hallar  los  6  parametros  en  cada  una  de  las  K  imágenes  del  tablero.  

Resolviendo  esto  tenemos  que  se  necesitan  2NK≥6K+4  imágenes  del  tablero  de  ajedrez  para  poder  tener  una  buena  calibración.  

 

Page 15: UGV Line Tracking System (Unmanned Ground Vehicle) Sergio

15  

 

3.5  Morfología:  

El  objetivo  de   las   transformaciones  geométricas  es   la  extracción  de  estructuras  geométricas  en   los  conjuntos   sobre   los   que   se   opera,   mediante   el   uso   de   forma   conocida   denominado   elemento  estructurante.  

 Operaciones  morfológicas  

• Dilatación. agrega píxeles a los exteriores del objeto, lo hace más grande •Erosión. Extrae los exteriores del objeto, lo hace más pequeño

• Apertura. Aplica una erosión seguida de una dilatación, permite abrir pequeños huecos. •Clausura. Aplica una dilatación seguida de una erosión, permite cerrar los huecos.

 aplicaciones  

• Pre-procesamiento de imágenes (supresión de ruidos, simplificación de formas). • Destacar la estructura de los objetos (extraer el esqueleto, detección de objetos) • Se pueden encontrar aplicaciones tales como la segmentación, restauración, detección de

bordes, aumento de contraste, análisis de texturas, compresión. Etc...

Erosion  

La   transformación   de   erosión   es   el   resultado   de   comprobar   si   el   elemento   estructurante   Y   está  totalmente   incluido  dentro  del  conjunto  X.  Cuando  esto  no  ocurre,  el   resultado  de   la  erosión  es  el  conjunto  vacío.  

La  erosión  de  un  conjunto  X  por  un  elemento  estructurante  Y  se  define  como  el  conjunto  de  puntos  o  elementos  x,  pertenecientes  a  X,  de  forma  que  cuando  el  elemento  estructurante  Y  se  traslada  a  ese  punto,  el  elemento  queda  incluido  en  X:  

     

Formula 3 definición de erosión

 

 

 

 

 

 Figura 3.10 erosión

Page 16: UGV Line Tracking System (Unmanned Ground Vehicle) Sergio

16  

Dilatación  

Es  la  operación  dual  de  la  erosión.  

El  resultado  de  la  dilatación  es  el  conjunto  de  puntos  origen  del  elemento  estructurante  Y  tales  que  el  elemento  estructurante  contiene  algún  elemento  del  conjunto  X,  cuando  el  elemento  se  desplaza  por  el  espacio  que  contiene  a  ambos  conjuntos  

     

Formula 4 definición de dilatación

 

En  donde  un  elemento  estructurante  Y  de  forma  de  disco  circular  aumenta  la  definición  del  objeto  X.  

   

Figura 3.11 Dilatación

Apertura

Consiste  en  aplicar  una  erosión  seguida  de  una  dilatación  y  sirve  para  separar  elementos  indeseados  de  la  imagen  

Figura 3.12 aperturas

Page 17: UGV Line Tracking System (Unmanned Ground Vehicle) Sergio

17  

Cierre

El   cierre   de   una   señal   f   por   un   elemento   estructurante   Y   se   define   como   la   dilatación   de   f   por   Y,  seguida  de  la  erosión  por  el  mismo  elemento  estructurante  

Sirve  para  unir  elementos  separados  

Figura 3.13 cierre

 

 3.6 Segmentación  

La segmentación consiste en el proceso de dividir una imagen digital en varias zonas (grupos de pixeles) u objetos que la conforman. El objetivo de la segmentación es simplificar y/o cambiar la representación de una imagen en otra más significativa y más fácil de analizar para obtener información específica.

 Más precisamente, la segmentación de la imagen es el proceso de asignación de una etiqueta a cada pixel de la imagen de forma que los pixeles que compartan la misma etiqueta también tendrán ciertas características visuales similares.

 El proceso de segmentación se usa tanto para localizar detectar regiones como para encontrar límites dentro de una imagen.

 Para el proceso de la detección de regiones se usan técnicas basadas en las similitudes por ejemplo:

 • Binarización basada en el uso de umbrales. • Crecimiento de regiones mediante la adición de pixeles. • División de regiones. • Similitud de textura, color o nivel de gris.

   

Para el proceso de detección de límites o detección de bordes se usan cierto tipo de operadores:

 • Operadores de primera derivada.

Page 18: UGV Line Tracking System (Unmanned Ground Vehicle) Sergio

18  

• Operadores de segunda derivada. • Operadores morfológicos.

   

El resultado de la segmentación de una imagen es un conjunto de segmentos que cubren en conjunto a toda la imagen, o un conjunto de contornos extraídos de la imagen. Cada uno de los pixeles de una región es similar en alguna característica, como el color, la intensidad o la textura. Regiones adyacentes son significativamente diferentes con respecto a la misma característica(s).

   

3.7 Transformación de Perspectivas:  

La transformación de perspectiva esta cercanamente relacionada con la proyección de perspectiva, ya que esta se encarga de representar puntos tridimensionales en imágenes bidimensionales en un conjunto de líneas de proyección que se encuentran en un punto en común denominado el centro de la proyección.

 La transformación de perspectiva Figura 3.14 es una transformación invertida del plano real a

una proyección que al trazar líneas rectas estas concuerdan con la ubicación real de los puntos.

 

 

Figura 3.14 Transformación de Perspectiva (Homografía). Tomada de Learning OpenCV    3.8 BoeBot Robot:  

Es un robot compuesto por un chasis de aluminio, el cual sirve de soporte para dos servo- motores de rotación continua, este robot permite además adicionar un modulo BASIC Stamp de Parallax el cual permite la programación de microcontroladores y demás dispositivos

Page 19: UGV Line Tracking System (Unmanned Ground Vehicle) Sergio

19  

electrónicos, la función básica de el Boebot Robot en el desarrollo del proyecto fue el de servir como plataforma para ensamblar sobre él, otras tarjetas de procesamiento y microcontroladores que también harían parte del hardware.

   

 

Figura 3.15 BoeBot Robot Tomada de Parallax.com      3.9 Arduino UNO:  

El microcontrolador Arduino es una plataforma electrónica abierta basada en hardware y software flexible y fácil de usar. El Arduino está diseñado para artistas, diseñadores, aficionados y cualquier persona que esté interesada en crear objetos y ambientes interactivos.

 Arduino puede medir el ambiente al recibir información de una gran variedad de sensores y con base en esto puede cambiar sus alrededores controlando luces, motores, y otros dispositivos. El microcontrolador que está integrado en la tarjeta el ATmega328 se puede programar usando el lenguaje de programación de Arduino (basado en Wiring) y el espacio de desarrollo de Arduino (basado en Procesing). Los proyectos de Arduino pueden funcionar de manera independiente y también se pueden comunicar con otro tipo de software que se encuentre activo en una computadora (p.ej. Flash, Processing, MaxMSP).

 Las tarjetas pueden ser ensambladas manualmente y también se pueden comprar pre- ensambladas; el software de programación se puede descargar de manera gratuita. Los diseños de hardware de referencia (CAD) están disponibles bajo una licencia abierta y el usuario puede adaptarlos según sus necesidades.

 Arduino recibió una Mención Honorífica en la sección Digital Communities de la edición del 2006 del Ars Electronica Prix. El equipo Arduino (Arduino team) está conformado por: Massimo Banzi, David Cuartielles, Tom Igoe, Gianluca Martino, and David Mellis. Credits.

 

Page 20: UGV Line Tracking System (Unmanned Ground Vehicle) Sergio

20  

Las características del Arduino Uno son:  

Microcontrolador ATmega328, 14 pines de entrada/salida digital, oscilador cerámico de 16Hz, conexión por medio de puerto USB, fácil comunicación con otros dispositivos, número ilimitado de aplicaciones.

   

El modelo de Arduino con el que se trabajó en este proyecto fue el Arduino Uno, el cual fue usado para establecer la comunicación entre el código de detección de ruta y los servomotores del Boebot.

 

 

Figura 3.16 Tarjeta de programación Arduino Uno Tomada de Arduino.cc

 3.10 BeagleboardXM:  

La BeagleBoardXM es una tarjeta, de bajo costo equipada con un procesador ARM Cortex A8 de bajo costo manufacturado por Texas Instruments, esta tarjeta cuenta con memoria RAM de 512MB de 166MHz de velocidad, conector µSD, 4 puertos USB, puerto serial, salida y entrada de audio estéreo.

 La BeagleBoardXM está diseñada específicamente para la comunidad de software libre u Open Source Community. Está equipada con una cantidad de características mínimas que le permiten al usuario experimentar la potencia de su procesador, a pesar de ser una plataforma dirigida a la comunidad de software libre no está diseñada para ser una plataforma de completo desarrollo ya que muchas de las características e interfaces del procesador no son accesibles desde la BeagleBoardXM.

 La BeagleBoardXM se usó como plataforma de desarrollo e implementación para el software de detección de ruta, ya que sobre esta se instalo el sistema operativo Angstrom el cual se caracteriza por ser una versión ligera de Linux diseñada para dispositivos embebidos. Junto con el sistema operativo que se instaló se usaron las diferentes características de hardware que ofrecía la BeagleBoardXM para el apropiado desarrollo de este proyecto.

Page 21: UGV Line Tracking System (Unmanned Ground Vehicle) Sergio

21  

 

Figura 3.17 BeagleBoardXM Tomada de BeagleBoard.org.      3.11 El software libre Angstrom:  

Angstrom es una distribución de Linux diseñada para dispositivos embebidos (PDA’s, teléfonos móviles, routers .etc.). La comunidad Angstrom comenzó con un grupo de personas que trabajaban en proyectos relacionados con OpenEmbedded, openZaurus y OpenSimpad. Su idea principal era crear distribuciones de Linux para dispositivos embebidos amigables al usuario.

Page 22: UGV Line Tracking System (Unmanned Ground Vehicle) Sergio

22  

4. OBJETIVOS        4.1 Objetivo General  

Implementar en un robot móvil un sistema de seguimiento de línea usando visión por computador.

 4.2 Objetivos Específicos  

Adecuar una plataforma móvil PARALLAX para su uso como seguidor de línea.

Diseñar un algoritmo de detección de línea basado en visión por computador.

Implementar el algoritmo de detección y seguimiento de línea en una plataforma de desarrollo Beagle Board.

 Evaluar el desempeño del sistema bajo métricas euclidianas.

Page 23: UGV Line Tracking System (Unmanned Ground Vehicle) Sergio

23  

5. ESPECIFICACIONES  Este proyecto está construido sobre la unión de dos grandes pilares de la ingeniería la programación y la el trabajo sobre circuitos integrados, con base en estos dos pilares se usaron varios métodos de procesamiento de imágenes y se trabajó con diferentes circuitos integrados hasta encontrar el algoritmo más adecuado y que por supuesto pudiera trabajar de la mano con el microcontrolador que se usó para dar forma poco a poco a este proyecto.

 El proyecto está basado en la conjunción de dos algoritmos, el primero un algoritmo de procesamiento de imágenes y detección de ruta con transmisión de datos y el segundo un algoritmo de recepción y transmisión de datos desde el algoritmo de detección de ruta hacia los servomotores encargados del movimiento de todo el robot diseñado.

 El robot fue diseñado con propósitos meramente de visión artificial ya que cuenta en su parte superior con una cámara web y en el centro del chasis cuenta con las tarjetas de procesamiento que son parte también del proyecto.

 La idea general es hacer varias capturas desde la cámara que viene con el robot a lo largo de una ruta previamente definida y con estas capturas hacer un análisis exhaustivo para determinar cómo deben ser los movimientos del robot a lo largo de la trayectoria analizada.

 Detección de Trayectoria  El algoritmo de detección de trayectoria se basa en las bibliotecas de código abierto de OpenCV las cuales permiten trabajar de forma simple con imágenes, con base en este se inicia con una captura de imagen desde la cámara Ps3 Eye View que viene con el robot y a partir de esta captura la imagen resultante es sometida a un proceso de binarización y análisis posterior con el fin de determinar cuál es la ruta más adecuada a seguir por el robot, una vez se obtienen todos los datos referentes a la ruta definida por el algoritmo, estos se envían como una sola trama al microcontrolador para que el dentro del algoritmo que también se diseño reciba estos datos y los transforme en ordenes a cada uno de los servomotores para que sigan la ruta indicad, a continuación se puede apreciar un diagrama de bloques del algoritmo de detección de ruta.

Page 24: UGV Line Tracking System (Unmanned Ground Vehicle) Sergio

24

6. DESARROLLO  

 

 

     6.1 Acondicionamiento chasis BoeBot.  Para este proyecto se uso como estructura principal el chasis de un robot, el BoeBot® de Parallax, una plataforma reprogramable la cual es comúnmente usada para efectuar diversos proyectos de robótica, equipado con servomotores y una plataforma de aluminio donde se van a ensamblar las diferentes tarjetas de procesamiento con las que vamos a trabajar durante el proyecto, la imagen del BoeBot y su proceso de ensamble se presenta a continuación:

     6.1.1 Placa Base BoeBot  

La placa base del BoeBot es la superficie donde se van a ubicar todas las tarjetas de procesamiento con las que fue posible desarrollar el proyecto, esta placa está compuesta por una superficie de aluminio, 2 servos y una “rueda” pequeña en la parte trasera de la estructura como se puede apreciar, es importante notar que en esta figura los servos se encuentran sin las ruedas.

 

 

Figura6.1 Placa Base BoeBot Tomada de Irobotorium.com

Page 25: UGV Line Tracking System (Unmanned Ground Vehicle) Sergio

25

6.1.2 Placa Base BoeBot y Tarjeta de Ensamble de Circuitos  

 

 En esta figura se aprecia ya la estructura de aluminio con sus respectivas ruedas y debajo de esta se encuentra la tarjeta que también hace parte del modelo BoeBot® de Parallax, sobre esta tarjeta se ensamblo el circuito regulador de voltaje que iba a alimentar los servomotores.

 

 

Figura 6.2 Placa Base BoeBot y Tarjeta de Ensamble de Circuitos. Tomada de Learn.Parallax.com

Page 26: UGV Line Tracking System (Unmanned Ground Vehicle) Sergio

26

 

 

6.1.3 Placa de BoeBot Ensamblada      Una vez ensamblado el BoeBot con la tarjeta donde del circuito regulador de voltaje, se ensamblaron las demás tarjetas de procesamiento: El Arduino Uno, BeagleBoardXM. Y la cámara Ps3 Eye.

 

 

 

Figura 6.3 Robot Detector de Ruta Ensamblado

Page 27: UGV Line Tracking System (Unmanned Ground Vehicle) Sergio

27  

 

 

6.1.4 Puesta en funcionamiento parte eléctrica hardware.  

Para la puesta en funcionamiento de la parte eléctrica del proyecto fue resuelta al dividir las funciones en tres grupos de necesidades:

 1. Servomotores

 Para alimentar los servomotores Parallax, se utilizó una batería recargable de 7.2V a 1080Amperios, la cual fue conectada a un circuito regulador de voltaje compuesto por 2 LM7805 los cuales tenían a cada salida 5.1V esto con el fin de evitar una sobre carga en los servomotores. A continuación se ilustra la alimentación de los servomotores:

     

 

Figura 6.4 Alimentación Eléctrica Servo Motores      

2. BeagleBoardXM  

La alimentación eléctrica de la BeagleBoardXM fu provista por un regulador de voltaje AC el cual a su salida tenía 5V a 4 A.

 3. Ps3 Eye View y Arduino UNO

 La alimentación eléctrica para la cámara y el Arduino UNO la entregaba la BeagleBoardXM en sus respectivos puertos USB.

Page 28: UGV Line Tracking System (Unmanned Ground Vehicle) Sergio

 

28  

6.2 Algoritmo de Deteccion de Ruta  

El funcionamiento del algoritmo de detecci6n de ruta funciona de acuerdo al siguiente diagrama de flujo:

                                             

Si                    

Si no .:ncontro pixelftoma el utlimo pixel como pixelf

y h<l\l! Centro=pixeli+(pixelf-pix

di) 2            

Con pit:.gora<; se dekrmina 13 distanci:en pixeles entrelos puntos.

Con el im-erso de la tangente se determina d angulo de giro.

 s comiet1e a ems con distcm-z*dist pixd f

 Se col\\lerte Ia distancia entiempo £k a\-:u-.ceI

carro y e l angulo <k giro en tiempO de giro.  

Se detem1ina Ia orden con d:mgulo de giro. I : izquierda.2: derecha. 3:adel:mte.-l::tt ras

       

En lll\.'.1 c:..den..1de caracteres se escr2i 55 seguido por Ia orden el t iempo <k ejecucion y 1-----------.J

punt o.

Page 29: UGV Line Tracking System (Unmanned Ground Vehicle) Sergio

 

29  

Figura 6.5 Diagrama de bloques Algoritmo detección de pista.  6.2.1 Captura de Imagen  

El algoritmo captura imagen de la cámara Ps3 Eye View tomando varias muestras para ser posteriormente analizadas.

 

 

Figura 6.6 Captura de Video Cámara Ps3 Eye View  6.2.2 Umbralización  

Como se mencionó anteriormente se tomaron imágenes muestra que contenían los 3 canales de color RGB, por lo que fue necesario hacer un proceso de binarización para facilitar el análisis y el procesamiento de las muestras, en este proceso la cuantificación de las muestras toma un valor de 2 bits blanco o negro, ya que son muestras umbralizadas.

 

 

Figura 6.7 Umbralización de las Muestras Tomadas

Page 30: UGV Line Tracking System (Unmanned Ground Vehicle) Sergio

 

30  

 

 6.2.3 Transformación de Perspectiva Birds Eye View  

Dentro de los diferentes métodos empleados para la captura y análisis de las imágenes tomadas se encuentra la transformación de perspectiva por medio del bird’s eye view, este consiste en la proyección superior de un plano, con la perspectiva del observador como si se encontrara sobre la superficie, la transformación de la imagen frontal de la trayectoria y la transformación en una proyección de un plano superior se observa a continuación.

 

     

 

Figura 6.8. Ilustración de Bird’s Eye View Tomada de Learning OpenCV      6.2.4 ROI de la Imagen  

Con el fin de obtener una imagen con la cual el software de trayectoria pudiera trabajar mejor, fue necesario recortar la imagen a lo largo y a lo ancho, en este proceso se uso la función ROI o Region of Interest de OpenCV que como su nombre lo dice busca determinar una porción de imagen precisa dentro de otra que ya esta definida, lo que se buscaba básicamente es que como se observa en las imágenes previamente presentadas, hay porciones del video que pueden ser omitidas ya que no serian analizadas por el software, por ejemplo dentro de estas porciones que no servirían, están las esquinas superiores e inferiores del video, por medio de la función ROI se recorto como se observa en la figura 5.8 obteniendo así la imagen recortada del recorrido que en realidad se usaría.

Page 31: UGV Line Tracking System (Unmanned Ground Vehicle) Sergio

 

31  

 

Imagen Original

         

Transformaeion de Perspeetiva

       

ROI de La Imagen

   

Figura 69 ROI delasMuestnsTomadas

Page 32: UGV Line Tracking System (Unmanned Ground Vehicle) Sergio

 

32  

6.2.5 Recorrido de la Imagen Capturada y Almacenamiento de Centros de Pista.  

Con el fin de encontrar la ruta deseada fue necesario primero recorrer la imagen que se obtuvo desde la cámara, como sabemos que cada pixel toma solo valores de blanco y negro gracias a la umbralización, con base en esto el ROI de la pista se dividió en 4 segmentos y se recorrió cada segmento de la pista en su totalidad para encontrar un pixel negro que indicaba el comienzo de la misma.

 

 

Figura 6.10 Recorrido de Pista

Page 33: UGV Line Tracking System (Unmanned Ground Vehicle) Sergio

333

 

 

Una vez el algoritmo encuentra un pixel negro inicia un conteo de pixeles negros con el fin de determinar el ancho de la pista que está viendo.

 

 

Figura 6.11 Ancho de Pista  

Este dato se almacena en una variable para determinar su centro de la siguiente manera:      

Formúla 6.1 Definición de Centro  

Este sería nuestro primer dato, el centro del primer segmento de la pista, luego hace esto con cada segmento hasta determinar los 4 centros de la pista como se aprecia a continuación.

 

 

Figura 6.12 Centros de Pista

Page 34: UGV Line Tracking System (Unmanned Ground Vehicle) Sergio

 

34  

 

 6.2.6 Definición de Ángulos y Longitud de Trama.  

Al tener cada centro de la pista almacenado en un vector unimos un centro con otro definiendo tramas, para este caso en particular en cada ROI aparecerán 3 tramas.

 

 

Figura 6.13 Tramas en Muestra de la Pista  

Posteriormente para definir el ángulo y la longitud de cada trama tomamos una por una y hacemos el siguiente análisis.

 Se cuenta con 2 coordenadas en cada centro equivalentes a su posición en la imagen, con base en esto se traza un triangulo para determinar la longitud de la línea que une a los dos centros y el ángulo al que se encuentra uno del otro así:

 

 

Figura 6.14 Angulo y Longitud de Trama

Page 35: UGV Line Tracking System (Unmanned Ground Vehicle) Sergio

 

35  

   

Para el algoritmo de detección de ruta, el ángulo se define como:  

 

Figura 6.15 Angulo y Longitud de Trama        

Formula 6.2 Definición del Angulo de Tramo      

Una vez definido el ángulo y la longitud de cada tramo, se tuvieron las siguientes observaciones:

 1. Se pudo observar que la magnitud del ángulo no era tan considerable por lo que no era

eficiente que el robot girara cada vez que detectara un ángulo pequeño por lo que se definieron rangos de ángulo para caracterizar el movimiento en curva del robot. Cabe aclarar que lo que se buscaba era evitar el giro del robot por ángulos muy pequeños, pero cada giro está definido por la magnitud de su ángulo.

 2. Se observo que los motores del robot giraban de manera diferente por lo que fue

necesario caracterizar cada motor por separado y definir una variable de movimiento para cada robot.

 Con base en estas observaciones se definieron los siguientes tipos de giro, conforme el ángulo.

 Primero: si el ángulo está entre -90° y 7° indica que el robot debe girar a la izquierda, por lo que el robot gira conforme el ángulo que le indica el algoritmo de detección de ruta.

 Segundo: si el ángulo está entre 7° y 90° indica que el robot debe girar a la derecha por lo que el robot gira conforme al ángulo que le indica el algoritmo de detección de ruta.

Page 36: UGV Line Tracking System (Unmanned Ground Vehicle) Sergio

36

 

 

Tercero: si el ángulo está entre -7° y 7° para evitar giros no considerables se le indica al robot que el robot debe desplazarse en línea recta conforme la longitud del tramo que detectó el algoritmo de detección de ruta.

 En el caso en que el robot no detectara pista fue necesario incluir la orden de reversa, una vez el robot la realiza vuelve a capturar imagen y sigue con su rumbo normal.

 Esta orden se almacena y se une con la orden de longitud del trayecto.

 Estos datos hacen parte de una sola trama la cual se envía al microcontrolador Arduino UNO como un ejemplo de la trama que se envía al microcontrolador se presenta la siguiente explicación:

 Inicio de Trama

   Orden

 Número

Longitud de Tramo

 Significado

  255 Mover Izquierda 1 X Mueve el Motor Derecho X Tiempo   255 Mover Derecha 2 Y Mueve el Motor Izquierdo Y Tiempo   255 Andar Derecho 3 Z Mueve el Motor Derecho Z Tiempo   255 Reversa 4 B Mueve el Motor Derecho B Tiempo        

6.3 Envío de Trama al Microcontrolador Arduino UNO  

Una vez se tienen los datos de cada trama (longitud, ángulo), estos se envían al microcontrolador tramo por tramo.

 Luego el micro-controlador recibe los datos, los analiza y envía la respectiva orden de movimiento a cada servo motor tal como se indica en el siguiente diagrama de bloques:

Page 37: UGV Line Tracking System (Unmanned Ground Vehicle) Sergio

 

37  

 

Dedaraci6n de variables    

Recibe dato serial y lo pasa a entero y almacena 1+---,

   

Si          

inicio=inicio+a                              

tiempo=tiempo* 10 tie mpo=tiempo+a

           

lvlueve e l motor duecho dunUlte el \'alor de tie mpo

MueYe d motor izquierdo durante el valor de tiempo

             

lvlueve para aatras durante el valor de tiempo

             

Figura6.17

Page 38: UGV Line Tracking System (Unmanned Ground Vehicle) Sergio

 

38  

7. ANÁLISIS DE RESULTADOS  

Como parte de los objetivos específicos de este trabajo de grado se midieron 2 tipos diferentes de error para evaluar la efectividad del código de detección de ruta contra la efectividad al realizar el mismo procedimiento de manera manual.

 Los 2 tipos de mediciones de error que se efectuaron fueron:

 1. El comportamiento del robot ante diferentes tipos de curva.

 2. El error desde una vista superior del movimiento que sigue el robot, contra una

trayectoria deseada.            7.1 Comportamiento del Robot Ante Diferentes Tipos de Curva  

Se definieron varios tramos con diferente inclinación para medir y caracterizar el comportamiento del robot ante los tramos que se le pudieran presentar al analizar una trayectoria, esta medida buscaba esclarecer hasta que punto el robot respondía de manera correcta ante una curva con diferente inclinación y si los giros a la izquierda eran igual de acertados que los giros a la derecha.

 Se analizaron 6 curvas diferentes

 Los datos que se obtuvieron del análisis de trayectoria con el algoritmo de detección de ruta fueron:

 Curva No1.

     

X(cm) Y(cm) 0,00 0,00 0,53 4,19 0,53 8,39 1,12 12,42 1,12 16,62 1,72 20,89 1,99 21,02 3,32 25,21 3,59 25,33 5,12 29,52 9,43 29,52

 Esta fue la trayectoria de la curva que arrojó el algoritmo de detección de trayectoria, como se puede apreciar a continuación hay algunos tramos que no están siguiendo una trayectoria deseada, sin embargo se ve como el robot intenta corregir su ruta para de esta manera

Page 39: UGV Line Tracking System (Unmanned Ground Vehicle) Sergio

 

39  

recorrer el tramo que se midió, a continuación el traslape de la ruta que siguió el robot con la curva original:

 

     

Curva No. 2      

X(cm) Y(cm)

0,00 0,00 0,00 4,22 1,12 8,31 2,98 12,71 3,26 12,84 6,71 17,03 6,99 17,15

10,84 21,34 11,12 21,47 14,44 25,66 14,71 25,79 17,51 29,98 21,99 29,15 22,11 29,42 26,30 27,89

     

En este caso el robot dió reversa varias veces, esto debido a que como se aprecia en la figura original la curva tiene una inclinación bastate considerable por lo que el robot no fue capaz de seguirla y debió realizar varias capturas al dar reversa para retomar la ruta original, a continuación se ilustra el traslape de la ruta que siguió el robot con la curva original:

Page 40: UGV Line Tracking System (Unmanned Ground Vehicle) Sergio

 

40  

             

Curva No. 3    

X(cm) Y(cm) 0,00 0,00 0,00 4,19 0,00 8,38 0,00 12,45 0,53 16,64 0,53 20,89 0,66 21,16 2,45 25,35 2,73 25,48 4,26 29,67

 

En este caso se obseva como hay varios tramos que presentan un comportamiento que no es el deseado, esto pudo ser ocasionado por fallas en la medición por parte de la cámara o simplemente por el hecho de que la curva original presenta un grado de giro considerable lo que pudo lleva a que el robot no generara la curva que se buscaba, como se aprecia a continuación el robot llegó al final de la curva pero presento los tramos no deseados mencionados anteriormente.

Page 41: UGV Line Tracking System (Unmanned Ground Vehicle) Sergio

 

41  

 

Curva No. 4    

X(cm) Y(cm)

0,00 0,00 -0,53 4,19 -0,53 8,39 -0,53 12,45 0,13 16,64 0,35 16,85 0,35 21,08 0,35 25,23 0,62 25,36 4,83 25,36 9,04 25,36

     

En este caso en particular se ve como el robot hace un giro de 90° esto pudo haber sido causado al no haber existido una detección de trayectoria acertada y por ende el robot se vió forzado a hacer este giro para seguir la ruta en la que se encontraba, a continuación se aprecia como el robot llevó a cabo el seguimiento de la curva original.

 

Page 42: UGV Line Tracking System (Unmanned Ground Vehicle) Sergio

 

42  

   

Curva No. 5  

X(cm) Y(cm)

0,00 0,00 0,00 4,19 0,00 8,25 0,00 12,44 0,00 16,64

-1,80 20,79 -1,53 20,91 -5,98 25,10

-10,18 25,10 -14,39 24,37 -18,94 22,39

     

Para este caso vemos como el robot siguió una trayectoria suave completando de manera exitosa el trayecto original como se aprecia a continuación:

 

Page 43: UGV Line Tracking System (Unmanned Ground Vehicle) Sergio

 

43  

Curva No. 6  

   

X(cm) Y(cm)

0,00 0,00 0,00 4,19

-1,00 8,40 -3,67 13,26 -3,89 13,47 -6,88 17,66

       

En este caso se aprecia como el robot al principio se desvía completamente de la trayectoria pero retoma su rumbo y termina de realizar su trayecto a lo largo de la curva como se aprecia a continuación:

 

         

7.2 Error desde una Vista Superior con Base en Medidas Euclidianas.  

Para medir el correcto funcionamiento del algoritmo de detección de ruta y de la transmisión de los datos al microcontrolador se definió como protocolo de pruebas un método que para evaluar el correcto seguimiento de la trayectoria por parte del robot.

 El método consistió en la instalación de una cámara con vista superior perpendicular hacia la pista de prueba y con base en los datos que arrojaba el algoritmo detector de ruta se determinó la trayectoria que el robot siguió en su recorrido, al final de este recorrido se comparó mediante distancia euclidiana con la trayectoria deseada para de esta manera determinar el error que se presentó entre la trayectoria original y la que siguió el robot.

Page 44: UGV Line Tracking System (Unmanned Ground Vehicle) Sergio

 

44  

 

Figura 7.1 Ejemplo de la ubicación de la cámara para el protocolo de pruebas.  

Inicialmente se trazó la ruta que el robot siguió durante el proceso de verificación del código de detección de ruta como se puede apreciar a continuación.

 

 

Posteriormente se tomaron varias muestras del recorrido que realizaba el robot sobre la ruta definida avanzando hacia la izquierda y avanzando a la derecha, de cada muestra se obtuvieron las coordenadas de cada tramo y se compararon con las que tenía la ruta ideal determinando su distancia euclidiana por medio de la siguiente fórmula:

         

Formula 7.1 Definición de la Distancia Euclidiana

Page 45: UGV Line Tracking System (Unmanned Ground Vehicle) Sergio

 

45  

Ruta No.1 Derecha a Izquierda  

 

Grafica de La Ruta Numero 1 del Robot, Datos en Anexo de Tabla1  

Distancia Euclidiana Tramo Manual vs Ruta No.1  

(cm)  

Ruta No.2 Derecha a Izquierda  

 

Grafica de La Ruta Numero 2 del Robot, Datos en Anexo de Tabla 2

Page 46: UGV Line Tracking System (Unmanned Ground Vehicle) Sergio

 

46  

Distancia Euclidiana Tramo Manual vs Ruta No.2  

(cm)      

Ruta No.3 Derecha a Izquierda  

 

Grafica de La Ruta Numero 3 del Robot, Datos en Anexo de Tabla 3  

Distancia Euclidiana Tramo Manual vs Ruta No.3  

(cm)  

Ruta No.4 Izquierda a Derecha  

Page 47: UGV Line Tracking System (Unmanned Ground Vehicle) Sergio

 

47  

Grafica de La Ruta Numero 4 del Robot Datos en Anexo de Tabla 4      

Distancia Euclidiana Tramo Manual vs Ruta No.4          

Ruta No.5 Izquierda a Derecha  

 

Grafica de la Ruta Número 5 del Robot, Datos en Anexo de Tabla 5    

Distancia Euclidiana Tramo Manual vs Ruta No.5  

(cm)

Page 48: UGV Line Tracking System (Unmanned Ground Vehicle) Sergio

 

48  

8. CONCLUSIONES  

Es importante realizar una buena calibración ya que esta constituye una base importante para el desarrollo de cualquier algoritmo que trabaje con visión por computador.

 El valor de la umbralización que entrega la transformación Otsu permite trabajar con las imágenes tomadas de la cámara ya que por medio de esta transformación a los pixeles de la imagen se le otorga únicamente 2 valores 255 para blanco y 0 para negro, lo que hace más fácil la caracterización y posterior transformación de las imágenes.

 Es necesario siempre realizar una umbralización apropiada para poder trabajar con las imágenes que se capturen, una mala umbralización no permitirá que los valores de pixeles solo tomen dos valores y las medidas se verán alteradas o por ruido o por valores de pixel no definidos.

 Para este proyecto fue necesario trabajar con la imagen recortada aplicando un ROI ya que si se trabajaba con la imagen con tamaño normal, los elementos ajenos a la ruta eran vistos como ruido y hacían que las mediciones se alteraran.

 Siempre que se trabajen con robots que tengan movimiento es de suma importancia parametrizar las características de cada uno de sus componentes, en este caso fue necesario caracterizar cada motor ya que estos funcionaban de manera diferente.

 Para este proyecto fue necesario tener una ruta bien iluminada para evitar que aparezcan sombras y estas generen ruido en el código.

 Durante el desarrollo del proyecto se evidencio como se pueden integrar varias fuentes de software y hardware para el desarrollo de un proyecto en común, esto demuestra que trabajar con sistemas Open Source es una ventaja.

 Es importante resaltar la importancia de la calibración de la cámara ya que por medio de esta tenemos una relación pixeles/centímetros y por ende la instrucción de longitud de trayecto tiene un equivalente tanto en pixeles como en centímetros.

 Los resultados obtenidos en el análisis de las curvas nos dejan la conclusión de que el código trabaja de manera aceptable y que es bastante útil el hecho que ante alguna posible falla este de reversa y vuelva a capturar imagen.

 Los resultados al determinar las distancias euclidianas de cada una de las 5 rutas contra la ruta trazada manualmente son congruentes con el trazo y el seguimiento de las trayectorias originales ya que en los videos tomados se ve como el robot sigue adecuadamente la pista. Los errores que se presentaron probablemente fueron causados por errores en la captura de ruta o ruido que se pudiera presentar durante la detección de trayectoria por parte del algoritmo.

Page 49: UGV Line Tracking System (Unmanned Ground Vehicle) Sergio

 

49  

9. REFERENCIAS        [1] BeagleBoard-xM Rev C System Reference Manual. (2010).

[2] Bradski, G., & Kaehler, A. (n.d.). Learning OpenCV.

[3] Pratt, W. K. (2001). Digital Image Processing. New York, USA: John Wiley & Sons, Inc. doi:10.1002/0471221325

 [4] Anil_K_Jain. (n.d.). Fundamentals of Digital Image Processing.

[5] Russ, J. C. (n.d.). The Image Processing Handbook.

[6] Ohya, a., Kosaka, a., & Kak, a. (n.d.). Vision-based navigation of mobile robot with obstacle avoidance by single camera vision and ultrasonic sensing. Proceedings of the 1997 IEEE/RSJ International Conference on Intelligent Robot and Systems. Innovative Robotics for Real-World Applications. IROS ’97, 2, 704–711. doi:10.1109/IROS.1997.655088

 [7] Haselhoff, A., & Kummert, A. (2009). 2D line filters for vision-based lane detection

and tracking. 2009 International Workshop on Multidimensional (nD) Systems, 1–5. doi:10.1109/NDS.2009.5196176

 [8] Reccari, G., Caselli, Y., & Zanichelli, F. (1997). Vision-based Line Tracking and

Navigation in Structured Environments *, 406–411.  [9] Winters, N., Lacey, G., Ireland, D., Winters, N., & Lacey, G. (2000). Omni-directional

Vision for Robot Navigation.  [10] Thrun, S., Montemerlo, M., Dahlkamp, H., Stavens, D., Aron, A., Diebel, J., Fong, P.,

et al. (2006). Stanley: The robot that won the DARPA Grand Challenge. Journal of Field Robotics, 23(9), 661–692. doi:10.1002/rob.20147

[11] Francisco Gabriel Ortiz. Procesamiento Morfologíco de imagines en color. Tesis

Doctoral, Escuela Politecnica Superior.  

Page 50: UGV Line Tracking System (Unmanned Ground Vehicle) Sergio

 

50  

10. Anexos  

10.1 Anexo de Tabla 1  

X(cm) Y(cm)

0,00 -2,00

-4,20 -2,00

-8,40 -2,00

-12,46 -2,00

-16,67 -2,00

-20,87 -2,00

-24,95 -2,00

-29,14 -2,53

-33,36 -2,53 -37,44 -2,53

-41,65 -2,53

-45,85 -2,53

-49,92 -2,53

-54,13 -2,53

-58,33 -2,53

-62,41 -2,53

-66,61 -2,53

-70,72 -1,14

-75,42 0,70

-75,54 0,97

-79,73 3,89

-79,86 4,17

-79,86 8,36

-79,86 12,56

-79,86 16,63

-79,86 20,83

-79,86 25,02

-79,86 29,10

-79,86 33,29

-79,86 37,49

-79,86 41,56

-79,33 45,75

-79,33 50,04

-79,06 50,17

-77,13 54,36

-76,86 54,48

-75,00 58,67

-74,72 58,80

-70,53 58,8

-66,34 58,8

-62,28 58,8

-58,08 58,8

-53,89 58,8

-49,84 58,8

Page 51: UGV Line Tracking System (Unmanned Ground Vehicle) Sergio

 

51  

 

-45,64 58,8

-41,45 58,8

-37,39 58,8

-33,19 58,8

-28,98 58,8

-24,92 58,8

-20,73 58,20

-16,50 58,2

-12,43 58,2

-12,16 58,07

-7,97 57,21

-3,57 57,21

-3,30 57,08

-0,44 52,89

-0,71 52,77

-0,71 48,55

-0,71 44,32

-0,71 40,23

-0,71 36,00

-0,71 31,79

-0,71 27,70

-0,71 23,51

-0,71 19,31

-0,71 15,25

-0,71 11,06

-1,58 6,85

-1,58 2,58 -1,31 2,46

-3,77 -1,73

-4,04 -1,86

-8,23 -1,86

-12,42 -1,86    

10.2 Anexo de Tabla 2  

X (cm) Y(cm) 0,00 -2,00

-4,22 -2,00

-8,43 -2,00

-12,51 -2,00

-16,70 -1,40

-20,87 -1,40

-24,86 -0,08

-26,59 1,65

-27,26 6,46

-27,39 6,59

-29,32 10,78

-29,59 10,90

Page 52: UGV Line Tracking System (Unmanned Ground Vehicle) Sergio

 

52  

 

-29,59 15,09

-29,59 19,28

-29,59 23,34

-29,59 27,53

-29,59 31,72

-29,59 35,78

-29,59 39,97

-29,59 44,16

-29,59 48,22

-29,59 52,42

-28,06 56,74

-28,06 61,21

-28,28 61,42

-26,41 65,61

-26,14 65,73

-24,01 69,92

-23,74 70,05

-19,55 70,05

-15,35 70,05

-11,29 70,05

-7,09 70,05

-2,89 70,05

1,17 70,05

5,36 70,05

9,55 70,05

13,61 70,05

17,80 70,05 21,99 70,05

26,05 70,05

30,25 70,05

34,46 70,05

38,53 70,05

42,72 70,65

46,88 70,12

50,91 68,80

54,10 64,61

57,56 60,42

57,29 60,29

57,29 56,08

57,29 51,87

57,29 47,79

57,29 43,60

57,29 39,40

57,29 35,33

57,29 31,14

57,29 26,95

57,29 22,89

57,29 18,69

56,23 14,38

Page 53: UGV Line Tracking System (Unmanned Ground Vehicle) Sergio

 

53  

 

56,23 9,99

55,96 9,87

53,90 5,68

53,63 5,55

49,44 1,36

45,26 -2,84

41,19 -2,84

40,98 -3,05

36,78 -3,05

36,84 -3,05

36,84 -3,05

36,98 -3,05

37,04 -3,05

36,97 -3,05

32,78 -3,05

28,72 -3,05    

10.3 Anexo de Tabla 3  

X (cm) Y (cm)

-30,00 25,00

-30,00 29,19

-30,00 33,39

-28,86 34,53

-28,99 34,66

-26,06 38,85

-20,99 38,79

-20,78 38,58

-16,59 39,51

-12,34 39,32

-12,55 39,53

-8,36 39,53

-4,17 39,53

-0,11 39,53

4,08 39,53

8,27 39,53

12,33 39,53

16,52 39,53

20,71 39,53 24,76 39,53

28,96 39,53

33,16 39,53

37,22 39,53

41,43 39,53

45,63 39,53

44,65 35,54

42,85 31,35

42,73 31,08

Page 54: UGV Line Tracking System (Unmanned Ground Vehicle) Sergio

 

54  

 

40,00 26,89

40,00 22,09

40,69 17,84

40,42 17,71

41,28 13,52

41,28 9,31

41,07 9,09

40,47 4,90

40,47 0,68

40,47 -3,42

40,47 -7,61

40,47 -11,81

40,47 -15,87

40,47 -20,06

40,47 -24,25

39,61 -28,30

38,34 -32,49

38,22 -32,76

34,03 -35,49

29,06 -35,49

28,79 -35,62

24,60 -35,62

20,41 -35,62

16,36 -35,62

12,16 -35,62

7,97 -35,62

3,76 -35,62 -0,43 -35,62

-0,43 -35,62 -4,63 -35,62

-8,82 -35,62

-9,03 -35,83

-13,22 -35,10

-17,49 -35,10

-21,61 -35,10

-25,83 -35,10

-30,10 -34,57

-34,31 -34,57

-34,53 -34,87

-35,79 -30,68

-35,09 -26,09

-35,22 -25,82

-32,69 -21,63

-32,81 -21,36

-31,88 -17,17

-31,88 -12,86

-31,88 -12,86

-32,10 -13,07

-32,10 -8,88

Page 55: UGV Line Tracking System (Unmanned Ground Vehicle) Sergio

55

 

 

 

-32,10 -4,69

-32,10 -0,64

-32,10 3,55

-32,10 7,74

-32,10 11,80

-32,10 15,99

-32,10 20,20

-32,10 24,35    

10.4 Anexo de Tabla 4  

 

X (cm)  

Y (cm)  

30,00  

25,00  

30,00  

29,21  

30,00  

33,42  

30,00  

37,49  

30,67  

41,68  

30,67  

45,91  

30,67  

50  

31,4  

50,73  

31,40  

54,96  

31,40  

59,03  

27,21  

59,83  

22,67  

61,27  

18,48  

63,86  

12,89  

64,94  

8,691  

64,94  

4,492  

64,94  

0,431  

64,94  

-3,764  

64,94  

-7,962  

64,94  

-12,03  

64,94  

-16,23  

64,94  

-20,44  

64,94  

-24,52  

64,94  

-28,73  

64,94  

-32,93  

64,94  

-37  

64,94  

-41,22  

64,94  

-45,43  

64,94  

-49,51  

64,94  

-53,72  

64,94

Page 56: UGV Line Tracking System (Unmanned Ground Vehicle) Sergio

 

56  

   

-57,97  

64,94  

-62,26  

63,73  

-66,45  

60,61  

-70,64  

57,68  

-70,64  

52,33  

-69,65  

48,14  

-69,65  

43,82  

-69,65  

39,66  

-70,51  

35,47  

-70,51  

31,18  

-70,51  

27,03  

-69,51  

22,84  

-69,51  

18,53  

-69,51  

14,38  

-65,32  

12,45  

-60,38  

11,73  

-56,19  

7,672  

-52  

4,746  

-51,23  

0,169  

-47,04  

0,169  

-42,85  

0,169  

-38,79  

0,169  

-34,6  

0,169  

-30,41  

0,169  

-26,36  

0,169  

-22,17  

0,169  

-17,97  

0,169  

-13,91  

0,169  

-9,705  

0,169  

-5,49  

0,169  

-1,406  

0,169  

2,784  

-0,496  

7,037  

-0,496  

11,23  

-0,496  

15,42  

2,097  

19,61  

4,292  

25,42  

6,354  

25,42  

10,55  

25,42  

14,74  

25,42  

18,8

Page 57: UGV Line Tracking System (Unmanned Ground Vehicle) Sergio

 

57  

10.5 Anexo de Tabla 5  

 

X (cm)  

Y(cm)  

30,00  

25,00  

25,79  

25,00  

24,73  

23,94  

23,93  

23,14  

20,68  

19,88  

14,94  

19,88  

13,34  

18,29  

8,86  

18,29  

4,52  

18,29  

3,52  

17,29  

-0,82  

17,29  

-4,99  

17,29  

-5,79  

16,49  

-10,06  

16,49  

-14,19  

16,49  

-15,79  

14,90  

-18,58  

12,10  

-22,84  

7,85  

-26,50  

4,19  

-26,50  

0,00  

-26,50  

-4,20  

-26,50  

-8,25  

-26,50  

-12,45  

-26,50  

-16,65  

-26,50  

-20,73  

-25,83  

-21,39  

-25,83  

-25,62  

-25,83  

-29,72  

-25,30  

-29,19  

-25,30  

-33,42  

-25,30  

-37,52  

-24,70  

-36,92  

-24,70  

-41,16  

-24,70  

-45,26  

-24,10  

-45,86  

-22,85  

-47,11  

-19,99  

-49,97  

-16,40  

-53,56  

-11,13  

-53,56

Page 58: UGV Line Tracking System (Unmanned Ground Vehicle) Sergio

 

58  

   

-10,07  

-52,50  

-5,75  

-52,50  

-1,55  

-52,50  

-0,75  

-51,70  

3,51  

-51,70  

7,63  

-51,70  

8,30  

-51,03  

12,55  

-51,03  

16,65  

-51,03  

17,98  

-49,70  

19,06  

-48,63  

22,19  

-45,50  

22,93  

-44,75  

22,93  

-40,56  

22,93  

-36,35  

22,93  

-32,29  

23,60  

-31,62  

23,60  

-27,37  

23,60  

-23,25  

25,39  

-21,45  

25,39  

-17,26  

25,39  

-13,07  

25,39  

-9,01  

25,39  

-4,81  

25,39  

-0,62  

25,39  

3,44  

25,39  

7,49  

25,39  

11,71  

24,80  

12,30  

23,09  

14,01