Antes ya había visto otros enfoques que agregaban una IMU a un brazo robótico. Combinar dos tipos distintos de sensores se llama fusión de sensores, y es común usar una IMU junto con GPS y aplicar un filtro de Kalman para obtener valores de posición muy precisos
Lo especialmente genial de este video es que montaron el nuevo sensor dentro del motor, lo que permitió hacer el conjunto mucho más pequeño y rígido
[1] https://en.wikipedia.org/wiki/Inertial_measurement_unit
[2] https://en.wikipedia.org/wiki/Sensor_fusion
[3] https://en.wikipedia.org/wiki/Kalman_filter
Si quieres construir algo así, la nueva Raspberry Pi Pico 2 tiene un rendimiento varios órdenes de magnitud superior al chip usado aquí y cuesta más o menos la mitad
Ahora mismo parece tener una relación precio-rendimiento abrumadoramente buena como dispositivo embebido ARM/RISC de 32 bits para principiantes
Según la errata número 9, hay que tener en cuenta que se debe usar un pulldown externo en vez del pulldown interno
Aunque ya es relativamente antigua, la Teensy 4.1 sigue dando un rendimiento excelente. Cuesta un poco más, unos 30 dólares, pero funciona con un Cortex M7 a 600 MHz y ofrece bastantes entradas/salidas y protocolos
Suena genial, pero entonces, ¿cuál es el trade-off?
También hay robots industriales grandes que usan encoders auxiliares para mejorar la precisión “lista para usar” en tareas más exigentes
Combinan la retroalimentación auxiliar de las articulaciones con el modelo cinemático de la estructura del robot y de la parte mecánica para predecir con mayor precisión dónde está realmente el extremo de la herramienta del robot https://electroimpact.com/Products/Robots/AchievingAccuracy
Entonces, ¿para qué se usan los encoders principales?
No se puede juzgar el backlash solo viendo que el robot repite exactamente el mismo conjunto de movimientos una y otra vez. Si haces eso, por definición la histéresis queda fuera del problema
¿No parece ser el mismo movimiento? El segundo desplazamiento va hacia el lado contrario
Está bien, pero ese robot en realidad no está haciendo ningún trabajo, ¿no?
Me cuesta imaginar a qué aplicación útil podría llevar mejorar la precisión de posición de un sistema con mucho backlash y sin carga. Tal vez solo me falte imaginación
Últimamente hay una tendencia a hacer o comprar mal hardware y esperar que el software lo resuelva, pero no he visto muchos casos en que eso dé resultado. Me vienen a la mente Tesla usando webcams para conducción autónoma, o Boeing diseñando un avión y luego usando un sensor de actitud defectuoso
Me habría impresionado mucho más si el robot hiciera algo útil, y sospecho que su aplicabilidad real será bastante limitada
Creo que el caso de Boeing está demasiado simplificado. El objetivo era crear un avión eficiente para competir con Airbus, evitando a la vez el costo y las demoras de una nueva certificación de tipo
Para eso tenían que montar motores más grandes en el mismo fuselaje, y como resultado tuvieron que colocarlos más hacia adelante, lo que cambió las características de vuelo y hacía necesaria una nueva capacitación. Esa capacitación era letal para las ventas, así que añadieron un sistema de software para que pareciera volar como un 737 antiguo
Así los pilotos podían actualizarse con solo un curso en iPad. Este sistema de corrección tenía que evitar que los pilotos notaran el problema de entrada en pérdida con un ángulo de ataque alto, por lo que MCAS usaba el sensor AoA para bajar la nariz con base en el ángulo de ataque detectado
El sensor AoA no estaba diseñado originalmente para usarse como una entrada crítica directa de vida o muerte, y a veces se atascaba o fallaba. MCAS usaba solo uno de ellos como entrada. Si MCAS decidía erróneamente que hacía falta bajar la nariz y el piloto respondía según su entrenamiento de 737, ese era su último vuelo. El avión se estrellaba
En definitiva, Boeing mató gente tratando de ganar más dinero en cada paso de este plan espantoso. Estoy de acuerdo con el argumento original, pero Boeing fue algo tan cercano al peor diseño malicioso posible que debería clasificarse aparte
En videos posteriores se ve al servo levantando una pesa al final de un brazo largo
Tengo una pregunta para quienes hayan usado este tipo de indicador analógico. Parece que la aguja da una vuelta antes de que la cámara haga zoom para leer el valor indicado; ¿realmente eso demuestra la precisión que afirma el video?
No vi el video completo, pero probablemente movieron “x de 0.00 a 10.00” y el comparador mostró que la posición final real fue 10.05
Considerando lo flexible que es ese aparato, es bastante impresionante
Dicho eso, para medir desplazamientos en dirección negativa con este tipo de comparador hay que aplicar precarga para mantenerlo presionado dentro del rango “positivo”. Parece que lo hicieron así, pero no puedo estar 100% seguro sin analizarlo más a fondo
Además, el propio comparador proporciona cierta precarga, así que podría haber eliminado bastante holgura del sistema y hacer que la precisión pareciera mejor de lo que realmente es
Correcto. La esfera del extremo tiene un radio constante, y si esa esfera se desplaza una distancia igual a su radio, es decir, si el punto de contacto queda exactamente sobre la línea central, el indicador vuelve a marcar 0
Si no hay contacto, eso básicamente significa que está desviado al menos 1 mm del punto donde debería estar
Normalmente hay una segunda aguja que indica en cuál de esas dos situaciones estás, pero en el contexto de uso de este dispositivo, si te desvías 1 mm la situación es muy evidente, así que parece que consideraron que no hacía falta
¿Cómo logra una precisión estática de 0.05 mm un robot de 3 ejes que se puede comprar por 100 dólares, es decir, una impresora 3D?
Esto no es un tema de teoría de control, sino de estructura mecánica y motores paso a paso.
Es un compromiso entre una estructura tipo pórtico y una estructura de brazo.
Es cierto, pero como no es un brazo robótico, resulta menos interesante. La longitud del brazo amplifica el error, así que para hacer un brazo basado en “estructura mecánica y stepper” que logre la misma precisión de posicionamiento que una impresora, los motores tendrían que ser mucho más precisos o, si se usa reducción, el backlash tendría que ser extremadamente bajo, como en un brazo robótico industrial.
Me pregunto cuál sería la mejor forma de reproducir un sistema x/y, opcionalmente z, con precisión de 0.05 mm o menos. Claro, con la condición de no sacrificar velocidad.
Siempre me he preguntado por qué no se usan más pantógrafos en robots cuando se necesita precisión.
Es un método que se usa para cortes precisos en madera o para grabado en madera y metal. https://en.wikipedia.org/wiki/Pantograph https://youtu.be/s56J_Rnh_Co
Si se acciona el lado “grande” para mover el lado “pequeño”, se puede obtener alta precisión.
Los pantógrafos suelen ser útiles en 2D, y si un robot solo necesita 2D, normalmente es más preciso usar rieles.
Es un truco de encoder realmente excelente. No pensé que fuera a ser tan bueno, pero en el video definitivamente se ve bien.
Lo que muestra este video es sobre todo precisión de repetición al repetir en la misma dirección, no precisión estática absoluta. Se puede compensar el backlash de cada motor, pero no la holgura ni la flexión de los enlaces.
Aquí usan motores DC. Con servomotores trifásicos modernos, se puede saber mucho más sobre lo que realmente está haciendo el motor.
1 comentarios
Opiniones de Hacker News
Antes ya había visto otros enfoques que agregaban una IMU a un brazo robótico. Combinar dos tipos distintos de sensores se llama fusión de sensores, y es común usar una IMU junto con GPS y aplicar un filtro de Kalman para obtener valores de posición muy precisos
Lo especialmente genial de este video es que montaron el nuevo sensor dentro del motor, lo que permitió hacer el conjunto mucho más pequeño y rígido
[1] https://en.wikipedia.org/wiki/Inertial_measurement_unit
[2] https://en.wikipedia.org/wiki/Sensor_fusion
[3] https://en.wikipedia.org/wiki/Kalman_filter
https://github.com/adamb314/ServoProject/blob/main/Doc/Theor...
Si quieres construir algo así, la nueva Raspberry Pi Pico 2 tiene un rendimiento varios órdenes de magnitud superior al chip usado aquí y cuesta más o menos la mitad
Ahora mismo parece tener una relación precio-rendimiento abrumadoramente buena como dispositivo embebido ARM/RISC de 32 bits para principiantes
También hay robots industriales grandes que usan encoders auxiliares para mejorar la precisión “lista para usar” en tareas más exigentes
Combinan la retroalimentación auxiliar de las articulaciones con el modelo cinemático de la estructura del robot y de la parte mecánica para predecir con mayor precisión dónde está realmente el extremo de la herramienta del robot
https://electroimpact.com/Products/Robots/AchievingAccuracy
No se puede juzgar el backlash solo viendo que el robot repite exactamente el mismo conjunto de movimientos una y otra vez. Si haces eso, por definición la histéresis queda fuera del problema
Está bien, pero ese robot en realidad no está haciendo ningún trabajo, ¿no?
Me cuesta imaginar a qué aplicación útil podría llevar mejorar la precisión de posición de un sistema con mucho backlash y sin carga. Tal vez solo me falte imaginación
Últimamente hay una tendencia a hacer o comprar mal hardware y esperar que el software lo resuelva, pero no he visto muchos casos en que eso dé resultado. Me vienen a la mente Tesla usando webcams para conducción autónoma, o Boeing diseñando un avión y luego usando un sensor de actitud defectuoso
Me habría impresionado mucho más si el robot hiciera algo útil, y sospecho que su aplicabilidad real será bastante limitada
Para eso tenían que montar motores más grandes en el mismo fuselaje, y como resultado tuvieron que colocarlos más hacia adelante, lo que cambió las características de vuelo y hacía necesaria una nueva capacitación. Esa capacitación era letal para las ventas, así que añadieron un sistema de software para que pareciera volar como un 737 antiguo
Así los pilotos podían actualizarse con solo un curso en iPad. Este sistema de corrección tenía que evitar que los pilotos notaran el problema de entrada en pérdida con un ángulo de ataque alto, por lo que MCAS usaba el sensor AoA para bajar la nariz con base en el ángulo de ataque detectado
El sensor AoA no estaba diseñado originalmente para usarse como una entrada crítica directa de vida o muerte, y a veces se atascaba o fallaba. MCAS usaba solo uno de ellos como entrada. Si MCAS decidía erróneamente que hacía falta bajar la nariz y el piloto respondía según su entrenamiento de 737, ese era su último vuelo. El avión se estrellaba
En definitiva, Boeing mató gente tratando de ganar más dinero en cada paso de este plan espantoso. Estoy de acuerdo con el argumento original, pero Boeing fue algo tan cercano al peor diseño malicioso posible que debería clasificarse aparte
Tengo una pregunta para quienes hayan usado este tipo de indicador analógico. Parece que la aguja da una vuelta antes de que la cámara haga zoom para leer el valor indicado; ¿realmente eso demuestra la precisión que afirma el video?
Considerando lo flexible que es ese aparato, es bastante impresionante
Dicho eso, para medir desplazamientos en dirección negativa con este tipo de comparador hay que aplicar precarga para mantenerlo presionado dentro del rango “positivo”. Parece que lo hicieron así, pero no puedo estar 100% seguro sin analizarlo más a fondo
Además, el propio comparador proporciona cierta precarga, así que podría haber eliminado bastante holgura del sistema y hacer que la precisión pareciera mejor de lo que realmente es
Si no hay contacto, eso básicamente significa que está desviado al menos 1 mm del punto donde debería estar
Normalmente hay una segunda aguja que indica en cuál de esas dos situaciones estás, pero en el contexto de uso de este dispositivo, si te desvías 1 mm la situación es muy evidente, así que parece que consideraron que no hacía falta
¿Cómo logra una precisión estática de 0.05 mm un robot de 3 ejes que se puede comprar por 100 dólares, es decir, una impresora 3D?
Esto no es un tema de teoría de control, sino de estructura mecánica y motores paso a paso.
Siempre me he preguntado por qué no se usan más pantógrafos en robots cuando se necesita precisión.
Es un método que se usa para cortes precisos en madera o para grabado en madera y metal.
https://en.wikipedia.org/wiki/Pantograph
https://youtu.be/s56J_Rnh_Co
Si se acciona el lado “grande” para mover el lado “pequeño”, se puede obtener alta precisión.
Es un truco de encoder realmente excelente. No pensé que fuera a ser tan bueno, pero en el video definitivamente se ve bien.
Aquí usan motores DC. Con servomotores trifásicos modernos, se puede saber mucho más sobre lo que realmente está haciendo el motor.