Βραχίονας CTE#

Εισαγωγή#

Η κλάση arm παρέχει έλεγχο για τον βραχίονα 6 αξόνων που χρησιμοποιείται στο CTE Workcell. Στο VEX EXP C++, ο βραχίονας 6 αξόνων μπορεί να μετακινήσει έναν ακραίο τελεστή σε θέσεις στον τρισδιάστατο χώρο, να περιστρέψει τον ακραίο τελεστή, να ελέγξει εάν είναι δυνατές κινήσεις και να ελέγξει προσαρτημένα εργαλεία όπως το εργαλείο συλλογής μαγνητών ή το εργαλείο θήκης στυλό.

Τα παραδείγματα σε αυτήν τη σελίδα χρησιμοποιούν έναν διαμορφωμένο βραχίονα 6 αξόνων με όνομα Arm.

Κατασκευαστές#

arm#

Ο βραχίονας arm δημιουργεί ένα αντικείμενο βραχίονα 6 αξόνων.

Διαθέσιμη λειτουργία

arm(int32_t index);

Παράμετρος

Τύπος

Περιγραφή

index

int32_t

Η Έξυπνη Θύρα στην οποία είναι συνδεδεμένος ο Βραχίονας 6 Αξόνων, γράφεται ως PORTx, όπου x είναι ο αριθμός θύρας. Για παράδειγμα, PORT1.

Παράδειγμα

// Create a 6-Axis Arm named Arm on Port 1
arm Arm = arm(PORT1);

Καταστροφέας#

~arm#

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

Διαθέσιμη λειτουργία

~arm();

Συναρτήσεις Μελών#

Η κλάση arm περιλαμβάνει τις ακόλουθες συναρτήσεις-μέλη:

Ενέργειες — Μετακινήστε τον βραχίονα 6 αξόνων σε θέσεις ή προσανατολισμούς.

  • moveTo — Μετακινεί τον τελικό τελεστή σε μια καθορισμένη συντεταγμένη x, y και z.

  • moveInc — Μετακινεί τον τελικό τελεστή κατά μια καθορισμένη απόσταση από την τρέχουσα θέση του.

  • moveEndEffectorTo — Περιστρέφει τον τελικό τελεστή σε έναν καθορισμένο προσανατολισμό εκτροπής, κύλισης και κλίσης.

  • moveEndEffectorInc — Περιστρέφει τον ακραίο τελεστή κατά ένα καθορισμένο ποσό εκτροπής, κύλισης και βήματος.

Μεταλλαγμένοι — Διαμορφώστε τις ρυθμίσεις κίνησης, εργαλείων και ελέγχου.

  • setSpeed — Ορίζει την ταχύτητα κίνησης που χρησιμοποιείται από τον βραχίονα 6 αξόνων.

  • setEndEffectorType — Ορίζει τον τύπο του τελικού ενεργοποιητή που συνδέεται στον βραχίονα 6 αξόνων.

  • setEndEffectorMagnet — Ενεργοποιεί ή απενεργοποιεί το Εργαλείο Συλλογής Μαγνήτη.

  • setPenOffset — Ορίζει την μετατόπιση του άξονα z που χρησιμοποιείται με το Εργαλείο Θήκης Στυλό.

  • setControlStop — Ενεργοποιεί ή απενεργοποιεί τη διακοπή ελέγχου για τον βραχίονα 6 αξόνων.

  • setTimeout — Ορίζει το χρονικό όριο που χρησιμοποιείται από τις λειτουργίες κίνησης του βραχίονα 6 αξόνων.

