MATLAB: How to draw a true robot trajectory

mobilerobotodometryplotvisualization

Hello everyone !
I work on two-wheels robot mobile project. One part of the project is making a visualization of trajectory like a plot in Matlab. The plot shows how robot ride along black line in line follower mode and it is scalled to centimeters. The problem is with coordinate Y. In reality Y oscillate between 0-3 cm but plot shows even 20 cm. Do you know maybe how to deal with this inaccuracy ?
this link contains excel file with encoders values https://megawrzuta.pl/download/2c94ed93d2e8675ba2388cecff7bc53e.html

Best Answer

It is difficult for us to test with a picture of code, so I typed it in, but skipped the comments.
Your alfa (angle) has been calculated based upon difference in linear distance traveled, rather than based upon angular distance traveled. When I divided alfa by R to get angular distance, the results looked plausible.
modified version that looks plausible:
filename='encoders.xlsx';
encoders=xlsread(filename);
el=encoders(:,1);
er=encoders(:,2);
R=3.25;
L=16;
n=192;
dr=er.*((2*pi*R)/n);
dl=el.*((2*pi*R)/n);
d=(dr+dl)/2;
alfa=(dr-dl)/L/R;
c=cos(alfa);
s=sin(alfa);
x=d.*c;
y=d.*s;
plot(x,y);
title('trajectory');
xlabel('X')
ylabel('Y')
axis([0 200 -50 50])
hold on
grid on
Related Question