PartyKit:PartyBot

De Asociación de Robotica y Domótica de España (A.R.D.E.)
Saltar a: navegación, buscar

Contenido

Introducción

Concepto de robot modular

Estructura básica : Hardware

Definición de capas básicas

Las capas que se han definido como básicas para el PartyKit Bot son las siguientes:


- Chasis o Base para el robot: Esta capa servirá de soporte para elementos básicos como los actuadores, ciertos sensores y el resto de capas.

- Capa de Alimentación: La capa de alimentación incluye la batería que alimentará a todos los elementos del robot, tanto las capas, como actuadores. También incluye la electrónica para estabilizar la tensión de alimentación que irá a elementos que lo necesiten como el PIC en la capa de control.

- Capa de Sensores: En esta capa se han intentado concentrar todos los sensores que va a utilizar el bot para relacionarse con el mundo exterior. Pero como se detalla en la descripción del chasis hay sensores en esa capa, que por motivos prácticos deben de ubicarse físicamente en aquella y no en esta. De todos modos, las conexiones de los sensores montados en el chasis también pasarán por esta capa, al igual que los actuadores (servos).

- Capa de Control: La capa de control monta el microcontrolador, el cerebro del bot. A ella se conectan el resto las capas, y desde esta capa se gestionarán todas las tareas del bot.

- Capa de Comunicaciones: En esta capa se concentra la lógica de comunicaciones con sistemas remotos. La idea inicial para introducir esta capa, es el control remoto del bot desde, por ejemplo, un PC.


Todas ellas se detallan en los siguientes capítulos.

Chasis

Esta capa conforma la estructura del robot. La forma que se ha diseñado, albergará :

- Los Actuadores: En el caso del PartyKit Robot se va a tratar de 2 servos. Estos van a ser dos servos trucados para rotación continua.
- Los Sensores básicos de contacto (o bumpers): Para permitir la detección de colisiones.
- Los Sensores de codificación de giro de las ruedas: Para permitir controlar las vueltas que dan las ruedas y por tanto tener control de la distancia que se desplaza nuestro robot. Aunque solo sea relativamente exacta.
- Las sujeciones para todas las demás capas.

Estas son algunas imágenes del modelo 3D del chasis del robot especificando las partes mencionadas.
PartyKit Robot Chasis 2.jpg
El chasis ha sido creado con material rígido. PVC o Metacrilato son igualmente válidos.
La lámina del material elegido tiene un grosor de 5 mm para permitir atornillar en los cantos de la lámina.
PartyKit Robot Chasis 3.jpg


Valga como guia para el montaje del kit, la siguiente secuencia de imágenes. Por un lado la imagen 3D creada con Google Sketchup, y por otro lado una imagen de un prototipo real.
Para la construcción del mismo, además de estas imágenes, serán útiles los planos que se muestran en la sección Planos para la construcción, donde están los planos con las A la lámina principal se le atornillan perpendicularmente las 2 láminas para la sujeción de los servos:
PartyKit Chasis montaje01.jpg
La lámina que va al frente del bot, tiene 2 hendiduras para dejar paso a los cables de los servos.
PartyKit Chasis montaje02.jpg
Y sobre ellos se fijan los servos:
PartyKit Chasis montaje03.jpg
A continuación se inserta la rueda loca que dará soporte a la parte trasera del robot.
La rueda loca es una rueda de pequeñas dimensiones fácil de encontrar en ferreterías.
PartyKit Chasis montaje04.jpg  PartyKit Chasis prot 04.jpg
Las ruedas pueden ser montadas sobre las astas de los servos. Sobre ellas hablamos un poco más abajo (Las Ruedas), donde se dan más detalles de sus dimensiones, etc...
PartyKit Chasis montaje05.jpg  PartyKit Chasis prot 05.jpg
Para que el PartyKit pueda crecer, se incorporan las varillas, que son simples varillas de rosca de 4 mm, que insertamos en los agujeros que ya tenemos preparados en la plancha base. Para fijarlos, utilizamos tuercas y arandelas por la parte inferior y superior.
PartyKit Chasis montaje06.jpg  PartyKit Chasis prot 06.jpg
Una vez que tenemos esta estructura montada, la siguiente parte es montar la otra plancha de metacrilato(o PVC) que dará soporte a los resortes de los bumpers y a los codificadores que apoyan sobre las ruedas. La distancia entre la base y esta plancha, se puede crear mediante separadores de aluminio (cilindros de aluminio huecos de diámetro interior de algo más de los 4 mm de nuestra varilla), o también con tuercas (cosa que será más difícil de regular a la misma altura para las 3 varillas).
PartyKit Chasis montaje07.jpg  PartyKit Chasis prot 07.jpg
Los detalles de los bumpers y los codificadores apoyados sobre las ruedas se describen a continuación.


