G60
Strony: [1]   Do dołu
  Wyślij ten wątek    Drukuj  
Autor Wątek: Robot IRB 140  (Przeczytany 3164 razy)
Grudzień 04, 2008, 21:24:02
dudi1217
Nowicjusz
*

Pomógł: +0/-0
Offline Offline

Wiadomości: 16




Zgłoś do moderatora  
Zapisane
Robot IRB 140

Witam, muszę wyliczyć przestrzeń roboczą robota IRB 140 korzystając z notacji Denavita-Hartenberga. Niestety nie wiem jak sie za to zabrać. Mógłby mi to ktoś wytłumaczyć ewentualnie podrzucic jakies materiały? Proszę o pomoc. Pozdr
« Ostatnia zmiana: Grudzień 14, 2008, 21:20:58 wysłane przez Dominik Łuczak »

Grudzień 06, 2008, 13:12:32 #1
Dominik Łuczak
Administrator
Użytkownik
*****

Pomógł: +0/-0
Offline Offline

Płeć: Mężczyzna
Wiadomości: 58





Zgłoś do moderatora  
Zapisane
Odp: Robot IRB 140

Musisz wyznaczyć tabelkę DH (Denavita-Hartenberga) lub ZDH (zmodyfikowana metoda DH). Mając strukturę robota możesz ją za modelować w Matlabie lub Scilabie 4.1.2 dodatkowo trzeba dodać the Robotics Toolbox for Scilab/Scicos. Mając model określasz wszystkie osiągalne pozycje z dowolną orientacją (przestrzeń robocza) a dokładniej nie wszystkie pozycje lecz maksymalne  jakie może osiągnąć robot  zamykające przestrzeń roboczą. Za pomocą funkcji  rt_drivebot można poruszać modelem robota w Scilabie lub sprawdzić czy wyznaczona tabelka DH odpowiada rzeczywistej strukturze.
« Ostatnia zmiana: Grudzień 14, 2008, 21:17:07 wysłane przez Dominik Łuczak »


Grudzień 14, 2008, 20:39:17 #2
dudi1217
Nowicjusz
*

Pomógł: +0/-0
Offline Offline

Wiadomości: 16




Zgłoś do moderatora  
Zapisane
Odp: Robot IRB 140

Dziekuje za pomocne informacje. A jak moge wyznaczyć tę tabelke??
« Ostatnia zmiana: Grudzień 14, 2008, 21:20:41 wysłane przez Dominik Łuczak »

Grudzień 14, 2008, 21:02:09 #3
Dominik Łuczak
Administrator
Użytkownik
*****

Pomógł: +0/-0
Offline Offline

Płeć: Mężczyzna
Wiadomości: 58





Zgłoś do moderatora  
Zapisane
Odp: Robot IRB 140

Tutaj znajdziesz opis kinematyki prostej i odwrotnej, na stronie 68 jest opis DH. Punkt 3.2.3 opisuje algorytm działania, natomiast w punkcie 3.3 podany jest przykład wyznaczenia DH dla manipulatora planarnego.

Jeśli wiesz jak wyznaczyć zadanie odwrotne kinematyki dla Twojego robota można zamiast wyznaczać DH wyznaczyć zadanie odwrotne kinematyki (też jest opisana w linku) i podstawiając punkty z zadanego przedziału sprawdzać czy ów punkty są osiągalne przez robota z dowolną orientacją (należą do przestrzeni roboczej).

Robot IRB 140 jest narysowana przestrzeń robocza.

PS
Poprawiłem temat.
« Ostatnia zmiana: Grudzień 14, 2008, 21:21:44 wysłane przez Dominik Łuczak »


Grudzień 16, 2008, 09:57:45 #4
dudi1217
Nowicjusz
*

Pomógł: +0/-0
Offline Offline

Wiadomości: 16




Zgłoś do moderatora  
Zapisane
Odp: Robot IRB 140

Witam, bardzo dziękuje za pomocne linki. Bardzo mi pomogły. Teraz mam jeszcze jeden problem: jak moge w Maple lub Matlabie narysowac  np macierz
      cos(alfa) -sin(alfa) 0 50
A=[ sin(alfa) cos(alfa) 0   0   ]
         0            0              1

Chodzi mi oto żeby spolotować te wymnozone macierze i otrzymac przestrzen narysowana na wykresie, w któryms z powyzszych programów. Proszę o pomoc. Pozdr

Grudzień 16, 2008, 18:50:16 #5
Dominik Łuczak
Administrator
Użytkownik
*****

Pomógł: +0/-0
Offline Offline

Płeć: Mężczyzna
Wiadomości: 58





Zgłoś do moderatora  
Zapisane
Odp: Robot IRB 140

Jeśli twoja macierz
      cos(alfa) -sin(alfa) 0 50
A=[ sin(alfa) cos(alfa) 0   0   ]
         0            0              1

jest postaci

r11 r12 r13 x
r21 r22 r23 y
r31 r32 r33 z
0    0    0    1

To rij określają orientację punktu, a [x y z] pozycję punkt w przestrzeni.


Grudzień 16, 2008, 21:05:35 #6
dudi1217
Nowicjusz
*

Pomógł: +0/-0
Offline Offline

Wiadomości: 16




Zgłoś do moderatora  
Zapisane
Odp: Robot IRB 140

Oki rozumie. Bardzo Ci dziekuje za pomoc. Pozdr

Styczeń 03, 2009, 18:13:19 #7
dudi1217
Nowicjusz
*

Pomógł: +0/-0
Offline Offline

Wiadomości: 16




Zgłoś do moderatora  
Zapisane
Odp: Robot IRB 140

Witam!! Dzięki pomocy Admina Dominika zrobiłem ostatecznie taki m-plik mojej przestrzeni roboczej:

