Page 69 - Linux Inside τ. 8

Basic HTML Version

Linux Inside
69
εφαρμογών κάνοντας χρήση πολλαπλών αδειών: π.χ., μία
εφαρμογή μπορεί να χρησιμοποιεί επιμέρους προγράμματα,
τα οποία έχουν αναπτυχθεί κάτω από διαφορετικές άδειες
λογισμικού (από GPL έως και BSD).
Γράφος λειτουργίας του ROS
Στη συνέχεια, περιγράφονται οι βασικές δομικές μονάδες
και οι μηχανισμοί λειτουργίας, γνωστοί και ως γράφος λει-
τουργίας του ROS (ROS Computation Graph).
Α. Κόμβος
Ο κόμβος αποτελεί μία διεργασία της εφαρμογής, η οποία
εκτελεί μία συγκεκριμένη λειτουργία του προγράμματος. Από
τη στιγμή που βασικός παράγοντας κατά την ανάπτυξη της
πλατφόρμας του ROS είναι η παροχή της μέγιστης δυνατής
ευελιξίας για τροποποιήσεις, η πλειονότητα των ρομποτικών
εφαρμογών αποτελούνται από έναν μεγάλο αριθμό κόμβων.
Β. Μηνύματα
Οι κόμβοι στην πλατφόρμα του ROS επικοινωνούν μεταξύ
τους με τη χρήση μηνυμάτων.
Γ. Θέματα
Ένας κόμβος μπορεί να στέλνει προς δημοσίευση ένα μή-
νυμα σε κάποιο θέμα, ενώ αντίστοιχα ο κόμβος που ενδιαφέ-
ρεται για ένα συγκεκριμένο είδος δεδομένων/πληροφορίας,
θα εγγραφεί στο κατάλληλο θέμα. Η βασική αρχή στην οποία
στηρίζεται η διαδικασία αυτή έγκειται στο ότι τόσο οι κόμβοι
που δημοσιοποιούν μηνύματα όσο και εκείνοι που εγγράφο-
νται σε αυτά, δεν γνωρίζουν ο ένας την ύπαρξη του άλλου.
Δ. Αφέντης (ROS Master)
Η λειτουργία του αφέντη είναι η παροχή των υπηρεσιών
ονομασίας και αναζήτησης στον γράφο λειτουργίας του ROS,
κατά αντιστοιχία με την υπηρεσία του DNS σε ένα συμβατικό
λειτουργικό σύστημα.
Ε. Υπηρεσίες
Οι υπηρεσίες στην πλατφόρμα του ROS υλοποιούνται με
ένα ζευγάρι μηνυμάτων (ένα για την αίτηση και ένα για την
απάντηση) μεταξύ των ενδιαφερόμενων κόμβων. Αναλυτικό-
τερα, κάθε κόμβος που προσφέρει μία υπηρεσία καθορίζει το
όνομα αυτής, ενώ ο κόμβος που ενδιαφέρεται για μία υπηρε-
σία στέλνει ένα αίτημα στον ιδιοκτήτη κόμβο, περιμένοντας το
μήνυμα της απάντησης. Το
Σχήμα 1
παρουσιάζει ένα τυπικό
παράδειγμα αίτησης και απόκρισης για μία υπηρεσία στην
πλατφόρμα του ROS.
Εγκατάσταση και παραμετροποίηση του ROS
Στην ενότητα αυτή περιγράφεται η εγκατάσταση της τελευ-
ταίας έκδοσης του ROS με τη διακριτική ονομασία ROS
Electric Emys. Η εγκατάσταση είναι ιδιαίτερα απλή για ένα σύ-
νολο από λειτουργικά συστήματα, μεταξύ των οποίων τα
Ubuntu, Fedora, Gentoo, OpenSUSE, Slackware, Debian,
Arch κ.ά. Για τους σκοπούς της παρουσίασης στο άρθρο αυτό
θα χρησιμοποιηθεί η πλατφόρμα Ubuntu, ενώ επιπλέον πλη-
ροφορίες μπορείτε να βρείτε στο [8]. Πρέπει να σημειωθεί
ότι, πέρα από τις διανομές που υπάρχουν στα αποθετήρια
λογισμικού (repository), η διανομή του ROS είναι διαθέσιμη
και σε μορφή πηγαίου κώδικα.
Αρχικά ρυθμίζουμε τον υπολογιστή, προκειμένου να επι-
τρέπει την εγκατάσταση λογισμικού από το ROS.org, και εν
συνεχεία αποθηκεύουμε τα κλειδιά. Για το σκοπό αυτό χρησι-
μοποιούμε την εντολή:
sudo sh -c 'echo “deb http://packages.ros.org/ros/ubuntu
oneiric main” > /etc/apt/sources.list.d/ros-latest.list’
sudo apt-get update
wget http://packages.ros.org/ros.key -O - | sudo apt-key
add -
Η διανομή του ROS περιλαμβάνει πλήθος από βιβλιοθήκες
και εργαλεία, ενώ στο πλαίσιο της συγκεκριμένης παρουσία-
σης περιγράφονται οι τέσσερις πιο συχνά χρησιμοποιούμενες
ρυθμίσεις.
Πλήρης εγκατάσταση για υπολογιστές γραφείου (συνι-
στώμενη):
Περιλαμβάνει την πλατφόρμα του ROS, καθώς και
ένα σύνολο από GUI, βιβλιοθήκες γενικού σκοπού για ρομπο-
τικές εφαρμογές και κάποιους 2D/3D εξομοιωτές.
sudo apt-get install ros-electric-desktop-full
Εγκατάσταση για υπολογιστές γραφείου:
Αποτελείται
από το ROS, ένα σύνολο από GUI και ορισμένες γενικού σκο-
πού βιβλιοθήκες για ρομποτικές εφαρμογές.
sudo apt-get install ros-electric-desktop
Βασική εγκατάσταση:
Περιλαμβάνει μόνο το ROS και τις
βιβλιοθήκες επικοινωνίας (δεν περιέχει κανένα GUI).
sudo apt-get install ros-electric-ros-base
Ανεξάρτητα πακέτα:
Τέλος, υπάρχει η δυνατότητα εγκα-
τάστασης μεμονωμένων πακέτων. Στην περίπτωση αυτή χρη-
σιμοποιείται η ακόλουθη εντολή, όπου το STACK πρέπει να
αντικατασταθεί με το όνομα του πακέτου προς εγκατάσταση.
sudo apt-get install ros-electric-STACK
Για λόγους ασφαλείας, το περιβάλλον λειτουργίας του ROS
παρέχει προστασία ενάντια σε εγγραφή, διαγραφή και τροπο-
ποίηση των αρχείων. Επομένως, για να δοκιμαστούν νέες δο-
μές και πακέτα, θα πρέπει προηγουμένως να δημιουργηθεί
ένα νέο μονοπάτι, π.χ., στον κατάλογο χρήστη.
mkdir ~/ros_workspace
Εν συνεχεία, ο νέος αυτός κατάλογος θα πρέπει να εισα-
χθεί στο μονοπάτι με τις ακόλουθες εντολές:
#!/bin/sh
source /opt/ros/electric/setup.bash
export ROS_ROOT=/opt/ros/electric/ros
export PATH=$ROS_ROOT/bin:$PATH
export
PYTHONPATH=$ROS_ROOT/core/roslib/src:$PYTHONPATH
Linux Labs - Robotics
Υλοποίηση της επικοινωνίας κόμβων στο ROS.
1