Los Servos

Los servos son servos analógicos modificados para rotación continua, como por ejemplo los Futaba 3003. Consulta el procedimiento de modificación de los servos para detalles [Poner Enlace]. Otra alternativa es que utilices servos ya diseñados para rotación continua como los Parallax Continuous Rotation Servo.


Las Ruedas

Las ruedas van fijadas directamente a las aspas de los servos.

Para crear las ruedas existen muchas opciones. Se puede optar por :

- Utilizar PVC o metacrilato y cortarlo en forma de circulo. Aunque esta opción harán que sean más imperfectas.
- Se pueden comprar hechas.
- Otra opción mejor es reutilizar ruedas de una maleta vieja.

La recomendación es que el modelo de rueda que se utilice y el modelo de rueda loca, estén equilibradas entre si, y mantengan la posición horizontal de las plataformas del robot. Si utilizas unas ruedas con un diámetro muy grande, la plataforma irá inclinada.

Para crear nuestro prototipo recomendamos que las ruedas tengan 60 mm de diámetro.

Bumpers y Codificadores de giro

Para dotarle al robot, tanto de bumpers trasero y delantero, como de codificadores de giro para las ruedas, se ha aprovechado un ratón de bola.

Las siguientes imágenes muestran un despiece de un ratón para aprovechar sus componentes:

PartyBot DespieceRaton 01.jpg  PartyBot DespieceRaton 02.jpg

Detalle de los codificadores, y los botones del ratón:
PartyBot DespieceRaton 03.jpg  PartyBot DespieceRaton 04.jpg

Aquí los componentes ya extraídos: PartyBot DespieceRaton 05p.jpg


Los pulsadores del ratón tienen tres patillas, como muestra esta vista en detalle de uno de ellos.
PartyBot DespieceRaton 06Boton.jpg
...la central es común. Tenemos la siguiente tabla:

Pin del switchEn Estado PulsadoEn Estado No Pulsado
Pin CCentral y C conectadosAbierto
Pin NCAbiertoCentral y NC conectados

Los pulsadores una vez montados en el borde del chasis, tanto por la parte delantera como la trasera quedan así:
PartyKit Chasis prot 10.jpg
Los tornillos para fijarlos son de 2 mm de diametro.
Una vez fijados en el borde, el sistema de bisagra, más un tornillo colocado estratégicamente sobre la placa de la bisagra, apoyará sobre el pulsador como muestra la siguente imagen. Aquí se ve la bisagra como atornilla a la placa y a la plancha horizontal, y el tornillo que apoya sobre el pulsador:
PartyKit Chasis prot 11.jpg
En esta otra imagen se ve la placa del bumper completo y el tornillo sobre el pulsador:
PartyKit Chasis prot 12.jpg



Sobre las ruedas vamos a apoyar el eje de la rueda dentada del codificador de ratón. Una como esta:
RuedecillaDentadaRatonBola.jpg
Además hemos aprovechado parte de la estructura de soporte que existía en el ratón para no tener que fabricar un nuevo soporte.
Como el eje del codificador del ratón es muy delgado (en torno a 3 mm de diámetro. Ver la imagen anterior), tenemos que añadir algún elemento que modifique el diámetro, si no, la relación de vueltas de rueda / pulsos por vuelta sería muy alta:

