ΡΟΜΠΟΡΟΥΚΕΣ-ΛΟΓΟΤΥΠΟ

ΑΛΓΟΡΙΘΜΟΙ ΠΟΛΥΠΡΑΚΤΟΡΩΝ ROBOWORKS Robofleet

ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-PRODUCT

Προδιαγραφές

  • Όνομα προϊόντος: ROBOWORKS
  • Έκδοση: 20240501
  • Προετοιμασία: Wayne Liu & Janette Lin
  • Ημερομηνία: 1 Μάιος 2024

Πληροφορίες προϊόντος

Το ROBOWORKS είναι ένα σύστημα πολλαπλών πρακτόρων που επιτρέπει την εφαρμογή διαφόρων αλγορίθμων συντονισμού και επικοινωνίας ρομπότ.

Συχνές ερωτήσεις

Ε: Τι πρέπει να κάνω εάν το ρομπότ δεν μπορεί να συνδεθεί αυτόματα στο Wifi;

Α: Εάν το ρομπότ αποτύχει να συνδεθεί αυτόματα, δοκιμάστε να αποσυνδέσετε και να επανασυνδέσετε την κάρτα δικτύου και προσπαθήστε να συνδεθείτε ξανά.

ΠΕΡΙΛΗΨΗ

Αυτό το έγγραφο εξηγεί κυρίως τη χρήση του πακέτου συναρτήσεων σχηματισμού πολλαπλών ρομπότ που ονομάζεται wheeltec_multi.

Αυτό το έγγραφο χωρίζεται σε τέσσερα μέρη:

  • Το πρώτο μέρος αφορά κυρίως την εισαγωγή της μεθόδου σχηματισμού πολλαπλών ρομπότ.
  • Το δεύτερο μέρος περιγράφει κυρίως τις ρυθμίσεις επικοινωνίας πολλαπλών μηχανών ROS, συμπεριλαμβανομένης της επικοινωνίας πολλαπλών μηχανών κατασκευής ROS και τα προβλήματα που ενδέχεται να προκύψουν στη διαδικασία επικοινωνίας ROS.
  • Το τρίτο μέρος περιγράφει κυρίως τα βήματα λειτουργίας του συγχρονισμού χρόνου πολλών μηχανών.
  • το τέταρτο μέρος επεξηγεί τη συγκεκριμένη χρήση του πακέτου λειτουργιών σχηματισμού πολλαπλών μηχανών.

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

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΠΟΛΥΠΡΑΚΤΟΡΩΝ

Αλγόριθμοι σχηματισμού πολλαπλών πρακτόρων

Αυτό το πακέτο ROS παρουσιάζει ένα τυπικό πρόβλημα πολλαπλών παραγόντων στον συνεργατικό έλεγχο κατά τη διάρκεια μιας κίνησης σχηματισμού. Αυτό το σεμινάριο θέτει τα θεμέλια για μελλοντική ανάπτυξη σε αυτό το θέμα. Ο αλγόριθμος ελέγχου σχηματισμού αναφέρεται σε έναν αλγόριθμο που ελέγχει πολλούς πράκτορες για να σχηματίσει έναν συγκεκριμένο σχηματισμό για την εκτέλεση μιας εργασίας. Η συνεργασία αναφέρεται στη συνεργασία μεταξύ πολλαπλών πρακτόρων που χρησιμοποιούν μια συγκεκριμένη σχέση περιορισμού για την ολοκλήρωση μιας εργασίας. Πάρτε τη μονάδα σχηματισμού πολλαπλών ρομπότ ως πρώηνample, η συνεργασία σημαίνει ότι πολλά ρομπότ σχηματίζουν μαζί έναν επιθυμητό σχηματισμό. Η ουσία του είναι μια ορισμένη μαθηματική σχέση που ικανοποιείται μεταξύ των θέσεων κάθε ρομπότ. Οι μέθοδοι σχηματισμού χωρίζονται κυρίως σε κεντρικό έλεγχο σχηματισμού και κατανεμημένο έλεγχο σχηματισμού. Οι μέθοδοι κεντρικού ελέγχου σχηματισμού περιλαμβάνουν κυρίως τη μέθοδο εικονικής δομής, τη μέθοδο γραφικής θεωρίας και τη μέθοδο πρόβλεψης μοντέλων. Οι μέθοδοι ελέγχου κατανεμημένων σχηματισμών περιλαμβάνουν κυρίως μια μέθοδο ηγέτη-ακολούθου, μια μέθοδο που βασίζεται στη συμπεριφορά και μια μέθοδο εικονικής δομής.
Αυτό το πακέτο ROS εφαρμόζει τη μέθοδο leader-follower στη μέθοδο ελέγχου κατανεμημένου σχηματισμού για την εκτέλεση της μονάδας δίσκου σχηματισμού πολλαπλών ρομπότ. Ένα ρομπότ στον σχηματισμό ορίζεται ως αρχηγός και άλλα ρομπότ ορίζονται ως σκλάβοι που ακολουθούν τον ηγέτη. Ο αλγόριθμος χρησιμοποιεί την τροχιά κίνησης του κορυφαίου ρομπότ για να ορίσει τις συντεταγμένες που θα παρακολουθούν τα ακόλουθα ρομπότ με συγκεκριμένη κατεύθυνση και ταχύτητα. Διορθώνοντας τις αποκλίσεις θέσης από τις συντεταγμένες παρακολούθησης, οι ακόλουθοι θα μειώσουν τελικά την απόκλιση μεταξύ του ακολούθου και των αναμενόμενων συντεταγμένων παρακολούθησης στο μηδέν προκειμένου να επιτευχθούν οι στόχοι της κίνησης σχηματισμού. Με αυτόν τον τρόπο, ο αλγόριθμος είναι σχετικά λιγότερο περίπλοκος.

Αλγόριθμοι αποφυγής εμποδίων

Ένας κοινός αλγόριθμος αποφυγής εμποδίων είναι η μέθοδος του τεχνητού δυναμικού πεδίου. Η κίνηση του ρομπότ σε ένα φυσικό περιβάλλον θεωρείται ως κίνηση σε ένα εικονικό τεχνητό πεδίο δύναμης. Το πλησιέστερο εμπόδιο προσδιορίζεται από το LiDAR. Το εμπόδιο παρέχει ένα πεδίο απωστικής δύναμης για τη δημιουργία απώθησης στο ρομπότ και το σημείο στόχος παρέχει ένα βαρυτικό πεδίο για τη δημιουργία βαρυτικής δύναμης στο ρομπότ. Με αυτόν τον τρόπο ελέγχει την κίνηση του ρομπότ υπό τη συνδυασμένη δράση απώθησης και έλξης.
Αυτό το πακέτο ROS είναι μια βελτίωση που βασίζεται στη μέθοδο του τεχνητού δυναμικού πεδίου. Πρώτον, ο αλγόριθμος σχηματισμού υπολογίζει τη γραμμική και γωνιακή ταχύτητα του ακολούθου Slave. Στη συνέχεια αυξάνει ή μειώνει τη γραμμική και γωνιακή ταχύτητα σύμφωνα με τις απαιτήσεις αποφυγής εμποδίων. Όταν η απόσταση μεταξύ του ακολούθου Slave και του εμποδίου είναι πιο κοντά, η δύναμη απώθησης του εμποδίου προς τον ακόλουθο Slave είναι μεγαλύτερη. Εν τω μεταξύ, η μεταβολή της γραμμικής ταχύτητας και οι διακυμάνσεις της γωνιακής ταχύτητας είναι μεγαλύτερες. Όταν το εμπόδιο είναι πιο κοντά στο μπροστινό μέρος του ακολούθου Slave, η απώθηση του εμποδίου στον οπαδό του Slave γίνεται μεγαλύτερη (η μπροστινή απόκρουση είναι η μεγαλύτερη και η πλάγια απόκρουση είναι η μικρότερη). Ως αποτέλεσμα, οι διακυμάνσεις της γραμμικής και της γωνιακής ταχύτητας είναι μεγαλύτερες. Μέσω της μεθόδου τεχνητού δυναμικού πεδίου, βελτιώνει μια λύση όταν ένα ρομπότ μπορούσε να σταματήσει να ανταποκρίνεται μπροστά σε ένα εμπόδιο. Αυτό εξυπηρετεί τον σκοπό της καλύτερης αποφυγής εμποδίων.

ΡΥΘΜΙΣΗ ΕΠΙΚΟΙΝΩΝΙΑΣ ΠΟΛΛΩΝ ΠΡΑΚΤΟΡΩΝ

Η επικοινωνία πολλών πρακτόρων είναι ένα από τα βασικά βήματα για την ολοκλήρωση ενός σχηματισμού πολλαπλών ρομπότ. Όταν οι σχετικές θέσεις πολλών ρομπότ είναι άγνωστες, τα ρομπότ πρέπει να μοιράζονται το ένα τις πληροφορίες του άλλου μέσω επικοινωνίας για να διευκολύνουν τη δημιουργία συνδέσεων. Η αρχιτεκτονική που διανέμεται σε ROS και οι επικοινωνίες δικτύου είναι πολύ ισχυρές. Δεν είναι μόνο βολικό για επικοινωνία μεταξύ διεργασιών αλλά και για επικοινωνία μεταξύ διαφορετικών συσκευών. Μέσω της δικτυακής επικοινωνίας, όλοι οι κόμβοι μπορούν να τρέξουν σε οποιονδήποτε υπολογιστή. Οι κύριες εργασίες όπως η επεξεργασία δεδομένων ολοκληρώνονται από την πλευρά του κεντρικού υπολογιστή. Οι σκλάβες μηχανές είναι υπεύθυνες για τη λήψη περιβαλλοντικών δεδομένων που συλλέγονται από διάφορους αισθητήρες. Ο κεντρικός υπολογιστής εδώ είναι ο διαχειριστής που εκτελεί τον κύριο κόμβο στο ROS. Το τρέχον πλαίσιο επικοινωνίας πολλαπλών πρακτόρων είναι μέσω ενός διαχειριστή κόμβου και ενός διαχειριστή παραμέτρων για τη διαχείριση των επικοινωνιών μεταξύ πολλών ρομπότ.ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-Fig- (1)