Λήπτες — Επιστρέφουν τιμές κατάστασης κίνησης, θέσης, προσανατολισμού και σύνδεσης.

  • isDone — Επιστρέφει εάν ο βραχίονας 6 αξόνων έχει ολοκληρώσει την κίνηση.

  • isCrashed — Επιστρέφει εάν ο βραχίονας 6 αξόνων έχει καταρρεύσει κατά την κίνησή του.

  • getX — Επιστρέφει την τρέχουσα θέση x του τελικού τελεστή.

  • getY — Επιστρέφει την τρέχουσα θέση y του τελικού τελεστή.

  • getZ — Επιστρέφει την τρέχουσα θέση z του τελικού τελεστή.

  • getYaw — Επιστρέφει την τρέχουσα εκτροπή του τελικού τελεστή.

  • getRoll — Επιστρέφει την τρέχουσα ρίψη του τελικού τελεστή.

  • getPitch — Επιστρέφει το τρέχον βήμα του τελικού τελεστή.

  • canArmReachTo — Επιστρέφει εάν ο βραχίονας 6 αξόνων μπορεί να φτάσει σε μια καθορισμένη θέση.

  • canArmReachInc — Επιστρέφει εάν ο βραχίονας 6 αξόνων μπορεί να κινηθεί κατά μια καθορισμένη απόσταση.

  • canEndEffectorReachTo — Επιστρέφει εάν ο τελικός τελεστής μπορεί να φτάσει σε έναν καθορισμένο προσανατολισμό.

  • canEndEffectorReachInc — Επιστρέφει εάν ο τελικός τελεστής μπορεί να περιστραφεί κατά ένα καθορισμένο ποσό.

  • isConnected — Επιστρέφει εάν ο βραχίονας 6 αξόνων είναι συνδεδεμένος με τον εγκέφαλο EXP.

  • timestamp — Επιστρέφει τη χρονική σήμανση του τελευταίου πακέτου κατάστασης που ελήφθη από τον βραχίονα 6 αξόνων.

  • installed — Επιστρέφει εάν ο βραχίονας 6 αξόνων είναι συνδεδεμένος.

Επανακλήσεις — Εκτέλεση συναρτήσεων όταν συμβαίνουν συμβάντα όπλισης.

  • controlStopped — Καταχωρεί μια συνάρτηση που θα εκτελεστεί όταν είναι ενεργοποιημένη η διακοπή ελέγχου.

  • crashed — Καταγράφει μια συνάρτηση που θα εκτελεστεί όταν εντοπιστεί σφάλμα.

Ενέργειες#

moveTo#

moveTo μετακινεί τον βραχίονα 6 αξόνων σε μια καθορισμένη συντεταγμένη x, y και z.

Οι συντεταγμένες x, y και z περιγράφουν τη θέση του τελικού τελεστή στον τρισδιάστατο χώρο. Χρησιμοποιήστε canArmReachTo πριν από αυτήν τη συνάρτηση εάν η θέση-στόχος μπορεί να βρίσκεται εκτός του προσβάσιμου χώρου εργασίας του βραχίονα 6 αξόνων.

Διαθέσιμη λειτουργία

bool moveTo(
  double x,
  double y,
  double z,
  bool   waitForCompletion = true
);

Παράμετρος

Τύπος

Περιγραφή

x

double

Η συντεταγμένη x της θέσης-στόχου σε χιλιοστά.

y

double

Η συντεταγμένη y της θέσης-στόχου σε χιλιοστά.

z

double

Η συντεταγμένη z της θέσης-στόχου σε χιλιοστά.

waitForCompletion

bool

Προαιρετικό. true (προεπιλογή) περιμένει μέχρι να ολοκληρωθεί η κίνηση πριν συνεχίσει. false ξεκινά την κίνηση και συνεχίζει αμέσως στην επόμενη γραμμή κώδικα.

Επιστρεφόμενη τιμή

Επιστρέφει μια λογική τιμή.

  • true — Ο βραχίονας 6 αξόνων έφτασε στη θέση-στόχο.

  • false — Ο βραχίονας 6 αξόνων δεν έφτασε στη θέση-στόχο ή η τιμή waitForCompletion ορίστηκε σε false.

Παραδείγματα

// Move the 6-Axis Arm to (200, 0, 100)
Arm.moveTo(200, 0, 100);

// Start moving, then print the y-position while the arm moves
Arm.moveTo(-100, 200, 100, false);

while (!Arm.isDone()) {
  Brain.Screen.print(Arm.getY());
  Brain.Screen.newLine();
  wait(0.25, seconds);
}

moveInc#

moveInc μετακινεί τον βραχίονα 6 αξόνων κατά μια καθορισμένη απόσταση από την τρέχουσα θέση του κατά μήκος των αξόνων x, y και z.

Χρησιμοποιήστε αυτήν τη συνάρτηση για να μετακινηθείτε σε σχέση με το σημείο που βρίσκεται τώρα ο τελικός τελεστής. Χρησιμοποιήστε canArmReachInc πριν από αυτήν τη συνάρτηση εάν η κίνηση μπορεί να τοποθετήσει τον βραχίονα 6 αξόνων εκτός του προσβάσιμου χώρου εργασίας του.

Διαθέσιμη λειτουργία

