Tenemos una plataforma de movimiento (camera - pan & tilt) que está controlada por un usuario mediante un joystick (por lo que las entradas de demanda son pan & velocidad de inclinación).
La plataforma en sí utiliza motores paso a paso, por lo que tenemos un circuito de control en nuestro micro que maneja el movimiento. Puede correr hacia la velocidad requerida (joystick) o moverse a posiciones absolutas, en ambos casos teniendo en cuenta las curvas de aceleración / desaceleración, los límites de velocidad / objetivos y los límites de movimiento (topes finales).
Lo que queremos implementar es una grabación y reproducción de una secuencia de movimientos ejecutados por el usuario bajo el control del joystick. Esto presenta un problema, ya que el usuario nos está dando velocidades (velocidad de giro del 50% a la derecha) en intervalos de tiempo irregulares y esperará que la cámara reproduzca sin problemas el movimiento mientras también golpea los mismos objetivos de posición que golpeó durante La "grabación": con un zoom de 50x, debe ser muy preciso, a unos pasos de distancia y apuntar a una pantalla completa lejos de lo que se supone que debe estar viendo.
Creo que esto pone algoritmos básicos, como registrar cambios en la velocidad de la demanda y amp; el tiempo en que se producen debido a la posibilidad de errores (especialmente errores acumulativos en secuencias complejas) es demasiado alto.
Hay varias maneras en las que puedo pensar en lograr esto, pero todas parecen bastante incómodas / poco elegantes y potencialmente requieren mucha memoria para un entorno incrustado pequeño (imagina la posición de grabación y la velocidad 10 veces por segundo durante 60 segundos) y Tengo la sensación de que me estoy perdiendo algo o repasando un viejo terreno para resolver un problema que ya se resolvió 100 veces antes, por ejemplo en robótica industrial.
¡Bienvenidos todos los pensamientos, enlaces y recomendaciones de lectura!