Τα βήματα για τη δημιουργία επικοινωνιών πολλαπλών πρακτόρων

  • Ρυθμίστε τα στοιχεία ελέγχου ROS στο ίδιο δίκτυο
    • Υπάρχουν 2 τρόποι για να ρυθμίσετε τα Κύρια/Υποτελή στοιχεία ελέγχου ROS στο ίδιο δίκτυο.

Επιλογή 1:

Ο κύριος κεντρικός υπολογιστής δημιουργεί ένα τοπικό wifi εκτελώντας τον διαχειριστή κύριου κόμβου. Γενικά, ένα από τα ρομπότ που ορίζεται ως κύριος δημιουργεί αυτό το δίκτυο Wi-Fi. Άλλα ρομπότ ή εικονικές μηχανές εντάσσονται σε αυτό το δίκτυο wifi ως σκλάβοι.

Επιλογές 2:

Το τοπικό δίκτυο Wi-Fi παρέχεται από έναν δρομολογητή τρίτου κατασκευαστή ως κέντρο αναμετάδοσης πληροφοριών. Όλα τα ρομπότ είναι συνδεδεμένα στον ίδιο δρομολογητή. Ο δρομολογητής μπορεί επίσης να χρησιμοποιηθεί χωρίς σύνδεση στο Διαδίκτυο. Επιλέξτε ένα από τα ρομπότ ως κύριο και εκτελέστε το Master node manager. Τα άλλα ρομπότ ορίζονται ως slaves και εκτελούν τον κύριο διαχειριστή κόμβου από τον κύριο.
Η απόφαση για το ποια επιλογή θα επιλέξετε εξαρτάται από τις απαιτήσεις του έργου σας. Εάν ο αριθμός των ρομπότ που πρέπει να επικοινωνήσουν δεν είναι μεγάλος, συνιστάται η επιλογή 1, καθώς εξοικονομεί κόστος και είναι εύκολο να ρυθμιστεί. Όταν ο αριθμός των ρομπότ είναι μεγάλος, συνιστάται η επιλογή 2. Ο περιορισμός στην υπολογιστική ισχύ του κύριου ελέγχου ROS και το περιορισμένο ενσωματωμένο εύρος ζώνης μπορούν εύκολα να προκαλέσουν καθυστερήσεις και διακοπές δικτύου. Ένας δρομολογητής μπορεί εύκολα να διορθώσει αυτά τα προβλήματα. Λάβετε υπόψη ότι κατά την εκτέλεση επικοινωνίας πολλαπλών πρακτόρων, εάν η εικονική μηχανή χρησιμοποιείται ως υποτελής ROS, η λειτουργία δικτύου της πρέπει να ρυθμιστεί σε λειτουργία γεφύρωσης.

Διαμόρφωση μεταβλητών περιβάλλοντος Master/Slave

Αφού όλα τα κύρια ROS είναι όλα στο ίδιο δίκτυο, πρέπει να οριστούν οι μεταβλητές περιβάλλοντος για την επικοινωνία πολλαπλών πρακτόρων. Αυτή η μεταβλητή περιβάλλοντος έχει ρυθμιστεί στο αρχείο .bashrc στον κύριο κατάλογο. Εκτελέστε την εντολή gedit ~/.bashrc για να την εκκινήσετε. Λάβετε υπόψη ότι τόσο τα αρχεία .bashrc του master όσο και του slave σε επικοινωνία πολλαπλών πρακτόρων πρέπει να ρυθμιστούν. Αυτό που πρέπει να αλλάξει είναι οι διευθύνσεις IP στο τέλος του αρχείου. Οι δύο γραμμές του είναι ROS_MASTER_URI και ROS_HOSTNAME, όπως φαίνεται στην Εικόνα 2-1-4. Τα ROS_MASTER_URI και ROS_HOSTNAME του κεντρικού υπολογιστή ROS είναι και τα δύο τοπικά IP. Το ROS_MASTER_URI στο slave αρχείο ROS .bashrc πρέπει να αλλάξει στη διεύθυνση IP του κεντρικού υπολογιστή, ενώ το ROS_HOSTNAME παραμένει ως τοπική διεύθυνση IP.ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-Fig- (2)