i=0;
for theta1=-3.1:0.3:3.1
    for theta2=-1.7:0.2:1.7
        for theta3=-1.7:0.2:1.7
           for theta4= -3.1:3.1:3.1
              for theta5=-2.2:0.2:2.2
           
        i=i+1;
       
 
     
        x(i) = (65*((-cos(theta1)*sin(theta2)*cos(theta3)-cos(theta1)*cos(theta2)*sin(theta3))*cos(theta4)+sin(theta1)*sin(theta4)))*sin(theta5)+(65*(-cos(theta1)*sin(theta2)*sin(theta3)+cos(theta1)*cos(theta2)*cos(theta3)))*cos(theta5)-380*cos(theta1)*sin(theta2)*sin(theta3)+380*cos(theta1)*cos(theta2)*cos(theta3)-360*cos(theta1)*sin(theta2);
        y(i) = (65*((-sin(theta1)*sin(theta2)*cos(theta3)-sin(theta1)*cos(theta2)*sin(theta3))*cos(theta4)-cos(theta1)*sin(theta4)))*sin(theta5)+(65*(-sin(theta1)*sin(theta2)*sin(theta3)+sin(theta1)*cos(theta2)*cos(theta3)))*cos(theta5)-380*sin(theta1)*sin(theta2)*sin(theta3)+380*sin(theta1)*cos(theta2)*cos(theta3)-360*sin(theta1)*sin(theta2);
        z(i)=352+(65*(cos(theta2)*cos(theta3)-sin(theta2)*sin(theta3)))*cos(theta4)*sin(theta5)+(65*(cos(theta2)*sin(theta3)+sin(theta2)*cos(theta3)))*cos(theta5)+380*cos(theta2)*sin(theta3)+380*sin(theta2)*cos(theta3)+360*cos(theta2);
             end
        end
       
    end
   
    end
end
figure;
plot3(x,y,z,'.');



Wszystko rysuje bardzo fajnie w Matlabie. Jednak chciałbym to troche zmodyfikować w innym programie. Chodzi mi oto, że w Matlabie strasznie banalnie to rysuje. Nie ma żadnej animacji podczas rysowania. Chciałbym zrobic coś takiego, żeby np etapami pokazywało ten wykres. Jakiś krótki filmik a nie odrazu gotowe. W jakim programie mógłbym to zrobic? Proszę o pomoc. Pozdr 
« Ostatnia zmiana: Styczeń 03, 2009, 18:15:44 wysłane przez dudi1217 »

Styczeń 03, 2009, 23:03:29 #8
Dominik Łuczak
Administrator
Użytkownik
*****

Pomógł: +0/-0
Offline Offline

Płeć: Mężczyzna
Wiadomości: 58





Zgłoś do moderatora  
Zapisane
Odp: Robot IRB 140

Możesz w tym samym oknie rysować co jakiś czas przestrzeń roboczą (możesz też czyścić okno). Co jakiś czas czyli po najbardziej wewnętrznie pętli lub dodaj modulo zmiennej "i"  i przyrównaj do zera.
W scilabie to:
if(modulo(i,1000)==0)
       plot3d(x,y,z);
end


Styczeń 04, 2009, 13:25:05 #9
dudi1217
Nowicjusz
*

Pomógł: +0/-0
Offline Offline

Wiadomości: 16




Zgłoś do moderatora  
Zapisane
Odp: Robot IRB 140

Jak możesz to wyjaśnij mi jeszcze z tym wykresem, bo nie bardzo rozumię. Mogę zrobić w matlabie, żeby etapami mi rysowało ten wykres? Jeśli tak to wytłumacz mi proszę jak  dokładnie to zrobic, bo niestety z takim czymś sie jeszcze nie spotkałem. Pozdr

Styczeń 04, 2009, 17:08:18 #10
Dominik Łuczak
Administrator
Użytkownik
*****

Pomógł: +0/-0
Offline Offline

Płeć: Mężczyzna
Wiadomości: 58





Zgłoś do moderatora  
Zapisane
Odp: Robot IRB 140

hold - kontrola nakładania się wykresów:
hold on – wszystkie rysowane wykresy będą widoczne we wspólnym układzie współrzędnych
hold off – obszar wykresu jest czyszczony przed narysowaniem kolejnego przebiegu (standardowo)

clf - usuwa zawartość aktywnego okna

axis auto - włącza tryb automatycznego ustawiania zakresu osi

np
Kod
Język (matlab):
i=0;
for theta1=-3.1:0.3:3.1
   for theta2=-1.7:0.2:1.7
       for theta3=-1.7:0.2:1.7
          for theta4= -3.1:3.1:3.1
             for theta5=-2.2:0.2:2.2
 
       i=i+1;
 
if mod(i,1000) == 0 %warunek spelniony po 1000 operacjach obliczenia x,y,z
    %mozesz posprawdzac jak na efekt wizualny wplynie dodanie polecen z opisu na poczatku skryptu
    %jesli rysowanie bedzie zbyt szybkie dodaj pause(liczba_jednostek) w tym warunku nie pamietam jednostki czasu
    plot3(x,y,z,'.');
end
 
%tutaj obliczasz x,y,z nie chcialem przepisywac
            end
       end
 
   end
 
   end
end
 
Dzięki GeSHI


Styczeń 06, 2009, 17:16:41 #11
dudi1217
Nowicjusz
*

Pomógł: +0/-0
Offline Offline

Wiadomości: 16




Zgłoś do moderatora  
Zapisane
Odp: Robot IRB 140

Dziękuję za pomoc;] Pozdr

Strony: [1]   Do góry
  Wyślij ten wątek    Drukuj  
 
Skocz do: