Ασκήσεις Ρομποτικής με την χρήση του MATLAB Δρ. Φασουλάς Ιωάννης Επίκουρος Καθηγητής Τ.Ε.Ι. Κρήτης Τµήµα Μηχανολόγων Μηχανικών Τ.Ε.
2
~Μέρος 1 ο ~ Βασικές Δραστηριότητες με το MATLAB Δραστηριότητα 1: Εξοικείωση με την απεικόνιση σημείων στον τρισδιάστατο χώρο Η εντολή Plot3(x,y,z), απεικονίζει ένα σημείο με συντεταγμένες (x,y,z) στον. Παράδειγμα 1 (απεικ. σημείου) plot3(1,2,3, * ) grid on xlabel('x') ylabel('y') zlabel('z') Παράδειγμα 2 ( απεικ. έλικας) t = 0:pi/50:10*pi; plot3(sin(t),cos(t),t); Δραστηριότητα 2: Στροφή ανύσματος θέσης με πίνακες στροφής Έστω { A } το πλαίσιο βάσης. Δίνεται το άνυσμα p με συντεταγμένες ( 3, 0, 2) να βρεθούν οι νέες συντεταγμένες αυτού όταν στραφεί κατά γωνία 4 π γύρω από τον άξονα y του πλαισίου βάσης. Υπολογίστε το μέτρο του ανύσματος πριν και μετά την στροφή, τι πρέπει να ισχύει; Δίνονται οι βασικοί πίνακες στροφής: 1 0 0 cθ 0 sθ cθ sθ 0 Rot(, x θ) = 0 cθ sθ Rot(, y θ) = 0 1 0Rot(, z θ) = sθ cθ 0 0 sθ cθ 0 0 1 sθ 0 cθ Δραστηριότητα 3: Μετασχηματισμός συντεταγμένων με πίνακες στροφής Έστω { A} το πλαίσιο βάσης. Δίνεται πλαίσιο { B} σχέση με το πλαίσιο { A } δίνεται από τον πίνακα στροφής R AB = το σημείο p με συντεταγμένες ( 2, 2, 1) του οποίου ο προσανατολισμός σε ως προς το πλαίσιο { } 1 0 0 0 0 1. Δίνεται 0 1 0 B. Ποιες είναι οι συντεταγμένες του p ως προς το πλαίσιο { A }; Έστω τώρα σημείο q με συντεταγμένες ( 4, 2, 2) ως προς το πλαίσιο { A }. Ποιες είναι οι συντεταγμένες του q ως προς το 3
πλαίσιο { B }; Σχεδιάστε τα παραπάνω πλαίσια με βάση τον πίνακα στροφής που δίνεται. Δραστηριότητα 4: Πολλαπλασιασμός πινάκων στροφής Έστω τα πλαίσια συντεταγμένων {A}, {B}, {C} τα οποία συνδέονται με τους πίνακες στροφής R ΑΒ = στροφής R BC 1 0 0 0 1 2 3 2 0 3 2 1 2 με την βοήθεια του MATLAB., R AC = 0 0 1 0 1 0 1 0 0. Να βρεθεί ο πίνακας Λύση Ο υπολογισμός μπορεί να γίνει ως εξής: 1 0 0 R BC = R BA R AC = ( R AB ) T R AC = 0 1 3 2 2 0 3 1 2 2 0 0 1 0 1 0 1 0 0 = 0 0 1 3 1 2 2 0 1 3 2 2 0 Δραστηριότητα 5: Ομογενής Μετασχηματισμός α) Ποιος από τους παρακάτω πίνακες είναι ένας ομογενής μετασχηματισμος; 0 0 1 12.5 0 0 1 1 0 0 0 0 12.5 1 0 0 0 0 1.1 0 2.54 0 1 0 2 0 A) B) 0 1 0 2.54 0 1 0 0 C) D) 1 0 0 6 1 0 0 3 5 1 0 0 6 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 β) Βρείτε τα στοιχεία που λείπουν από τον παρακάτω ομογενή μετασχηματισμό του πλαισίου {Β} ως προς το πλαίσιο {Α} και σχεδιάστε τα δύο πλαίσια. g ab = ; 0 1 0 ; 0 0 1 ; 1 0 2 ; 0 0 1. γ) Να βρεθούν οι ομογενείς μετασχηματισμοί, g 01, g 02, g 12 ανάμεσα στα πλαίσια συντεταγμένων που δίνονται. 4
Δραστηριότητα 6: Δημιουργία ομογενών μετασχηματισμών (Ο.Μ) καθαρής στροφής και καθαρής μετατόπισης Να κατασκευαστούν στο Matlab οι παρακάτω συναρτήσεις: trotx(t): Επιστρέφει τον ομογενή μετασχηματισμό ο οποίος αντιστοιχεί σε μία στροφή γύρω από τον άξονα x κατά γωνία t (σε rad). troty(t): Επιστρέφει τον ομογενή μετασχηματισμό ο οποίος αντιστοιχεί σε μία στροφή γύρω από τον άξονα y κατά γωνία t (σε rad). trotz(t): Επιστρέφει τον ομογενή μετασχηματισμό ο οποίος αντιστοιχεί σε μία στροφή γύρω από τον άξονα z κατά γωνία t (σε rad). transl(x,y,z):επιστρέφει τον ομογενή μετασχηματισμό ο οποίος αντιστοιχεί σε μια καθαρή μετατόπιση κατά x,y,z. function r = trotx(t) ct = cos(t); st = sin(t); r = [ 1 0 0 0 0 ct -st 0 0 st ct 0 0 0 0 1]; function r = troty(t) ct = cos(t); st = sin(t); r = [ct 0 st 0 0 1 0 0 -st 0 ct 0 0 0 0 1]; function r = trotz(t) ct = cos(t); st = sin(t); r = [ ct -st 0 0 st ct 0 0 0 0 1 0 0 0 0 1]; function r = transl(x, y, z) t = [x; y; z]; r = [eye(3) t; 0 0 0 1]; Δραστηριότητα 7: Εξοικείωση με τους παραπάνω Ο.Μ. Υπολογίστε τους ομογενείς μετασχηματισμούς (i) καθαρής στροφής γύρω από τον x- άξονα κατά 45 μοίρες=. (ii) (iii) (iv) (v) (vi) καθαρής στροφής γύρω από τον y- άξονα κατά 45 μοίρες=. καθαρής στροφής γύρω από τον z- άξονα κατά 45 μοίρες=. καθαρής μετατόπισης κατά τον x- άξονα κατά 4 μονάδες=. καθαρής μετατόπισης κατά τον y- άξονα κατά 4 μονάδες=. καθαρής μετατόπισης κατά τον z- άξονα κατά 4 μονάδες=. Δραστηριότητα 8: Βασικές ιδιότητες για στροφές γύρω από σταθερούς άξονες Α) Θεωρήστε ένα ομογενή μετασχηματισμό βασικής στροφής και διαπιστώστε αριθμητικά (π.χ για θ=π/4) με την βοήθεια του Matlab ότι ισχύουν οι παρακάτω ταυτότητες: 5
i) Rot(- θ)=rot - 1 (θ) ii) Rot(θ 1)Rot(θ 2)=Rot(θ 1+θ 2) iii) Rot(θ) 2 =Rot(2θ) όπου Rot ένας ομογενής μετασχηματισμός καθαρής στροφής (π.χ κατά τον y- άξονα). Β) Διαπιστώστε αριθμητικά (π.χ για θ=3π/4) ότι ο αντίστροφος πίνακας ενός Ο.Μ. καθαρής στροφής ισούται με τον ανάστροφο πίνακα του Ο.Μ. Π.χ. για καθαρή στροφή γύρω από τον z- άξονα του πλαισίου βάσης κατά γωνία θ ισχύει 1 Rotz(θ) = Rotz(θ) T Δραστηριότητα 9: Εξοικείωση με την αλληλουχία βασικών στροφών Α) Θεωρήστε την ακόλουθη αλληλουχία βασικών στροφών (i) Στροφή κατά γωνία π 2 γύρω από τον x- άξονα του πλαισίου βάσης. (ii) Στροφή κατά γωνία π γύρω από τον z- άξονα του πλαισίου βάσης. π (iii) Στροφή κατά γωνία γύρω από τον x- άξονα του τρέχον πλαισίου. Υπολογίστε 2 τον ομογενή μετασχηματισμό καθαρής στροφής που αντιστοιχεί στην παραπάνω αλληλουχία βασικών στροφών. Απάντηση Ομογενής μετασχηματισμός (συμβολικά οι πολλαπλασιασμοί πινάκων ) = Ομογενής μετασχηματισμός (αριθμητικά το αποτέλεσμα)=... Β) Θεωρήστε την ακόλουθη αλληλουχία βασικών στροφών (i) Στροφή κατά γωνία 2 π γύρω από τον x- άξονα του πλαισίου βάσης. (ii) Στροφή κατά γωνία π γύρω από τον z- άξονα του τρέχον πλαισίου. π (iii) Στροφή κατά γωνία γύρω από τον x- άξονα του πλαισίου βάσης. Υπολογίστε 2 τον ομογενή μετασχηματισμό καθαρής στροφής που αντιστοιχεί στην παραπάνω αλληλουχία βασικών στροφών. Απάντηση Ομογενής μετασχηματισμός (συμβολικά οι πολλαπλασιασμοί ) = Ομογενής μετασχηματισμός (αριθμητικά το αποτέλεσμα)=... Γ) Θεωρήστε την ακόλουθη αλληλουχία βασικών στροφών (i) Στροφή κατά γωνία π γύρω από τον x- άξονα του πλαισίου βάσης. (ii) Στροφή κατά γωνία + π γύρω από τον z- άξονα του πλαισίου βάσης. 2 6
π (iii) Στροφή κατά γωνία + γύρω από τον x- άξονα του τρέχον πλαισίου. 2 (iv) Στροφή κατά γωνία π γύρω από τον y- άξονα του πλαισίου βάσης. Υπολογίστε τον ομογενή μετασχηματισμό καθαρής στροφής που αντιστοιχεί στην παραπάνω αλληλουχία βασικών στροφών. Απάντηση Ομογενής μετασχηματισμός (συμβολικά οι πολλαπλασιασμοί ) = Ομογενής μετασχηματισμός (αριθμητικά το αποτέλεσμα)=... Δραστηριότητα 10: Απεικόνιση ομογενή μετασχηματισμού (Ο.Μ.) σε Figure Κατασκευάστε μια συνάρτηση με το όνομα add_frame(g,n). Η συνάρτηση να λαμβάνει ως ορίσματα i. έναν πίνακα ο οποίος να αντιστοιχεί σε ένα ομογενή μετασχηματισμό ii. τον αριθμό του πλαισίου που θα αντιστοιχεί σε αυτόν τον ομογενή μετασχηματισμό. Η συνάρτηση θα απεικονίζει σε ένα figure το πλαίσιο που αντιστοιχεί στον ομογενή μετασχηματισμό. Η απεικόνιση θα γίνει χρησιμοποιώντας την συνάρτηση line του Matlab. % G: Homogenous transformation matrix % n: Number of frame function add_frame(g,n) line([g(1,4) G(1,4)+G(1,1)],[G(2,4) G(2,4)+G(2,1)],[G(3,4)... G(3,4)+G(3,1)],'color',[1 0 0],'linewidth',3) %x axis line([g(1,4) G(1,4)+G(1,2)],[G(2,4) G(2,4)+G(2,2)],[G(3,4)... G(3,4)+G(3,2)],'color',[0 1 0],'linewidth',3) %y axis line([g(1,4) G(1,4)+G(1,3)],[G(2,4) G(2,4)+G(2,3)],[G(3,4)... G(3,4)+G(3,3)],'color',[0 0 1],'linewidth',3) %z axis text(g(1,4)+g(1,1),g(2,4)+g(2,1),g(3,4)+g(3,1),'x') text(g(1,4)+g(1,2),g(2,4)+g(2,2),g(3,4)+g(3,2),'y') text(g(1,4)+g(1,3),g(2,4)+g(2,3),g(3,4)+g(3,3),'z') text(g(1,4),g(2,4),g(3,4)-0.25,num2str(n),'fontweight','bold') axis equal xlabel('x'); ylabel('y'); zlabel('z'); grid on Δραστηριότητα 11: Αντιμεταθετική ιδιότητα Ο.Μ. καθαρής στροφής και απεικόνιση Κατασκευάσετε τους ομογενείς μετασχηματισμούς που αντιστοιχούν στις ακόλουθες βασικές στροφές: (i) RzRx=rotz(π) rotx(- π/2) Απάντηση: RzRx= (ii) RxRz=rotx(- π/2)*rotz(π) Απάντηση: RxRz= Ισχύει η αντιμεταθετική ιδιότητα για τους πίνακες στροφής; Απάντηση: NAI OXI Χρησιμοποιήστε την συνάρτηση add_frame, την εντολή subplot, και απεικονίστε το πλαίσιο βάσης καθώς και τα πλαίσια που αντιστοιχούν στους παραπάνω ομογενείς μετασχηματισμούς (RzRx, RxRz) σε 3 ξεχωριστές συνιστώσες του figure. Εφαρμόστε grid on και ονομάστε τους άξονες x,y,z. 7
%Rotation matrices general not commute Example R=rotz(0); RzRx=rotz(pi)*rotx(-pi/2); RxRz=rotx(-pi/2)*rotz(pi); subplot(131) add_frame(r,0); subplot(132) add_frame(rzrx,1); subplot(133) add_frame(rxrz,2); xlabel('x') ylabel('y') zlabel('z') Δραστηριότητα 12: Κίνηση βίδας Γενικά δεν ισχύει η αντιμεταθετική ιδιότητα για τους ομογενείς μετασχηματισμούς. Στην περίπτωση όμως που έχουμε ένα Ο.Μ. καθαρής μετατόπισης και ένα Ο.Μ. καθαρής στροφής που σχετίζονται με τον ίδιο άξονα π.χ. τον y τότε ισχύει η αντιμεταθετική ιδιότητα μεταξύ τους δηλαδή: roty( π 6 )transl(0,4,0) = transl(0,4,0)roty( π 6 ) Η κίνηση αυτή ονομάζεται κίνηση βίδας. Επαληθεύστε με την βοήθεια του MATLAB την ισχύ της αντιμεταθετικής ιδιότητας για την περίπτωση. Αντί για τον άξονα- y θα μπορούσαμε να επιλέξουμε οποιονδήποτε αυθαίρετο άξονα- k. Δραστηριότητα 13: Ο.Μ. καθαρής μετατόπισης και απεικόνιση σε figure Να κατασκευάσετε ένα m- file το οποίο να απεικονίζει τους παρακάτω τρεις ομογενείς μετασχηματισμούς καθαρής μετατόπισης: Px4=transl(4,0,0) (ομογενής μετασχηματισμός για το πλαίσιο {1}) Py4=transl(0,4,0) (ομογενής μετασχηματισμός για το πλαίσιο {2}) Pz4=transl(0,0,4) (ομογενής μετασχηματισμός για το πλαίσιο {3}) χρησιμοποιήστε την εντολή subplot και απεικονίστε το πλαίσιο βάσης {0} και τα πλαίσια που αντιστοιχούν στους παραπάνω ομογενείς μετασχηματισμούς σε ξεχωριστές 4 συνιστώσες του figure. Δημιουργήστε ένα νέο figure στο οποίο να απεικονίζονται όλα μαζί τα πλαίσια των ομογενών μετασχηματισμών. Εφαρμόστε grid on και ονομάστε τους άξονες x,y,z. R=rotz(0); Px4=transl(4,0,0); Py4=transl(0,4,0); Pz4=transl(0,0,4); subplot(221) add_frame(r,0); subplot(222) add_frame(px4,1); subplot(223) add_frame(py4,2); subplot(224) add_frame(pz4,3); figure hold on add_frame(r,0); add_frame(px4,1); add_frame(py4,2); add_frame(pz4,3); grid on xlabel('x') ylabel('y') zlabel('z') 8
Δραστηριότητα 14: Ο.Μ. καθαρής μετατόπισης και καθαρής στροφής Ο πίνακας ομογενούς μετασχηματισμού Η, αναπαριστά μια περιστροφή γύρω από τον x - άξονα κατά α μοίρες, μια μετατόπιση b μονάδες κατά μήκος του τρέχοντος x - άξονα, μια μετατόπιση d μονάδες κατά μήκος του τρέχοντος z - άξονα και μια περιστροφή γύρω από τον τρέχων z - άξονα κατά θ μοίρες: H = Rot x,α Trans x,b Trans z,d Rot z,θ 1 0 0 0 0 c α s α 0 = 0 s α c α 0 0 0 0 1 = c θ s θ 0 b c α s θ c α c θ s α s α d s α s θ s α c θ c α c α d 0 0 0 1 1 0 0 b 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 d 0 0 0 1 c θ s θ 0 0 s θ c θ 0 0 0 0 1 0 0 0 0 1 Φτιάξτε μια συνάρτηση που να υλοποιεί τον παραπάνω μετασχηματισμό. Στη συνέχεια o o εισάγεται στην συνάρτηση τις τιμές α= 45, b = 2, d = 4, θ= 180 και απεικονίστε τα πλαίσια συντεταγμένων που αντιστοιχούν στα βήματα κατασκευής του παραπάνω ομογενούς μετασχηματισμού: Απάντηση: H = Rot Trans Trans Rot =... x, α x, b z, d z, θ Rot x, α =... Rot Trans x, α x, b =... Rot Trans Trans x, α x, b z, d =... Rot Trans Trans Rot x, α x, b z, d z, θ =... clc; clear all; close all; Ro=rotx(0); a=pi/4; b=2; d=4; theta=pi; H=rotx(a)*transl(b,0,0)*transl(0,0,d)*rotz(theta); add_frame(ro,0) add_frame(rotx(a),1) add_frame(rotx(a)*transl(b,0,0),2) add_frame(rotx(a)*transl(b,0,0)*transl(0,0,d),3) add_frame(h,4) 9
Δραστηριότητα 15: Κατασκευή μοναδιαίου διανύσματος Φτιάξτε την συνάρτηση unit(k) η οποία δέχεται ως είσοδο ένα άνυσμα k και επιστρέφει ένα μοναδιαίο άνυσμα το οποίο είναι ευθυγραμμισμένο με αυτό πού δίνεται ως όρισμα στην παραπάνω συνάρτηση. Ποιες είναι οι συντεταγμένες των μοναδιαίων ανυσμάτων που αντιστοιχούν στα σημεία p = [ 0 4 0] T και p [ 4 4 4] T 1 2 =. Απάντηση: p 1unit=.. P 2unit=.. Δραστηριότητα 16: Στροφή γύρω από μοναδιαίο διάνυσμα (α) Φτιάξτε την συνάρτηση rotvec(k,theta) η οποία δέχεται ως είσοδο δύο ορίσματα. Το πρώτο όρισμα αποτελεί ένα άνυσμα και το δεύτερο μια γωνία. Η συνάρτηση επιστρέφει τον ομογενή μετασχηματισμό που αντιστοιχεί σε μία στροφή γύρω από το άνυσμα k κατά την γωνία theta. function r = rotvec(v, t) v = unit(v); ct = cos(t); st = sin(t); vt = 1-ct; v = v(:); r = [ ct -v(3)*st v(2)*st v(3)*st ct -v(1)*st -v(2)*st v(1)*st ct ]; r = [v*v'*vt+r zeros(3,1); 0 0 0 1]; Δραστηριότητα 17: Στροφή γύρω από μοναδιαίο διάνυσμα (β) Να υπολογιστεί ο ομογενής μετασχηματισμός ο οποίος αντιστοιχεί σε μία στροφή γύρω από τον άξονα [1 1 1] κατά μια γωνία 180 μοίρες. Απεικονίστε σε ένα figure το πλαίσιο βάσης {0} και το πλαίσιο που αντιστοιχεί στον παραπάνω Ο.Μ. Απάντηση: Ο.Μ=.. Δραστηριότητα 18: Στροφή γύρω από μοναδιαίο διάνυσμα (γ) Έστω άνυσμα p του χώρου. Ο ομογενής μετασχηματισμός καθαρής στροφής κατά μια γωνία φ γύρω από άξονα k μπορεί να ερμηνευθεί ως ένας τελεστής ο οποίος όταν πολλαπλασιάσει το παραπάνω άνυσμα p προκαλεί την στροφή του κατά γωνία φ γύρω από τον άξονα k. Παρατηρήστε αυτή την ιδιότητα προκαλώντας πολλαπλασιασμό του ανύσματος p=[4 0 4] με τον Ο.Μ που αντιστοιχεί σε μια στροφή γύρω από τον άξονα z κατά 90 μοίρες. Ποιες είναι οι νέες συντεταγμένες του ανύσματος p μετά την περιστροφή; Σε ένα figure απεικονίστε το άνυσμα p πριν και μετά από τον πολλαπλασιασμό με τον πίνακα ΟΜ. Απάντηση: p new=.. 10
clc clear all close all Ro=rotx(0); add_frame(ro,0) px=[4 0 4 1]'; px_new=rotz(pi/2)*px; line([0 4],[0 0],[0 4],'linewidth',2); line([0 px_new(1)],[0 px_new(2)],[0 px_new(3)],'linewidth',2); hold on plot3(4,0,4,'ro','linewidth',2) plot3(px_new(1),px_new(2),px_new(3),'ko','linewidth',2) Δραστηριότητα 19: Σχεδίαση αντικειμένου με Ο.Μ. (α) Με την βοήθεια του MATLAB να φτιάξετε μια συνάρτηση η οποία να σχεδιάζει στο χώρο το παρακάτω τρισδιάστατο αντικείμενο. Η συνάρτηση που θα κατασκευάσετε να ονομάζετε my_object(g) και θα λαμβάνει ως είσοδο τον ομογενή μετασχηματισμό G ο οποίος περιγράφει την θέση και τον προσανατολισμό του υπο σχεδίαση αντικειμένου ως προς το πλαίσιο βάσης {0}. Η παραπάνω συνάρτηση θα τυπώνει σε ένα figure το αντικείμενο στην θέση και με προσανατολισμό που καθορίζεται από τον ομογενή μετασχηματισμό που δίνει ο χρήστης (δηλαδή, τον G). 4 2 1 1 2 Δραστηριότητα 20: Σχεδίαση αντικειμένου με Ο.Μ. (β) Σκεφτείτε ένα τρόπο να απεικονίσετε με έναν υπολογιστή έναν κώνο του οποίου η μύτη βρίσκεται στο σημείο (0,0,0), έχει ύψος h = 9 μονάδες στον άξονα z και η ακτίνα της βάσης του είναι 5 μονάδες. Δραστηριότητα 21: περιστροφή τετραγώνου Έστω ένα τετράγωνο το οποίο δομείται από τα σημεία με συντεταγμένες D 1 :(0,0,0), D 2 : (1,0,0), D 3 :(1,1,0) και D 4 :(0,1,0) ως προς το πλαίσιο βάσης { A }. Στο τετράγωνο έχουμε επισυνάψει το πλαίσιο { B } το οποίο αρχικά ταυτίζεται με το { A } και εκφράζει την θέση και τον προσανατολισμό του τετραγώνου. y B y A {A} {B} x A x B 11
α) Να βρεθούν οι συντεταγμένες του τετραγώνου όταν αυτό στραφεί γύρω από τον άξονα z του πλαισίου βάσης κατά γωνία 6 π. β) Ποιες είναι οι συντεταγμένες του τετραγώνου όταν αυτό έχει στραφεί πρώτα π π γύρω από τον άξονα z του { A } κατά γωνία και έπειτα κατά γωνία γύρω από τον 6 2 άξονα x του πλαισίου βάσης. γ) Ποιες είναι οι συντεταγμένες του τετραγώνου όταν αυτό έχει στραφεί πρώτα π π γύρω από τον άξονα z του { A } κατά γωνία και έπειτα κατά γωνία γύρω από τον 6 2 τρέχον άξονα x του πλαισίου { B } του τετραγώνου. Δραστηριότητα 22: Γωνίες EULER Για το παρακάτω σχήμα περιγράψτε τη θέση και τον προσανατολισμό του πλαισίου {B} ως προς το πλαίσιο {A} ως εξής: (α) Με το διάνυσμα P AB για την θέση και τον πίνακα στροφής R AB για τον προσανατολισμό. (β) Με τον ομογενή μετασχηματισμό g AB. (γ) Με το διάνυσμα P AB και τις (X,Y,Z) γωνίες γύρω από τους σταθερούς άξονες του {A}. (δ) Με το διάνυσμα P AB και τις ZYZ γωνίες Euler. Λύση Ερώτημα (α) Από το παραπάνω σχήμα είναι προφανές ότι P AB = 0 5 3 T. Για τον υπολογισμό του πίνακα στροφής R AB πρέπει να βρω τις τρις στήλες που απαρτίζουν τον πίνακα. Η πρώτη στήλη εκφράζει την προβολή του μοναδιαίου διανύσματος x του πλαισίου {Β} στα μοναδιαία διανύσματα x, y, z του πλαισίου {Α}. Η δεύτερη στήλη εκφράζει την προβολή του μοναδιαίου διανύσματος y του πλαισίου {Β} στα μοναδιαία διανύσματα x, y, z του πλαισίου {Α} και τέλος η τρίτη στήλη του R AB εκφράζει την προβολή του μοναδιαίου διανύσματος z του πλαισίου {Β} στα μοναδιαία διανύσματα x, y, z του πλαισίου {Α}. Επομένως ο 1 0 0 ζητούμενος πίνακας στροφής είναι ο R AB = 0 0 1. 0 1 0 Ερώτημα (β) R Ο ομογενής μετασχηματισμός είναι g AB = AB 0 0 0 1 P AB. 12
Ερώτημα (γ) Οι (X,Y,Z) γωνίες γύρω από τους σταθερούς άξονες x, y, z του {A} είναι (- 90 o, 0 o, 0 o ) και παρουσιάζονται παρακάτω. Ερώτημα (δ) Οι ZYZ γωνίες Euler είναι (90 o, 90 o, - 90 o ) και προκύπτουν όπως στο παρακάτω σχήμα: Δραστηριότητα 23: Γωνίες EULER Έστω τα πλαίσια {Α} και {Β}. Να βρεθεί ο πίνακας στροφής R AB και οι γωνίες Euler ZYX του {Β} ως προς το {Α}. 13
~Μέρος 2 ο ~ Χρήση του MATLAB στην επίλυση προβλημάτων κινηματικής 14
Πρόβλημα 1: Έστω {1} το πλαίσιο συντεταγμένων ενός αντικειμένου, το οποίο έχει προέλθει από στροφή του αδρανειακού πλαισίου αναφοράς {0} πρώτα γύρω από τον άξονα των y κατά 45 μοίρες, έπειτα γύρω από τον άξονα των x κατά 30 μοίρες και τέλος γύρω από τον άξονα των z κατά - 180 μοίρες (όλες οι στροφές είναι γύρω από το σταθερό πλαίσιο βάσης) Έστω επίσης p b=[ 1.5 3.5-2.5] Τ ένα σημείο του αντικειμένου εκφρασμένο στο πλαίσιο συντεταγμένων του αντικειμένου {1}. z x z {0} {1} y y z x p b (i) Ποιες είναι οι συντεταγμένες του σημείου ως προς το αδρανειακό πλαίσιο {0}. Απάντηση: Συντεταγμένη x=...,y=...,z=... (ii) Απεικονίστε το σημείο αντικειμένου. p, το αδρανειακό πλαίσιο {0} και το πλαίσιο {1} του b Πρόβλημα 2: Ένα αντικείμενο {Β} τοποθετείται σε μια θέση που περιγράφεται από τον ομογενή μετασχηματισμό g 0B 0 1 0 1 0 0 1 2 = 1 0 0 0 0 0 0 1 όπου {0} το πλαίσιο βάσης. Ο ομογενής μετασχηματισμός g 0R = {R} ως προς το {0}. 1 0 0 1 0 1 0 5 0 0 1 0 0 0 0 1 περιγράφει το πλαίσιο της βάσης ενός ρομπότ (i) Να βρεθεί ο ομογενής μετασχηματισμός g που επιτρέπει την ταύτιση του RH πλαισίου {H} της αρπάγης του ρομπότ με αυτό του αντικειμένου {Β}. 15
z {H} x z z x {0} x {Β} {R} x z Απάντηση (συμβολικό αποτέλεσμα ): g RH Απάντηση (αριθμητικό το αποτέλεσμα): g RH = = (ii) Αναπαραστήστε τα πλαίσια {Β},{U},{R}σε ένα figure του Matlab. Πρόβλημα 3: Έστω αρπάγη κοπής λέιζερ η οποία προσαρμόζεται στο άκρο του ρομπότ PUMA 561. Για να περιγράψουμε την θέση και τον προσανατολισμό της αρπάγης επισυνάπτουμε στη βάση της το πλαίσιο {Η} όπως παρουσιάζεται στο παρακάτω σχήμα. Επίσης, στο άκρο της αρπάγης επισυνάπτουμε το πλαίσιο {Ε}. z Αρπάγη κοπής µε ακτίνα λέιζερ x z Πλαίσιο Βάσης {0} x y {H} x y 0.2 m y {Ε} z (i) Ποιος είναι ο ομογενής μετασχηματισμός (Ο.Μ.) g HE = 16
" $ (ii) Αν είναι γνωστός ο Ο.Μ. g 0H = $ $ $ # 1 0 0 2 0 1 0 1 0 0 1 0.5 0 0 0 1 % ' ' ' ' & που περιγράφει την αρπάγη {Η} ως προς το πλαίσιο βάσης {0} ποια είναι η θέση και ο προσανατολισμός του άκρου της αρπάγης του ρομπότ; Απάντηση: Συντεταγμένη x του άκρου =.. Συντεταγμένη y του άκρου =. Συντεταγμένη z του άκρου =. Πίνακας στροφής που περιγράφει τον προσανατολισμό του άκρου=. (iii) Αν το σημείο κοπής έχει συντεταγμένες E p = [ 0.5 0 0.5] T ως προς το πλαίσιο του άκρου της αρπάγης {Ε}, ποιες είναι οι συντεταγμένες του σημείου κοπής ως προς το πλαίσιο βάσης {0} δηλ. 0 p = ; Απάντηση (συμβολικό αποτέλεσμα): 0 p =.. Απάντηση (αριθμητικό αποτέλεσμα): 0 p =.. Πρόβλημα 4: Έστω {U} το πλαίσιο βάσης. Το πλαίσιο {Β} αντιστοιχεί στο αντικείμενο που φαίνεται στο ακόλουθο σχήμα. Βρείτε την θέση και τον προσανατολισμό του αντικειμένου στο χώρο δηλαδή, τον ομογενή μετασχηματισμό g ub σαν συνάρτηση των παραμέτρων b, r,ϕ,θ που δίνονται στο σχήμα. Πρόβλημα 5: Αποδείξτε αριθμητικά, με την βοήθεια του Matlab, ότι στην περίπτωση του μετασχηματισμού βίδας ισχύει η αντιμεταθετική ιδιότητα μεταξύ μεταφοράς και στροφής, δηλαδή ότι g(k,a)g(k, p r θ ) = g(k, r θ )g(k,a) p όπου g(k,a), p g(k, r θ ) ομογενείς μετασχηματισμοί μεταφοράς και στροφής κατά μήκος και γύρω από μοναδιαίο άξονα k σε απόσταση a και γωνία θ. Πρόβλημα 6: α) Έστω {Α} το πλαίσιο συντεταγμένων βάσης. Έστω επίσης πλαίσιο {Β}, το οποίο είναι επισυναπτόμενο στη βάση ενός κώνου όπως παρουσιάζεται στο παρακάτω σχήμα. 17
1 0 0 0 0 1 0 1.5 Ο ομογενής μετασχηματισμός που συνδέει τα δύο πλαίσια είναι ο gab =. 0 0 1 0 0 0 0 1 Φτιάξτε ένα σχέδιο το οποίο να αντιπροσωπεύει την θέση και τον προσανατολισμό του κώνου όπως επιβάλει ο παραπάνω ομογενής μετασχηματισμός. Ποιες είναι οι συντεταγμένες της κορυφής του κώνου; β) Βρείτε τον ομογενή μετασχηματισμό gba που περιγράφει την σχετική θέση του πλαισίου βάσης{α} ως προς το πλαίσιο του κώνου {Β}. Ποιες είναι οι συντεταγμένες της μύτης του κώνου ως προς το πλαίσιο {Α} και ως προς το πλαίσιο {Β}; Πρόβλημα 7: Ένα ρομπότ 6 βαθμών ελευθερίας πρέπει να σηκώσει ένα αντικείμενο με τετραγωνική διατομή από μια συγκεκριμένη θέση και να το τοποθετήσει μέσα στο άνοιγμα μίας τετραγωνικής υποδοχής που βρίσκεται στην ίδια επιφάνεια σε σταθερή θέση. Οι διαστάσεις του αντικειμένου και της υποδοχής και τα πλαίσιά τους {C} και {F} καθώς και η αρχική κατάσταση του χώρου εργασίας φαίνονται στο σχήμα 1. Σαν αδρανειακό σύστημα αναφοράς θεωρείται το πλαίσιο της βάσης του βραχίονα {R}. Επίσης το πλαίσιο {Ο} βρίσκεται στο κέντρο του τετραγωνικού ανοίγματος της υποδοχής στην επάνω επιφάνεια της. Στο σχήμα 2 φαίνεται λεπτομέρεια από το σύστημα συντεταγμένων {Ε} του άκρου της αρπάγης σε σχέση με το πλαίσιο {H} {6}του καρπού του ρομπότ. 18
500$ X 100$ {R}$ 150$ 100$ Y 40$ Y" {c}$ X" Z" 40$ 400$ Z" Y" Z$ {O}$ X$ 42" Y$ 42" 10" 38" {F}$ X" 62" σχήμα 1 X E# X 6# Z E# {E}$ Z 6# {6}$={H}$ 40$ 160$ σχήμα 2 Θέση#(2)# #Θέση#(1)# Y# Z E# {E}# X E# Z E# {E}# X E# {C}# X# Z# 20# 40# 100# 19
Θέση$(3)$ Θέση$(4)$ X" Z" {c}$ Y" 100$ Z" {Ο}$ {Ο}$ X" Y" X" X" Z" Y" Z" Y" {c}$ σχήμα 3 α) Βρείτε τους πίνακες ομογενούς μετασχηματισμού, g, 6E g, RC g, FO g. RF β) Για να εκτελεστεί η παραπάνω εργασία πρέπει ο βραχίονας να περάσει από 4 βασικές θέσεις που παρουσιάζονται στο σχήμα 3: Η θέση (1) όταν η αρπάγη είναι πλησίον του αντικειμένου. Η θέση (2) όταν η αρπάγη έχει πιάσει το αντικείμενο. Η θέση (3) όταν το αντικείμενο είναι πλησίον του πλαισίου υποδοχής. Η τελική θέση (4) με το αντικείμενο τοποθετημένο στο άνοιγμα της υποδοχής. Για να εκτελεστεί η επιθυμητή εργασία συναρμολόγησης θα δοθούν εντολές κίνησης στον βραχίονα με την μορφή των μετασχηματισμών g RH(i), για τις θέσεις i=1,2,3,4. Για κάθε μια από τις θέσεις αυτές διατυπώστε μία εξίσωση ομογενών μετασχηματισμών που να περιέχει σαν μοναδικό άγνωστο τον ομογενή μετασχηματισμό υπολογίστε τον. g RH(i) και α) Απάντηση: g =.. HE Απάντηση: Απάντηση: Απάντηση: g =.. RC g =.. FO g =.. RF 20
β) Απάντηση (συμβολικό αποτέλεσμα): g RH(1)= Απάντηση (αριθμητικό το αποτέλεσμα): g RH(1)= Απάντηση (συμβολικό αποτέλεσμα): g RH(2)= Απάντηση (αριθμητικό το αποτέλεσμα): g RH(2)= Απάντηση (συμβολικό αποτέλεσμα): g RH(3)= Απάντηση (αριθμητικό το αποτέλεσμα): g RH(3)=. Απάντηση (συμβολικό αποτέλεσμα): g RH(4)= Απάντηση (αριθμητικό το αποτέλεσμα): g RH(4)= 21