Relación de giro = Diametro de Rueda / Diametro eje codificador


En nuestro caso con el eje que viene en el ratón :


Relación de giro = 60 mm / 3 mm = 20


Teniendo en cuenta que el codificador tiene 36 dientes, tendremos 36 pulsos a nivel alto, más 36 pulsos a nivel bajo, luego en total :


Pulsos totales por vuelta = 20 x 36 = 720 pulsos a nivel alto y otros 720 a nivel bajo.


Para sacar la relación de pulsos por centímetro recorrido:


(720 pasos/vuelta) / (188,496 mm/vuelta) = 3,82 pasos/mm ó 38,2 pasos/cm.


Para reducir este ratio, se añadió un anillo de goma al eje, como el que muestra la siguiente imagen:
RuedecillaDentadaRatonBola conAdaptador.jpg De este modo se ha agrandando el diámetro hasta 12,5 mm.
Al rehacer los cálculos tenemos:

Relación de giro = 4,8
Pasos por vuelta = 172,8 pulsos/vuelta a nivel alto y otros tantos a nivel bajo.
Pasos por centímetro = 9,16 pulsos/cm a nivel alto y otros tantos a nivel bajo.

Es decir, que por cada cm que recorra una de las ruedas del bot, tendremos al menos 9 pulsos altos y 9 pulsos bajos. Este dato lo tenemos que tener en cuenta para realizar los cálculos desde el programa para el microcontrolador.


Estos son los componentes que hemos sacado del ratón para hacer los codificadores de giro:

FototransistoresYdiodosIR.jpg

Los dos de arriba son fototransistores. Como se puede ver tienen tres patillas. La centran es común y normalmente va a la alimentación positiva. Las otra dos patillas corresponden cada una a un emisor de cada foto transistor, de los dos que hay integrados en el componente. El diagrama lógico del componente sería algo así:
Diagrama codificador de cuadratura.png

Los de abajo son diodos de infrarrojos. Como se ve en la imagen anterior, tienen un punto rojo, este señala el cátodo. El diagrama lógico de los mismo es este: Diagrama diodoIR.png


Para montar los componente en nuestro partybot, necesitamos polarizar tanto los diodos, como las salidas de los foto transistores para recoger la información precisa de los pulsos. Para ello el siguiente esquema nos permitirá obtener a su salida los pulsos perfectamente cuadrados de la señal que nos proporcionen los foto transistores al girar la rueda. El conector de pines, irá directamente pinchado a la placa de sensores:
Esquema Codificadores Cuadratura.jpg

La razón para incluir unos disparadores de Schmitt se puede ver claramente en la siguiente imagen tomada del osciloscopio. Estas señales proceden de un solo fototransistor mientras que la rueda giraba a una velocidad constante.
La de abajo es la señal tomada directamente de la patilla del fototransistor.
La señal de arriba es la salida rectificada por el disparador de Schmitt, con la cual alimentaremos un pin de entrada de nuestro microprocesador.

Osciloscopio SeñalSensor y rectificada.jpg


Aquí una imagen de la rueda, el codificador de giro del ratón, y el adaptador de goma de 12,5 mm de diámetro apoyando sobre la rueda. Todo ello con la electrónica de los codificadores de cuadratura montada, y los cables de conexión:
CodificadoresCuadraturaRueda montados.jpg

Capa de Alimentación

La capa de Alimentación, como el resto de capas, ha sido desarrolladas directamente sobre PCBs de un unas dimensiones de 76,2 mm x 76,2 mm (3 pulgadas x 3 pulgadas).