Η επικοινωνία πολλών μηχανών ROS δεν περιορίζεται από την έκδοση έκδοσης ROS. Κατά τη διαδικασία επικοινωνίας πολλών μηχανών, θα πρέπει να γνωρίζει κανείς τα ακόλουθα:

  1. Η λειτουργία του υποτελούς προγράμματος ROS εξαρτάται από το κύριο πρόγραμμα ROS της κύριας συσκευής ROS. Το κύριο πρόγραμμα ROS πρέπει να ξεκινήσει πρώτα στην κύρια συσκευή πριν από την εκτέλεση του υποτελούς προγράμματος στη δευτερεύουσα συσκευή.
  2. Οι διευθύνσεις IP της κύριας και της βοηθητικής μηχανής στην επικοινωνία πολλών μηχανών πρέπει να βρίσκονται στο ίδιο δίκτυο. Αυτό σημαίνει ότι η διεύθυνση IP και η μάσκα υποδικτύου βρίσκονται στο ίδιο δίκτυο.
  3. Το ROS_HOSTNAME στο αρχείο διαμόρφωσης περιβάλλοντος .bashrc δεν συνιστάται για χρήση του localhost. Συνιστάται η χρήση μιας συγκεκριμένης διεύθυνσης IP.
  4. Σε περίπτωση που η δευτερεύουσα διεύθυνση IP δεν έχει ρυθμιστεί σωστά, η εξαρτημένη συσκευή εξακολουθεί να έχει πρόσβαση στην κύρια μονάδα ROS, αλλά δεν μπορεί να εισαγάγει πληροφορίες ελέγχου.
  5. Εάν η εικονική μηχανή συμμετέχει στην επικοινωνία πολλαπλών πρακτόρων, η λειτουργία δικτύου της πρέπει να ρυθμιστεί σε λειτουργία γέφυρας. Η στατική IP δεν μπορεί να επιλεγεί για τη σύνδεση δικτύου.
  6. Η επικοινωνία πολλών μηχανών δεν μπορεί view ή εγγραφείτε σε θέματα τύπου δεδομένων μηνύματος που δεν υπάρχουν τοπικά.
  7. Μπορείτε να χρησιμοποιήσετε την επίδειξη προσομοίωσης της μικρής χελώνας για να επαληθεύσετε εάν η επικοινωνία μεταξύ των ρομπότ είναι επιτυχής:
    • a. Τρέξτε από τον κύριο
      • rescore #launch υπηρεσίες ROS
      • turtles turtlesim_node #launch turtles interface
    • b. Τρέξτε από τον σκλάβο
      • επανάληψη turtles turtle_teleop_key #launch keyboard control node for turtles

Εάν μπορείτε να χειριστείτε τις κινήσεις της χελώνας από το πληκτρολόγιο στο slave, σημαίνει ότι η επικοινωνία master/slave έχει δημιουργηθεί με επιτυχία.

Αυτόματη σύνδεση Wi-Fi σε ROS

Οι παρακάτω διαδικασίες εξηγούν πώς να ρυθμίσετε το ρομπότ ώστε να συνδέεται αυτόματα στο κεντρικό δίκτυο ή στο δίκτυο δρομολογητή.

Αυτόματη ρύθμιση σύνδεσης Wi-Fi για Jetson Nano

  1. Συνδέστε το Jetson Nano μέσω του απομακρυσμένου εργαλείου VNC ή απευθείας στην οθόνη του υπολογιστή. Κάντε κλικ στο εικονίδιο wifi στην επάνω δεξιά γωνία και, στη συνέχεια, κάντε κλικ στο "Επεξεργασία συνδέσεων.."ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-Fig- (3)
  2. Κάντε κλικ στο κουμπί + στις Συνδέσεις δικτύου:ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-Fig- (4)
  3. Κάτω από το παράθυρο "Επιλογή τύπου σύνδεσης", κάντε κλικ στο αναπτυσσόμενο μενού και κάντε κλικ στο κουμπί "Δημιουργία…":ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-Fig- (5)
  4. Στον Πίνακα Ελέγχου, κάντε κλικ στην επιλογή Wi. Εισαγάγετε το όνομα Wi για σύνδεση στα πεδία "Connection Name" και SSID. Επιλέξτε «Πελάτης» στο αναπτυσσόμενο μενού «Λειτουργία» και επιλέξτε «wlan0» στο αναπτυσσόμενο μενού «Συσκευή».ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-Fig- (6)
  5. Στον Πίνακα Ελέγχου, κάντε κλικ στην επιλογή «Γενικά» και επιλέξτε «Αυτόματη σύνδεση σε αυτό το δίκτυο…». Ορίστε την προτεραιότητα σύνδεσης σε 1 στην επιλογή «Προτεραιότητα σύνδεσης για αυτόματη ενεργοποίηση». Επιλέξτε την επιλογή «Όλοι οι χρήστες μπορούν να συνδεθούν σε αυτό το δίκτυο». Όταν η επιλογή έχει ρυθμιστεί στο 0 στην "Προτεραιότητα σύνδεσης για αυτόματη ενεργοποίηση" για άλλα wifi, αυτό σημαίνει ότι αυτό είναι το προτιμώμενο δίκτυο wifi στο παρελθόν.ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-Fig- (7)
  6. Κάντε κλικ στην επιλογή «Ασφάλεια Wi-Fi» στον Πίνακα Ελέγχου. Επιλέξτε "WPA & WPA2 Personal" στο πεδίο "Security". Στη συνέχεια, πληκτρολογήστε τον κωδικό πρόσβασης Wifi στο πεδίο "Password".ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-Fig- (8)

