I have a project I am working on that uses a mirror on a gimbal to track moving objects, and everything seems to be implemented fine, except that I am having problems updating the position of the mirror reliably and quickly enough.
I chose these motors because I wanted to have plenty of speed and smooth control.
My setup:
2 X D5065 motors with w/ am102 encoders. (8192)
4:1 reduction in rotation
So in my program I have implemented just about everything I need to.
My problems occur when I try to input position values to the odrive that are very small changes but at 60-100hz. The motors tend to be sluggish and then overshoot, and back and forth. It kind of looks to me like cogging, but it’s at a very small scale, much less than the size of a pole for sure.
I have tried to adjust the gain values but then I either start getting oscillations, vibrations, or a sluggish response for very small changes (0.0002 revolutions, say) I have confirmed this with the plotter, sorry I don’t have an output.
So… at this point I am wondering if I would have been better off getting stepper motors or something. There isn’t much inertia in the system. The system doesn’t really need to make longer distance position jumps.
So is there a way to smooth out these tiny movements, with updates coming in via python+usb at 100+hz? Am I missing something in the docs?
I’ve attached a video of the what I mean as well as a photo of the setup. You can see in the video that the mirror tends to stick and then overshoot, but it is also quite slow to respond.
In the photo, the belts aren’t connected to the sprockets
Photo: https://drive.google.com/file/d/1N_uY59d91iE2nNe9R825AN4vOm5IW_hr/view?usp=sharing
Video: https://drive.google.com/file/d/1xpIjIFO-6RXNgVmD9VIvBpLq060tqfAj/view?usp=sharing
Video: https://drive.google.com/file/d/1th0xE69BTMpBf6stpF5XN8gYPgl7AhH5/view?usp=sharing