bool moveInc(
  double x,
  double y,
  double z,
  bool   waitForCompletion = true
);

Παράμετρος

Τύπος

Περιγραφή

x

double

Η απόσταση που απαιτείται για την κίνηση κατά μήκος του άξονα x σε χιλιοστά.

y

double

Η απόσταση που απαιτείται για να κινηθεί κανείς κατά μήκος του άξονα y σε χιλιοστά.

z

double

Η απόσταση που απαιτείται για την κίνηση κατά μήκος του άξονα z σε χιλιοστά.

waitForCompletion

bool

Προαιρετικό. true (προεπιλογή) περιμένει μέχρι να ολοκληρωθεί η κίνηση πριν συνεχίσει. false ξεκινά την κίνηση και συνεχίζει αμέσως στην επόμενη γραμμή κώδικα.

Επιστρεφόμενη τιμή

Επιστρέφει μια λογική τιμή.

  • true — Ο βραχίονας 6 αξόνων έφτασε στην ζητούμενη θέση.

  • false — Ο βραχίονας 6 αξόνων δεν έφτασε στην ζητούμενη θέση ή η τιμή waitForCompletion ορίστηκε σε false.

Παράδειγμα

// Move the 6-Axis Arm 100 millimeters along the y-axis
Arm.moveInc(0, 100, 0);

moveEndEffectorTo#

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

Ο προσανατολισμός περιγράφει τον τρόπο περιστροφής του τελικού τελεστή. yaw περιστρέφεται γύρω από τον άξονα z, roll περιστρέφεται γύρω από τον άξονα x και pitch περιστρέφεται γύρω από τον άξονα y.

Διαθέσιμη λειτουργία

bool moveEndEffectorTo(
  double yaw,
  double roll = 0,
  double pitch = 0,
  bool   waitForCompletion = true
);

Παράμετρος

Τύπος

Περιγραφή

yaw

double

Η γωνία εκτροπής του στόχου σε μοίρες.

roll

double

Προαιρετικό. Η γωνία κύλισης-στόχος σε μοίρες. Η προεπιλογή είναι 0.

pitch

double

Προαιρετικό. Η γωνία βήματος στόχου σε μοίρες. Η προεπιλογή είναι 0.

waitForCompletion

bool

Προαιρετικό. true (προεπιλογή) περιμένει μέχρι να ολοκληρωθεί η κίνηση πριν συνεχίσει. false ξεκινά την κίνηση και συνεχίζει αμέσως στην επόμενη γραμμή κώδικα.

Επιστρεφόμενη τιμή

Επιστρέφει μια λογική τιμή.

  • true — Ο τελικός τελεστής έφτασε στον προσανατολισμό-στόχο.

  • false — Ο τελικός τελεστής δεν έφτασε στον προσανατολισμό-στόχο ή η τιμή waitForCompletion ορίστηκε σε false.

Παράδειγμα

// Rotate the end effector to 90 degrees of roll
Arm.moveEndEffectorTo(0, 90, 0);

moveEndEffectorInc#

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

Χρησιμοποιήστε αυτήν τη συνάρτηση για περιστροφή σε σχέση με την τρέχουσα εκτροπή, κύλιση ή κλίση του τελικού ενεργοποιητή.

Διαθέσιμη λειτουργία

bool moveEndEffectorInc(
  double yaw,
  double roll = 0,
  double pitch = 0,
  bool   waitForCompletion = true
);

Παράμετρος

Τύπος

Περιγραφή

yaw

double

Η αλλαγή στην εκτροπή, σε μοίρες.

roll

double

Προαιρετικό. Η αλλαγή στο ρολό, σε μοίρες. Η προεπιλογή είναι 0.

pitch

double

Προαιρετικό. Η αλλαγή στο ύψος του τόνου, σε μοίρες. Η προεπιλογή είναι 0.

waitForCompletion

bool

Προαιρετικό. true (προεπιλογή) περιμένει μέχρι να ολοκληρωθεί η κίνηση πριν συνεχίσει. false ξεκινά την κίνηση και συνεχίζει αμέσως στην επόμενη γραμμή κώδικα.

Επιστρεφόμενη τιμή

Επιστρέφει μια λογική τιμή.

  • true — Ο τελικός τελεστής έφτασε στον ζητούμενο προσανατολισμό.

  • false — Ο τελικός τελεστής δεν έφτασε στον ζητούμενο προσανατολισμό ή η τιμή waitForCompletion ορίστηκε σε false.

