CTE roka#
Ievads#
arm klase nodrošina CTE darba elementā izmantotās 6 asu rokas vadību. VEX EXP C++ valodā 6 asu roka var pārvietot gala efektoru uz pozīcijām trīsdimensiju telpā, pagriezt gala efektoru, pārbaudīt, vai kustības ir iespējamas, un vadīt pievienotos instrumentus, piemēram, magnēta pacelšanas rīku vai pildspalvas turētāja rīku.
Šajā lapā sniegtajos piemēros tiek izmantota konfigurēta 6 asu roka ar nosaukumu Arm.
Konstruktori#
arm#
arm izveido 6 asu rokas objektu.
Pieejamās funkcijas
arm(int32_t index);
Parametrs |
Tips |
Apraksts |
|---|---|---|
|
|
Viedports, kuram ir pievienota 6 asu roka, tiek rakstīts kā |
Piemērs
// Create a 6-Axis Arm named Arm on Port 1
arm Arm = arm(PORT1);
Iznīcinātājs#
~arm#
~arm iznīcina arm objektu un atbrīvo ar to saistītos resursus.
Pieejamās funkcijas
~arm();
Dalībnieku funkcijas#
arm klase ietver šādas dalībfunkcijas:
Darbības — Pārvietojiet 6 asu sviru uz pozīcijām vai orientācijām.
moveTo— Pārvieto gala efektoru uz norādīto x, y un z koordinātu.moveInc— Pārvieto gala efektoru par noteiktu attālumu no tā pašreizējās pozīcijas.moveEndEffectorTo— Pagriež gala efektoru norādītajā pagrieziena, rites un piķa orientācijā.moveEndEffectorInc— Pagriež gala efektoru par norādīto pagrieziena, rites un piķa vērtību.
Mutatori — konfigurējiet kustības, rīkus un vadības iestatījumus.
setSpeed— Iestata 6 asu rokas kustības ātrumu.setEndEffectorType— Iestata 6 asu svirai pievienotā gala efektora veidu.setEndEffectorMagnet— Iespējo vai atspējo magnēta uzņemšanas rīku.setPenOffset— Iestata z ass nobīdi, kas tiek izmantota ar pildspalvas turētāja rīku.setControlStop— Iespējo vai atspējo 6 asu sviras vadības apturēšanu.setTimeout— Iestata taimautu, ko izmanto 6 asu rokas kustības funkcijas.
Ieguvēji — atgriež kustības statusu, pozīciju, orientāciju un savienojuma vērtības.
isDone— Atgriež, vai 6 asu roka ir pabeigusi kustību.isCrashed— Atgriež, vai 6 asu roka ir avarējusi kustības laikā.getX— Atgriež gala efektora pašreizējo x pozīciju.getY— Atgriež gala efektora pašreizējo y pozīciju.getZ— Atgriež gala efektora pašreizējo z pozīciju.getYaw— Atgriež gala efektora pašreizējo novirzi.getRoll— Atgriež gala efektora pašreizējo apgriezienu.getPitch— Atgriež gala efektora pašreizējo skaņas augstumu.canArmReachTo— Atgriež, vai 6 asu roka var sasniegt norādīto pozīciju.canArmReachInc— Atgriež, vai 6 asu roka var pārvietoties noteiktā attālumā.canEndEffectorReachTo— Atgriež, vai gala efektors var sasniegt norādīto orientāciju.canEndEffectorReachInc— Atgriež, vai gala efektors var pagriezties par noteiktu daudzumu.isConnected— Atgriež, vai 6 asu roka ir savienota ar EXP Brain.timestamp— Atgriež pēdējā no 6 asu rokas saņemtā statusa paketes laika zīmogu.installed— Atgriež, vai ir pievienota 6 asu roka.
Atzvanīšanas funkcijas — palaist funkcijas, kad notiek aktivizēšanas notikumi.
controlStopped— Reģistrē funkciju, kas tiks palaista, kad ir iespējota vadības apturēšana.crashed— Reģistrē funkciju, kas jāizpilda, kad tiek konstatēta avārija.
Darbības#
moveTo#
moveTo pārvieto 6 asu sviru uz norādīto x, y un z koordinātu.
X, y un z koordinātas apraksta gala efektora pozīciju trīsdimensiju telpā. Pirms šīs funkcijas izmantojiet canArmReachTo, ja mērķa pozīcija var atrasties ārpus 6 asu rokas sasniedzamās darba zonas.
Pieejamās funkcijas
bool moveTo(
double x,
double y,
double z,
bool waitForCompletion = true
);
Parametrs |
Tips |
Apraksts |
|---|---|---|
|
|
Mērķa pozīcijas x koordināta milimetros. |
|
|
Mērķa pozīcijas y koordināta milimetros. |
|
|
Mērķa pozīcijas z koordināta milimetros. |
|
|
Neobligāti. |
Atgriešanas vērtība
Atgriež Būla vērtību.
true— 6 asu roka ir sasniegusi mērķa pozīciju.false— 6 asu roka nesasniedza mērķa pozīciju vaiwaitForCompletionbija iestatīts uzfalse.
Piemēri
// 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 pārvieto 6 asu roku par noteiktu attālumu no tās pašreizējās pozīcijas pa x, y un z asīm.
Izmantojiet šo funkciju, lai pārvietotos attiecībā pret gala efektora pašreizējo atrašanās vietu. Pirms šīs funkcijas izmantojiet canArmReachInc, ja kustība var novietot 6 asu roku ārpus tās sasniedzamās darbvietas.
Pieejamās funkcijas
bool moveInc(
double x,
double y,
double z,
bool waitForCompletion = true
);
Parametrs |
Tips |
Apraksts |
|---|---|---|
|
|
Attālums, kas jāpārvietojas pa x asi milimetros. |
|
|
Attālums milimetros, kas jāpārvietojas pa y asi. |
|
|
Attālums, kas jāpārvietojas pa z asi milimetros. |
|
|
Neobligāti. |
Atgriešanas vērtība
Atgriež Būla vērtību.
true— 6 asu roka ir sasniegusi pieprasīto pozīciju.false— 6 asu roka nesasniedza pieprasīto pozīciju vaiwaitForCompletionbija iestatīts uzfalse.
Piemērs
// Move the 6-Axis Arm 100 millimeters along the y-axis
Arm.moveInc(0, 100, 0);
moveEndEffectorTo#
moveEndEffectorTo pagriež 6 asu rokas gala efektoru norādītajā pagrieziena, rites un piķa orientācijā.
Orientācija apraksta, kā gala efektors tiek pagriezts. yaw rotē ap z asi, roll rotē ap x asi un pitch rotē ap y asi.
Pieejamās funkcijas
bool moveEndEffectorTo(
double yaw,
double roll = 0,
double pitch = 0,
bool waitForCompletion = true
);
Parametrs |
Tips |
Apraksts |
|---|---|---|
|
|
Mērķa novirzes leņķis grādos. |
|
|
Neobligāti. Mērķa rites leņķis grādos. Noklusējuma vērtība ir |
|
|
Neobligāti. Mērķa slīpuma leņķis grādos. Noklusējuma vērtība ir |
|
|
Neobligāti. |
Atgriešanas vērtība
Atgriež Būla vērtību.
true— Gala efektors ir sasniedzis mērķa orientāciju.false— Gala efektors nesasniedza mērķa orientāciju vaiwaitForCompletionbija iestatīts uzfalse.
Piemērs
// Rotate the end effector to 90 degrees of roll
Arm.moveEndEffectorTo(0, 90, 0);
moveEndEffectorInc#
moveEndEffectorInc pagriež 6 asu rokas gala efektoru par noteiktu pagrieziena, rites un soļa lielumu no tā pašreizējās orientācijas.
Izmantojiet šo funkciju, lai pagrieztu attiecībā pret gala efektora pašreizējo novirzi, svēršanu vai slīpumu.
Pieejamās funkcijas
bool moveEndEffectorInc(
double yaw,
double roll = 0,
double pitch = 0,
bool waitForCompletion = true
);
Parametrs |
Tips |
Apraksts |
|---|---|---|
|
|
Novirzes izmaiņas grādos. |
|
|
Neobligāti. Slīpuma izmaiņas grādos. Noklusējuma vērtība ir |
|
|
Neobligāti. Skaņas augstuma izmaiņas grādos. Noklusējuma vērtība ir |
|
|
Neobligāti. |
Atgriešanas vērtība
Atgriež Būla vērtību.
true— Gala efektors ir sasniedzis pieprasīto orientāciju.false— Gala efektors nesasniedza pieprasīto orientāciju vaiwaitForCompletiontika iestatīts uzfalse.
Piemērs
// Rotate the end effector -50 degrees in pitch
Arm.moveEndEffectorInc(0, 0, -50);
Mutatori#
setSpeed#
setSpeed iestata 6 asu rokas kustības ātrumu.
Pieejamās funkcijas
void setSpeed(uint32_t speed);
Parametrs |
Tips |
Apraksts |
|---|---|---|
|
|
Ātrums, ar kādu 6 asu rokai jāpārvietojas, milimetros sekundē. |
Atgriešanas vērtība
Šī funkcija neatgriež vērtību.
Piemērs
// Set the 6-Axis Arm movement speed
Arm.setSpeed(100);
setEndEffectorType#
setEndEffectorType iestata 6 asu svirai piestiprinātā gala efektora veidu.
Kad tiek mainīts gala efektora tips, 6 asu svira automātiski pielāgo savu z-nobīdi, lai tā atbilstu atlasītajam instrumentam.
Pieejamās funkcijas
bool setEndEffectorType(
endEffectorType type,
bool waitForCompletion = true
);
Parametrs |
Tips |
Apraksts |
|---|---|---|
|
|
Instruments, kas piestiprināts pie 6 asu sviras: |
|
|
Neobligāti. |
Atgriešanas vērtība
Atgriež Būla vērtību.
true— Pieprasītais tips ir iestatīts.false— Pieprasītais tips netika iestatīts vaiwaitForCompletiontika iestatīts uzfalse.
Piemērs
// Set the end effector type to the Magnet Pickup Tool
Arm.setEndEffectorType(magnet);
setEndEffectorMagnet#
setEndEffectorMagnet iespējo vai atspējo magnēta uzņemšanas rīku.
Pieejamās funkcijas
void setEndEffectorMagnet(bool enabled);
Parametrs |
Tips |
Apraksts |
|---|---|---|
|
|
|
Atgriešanas vērtība
Šī funkcija neatgriež vērtību.
Piemērs
// Pick up objects and then drop them
Arm.setEndEffectorType(magnet);
Arm.setEndEffectorMagnet(true);
wait(2, seconds);
Arm.setEndEffectorMagnet(false);
setPenOffset#
setPenOffset iestata z ass nobīdi, kas tiek izmantota, kad pildspalvas turētāja rīks ir piestiprināts pie 6 asu sviras.
Pirms šīs funkcijas izmantošanas iestatiet gala efektora tipu uz pen Ja pildspalvas turētāja rīks nav atlasīts, šai funkcijai nav nekādas ietekmes.
Pildspalvas nobīde ir attālums no pildspalvas turētāja rīka augšdaļas līdz sausās dzēšanas marķiera galam. Pozitīva z vērtība pārvieto nobīdi uz augšu no rīka stiprinājuma punkta.
Pieejamās funkcijas
void setPenOffset(double zOffset);
Parametrs |
Tips |
Apraksts |
|---|---|---|
|
|
Pildspalvas nobīdes vērtība milimetros. |
Atgriešanas vērtība
Šī funkcija neatgriež vērtību.
Piemērs
// Set the end effector type to the Pen Holder Tool and set the pen offset
Arm.setEndEffectorType(pen);
Arm.setPenOffset(25);
setControlStop#
setControlStop iespējo vai atspējo 6 asu rokas vadības apturēšanu.
Kad vadības apturēšana ir iespējota, 6 asu roka nekavējoties aptur kustību un novērš turpmākas lineāras vai locītavu kustības.
Pieejamās funkcijas
void setControlStop(bool state = true);
Parametrs |
Tips |
Apraksts |
|---|---|---|
|
|
Neobligāti. |
Atgriešanas vērtība
Šī funkcija neatgriež vērtību.
Piemērs
// Stop the 6-Axis Arm and prevent further movement
Arm.setControlStop();
setTimeout#
setTimeout iestata taimauta vērtību, kas tiek izmantota, pārvietojot 6 asu roku.
Ja kustība nebeidzas pirms taimauta sasniegšanas, projekts turpinās ar nākamo koda rindu.
Pieejamās funkcijas
void setTimeout(
int32_t timeout,
timeUnits units
);
Parametrs |
Tips |
Apraksts |
|---|---|---|
|
|
Jaunā taimauta vērtība. |
|
|
Laika vienība: |
Atgriešanas vērtība
Šī funkcija neatgriež vērtību.
Piemērs
// Set the 6-Axis Arm timeout to 2 seconds
Arm.setTimeout(2, sec);
Getteri#
isDone#
isDone atgriež, vai 6 asu roka ir pabeigusi kustību.
Šī funkcija ir noderīga pēc tam, kad kustības funkcija tiek izsaukta ar waitForCompletion kas iestatīts uz false.
Pieejamās funkcijas
bool isDone();
Parametri
Šai funkcijai nav parametru.
Atgriešanas vērtība
Atgriež Būla vērtību.
true— 6 asu roka ir pabeigusi kustību.false— 6 asu roka joprojām kustas.
Piemērs
// 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 atgriež, vai 6 asu roka ir avarējusi kustības laikā.
Kad tiek konstatēta avārija, 6 asu roka aptur motora kustību un var šķist atslābināma. Tas samazina slodzi un palīdz aizsargāt motorus no nejaušiem bojājumiem.
Pieejamās funkcijas
bool isCrashed();
Parametri
Šai funkcijai nav parametru.
Atgriešanas vērtība
Atgriež Būla vērtību.
true— 6 asu roka ir avarējusi.false— 6 asu roka nav avarējusi.
Piemērs
// 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 atgriež gala efektora pašreizējo x pozīciju milimetros.
Izmantojiet šo funkciju, lai nolasītu gala efektora pašreizējo atrašanās vietu uz x ass.
Pieejamās funkcijas
float getX();
Parametri
Šai funkcijai nav parametru.
Atgriešanas vērtība
Atgriež float , kas apzīmē gala efektora x pozīciju milimetros.
Piemērs
// Print the current x position of the 6-Axis Arm
Brain.Screen.print(Arm.getX());
getY#
getY atgriež gala efektora pašreizējo y pozīciju milimetros.
Izmantojiet šo funkciju, lai nolasītu gala efektora pašreizējo atrašanās vietu uz y ass.
Pieejamās funkcijas
float getY();
Parametri
Šai funkcijai nav parametru.
Atgriešanas vērtība
Atgriež float , kas apzīmē gala efektora y pozīciju milimetros.
Piemērs
// Print the current y position of the 6-Axis Arm
Brain.Screen.print(Arm.getY());
getZ#
getZ atgriež gala efektora pašreizējo z pozīciju milimetros.
Izmantojiet šo funkciju, lai nolasītu gala efektora pašreizējo atrašanās vietu gar z asi.
Pieejamās funkcijas
float getZ();
Parametri
Šai funkcijai nav parametru.
Atgriešanas vērtība
Atgriež float , kas attēlo gala efektora z pozīciju milimetros.
Piemērs
// Print the current z position of the 6-Axis Arm
Brain.Screen.print(Arm.getZ());
getYaw#
getYaw atgriež gala efektora pašreizējo novirzi grādos.
Pieejamās funkcijas
float getYaw();
Parametri
Šai funkcijai nav parametru.
Atgriešanas vērtība
Atgriež float kas attēlo gala efektora pašreizējo novirzi grādos.
Piemērs
// Print the current yaw of the end effector
Brain.Screen.print(Arm.getYaw());
getRoll#
getRoll atgriež gala efektora pašreizējo apgriezienu grādos.
Pieejamās funkcijas
float getRoll();
Parametri
Šai funkcijai nav parametru.
Atgriešanas vērtība
Atgriež float kas attēlo gala efektora pašreizējo rullīti grādos.
Piemērs
// Print the current roll of the end effector
Brain.Screen.print(Arm.getRoll());
getPitch#
getPitch atgriež gala efektora pašreizējo piķi grādos.
Pieejamās funkcijas
float getPitch();
Parametri
Šai funkcijai nav parametru.
Atgriešanas vērtība
Atgriež float kas attēlo gala efektora pašreizējo slīpumu grādos.
Piemērs
// Print the current pitch of the end effector
Brain.Screen.print(Arm.getPitch());
canArmReachTo#
canArmReachTo atgriež, vai 6 asu roka var pārvietot gala efektoru uz norādīto x, y un z koordinātu.
Izmantojiet šo funkciju, lai pārbaudītu mērķa pozīciju pirms moveTo izmantošanas.
Pieejamās funkcijas
bool canArmReachTo(
double x,
double y,
double z
);
Parametrs |
Tips |
Apraksts |
|---|---|---|
|
|
Mērķa pozīcijas x koordināta milimetros. |
|
|
Mērķa pozīcijas y koordināta milimetros. |
|
|
Mērķa pozīcijas z koordināta milimetros. |
Atgriešanas vērtība
Atgriež Būla vērtību.
true— 6 asu roka var sasniegt pieprasīto pozīciju.false— 6 asu roka nevar sasniegt pieprasīto pozīciju.
Piemērs
// 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 atgriež, vai 6 asu roka var pārvietot gala efektoru par norādīto x, y un z attālumu no tā pašreizējās pozīcijas.
Izmantojiet šo funkciju, lai pārbaudītu relatīvu kustību pirms moveInc izmantošanas.
Pieejamās funkcijas
bool canArmReachInc(
double x,
double y,
double z
);
Parametrs |
Tips |
Apraksts |
|---|---|---|
|
|
Attālums, kas jāpārvietojas pa x asi milimetros. |
|
|
Attālums milimetros, kas jāpārvietojas pa y asi. |
|
|
Attālums, kas jāpārvietojas pa z asi milimetros. |
Atgriešanas vērtība
Atgriež Būla vērtību.
true— 6 asu roka var veikt pieprasīto kustību.false— 6 asu roka nevar veikt pieprasīto kustību.
Piemērs
// 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 atgriež, vai gala efektors var pagriezties norādītajā novirzes, rites un gareniskās pozīcijas orientācijā.
Izmantojiet šo funkciju, lai pārbaudītu mērķa orientāciju pirms moveEndEffectorTo izmantošanas.
Pieejamās funkcijas
bool canEndEffectorReachTo(
double yaw,
double roll = 0,
double pitch = 0
);
Parametrs |
Tips |
Apraksts |
|---|---|---|
|
|
Mērķa novirzes leņķis grādos. |
|
|
Neobligāti. Mērķa rites leņķis grādos. Noklusējuma vērtība ir |
|
|
Neobligāti. Mērķa slīpuma leņķis grādos. Noklusējuma vērtība ir |
Atgriešanas vērtība
Atgriež Būla vērtību.
true— Gala efektors var sasniegt pieprasīto orientāciju.false— Gala efektors nevar sasniegt pieprasīto orientāciju.
Piemērs
// Rotate the end effector to 90 degrees of roll if possible
if (Arm.canEndEffectorReachTo(0, 90, 0)) {
Arm.moveEndEffectorTo(0, 90, 0);
}
canEndEffectorReachInc#
canEndEffectorReachInc atgriež, vai gala efektors var pagriezties par noteiktu novirzi, svēršanu un piķi no tā pašreizējās orientācijas.
Izmantojiet šo funkciju, lai pārbaudītu relatīvo orientācijas kustību pirms moveEndEffectorInc izmantošanas.
Pieejamās funkcijas
bool canEndEffectorReachInc(
double yaw,
double roll = 0,
double pitch = 0
);
Parametrs |
Tips |
Apraksts |
|---|---|---|
|
|
Novirzes izmaiņas grādos. |
|
|
Neobligāti. Slīpuma izmaiņas grādos. Noklusējuma vērtība ir |
|
|
Neobligāti. Skaņas augstuma izmaiņas grādos. Noklusējuma vērtība ir |
Atgriešanas vērtība
Atgriež Būla vērtību.
true— Gala efektors var veikt pieprasīto rotāciju.false— Gala efektors nevar veikt pieprasīto rotāciju.
Piemērs
// Increment the end effector by 10 degrees of pitch if possible
if (Arm.canEndEffectorReachInc(0, 0, 10)) {
Arm.moveEndEffectorInc(0, 0, 10);
}
isConnected#
isConnected atgriež, vai 6 asu roka ir savienota ar EXP Brain.
Šī ir saderības funkcija, kas atgriež tādu pašu vērtību kā installed.
Pieejamās funkcijas
bool isConnected();
Parametri
Šai funkcijai nav parametru.
Atgriešanas vērtība
Atgriež Būla vērtību.
true— 6 asu roka ir savienota ar EXP smadzenēm.false— 6 asu roka nav savienota ar EXP smadzenēm.
Piemērs
// Print whether the 6-Axis Arm is connected
Brain.Screen.print(Arm.isConnected());
timestamp#
timestamp atgriež pēdējā no 6 asu rokas saņemtā statusa paketes timestampu.
Pieejamās funkcijas
uint32_t timestamp();
Parametri
Šai funkcijai nav parametru.
Atgriešanas vērtība
Atgriež pēdējā statusa paketes laika zīmogu kā uint32_t milisekundēs.
installed#
installed atgriež, vai ir pievienota 6 asu roka.
Pieejamās funkcijas
bool installed();
Parametri
Šai funkcijai nav parametru.
Atgriešanas vērtība
Atgriež Būla vērtību.
true— 6 asu svira ir pievienota.false— 6 asu roka nav pievienota.
Atzvanīšanas#
controlStopped#
controlStopped reģistrē funkciju, kas darbojas, kad ir iespējota vadības apturēšana.
Pieejamās funkcijas
void controlStopped(void (* callback)(void));
Parametrs |
Tips |
Apraksts |
|---|---|---|
|
|
Funkcija, kas darbojas, kad ir iespējota vadības apturēšana. |
Atgriešanas vērtība
Šī funkcija neatgriež vērtību.
Piemērs
// 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 reģistrē funkciju, kas darbojas, kad 6 asu roka kustības laikā ir avarējusi.
Kad tiek konstatēta avārija, 6 asu roka aptur motora kustību un var šķist atslābināma. Tas samazina slodzi un palīdz aizsargāt motorus no nejaušiem bojājumiem.
Pieejamās funkcijas
void crashed(void (* callback)(void));
Parametrs |
Tips |
Apraksts |
|---|---|---|
|
|
Funkcija, kas darbojas, kad 6 asu roka kustības laikā ir avarējusi. |
Atgriešanas vērtība
Šī funkcija neatgriež vērtību.
Piemērs
// 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);
}