Sistemas Embebidos en Robótica Rodrigo Araya - Gustavo Bodero - Miguel Brintrup - Eduardo Labarca...

41
Sistemas Embebidos en Robótica www.austec.cl Rodrigo Araya - Gustavo Bodero - Miguel Brintrup - Eduardo Labarca - José Manuel Ortiz - José Luis Valenzuela

Transcript of Sistemas Embebidos en Robótica Rodrigo Araya - Gustavo Bodero - Miguel Brintrup - Eduardo Labarca...

Page 1: Sistemas Embebidos en Robótica  Rodrigo Araya - Gustavo Bodero - Miguel Brintrup - Eduardo Labarca - José Manuel Ortiz - José Luis Valenzuela.

Sistemas Embebidos en Robótica

www.austec.clRodrigo Araya - Gustavo Bodero - Miguel Brintrup - Eduardo Labarca - José Manuel Ortiz - José Luis Valenzuela

Page 2: Sistemas Embebidos en Robótica  Rodrigo Araya - Gustavo Bodero - Miguel Brintrup - Eduardo Labarca - José Manuel Ortiz - José Luis Valenzuela.

Índice

Desafío Estructura Mecánica Alimentación Hardware y Control Procesamiento de Imágenes

Page 3: Sistemas Embebidos en Robótica  Rodrigo Araya - Gustavo Bodero - Miguel Brintrup - Eduardo Labarca - José Manuel Ortiz - José Luis Valenzuela.

Desafío

Pelotas de distintos tamaños, pesos y colores Disposición aleatoria de las pelotas Disposición aleatoria de los recipientes Un recipiente particular para cada pelota Separación de 4 metros entre cada escenario

Page 4: Sistemas Embebidos en Robótica  Rodrigo Araya - Gustavo Bodero - Miguel Brintrup - Eduardo Labarca - José Manuel Ortiz - José Luis Valenzuela.

Estructura Mecánica: Limitaciones

Limitaciones de las bases: Debe ser construido desde CERO Dimensiones máximas extendido: 50x40x40

Limitaciones practicas: El robot no debe ser muy grande debido a lo

reducido del espacio para maniobrar Alta capacidad de movilidad en poco espacio

(radio de giro = 0) Capacidad de recoger pelotas en las esquinas

Page 5: Sistemas Embebidos en Robótica  Rodrigo Araya - Gustavo Bodero - Miguel Brintrup - Eduardo Labarca - José Manuel Ortiz - José Luis Valenzuela.

Estructura Mecánica: Planta Motriz

2 neumáticos HPI 4540 v-groove radial low profile

2 Ruedas omnidireccionales:NARP 4cm Black Poly Wheel

4 piezas de tornería

Page 6: Sistemas Embebidos en Robótica  Rodrigo Araya - Gustavo Bodero - Miguel Brintrup - Eduardo Labarca - José Manuel Ortiz - José Luis Valenzuela.

Estructura Mecánica: Motores

Motor DC Maxon 24 v DC 3980 rpm a 24V DC Consumo a 24 V:

Nominal: 250 mAh Arranque: 550mAh

264 gramos Encoder óptico de

doble cuadratura Caja reductora de

10:1

Page 7: Sistemas Embebidos en Robótica  Rodrigo Araya - Gustavo Bodero - Miguel Brintrup - Eduardo Labarca - José Manuel Ortiz - José Luis Valenzuela.

Estructura Mecánica: Chasis

Page 8: Sistemas Embebidos en Robótica  Rodrigo Araya - Gustavo Bodero - Miguel Brintrup - Eduardo Labarca - José Manuel Ortiz - José Luis Valenzuela.

Estructura Mecánica: Servo motores

Algunas características buscadas por separado:

Alto torque sin importar tamaño

Tamaño reducido sin sacrificar torque

Prestaciones regulares

Page 9: Sistemas Embebidos en Robótica  Rodrigo Araya - Gustavo Bodero - Miguel Brintrup - Eduardo Labarca - José Manuel Ortiz - José Luis Valenzuela.

