I am using hoverborad motors for a differential drive for an AGV.
Firstly I had a motor with 4096 incremental encoder, since my application is an AGV, calibrating after reboot is not an option. So I changed it to a hall sensor.
Now after all the calibration, i wrote a C++ code that reads and writes from odrive through serial port at a 30 hz. Calibration was done on air, now after putting on the floor the response of the motor is very slow. At lower speed (.05 turs/sec) the motor is not able to move. Motor can’t overcome the inertia of the system after some times the motor starts to vibrate and moves (sometimes one wheel moves other one is static). I increased all the currents to max(above the motor rating). Changing the pi values is not helping. How can I solve this? (I am running is closed loop velocity mode).
I can push the motor in closed loop control, there is some resistance but not that much so i can push the robot around and once released it mimics the motions and comes back to original position And the motor is not stopping when we give 0 turns/sec , it moves a little bit and come back.
How can I improve the system?