Módulo de equilibrio
(Diferencia entre revisiones)
Revisión de 03:39 29 mar 2008 Adrian (Discusión | contribuciones) ← Ir a diferencia anterior |
Revisión de 03:54 29 mar 2008 Adrian (Discusión | contribuciones) Ir a siguiente diferencia → |
||
Línea 168: | Línea 168: | ||
---- | ---- | ||
Juan, no te imaginás la cantidad de dudas que tengo yo. Si no he hecho preguntas directas acá es porque encontré respuestas leyendo e, incluso, de lo que ustedes mismos hablan. Es decir, estoy aprendiendo mucho de ustedes. La idea es que no nos quedemos con dudas.<br>De hecho, la primer duda que tengo es sobre la 'cero G' en caída libre. Me gustaría demostrarlo matemáticamente.<br>--Adrian S.A. 00:39 29 mar 2008 (ART) | Juan, no te imaginás la cantidad de dudas que tengo yo. Si no he hecho preguntas directas acá es porque encontré respuestas leyendo e, incluso, de lo que ustedes mismos hablan. Es decir, estoy aprendiendo mucho de ustedes. La idea es que no nos quedemos con dudas.<br>De hecho, la primer duda que tengo es sobre la 'cero G' en caída libre. Me gustaría demostrarlo matemáticamente.<br>--Adrian S.A. 00:39 29 mar 2008 (ART) | ||
+ | ---- | ||
+ | Quiero expresar una idea sobre el tema del equilibrio:<br> | ||
+ | Por ejemplo, si pongo un florero en la mesa, el florero no se cae. Decimos que está en equilibrio. No quiero pensar en el robot, parado, haciendo equilibrio como un florero.<br>O dicho con otro ejemplo:<br>Una momia egipcia y un ser humano son, en esencia, la misma cosa...a los dos los puedo parar y, básicamente, estarán en equilibrio. La momia tendrá una especie de equilibrio "inerte". Como el florero. El humano también diremos que está en equilibrio pero es otro tipo de equilibrio. En definitiva, entiendo que el robot, en equilibrio, debería estar constantemente corrigiendo la posición de "parado".<br>--Adrian S.A. 00:54 29 mar 2008 (ART) | ||
---- | ---- | ||
Revisión de 03:54 29 mar 2008
El módulo de equilibrio recibirá datos desde un inclinómetro principal, más todos los datos desde los módulos de los miembros afectados en la locomoción. Habría que ver si es necesario agregar más inclinómetros.
Los datos llegados de estos módulos de los miembros (módulos del área motora) serían:
- Ángulo de las articulaciones
- Movimiento que se está realizando en el momento
El módulo realizaría los cómputos con estos datos y decidiría los ajustes necesarios en el movimiento, informándolos a los módulos del área motora o a la unidad central del robot. Entiendo que es más lógico que lo informe la unidad central del robot, que debe saber qué pasa en el cuerpo y ordenar los movimientos él.
Quizás se deba implementar un doble comando: acciones inmediatas en caso de emergencia, directamente a los módulos del área motora, como los reflejos en los seres vivos, y otras informaciones de estado del equilibrio a la unidad central del robot, todo el tiempo.
La nota de aplicación AN715 Microchip sería el inclinómetro.--Adrian S.A. 22:14 24 mar 2008 (ART)
El inclinometro, mide un angulo entre que y que?, puede dar una posicion absoluta respecto a la tierra?
--Mastromec 19:30 25 mar 2008 (ART)
Mide el ángulo entre él y la fuerza peso. Suponiendo P=F=m.g . ( en cualquier planeta que tenga la suficiente aceleración de la gravedad para que F<>0 ).
Es lo que entiendo. Todavía no he leído a fondo la nota de aplicación esa. Espero comentarios de Edu a ver si podemos armar eso. Por ahí metemos un péndulo con un resistor como los medidores de los tanques de nafta, por cada plano de inclinación. :) .
--Adrian S.A. 19:54 25 mar 2008 (ART)
Yo tengo un módulo con este acelerómetro
http://www.parallax.com/Portals/0/Downloads/docs/prod/acc/H48CDatasheet.pdf
Mide aceleraciones de hasta 3G y también la inclinación estática con respecto a la gravedad de la Tierra en tres ejes, X, Y y Z.
El módulo es:
Tembién tengo este, de dos ejes
--Edu 20:23 25 mar 2008 (ART)
Vos lees en el micro 3 voltajes variables que te indican la inclinacion x,y,z como un vector, con un cero OK?, y medis la aceleración angular porque conoces el tiempo que paso desde que cambiamos de x a x', de y a y'y de z a z'? en definitiva haces una resta vectorial?
Si es asi, es muy bueno... y nos va ha simplificar mucho las cosas.
--Mastromec 23:51 25 mar 2008 (ART)
Sí, por las hojas de datos entiendo que es así; en realidad aún no tuve tiempo de probarlos experimentalmente, porque tengo el taller desarmando por una mudanza interna en mi casa. Ahora ya le está tocando el turno de rearmar todo y tendré un lugar triplicado (mesas, mesas, ¡mesas!) para extender los proyectos y trabajar.
El chip entrega valores analógicos, en el módulo donde han montado ese chip hay otro chip que convierte y entrega datos por interfaz sincrónico serie. Además, el módulo entrega una señal a la que llaman "Free-fall output", que indica 0g simultáneo en los tres ejes. Es decir, si esta línea deja de indicar el 0g simultáneo entiendo que significa que hay un movimiento, y leyendo los otros valores y tomando un registro en el tiempo se podrá monitorear qué movimiento es. Creo que esta señal --si funciona como imagino-- facilita mucho las cosas con respecto a las aceleraciones.
Adrián va a probar el tema del encoder en laboratorio, yo me comprometo a tener esto probado en detalle en un tiempo más. Sólo depende de mis movimientos físicos caseros.
El tema de los acelerómetros e inclinómetros se ha facilitado muchísimo desde que se implementaron los sensores MEMS (sensores electromecánicos microscópicos) dentro de estos chips.
Si esto no fuera lo que pensamos, hay giróscopos accesibles, de los que se usan para los helicópteros a radiocontrol. Casi seguro están basados en chips como estos. En Mirax venden de éstos (a propósito, no te había comentado, yo también le compro a Mirax).
--Edu 11:11 26 mar 2008 (ART)
estoy estudiando el mòdulo y el integrado. Estoy sacando cuentas a ver cómo es que funciona esto. Tendré que ponerme también a leer algunos detalles que no conozco del BS2. Igual estimo que en principio no usaremos este módulo con un BS2. Tengo todavía que armar todo para hacer un banquito de pruebas que sirva para probar encoders o lo que sea. --Adrian S.A. 11:31 26 mar 2008 (ART)
A ver si estoy bien...
parado en La Tierra mi cuerpo está sometido a una aceleración de 1G, digamos en la dirección de Z (me guío por el dibujo del datasheet del H48C). Si salto desde muy alto y entro en caída libre mi cuerpo está sometido a 0G. En caída libre, con este circuito encima, tendré una lectura (de un pulso) en la pata 19 (ZeroG). De nuevo, en el piso tendré una lectura de 1G en el sentido de Z. La señal ZeroG envía un pulso por cada vez que entro en 0G en los 3 ejes. Debo sacarlo de 0G y volver a entrar para que me vuelva a enviar un pulso. Quería comentarles esto.
Sigo leyendo...
--Adrian S.A. 14:28 26 mar 2008 (ART)
Las steadycams de alto precio creo que trabajan con esta tecnología. Las de bajo precio creo que son mecánicas.
Por otro lado...La wiimote no tiene un acelerómetro adentro?? :)
--Adrian S.A. 14:43 26 mar 2008 (ART)
Bueno, si esa señal lo que mide es caída libre no nos interesa (bueno, excepto para detectar una GRAN emergencia), pero el valor de reposo lo obtenemos monitoreando los valores de los tres ejes con un microcontrolador, de hecho, ésa es una de las cosas que hará el módulo de equilibrio. Si los valores se mantienen, el sistema está en reposo. Si hay una variación, se mide la velocidad de la variación y con eso se obtiene el movimiento.
--Edu 14:50 26 mar 2008 (ART)
Hay una cosa que es importante, estar en equilibrio NO significa no tener movimiento, podes estar quieto o podes estar moviendote con velocidad constante. para que no estemos en equilibrio el cuerpo debe estar acelerando o desacelerando, y entonces habra fuerza resultante aplicada que es la que produce la variacion de la velocidad. un comentario...
--Mastromec 19:09 26 mar 2008 (ART)
El módulo de equilibrio recibe los datos de movimiento de los módulos del área motora. Estos datos le informan los movimientos que se esperan en el sistema. Si nos guiásemos sólo por eso, seguro el robot se caería. Pero además de los movimientos que está haciendo --los movimientos ordenados y los movimientos logrados por los servos-- vamos a tener información de la evolución del movimiento real del CG, donde estará el inclinómetro-acelerómetro. ¿Resultante? Aceptando una tolerancia de desviación que le pongamos, detectaremos diferencias entre lo que se calculó y fue ordenado y el movimiento real, y le avisaremos a la unidad central del robot. Y si la desviación que se detecta es grave y rápida, podemos mandar comandos de emergencia (reflejos) directamente desde el módulo de equilibrio a los módulos del área motora para compensar y salvar la situación como se pueda, o proteger al menos al robot cuando la caída sea imposible de detener.
--Edu 19:51 26 mar 2008 (ART)
(Todos estos son datos que estoy sacando de las hojas de datos)
El módulo que se está probando vía el BS2, (el cual muestra las lecturas por pantalla) está , según las lecturas, paradito y quieto en la mesa, por decirlo de alguna manera. El h48 está tal como el dibujo del datasheet.
Se puede leer el 1G en el eje Z.
Vdd es 3.3 V (el 3.3 de la fórmula). Vref es la mitad de Vdd (1.647Volts en la pantalla azul). Es la relación 4095 a 2045. La resolución de 12 bits son 4096 números desde el 0 al 4095. 2 elevado a la 12=4096.
--Adrian S.A. 22:42 26 mar 2008 (ART)
Tendrá Arístides los componentes necesarios para comprárselos y hacer pruebas con esto? Me parece que le voy a hacer un pedido.
--Adrian S.A. 11:09 27 mar 2008 (ART)
Yo los tengo, como ya dije. Seguramente vos también los podrás comprar.
--Edu 20:03 27 mar 2008 (ART)
Si funcionan exactamente como creo, me parece que podemos replantear o implementar algún tipo de posicionamiento de las partes del robot como un todo, de otra manera. O al menos de forma paralela.
En teoría hay una relación entre el ángulo del brazo (figura B) y los valores de/l el/los inclinómetros (al menos en el plano ZX, donde está montado este dibujo, con un solo grado de libertad). Es decir, se puede montar un sistema móvil compuesto de muchas partes y uniones mecánicas y "vestirlo" con un traje de inclinómetros.
Este sistema daría un conjunto de valores que se puede adaptar de tal forma que nos sirva para manejar el equilibrio del móvil. Hacer algo así como un "modelado" con la información recibida.
Y casi que, me animo a decir, no necesitaríamos de tantos encoders... (es una idea intuitiva, nada mas).
De paso miren el H30CD ..... tiene, entre otras cosas I2C. Y no es un módulo. Está todo integrado. :)
Por otro lado, el datasheet de este otro acelerómetro (H34C) tiene incorporado este gráfico que muestro a continuación. Es muy instructivo:
--Adrian S.A. 20:24 27 mar 2008 (ART)
Como complemento, y para agregar información, no estaría de más agregar inclinómetros para tener más información del sistema. Hay que considerar que agrega costo monetario y de procesamiento.
Pero no creo que puedan reemplazar encoders. Hay un par de problemas: creo que no son precisos (la salida no tiene buena resolución, a mi entender, fijate que la variación de salida en cambios realmente grandes de posición, como 90º, es muy poca) y la inercia afecta todo el tiempo sus mediciones, como para convertirlas con facilidad en ángulos.
De todos modos, experimentar no estará de más.
Los módulos de Parallax (que puede proveer Aristides) cuestan us$ 60.
--Edu 13:01 28 mar 2008 (ART)
Bueno.
Casi que es cierto que al menos un inclinómetro hay que tener.
Respecto de "modelar" los datos, estos datos pueden venir de encoders en lugar de inclinómetros. Se puede pensar que, genéricamente, cada unión mecánica tiene 3 grados de libertad. Cada unión entonces tiene 3 encoders.
A lo sumo, la cantidad de datos a procesar, para cualquiera sea el sistema que se quiera implementar, es (cantidad de uniones mecánicas) x 3.
Posteriormente, en un segundo paso, se establece la real cantidad de grados de libertad que tiene cada unión mecánica (articulación) y la amplitud de cada uno de esos grados de libertad.
Con todos esos datos ya entramos en la etapa de definir un algoritmo para procesarlos.
Mas o menos así considero que es el planteo inicial.
--Adrian S.A. 19:58 28 mar 2008 (ART)
Bueno, para mí las de 3 grados de libertad son minoría, y hay de uno, como rodilla y codo (bueno, la rotación del antebrazo se puede adjudicar a la muñeca o al codo, ya que ocurre a mitad del antebrazo, si la ponemos en el codo, el codo es de 2 y la muñeca de 2, sino la muñeca es de tres y el codo de 1). Luego queda la cadera y el tobillo, con tres cada una. Los encoders en EEUU están en el orden de los us$ 50, aunque hay de us$ 15. La cotización aquí de Silge, no sé, me pareció una burla: todos cuestan us$ 500 y algo, algo así como 501, 503 y 505. Y son tres modelos bien diferentes. Creo que no tienen ganas de vender este tipo de producto, y si lo venden, que le cueste al cliente bien caro. Habrá que pedirlos afuera.
Este encoder http://www.usdigital.com/products/mae3/ estaría perfecto, y cuesta us$ 43,50 de una resolución de 10 bits (1024 posiciones por vuelta) y us$ 50,90 de una resolución de 12 bits (4096 posiciones por vuelta). Son pequeños, miden 1 pulgada de diámetro el soporte circular de sujección, menos de una pulgada de largo con conector y todo, y el cilindro del encoder mide media pulgada de diámetro. Me parecieron muy utilizables. La salida es en formato PWM o analógico.
Juan, fijate las características macánicas, a ver qué te parece.
--Edu 22:41 28 mar 2008 (ART)
Me parece bien!
Preguntaste a Varitel por los encoders?, los que te pase? esos eran economicos y los use en una maquina ojaladora, trabajaban bien y lo interesante es que eran muy chiquitos como lo que contas.
He leido todos los comentarios de este artículo, me gustaria hacer muchas preguntas, pero mi ignorancia de algunos temas me deja afuera, es decir entiendo por arriba, superficialmente, y como no se si se puede explicar un acelerometro con manzanas mejor leo en silencio, cuando aprenda mas, pregunto. Este comentario no quita que no sea MUY INTERESANTE lo que comentan
Con respecto a la geometria del movimiento y la cantidad de acelerometros difiero en cuanto al uso que le daria, para saber la inclinación sobra uno y los encoders, ya que matematicamente esta todo resuelto, ahora si me preguntan por las fuerzas desequilibrantes a contrarrestar usaria varios acelerometros, sobretodo en las extremidades.
--Mastromec 23:25 28 mar 2008 (ART)
Juan, no te imaginás la cantidad de dudas que tengo yo. Si no he hecho preguntas directas acá es porque encontré respuestas leyendo e, incluso, de lo que ustedes mismos hablan. Es decir, estoy aprendiendo mucho de ustedes. La idea es que no nos quedemos con dudas.
De hecho, la primer duda que tengo es sobre la 'cero G' en caída libre. Me gustaría demostrarlo matemáticamente.
--Adrian S.A. 00:39 29 mar 2008 (ART)
Quiero expresar una idea sobre el tema del equilibrio:
Por ejemplo, si pongo un florero en la mesa, el florero no se cae. Decimos que está en equilibrio. No quiero pensar en el robot, parado, haciendo equilibrio como un florero.
O dicho con otro ejemplo:
Una momia egipcia y un ser humano son, en esencia, la misma cosa...a los dos los puedo parar y, básicamente, estarán en equilibrio. La momia tendrá una especie de equilibrio "inerte". Como el florero. El humano también diremos que está en equilibrio pero es otro tipo de equilibrio. En definitiva, entiendo que el robot, en equilibrio, debería estar constantemente corrigiendo la posición de "parado".
--Adrian S.A. 00:54 29 mar 2008 (ART)