Σημείωμα: Εάν το ρομπότ δεν μπορεί να συνδεθεί αυτόματα στο δίκτυο wifi μετά την εκκίνηση όταν η προτεραιότητα wifi έχει οριστεί στο 0, μπορεί να οφείλεται σε πρόβλημα ασθενούς σήματος wifi. Προκειμένου να αποφύγετε αυτό το πρόβλημα, μπορείτε να επιλέξετε να διαγράψετε όλες τις επιλογές wifi που έχουν συνδεθεί στο παρελθόν. Διατηρήστε μόνο το δίκτυο wifi που δημιουργήθηκε από τον κεντρικό υπολογιστή ή το δρομολογητή. Κάντε κλικ στην επιλογή «Ρυθμίσεις IPv4» στον πίνακα ελέγχου ρυθμίσεων δικτύου. Επιλέξτε την επιλογή "Manual" στο πεδίο "Method". Στη συνέχεια, κάντε κλικ στο «Προσθήκη», συμπληρώστε τη διεύθυνση IP της εξαρτημένης μηχανής στο πεδίο «Διεύθυνση». Συμπληρώστε το "24" στο πεδίο "Netmask". Συμπληρώστε το τμήμα δικτύου IP στο "Gateway". Αλλάξτε τα τρία τελευταία ψηφία του τμήματος δικτύου IP σε "1". Ο κύριος σκοπός αυτού του βήματος είναι να διορθώσετε τη διεύθυνση IP. Αφού ολοκληρωθεί αυτό για πρώτη φορά, η διεύθυνση IP θα παραμείνει αμετάβλητη κατά τη μετέπειτα σύνδεση στο ίδιο WIFI.ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-Fig- (9)

Αφού διαμορφωθούν όλες οι ρυθμίσεις, κάντε κλικ στο «αποθήκευση» για να αποθηκεύσετε τις ρυθμίσεις. Μετά την επιτυχή αποθήκευση, το ρομπότ θα συνδεθεί αυτόματα στο δίκτυο του κεντρικού υπολογιστή ή του δρομολογητή όταν είναι ενεργοποιημένο.

Σημείωμα:

  1. Η διεύθυνση IP που έχει οριστεί εδώ πρέπει να είναι η ίδια με τη διεύθυνση IP που έχει οριστεί στο αρχείο .bashrc στην Ενότητα 2.1.
  2. Η διεύθυνση IP του κύριου και κάθε υποτελούς μονάδας πρέπει να είναι μοναδική.
  3. Η κύρια και η δευτερεύουσα διεύθυνση IP πρέπει να βρίσκονται στο ίδιο τμήμα δικτύου.
  4. Πρέπει να περιμένετε μέχρι ο κεντρικός υπολογιστής ή ο δρομολογητής να στείλει σήμα WiFi προτού ενεργοποιηθεί το βοηθητικό ρομπότ και συνδεθεί αυτόματα στο δίκτυο WiFi.
  5. Αφού διαμορφωθεί η ρύθμιση, εάν το ρομπότ δεν μπορεί να συνδεθεί αυτόματα στο WiFi όταν είναι ενεργοποιημένο, συνδέστε και αποσυνδέστε την κάρτα δικτύου και δοκιμάστε να συνδεθείτε ξανά.

Αυτόματη ρύθμιση σύνδεσης Wi-Fi για το Raspberry Pi

Η διαδικασία για το Raspberry Pi είναι η ίδια με το Jetson Nano.

Αυτόματη ρύθμιση σύνδεσης Wi-Fi για Jetson TX1

Η ρύθμιση στο Jetson TX1 είναι σχεδόν η ίδια όπως στο Jetson Nano με μια εξαίρεση, η Jetson TX1 θα πρέπει να επιλέξει τη συσκευή "wlan1" στο "Device" στον πίνακα ελέγχου ρυθμίσεων δικτύου.ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-Fig- (10)

ΡΥΘΜΙΣΗ ΣΥΓΧΡΟΝΙΣΜΟΥ ΠΟΛΥΠΡΑΚΤΟΡΩΝ

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

Επιτυχής σύνδεση δικτύου master/slave

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

Αντιμετώπιση προβλημάτων αποσυνδέσεων δικτύου

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

Πρώτα, εγκαταστήστε το εργαλείο τερματισμού. Από το εργαλείο τερματισμού, χρησιμοποιήστε το εργαλείο διαχωρισμού παραθύρου για να τοποθετήσετε τα τερματικά ελέγχου του master και του slave στο ίδιο παράθυρο τερματικού (κάντε δεξί κλικ για να ορίσετε ένα παράθυρο διαχωρισμού και συνδεθείτε στο master και slave μηχανήματα με ssh σε διαφορετικά παράθυρα) .

  • sudo apt-get install terminator # Κατεβάστε το τερματικό για να χωρίσετε το παράθυρο του τερματικού

Κάντε κλικ στο κουμπί επάνω αριστερά, επιλέξτε [Μετάδοση σε όλους]/[Μετάδοση όλων] και πληκτρολογήστε την ακόλουθη εντολή. Στη συνέχεια, χρησιμοποιήστε το εργαλείο τερματισμού για να ορίσετε την ίδια ώρα για το master και το slave.ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-Fig- (11)

  • sudo date -s “2022-01-30 15:15:00” # Μη αυτόματη ρύθμιση ώρας

ΠΑΚΕΤΟ ΠΟΛΥΠΡΑΚΤΟΡΩΝ ROS

Εισαγωγή πακέτου ROS

Ρύθμιση ονόματος σκλάβου

Στο πακέτο λειτουργιών wheeltec_multi, είναι απαραίτητο να ορίσετε ένα μοναδικό όνομα για κάθε υποτελές ρομπότ, προκειμένου να αποφύγετε σφάλματα. Για π.χample, Νο. 1 για το slave1 και Νο. 2 για το slave2, κ.λπ. Ο σκοπός του ορισμού διαφορετικών ονομάτων είναι να ομαδοποιηθούν οι κόμβοι που τρέχουν και να διακριθούν με διαφορετικούς χώρους ονομάτων. Για π.χample, το θέμα ραντάρ του slave 1 είναι/slave1/scan και ο κόμβος LiDAR του slave 1 είναι/slave1/laser.

Ρύθμιση υποτελών συντεταγμένων

Το πακέτο wheeltec_multi μπορεί να υλοποιήσει προσαρμοσμένους σχηματισμούς. Όταν απαιτούνται διαφορετικοί σχηματισμοί, απλώς τροποποιήστε τις επιθυμητές συντεταγμένες των σκλάβων ρομπότ. Slave_x και slave_y είναι οι συντεταγμένες x και y του slave με το master ως αρχικό σημείο αναφοράς. Το μπροστινό μέρος της κύριας είναι η θετική κατεύθυνση της συντεταγμένης x και η αριστερή πλευρά είναι η θετική κατεύθυνση της συντεταγμένης y. Αφού ολοκληρωθεί η ρύθμιση, θα εκδοθεί μια υποτελής συντεταγμένη TF1 ως η αναμενόμενη συντεταγμένη της υποτελούς μονάδας. Εάν υπάρχει ένας κύριος και δύο σκλάβοι, μπορεί να οριστεί ο ακόλουθος σχηματισμός:

  1. Οριζόντιος σχηματισμός: Μπορείτε να ορίσετε τις συντεταγμένες του slave στα αριστερά σε slave_x:0, slave_y: 0.8 και τις συντεταγμένες του slave στα δεξιά σε slave_x:0, slave_y:-0.8.
  2. Σχηματισμός στήλης: Οι συντεταγμένες του ενός slave μπορούν να οριστούν σε: slave_x:-0.8, slave_y:0 ​​και οι συντεταγμένες του άλλου slave μπορούν να οριστούν σε: slave_x:-1.8, slave_y:0.
  3. Τριγωνικός σχηματισμός: Οι συντεταγμένες του ενός slave μπορούν να οριστούν σε: slave_x:-0.8, slave_y: 0.8 και οι συντεταγμένες του άλλου slave μπορούν να οριστούν σε: slave_x:-0.8, slave_y:-0.8.

Άλλοι σχηματισμοί μπορούν να προσαρμοστούν ανάλογα με τις ανάγκες.

Σημείωμα:

  • Η συνιστώμενη απόσταση μεταξύ των δύο ρομπότ έχει οριστεί στο 0.8 και συνιστάται να μην είναι μικρότερη από 0.6. Η απόσταση μεταξύ των slaves και του master συνιστάται να οριστεί κάτω από 2.0. Όσο πιο μακριά είναι από τον κύριο, τόσο μεγαλύτερη είναι η γραμμική ταχύτητα του slave όταν ο κύριος γυρίζει. Λόγω του περιορισμού της μέγιστης ταχύτητας, η ταχύτητα του slave θα αποκλίνει εάν δεν πληροί τις απαιτήσεις. Ο σχηματισμός ρομπότ θα γίνει χαοτικός.

