Rastreo de rotación con precisión extremadamente alta

14

Me gustaría rastrear la posición angular de un brazo giratorio motorizado bastante lento (accionamiento directo; vea la ilustración a continuación), pero requieren una precisión angular de menos de 0.05 ° y una resolución similar.

Como @gbulmer señaló en los comentarios, eso es equivalente a seguir la punta del brazo en posición a lo largo de la circunferencia, con una precisión de (2 × π × 10cm) / (360˚ / 0.05) = 0.08 mm.

dibujo

¿Existe algún sensor o método electrónico actualmente realizable que pueda alcanzar este nivel de precisión en la detección rotacional sin gastar una fortuna?


Esto es lo que he intentado hasta ahora, desde el más simple hasta el más complejo:

  • Brújula digital / magnetómetro: comencé con esto; pero obviamente no estoy cerca del rendimiento que estoy buscando.

  • Codificación rotativa: codificación basada en potenciómetro / sensor de efecto Hall: no se pudo obtener una resolución suficiente y hay un error de linealidad significativo.

  • Visión artificial: Intenté colocar un marcador óptico en la punta del brazo (ya que la punta traza el arco más largo) y usar la cámara (OpenCV) para rastrear la posición del marcador: no podía resolver muy bien las rotaciones muy pequeñas, dada la amplitud de rotación del brazo Un área de 10x10 cm.

  • Codificador magnético: actualmente estoy investigando el uso de AS5048, un codificador rotatorio magnético de AMS, colocado con el centro del sensor en la posición del eje del motor. Algo como esto:

ingrese la descripción de la imagen aquí

Sasha
fuente
1
¿Por qué no considerar un codificador de eje (también puede ser magnético)? Los codificadores de cuadratura pueden tener una precisión bastante alta. Tome uno con 2000 líneas. Después de la cuadratura será de 8000 pulsos por revolución. 360/8000 = resolución de 0.045 grados
Eugene Sh.
Por cierto, ¿está orientado el sistema?
Eugene Sh.
@EugeneSh: el sistema no está orientado. Manejo directo. Además, la preocupación con los codificadores de posición rotativos, por lo que he visto, es que si bien su resolución es alta, su precisión es deficiente. El error para un codificador rotatorio magnético, por ejemplo, puede ser tan alto como 1 grado, según las hojas de datos. ¿Los codificadores ópticos que has visto son significativamente mejores en este sentido?
Sasha
Solo para verificar que he entendido, calculo que desea saber la posición de la punta del brazo con una resolución y precisión de que es 0.008cm o 80 µm. ¿Es eso correcto? ¿El motor es capaz de tal precisión? (2×π×10Cmetro)/ /(360˚/ /0,05)
gbulmer
3
¿Te importaría compartir tu problema real aquí? Quizás la solución es mucho más simple y se encuentra en un plano diferente.
Eugene Sh.

Respuestas:

12

Lo que estás haciendo es posible, pero no veo cómo lo vas a hacer a bajo precio.

0.05 grados (3 minutos de arco) implica una resolución de 7200 conteos / rev, o el equivalente de 13 bits (8192). Peor aún, ya que está tratando de hacer un bucle de posición, necesitará al menos un bit adicional de resolución o un sistema de 14 bits. El problema radica en el hecho de que su bucle de posición no puede detectar un error de menos de un bit, por lo que si el brazo comienza a desplazarse, el sensor de ángulo no lo detectará hasta que la salida esté un bit apagada. El bucle de posición hará retroceder el brazo hacia el otro lado y dejará de hacerlo cuando el error caiga a cero. Pero esto permitirá que el brazo gire hacia el otro lado hasta que obtenga un recuento en la dirección opuesta, etc. Entonces, por ejemplo, si desea que el brazo mantenga un recuento de sensores de 100, el sistema puede producir 100, 101, 100 , 99, 100, etc.

Sugiero que un codificador óptico sea su mejor opción, pero un codificador de 14 bits (16,384 ppr) no será barato. Otra posibilidad es un resolutor o sincronizador, con un RDC o SDC (resolutor / convertidor digital o sincronizador / convertidor digital) como segunda posibilidad, pero esto costará aún más. Los sincronizadores / resolvers tienen 2 inconvenientes. Primero, generalmente han sido reemplazados por codificadores ópticos, por lo que lo que encontrará en el mercado son en su mayoría unidades excedentes. En segundo lugar, la precisión no suele ser adecuada. Los solucionadores de tamaño 23 generalmente se clasifican en aproximadamente 5-10 minutos de arco, por lo que necesitará una unidad de alta precisión y buena suerte para encontrar una.

