Métodos para control multieje sincronizado servo o paso a paso [cerrado]

He diseñado un robot de 6 ejes. El requisito principal del robot es que todos los ejes deben estar altamente sincronizados para crear trayectorias precisas (submilimétricas, subgrados) 6DOF (x, y, z, guiñada, cabeceo, balanceo) en el espacio. Implementé este robot usando:

Hardware: controlador NI PCI-7358, amplificadores NI MID-7604, motores paso a paso

Software: NI Labview

Sin embargo, me gustaría pasar de los productos NI a algo más compacto para no tener que cargar con un carrito de computadora. Un ejemplo que encontré en github es un robot donde el creador usó lo siguiente:

Hardware: Arduino, unidades paso a paso A4988, motores paso a paso

Software: pitón

Sin embargo, con una configuración de este tipo, me preocupa que el control multieje sincronizado no se mantenga debido al retraso en el procesamiento de Arduino. ¿Alguien puede recomendar si la solución Arduino es adecuada o presentar soluciones alternativas (enumere su hardware y software específicos)?

Si desea ver lo que puede hacer un Arduino en términos de coordinación multieje, consulte los firmwares de impresoras 3D de código abierto. Pero si comienza desde cero, tendrá muchos más recursos para trabajar en varias partes de ARM. Tenga cuidado de separar el "retraso" de la velocidad del procesador y la arquitectura del software de las interfaces de comunicación : si ya sabe lo que quiere hacer, obtenga las instrucciones por goteo para el procesador ejecutivo un poco antes de lo necesario. Pero si tiene algo que decidir qué hacer en tiempo real, deberá poner más cuidado en el tiempo necesario para decidir y comandar.
En realidad, esta parece ser la solución que quiero. Controlador paso a paso de 7 ejes usando una raspberry pi. roboteurs.com/collections/all/products/slushengine-model-d

Respuestas (2)

Entonces, mi pregunta es ¿alguien puede recomendar algún buen hardware/métodos para lograr esto?

Sí, tome todos sus bloques en labview y encuentre o escriba piezas de código que repliquen las funciones de los bloques. Incluso puede escribir código C en labview y crear bloques personalizados , de modo que pueda probar cada bloque uno a la vez y reemplazarlos con los suyos.

O hay un generador de código C para labview (que nunca he usado y probablemente cueste más dinero y probablemente no haga un gran trabajo en la conversión).

Yo usaría C, porque no está interpretado y probablemente funcionaría mejor en tiempo real. Si siente la necesidad de usar python, primero escribiría la C y luego la convertiría.

Sin embargo, todavía estaría atascado usando hardware de NI (PCI-7358) que creo que me obliga a usar Labview y todos los controladores y ventanas de NI. Por favor, vea mi actualización de la pregunta.
No respondo preguntas de objetivos en movimiento.

Necesitaría un sistema operativo con capacidad en tiempo real. El sitio CNC de código abierto es LinuxCNC para construir la máquina CNC. El proyecto bifurcado es Machinekit, que está destinado a construir una máquina personalizada, no relacionada con el intérprete de código G estándar.

Si tiene suficientes recursos, las unidades y las E/S basadas en el protocolo de comunicación Ethercat serían las mejores. Ofrece sincronismo de modo que todos los dispositivos toman una instantánea de los valores reales al mismo tiempo, también los valores de punto de ajuste se emiten al mismo tiempo. Además, la fluctuación de la interrupción del sistema operativo no tiene relevancia hasta que los nuevos valores se calculan dentro de cada ciclo de comunicación, por lo que el sistema operativo de preferencia de Linux funciona.

Tenga en cuenta que no es un proyecto CNC sino un robot. ¿Sería esto posible con una computadora Linux compacta como una raspberry pi? ¿Me puede recomendar un controlador de movimiento de 6 ejes?
¿Qué es un controlador de movimiento desde tu punto de vista?