HEAL DSpace

Ολοκλήρωση συστήματος προγραμματισμού ρομποτικού βραχίονα μέσω φωνητικών εντολών.

Αποθετήριο DSpace/Manakin

Εμφάνιση απλής εγγραφής

dc.contributor.author Μακρυλάκης, Παναγιώτης el
dc.contributor.author Makrylakis, Panagiotis en
dc.date.accessioned 2024-02-05T08:23:12Z
dc.date.available 2024-02-05T08:23:12Z
dc.identifier.uri https://dspace.lib.ntua.gr/xmlui/handle/123456789/58772
dc.identifier.uri http://dx.doi.org/10.26240/heal.ntua.26468
dc.description Εθνικό Μετσόβιο Πολυτεχνείο--Μεταπτυχιακή Εργασία. Διεπιστημονικό-Διατμηματικό Πρόγραμμα Μεταπτυχιακών Σπουδών (Δ.Π.Μ.Σ.) “Συστήματα Αυτοματισμού” el
dc.rights Default License
dc.subject Speech recognition en
dc.subject Code generation en
dc.subject Robot kinematics en
dc.subject Word embeddings en
dc.subject Text classification en
dc.subject NLP en
dc.title Ολοκλήρωση συστήματος προγραμματισμού ρομποτικού βραχίονα μέσω φωνητικών εντολών. el
heal.type masterThesis
heal.classification Mechanical Engineering en
heal.language el
heal.access free
heal.recordProvider ntua el
heal.publicationDate 2023-09-25
heal.abstract This thesis deals with the integration of a NLP based programming system of the Staubli RX90L robotic arm through voice commands in English. The primal objective is to facilitate the on-line programming of industrial processes. The arm is programmed based on the programming language V+, so eventually our voice commands will need to be converted to a language compatible with the robotic arm. Most of the work is accomplished using MATLAB R2022b software. In the first stage of the process, voice commands are converted into written text using Microsoft's pre-trained models through the Microsoft Speech Software Development Kit (SDK) service. To achieve this goal, i.e., real-time conversion of voice sentences into written speech, a small code was created in Python language, which is called through MATLAB. Because we have no particular control over the conversion and possible errors may occur, the majority of errors are foreseen and corrected later during the text processing. Then follows the processing of the text and the extraction of numerical data from the user's spoken words. This stage is particularly important and is crucial for the correct conversion of voice commands into V+ commands. Then, the set of commands is passed through a machine learning classification model. The model is binary and aims to classify each sentence as a command or non-command. The commands pass through a process that utilizes the existence of specific keywords in order to classify the commands among 7 known V+ commands. The commands are then analyzed giving the user the option to correct any misclassification errors, and conclusions such as whether an inverse kinematics solution is required are drawn. Commands regarding motion to a desired position with a desired orientation (commands: MOVE or APPRO) must be expressed as desired joint angles so, inverse kinematics must be solved before the commands are sent to the robotic arm. Inverse kinematics is solved using the Robotics System Toolbox offered by MathWorks, and it allows us to convert points of the form "X, Y, Z, y, p, r" into joint angles (precision points) of the form "q1, q2, q3, q4, q5, q6”. Finally, a code in V+ language is automatically generated based on the classified commands and numeric elements of the voice inputs. In addition to the loose command operation just described, we were able to voice-program the industrial process called pick and place, as will be discussed next. In this operation the user must use a slightly more specific vocabulary, but the advantage is that by articulating a few sentences the user can easily program an industrial process with many applications that would otherwise require more time to achieve. All of the above was put together to create a graphical user interface (GUI) application using MATLAB App Designer that was extended to accept textual input and to cover more needs. The whole process is an early attempt to achieve the desired goals, but it seems to be working smoothly and quite reliably. en
heal.abstract Η παρούσα διπλωματική εργασία πραγματεύεται την ολοκλήρωση συστήματος προγραμματισμό του ρομποτικού βραχίονα Staubli RX90L μέσω φωνητικών εντολών στα Αγγλικά. Κύριος σκοπός είναι η διευκόλυνση του προγραμματισμού (online) βιομηχανικών διεργασιών. Ο βραχίονας προγραμματίζεται με βάση τη γλώσσα V+, οπότε τελικά οι φωνητικές εντολές μας θα πρέπει να μετατραπούν σε συμβατή με το βραχίονα γλώσσα. Το μεγαλύτερο μέρος της εργασίας επιτυγχάνεται με χρήση του λογισμικού MATLAB R2022b. Στο πρώτο στάδιο της διαδικασίας, οι φωνητικές μας εντολές μετατρέπονται σε γραπτό κείμενο με χρήση των προ εκπαιδευμένων μοντέλων της Microsoft μέσω της υπηρεσίας Microsoft Speech Software Development Kit (SDK). Για την επίτευξη του σκοπού αυτού, δηλαδή μετατροπή φωνητικών προτάσεων σε γραπτό λόγο, σε πραγματικό χρόνο, δημιουργήθηκε ένας μικρός κώδικας σε γλώσσα Python, ο οποίος καλείται μέσα από το MATLAB. Επειδή δεν έχουμε ιδιαίτερο έλεγχο στη μετατροπή ενδέχεται να προκύψουν λάθη η πλειοψηφία των οποίων έχει προβλεφθεί και διορθώνεται αργότερα κατά την επεξεργασία του κειμένου. Στη συνέχεια ακολουθεί η επεξεργασία του κειμένου και η εξαγωγή αριθμητικών δεδομένων από τα λεγόμενα του χρήστη. Το στάδιο αυτό είναι ιδιαίτερα σημαντικό και είναι καταλυτικής σημασίας για τη σωστή μετατροπή των φωνητικών εντολών σε εντολές V+. Στη συνέχεια, το σύνολο των εντολών περνάνε μέσα από ένα μοντέλο μηχανικής μάθησης με σκοπό την κατηγοριοποίηση. Το μοντέλο είναι δυαδικό, και σκοπό έχει να ταξινομήσει την κάθε πρόταση ως εντολή η μη-εντολή. Οι εντολές θα περάσουν από μια διαδικασία όπου μέσω παρουσίας συγκεκριμένων λέξεων-κλειδιά κατηγοριοποιούνται ανάμεσα σε 7 προεπιλεγμένες εντολές V+. Στη συνέχεια αναλύονται οι εντολές δίνοντας στον χρήστη την επιλογή να διορθώσει τυχόν λάθη κατηγοριοποίησης, και βγαίνουν συμπεράσματα όπως το αν απαιτείται επίλυση της αντίστροφης κινηματικής. Οι εντολές που αφορούν κίνηση σε επιθυμητή θέση με επιθυμητό προσανατολισμό (εντολές: MOVE ή APPRO), πρέπει να αποτυπωθούν ως επιθυμητές γωνίες των αρθρώσεων, άρα απαιτείται επίλυση της αντίστροφης κινηματικής πριν οι εντολές σταλθούν στο βραχίονα. Η αντίστροφη κινηματική επιλύεται με χρήση του Robotics System Toolbox που προσφέρει η MathWorks, και μας επιτρέπει να μετατρέπουμε θέσεις (cartesian points) της μορφής «X, Y, Z, y, p, r» σε θέσεις αρθρώσεων (precision points) της μορφής «q1, q2, q3, q4, q5, q6». Τέλος, παράγεται αυτόματα ένας κώδικας σε γλώσσα V+ με βάση τις ταξινομημένες εντολές και τα αριθμητικά στοιχεία των φωνητικών εισόδων. Εκτός από τη λειτουργία μεμονωμένων εντολών που μόλις περιγράψαμε, καταφέραμε να προγραμματίσουμε με φωνητικές εντολές τη βιομηχανική διεργασία pick and place. Κατά τη συγκεκριμένη λειτουργία ο χρήστης πρέπει να χρησιμοποιεί λίγο πιο συγκεκριμένο λεξιλόγιο, αλλά το πλεονέκτημα είναι ότι με τη διάρθρωση λίγων προτάσεων ο χρήστης μπορεί εύκολα να προγραμματίσει μια βιομηχανική διεργασία με πολλές εφαρμογές, που σε άλλη περίπτωση θα απαιτούσε περισσότερο χρόνο για να ολοκληρωθεί. Όλα τα παραπάνω συνενώθηκαν για τη δημιουργία μιας εφαρμογής με διεπιφάνεια επαφής χρήστη (GUI) με χρήση του MATLAB App Designer η οποία επεκτάθηκε ώστε να δέχεται και γραπτό λόγο ως είσοδο και να καλύπτει περισσότερες ανάγκες. Η όλη διαδικασία είναι μια πρώτη απόπειρα για την επίτευξη των σκοπών μας, αλλά φαίνεται να λειτουργεί ομαλά και αξιόπιστα. el
heal.advisorName Μπενάρδος, Πανώριος el
heal.committeeMemberName Μπενάρδος, Πανώριος el
heal.committeeMemberName Βοσνιάκος, Γεώργιος el
heal.committeeMemberName Κυριακόπουλος, Κωνσταντίνος el
heal.academicPublisher Εθνικό Μετσόβιο Πολυτεχνείο. Σχολή Μηχανολόγων Μηχανικών el
heal.academicPublisherID ntua
heal.fullTextAvailability false


Αρχεία σε αυτό το τεκμήριο

Αυτό το τεκμήριο εμφανίζεται στην ακόλουθη συλλογή(ές)

Εμφάνιση απλής εγγραφής