-
Detalle sobre la generación y ejecución de trayectorias
05/10/2021 at 05:15 • 0 commentsPara la generacion de trayectorias:
Se necesitan poder cumplir los siguientes requisitos:
- Conocer la geometria y disposicion de cada pata con respecto al marco inercial (el centro del hexpaod)
- Poder hacer la cinematica directa para poder determinar las matrices que describen la orientacion y la posicion (la pose) del efector final
- Poder determinar el Jacobiano de Posicion para cada pata para poder hacer una funcion de Cinematica inversa
- Poder Realizar un algoritmo de cinematica inversa que pueda tomar como entrada una serie de puntos que describan una trayectoria, y poder guardar los angulos de cada junta para toda la trayectoria en un array para poder mandarlos atravez de un microcontrolador
Conocer la gemetria y disposicion de los componentes
Esta parte es relativamente sencialla considerando que solo se necesita poder tomar las medidas de los componentes desde el modelo 3D. Tomando las medidas para una pata y las medidas de la base a una de las patas exteriores obtenemos:
*En esta imagen se indica elorden de las patas como se consideraron en programacion
Con estas medidas podemos proceder a fabricar la matriz DH para iniciar el calculo de la cinematica directa
Cinematica Directa
Para poder calcular la cinematica directa, podemos utilizar un algoritmo que nos calcule la matriz de transformacion apartir de la Matriz DH.
Con los valores de distancias y las rotaciones de 90 grados para un servo y el otro obtenemos la siguiente matriz DH apartir de Dos transformaciones A1 y A2:
A1:
A2:
Donde DH = A1*A2:
Con esa matriz DH podemos luego utilizar transformaciones de base para obtener la cinematica directa de cada una de las patas. Las transformaciones de Base permiten ubicar las patas en el espacion, donde el centro del hexapodo representa el punto (0,0,0).
Una vez ubicadas las Piernas, para obtener su matriz de transforamcion solo hace falta obtener la multiplicacion de Transformacion de Base x Matriz DH. Aprovechamos a obtener la cinematica directa, que dado un punto inicial (q1, q2) nos devuelve las posiciones en XYZ:
Los valores en Rojo representan las coordenadas X, Y, Z para la pata 1 cuando q1=q2=0.
Ya con la cinematica Directa, podemos proceder a calcular El jacobiano para utilizar una de las definiciones de cinematica inversa
Cinematica Diferencial:
En este caso se utilizaron algoritmos discutidos en clase para poder obtener el jacobiano para cada pata. Sin embargo, debido a que cada pata es identica, solo era necesario obtener el jacobiano de una pata para describir tanto el cambio de posicion y velocidad de las demas. En este caso en particular, ya que se habla de movimientos coordinados, solo era necesario el jacobiano de posicion
Se obtiene una matriz n*6, donde n = numero de juntas (que en este caso son dos)
Donde solo nos interesan los primeros 3 valores.
Con esto dicho podemos usar la pseudo inversa del jacobiano (ya que no es una matriz cuadrada) para determinar la relacion entre coordenadas y los angulos de las juntas.
Cinematica Inversa:
En este caso en particular, se utilizaron quaterniones para poder calcular la cinematica inversa de posicion apartir del jacobiano de la matriz de transformacion. Esta cinematica inversa solo calcula los angulos para un solo punto.
El algoritmo utiliza transformacion de valores en quaterniones, cuyas propiedades matematicas nos permiten calcular la pseudo inversa de mejor manera sin necesidad de utilizar otros metodos por aproximancion
De esta manera, utilizando calculo iterativo para aproximarse lo mejor que se pueda dado una tolerancia de error que se da de antemano.
Con esta funcion, el programa nos regresa lo siguiente para las coordenadas (0,0,0) de la pata 1:
Donde el primer valor corresponde al angulo q1 del primer servomotor y el segundo valor corresponde al segundo angulo q2 del segundo servomotor. Todo segun nuestras coordenadas globales
Generacion de Trayectorias
Para poder generar una trayectoria utilizamos el comando 'mstraj' para converir un vector de puntos una matriz 3x3 con coordenadas x,y,z que ejecutan se mueven de un punto a otro creando asi una trayectoria.
Con los puntos escojidos, Se obtiene la siguiente trayectoria
La figura de la trayectoria para las piernas de un hexapodo o inclusive un cuadrupedo debe de aparentar ser una semi-elipse. Esto es que la pata se mueve en movimientos circulares mientras que en una mitad del momimiento se impulsa hacia adelanta y en la otra mitad del movimiento se levanta del suelo apra regresar a su posicion original. De tal manera se pueden intercalar los movimientos de las patas para lograr secuencias de movimientos que impulsen el haxapodo o que lo hagan rotar. Debido a la disposicion de nuestros actuadores, todas las patas solo necesitarian una misma trayectoria, solo que para las patas del lado izquierdo, esta trayectoria tendria que ser invertida para poder encajar con la secuencia de movimientos que se requerian.
Con los puntos definidos e la trayectoria, podemos utilizar nuestra funcion de cinematica inversa en un 'loop' que genere angulos para todos los puntos de la trayectoria.
Aqui el codigo ejecuta la cinematica inversa para los angulos de cada servo, pero dado que todos siguen la misma trayectoria, solo guardamos los angulos para ambos servos de la primera pata. Dado que hay que poder ingresar estos 'arrays' en un programa que pueda ejecutar un microcontrolador, hayq que poder guardarlos como un archivo de texto. Considerando tambien que este programa se va a correr en un Arduino nano, utilizando la librerira Servo.h necesitamos redondear los valores y pasarlos de radianes a grados.
Ya con los arrays de angulos, lo unico que se necesita es probarlos en un simple programa .ino de arduino y hacer los ajustes necesarios.
Programa de Arduino:
Aprovechando el uso de la libreria integrada de Servo.h Podemos proceder a definir cada uno de nuestros actuadores. Utilizamos un formato donde J1= servo conectado a la base y J2 = Servo conectado a la pata. Donde les agregamos una extension de P'N', donde N corresponde al numero de pata donde estan conectados.
El comando 'attach' sirve para definir el pin del arduino al que estan conectados. Como se puede ver en los arrays de 'Mov_junta' definimos los angulos que debe de tomar el servo a lo largo de su trayectoria. En este caso solo se tienen dos arrays, dado que nuestro hexapod cuenta con 2 GDL para cada pata y usamos la misma trayectoria solo que en un orden especifico para cada grupo de patas.
De lo investigado, para hacer que el robot camine hacia adelante o atras, se deben de mover dos patas de un lado y una pata del lado opuesto. Para las patas 4-6, hubo la necesidad de invertir la trayectoria para ajustarse al movmimiento de las otras dos patas. Esta trayectoria sin embargo, puede ser obtenida directamente de el archivo de MatLab. Encontramos que reducir la cantidad de variables en nuestros expermientos nos dio mejores movmimientos. Para conseguir que el hexapod rote, solo se necesita que se muevan las tres patas de un lado mientras que las otras tres patas permanecen estacionarias. Se pueden ver unas sumas y restas de angulos en las patas para corregir la manera en que la pieza plastica estaba montada en los servos.
Utilizando esta subrutina, logramos que el hexapod caminase hacia adelante, rotara y luego caminara hacia atras como se puede evidenciar en el video del resultado final.
Movimientos:
*Notese que incrementamos el delay en los movimientos para que se pudiese apreciar el movimiento de cada pata.
Girando:
Caminando:
Resultado Final:
-
Esquematico, PCB y BOM
04/20/2021 at 06:22 • 0 commentsEsquematico:
Para el desarollo de una placa de circuitos impresa, necesitamos disenar el circuito con el que opera el control del robot hexapodo. Para lograr esto, realizamos dos propuestas de esquematicos. El primer esqumatico es en el que no se toma en cuenta la posibilidad de obtener el Arduino Nano como un Breakout Board. Para este primer esqumatico, tomamos en cuenta todas las partes que necesitariamos para poder hacer funcionar el microcontrolador ATMEGA328PB-AU (el 'corazon' del Arduino Nano) con toda la misma funcionalidad que proporciona el Breakout Board ademas de todas las conecciones a los diferentes actuadores (12) de nuestro hexapodo. Con esto en mente, y usando el listado de partes del Arduino Nano, obtenemos el siguiente esquematico:
En este esquematico se pueden apreciar las diferentes partes que hacen funcionar el arduino nano. Desde los conectores del USB, hasta el mando de comunicacion Serial/I2C/SPI. Tambien el regulador de voltaje y el crystal oscilador responsable por hacer funcionar al microcontrolador. Finalmente se pude apreciar tambien los diferentes pines que usariamos para conectar a todos los servo-motores.
Para esta version del esquematico el listado de partes resultante seria el siguiente:
Para el segundo esquematico, dado que podemos asumir que la gran mayoria de componentes vienen dentro del breakout del Arduino Nano, obtenemos lo siguiente:
En ese caso se puede ver que lo unico que tenemos conectado al arduino Nano son Headers donde conectariamos la alimentacion y la senal de control de los 12 servos. Asi tambien como los dos reguladores de voltaje que permitiriaan alimentar los servos y el arduino Nano. Desde un punto de vista pragmatico, el segundo esquematico simula de mejor manera lo que hariamos para conseguir las partes que necesitamos. Por ende, dado que el tamano de la placa y la diferencia en costo entre adquirir cada componente de manera individual vs comprar el arduino Nano completo es despreciable, la fabricacion de la placa se haria usando este segundo esqumatico.
PCB
Habiendo decidido el esqumatico que se iba a utilizar y la disposicion de los componentes, basandonos en que el tamano de una hoja de cobre grande promedio es de 12.5 cm x 10 cm, se obtiene el siguiente diseno de PCB:
En este diseno se aprecia de mejoe manera la escala de los componentes, asi tambien como la posicion final de los mismos. Podemos ver que dado que nuestras conecciones son relativamente simples, la placa puede fabricarse de un solo lado, lo que agiliza y facilita la fabricacion de la misma. Lo unico que quedaria pendiente para esta placa, serian los agujeros para el medio de sugecion de nuestra eleccion. Quisieramos hacer unas pruebas preliminares primero antes de decidir la posicion de los agujeros. Tambien hay que tomar en consideracion que el diseno de esta placa no es final, dado que tenemos que hacer pruebas para revisar que no hayan problemas de potencia en lo que son las senales de control a la hora de controlar los 12 servos. Esto debido a que en nuestro Power Budget trabajamos con versiones muy idealizadas del consumo de potencia y no tomamos en cuenta cosas como la degradacionde una senal PWM.
-
Matrices de parámetros de Denavit-Hartenberg y transformaciones de base
04/18/2021 at 21:44 • 0 comments
Matrices Denavit-Hartenberg (DH)Las matrices DH son matrices que describen la relacion entre los eslabones de una cadena ciematica y describen la forma del robot de forma numerica, utilizando los angulos y las distancias en los ejes z y x de cada uno de los eslabones para pasar de una junta a la siguiente junta. Estas matrices son importantes ya que de alguna manera codifican la estructura del robot/manipulador y la relacione entre eslabones y juntas. Estas matrices son la clave para poder codificar tanto la cinematica directa como la inversa de cualquier robot. El procedimiento para generar las matrices es relativamente sencillo
- Se comienza en la primera junta, y se define el sistema de coordenadas en la junta, con el eje z perpendicular a la junta y el eje x paralelo a la misma
- Se denota la distancia que se debe desplazar verticalemente (eje z) de la primera junta a la siguiente como d1
- Se denota la distancia que se debe desplazar horizontalmente de la primera junta a la siguiente como a1
- Se denota la rotacion que se debe de hacer en el eje z para coicidir con el marco de referencia de la siguiente junta como theta1
- Se denota la rotacion que se debe de hacer en el eje z para coicidir con el marco de referencia de la siguiente junta como alfa1
- Se hace el mismo proceso de pasar de una junta a la siguiente hasta agotarse la juntas.
Con lo que se obtiene una matriz como esta:
En el caso de nuestro hexapodo con 2 grados de libertad, se tienen solo dos articulaciones. En este caso nuestra matriz DH seria una matriz 4x2. Basandonos en la siguiente representacion para la pata y las siguientes medidas obtenemos:
Nuestra tabla DH seria entonces:
d a q1 1.72 cm 4.53cm 90 q2 0 6.47cm 0 Utilizando las siguientes eqcuaiones:
Podemos encontrar nuestra matrix DH como una multiplicacion de A1*A2
Con esto en mente utilizamos el siguiente codigo para encontrar la matriz DH de nuestra pata de dos eslabones
Lo cual nos da que nuestra matriz DH es:
Transformaciones de Base
Las transformaciones de base sirven para ubicar cada pata segun su ubicacion relativa a origen global del sistema. En este caso el origen global del sistema es centro del hexapod, donde se encuentra el arduino nano. Para este caso y dado que las patas tienen la misma forma, se puede utilizar la misma matriz DH para cada pata.Solo se necesita trasladar cada pata a su ubicacion en el hexapod, y luego rotarla en el eje z para que coincida con como esta orientada.
Procedemos a definir las transformaciones base de cada pierna de la siguiente manera, como simples rotaciones sobre el eje Z y desplazamientos en X y Y:
Entonces podemos encontrar que nuestra matriz DH de cada pierna es tan solo la multiplicacion de la matriz DH general x La Transformacion Base. Esto nos da para cada pierna (cuando el angulo q1=0 y q2=0):
-
Power Budget
03/22/2021 at 00:26 • 0 commentsQue es el Power Budget?
Este es el calculo del consumo energetico y de la capacidad del sistema para cumplir con el requisito de funcionamiento. Para este proyecto especificamente se pidio, que el hexapodo pudiera operar por lo menos 30 minutos con su fuente de poder independiente. Por ende exsiste la necesidad de verificar que la alimentacion del mismo no solo pueda entregar el poder instantaneo necesario para poder establecer las posiciones de los diferentes servos, sino que tambien puede alimentar el microcontrolador mientras que se mueve el hexapodo durante 30 minutos. Sabiendo que contamos con dos Baterias 18650 en serie, procedimos a hacer el calculo de este presupuesto de poder.
Calculo del presupuesto de poder
Para el calculo de potencia utilizamos esta Calculadora de potencia de Electronics Stack Exchange. Para asi poder determinar el consumo de cada uno de los Servos SG90. Luego utilizando una metodologia de worst case procedimos a obtener el consumo maximo de potencia del microcontrolador (Arduino Nano). Luego, sabiendo que el voltaje de las baterias es de 8.4 V en serie y que necesitamos un voltaje de 5 V para los servos, consideramos las perdidas producidas dentro del convertidor tipo buck (LM2596). Sin embargo, utilizando la Herramienta de Texas Instruments pudimos determinar que las perdidas de potencia producidas por el Buck, son despreciables. Entonces, tomando encuenta que utilizamos 12 Servos y un Arduino Nano, determinamos que el consumo total de potencia instantanea es de 3.74 A en el peor de los casos. Teniendo este consumo, ahora solo necesitamos validar que nuestra fuente de alimentacion pueda manejar este consumo por 30 minutos o mas.
Validacion de la fuente de poder
Utilizando la informacion del proveedor (Samsung), para las baterias 18650 y comparando el almacenamiento de energia de las mismas vs el consumo instantaneo de potencia, pudimos determinar que con una sola bateria podiamos alimentar el hexapod por mas de 40 minutos. Con este calculo, determinamos que el peor de los escenarios, el hexapodo deberia poder de manternerse en funcionamiento por casi 80 minutos! Por ende, validamos el funcionamiento de nuestra fuente de poder y determinamos el consumo pico que tiene este modelo de robot hexapodo de 2 GDL.
-
Seleccion de Materiales basada en un 'Trade Study'
03/18/2021 at 03:06 • 0 commentsDefinicion de un Trade Study:
Un trade study es una herramienta que nos permite determinar el mejor componente para un trabajo, no solo basándonos en su rendimiento, sino que una serie de criterios que resultan importantes en el contexto de la aplicación de dichos componentes. El orden en que se realiza un trade study es el siguiente
- Determinar el problema a resolver: Contruccion de el sistema electronico de control y potencia de un robot hexapodo
- Definir las restricciones de las posibles soluciones: Precio, Disponibilidad, Facilidad de programar, Facilidad de Soldar
- Determinar de 3-5 soluciones: Para los micro controladores: Arduino UNO, Arduino Nano, Tiva-C
- Determinar los criterios para la selección de componentes: Precio, Tamano, Disponibilidad, Rendimiento, Programabilidad
- Darle un peso a cada criterio: de 1-4 (con 4 siendo el mas importante), Precio = 4, Tamano = 3, Disponibilidad = 2, Rendimiento = 1, Programabilidad = 2.
- Definir la escala de normalización: Esta es la escala que determina cuantos puntos se le asignan a un componente dentro de su misma categoría. Se determino una escala de 1-10 para las diferentes categorias
- Listar las soluciones y escoger la solución con el puntaje más alto
Con esta herramienta somos capaces de no solo tomar mejores decisiones, sino que somos capaces de tomar decisiones sobre un problema con sus restricciones claramente definidas. Utilizando esta herramienta procedimos a definir el único componente sobre el que teníamos dudas debido a su disponibilidad y debido a que altera fundamentalmente la programación del proyecto, el microcontrolador. Tambien pudimos convalidar nuestra seleccion de Servo-motores para el hexapodo
Seleccion de Microcontrolador y Servos Basados en Trade Study:
Realizamos 2 trade studies para poder determinar cual era el microcontrolador y los servos que requeriamos para el projecto. Se pueden evidenciar los resultados en la imagen superior. Basados en los criterios establecidos, determinamos que el Arduino Nano y el SG90 iban a ser los componentes que ibamos a utilizar para el proyecto. Convalidando lo encontrado en la fase 1.
-
Planos y Ensamble del Diseño Mecanico
02/22/2021 at 04:10 • 0 comments*Todo el Modelado en 3D y los planos se Realizaron en Autodesk Inventor 2020
Concepto inicial del Hexapodo:
Habiendo establecido que desabamos hacer un hexapodo basado en un insecto palo, procedimos a buscar cosas que se hayan hecho antes que nos podrian servir como inspiracion. Luego de una busqueda relativamente corta, encontramos un hexapodo comercial llamado:
PhantomX AX Metal Hexapod- Por INTERBOTIX
Link Para visitar la Pagina: Phantom X por INTERBOTIX
Este robot hexapodo cuenta con 3 grados de libertad, y esta hecho completamente de una aleacion de aluminio. El equipo de Trossen Robotics diseno tambien todo el sistema de control (el cual se incluye en el kit). Este robot comercial se encuentra disponible por el 'modico' precio de $1896 por todo el kit. Vale la pena considerar que la combinacion de los 18 servos 'AX-18A' y las piezas pulidas de alumnio no son componentes baratos. Tambien este hexapodo se vende como una herramienta educativa, que permite el desarollo de software y algorimos para su control manual o automatico. Tambien el robot cuenta con una camara que despliega feed en ' real-time'. Fuera de ser muy completo, los movimientos y la versitilidad del mismo lo hacen uno de los mejores hexapodos de su tipo en el mercado.
Basandonos en el PhantomX decidimos hacer un robot que tuviera una geometria similar, pero que requriera menos servos. Decidimos entonces reducir el numero de GDL del robot de 3 a 2, en donde perdemos la flexibilidad de las 'rodillas' que permiten ajustar con mayor precision la posicion vertical de las piernas. Estabamos dispuestos a hacer ese sacrificio sabiendo que nuestro diseno debia de cumplir un proposito basal. Sabiendo que nuestro diseno no tiene requerimientos de escalar terrenos escarpados y que se va a encontrar en condiciones controladas, queriamos hacer un diseno que fuera no solo modular, sino que tambien costo eficiente. Con esto en mente procedimos a modelar en 3D nuestro concepto inicial apra el hexapodo y obtuvimos lo siguiente:
Tenemos la vista superior del ensamble:
Luego tenemos la vista posterior:
Listado de Piezas:
De las piezas que vamos a fabricar nosotros, tenemos el siguiente listado:
Pieza Total Descripcion Base de Control 1 Parte central del hexapodo donde se encuentra
el centro del mismo. Es donde se alamacenan los sistemas
de control y potencia. Tambien es a donde van conectadas
todas las patas.Pata 6 Parte del hexapodo que interactua con el suelo. Es la parte
en cada una de las pierna que impulsa al hexapodo hacia
adelante. Rota con el segundo actuadorBase Pierna 6 Parte del Hexapodo que se mueve con el primer servo. controla
el movimiento perpendicular de las piernas con el uso del primer
actuadorHolder de Servo 2 6 Base que sostiene al primer actuador y lo conecta con la parte 'base pierna' Holder de Servo 1 6 Base que sostiene al segundo actuador y lo conecta con la pierna y la pata Listado de Elementos que se van a adquirir por aparte:
De las piezas que vamos a adquirar por aparte, tenemos el siguiente listado:
Pieza Total Descripcion Arduino Nano 1 Microcontrolador que va a ejecutar el
algoritmo de control para las 6 patas y 12
actuadoresBaterias 18650 2 Baterias de alto amperaje que van a entregar
poder al microcontrolador y a los actuadoresBaterry holder for
186501 Un holder para dos baterias 18650 Micro-Servo S90 12 Servos que van a servir como actuadores de
nuestro sistema y van a permitir el movimiento
del mismoPlanos de Manufactura:
De las piezas que vamos a fabricar ser tienen los siguientes juegos de planos:
Base de Control :
Pata:
Base Pierna:
Holder Servo 1:
Holder Servo 2:
Apartir de estos juegos de planos podemos generar el juego de planos de dos ensambles
Ensable de una sola pierna:
Ensamble de todo el Hexapodo:
Seleccion de Materiales y Proceso de Manufactura:
Debido a las herramientas que tenemos a nuestra disposicion en un tiempo de recursos limitados, decidimos fabricar todas las estructuras fisicas del hexapodo utilizando impresion en 3D. Luego de considerar los diferentes tipos de materiales que exsisten para esta tecnica de fabricacion, decidimos fabricar nuestras partes de 2 plasticos:
- PLA+: Polylactic Acid, donde el '+' indica aditivos que mejoran las propiedades mecanicas
- PET: Polyethylene terephthalate
En donde fabricariamos la base y las partes que sostienen los actuadores de PLA+ y solo las patas de PET. Las patas las fabricariamos de PET dado a que tiene mejores propiedades mecanicas que el PLA+ y porque esperamos que las patas sean las parts donde esperamos la mayor cantidad de desgaste. Tambien el PET tiene mayor rugosidad superficial, por lo qeu se obtiene mayor traccion. Aparte de eso necesitariamos un total de 24 tornillos M3x2 que fijan los servos a sus bases y posibles pegamentos para fijar el holder de baterias a su base al igual que el Arduino Nano.
*Todos los archivos para las partes (los archivos .ipt, .iam, .idw y stl.) se encuentran en el projecto
*Todas las medidas estan en mm
-
Validación de la selección de motores
02/20/2021 at 22:48 • 0 commentsComo podemos validar nuestra seleccion de actuadores?
Para poder validar la seleccion de nuestros Servo Motores tenemos que analizar la estructura desde un punto de vista estatico. El criterio para nuestra seleccion debe de esta basado en el torque minimo que deben de tener cada uno de los actuadores para poder mover los miembros que esten conectados a su respectiva junta + el peso de la base con los componentes de control y poder. No solo eso, sino que dado que el robot se mueve debemos de tomar en cuenta el peor caso donde hay la menor cantidad de piernas en el suelo. Dado que estamos trabajando con un robot hexapodo, sabemos que este 'peor caso' se da cuando el robot esta en movimiento y levanta 3 piernas (de manera entrecruzada). Conociendo que el sistema que vamos a analizar es el del robot con 3 pies en el suelo, debemos de establecer el criterio por el cual vamos a analizar este sistema estatico.
Debido a que podemos conocer la informacion del torque maximo que pueden producir los servo-motores directo de la pagina del proveedor, decidimos utilizar un criterio de factor de seguridad. Este criterio establece que dado nuestro conocimiento de las condiciones de operacion del robot, podemos establecer un factor de seguridad que indique cual es el torque minimo que se necesita para asegurar que nuestros actuadores funcionenen y muevan las partes sin problemas. Este analisis se podria hace induciendo el factor de seguridad desde el inicio en todos los calculos, pero se elige hacerlo al final cuando se conoce el torque minimo necesario para mover los miembros
Dado a que conocemos las condiciones de operacion del sistema, pero ha varianza en el peso real de las piezas y del sistema de contro/poder establecemos que necesitamos como minimo un factor de seguridad de n=1.5 para poder garantizar el funcionamiento adecuado del hexapodo.
Con esto en mente, podemos proceder a establecer la manera en que vamos a realizar este calculo estatico.
Calculos:
Basandonos en lo encontrado en RobotShop Community, determinamos que tenemos un sistema estatico muy similar al sistema presentado por este hexapodo:
Sin embargo, podemos ver que nuestro sistema no cuenta con 3 actuadores, por lo que podemos simplificar los calculos deacuerdo con nuestro diseno.
Basandonos en lo encontrado en la guia de RobotShop Community podemos definir el sistema como una sumatoria de torques expresada de la siguiente manera:
Sabemos que cuando el sistema es estatico, todos los torques alrededor de un punto fijo son igual a 0, por lo que podemos despejar para la reaccion N2 (la reaccion distribuida en 2 piernas en un mismo lado)
Luego podemos despejar para otro puento conocido en la estrucutra para determinar N1:
De estas dos ecuaciones, que describen por completo el modelo estatico, podemos determinar el torque que necesitamos en el actuador que actua como la 'cadera', debido a que este es el soporta la mayor carga estatica cuando se esta moviendo el hexapodo. Si podemos verificar que el torque minimo necesario para el actuador de la cadera es 1.5 veces menor que el torque maximo que pueden producir nuestros servos, podriamos cumplir con nuestro criterio de factor de seguridad n=1.5
Podemos definir ese torque minimo con la siguiente ecuacion:
Utilizando Inventor y sabiendo que nuestras piezas va a estar hechas de PLA, podemos definir estos parametros en Inventor (iProperties) y no solo obtener el peso de las piezas, sino que tambien las logitudes de los eslabones.
Luego podemos definir el peso de los componentes que vamos a comprar (ajustandolo para maximizar el mismo) directo de los proveedores de las partes
Componente Peso (g) Cantidad Arduino Nano 7 x1 Bateria 18650 45 x2 Holder x2 de Baterias 18650 50 x1 Servo SG90 14.7 x12 Donde podemos definir las variables de la siguiente manera:
Supuestos:
*Ignoramos la variable W1 dado que no tenemos un actuador en la rodilla
*Suponemos que la distancia entre W2 y W3 es muy pequena
*Dado que no tenemos otra 'barra' luego de la rodilla se asume que L1=0
Variable Valor Descripcion W2 14.7 g=0.0147kg Peso del Primer actuador W3 14.7g=0.0147kg Peso del Segundo actuador W4 3*(0.017*0.007*0.007*0.009)+0.063+0.007+0.09+0.05=0.33kg Peso de 3 piernas+marco+Sistema de control
+Sistema de potenciaL2 10.8 cm Largo desde el primer actuador hasta la punta de la primera pata L3 5.18 cm Distancia del primer actuador al centro del marco Theta 1 180º Angulo de la pata al segundo actuador (siempre es recta) Theta 2 60º Angulo del primer eslabon al marco N1 0.01103 cm/s^2 Fuerza de reaccion de una sola pierna en el piso N2 0.021 cm/s^2 Fuerza de reaccion de 2 pierna en el piso al mismo tiempo Obtenemos entonces que
El Torque Minimo necesario es:
1.628 kg*cm
Servo Motores Seleccionados:
SG90-Tower Pro Microservo 9g
Especificaciones del Fabricante:
De acuerdo con dichas especificaciones y basandonos en nuestro criterio de factor de seguridad (n=1.5)
Deducimos que:
2.5/1.628 = n= 1.535
Por lo que podemos establecer que nuestra seleccion de actuador es correcta, y nos deberia de dar suficiente espacio para cualquier varianza en los pesos de las piezas
-
Justificación del diseño
02/20/2021 at 22:45 • 0 commentsPorque Seleccionamos modelar un robot hexapodo?
En el diseno de los robots mobiles exsiste una gran discusion entre el uso de robots que se movilizan con el uso de ruedas vs los robots que se movilizan utilizando miembros y articulaciones. Aunque es mucho más facil brindarle movilidad a un robot con el uso de ruedas, los robots articulados ofrecen otros beneficios.
Entre los principales beneficios de los mismos, esta en que estos robots pueden desplazarse sobre una gran variedad de terrenos, sin importan cuan escarpados o resbalosos estos puedan ser. Esto nace del el set complejo de movimientos que realizan las extremidades de estos robots para poder mantener su balance y desplazarse. Esta movilidad superior (con el precio de una velocidad maxima menor) los hace ideales en situaciones de rescate, o para misiones de exploracion donde los seres humanos no pueden aproximarse. Entre la discusion de los robots con piernas/articulados estan los robots cuadrupedos y los robots hexapodos.
Ambos disenos tienen su claras ventajas, pero tambien sus claras desventajas. La discusion entre un robot hexapodo y un cuadrupedo se reduce a una discusion de velocidad vs versatilidad. Debido a los movimientos repetitivos y la fluidez de los mismos, el robot cuadrupedo puede transportarse a mayores velocidades. Inspirados en la misma naturaleza que los mamiferos mas rapidos, un sistema de juntas que se mueven en direcciones paralelas permiten que el robot se traslade verticalmente a altas velocidades. Sin embargo, a pesar de ser mas lentos, los hexapodos tienen una serie de ventajas que los hacen atractivos:
- Pueden cambiar su orientacion con facilidad
- Pueden lidiar con terrenos mas rugosos
- Pueden escalar con mayor facilidad
- Se pueden controlar con diferentes tipos de trotes, dependiendo en que terreno se encuentren
- Alternante: Modo tipico de caminar
- Quadrupedo: Mayor velocidad
- Gateo: Mas lento, pero mayor estabilidad
- Su comportamiento es mucho mas facil de estudiar:
- Los insectos en los cuales se basan estos movimientos tienen redes neuronales bastante simples, por lo que disenar algoritmos de movimiento bio-inspirados resulta mas facil
Tomando en consideracion todo esto podemos resumir nuestra eleccion de hacer un robot hexapodo de la siguiente manera:
Se selecciono un robot hexapodo debido a que la amplia variedad de movimientos que este puede tomar y su flexibilidad y simplicidad a la hora de disenarlo, lo hacen apto para situaciones practicas. Especificamente en situaciones de rescate, o a manera de estudiar y explorar distintos patrones de movimiento, el robot hexapodo nos permite como disenadores una libertad creativa y una capacidad de refinamiento superior a la de un robot cuadrupedo. Aunque se controlan mas actuadores que en el caso de un robot cuadrupedo, los algoritmos de control son mas simples y permiten diagnosticar errores de manera mas practica.
En base a que animal esta modelado nuestro diseno?
Casi todos los robots hexapodos estan basados en algun artropodo. Estos seres tienden a terner el abdomen y la cabeza cerca del suelo. Tambien el movimiento de las patas de estos seres es paralelo al movimiento del torso. Estos seres tienden a tener patrones de movimiento que se ven controlados por sistemas nerviosos relativemente simples (comparados con los sere humanos, son pocas las neuronas que conducen una orden desde el cerebro hacia las extremidades). Este los disenos bio-inspirados, los dos mas famosos son los de la cucharachas y el de los phasmatodea (o conocidos popularmente como insectos palo o localmente como 'quiebrapalitos'). Estos artropodos cuentan con una sere de 6 patas que alternan en ciclos pares (movimientos de tres o dos patas de manera simultanea). Estos patrones de movimiento permiten que el torso se encuentre particularmente estable, lo cual es un requerimiento para que estos animales puedan guiarse. Ambas especies utilizan antenas (dado que capacidad ocular es reducida) las cuales necesitan entrar en contacto con el piso y los objetos que esten directamente frente a a estos artropodos para evitar colisiones/ buscar comida. Este concepto de las antenas se puede modelar en algoritmos que le permitan al robot evitar colisiones y encontrar el camino correcto en un laberinto. Nuestro diseno se basa especificamente en los phasmatodea, dado que nuestro abdomen es rectangular a manera de tener una geometria que sea mas amigable para poder colocar un microcontrolador.
Que movimientos esperamos en el robot final?
Considerando que Nuestro diseno cuenta con 2 GDL en cada pierna y que esta modelado en un ser hexapodo, esperamos que se pueda trasladar en dos ejes y que pueda rotar alrededor de su centro para cambiar de direccion. Basicamente espramos que se pueda mover hacia adelante y hacia cualquiera de los dos lados y que con un arreglo de movimientos de las piernas, el robot pueda rotar sobre su centro para poder cambiar la trayectoria con la que se mueve hacia adelante. Tambien deberia ser posible que el robot se mueva hacia atras, mas sin embargo todavia no hemos contemplado como el orden inverso de instrucciones afectaria su desempeño. Tambien sabemos que al solo tener dos actuadores en las piernas, perdemos el componente de movimiento que nos permitiria escalar superficies mas rugosas. Esta decision de solo tener 2 GDL proviene de la seleccion de nuestros servo-motores, los cuales tienen un torque relativamente pequeno, por lo que si les agregaramos otro actuador, el servo que controla los movimientos laterales no tendria la fuerza suficiente para desplazar la pierna.
Esperariamos un conjunto de movimientos similar a estos:
En cada una de las piernas esperariamos ver el siguiente set de movimientos:
-
Resources Cited for CAD design
02/17/2021 at 19:57 • 0 commentsArduino Uno Cad by Emirhan Çiloğlu-https://grabcad.com/library/arduino-uno-rev-3-ch340-1
SG90 Servo CAD by Matheus Frasson -https://grabcad.com/library/sg90-micro-servo-9g-tower-pro-1
PhantomX Hexapod STL -https://www.trossenrobotics.com/phantomx-ax-hexapod.aspx
SG90 Data Sheet- http://www.ee.ic.ac.uk/pcheung/teaching/DE1_EE/stores/sg90_datasheet.pdf