Πίνακας περιεχομένων:

Ρομπότ SnappyXO Precise Mover: 6 βήματα
Ρομπότ SnappyXO Precise Mover: 6 βήματα

Βίντεο: Ρομπότ SnappyXO Precise Mover: 6 βήματα

Βίντεο: Ρομπότ SnappyXO Precise Mover: 6 βήματα
Βίντεο: Setting up a Bolt camera robot and a Bolt Jr model mover 2024, Νοέμβριος
Anonim
Ρομπότ SnappyXO Precise Mover Robot
Ρομπότ SnappyXO Precise Mover Robot

Κάντε το ρομπότ Arduino να προχωρήσει ευθεία για μια καθορισμένη απόσταση ή στρίψτε σε μια συγκεκριμένη γωνία χρησιμοποιώντας τη βιβλιοθήκη PreciseMovement Arduino.

Το ρομπότ χρειάζεται έναν τροχό κυλίνδρου ή ισοδύναμο για να ελαχιστοποιήσει την τριβή ενώ στρίβει.

www.pololu.com/product/954

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

Έχει δοκιμαστεί ότι λειτουργεί με το ρομπότ SnappyXO.

Βήμα 1: Η τοποθεσία εκμάθησης άλλαξε

Το σεμινάριο μεταφέρθηκε στην παρακάτω σελίδα. Αυτό το σεμινάριο δεν διατηρείται πλέον.

sites.google.com/stonybrook.edu/premo

Βήμα 2: Δημιουργήστε το ρομπότ διαφορικής μονάδας SnappyXO

Η βιβλιοθήκη PreciseMovement που θα χρησιμοποιήσουμε είναι συμβατή μόνο με ρομπότ διαφορικής κίνησης. Μπορείτε να επιλέξετε να χρησιμοποιήσετε άλλα ρομπότ με κίνηση στους δύο τροχούς.

Βήμα 3: Συνδέστε τα Ηλεκτρονικά

Συνδέστε τα Ηλεκτρονικά
Συνδέστε τα Ηλεκτρονικά

Για τον τυπικό οπτικό κωδικοποιητή SnappyXO:

D0 (έξοδος κωδικοποιητή) -> Arduino Digital Pin

VCC -> Arduino 5V

GND -> GND

Κινητήρας και Arduino Power:

Η πηγή ισχύος του κινητήρα πρέπει να είναι κατάλληλη για τους κινητήρες που χρησιμοποιείτε. Για το κιτ SnappyXO, χρησιμοποιούνται μπαταρίες 4AA για την ισχύ του κινητήρα και μπαταρία 9V για την ισχύ του Arduino. Βεβαιωθείτε ότι όλοι έχουν ένα κοινό GND.

Βήμα 4: Εγκατάσταση PreciseMovement Arduino Library

Κατεβάστε:

github.com/jaean123/PreciseMovement-library/releases

Πώς να εγκαταστήσετε τη βιβλιοθήκη Arduino:

wiki.seeedstudio.com/How_to_install_Arduino_Library/

Βήμα 5: Κωδικός

Κωδικός Arduino:

create.arduino.cc/editor/hileloop/7a35299d-4e73-409d-9f39-2c517b3000d5/preview

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

  • Ελέγξτε και ρυθμίστε τις καρφίτσες του κινητήρα κάτω από τους πείρους ARDUINO.
  • Ρυθμίστε LENGTH και RADIUS.

    • ΜΗΚΟΣ είναι η απόσταση από τον αριστερό τροχό στον δεξιό τροχό.
    • RADIUS είναι η ακτίνα του τροχού.
  • Ορίστε PULSES_PER_REV, που είναι ο αριθμός των παλμών που εξάγει ο κωδικοποιητής για μία περιστροφή ενός τροχού.

    • Σημειώστε ότι αυτό διαφέρει από τον αριθμό των παλμών που εξάγει ο κωδικοποιητής για μία περιστροφή άξονα κινητήρα, εκτός εάν οι κωδικοποιητές είναι συνδεδεμένοι για ανάγνωση απευθείας από τον άξονα του τροχού.
    • PULSES_PER_REV = (παλμοί ανά περιστροφή άξονα κινητήρα) x (λόγος μετάδοσης)
  • Ορίστε STOP_LENGTH εάν δείτε ότι το ρομπότ κάνει υπέρβαση μετά την κίνηση προς τα εμπρός.

    Το ρομπότ θα σταματήσει μόλις η εκτιμώμενη θέση είναι STOP_LENGTH μακριά από τον στόχο. Έτσι, το STOP_LENGTH, είναι η κατά προσέγγιση απόσταση που απαιτείται για να σταματήσει το ρομπότ

  • Παραμέτρους PID

    KP_FW: Αυτή είναι η αναλογική συνιστώσα της κίνησης προς τα εμπρός. Αυξήστε το μέχρι το ρομπότ να πάει ευθεία. Εάν δεν μπορείτε να το κάνετε να προχωρήσει κατευθείαν συντονίζοντας αυτό, τότε το υλικό είναι πιθανό να φταίει. (π.χ. κακή ευθυγράμμιση τροχών, κλπ)

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

Τοποθετήστε αυτό το βρόχο για να συντονίσετε το KP_FW:

mover.forward (99999);

Τοποθετήστε αυτό το βρόχο για εναλλαγή από 0 έως 90 για ρύθμιση του KP_TW:

mover.twist (90); // Περιστροφή 90 CW

καθυστέρηση (2000).

mover.twist (-90) // Twist 90 CCW

καθυστέρηση (2000).

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

Βήμα 6: Πώς λειτουργεί

Αν είστε περίεργοι για το πώς λειτουργεί, διαβάστε παρακάτω.

Η κίνηση προς τα εμπρός διατηρείται ευθεία χρησιμοποιώντας τον καθαρό αλγόριθμο καταδίωξης σε ευθεία γραμμή. Περισσότερα στο Pure Pursuit:

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

Συνιστάται: