lunes

Robot Cosechador

NXC en Cosecha

Autor:Angel Aedo Busto
Competencia: Gestión en TI (Nivel 1)
Palabras Clave: NXC, Lego, Brick, Mindstorm, Programación.

Descripción

    Semana a semana desarrollábamos una idea propuesta por los profesores, que debíamos aplicar a la programación NXC, la cual era usada en nuestros Kit de Desarrollo Lego Mindstorm. En esta ocasión describiré mi experiencia en la creación de un robot cosechador. Actividad que debía simular la recolección y extracción de un producto. Teníamos la libertad de diseño en el armado del robot, pero conscientes de que el robot debía cumplir ciertos requisitos. Como la capacidad de diferenciar si el producto a recoger es apto o no. Poder recoger el producto y que se suelte en una sola área, entre otros.

    Sin embargo eso no era todo. El robot debía comenzar ejecutando una rutina basada en lo estudiado en la sección de física, lo cual era la construcción de una ecuación de itinerario del movimiento del robot.

Modelo de Solución

  Este proyecto lo trabajé con otras personas, las cuales además cumplían ciertos roles en el equipo:
Jefe de Grupo: Angel Aedo Busto
Secretario: Felipe Leal

Productor Multimedia: Claudia De La Hoz
Staff De Apoyo: Martin Berkhoff

Como Grupo utilizamos una estrategia de trabajo durante el semestre, que nos dio muy buenos resultados.
            Primero realizamos un análisis del trabajo, aislando cada etapa que este pudiese tener, para así enfocarnos en resolver problemas mas pequeños, que luego llevaremos a un solo código. De ese modo tenemos una noción mas clara de las subrutinas presentes en el problema.
El trabajo mas duro comienza cuando comenzamos a hacer el seudocódigo en el cual, participamos TODOS los integrantes del grupo.
Luego procedemos a crear una estructura básica del código fuente, esto porque tenemos claro que muchas cosas están sujetas a cambios y nos vamos encontrando con problemas a medida que avanzamos y sobre todo porque no podemos avanzar en la programación del robot si no tenemos claro El armado que tendrá. Producto del análisis inicial y considerando los principales problemas que requiere este trabajo, nos dispusimos a realizar el Diseño del Robot, los Encargados de esta área fueron: Claudia De La Hoz y Felipe Leal.
Este Trabajo requería un robot ágil pero estable, debido a la gran cantidad de giros que debía realizar y la precisión que ameritaba seguir una línea negra.
Desarrollamos un robot Compacto, con 2 motores de tracción, con el sensor de luz alineado a las ruedas, para así maniobrar sobre su propio eje y no desviarse del camino. En la zona posterior implementamos la archi conocida rueda timón con el fin de darle mas libertad de giro al robot; todo esto sobre un chasis que permite sostener la estructura completa y no entorpece los movimientos ni obstruye a la rueda timón.
LUZ timon
En el Frente colocamos 2 sensores de tacto, pero que prestan las mismas  funciones con uno o ambos presionados. El propósito de esto es que al momento de impactar la paredes, no se desvíe.
Como ya es costumbre para nosotros el Bridge lo agregamos al robot sobre un eje que permita el movimiento de este, para así no tener que desmontar las piezas al momento de insertar las baterías; lo cual nos produciría retrasos innecesarios.
Finalmente En la zona Superior, Adosamos al Brick Una Garra, potenciada por un motor; esta garra en particular Realiza la labor de “tomar la caja” y después de alejarse, la libera. Decidimos usar este método porque creemos se acerca mas a la realidad de cómo funcionaría un robot encomendado a esta misión; por sobre un robot que simplemente empuje a las cajas fuera de la plataforma.
garra1
Para Crear esta Garra/Mano utilizamos engranes, los cuales no fueron Para nada Fáciles de implementar, sobre todo alinearlos. A pesar de estas complicaciones creemos que haber optado por este método de recolección de las frutas nos lleva un paso mas allá en encontrar la solución optima al problema solicitado.
garra2
Cuando La Idea del armado Ya estaba En su fase ultima, Angel Aedo y Martin Berkhoff procedieron a realizar el trabajo de fondo en la Programación del Robot, teniendo en cuentas las medidas del robot, el nuevo peso, la disposición de las ruedas y los sensores, y también calibrar las potencias necesarias de aplicar al momento de colectar la fruta; todo esto sin descuidar las condiciones pedidas en el problema y la Rutina de Física que el robot realizaba en su primera etapa.

  Aplicación Física:
       Mediante lo trabajado en las semanas de física, es posible aplicar a la primera parte del robot cosechador el cálculo de velocidad en función del tiempo. Para esto es primordial identificar que comportamiento tiene el robot. Se puede dar el caso que el robot se mueva con una velocidad constante o bien acelerado, para el caso práctico se ha usado una potencia constante en el robot, de este modo su velocidad también será constante, pues el robot se mueve en una superficie plana que no presenta variación influyente en el tramo recorrido.
    Esto es conocido como Movimiento Rectilíneo Uniforme.
    Haciendo uso de un algoritmo que permita mostrar tiempos en pantalla, determinados cuando el robot pase sobre una línea negra, fue posible calcular lo siguiente:
Tabla1
      Haciendo uso de la información propuesta en el gráfico podemos ver que la ecuación de la recta representa la ecuación de itinerario, siendo y=ax+b reemplazada por x(t) = velocidad*t + PosiciónInicial. Quedando en 0,185metros/segundos la velocidad y la posición inicial en 0,137metros. Esta velocidad está dada única y exclusivamente para la potencia 40 en ambos servomotores. Además representa únicamente al movimiento rectilíneo uniforme generado en nuestro Dirtybot, pues el peso también influye en esta velocidad dada por la potencia.
Gráfico1
Haciendo uso de la información propuesta en el gráfico podemos ver que la ecuación de la recta representa la ecuación de itinerario, siendo y=ax+b reemplazada por x(t) = velocidad*t + PosiciónInicial. Quedando en 0,185metros/segundos la velocidad y la posición inicial en 0,137metros. Esta velocidad está dada única y exclusivamente para la potencia 40 en ambos servomotores. Además representa únicamente al movimiento rectilíneo uniforme generado en nuestro Dirtybot, pues el peso también influye en esta velocidad dada por la potencia.

Video de la Actividad:

Reflexión
   Este trabajo representó un gran desafío para mi grupo de trabajo, si bien el apartado del área de física es relativamente sencillo, la implementación de un mecanismo que cumpla la función de remover el producto, provocaba inestabilidad en los movimientos del robot. Sin embargo fue una grata experiencia dialogar y discutir con mis compañeros el como dar solución al problema mencionado.Demostrándonos con esto que la asignación de cargos en el grupo no debe ser estricta asignación de responsabilidades, si no más bien, encargados de que esas labores se cumplan, pero siempre asistidas y discutidas por el grupo en su totalidad. 

No hay comentarios:

Publicar un comentario