Παράδειγμα

// Rotate the end effector -50 degrees in pitch
Arm.moveEndEffectorInc(0, 0, -50);

Μεταλλάκτες#

setSpeed#

setSpeed ορίζει την ταχύτητα κίνησης που χρησιμοποιείται από τον βραχίονα 6 αξόνων.

Διαθέσιμη λειτουργία

void setSpeed(uint32_t speed);

Παράμετρος

Τύπος

Περιγραφή

speed

uint32_t

Η ταχύτητα με την οποία θα πρέπει να κινείται ο βραχίονας 6 αξόνων, σε χιλιοστά ανά δευτερόλεπτο.

Επιστρεφόμενη τιμή

Αυτή η συνάρτηση δεν επιστρέφει τιμή.

Παράδειγμα

// Set the 6-Axis Arm movement speed
Arm.setSpeed(100);

setEndEffectorType#

setEndEffectorType ορίζει τον τύπο του τελικού ενεργοποιητή που είναι προσαρτημένος στον βραχίονα 6 αξόνων.

Όταν αλλάξει ο τύπος του τελικού τελεστή, ο βραχίονας 6 αξόνων προσαρμόζει αυτόματα την μετατόπιση z του ώστε να ταιριάζει με το επιλεγμένο εργαλείο.

Διαθέσιμη λειτουργία

bool setEndEffectorType(
  endEffectorType type,
  bool            waitForCompletion = true
);

Παράμετρος

Τύπος

Περιγραφή

type

endEffectorType

Το εργαλείο που συνδέεται στον βραχίονα 6 αξόνων: magnet (εργαλείο συλλογής μαγνήτη) ή pen (εργαλείο θήκης στυλό).

waitForCompletion

bool

Προαιρετικό. true (προεπιλογή) περιμένει μέχρι να ολοκληρωθεί η αλλαγή πριν συνεχίσει. false ξεκινά την αλλαγή και συνεχίζει αμέσως στην επόμενη γραμμή κώδικα.

Επιστρεφόμενη τιμή

Επιστρέφει μια λογική τιμή.

  • true — Ο ζητούμενος τύπος ορίστηκε.

  • false — Ο ζητούμενος τύπος δεν ορίστηκε ή waitForCompletion ορίστηκε σε false.

Παράδειγμα

// Set the end effector type to the Magnet Pickup Tool
Arm.setEndEffectorType(magnet);

setEndEffectorMagnet#

setEndEffectorMagnet ενεργοποιεί ή απενεργοποιεί το Εργαλείο Συλλογής Μαγνήτη.

Διαθέσιμη λειτουργία

void setEndEffectorMagnet(bool enabled);

Παράμετρος

Τύπος

Περιγραφή

enabled

bool

true επιτρέπει στον μαγνήτη να σηκώνει και να κρατάει αντικείμενα. false απενεργοποιεί τον μαγνήτη και ρίχνει οποιοδήποτε αντικείμενο κρατάει.

Επιστρεφόμενη τιμή

Αυτή η συνάρτηση δεν επιστρέφει τιμή.

Παράδειγμα

// Pick up objects and then drop them
Arm.setEndEffectorType(magnet);
Arm.setEndEffectorMagnet(true);
wait(2, seconds);
Arm.setEndEffectorMagnet(false);

setPenOffset#

setPenOffset ορίζει την μετατόπιση του άξονα z που χρησιμοποιείται όταν το εργαλείο θήκης πένας είναι συνδεδεμένο στον βραχίονα 6 αξόνων.

Ορίστε τον τύπο τελικού τελεστή σε pen πριν χρησιμοποιήσετε αυτήν τη λειτουργία. Εάν δεν είναι επιλεγμένο το Εργαλείο Θήκης Στυλό, αυτή η λειτουργία δεν έχει κανένα αποτέλεσμα.

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

Διαθέσιμη λειτουργία

void setPenOffset(double zOffset);

Παράμετρος

Τύπος

Περιγραφή

zOffset

double

Η τιμή μετατόπισης της πένας σε χιλιοστά.

Επιστρεφόμενη τιμή

Αυτή η συνάρτηση δεν επιστρέφει τιμή.

Παράδειγμα

// Set the end effector type to the Pen Holder Tool and set the pen offset
Arm.setEndEffectorType(pen);
Arm.setPenOffset(25);

setControlStop#