Inductosyns le dará una resolución y precisión excepcionales, pero costará incluso más que un codificador óptico. Esencialmente, necesita un RDC de alta velocidad para leer la salida.

Su preocupación por la precisión del codificador óptico se basa en el papel de un fabricante específico, pero eso es esencialmente una pieza de miedo. Las posibilidades de error son las mismas para todos los fabricantes, y el fabricante vinculado no es de alguna manera mejor que otros fabricantes. En general, para los codificadores de precisión, la precisión es la misma que la resolución.

Si bien es posible obtener codificadores ópticos con salidas paralelas, probablemente sea mejor con un codificador incremental y con su propio contador arriba / abajo. Si sigue esta ruta, usará la señal de "inicio" para restablecer el contador de posición cada vez que encienda el sistema.

WhatBoughBeast
fuente
Gracias por una respuesta equilibrada y realista. Parece que debería darle una oportunidad a la codificación óptica / incremental y si funciona, estamos bien. También me gustaría saber cuáles son sus pensamientos sobre el enfoque que describí en mi último párrafo usando un codificador magnético lineal junto con un anillo magnético multipolar del tipo recomendado en la hoja de datos del codificador.
Sasha
@sasha - Creo que debes mirar muy detenidamente el proceso requerido para producir un anillo magnético. Dudo mucho que puedas hacerlo por tu cuenta. Si bien la hoja de datos sugiere que se pueden utilizar tolerancias bastante relajadas, desconfiaría de cualquier "algo por nada". Además, a menos que tenga las facilidades para verificar la precisión de 3 min / 80 micras, creo que es mejor dejar que los profesionales se ocupen de posibles imprecisiones. Tenga en cuenta el papel vinculado.
WhatRoughBeast
¡Célebre! Dicho esto, debería haberlo dejado claro: tenía la intención de utilizar el anillo magnético de diseño compatible (multipolar) prescrito por los propios AMS en la hoja de datos AS5311; este es el anillo: ams.com/eng/Products/Position-Sensors/Magnets/AS5000-MR10-128
Sasha
@sasha: está bien, pero el problema que tengo es cómo montas el anillo de forma concéntrica con el eje del eje. Cualquier excentricidad se mostrará en el ángulo recuperado.
WhatRoughBeast
4

Creo que lo que sugiere OP no es una mala idea en absoluto. Lo que quiere usar es un anillo ya hecho: http://ams.com/eng/Products/Position-Sensors/Magnets/AS5000-MR10-128 , tiene 128 polos = 64 pares de polos. La resolución es de 16 bits = 65536, máximo 305 rpm.
Si desmonta un codificador óptico de alta resolución, descubrirá que es casi imposible alinear el detector sin herramientas especiales, de hecho, el uso de este nuevo método lo hace muy simple.
Necesitaría una máquina de torneado para hacer un ajuste adecuado para el anillo y luego colocar el sensor a corta distancia, no se requiere una alineación especial. El sensor en sí viene en versiones de kit ya soldadas en la placa de conexión, lo que necesitaría es un sensor de referencia adicional: un espacio con fotodetector, luego puede hacer referencia al codificador dentro de un par de polos con una combinación de salida de índice + sensor de referencia externa.

Marko Buršič
fuente
El "sensor de referencia adicional" es solo para la posición absoluta, ¿correcto? (similar al interruptor de límite en el caso del movimiento paso a paso CNC). ¿También puede explicar su sugerencia para el uso de una "máquina de tornear para hacer un ajuste adecuado"? ¿Quieres decir, como un surco para que el anillo se siente? Si es así, ¿cómo puede asegurar que la ranura esté en la posición perfecta, cuando el corte CNC en sí mismo podría no ser tan preciso?
Sasha
@sasha Una máquina de torneado para colocar el anillo magnético, la ext. sensor para detectar la referencia. El sensor externo + pulso cero del codificador asegurará que siempre tenga la misma referencia absoluta, que en su caso podría no ser necesaria. Hice un montaje LIDAR con el uso de microsteps paso a paso y engranajes planetarios, sin retroalimentación: la única posición absoluta era interruptores de límite para evitar dar la vuelta y romper los cables. Suponga que tendrá que hacer referencia a un determinado objeto y luego hacer movimientos relativos, de esta manera funciona el LIDAR, si es así, no necesita una posición de referencia cero.
Marko Buršič
4

