Roomblock: μια πλατφόρμα για εκμάθηση πλοήγησης ROS με Roomba, Raspberry Pi και RPLIDAR: 9 βήματα (με εικόνες)
Roomblock: μια πλατφόρμα για εκμάθηση πλοήγησης ROS με Roomba, Raspberry Pi και RPLIDAR: 9 βήματα (με εικόνες)

Βίντεο: Roomblock: μια πλατφόρμα για εκμάθηση πλοήγησης ROS με Roomba, Raspberry Pi και RPLIDAR: 9 βήματα (με εικόνες)

Βίντεο: Roomblock: μια πλατφόρμα για εκμάθηση πλοήγησης ROS με Roomba, Raspberry Pi και RPLIDAR: 9 βήματα (με εικόνες)
Βίντεο: OPERA PMS - Oracle Hospitality elearning | 10 ομαδικά μπλοκ 2025, Ιανουάριος
Anonim
Image
Image
Ο, τι χρειάζεσαι
Ο, τι χρειάζεσαι

Τι είναι αυτό?

Το "Roomblock" είναι μια πλατφόρμα ρομπότ που αποτελείται από ένα Roomba, ένα Raspberry Pi 2, έναν αισθητήρα λέιζερ (RPLIDAR) και μια μπαταρία για κινητά. Το πλαίσιο στερέωσης μπορεί να κατασκευαστεί από 3D εκτυπωτές. Το σύστημα πλοήγησης ROS επιτρέπει τη δημιουργία ενός χάρτη των δωματίων και τη χρήση του για να φτάσει στον στόχο αυτόνομα.

Ποιος το χρειάζεται αυτό;

Όποιος θέλει να μάθει τις τεχνολογίες αιχμής της ρομποτικής πλοήγησης, χαρτογράφησης και αυτόνομης οδήγησης. Αυτό το ρομπότ μπορεί να κατασκευαστεί εύκολα και με χαμηλότερο κόστος από άλλες εμπορικές πλατφόρμες. Το ROS είναι πλέον de facto τυπικό σύστημα λογισμικού για το πεδίο της ρομποτικής έρευνας. Αυτή η ταινία δείχνει τι είναι δυνατό με το σύστημα πλοήγησης ROS.

Βήμα 1: Αυτό που χρειάζεστε

Ο, τι χρειάζεσαι
Ο, τι χρειάζεσαι
Ο, τι χρειάζεσαι
Ο, τι χρειάζεσαι
Δημιουργία σειριακού καλωδίου USB (προαιρετικό)
Δημιουργία σειριακού καλωδίου USB (προαιρετικό)
Δημιουργία σειριακού καλωδίου USB (προαιρετικό)
Δημιουργία σειριακού καλωδίου USB (προαιρετικό)

Σειριακό καλώδιο USB

Εάν δεν έχετε σειριακό καλώδιο USB για το Roomba, μπορείτε να το κατασκευάσετε εύκολα με αυτό το προϊόν.

  • FTDI: TTL-232R-5V
  • Akiduki Denshi: TTL-232R-5V

Παρατηρήστε ότι η εσωτερική επιφάνεια του Roomba είναι TTL (5V).

Συνδετήρας

Χρειάζεστε μια υποδοχή mini-DIN 8 ακίδων για τη σειριακή διεπαφή του Roomba. Στην πραγματικότητα, ο σύνδεσμος του Roomba είναι μίνι-DIN 7 ακίδων, ωστόσο, είναι πολύ πιο εύκολο να αγοράσετε έναν συνδετήρα 8 ακίδων από έναν σύνδεσμο 7 ακίδων.

  • Digikey: υποδοχή mini-DIN 8pin
  • Kyoritsu: υποδοχή mini-DIN 8pin

Συγκόλληση

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

Προδιαγραφή ανοιχτού διεπαφής Roomba

Λάβετε υπόψη, είναι ασφαλές να συνδέσετε Vcc (Κόκκινο) και RTS (Πράσινο) για να αποφύγετε το πρόβλημα ροής υλικού.

Βήμα 4: Ρύθμιση μονάδας κάμερας Raspberry Pi (προαιρετικό)

Ρύθμιση μονάδας κάμερας Raspberry Pi (προαιρετικό)
Ρύθμιση μονάδας κάμερας Raspberry Pi (προαιρετικό)
Ρύθμιση μονάδας κάμερας Raspberry Pi (προαιρετικό)
Ρύθμιση μονάδας κάμερας Raspberry Pi (προαιρετικό)

