background image

Στο σενάριο κώδικα Control η μετατροπή των συντεταγμένων κέντρου σε πόζα

για το βραχίονα υλοποιείται απο συνάρτηση pose_calculation(). Η συνάρτηση

δέχεται ως είσοδο τις συντεταγμένες κέντρου, τη γωνία και τον αριθμό της

θέσης που ανήκει το αντικείμενο. Αρχικά μέσω της μεθόδου interp1d() γίνεται

αντιστοίχιση του εύρους τιμών των φυσικών ορίων με το εύρος τιμών του κά-

δρου λήψης, έτσι ώστε εισάγοντας τις συντεταγμένες κέντρου να προκύψουν οι

αντίστοιχες τιμές στο φυσικό χώρο. Όσο αφορά τον προσανατολισμό του τελικού

εργαλείου δράσης στη προσέγγιση και πιάσιμο του αντικειμένου, αυτός είναι

κάθετος της άνω πλευράς του αντικειμένου και παραμένει σταθερός σε όλες τις

περιπτώσεις. Η περιστροφή του τελικού εργαλείου δράσης εξαρτάται από τη

γωνία του αντικειμένου και υπολογίζεται στη συνάρτηση deg_calc(). Ως έξοδο

της pose_calculation() επιστρέφονται όλες τις τιμές της πόζας έτοιμες για εκτέλεση.

Οι λειτουργίες αναζήτησης αντικειμένων και αναζήτησης του χρήστη υλοποιού-

νται από τις συναρτήσεις search_object() και search_user() αντίστοιχα. Έχουν

πανομοιότυπη λειτουργία και περιλαμβάνουν την εκτέλεση ρουτίνας μετάβασης

μεταξύ των προκαθορισμένων θέσεων αναζήτησης. Κατά τη διάρκεια αυτής

συλλέγονται οι απαραίτητες πληροφορίες από τo σενάριο κώδικα Vision, ώστε με

το πέρας να επιστραφούν μέσω memcache τα αναγνωρισμένα αντικείμενα στο

σενάριο κώδικα Speech για ανάγνωση και επεξεργασία.

Η εκτέλεση της εκάστοτε πόζας του βραχίονα εκτελείται από τη συνάρτηση

catch_object() όταν πρόκειται για προσέγγιση και ανασήκωση αντικειμένου και από

τη release_object() για την απελευθέρωση του αντικειμένου. Η συνάρτηση που εκτε-

λείται για το άνοιγμα και κλείσιμο της δαγκάνας είναι η nc.open_gripper() και για

την εκτέλεση της πόζας η nc.move_pose().

3.5

Μεταφορά δεδομένων μεταξύ σεναρίων κώδικα

Η αρχιτεκτονική βάση της οποίας αναπτύχθηκε το λογισμικό μέρος, προβλέπει

τη δημιουργία ενός σεναρίου κώδικα για κάθε λειτουργία και εν συνεχεία τη

μεταξύ τους επικοινωνία για τον διαμοιρασμό των δεδομένων. Ο συνδετικός κρίκος

μεταξύ των τριών σεναρίων κώδικα (Control, Vision, Speech) είναι το κατανεμημένο

131