setControlStop ενεργοποιεί ή απενεργοποιεί τη διακοπή ελέγχου για τον βραχίονα 6 αξόνων.

Όταν ενεργοποιηθεί η διακοπή ελέγχου, ο βραχίονας 6 αξόνων σταματά αμέσως την κίνηση και αποτρέπει περαιτέρω γραμμικές ή αρθρικές κινήσεις.

Διαθέσιμη λειτουργία

void setControlStop(bool state = true);

Παράμετρος

Τύπος

Περιγραφή

state

bool

Προαιρετικό. true (προεπιλογή) ενεργοποιεί τη διακοπή ελέγχου και αποτρέπει περαιτέρω γραμμικές κινήσεις ή κινήσεις των αρθρώσεων. false απενεργοποιεί τη διακοπή ελέγχου.

Επιστρεφόμενη τιμή

Αυτή η συνάρτηση δεν επιστρέφει τιμή.

Παράδειγμα

// Stop the 6-Axis Arm and prevent further movement
Arm.setControlStop();

setTimeout#

setTimeout ορίζει την τιμή χρονικού ορίου που χρησιμοποιείται κατά την κίνηση του βραχίονα 6 αξόνων.

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

Διαθέσιμη λειτουργία

void setTimeout(
  int32_t   timeout,
  timeUnits units
);

Παράμετρος

Τύπος

Περιγραφή

timeout

int32_t

Η νέα τιμή χρονικού ορίου.

units

timeUnits

Η μονάδα χρόνου: sec (δευτερόλεπτα) ή msec (χιλιοστά του δευτερολέπτου).

Επιστρεφόμενη τιμή

Αυτή η συνάρτηση δεν επιστρέφει τιμή.

Παράδειγμα

// Set the 6-Axis Arm timeout to 2 seconds
Arm.setTimeout(2, sec);

Αποκτητές#

isDone#

isDone επιστρέφει εάν ο βραχίονας 6 αξόνων έχει ολοκληρώσει την κίνηση.

Αυτή η συνάρτηση είναι χρήσιμη μετά την κλήση μιας συνάρτησης κίνησης με την τιμή waitForCompletion να έχει οριστεί σε false.

Διαθέσιμη λειτουργία

bool isDone();

Παράμετροι

Αυτή η συνάρτηση δεν έχει παραμέτρους.

Επιστρεφόμενη τιμή

Επιστρέφει μια λογική τιμή.

  • true — Ο βραχίονας 6 αξόνων έχει ολοκληρώσει την κίνηση.

  • false — Ο βραχίονας 6 αξόνων εξακολουθεί να κινείται.

Παράδειγμα

// Display the 6-Axis Arm's y-position while it moves
Arm.moveTo(-100, 200, 100, false);

while (!Arm.isDone()) {
  Brain.Screen.print(Arm.getY());
  Brain.Screen.newLine();
  wait(0.25, seconds);
}

isCrashed#

isCrashed επιστρέφει εάν ο βραχίονας 6 αξόνων έχει καταρρεύσει κατά την κίνηση.

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

Διαθέσιμη λειτουργία

bool isCrashed();

Παράμετροι

Αυτή η συνάρτηση δεν έχει παραμέτρους.

Επιστρεφόμενη τιμή

Επιστρέφει μια λογική τιμή.

  • true — Ο βραχίονας 6 αξόνων έχει καταρρεύσει.

  • false — Ο βραχίονας 6 αξόνων δεν έχει καταρρεύσει.

Παράδειγμα

// Quickly move to a new location
Arm.setSpeed(100);
Arm.moveTo(-40, 250, 40, false);

// While moving, check for a crash
while (true) {
  if (Arm.isCrashed()) {
    // Indicate a crash with the Signal Tower and Brain screen
    Brain.Screen.print("Crash Detected");
    SignalTower6.setColor(signaltower::green, signaltower::off);
    SignalTower6.setColor(signaltower::red, signaltower::on);
    break;
  }

  wait(5, msec);
}

getX#

Η συνάρτηση getX επιστρέφει την τρέχουσα θέση x του τελικού τελεστή σε χιλιοστά.

Χρησιμοποιήστε αυτήν τη συνάρτηση για να διαβάσετε πού βρίσκεται τη δεδομένη στιγμή ο τελικός τελεστής κατά μήκος του άξονα x.

Διαθέσιμη λειτουργία

float getX();

Παράμετροι

Αυτή η συνάρτηση δεν έχει παραμέτρους.