En general, en todas las capas se ha intentado incluir toda la electrónica y dispositivos necesarios para cumplir con la función para la que se han designado. El espacio disponible dentro de esos 76,2 mm x 76,2 mm, queda limitado además por los agujeros de paso de las varillas, que permiten a las placas ir fijas al chasis del bot.

El siguiente diagrama es válido para todas las capas. Es a escala 1:1 la PCB y la distribución de los taladros para la misma.

PartyBOT Dimensiones PCB.jpg

En concreto, la capa de alimentación incluye la batería. Se ha decidido por tamaño, peso y versatilidad una batería de Litio-Polímero (Li-Po) de 2 celdas que proporcionará 7,6 Voltios. Esta tensión será regulada y se obtendrán 5 Voltios para alimentar la lógica y otros dispositivos del bot.

La placa irá dotada de un conector hembra para DC, de modo que pueda ser alimentado externamente.

También tendrá un interruptor para encendido y apagado del bot.

El esquema de la capa de alimentación es el siguiente:

PartyBOT Alimentacion SCH v2.jpg

La PCB de Alimentación es la siguiente:

PartyBOT Alimentacion PCB v2.png

La lista de componentes utilizados es la siguiente:

- 1 Conector alimentación DC.
- 1 pares de pines (para conexión de batería Li-PO).
- 1 Conector de bornas con tornillo de 4 bocas.
- 1 78L05 encapsulado TO92.
- 3 diodos 1N4004.
- 1 condensador electrolítico 1uF
- 1 condensador electrolítico 0,1uF
- 1 Diodo LED verde.
- 1 Resistencia 1K 1/4 watt.
- 1 Switch de 2 posiciones.


La siguiente imagen muestra el modelo 3D con la placa de alimentación montada. Sobre el modelo solo se han destacado la posición de la batería(que es esa caja blanca) y el conector DC para alimentación externa que va en el frontal:
PartyKit Chasis montaje10.jpg

Capa de Sensores

La capa de sensores pretende concentrar toda la conectividad de sensores y actuadores del bot.

Algunos de ellos van físicamente soportados por la misma PCB, pero como es lógico, otros sensores van estratégicamente colocados en otras partes del robot, y en esta PCB se encuentra su punto de conexión. Por tanto, la electrónica de esta placa es mínima.

Los sensores que van montados físicamente sobre esta placa son los sensores infrarrojos GP2D120. El resto de sensores están físicamente montados en el chasis como se explicó en el apartado Chasis anteriormente.

La disposición de los GP2D120 es tal que permitan tener sus campos de detección de obstáculos en las cuatro direcciones del robot. La posición que se sugiere (como se puede ver en el modelo 3D de más abajo), es formando una especie de torre de dos pisos. Es decir, que están pareados juntando sus dorsos. En el primer piso los orientados hacia delante y hacia atrás, y en el segundo piso los orientados hacia la izquierda y hacia la derecha. De este modo conseguimos que estén más cerca del centro del robot, por tanto alejados del borde una distancia suficiente como para que ningún objeto externo al robot caiga dentro de la zona muerta de los sensores GP2D120, que se encuentra a menos de 4 cm del sensor.

La lista de los sensores del robot es la siguiente. Sirva también como tabla de referencia rápida (útil para el momento de la programación):

Sensor Tipo de Medición Analógico/Digital Ubicación en el Bot
Pulsador del ratón 1 Detección de choques Digital Chasis / Parte Frontal
Pulsador del ratón 2 Detección de choques Digital Chasis / Parte Trasera
Encoder de giro de ratón 1 Cuenta X pasos por vuelta Digital Chasis / Sobre rueda izquierda
Encoder de giro de ratón 2 Cuenta X pasos por vuelta Digital Chasis / Sobre rueda derecha
GP2D120 numero 1 Distancia a los obstáculos Analógico Centro del chasis / Orientación: Derecha
GP2D120 numero 2 Distancia a los obstáculos Analógico Centro del chasis / Orientación: Izquierda
GP2D120 número 3 Distancia a los obstáculos Analógico Centro del chasis / Orientación: Frontal
GP2D120 número 4 Distancia a los obstáculos Analógico Centro del chasis / Orientación: Trasera


