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
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
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
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
Estructura Mecánica: Chasis
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
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°)
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
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
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 😛 (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
Estructura Mecánica: Cargador Vertical
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
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)
Comunicación del Robot El esquema utilizado para el control del robot, es el siguiente Unidad Central de Procesamiento (PC Mini-ITX) Control de Navegación (Atmega128) Control de Mecanismos (Atmega128) RS-232 RS-232 Botonera (Ejecutar/Detener)
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).
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.
Unidad de Procesamiento Central Ejecución del software en el PC Programa Principal Espera “boton” para iniciar Hilo que espera “boton” para terminar ejecución. Botón Inicio Botón Término Elimina proceso principal
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…).
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
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.
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
Control de Navegación Encoders y Motores Placa de Navegación Encoder I Motor Izq Encoder D Motor Der PWM PWM
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…
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.
Control de Mecanismos Servomotores Placa de Navegación Servo 1 Servo 2 Servo 3 Servo 4 PWM 1 PWM 2 PWM 3 PWM 4
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..
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).
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.
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).
Logitech Orbit Excelente Calidad de Imagen. Resolucion de Video ajustable (640×480, 320×240, 160×320). Chip Philips->Excelente soporte en Linux (Driver PWC, Philips WebCam). Angulo Visión Horizontal 38°, vertical 28°
Logitech Orbit Precio mercado nacional $100.000.- app. Otras funciones USB 2.0 Movimiento Horizontal y Vertical. Zoom digital. Tracking.
Detección de Pelotas Algoritmo Segmentación imagen en base a colores
Detección de Pelotas Algoritmo Determinación de centroides y cálculo de distancias. (x1,y1) (x2,y2) (x3,y3)
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.
Integración de Algoritmos Robot navega por línea hasta habitación 1 Se posiciona en medio de la habitación Gira hasta encontrar una pelota Determina posición de pelota encontrada Recoge pelota Repite 3, 4 y 5 hasta recoger todas las pelotas
Integración de Algoritmos Busca línea para navegar hasta habitación 2 Gira hasta encontrar recipiente Deposita pelota correspondiente al recipiente encontrado Repite 8 y 9 hasta depositar todas las pelotas
Petero Daptilo En Acción