Αρχικοποίηση της θέσης slave

  1. Η αρχική θέση του slave είναι στις αναμενόμενες συντεταγμένες από προεπιλογή. Πριν εκτελέσετε το πρόγραμμα, απλώς τοποθετήστε το βοηθητικό ρομπότ κοντά στις αναμενόμενες συντεταγμένες του για να ολοκληρώσετε την προετοιμασία. Αυτή η συνάρτηση υλοποιείται από τον κόμβο pose_setter στο αρχείο με το όνομα turn_on_wheeltec_robot.launch στο πακέτο wheeltec_multi, όπως φαίνεται στην Εικόνα 4-1-3.ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-Fig- (12)

Εάν ο χρήστης θέλει να προσαρμόσει την αρχική θέση του slave, χρειάζεται μόνο να ορίσει τις τιμές slave_x και slave_y όπως φαίνεται στην Εικόνα 4-1-4 στο wheeltec_slave.launch. Οι τιμές slave_x και slave_y θα περάσουν στο turn_on_wheeltec_robot.launch και θα εκχωρηθούν στον κόμβο pose_setter. Απλώς τοποθετήστε το ρομπότ σε μια προσαρμοσμένη θέση πριν εκτελέσετε το πρόγραμμα.ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-Fig- (13)

Διαμόρφωση θέσης

Σε έναν σχηματισμό πολλαπλών πρακτόρων, το πρώτο πρόβλημα που πρέπει να λυθεί είναι η τοποθέτηση του κύριου και του δούλου. Ο κύριος θα κατασκευάσει πρώτα έναν 2D χάρτη. Μετά τη δημιουργία και την αποθήκευση του χάρτη, εκτελέστε το πακέτο 2D πλοήγησης και χρησιμοποιήστε τον προσαρμοστικό αλγόριθμο εντοπισμού θέσης Monte Carlo (amcl positioning) στο πακέτο 2D πλοήγησης για να διαμορφώσετε την τοποθέτηση του master. Εφόσον το master και οι slaves βρίσκονται στο ίδιο δίκτυο και μοιράζονται τον ίδιο διαχειριστή κόμβου, ο κύριος έχει εκκινήσει τον χάρτη από το πακέτο 2D πλοήγησης, όλοι οι slaves μπορούν να χρησιμοποιήσουν τον ίδιο χάρτη στον ίδιο διαχειριστή κόμβου. Επομένως, ο σκλάβος δεν χρειάζεται να δημιουργήσει χάρτη. Στο wheeltec_slave.launch, εκτελέστε την τοποθέτηση Monte Carlo (τοποθεσία amcl), οι slaves μπορούν να διαμορφώσουν τις θέσεις τους χρησιμοποιώντας τον χάρτη που δημιουργήθηκε από τον κύριο.ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-Fig- (14)

Πώς να δημιουργήσετε σχηματισμό και να διατηρήσετε το σχηματισμό

Στη διαδικασία της κίνησης σχηματισμού, η κύρια κίνηση μπορεί να ελεγχθεί με Rviz, πληκτρολόγιο, τηλεχειριστήριο και άλλες μεθόδους. Το slave υπολογίζει την ταχύτητά του μέσω του κόμβου slave_tf_listener προκειμένου να ελέγξει την κίνησή του και να πετύχει τον στόχο του σχηματισμού. Ο κόμβος slave_tf_listener περιορίζει την υποτελή ταχύτητα για να αποφύγει την υπερβολική ταχύτητα από τον υπολογισμό του κόμβου, η οποία θα προκαλέσει μια σειρά επιπτώσεων. Η συγκεκριμένη τιμή μπορεί να τροποποιηθεί στο wheeltec_slave.launch.ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-Fig- (15)

Οι σχετικές παράμετροι του αλγορίθμου σχηματισμού είναι οι εξής: ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-Fig- (16)

Πληροφορίες αποφυγής εμποδίων

Σε έναν σχηματισμό πολλαπλών πρακτόρων, ο κύριος μπορεί να χρησιμοποιήσει τον κόμβο move_base για να ολοκληρώσει την αποφυγή εμποδίων. Ωστόσο, η προετοιμασία του slave δεν χρησιμοποιεί τον κόμβο move_base. Σε αυτό το σημείο, ο κόμβος multi_avoidance πρέπει να κληθεί στο πρόγραμμα slave. Ο κόμβος αποφυγής εμποδίων είναι ενεργοποιημένος από προεπιλογή στο πακέτο. Εάν είναι απαραίτητο, η αποφυγή μπορεί να οριστεί σε "false" για να απενεργοποιηθεί ο κόμβος αποφυγής εμποδίων. ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-Fig- (17)