Εάν διαθέτετε μονάδα κάμερας Raspberry Pi, μπορείτε να το επισυνάψετε στο Raspberry Pi. Αυτό είναι προαιρετικό για εκμάθηση πλοήγησης, ωστόσο, είναι διασκεδαστικό να βλέπετε από την όραση του ρομπότ.

Το τμήμα στήριξης της κάμερας περιλαμβάνεται επίσης στα δεδομένα καρέ στο Thingiverse. Η μονάδα της κάμερας μπορεί να στερεωθεί με τέσσερις βίδες M2.

Βήμα 5: Ρύθμιση τοπικού υπολογιστή

Ρύθμιση τοπικού υπολογιστή
Ρύθμιση τοπικού υπολογιστή

Εγκαταστήστε το Ubuntu

Εγκαταστήστε την επιφάνεια εργασίας του Ubuntu 16.04 ακολουθώντας την επίσημη σελίδα

Επίσημη σελίδα του Ubuntu

Εγκαταστήστε το ROS

Συμβουλευτείτε την επίσημη σελίδα της ROS. Εγκαταστήστε πλήρη πακέτα Kinetic desktop.

Οδηγίες εγκατάστασης ROS Kinetic

Εγκαταστήστε το πακέτο Roomblock ROS

Το πακέτο για το roomblock κυκλοφορεί ήδη στο Kinetic. Μπορείτε να τα εγκαταστήσετε με εντολή apt.

$ sudo apt install ros-kinetic-roomblock

Αυτό είναι.

Εάν θέλετε να τροποποιήσετε και να δημιουργήσετε το πακέτο από τον πηγαίο κώδικα, μπορείτε να το λάβετε από το GitHub.

GitHub - κλείδωμα δωματίου

Ακολουθήστε τις οδηγίες στο README.md.

Εάν έχετε οποιοδήποτε πρόβλημα ή ερώτηση σχετικά με το λογισμικό, παρακαλώ δημιουργήστε ένα ζήτημα σχετικά με ζητήματα GitHub, ώστε να μπορούμε να παρακολουθούμε αποτελεσματικά τα προβλήματα. Αποφύγετε να τα δημοσιεύσετε στο Instructables.

Βήμα 6: Ρύθμιση Raspberry Pi

Ρύθμιση Raspberry Pi
Ρύθμιση Raspberry Pi

Εγκαταστήστε το Ubuntu

Εγκαταστήστε το Ubuntu 16.04 στο Raspberry Pi ακολουθώντας τον οδηγό εγκατάστασης:

Ubuntu Wiki: RaspberryPi

Εγκαταστήστε το ROS

Εγκαταστήστε το ROS Kinetic ακολουθώντας τον οδηγό εγκατάστασης:

Εγκατάσταση Ubuntu του ROS Kinetic

Εγκαταστήστε το πακέτο Roomblock ROS

Πρέπει να εγκαταστήσετε το πακέτο roomblock από τον πηγαίο κώδικα. Ο πηγαίος κώδικας του πακέτου βρίσκεται στο GitHub.

GitHub - κλείδωμα δωματίου

Ακολουθήστε τις οδηγίες στο README.md.

Εάν έχετε οποιοδήποτε πρόβλημα ή ερώτηση σχετικά με το λογισμικό, παρακαλώ δημιουργήστε ένα ζήτημα σχετικά με ζητήματα GitHub, ώστε να μπορούμε να παρακολουθούμε αποτελεσματικά τα προβλήματα. Αποφύγετε να τα δημοσιεύσετε στο Instructables.

Ενότητα κάμερας Raspberry Pi (προαιρετικό)

Εάν διαθέτετε μονάδα κάμερας Rasberry Pi, πρέπει να εγκαταστήσετε το libraspberrypi-dev. Συμβουλευτείτε το README.md στο Github.

Βήμα 7: Τηλελειτουργία

Τηλεχειρισμός
Τηλεχειρισμός
Τηλεχειρισμός
Τηλεχειρισμός

Ενημερώστε το βασικό σύστημα στο Raspberry Pi

Πρώτα απ 'όλα, πρέπει να αναδείξετε το σύστημα. Στο τερματικό Raspberry Pi, ξεκινήστε το βασικό σύστημα ως:

$ εξαγωγή ROS_IP = IP_ADDRESS_OF_RASPBERRY_PI

$ roslaunch roomblock_bringup roomblock.launch

Το RPLIDAR αρχίζει να περιστρέφεται και τώρα μπορείτε να συνδεθείτε στο κύριο ρομπότ ROS από τον τοπικό υπολογιστή σας.