Estructura Mecánica: Servo motores

3 GWS micro Servo 5.4KG 0.17S(60°)

1 Hitec HS-311 3.3KG 0.19S(60°)

1 Hitec HS-765HB 11KG 0.28S (60°)

1 GWS S666 N 24KG 0.24S (60°)

Page 10: Sistemas Embebidos en Robótica  Rodrigo Araya - Gustavo Bodero - Miguel Brintrup - Eduardo Labarca - José Manuel Ortiz - José Luis Valenzuela.

Estructura Mecánica: Balde

Funcionamiento para tres tamaños distintos de pelotas

Forma Puntiaguda Posibilidad de llegar a

las esquinas Dos GWS Micro Servo

Variar inclinación del balde

Abrir y cerrar puerta de ingreso

Page 11: Sistemas Embebidos en Robótica  Rodrigo Araya - Gustavo Bodero - Miguel Brintrup - Eduardo Labarca - José Manuel Ortiz - José Luis Valenzuela.

Estructura Mecánica: Brazo Inspirado en un camión

recolector de basura Servo Motor GWS S666 N Posee un ServoSaver

debido al largo del brazo de palanca

Otro lado solamente con rodamientos

Posee dos ejes de libertad Levantar el brazo Inclinación del balde

Page 12: Sistemas Embebidos en Robótica  Rodrigo Araya - Gustavo Bodero - Miguel Brintrup - Eduardo Labarca - José Manuel Ortiz - José Luis Valenzuela.

Estructura Mecánica: Cargador Vertical Dos Servo motores

Hitec HS-765HB (eje) GWS micro Servo (puerta)

Corazón del sistema mecánico

Sólo posee tornillos en la conexión al eje central

Utilización de tecnología aéreo espacial :P (aluminio+pegamento)

Mecanismo de rodamientos, ejes, acoples y servo motores

Consideración de tres habitáculos iguales (tres pelotas)

Una vía de admisión y otra vía de expulsión

Page 13: Sistemas Embebidos en Robótica  Rodrigo Araya - Gustavo Bodero - Miguel Brintrup - Eduardo Labarca - José Manuel Ortiz - José Luis Valenzuela.

Estructura Mecánica: Cargador Vertical

Page 14: Sistemas Embebidos en Robótica  Rodrigo Araya - Gustavo Bodero - Miguel Brintrup - Eduardo Labarca - José Manuel Ortiz - José Luis Valenzuela.

Alimentación: Ion Litio Batería usada para

alimentar todas las tarjetas electrónicas

Alta concentración de energía

Cargador incorporado Baja tasa de carga-

descarga Cargador incorporado

muy frágil Se opta por usar

cargador externo

Page 15: Sistemas Embebidos en Robótica  Rodrigo Araya - Gustavo Bodero - Miguel Brintrup - Eduardo Labarca - José Manuel Ortiz - José Luis Valenzuela.

Alimentación: Ni-Mh 3 packs pre-

ensamblados HITEC 54116 9,6 V 1600MAh

Cargador Hitec CG-335 Pro

Fuente de poder 10 Ah 12V para el cargador

Alta tasa de carga-descarga

Utilizada para energizar los motores tractores (maxon)

Page 16: Sistemas Embebidos en Robótica  Rodrigo Araya - Gustavo Bodero - Miguel Brintrup - Eduardo Labarca - José Manuel Ortiz - José Luis Valenzuela.

Comunicación del Robot El esquema utilizado para el control del

robot, es el siguiente

Unidad Central de Procesamiento

(PC Mini-ITX)

Unidad Central de Procesamiento

(PC Mini-ITX)

Control de Navegación

(Atmega128)

Control de Navegación

(Atmega128)

Control de Mecanismos(Atmega128)

Control de Mecanismos(Atmega128)

RS-232 RS-232

Botonera(Ejecutar/Detener)

Botonera(Ejecutar/Detener)