Respecto a la interconexión de la placa con las otras capas, tenemos 2 conectores IDC-10 se encargan de concentrar todas las lineas para comunicar con la placa de control que estará en la posición inmediatamente superior a esta. La alimentación se toma de la capa de alimentación vía conectores de bornas.


Este es el esquema de la placa de Sensores:
PartyBOT Sensores SCH v2 p.png

Esta es una imagen del modelo 3D montado hasta la capa de sensores. Se han destacado los sensores IR, que van montados en esa disposición de torreta para estar lo suficientemente alejados del borde del robot como para que ningún objeto externo al robot caigan dentro de su zona muerta (menos de 4 cm del sensor).
PartyKit Chasis montaje20.jpg

Capa de Control

La capa de control del PartyBot ha sido creada para incluir una placa Pinguino. El cerebro del PartyBot será un Pinguino. Su programación y facilidad para modificar los mismos programas hará que sea muy sencillo de utilizar.

La PCB de control será un adaptador entre Pinguino y los interfaces con la placa de sensores. Serán necesario una serie de resistencia para adaptar las entradas/salidas.

A continuación dos imagenes de la capa de control con Pinguino ARDE 1.0 montado sobre ella: Control y Pinguino 00.jpg

Control y Pinguino 01.jpg

Capa de Comunicaciones

La capa de comunicaciones está pendiente de desarrollo.

Construye un PartyKit Robot

Modelo 3D

Planos para construcción

Esquemas de placas

Esquemas de conexionado

Arquitectura Lógica : Software

Programa básico de control

Posibles desarrollos al programa básico

Alternativas a la capa de control

Arduino-AMR

Otro PIC

La capa de control es el cerebro del bot, y dentro de ella, la parte más importante, por supuesto, es el micro 18F4550.

El encapsulado físico elegido para la placa de control, ha sido el SMD. Según la propia datasheet del PIC:

Pines18F4550.jpg


La utilización/distribución que se ha hecho de los pines del PIC es la siguiente:

- LED en RA4
- Sensores IR: AN4 a AN7 (RA5 y RE0 a RE2)
- Odometría (4 pines) RB4 a RB7
- Servos en CCP1 y CCP2 (RC1 y RC2) - (Esto se hace de esta forma, porque si cambiamos a motores podremos usar el PWM).
- Comunicaciones RC4 a RC7: A la placa de comunicaciones.
- Bumpers: RB3 y RB2

Ordenado por Pines:

- RA0 a RA3: Reservado (Para futuros sensores analógicos)
- RA4: LED
- RA5: Sensor IR
- RA6: Oscilador / Reservado
- RA7: Oscilador / Reservado
- RB0 a RB2: Reservado (Para comunicaciones I2C o Interrupciones externas)
- RB3: Reservado
- RB4 a RB7: Odometría (RB6 y RB7 tambien programación).
- RC0: Reservado
- RC1 a RC2: Servos
- RC3: Reservado
- RC4 a RC7: Comunicaciones
- RD0 a RD7: Reservado
- RE0 a RE2: Sensores IR
- RE3: Reset / Programación / Reservado.


Esta es la PCB de la capa de control:
PartyBOT Control 18F4550 BRD ver6.png


Esta es una imagen del modelo 3D con la placa de control incorporada:
PartyKit Chasis montaje30.jpg

Otros controladores como capa de control

Desarrollando con PartyKit

PartyKit y Player/Stage/Gazebo

Aplicaciones para desarrollo con PartyKit Robot

Rastreo/traceo de caminos

Mapeo de entornos cerrados

PartyKit Robot Swarms

Telepresencia

Control remoto


Herramientas personales
Espacios de nombres
Variantes
Acciones
Navegación
Herramientas