Quote:
Originally Posted by Jared Russell
unlike determining the necessary wheel speeds for a mecanum drive to achieve a given x, y, theta velocity (inverse kinematics), taking 4 independent velocity measurements and obtaining an x, y, theta velocity (forward kinematics) has 4 inputs and 3 unknowns; it is an overdetermined system. Due to noise you are virtually guaranteed not to have measured 4 velocities that exactly solve the equations. One common approach to deal with this is to use a least-squares solution, which would find 4 new velocities that are consistent and minimize the mean square "error" between what you measured and what your kinematic model says is possible. (A nice side effect is that you can measure this error - "residual" - and use it as a signal that you might be less certain about the vehicle's motion and could be colliding with something, etc.).
|
The math for the above is discussed
here, starting at the bottom of page 7.
If you let
A =
R/r,
b =
Ω, and
x =
V,
then the inverse kinematic equation for
b (given
A and
x) is:
b =
Ax
... and the least-squares forward kinematic solution is given by solving the inverse kinematic equation for
x (given
A and
b), which can be done several different ways (one of which is shown in the linked paper).
The residuals are then a straightforward computation:
residuals =
b -
Ax
If you intend to pursue this further and need help with the math you can start a new thread.