Επιστρεφόμενη τιμή

Επιστρέφει μια κινητή τιμή float αντιπροσωπεύει τη θέση x του τελικού τελεστή σε χιλιοστά.

Παράδειγμα

// Print the current x position of the 6-Axis Arm
Brain.Screen.print(Arm.getX());

getY#

Η συνάρτηση getY επιστρέφει την τρέχουσα θέση y του τελικού τελεστή σε χιλιοστά.

Χρησιμοποιήστε αυτήν τη συνάρτηση για να διαβάσετε πού βρίσκεται ο τελικός τελεστής κατά μήκος του άξονα y.

Διαθέσιμη λειτουργία

float getY();

Παράμετροι

Αυτή η συνάρτηση δεν έχει παραμέτρους.

Επιστρεφόμενη τιμή

Επιστρέφει μια κινητή τιμή float που αντιπροσωπεύει τη θέση y του τελικού τελεστή σε χιλιοστά.

Παράδειγμα

// Print the current y position of the 6-Axis Arm
Brain.Screen.print(Arm.getY());

getZ#

Η συνάρτηση getZ επιστρέφει την τρέχουσα θέση z του τελικού τελεστή σε χιλιοστά.

Χρησιμοποιήστε αυτήν τη συνάρτηση για να διαβάσετε πού βρίσκεται τη δεδομένη στιγμή ο τελικός τελεστής κατά μήκος του άξονα z.

Διαθέσιμη λειτουργία

float getZ();

Παράμετροι

Αυτή η συνάρτηση δεν έχει παραμέτρους.

Επιστρεφόμενη τιμή

Επιστρέφει μια κινητή τιμή float αντιπροσωπεύει τη θέση z του τελικού τελεστή σε χιλιοστά.

Παράδειγμα

// Print the current z position of the 6-Axis Arm
Brain.Screen.print(Arm.getZ());

getYaw#

Η συνάρτηση getYaw επιστρέφει την τρέχουσα εκτροπή του τελικού τελεστή σε μοίρες.

Διαθέσιμη λειτουργία

float getYaw();

Παράμετροι

Αυτή η συνάρτηση δεν έχει παραμέτρους.

Επιστρεφόμενη τιμή

Επιστρέφει μια κινητή τιμή float αντιπροσωπεύει την τρέχουσα εκτροπή του τελικού τελεστή σε μοίρες.

Παράδειγμα

// Print the current yaw of the end effector
Brain.Screen.print(Arm.getYaw());

getRoll#

Η συνάρτηση getRoll επιστρέφει την τρέχουσα ζαριά του τελικού τελεστή σε μοίρες.

Διαθέσιμη λειτουργία

float getRoll();

Παράμετροι

Αυτή η συνάρτηση δεν έχει παραμέτρους.

Επιστρεφόμενη τιμή

Επιστρέφει μια κινητή τιμή float αντιπροσωπεύει την τρέχουσα ρίψη του τελικού τελεστή σε μοίρες.

Παράδειγμα

// Print the current roll of the end effector
Brain.Screen.print(Arm.getRoll());

getPitch#

Η συνάρτηση getPitch επιστρέφει το τρέχον βήμα του τελικού τελεστή σε μοίρες.

Διαθέσιμη λειτουργία

float getPitch();

Παράμετροι

Αυτή η συνάρτηση δεν έχει παραμέτρους.

Επιστρεφόμενη τιμή

Επιστρέφει μια κινητή τιμή float αντιπροσωπεύει το τρέχον βήμα του τελικού τελεστή σε μοίρες.

Παράδειγμα

// Print the current pitch of the end effector
Brain.Screen.print(Arm.getPitch());

canArmReachTo#

canArmReachTo επιστρέφει εάν ο βραχίονας 6 αξόνων μπορεί να μετακινήσει τον τελικό τελεστή σε μια καθορισμένη συντεταγμένη x, y και z.

Χρησιμοποιήστε αυτήν τη συνάρτηση για να ελέγξετε μια θέση-στόχο πριν χρησιμοποιήσετε τη συνάρτηση moveTo.

Διαθέσιμη λειτουργία

bool canArmReachTo(
  double x,
  double y,
  double z
);

Παράμετρος

Τύπος

Περιγραφή

x

double

Η συντεταγμένη x της θέσης-στόχου σε χιλιοστά.

y

double

Η συντεταγμένη y της θέσης-στόχου σε χιλιοστά.

