ݺߣ

ݺߣShare a Scribd company logo
MATLAB ROBOTİCS TOOLBOX
Matlab Robotics Toolbox Nedir?
Matlab’ da robotik adı altında geliştirilen bu yapı kol-tipi ve simülasyon ile bir bilgi çerçevesinde robotik yapının anlaşılabilmesi
için gerekli olan araştırma ve eğitim desteğini verir.
Ayrıca bu yapı Matlab’ da araç kutusu olarak gösterilir bu yapıyı kendimiz kurmamız gerekiyor.
Bu yazılım özgür bir yazılımdır.
Robotics Toolbox’ın Geliştiricisi Kimdir ?
Bu yapıyı Peter CORKE adı ile bilinen bir geliştirici geliştirmektedir.
Peter CORKE üzerine yaptığı çalışmalarıyla tanınan Avustralyalı robotik, görsel denetim, alan robotiği,
matlab robotik ve yapay görme adı altında kendini geliştirmektedir.
Bu Toolbox dokuzuncu sürümü, geliştirme ve olgunluk önemli bir düzeyde onbeş yılı aşkın bir sürede
temsil etmektedir.
Robotics Toolbox Bilgilerini Nereden Bulabilirim ?
Bu yapının bilgilerini en son sürüm ile birlikte yeni bir kitap olan ‘Robotik Vizyon ve Kontrol’ adı altında son
iki yılda olup biten değişikliklerin ve uzantıların hepsini bir arada toplamıştır.
Bu toolbox kinematik, dinamik ve yörüngesel olarak bu tür yapılarda çalışmak için gerekli olan yapıyı bize
sağlamıştır.
Örneğin: Klasik kol tipi robotik ve simülasyon için yararlı olan bir çok fonksiyon sağlamıştır.
Bu araç ayrıca kinematik ve seri bağlantı manipülatör dinamiklerini temsil eden çok genel yöntemlere
dayanmaktadır.
Araç ayrıca manipüle ve bu tür vektörlerin, homojen dönüşümler ve 3 boyutlu konumunu ve yönünü temsil için
gerekli olan veri türleri arasındaki dönüşümleri için fonksiyonları vardır.
En son sürümünde daha çok mobil yapılı robotları desteklemek için uzatıldı.
Kullanılan Yapılar :
Zemin robotlar için araç standart yol planlama algoritmaları içerir.
Mesafe dönüşümü, D*, PRM
Kinematik planlama (RRT)
Lokasyon (EKF, partikül filtresi)
Harita inşa ve eş zamanlı yapı(EKF)
Bir simulink modeli
Holonomik olmayan bir yapı
Fonskiyon: Link() :
Matlab’da Command Window kısmına gelerek Link() fonksiyonunu yazıyoruz.
Bu fonksiyon bize Bir bağlantı nesnesi, kinematik parametrelerin, katı cisim atalet parametreleri, motor ve
transmisyon parametreleri gibi bir robot bağlantı ile ilgili tüm bilgileri tutar.
Burada gelen Parametleri açıklayalım.
Theta : kinematik eklem açı
d : kinematik bağlantı ofset
a : kinematik bağlantı uzunluğu
alpha : kinematik bağlantı dönmesi
offset : kinematik ortak değişken ofset
Link.Link kullanımı
Bu yapıda ise Robot bağlantı nesnesi oluşturmayı yapıyoruz.
Birkaç çağrı imzaları olan bu sınıf yapıcısı.
L = Link(parameters) bu kullanım ile bir bağlantı oluşturabiliriz.
Örneğin : L = Link([0 1.2 0.3 pi/2]);
SerialLink : Bir seri bağlantı kolu tipi robot temsil eden bir beton sınıfı. Mekanizma Denavit-
Hartenberg parametreleri, eklem başına bir seti kullanarak anlatılmıştır.
ö
Örnek bir robot simülasyonu
1. M-file oluştur.
Startup_rvc;
L(1) = Link([0 0.385 0 –pi/2 0]);
L(2) = Link([0 0 0.220 0 0]);
L(3) = Link([0 0 0.220 0 0]);
L(4) = Link([0 0 0.155 0 0]);
Robotic = SerialLink(L,’name’,Robotik’)
Hareket noktaları :
Qf0 = [0 0 0 0];
Qf1 = [0 –pi/2 pi/2 pi/2];
Qf2 = [-pi/3 –pi/2 pi/2 0];
Qf3 = [-pi/3 0 pi/2 -2*pi/3];
Qf4 = [-2*pi/3 0 pi/2 0];
T0 = Robotic.fkine(Qf0);
T1 = Robotic.fkine(Qf1);
T2 = Robotic.fkine(Qf2);
T3 = Robotic.fkine(Qf3);
T4 = Robotic.fkine(Qf4);
Kinematik denklemlerle
noktaları belirliyoruz
Hareketi tanımladığımız kısım
Tempo = 0:2:10;
Q =jtraj(Qf0,Qf1,Tempo );
Robotic.plot(Q);
Pause(1)
Q =jtraj(Qf1,Qf2,Tempo);
Robotic.plot(Q);
Pause(1)
Q =jtraj(Qf2,Qf3,Tempo);
Robotic.plot(Q);
Pause(1)
Q=jtraj(Qf3,Qf4,Tempo);
Robotic.plot(Q);
Pause(1)
İKİNCİ DURUMİLK DURUM
ÜÇÜNCÜ DURUM DÖRDÜNCÜ DURUM
KULLANILAN FONKSİYONLAR
fnike : ileri kinematik işlemi görür yani bir sonraki komutu alabilmesi için verilen koordinatların yerine getirir.
plot : Harita üzerinde görüntülemek için gerekli olan komut.
jtraj : İki yapılandırmaları arasında ortak bir boşluk yörünge hesaplaması için kullanılan fonksiyondur.
tempo : ise robotun verilen koordinatlar ve yörüngelere gidiş hızlarını belirler.
İkinci Örnek Simülasyon
clear all
syms q1 q2 q4 a1 a2 d3 d4 t
%q1 q2 q4 d3 açılı değişken
% a1 a2 d4 robot uzunluğu
assume(a1,'real');assume(a1>0);
assume(a2,'real');assume(a2>0);
assume(d3,'real');assume(d3>0);
assume(d4,'real');assume(d4>0);
assume(q1,'real');
assume(q2,'real');
assume(q4,'real');
%Denavit Hartenberg Matris Girdisi
A_01=[cos(q1)-sin(q1) 0 a1*cos(q1); sin(q1) cos(q1) 0 a1*sin(q1); 0 0 1 0;0 0 0 1]
A_12=[cos(q2)-sin(q2) 0 a2*cos(q2); sin(q2) -cos(q1) 0 a2*sin(q2); 0 0 -1 0;0 0 0 1]
A_23=[1 0 0 0;0 1 0 0;0 0 1 d3; 0 0 01]
A_34=[cos(q4) -sin(q4) 0 0; sin(q4) cos(q4) 0 0;0 0 1 d4;0 0 0 1]
A_04=A_01*A_12*A_23*A_34;
A_02=simplify(A_01*A_12);
A_03=simplify(A_02*A_23);
disp('Son Matris Denavit Hartenberg');
A_04=simplify(A_04);
rE=A_04(1:3,4)
L(1)=Link([0,0,0,5,0,0]);
L(2)=Link([0,0,0,4,pi,0]);
L(3)=Link([0,0,0,01]);
L(4)=Link([0,0,1,0,0,0]);
robot=SerialLink(L);
t=[0:0.005:4]; %zaman
j=length(t);
for i=1:j
xE(i)=0.3+0.2*(1+sin(5*t(i))*cos(t(i))); %çiçek
yE(i)=0.3+0.2*(1+sin(5*t(i))*sin(t(i)));
zE(i)=-0.3;
A=2*0.0.5*xE(i);
B=2*0.5*yE(i);
D=-0.4^2+xE(i).^2+yE(i).^2+0.5^2;
s1=(D.*B-A.*sqrt(A.^2+B.^2-D.^2))./(A.^2+B.^2);
c1=( D.*A+B.*sqrt(A.^2+B.^2-D.^2))./(A.^2+B.^2);
q1_num(:,i)=atan2(s1,c1);
s2=(yE(i)-0.5.*sin(q1_num(:,i)));
c2=(xE(i)-0.5.*cos(q1_num(:,i)));
q2_num(:,i)=atan2(s2,c2)-q1_num(:,i);
d3_num(:,i)=zE(i)-0.1;
q4_num(:,i)=q1_num(:,i)+q2_num(:,i);
end
figure
clf
hold on
grid on
axis([-1,1,-1,1,-1,1])
for i=1:length(t)
plot(robot,[q1_num(1,i),q2
_num(1,i),d3_num(1,i),q4_
num(1,i)])
plot3(xE(i),yE(i),zE(i),'b.')
pause(1/1000)
end
T.C.
CUMHURİYET ÜNİVERSİTESİ
MÜHENDİSLİK FAKÜLTESİ
BİLGİSAYAR MÜHENDİSLİĞİ
ROBOT PROGRAMLAMA DERSİ
MATLAB ROBOTİCs TOOLBOX
Hazırlayan
Gökhan GÜLLER 2014123039
Yrd.Doc.Dr Halil ARSLAN
2017