Τηλελειτουργία από τοπικό υπολογιστή

Μπορείτε να χρησιμοποιήσετε ένα μαξιλάρι χαράς για να χειριστείτε το ρομπότ. Εάν διαθέτετε ένα joy pad του XBox, μπορείτε να χρησιμοποιήσετε αυτό το αρχείο εκκίνησης. Διαφορετικά, μπορεί να χρειαστεί να τροποποιήσετε το αρχείο εκκίνησης για να ταιριάζει στο μαξιλάρι χαράς σας. Συμβουλευτείτε τις σελίδες wiki του ROS για λεπτομέρειες.

ROS wiki - teleop_twist_joy

$ εξαγωγή ROS_MASTER_URI = https:// IP_ADDRESS_OF_RASPBERRY_PI: 11311 $ roslaunch roomblock_bringup teleop.launch

Τώρα μπορείτε να ελέγξετε το Roomba με χειριστήριο.

Αντ 'αυτού, μπορείτε να χρησιμοποιήσετε ένα πληκτρολόγιο.

$ εξαγωγή ROS_MASTER_URI = https:// IP_ADDRESS_OF_RASPBERRY_PI: 11311 $ rosrun teleop_twist_keyboard teleop_twist_keyboard.py

Συμβουλευτείτε τις σελίδες wiki του ROS για λεπτομέρειες.

ROS wiki - teleop_twist_keyboard

Βήμα 8: Εκκινήστε το λογισμικό χαρτογράφησης

Εκκινήστε το λογισμικό χαρτογράφησης
Εκκινήστε το λογισμικό χαρτογράφησης
Εκκινήστε το λογισμικό χαρτογράφησης
Εκκινήστε το λογισμικό χαρτογράφησης

Εμφανίστε το λογισμικό χαρτογράφησης στον τοπικό υπολογιστή

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

$ εξαγωγή ROS_MASTER_URI = https:// IP_ADDRESS_OF_RASPBERRY_PI: 11311 $ εξαγωγή ROS_IP = IP_ADDRESS_OF_LOCAL_PC $ roslaunch roomblock_mapping gmapping.launch

Τώρα μπορείτε να δείτε το Rviz (λογισμικό οπτικοποίησης). Λειτουργήστε το ρομπότ γύρω από το δωμάτιο για να δημιουργήσετε έναν χάρτη του δωματίου.

Μπορείτε να συμβουλευτείτε τη σελίδα wiki ROS για σύστημα χαρτογράφησης.

  • ROS wiki - gmapping
  • ROS wiki - διακομιστής map_server

Βήμα 9: Εκκινήστε την Αυτόνομη Πλοήγηση

Εκκινήστε την Αυτόνομη Πλοήγηση
Εκκινήστε την Αυτόνομη Πλοήγηση
Εκκινήστε την Αυτόνομη Πλοήγηση
Εκκινήστε την Αυτόνομη Πλοήγηση

Δημιουργήστε αυτόνομο λογισμικό πλοήγησης

Τώρα μπορείτε να ξεκινήσετε αυτόνομο σύστημα πλοήγησης στον τοπικό υπολογιστή ως εξής:

$ εξαγωγή ROS_MASTER_URI = https:// IP_ADDRESS_OF_RASPBERRY_PI: 11311 $ εξαγωγή ROS_IP = IP_ADDRESS_OF_LOCAL_PC $ roslaunch rolomblock_navigation amcl.launch

Μπορείτε να χρησιμοποιήσετε το Rviz για να καθορίσετε τον στόχο. Το ρομπότ πρέπει να πηγαίνει στον στόχο αυτόνομα.

Συμβουλευτείτε τη σελίδα wiki του ROS για το αυτόνομο σύστημα.

  • ROS wiki - πλοήγηση
  • ROS wiki - amcl

Καλα να περνατε

Εάν έχετε γενικές ερωτήσεις ή προβλήματα σχετικά με το ROS, συμβουλευτείτε το wiki του ROS. Δεν μπορούμε να απαντήσουμε σε γενικές ερωτήσεις σχετικά με το ROS.

ROS wiki - Υποστήριξη

Εάν έχετε οποιοδήποτε πρόβλημα ή ερώτηση σχετικά με το λογισμικό Roomblock, παρακαλώ δημιουργήστε ένα ζήτημα σχετικά με ζητήματα GitHub, ώστε να μπορούμε να παρακολουθούμε αποτελεσματικά τα προβλήματα. Αποφύγετε να τα δημοσιεύσετε στο Instructables.