Dado que es una pregunta de lluvia de ideas, y WhatRoughBeast ya ha mencionado todo lo que consideraría, ¿por qué no agregar las unidades armónicas a la lista? En teoría (no lo he verificado con estimaciones empíricas o primeros cálculos), le permite obtener una relación de transmisión 20: 1 fácilmente sin ninguna reacción (100: 1 es común), lo que reduce el número de pasos necesarios a 720 / rev. . Podría ser algo que valga la pena echarle un vistazo. Las unidades armónicas no son baratas, pero generalmente son mucho más baratas que los sensores de alta resolución, especialmente para esta relación de transmisión.

Señor Mystère
fuente
3

Si necesita resolución en el eje de salida correspondiente a 13 bits, necesita más bits adicionales, al menos 1 bit para el control de bucle cerrado es imprescindible. El siguiente problema es que los fabricantes anuncian la resolución pero no anuncian la precisión . Necesita pedir persistentemente la precisión. Si el error es repetible, puede mejorar utilizando la corrección de software.

Otro problema si necesita una solución para exteriores de servicio pesado. En caso afirmativo, el codificador magnético es una opción. Pero el codificador magnético puede tener un error periódico repetible significativo, que debe eliminar en el proceso de calibración utilizando otro codificador óptico extenso. Pero necesita una plantilla hecha incluso de mayor precisión.

La interpolación Sin / cos (de óptica o magnética) aumenta la resolución pero también agrega algún error aleatorio.

Debe poder fabricar con la precisión deseada, concentricidad particular. También debe considerar el ancho de banda, ya que cuando aumenta la resolución, el movimiento más rápido puede exceder el ancho de banda permitido (por ejemplo, la frecuencia de salida en cuadratura). Por el contrario, el control de cámara ultra lenta es otra disciplina en la que uno puede encontrar problemas interesantes no publicados.

Si necesita la rotación del brazo de control (no solo la posición de la pista), entonces la resolución del accionamiento directo y el par es un problema. El bucle doble ayuda con el control pero requiere motor (codificador en el caso de la caja de engranajes o contando los pasos en el caso del paso a paso) y detección de posición del eje.

El codificador incremental versus absoluto también es una decisión fundamental.

El consejo general es: si desea finalizar el proyecto, utilice componentes profesionales que sean caros (por ejemplo, codificadores ópticos Renishaw ATOM). Si juegas por placer y el tiempo no es importante, entonces puedes disfrutar reinventando problemas (cul-de-sac), descubriendo problemas ingobernables, etc. Comprueba si puedes fabricar aparatos con la precisión requerida.

TMa
fuente
3

Parece perfectamente adecuado para una pinza digital, normalmente utilizada para medir distancias precisas, ver:

¿Cómo funciona un calibrador electrónico?

Son similares a los codificadores capacitivos (que ya viste en http://www.digikey.com/en/articles/techzone/2012/apr/a-designers-guide-to-encoders ).

La parte electrónica de un calibrador digital lineal probablemente se puede reutilizar, por lo que solo necesitaría hacer un cuarto de disco con el patrón correcto.

PD: La precisión incluso te permitiría trabajar con uno lineal estándar.

usuario103185
fuente
2

Aquí está mi nueva idea, sin embargo, otra historia de motor paso a paso :-)

ingrese la descripción de la imagen aquí

Haga clic en la imagen animada para ver la resolución completa no marcada. Aquí usa el motor paso a paso como una regla de viaje. Hay un imán en la punta de la mano principal. Las líneas rojas muestran la dirección esperada del flujo magnético. Suponiendo que el motor paso a paso es como el de la wikipedia. Tiene 3.6 grados de un paso completo. Para una porción supuestamente lineal del campo, necesita 3.6 / 0.05 = 72 combinaciones de 7 bits. Eso significa que un ADC de 10 bits de una MCU normal hará el trabajo para un rango no lineal mayor muy bien. Una vez que hizo el mecanismo, analice el patrón de aproximación y elija la porción más lineal, con un poco de software de mapeo lineal, selecciónelo y elija los bordes de la regla para esa configuración en particular.

Los motores paso a paso no son perfectos. Según Wikipedia , pueden tener hasta un 5% de variación entre los dientes. Para medir el error, puede extender los bordes primarios de la regla con bordes secundarios, que solo necesitan seguir el patrón de gradiente del análisis anterior de su borde vecino.

Además, es mejor que conduzca el motor paso a paso con micropaso para evitar las aceleraciones +/- que pueden afectar las escalas de configuración, creo que al menos debe hacer medio paso.

Ayhan
fuente
Es poco probable que los motores paso a paso sean mejores que los codificadores, y el microstepping es notoriamente no lineal.
Chris Stratton
El microstepping no es para hacer referencia a nada, no se requiere un paso intermedio estático. Es solo para evitar la aceleración. @ChrisStratton
Ayhan
1

