So, this weekend we implemented acceleration feedforward for our motion-profiling, using the workaround suggested.
We initially guessed at a value for Ka by calculating the “maximum” acceleration at stall-torque assuming no wheel slip and a perfect voltage source, multiplied by .8 to account for frictional losses.
For our practice bot, this came out to approximately 100 feet per second squared (~110lb robot, 6 CIMs, 6.1:1 gearing, 2’’ wheel radius](http://www.wolframalpha.com/input/?i=21.3+inlb++6.1++6+%2F+(2+inches++110+lbm)+in+ft%2Fs%5E2)).
(Our “fudged” velocity values were then calculated as desired velocity + desired acceleration * maximum velocity / maximum acceleration, which is equivalent to the formula provided by Jared Russel if Kv = 1/max velocity and Ka = 1/max acceleration).
This number seems ridiculously large in terms of realistic robot accelerations, and it is - the assumptions of “no wheel slip” and “perfect voltage source” are lousy assumptions that do not hold in all situations.
That said, we are careful to limit our max acceleration to a value below that which would slip the wheels, and we use the “nominal closed loop voltage” option on the Talon SRXs to account for dropping battery voltage, which should account for the latter (so long as we do not actually command un-achievable accelerations).
So, we were marginally confident that our calculated “theoretical” value would be somewhat close to the “actual” value.
As it happens, this was not the case - we found that the “maximum acceleration” that yielded a reasonable Ka was around 15 feet per second squared - far lower than the theoretically-calculated value of 100.
Perhaps someone with experience in this could shed some insight into why this is the case? I’m at a loss for why there’s such a huge discrepancy between the calculated value and the value that actually works in practice, *especially *since we are using the Talon’s nominal battery voltage compensation.