z

double

Η συντεταγμένη z της θέσης-στόχου σε χιλιοστά.

Επιστρεφόμενη τιμή

Επιστρέφει μια λογική τιμή.

  • true — Ο βραχίονας 6 αξόνων μπορεί να φτάσει στην ζητούμενη θέση.

  • false — Ο βραχίονας 6 αξόνων δεν μπορεί να φτάσει στην ζητούμενη θέση.

Παράδειγμα

// Move the 6-Axis Arm to (100, -20, 50) if it can reach
if (Arm.canArmReachTo(100, -20, 50)) {
  Arm.moveTo(100, -20, 50);
}

canArmReachInc#

canArmReachInc επιστρέφει εάν ο βραχίονας 6 αξόνων μπορεί να μετακινήσει τον τελικό τελεστή κατά μια καθορισμένη απόσταση x, y και z από την τρέχουσα θέση του.

Χρησιμοποιήστε αυτήν τη συνάρτηση για να ελέγξετε μια σχετική κίνηση πριν χρησιμοποιήσετε τη συνάρτηση moveInc.

Διαθέσιμη λειτουργία

bool canArmReachInc(
  double x,
  double y,
  double z
);

Παράμετρος

Τύπος

Περιγραφή

x

double

Η απόσταση που απαιτείται για την κίνηση κατά μήκος του άξονα x σε χιλιοστά.

y

double

Η απόσταση που απαιτείται για να κινηθεί κανείς κατά μήκος του άξονα y σε χιλιοστά.

z

double

Η απόσταση που απαιτείται για την κίνηση κατά μήκος του άξονα z σε χιλιοστά.

Επιστρεφόμενη τιμή

Επιστρέφει μια λογική τιμή.

  • true — Ο βραχίονας 6 αξόνων μπορεί να πραγματοποιήσει την ζητούμενη κίνηση.

  • false — Ο βραχίονας 6 αξόνων δεν μπορεί να πραγματοποιήσει την ζητούμενη κίνηση.

Παράδειγμα

// Increment the 6-Axis Arm 100 mm along the x-axis if possible
if (Arm.canArmReachInc(100, 0, 0)) {
  Arm.moveInc(100, 0, 0);
}

canEndEffectorReachTo#

canEndEffectorReachTo επιστρέφει εάν ο τελικός τελεστής μπορεί να περιστραφεί σε έναν καθορισμένο προσανατολισμό εκτροπής, κύλισης και κλίσης.

Χρησιμοποιήστε αυτήν τη συνάρτηση για να ελέγξετε τον προσανατολισμό ενός στόχου πριν χρησιμοποιήσετε τη συνάρτηση moveEndEffectorTo.

Διαθέσιμη λειτουργία

bool canEndEffectorReachTo(
  double yaw,
  double roll = 0,
  double pitch = 0
);

Παράμετρος

Τύπος

Περιγραφή

yaw

double

Η γωνία εκτροπής του στόχου σε μοίρες.

roll

double

Προαιρετικό. Η γωνία κύλισης-στόχος σε μοίρες. Η προεπιλογή είναι 0.

pitch

double

Προαιρετικό. Η γωνία βήματος στόχου σε μοίρες. Η προεπιλογή είναι 0.

Επιστρεφόμενη τιμή

Επιστρέφει μια λογική τιμή.

  • true — Ο τελικός τελεστής μπορεί να φτάσει στον ζητούμενο προσανατολισμό.

  • false — Ο τελικός τελεστής δεν μπορεί να φτάσει στον ζητούμενο προσανατολισμό.

Παράδειγμα

// Rotate the end effector to 90 degrees of roll if possible
if (Arm.canEndEffectorReachTo(0, 90, 0)) {
  Arm.moveEndEffectorTo(0, 90, 0);
}

canEndEffectorReachInc#

canEndEffectorReachInc επιστρέφει εάν ο τελικός τελεστής μπορεί να περιστραφεί κατά ένα καθορισμένο ποσό εκτροπής, κύλισης και κλίσης από τον τρέχοντα προσανατολισμό του.

Χρησιμοποιήστε αυτήν τη συνάρτηση για να ελέγξετε μια σχετική κίνηση προσανατολισμού πριν χρησιμοποιήσετε την moveEndEffectorInc.

Διαθέσιμη λειτουργία

bool canEndEffectorReachInc(
  double yaw,
  double roll = 0,
  double pitch = 0
);