Tratando con la mecánica, comience con la mecánica primero.

ingrese la descripción de la imagen aquí

Girando el engranaje grande (R2) para un ángulo, el engranaje pequeño (R1) gira para un ángulo R2 / R1 veces más grande.

Por lo tanto, si maneja una precisión de ángulo muy extrema en un radio dado (R), podría manejar una precisión de ángulo n veces más gruesa en un radio n veces menor (es decir, R / n).

En su caso, puede instalar un engranaje grande en el eje del brazo y colocarle un engranaje más pequeño y luego conectar un sensor más grueso al pequeño.

Muchos otros métodos de engranaje son conocidos y útiles, comience desde wiki .

Asndre
fuente
Introduce una reacción violenta y la fabricación precisa es un problema. En otras palabras, aumenta definitivamente la precisión pero lo importante es la precisión.
TMa
1

Debe hacer un segundo mecanismo en el borde de la mano, para dividir los pasos del centro por un mecanismo lineal como el que se encuentra en el sistema óptico del controlador de CD-ROM. De esta manera, podría ser más fácil y suficiente implementar todo el sistema como bucle abierto utilizando también un motor paso a paso en el centro y conducirlo por micropasos para evitar magnitudes de aceleración muy altas.

Ayhan
fuente
1

Las limitaciones físicas en el espacio alrededor del brazo móvil podrían excluir esta solución, pero aquí está: otro enfoque económico de visión artificial. La precisión se puede ajustar cambiando el aumento de la lente. otro enfoque de visión por computadora

szulat
fuente
0

No sé lo que considera una fortuna, pero es posible que desee considerar http://www.inductosyn.com/

Campos EM
fuente
Estaba a punto de publicar para considerar resolvers o RVDT's
JonRB
3
Esta es una respuesta bastante débil, esencialmente es solo un enlace. Mejor si pudieras explicar un poco a qué te estás vinculando.
tcrosley
@tcrosley: en este caso, en lugar de proporcionar un diseño completamente desarrollado y una descripción exhaustiva del circuito, (como suele ser mi costumbre) elegí proporcionar el enlace porque alude a un dispositivo / sistema capaz de resolver 360 grados en 7200 partes por grado de ángulo, y dejó la mayor parte del trabajo de campo y el esfuerzo de diseño al OP. ¿Por qué eso me hace un mal tipo?
EM Fields el
2
@EMFields Mi problema no fue que usted no proporcionó su propio diseño, sino que no es una buena idea simplemente publicar un enlace aquí como respuesta porque puede ir mal en algún momento: uno debe publicar tanto un enlace como algún tipo de texto de acompañamiento para que un lector pueda buscar un elemento o tecnología similar incluso si el enlace ya no es válido. En su caso, publicó un enlace a la página de inicio de una empresa, que es menos probable que salga mal. Consulte "Proporcionar contexto para enlaces" en esta página .
tcrosley
1
@tcrosley: Le agradezco su punto de vista, pero solo el nombre de la marca "Inductosyn" (que podría estar cerca de un término genérico, por ahora) debería poner una consulta sincera en el camino hacia la iluminación, ya sea que el objetivo del enlace esté vivo o muerto. Busca en Google "Inductosyn" y verás que hay mucha más información de la que me gustaría pasar un loro nocturno.
EM Fields el
0

Otra opción muy interesante, si su brazo entra regularmente en una posición inicial (reposo), es usar un mouse óptico (de juego) o, más específicamente, su sistema de detección.

Monte su sensor en la punta de su brazo y proporcione un buen fondo (grano fino, no reflectante) para deslizarse. Lea los datos en una interfaz estándar de mouse usb.

Necesitará un sensor simple para calibrar la posición inicial. Tendría que experimentar para ver si esto funciona lo suficientemente bien. Debería funcionar principalmente independientemente del polvo y es fácil de mantener.

usuario103185
fuente
0

Quizás pueda considerar usar un codificador óptico lineal al final de su brazo de pivote, y usar una tira de código flexible como esta , que tiene hasta 2000 líneas por pulgada. Si quieres ir súper barato, puedes usar un codificador lineal como este , pero solo llega a 150 líneas por pulgada, por lo que una resolución de 40 micras (ya que es un codificador de cuadratura). Si no es sensible a alguna fluctuación en el sistema de la unidad, puede usar esto directamente. De lo contrario, podría extender el brazo debajo de su aplicación y poner el código srip más lejos. Incluso puede imprimir su propia tira de códigos si tiene una impresora con un DPI de 1000 o más.

¡Buena suerte!

Madcowswe
fuente