3. 3
Omni-directional Mobile Robot :
Omni-directional robots are becoming more and more common in recent
robotic applications. They offerimproved ease of maneuverability and
effectiveness at the expense of increased complexity. Frequent
applications include but are not limited to robotic competitions and service
robotics. The goal of this work is tofind a precise dynamical model in order
to predict the robot behavior. Models were found for two real worldomni-
directional robot configurations and their parameters estimated using a
prototype that can have 3 wheels. Simulations and experimental runs are
presented in order to validate the presented work.
Fig.1 differential wheeled robots
4. 4
1.2 Example of differential wheeled robots
The Assistant Personal Robot
Camera Robot
Distance Robot
1.3 Code:
clear all
clc
%% Omnidirection Mobile Robol Equations " Read The Note "
% This Code Done By Osama Noor.
%%
% * * * * * * * *%% Before starting Note: "" Click Here to implement the
full program "" * * * * * * * *
disp=('Hello,Bro This Code to Solve OmniDirection Mobile Robot ')
NOM=menu('How many Movements','1','2','3','4','5','6','7','8','9','10');
for i=1:NOM
QUSHN=input('If have Xr&THr&Yr ENTER 1 If have Time&Xdis&THETA ENTER 2 Others
ERROR = ')
switch QUSHN
case 1
%% When you choose the first option you must have it
Xr,THr,Yr,L,R
Xr=input('How many Xr='); %%XR(Dot)
TH=input('How many THr='); %%ThetaR(Dot)
Yr=input('How many Yr='); %%YR(Dot)
5. 5
L=input('How many L='); %%Length
R=input('How many R='); %%Radius
Quastion=input('THETA in degree =1 or radprSec=2 Others Error =
');
case 1
THr=TH;
PH1=(1/R)*(((sqrt(3)/2)*Xr)-(0.5*Yr)-(L*THr));
PH2=(1/R)*(Yr-(L*THr));
PH3=(1/R)*(-((sqrt(3)/2)*Xr)-(0.5*Yr)-(L*THr));
if Yr==0 && THr==0 && Xr~=0
PHi1=PH1
PHi2=PH2
PHi3=PH3
Movement=('Translation')
elseif Yr==0 && Xr==0 && THr~=0 %%If you have a rotational movement
without transmission
PHi1=PH1
PHi2=PH2
PHi3=PH3
Movement='Rotation'
elseif Yr==0 && Xr~=0 && THr~=0 %%If you have a rotational and
transitional movement
PHi1=PH1
PHi2=PH2
PHi3=PH3
Movement='Rotation & Translation'
else
Movement='Error'
end
case 2
THr=(TH*3.14/180);
PH1=(1/R)*(((sqrt(3)/2)*Xr)-(0.5*Yr)-(L*THr));
PH2=(1/R)*(Yr-(L*THr));
PH3=(1/R)*(-((sqrt(3)/2)*Xr)-(0.5*Yr)-(L*THr));
if Yr==0 && THr==0 && Xr~=0
PHi1=PH1
PHi2=PH2
PHi3=PH3
Movement=('Translation')
elseif Yr==0 && Xr==0 && THr~=0 %%If you have a rotational movement
without transmission
PHi1=PH1
PHi2=PH2
PHi3=PH3
Movement='Rotation'
elseif Yr==0 && Xr~=0 && THr~=0 %%If you have a rotational and
transitional movement
PHi1=PH1
PHi2=PH2
PHi3=PH3
Movement='Rotation & Translation'
else
6. 6
Movement='Error'
end
otherwise
Movement='Error'
end
case 2
%% When you choose the first option you must have it
Xdis,Time,TH,Yr,L,R
Xdis=input('How many Xdis='); %%Xdis
TH=input('How many TH='); %%Theta
T=input('How many Time') %%Time
Yr=input('How many Yr='); %%YR(Dot)
L=input('How many L='); %%Length
R=input('How many R='); %%Radius
Xr=Xdis/T;
Quastion=input('THETA in degree =1 or radprSec=2 Others Error =')
switch Quastion
case 1
THr=TH;
PH1=(1/R)*(((sqrt(3)/2)*Xr)-(0.5*Yr)-(L*THr));
PH2=(1/R)*(Yr-(L*THr));
PH3=(1/R)*(-((sqrt(3)/2)*Xr)-(0.5*Yr)-(L*THr));
if Yr==0 && THr==0 && Xr~=0
PHi1=PH1
PHi2=PH2
PHi3=PH3
Movement=('Translation')
elseif Yr==0 && Xr==0 && THr~=0 %%If you have a rotational movement
without transmission
PHi1=PH1
PHi2=PH2
PHi3=PH3
Movement='Rotation'
elseif Yr==0 && Xr~=0 && THr~=0 %%If you have a rotational and
transitional movement
PHi1=PH1
PHi2=PH2
PHi3=PH3
Movement='Rotation & Translation'
else
Movement='Error'
end
case 2
THr=(TH*3.14/180);
PH1=(1/R)*(((sqrt(3)/2)*Xr)-(0.5*Yr)-(L*THr));
PH2=(1/R)*(Yr-(L*THr));
PH3=(1/R)*(-((sqrt(3)/2)*Xr)-(0.5*Yr)-(L*THr));
if Yr==0 && THr==0 && Xr~=0
PHi1=PH1
PHi2=PH2
PHi3=PH3
Movement=('Translation')
7. 7
elseif Yr==0 && Xr==0 && THr~=0 %%If you have a rotational movement
without transmission
PHi1=PH1
PHi2=PH2
PHi3=PH3
Movement='Rotation'
elseif Yr==0 && Xr~=0 && THr~=0 %%If you have a rotational and
transitional movement
PHi1=PH1
PHi2=PH2
PHi3=PH3
Movement='Rotation & Translation'
else
Movement='Error'
end
otherwise
Movement='Error'
end
otherwise
Code='This option is not available. Please,if you want other
requests, add his code.ThanX'
end
end
8. 8
1.4 Conclusion:
Omni direction mobile robot 3-Wheel Robot. If a transitional movement
moves, the first wheel with the third will move at the same speed. If the
movement was rotational, all wheels would move at the same speed. If the
movement was rotational with transitional, the wheels would move at a
different speed. In this paper, the robot equations were constructed and the
velocity of each wheel was introduced with the width of the wheel path. Is it
transitional only, rotational only, transitional and rotational at the same
time? By the Matlab code program.
1.5 References :
1. Loh, W. K., Low, K. H., and Leow, Y. P. (2003). Mechatronics design
and kinematic modelling of a singularityless omni-directional wheeled
mobile robot. In Robotics and Automation, 2003. Proceedings. ICRA
’03. IEEE International Conference on, volume 3
2. Leow, Y. P., H., L. K., and K., L. W. (2002). Kinematic modelling and
analysis of mobile robots with omnidirectional wheels. In Seventh
lnternational Conference on Control, Automation, Robotics And Vision
(lCARCV’O2), Singapore.
3.Williams, R. L., I., Carter, B. E., Gallina, P., and Rosati, G. (2002).
Dynamic model with slip for wheeled omnidirectional robots. IEEE
Transactions on Robotics and Automation,
Contacts :
linkedin.com/in/osama-n-neama-b2774118b
www.facebook.com/Osama.N0r