Μερικές σχετικές παράμετροι του κόμβου αποφυγής εμποδίων φαίνονται στο παρακάτω σχήμα, όπου η safe_distance είναι το όριο ασφαλούς απόστασης εμποδίου και η risk_distance είναι το όριο επικίνδυνης απόστασης εμποδίου. Όταν το εμπόδιο βρίσκεται σε απόσταση ασφαλείας και απόστασης κινδύνου, ο σκλάβος προσαρμόζει τη θέση του για να αποφύγει το εμπόδιο. Όταν το εμπόδιο βρίσκεται σε κίνδυνο, ο σκλάβος θα απομακρύνεται από το εμπόδιο.ROBOWORKS-Robofleet-MULTI-AGENT-ALGORITHMS-Fig- (18)

Διαδικασία Λειτουργίας

Εισαγάγετε την εντολή εκτέλεσης

Προετοιμασίες πριν από την έναρξη του σχηματισμού πολλαπλών παραγόντων:

  • Το master και το slave συνδέονται στο ίδιο δίκτυο και ρυθμίζουν σωστά την επικοινωνία πολλαπλών πρακτόρων
  • Ο πλοίαρχος δημιουργεί έναν 2D χάρτη εκ των προτέρων και τον αποθηκεύει
  • Το master τοποθετείται στο σημείο εκκίνησης του χάρτη και το slave τοποθετείται κοντά στη θέση αρχικοποίησης (η προεπιλεγμένη θέση σχηματισμού slave)
  • Αφού συνδεθείτε στο Jetson Nano/Raspberry Pi εξ αποστάσεως, εκτελέστε συγχρονισμό χρόνου.

sudo date -s “2022-04-01 15:15:00”

  • Βήμα 1: Ανοίξτε έναν δισδιάστατο χάρτη από τον κύριο.

roslaunch turn_on_wheeltec_robot navigation.launch

  • Βήμα 2: Εκτελέστε το πρόγραμμα σχηματισμού από όλους τους σκλάβους.

roslaunch wheeltec_multi wheeltec_slave.launch

  • Βήμα 3: Ανοίξτε τον κόμβο ελέγχου του πληκτρολογίου από την κύρια μονάδα ή χρησιμοποιήστε το joystick για να ελέγξετε από απόσταση την κύρια κίνηση.

επανεκκινήστε το wheeltec_robot_rc keyboard_teleop.launch

  • Βήμα 4: (Προαιρετικά) Παρατηρήστε τις κινήσεις του ρομπότ από το Rviz.

rviz

Σημείωμα: 

  1. Βεβαιωθείτε ότι έχετε ολοκληρώσει τη λειτουργία συγχρονισμού χρόνου πριν εκτελέσετε το πρόγραμμα.
  2. Κατά τον έλεγχο του πλοιάρχου ενός σχηματισμού πολλαπλών παραγόντων, η γωνιακή ταχύτητα δεν πρέπει να είναι πολύ γρήγορη. Η συνιστώμενη γραμμική ταχύτητα είναι 0.2 m/s, ο βαθμός γωνιακής ταχύτητας κάτω από 0.3 rad/s. Όταν ο κύριος κάνει μια στροφή, όσο πιο μακριά είναι ο slave από τον κύριο, τόσο μεγαλύτερη είναι η γραμμική ταχύτητα που απαιτείται. Λόγω του ορίου στη γραμμική ταχύτητα και τη γωνιακή ταχύτητα στη συσκευασία, όταν το slave car δεν μπορεί να φτάσει την απαιτούμενη ταχύτητα, ο σχηματισμός θα είναι χαοτικός. Συνολικά, η υπερβολική γραμμική ταχύτητα μπορεί εύκολα να βλάψει το ρομπότ.
  3. Όταν ο αριθμός των υποτελών είναι περισσότεροι από ένας, λόγω του περιορισμένου εύρους ζώνης ενσωματωμένης σύνδεσης του κεντρικού υπολογιστή ROS, είναι εύκολο να προκληθούν σημαντικές καθυστερήσεις και αποσύνδεση της επικοινωνίας πολλαπλών πρακτόρων. Η χρήση ενός δρομολογητή μπορεί να λύσει αυτό το πρόβλημα καλά.
  4. Το δέντρο TF του σχηματισμού πολλαπλών ρομπότ (2 slaves) είναι: rqt_tf_tree
  5. Το διάγραμμα σχέσης κόμβου του σχηματισμού πολλαπλών ρομπότ (2 slaves) είναι: rqt_graph

Έγγραφα / Πόροι

ΑΛΓΟΡΙΘΜΟΙ ΠΟΛΥΠΡΑΚΤΟΡΩΝ ROBOWORKS Robofleet [pdf] Εγχειρίδιο χρήστη
Robofleet Multi Agent Algorithms, Robofleet, Multi Agent Algorithms, Agent Algorithms, Algorithms

Αναφορές

Αφήστε ένα σχόλιο

Η διεύθυνση email σας δεν θα δημοσιευτεί. Τα υποχρεωτικά πεδία επισημαίνονται *