Revision 1821
Individual Wheel Speeds
motionModel.m | ||
---|---|---|
11 | 11 |
|
12 | 12 |
transform = [ R/2 R/2; -R/L R/L]; |
13 | 13 |
inverseTransform = inv(transform); |
14 |
wheels = zeros(2, numRobots); |
|
14 | 15 |
|
15 | 16 |
%Transforms from v, omega into wheel speed, limits wheel speed and adds noise, then translates back. |
16 | 17 |
for i=2:numRobots |
17 | 18 |
|
18 |
wheels = inverseTransform * [v(i); omega(i)] + noise * randn(2,1); |
|
19 |
wheels = min(wheels, wheelMax);
|
|
20 |
wheels = max(wheels, wheelMin);
|
|
21 |
q = transform * wheels; |
|
19 |
wheels(:, i) = inverseTransform * [v(i); omega(i)] + noise * randn(2,1);
|
|
20 |
wheels(:, i) = min(wheels(:, i), wheelMax);
|
|
21 |
wheels(:, i) = max(wheels(:, i), wheelMin);
|
|
22 |
q = transform * wheels(:, i);
|
|
22 | 23 |
v(i) = q(1); |
23 | 24 |
omega(i) = q(2); |
24 | 25 |
|
... | ... | |
34 | 35 |
x = xold + cos(thetaold).*v*dt; |
35 | 36 |
y = yold + sin(thetaold).*v*dt; |
36 | 37 |
theta = thetaold + omega*dt; |
38 |
|
|
39 |
disp(x) |
|
37 | 40 |
|
38 | 41 |
phi = theta - atan2(y-y(1), x-x(1)); |
39 | 42 |
|
Also available in: Unified diff