Page 17: Sistemas Embebidos en Robótica  Rodrigo Araya - Gustavo Bodero - Miguel Brintrup - Eduardo Labarca - José Manuel Ortiz - José Luis Valenzuela.

Unidad de Procesamiento Central Se utilizó una tarjeta Mini-ITX de la serie TC, ya que

incluye un conversor DC/DC en la placa.

Periféricos Cámara USB “Logitech Orbit”. Adaptador CF-IDE + CF 512MB. Adaptador wireless USB 802.11b

(Linksys).

Page 18: Sistemas Embebidos en Robótica  Rodrigo Araya - Gustavo Bodero - Miguel Brintrup - Eduardo Labarca - José Manuel Ortiz - José Luis Valenzuela.

Unidad de Procesamiento Central Software

En el computador corre un programa principal y unos hilos (threads) que permiten el control de la ejecución del programa principal. Los hilos son activados mediante la placa

“Botonera” conectada al PC. Con los hilos es posible detener la ejecución del

programa, en cualquier momento, y volver a un estado inicial para comenzar desde cero la ejecución.

En el caso de no necesitar detener el programa principal, éste se ejecutará hasta terminar con su objetivo.

Page 19: Sistemas Embebidos en Robótica  Rodrigo Araya - Gustavo Bodero - Miguel Brintrup - Eduardo Labarca - José Manuel Ortiz - José Luis Valenzuela.

Unidad de Procesamiento Central

Ejecución del software en el PC

ProgramaPrincipal

ProgramaPrincipal

Espera “boton” para iniciar

Espera “boton” para iniciar

Hilo que espera “boton”para terminar ejecución.

Hilo que espera “boton”para terminar ejecución.

Botón Inicio

Botón Inicio

BotónTérminoBotón

Término

Elimina proceso principal

Page 20: Sistemas Embebidos en Robótica  Rodrigo Araya - Gustavo Bodero - Miguel Brintrup - Eduardo Labarca - José Manuel Ortiz - José Luis Valenzuela.

Unidad de Procesamiento Central

Software El programa principal cumple las siguientes

funciones:Adquirir y procesar las imágenes de la cámara

(Ej: detectar linea, buscar entrada, buscar pelota roja, etc…).

Enviar órdenes a la placa de navegación, en base a las imágenes (Ej: avanzar 20cm, girar 90° a la derecha,etc..).

Enviar órdenes a la placa de mecanismos (Ej: bajar ángulo de la cámara en 20°, recoger pelota verde, etc…).

Page 21: Sistemas Embebidos en Robótica  Rodrigo Araya - Gustavo Bodero - Miguel Brintrup - Eduardo Labarca - José Manuel Ortiz - José Luis Valenzuela.

Unidad de Procesamiento Central

Comunicación serial en C “termios”. Es posible setear los parametros de comunicación

serial: Baudrate (velocidad). Tamaño del frame de datos (típicamente 8 bits). Paridad. N° de bits de parada.

Funciones read y write, leen y escriben los datos en el puerto serial.

En Linux el puerto serial /dev/ttySX

Page 22: Sistemas Embebidos en Robótica  Rodrigo Araya - Gustavo Bodero - Miguel Brintrup - Eduardo Labarca - José Manuel Ortiz - José Luis Valenzuela.

Control de Navegación Placa desarrollada a medida (Atmega128).

Control basado en encoders (integrados a los motores Maxon). Interrupciones por cambio de estado de pines.

En cada interrupción se incrementa la cuenta. Interrupción por timer cada t fijo

Lee cuenta del registro, y calcula la velocidad y la distancia recorrida.

Page 23: Sistemas Embebidos en Robótica  Rodrigo Araya - Gustavo Bodero - Miguel Brintrup - Eduardo Labarca - José Manuel Ortiz - José Luis Valenzuela.

Control de Navegación Velocidad de los motores regulada por una señal

PWM. Cambiar la velocidad de un motor en algún momento

