r o b o t i c h e l l a s

Αγαπητοί μας φίλοι,

Καλώς ήλθατε στην ιστοσελίδα μας. Ελπίζουμε η παραμονή σας κοντά μας να είναι για σας εποικοδομητική εμπειρία.

Προσπαθούμε με διαρκή επαφή μαζί σας να σας ενημερώνουμε για διάφορα ρομποτικα θέματα ποιότητας που ενδεχομένως να σας ενδιαφέρουν.

Σας ευχαριστούμε για το ενδιαφέρον σας και σας ευχόμαστε καλή συνέχεια.
r o b o t i c h e l l a s
Καλως ηρθατε στην κοινοτητα μας,για οποιαδηποτε απορια στειλετε e-mail στο info@robotic.gr

Αρπάγη Βραχίονα

Μοιραστείτε
avatar
Dr.Paneas

Αριθμός μηνυμάτων : 6
Ημερομηνία εγγραφής : 17/03/2010
Ηλικία : 28
Τόπος : Θεσσαλονίκη

Αρπάγη Βραχίονα

Δημοσίευση  Dr.Paneas Την / Το Πεμ Μαρ 18, 2010 12:56 pm

Μπορεί κανείς να μου τι είναι η αρπάγη του βραχίονα ;
Είχα σήμερα να παραδώσω μία εργασία που λύνει το αντίστροφο κινηματικό πρόβλημα 1ου μέλους ενός βραχίονα.

Δίνουμε τις τα x και y, και ζητάμε από την function να μας κάνει return τις μοίρες της γωνίας θ. Η γωνία αυτή ισούται με το τόξο εφαπτομένης y/x , πράγμα που σημαίνει ότι σε κάθε τεταρτημόριο θα έχω διαφορετικό αποτέλεσμα. Εκτός αυτού, η function atan ή tan, παίρνει τιμές από -π/2 έως π/2 ενώ εγώ θέλω τιμές από [0,2π). Αυτό είναι και το βασικό μας πρόβλημα για την υλοποίηση του κώδικα.

Πρώτο τεταρτημόριο
User Input: x>0 και y>0
Formula: f = atn(y / x)

Δεύτερο τεταρτημόριο
User Input: x<0 και y>0
Formula: f = atn(y / x) + π

Για παράδειγμα: τοξεφ(-1)=-τοξεφαπτ(1) = -45 που είναι λάθος γιατί δεν μπορώ να έχω -45ο μοίρες. Αυτό σημαίνει ότι αν το βρισκόμαστε στο 2ο τεταρτημόριο όπου το x είναι αρνητικό και το y θετικό, τότε η γωνία αντιστοιχεί το 4ο τεταρτημόριο. Επειδή όμως θέλουμε από το [0, 2π] , για αυτό το λόγω προσθέτουμε το ‘π’ ώστε να έχω 180-45=135ο μοίρες.

Τρίτο τεταρτημόριο
User Input: x<0 και y<0
Formula: f = atn(y / x) + π

Για παράδειγμα, το αποτέλεσμα δεν θα βγει σωστό από το πρόσημο χάνεται στο πηλίκο.

Τέταρτο τεταρτημόριο
User Input: x>0 και y<0
Formula: f = atn(y / x) + 2π

Για τον ίδιο λόγο με το δεύτερο τεταρτημόριο.

Επίσης υπάρχουν κάποια ακόμα πραγματάκια που πρέπει να προσέξουμε όπως πχ το ενδεχόμενο το x=0 ή x=κοντά στο μηδέν. Αν λοιπόν το x είναι <= του 0.0001 (δεν βάζουμε ποτέ 0 ), τότε ο βραχίονας εξαρτάτε μόνο από το y:
• Y>0 τότε f = π/2
• Υ<0 τότε f = 3π/2
Σε περίπτωση που το x είναι τελικά >0.0001 τότε ισχύουν οι παραπάνω 4 περιπτώσεις με τα τεταρτημόρια στο καρτεσιανό σύστημα συντ/νων.

Κάτι τελευταίο: για να κάνω το f (rad) σε μοίρες η φόρμουλα είναι: ( F* 180/π )







SOURCE CODE σε QBASIC


Κώδικας:
FUNCTION atan2 (X, Y)
    IF ABS(X) < E THEN
        IF Y > 0 THEN f = PI / 2
        IF Y < 0 THEN f = 3 * P1 / 2

    ELSE
        IF X > 0 AND Y > 0 THEN
            f = ATN(Y / X)
        ELSEIF X < 0 THEN
            f = ATN(Y / X) + PI
        ELSE
            f = ATN(Y / X) + 2 * PI
        END IF
    END IF
    atan2 = f
END FUNCTION
avatar
matrix
Admin

Αριθμός μηνυμάτων : 222
Ημερομηνία εγγραφής : 17/01/2010
Ηλικία : 43
Τόπος : θεσσαλονικη

Απ: Αρπάγη Βραχίονα

Δημοσίευση  matrix Την / Το Δευ Μαρ 22, 2010 6:44 pm

να σου πω την αληθεια δεν ξερω αν μπορει αυτην την στιγμη καποιος εδω μεσα να σου απαντηση σε αυτο....
βασικα σου το λεω για να μην νομιζεις οτι δεν δωσαμε βαση σε αυτο που εγραψες,απλα δεν ξερω αν υπαρχει ο καταληλος ανθρωπος να σου πει κατι πανω σε αυτο!!


_________________


Uploaded with ImageShack.us

    Η τρέχουσα ημερομηνία/ώρα είναι Δευ Οκτ 23, 2017 11:56 am