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

5 commentaires

Talat Buyukakin
Talat Buyukakin le 11 Oct 2017
Hello Adam, The link you give above can not be open because of deleted or missing. Can you please mail me encoder values that you have worked with. I'm working on kind of this project. talatb.akin@hotmail.com Thank You
Walter Roberson
Walter Roberson le 11 Oct 2017
Modifié(e) : Walter Roberson le 11 Oct 2017
Talat: note that Adam will not have been notified about your comment.
I happened to have downloaded the file while testing the code. I have attached it.
Talat Buyukakin
Talat Buyukakin le 12 Oct 2017
Modifié(e) : Talat Buyukakin le 12 Oct 2017
Walter:Thank you so much for your help. I download it.
Adam Stepniak
Adam Stepniak le 12 Oct 2017
Walter was faster ;), good luck with your project Talat.
Talat Buyukakin
Talat Buyukakin le 12 Oct 2017
Thank you too Adam :)

Connectez-vous pour commenter.

 Réponse acceptée

Walter Roberson
Walter Roberson le 2 Mar 2017
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

1 commentaire

Adam Stepniak
Adam Stepniak le 9 Mar 2017
Thank you for fast resposnse, in fact the plot shows more realistic results in case of following straight line.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Aerospace Blockset dans Centre d'aide et File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by