Παράμετρος

Τύπος

Περιγραφή

yaw

double

Η αλλαγή στην εκτροπή, σε μοίρες.

roll

double

Προαιρετικό. Η αλλαγή στο ρολό, σε μοίρες. Η προεπιλογή είναι 0.

pitch

double

Προαιρετικό. Η αλλαγή στο ύψος του τόνου, σε μοίρες. Η προεπιλογή είναι 0.

Επιστρεφόμενη τιμή

Επιστρέφει μια λογική τιμή.

  • true — Ο τελικός τελεστής μπορεί να πραγματοποιήσει την ζητούμενη περιστροφή.

  • false — Ο τελικός τελεστής δεν μπορεί να πραγματοποιήσει την ζητούμενη περιστροφή.

Παράδειγμα

// Increment the end effector by 10 degrees of pitch if possible
if (Arm.canEndEffectorReachInc(0, 0, 10)) {
  Arm.moveEndEffectorInc(0, 0, 10);
}

isConnected#

isConnected επιστρέφει εάν ο βραχίονας 6 αξόνων είναι συνδεδεμένος στον εγκέφαλο EXP.

Αυτή είναι μια συνάρτηση συμβατότητας που επιστρέφει την ίδια τιμή με την installed.

Διαθέσιμη λειτουργία

bool isConnected();

Παράμετροι

Αυτή η συνάρτηση δεν έχει παραμέτρους.

Επιστρεφόμενη τιμή

Επιστρέφει μια λογική τιμή.

  • true — Ο βραχίονας 6 αξόνων είναι συνδεδεμένος με τον εγκέφαλο EXP.

  • false — Ο βραχίονας 6 αξόνων δεν είναι συνδεδεμένος με τον εγκέφαλο EXP.

Παράδειγμα

// Print whether the 6-Axis Arm is connected
Brain.Screen.print(Arm.isConnected());

timestamp#

timestamp επιστρέφει τη timestamp του τελευταίου πακέτου κατάστασης που ελήφθη από τον βραχίονα 6 αξόνων.

Διαθέσιμη λειτουργία

uint32_t timestamp();

Παράμετροι

Αυτή η συνάρτηση δεν έχει παραμέτρους.

Επιστρεφόμενη τιμή

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

installed#

Η τιμή installed επιστρέφει εάν ο βραχίονας 6 αξόνων είναι συνδεδεμένος.

Διαθέσιμη λειτουργία

bool installed();

Παράμετροι

Αυτή η συνάρτηση δεν έχει παραμέτρους.

Επιστρεφόμενη τιμή

Επιστρέφει μια λογική τιμή.

  • true — Ο βραχίονας 6 αξόνων είναι συνδεδεμένος.

  • false — Ο βραχίονας 6 αξόνων δεν είναι συνδεδεμένος.

Επανακλήσεις#

controlStopped#

controlStopped καταγράφει μια συνάρτηση που εκτελείται όταν είναι ενεργοποιημένο το control stop.

Διαθέσιμη λειτουργία

void controlStopped(void (* callback)(void));

Παράμετρος

Τύπος

Περιγραφή

callback

void (*)(void)

Μια λειτουργία που εκτελείται όταν είναι ενεργοποιημένη η διακοπή ελέγχου.

Επιστρεφόμενη τιμή

Αυτή η συνάρτηση δεν επιστρέφει τιμή.

Παράδειγμα

// Called when the 6-Axis Arm is control stopped
void onControlStopped() {
  Brain.Screen.print("Arm control stopped");
}

int main() {
  vexcodeInit();

  Arm.controlStopped(onControlStopped);
}

crashed#

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

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

Διαθέσιμη λειτουργία

void crashed(void (* callback)(void));

Παράμετρος

Τύπος

Περιγραφή

callback

void (*)(void)

Μια λειτουργία που εκτελείται όταν ο βραχίονας 6 αξόνων έχει κολλήσει κατά την κίνηση.

Επιστρεφόμενη τιμή

Αυτή η συνάρτηση δεν επιστρέφει τιμή.

Παράδειγμα

// Called when the 6-Axis Arm crashes while moving
void onArmCrashed() {
  Brain.Screen.print("Crash detected");
  SignalTower6.setColor(signaltower::green, signaltower::off);
  SignalTower6.setColor(signaltower::red, signaltower::on);
}

int main() {
  vexcodeInit();

  Arm.crashed(onArmCrashed);
}