se traduce en cambiar el valor del registro del PWM. Cambiar la dirección y velocidad

Interfaz vía comunicación serial. Avanzar/Retroceder [distancia] Avanzar/Retroceder [velocidad] Girar derecha/izquierda [grados] Girar derecha/izquierda [velocidad] Obtener distancia avanzada Obtener ángulo girado

Page 24: Sistemas Embebidos en Robótica  Rodrigo Araya - Gustavo Bodero - Miguel Brintrup - Eduardo Labarca - José Manuel Ortiz - José Luis Valenzuela.

Control de Navegación

Interrupción (Pin Encoder)

Ejecución Principal

Contador++

Continua ejecución

Interrupciones Encoders

Page 25: Sistemas Embebidos en Robótica  Rodrigo Araya - Gustavo Bodero - Miguel Brintrup - Eduardo Labarca - José Manuel Ortiz - José Luis Valenzuela.

Control de Navegación

Encoders y Motores

Placa de Navegación

Placa de Navegación

Encoder I

Motor Izq

Encoder D

Motor DerPWM PWM

Page 26: Sistemas Embebidos en Robótica  Rodrigo Araya - Gustavo Bodero - Miguel Brintrup - Eduardo Labarca - José Manuel Ortiz - José Luis Valenzuela.

Control de Mecanismos Placa desarrollada a medida (Atmega128).

Mecanismos que realiza la placa: Subir/bajar vaso de recolección. Girar cargador. Abrir/Cerrar vaso. Subir/bajar cámara. Etc…

Page 27: Sistemas Embebidos en Robótica  Rodrigo Araya - Gustavo Bodero - Miguel Brintrup - Eduardo Labarca - José Manuel Ortiz - José Luis Valenzuela.

Control de Mecanismos Mecanismos activados por servomotores

(PWM). Cambiar la posición de un servo, se traduce en

cambiar el valor de un registro de timer.

Page 28: Sistemas Embebidos en Robótica  Rodrigo Araya - Gustavo Bodero - Miguel Brintrup - Eduardo Labarca - José Manuel Ortiz - José Luis Valenzuela.

Control de Mecanismos

Servomotores

Placa de Navegación

Placa de Navegación

Servo 1

Servo 2

Servo 3

Servo 4

PWM 1

PWM 2

PWM 3

PWM 4

Page 29: Sistemas Embebidos en Robótica  Rodrigo Araya - Gustavo Bodero - Miguel Brintrup - Eduardo Labarca - José Manuel Ortiz - José Luis Valenzuela.

Control de Mecanismos Las acciones a realizar están preprogramadas en la

tarjeta de Control de Mecanismos. Las acciones son solicitadas por el PC a través de una

interfaz por el puerto serial. Una acción involucra el movimiento de 1 o más

servomotores. Movimiento sincronizado, para no dañar al robot (Servos de

alto torque). Algunas de las acciones son:

Cámara [angulo] Recoger pelota [color] Botar pelota [color] Etc..

Page 30: Sistemas Embebidos en Robótica  Rodrigo Araya - Gustavo Bodero - Miguel Brintrup - Eduardo Labarca - José Manuel Ortiz - José Luis Valenzuela.

Control de Mecanismos Acciones preprogramadas involucran el movimiento

de varios servos sincronizados. Estas acciones pueden demorar muchos

segundos. Es necesario poder interrumpir algunas acciones de

larga duración para realizar alguna más corta (Ej: ángulo cámara)

Tal vez es necesario detener la acción que se está realizando (Ej: dejar de recoger pelota si se pierde de vista).

Page 31: Sistemas Embebidos en Robótica  Rodrigo Araya - Gustavo Bodero - Miguel Brintrup - Eduardo Labarca - José Manuel Ortiz - José Luis Valenzuela.

Control de Mecanismos Para la interrupción de acciones se utiliza

interrupción por timer, cada tiempo t fijo. En cada interrupción se verifica si es que existe

alguna petición de acción nueva. Se soluciona el problema de dejar “tomada” la

tarjeta de Control de Mecanismos durante la ejecución de una acción.

Page 32: Sistemas Embebidos en Robótica  Rodrigo Araya - Gustavo Bodero - Miguel Brintrup - Eduardo Labarca - José Manuel Ortiz - José Luis Valenzuela.

Sistema de Visión

Sensor principal Logitech Orbit, Conocida también como Logitech Sphere.

Funciones de la camara en Petero: Detección de Linea que conecta

habitaciones. Detección de Pelotas (color y posición). Detección de Recipientes (color y posición).

Page 33: Sistemas Embebidos en Robótica  Rodrigo Araya - Gustavo Bodero - Miguel Brintrup - Eduardo Labarca - José Manuel Ortiz - José Luis Valenzuela.

Logitech Orbit

Excelente Calidad de Imagen. Resolucion de Video ajustable

(640x480, 320x240, 160x320). Chip Philips->Excelente soporte

en Linux (Driver PWC, Philips WebCam).

Angulo Visión Horizontal 38°, vertical 28°

Page 34: Sistemas Embebidos en Robótica  Rodrigo Araya - Gustavo Bodero - Miguel Brintrup - Eduardo Labarca - José Manuel Ortiz - José Luis Valenzuela.

Logitech Orbit

Precio mercado nacional $100.000.- app.

Otras funciones USB 2.0 Movimiento Horizontal y Vertical. Zoom digital. Tracking.

Page 35: Sistemas Embebidos en Robótica  Rodrigo Araya - Gustavo Bodero - Miguel Brintrup - Eduardo Labarca - José Manuel Ortiz - José Luis Valenzuela.

Detección de Pelotas

Algoritmo Segmentación imagen en base a colores

Page 36: Sistemas Embebidos en Robótica  Rodrigo Araya - Gustavo Bodero - Miguel Brintrup - Eduardo Labarca - José Manuel Ortiz - José Luis Valenzuela.

Detección de Pelotas

Algoritmo Determinación de centroides y cálculo de

distancias.

(x1,y1)

(x2,y2)

(x3,y3)

Page 37: Sistemas Embebidos en Robótica  Rodrigo Araya - Gustavo Bodero - Miguel Brintrup - Eduardo Labarca - José Manuel Ortiz - José Luis Valenzuela.

Detección de Linea. Algoritmo:

Se convierte la imagen a binaria (blanco y negro).

A partir de los puntos negros encontrados, se traza una recta.

El robot se alinea con la recta y navega hasta el punto final de la misma.

Page 38: Sistemas Embebidos en Robótica  Rodrigo Araya - Gustavo Bodero - Miguel Brintrup - Eduardo Labarca - José Manuel Ortiz - José Luis Valenzuela.

Integración de Algoritmos

1. Robot navega por línea hasta habitación 12. Se posiciona en medio de la habitación3. Gira hasta encontrar una pelota4. Determina posición de pelota encontrada5. Recoge pelota6. Repite 3, 4 y 5 hasta recoger todas las

pelotas

Page 39: Sistemas Embebidos en Robótica  Rodrigo Araya - Gustavo Bodero - Miguel Brintrup - Eduardo Labarca - José Manuel Ortiz - José Luis Valenzuela.

Integración de Algoritmos

1. Busca línea para navegar hasta habitación 2

2. Gira hasta encontrar recipiente3. Deposita pelota correspondiente al

recipiente encontrado4. Repite 8 y 9 hasta depositar todas las

pelotas

Page 40: Sistemas Embebidos en Robótica  Rodrigo Araya - Gustavo Bodero - Miguel Brintrup - Eduardo Labarca - José Manuel Ortiz - José Luis Valenzuela.

Petero Daptilo En Acción

Page 41: Sistemas Embebidos en Robótica  Rodrigo Araya - Gustavo Bodero - Miguel Brintrup - Eduardo Labarca - José Manuel Ortiz - José Luis Valenzuela.

Consultas

[email protected]