More Related Content

Matlab roboti̇cs toolbox

  • 1. MATLAB ROBOTİCS TOOLBOX Matlab Robotics Toolbox Nedir? Matlab’ da robotik adı altında geliştirilen bu yapı kol-tipi ve simülasyon ile bir bilgi çerçevesinde robotik yapının anlaşılabilmesi için gerekli olan araştırma ve eğitim desteğini verir. Ayrıca bu yapı Matlab’ da araç kutusu olarak gösterilir bu yapıyı kendimiz kurmamız gerekiyor. Bu yazılım özgür bir yazılımdır.
  • 2. Robotics Toolbox’ın Geliştiricisi Kimdir ? Bu yapıyı Peter CORKE adı ile bilinen bir geliştirici geliştirmektedir. Peter CORKE üzerine yaptığı çalışmalarıyla tanınan Avustralyalı robotik, görsel denetim, alan robotiği, matlab robotik ve yapay görme adı altında kendini geliştirmektedir. Bu Toolbox dokuzuncu sürümü, geliştirme ve olgunluk önemli bir düzeyde onbeş yılı aşkın bir sürede temsil etmektedir. Robotics Toolbox Bilgilerini Nereden Bulabilirim ? Bu yapının bilgilerini en son sürüm ile birlikte yeni bir kitap olan ‘Robotik Vizyon ve Kontrol’ adı altında son iki yılda olup biten değişikliklerin ve uzantıların hepsini bir arada toplamıştır. Bu toolbox kinematik, dinamik ve yörüngesel olarak bu tür yapılarda çalışmak için gerekli olan yapıyı bize sağlamıştır. Örneğin: Klasik kol tipi robotik ve simülasyon için yararlı olan bir çok fonksiyon sağlamıştır.
  • 3. Bu araç ayrıca kinematik ve seri bağlantı manipülatör dinamiklerini temsil eden çok genel yöntemlere dayanmaktadır. Araç ayrıca manipüle ve bu tür vektörlerin, homojen dönüşümler ve 3 boyutlu konumunu ve yönünü temsil için gerekli olan veri türleri arasındaki dönüşümleri için fonksiyonları vardır. En son sürümünde daha çok mobil yapılı robotları desteklemek için uzatıldı. Kullanılan Yapılar : Zemin robotlar için araç standart yol planlama algoritmaları içerir. Mesafe dönüşümü, D*, PRM Kinematik planlama (RRT) Lokasyon (EKF, partikül filtresi) Harita inşa ve eş zamanlı yapı(EKF) Bir simulink modeli Holonomik olmayan bir yapı
  • 4. Fonskiyon: Link() : Matlab’da Command Window kısmına gelerek Link() fonksiyonunu yazıyoruz. Bu fonksiyon bize Bir bağlantı nesnesi, kinematik parametrelerin, katı cisim atalet parametreleri, motor ve transmisyon parametreleri gibi bir robot bağlantı ile ilgili tüm bilgileri tutar. Burada gelen Parametleri açıklayalım. Theta : kinematik eklem açı d : kinematik bağlantı ofset a : kinematik bağlantı uzunluğu alpha : kinematik bağlantı dönmesi offset : kinematik ortak değişken ofset
  • 5. Link.Link kullanımı Bu yapıda ise Robot bağlantı nesnesi oluşturmayı yapıyoruz. Birkaç çağrı imzaları olan bu sınıf yapıcısı. L = Link(parameters) bu kullanım ile bir bağlantı oluşturabiliriz. Örneğin : L = Link([0 1.2 0.3 pi/2]); SerialLink : Bir seri bağlantı kolu tipi robot temsil eden bir beton sınıfı. Mekanizma Denavit- Hartenberg parametreleri, eklem başına bir seti kullanarak anlatılmıştır.
  • 6. ö
  • 7. Örnek bir robot simülasyonu 1. M-file oluştur. Startup_rvc; L(1) = Link([0 0.385 0 –pi/2 0]); L(2) = Link([0 0 0.220 0 0]); L(3) = Link([0 0 0.220 0 0]); L(4) = Link([0 0 0.155 0 0]); Robotic = SerialLink(L,’name’,Robotik’) Hareket noktaları : Qf0 = [0 0 0 0]; Qf1 = [0 –pi/2 pi/2 pi/2]; Qf2 = [-pi/3 –pi/2 pi/2 0]; Qf3 = [-pi/3 0 pi/2 -2*pi/3]; Qf4 = [-2*pi/3 0 pi/2 0]; T0 = Robotic.fkine(Qf0); T1 = Robotic.fkine(Qf1); T2 = Robotic.fkine(Qf2); T3 = Robotic.fkine(Qf3); T4 = Robotic.fkine(Qf4); Kinematik denklemlerle noktaları belirliyoruz
  • 8. Hareketi tanımladığımız kısım Tempo = 0:2:10; Q =jtraj(Qf0,Qf1,Tempo ); Robotic.plot(Q); Pause(1) Q =jtraj(Qf1,Qf2,Tempo); Robotic.plot(Q); Pause(1) Q =jtraj(Qf2,Qf3,Tempo); Robotic.plot(Q); Pause(1) Q=jtraj(Qf3,Qf4,Tempo); Robotic.plot(Q); Pause(1)
  • 11. KULLANILAN FONKSİYONLAR fnike : ileri kinematik işlemi görür yani bir sonraki komutu alabilmesi için verilen koordinatların yerine getirir. plot : Harita üzerinde görüntülemek için gerekli olan komut. jtraj : İki yapılandırmaları arasında ortak bir boşluk yörünge hesaplaması için kullanılan fonksiyondur. tempo : ise robotun verilen koordinatlar ve yörüngelere gidiş hızlarını belirler.
  • 12. İkinci Örnek Simülasyon clear all syms q1 q2 q4 a1 a2 d3 d4 t %q1 q2 q4 d3 açılı değişken % a1 a2 d4 robot uzunluğu assume(a1,'real');assume(a1>0); assume(a2,'real');assume(a2>0); assume(d3,'real');assume(d3>0); assume(d4,'real');assume(d4>0); assume(q1,'real'); assume(q2,'real'); assume(q4,'real'); %Denavit Hartenberg Matris Girdisi A_01=[cos(q1)-sin(q1) 0 a1*cos(q1); sin(q1) cos(q1) 0 a1*sin(q1); 0 0 1 0;0 0 0 1] A_12=[cos(q2)-sin(q2) 0 a2*cos(q2); sin(q2) -cos(q1) 0 a2*sin(q2); 0 0 -1 0;0 0 0 1] A_23=[1 0 0 0;0 1 0 0;0 0 1 d3; 0 0 01] A_34=[cos(q4) -sin(q4) 0 0; sin(q4) cos(q4) 0 0;0 0 1 d4;0 0 0 1] A_04=A_01*A_12*A_23*A_34; A_02=simplify(A_01*A_12); A_03=simplify(A_02*A_23); disp('Son Matris Denavit Hartenberg');
  • 13. A_04=simplify(A_04); rE=A_04(1:3,4) L(1)=Link([0,0,0,5,0,0]); L(2)=Link([0,0,0,4,pi,0]); L(3)=Link([0,0,0,01]); L(4)=Link([0,0,1,0,0,0]); robot=SerialLink(L); t=[0:0.005:4]; %zaman j=length(t); for i=1:j xE(i)=0.3+0.2*(1+sin(5*t(i))*cos(t(i))); %çiçek yE(i)=0.3+0.2*(1+sin(5*t(i))*sin(t(i))); zE(i)=-0.3; A=2*0.0.5*xE(i); B=2*0.5*yE(i); D=-0.4^2+xE(i).^2+yE(i).^2+0.5^2; s1=(D.*B-A.*sqrt(A.^2+B.^2-D.^2))./(A.^2+B.^2); c1=( D.*A+B.*sqrt(A.^2+B.^2-D.^2))./(A.^2+B.^2); q1_num(:,i)=atan2(s1,c1); s2=(yE(i)-0.5.*sin(q1_num(:,i))); c2=(xE(i)-0.5.*cos(q1_num(:,i))); q2_num(:,i)=atan2(s2,c2)-q1_num(:,i); d3_num(:,i)=zE(i)-0.1; q4_num(:,i)=q1_num(:,i)+q2_num(:,i); end figure clf hold on grid on axis([-1,1,-1,1,-1,1]) for i=1:length(t) plot(robot,[q1_num(1,i),q2 _num(1,i),d3_num(1,i),q4_ num(1,i)]) plot3(xE(i),yE(i),zE(i),'b.') pause(1/1000) end
  • 14. T.C. CUMHURİYET ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ ROBOT PROGRAMLAMA DERSİ MATLAB ROBOTİCs TOOLBOX Hazırlayan Gökhan GÜLLER 2014123039 Yrd.Doc.Dr Halil ARSLAN 2017