neurogears / vestibular-vr

Closed-loop VR setup for Rancz Lab
2 stars 0 forks source link

Rotary motion jitter + overshoot #18

Closed RoboDoig closed 3 months ago

RoboDoig commented 1 year ago

Observed that at lower than maximum steps/rev on motor driver, there is some jitter/vibration during movement. This is a potential issue for imaging stability in experiments (e.g. probes). Increasing steps/rev generates smoother motion but pulses/s from H2 is not at high enough frequency to drive at required speed. Therefore need to increase pulses/s from H2 command.

Current implementation of workflow + motor control sends target position as a command, therefore motor will continue turning to target position even if treadmill motion stops. Should instead implement proportional control between flow sensor and motor (with direct velocity override).

ederancz commented 1 year ago

Hi @RoboDoig, I am not sure where we are with this. I remember the new firmware/workflow worked much better, but there were still issues. Can you please remind me of the current state?

RoboDoig commented 1 year ago

The solution for this was to implement a direct velocity override on the H2 board. As fewer cycle calcs. are required (vs. target position) we could greatly increase the pulses/s range from H2. This also means that we can increase the steps/rev for smoother motion while still achieving target speeds.

Implemented proportional control workflow using the direct velocity override.

In practice worked well but we may need to implement a low-pass filter after gain is applied to avoid very fast movements that may lock the motor.

We also need to test that this workflow performs well with the PMW3360 #19

Are there any remaining issues here to be addressed?