6 ašių svirtis#
Įvadas#
VEX 6 ašių robotinė ranka yra robotinis manipuliatorius, naudojamas CTE darbo langelyje. VEXcode EXP programoje „Arm“ metodai leidžia EXP smegenų moduliui judinti 6 ašių ranką, pasukti jos galinį efektorių, patikrinti, ar judesiai galimi, ir valdyti prijungtus įrankius, tokius kaip magneto paėmimo įrankis arba rašiklio laikiklio įrankis.
Šis puslapis skirtas CTE Workcell projektams, kuriuose 6 ašių svirtis yra prijungta prie EXP Brain. Jei naudojate 6 ašių svirtį atskirai su CTE Tile, naudokite CTE Arm API puslapį.
Šio puslapio pavyzdžiuose naudojama sukonfigūruota 6 ašių svirtis, pavadinta arm1.
Žemiau pateikiamas visų galimų metodų sąrašas:
Veiksmai – perkelkite 6 ašių svirtį į norimas padėtis arba kryptis.
move_to— Perkelia galinį efektorių į nurodytas x, y ir z koordinates.move_inc— Perkelia galinį efektorių nurodytu atstumu nuo jo dabartinės padėties.move_end_effector_to– Pasuka galinį efektorių į nurodytą posūkio, sukimo ir žingsnio orientaciją.move_end_effector_inc– Pasuka galinį efektorių nurodytu posūkio, sukimosi ir žingsnio dydžiu.
Mutatoriai – konfigūruokite judėjimą, įrankius ir valdymo nustatymus.
set_speed— Nustato 6 ašių svirties judėjimo greitį.set_end_effector_type— Nustato prie 6 ašių svirties pritvirtinto galinio efektoriaus tipą.set_end_effector_magnet— Įjungia arba atleidžia magneto paėmimo įrankį.set_pen_offset— Nustato z ašies poslinkį, naudojamą su rašiklio laikiklio įrankiu.set_control_stop— Įjungia 6 ašių svirties valdymo sustabdymą.set_timeout— Nustato 6 ašių svirties judėjimo metodų naudojamą skirtąjį laiką.
Getteriai – grąžina judėjimo būseną, padėtį, orientaciją ir ryšio reikšmes.
is_done— Grąžina, ar 6 ašių svirtis baigė judėti.is_crashed— Grąžina, ar 6 ašių svirtis sugedo judėdama.get_x— Grąžina dabartinę galinio efektoriaus x poziciją.get_y— Grąžina dabartinę galinio efektoriaus y padėtį.get_z— Grąžina dabartinę galinio efektoriaus z padėtį.get_pitch— Grąžina dabartinį galinio efektoriaus garso aukštį.get_roll— Grąžina dabartinį galinio efektoriaus riedėjimą.get_yaw— Grąžina dabartinį galinio efektoriaus posūkio kampą.can_arm_reach_to— Grąžina, ar 6 ašių svirtis gali pasiekti nurodytą padėtį.can_arm_reach_inc— Grąžina, ar 6 ašių svirtis gali judėti nurodytu atstumu.can_end_effector_reach_to— Grąžina, ar galinis efektorius gali pasiekti nurodytą orientaciją.can_end_effector_reach_inc— Grąžina, ar galinis efektorius gali pasisukti nurodytu kiekiu.get_timeout— Grąžina dabartinę judėjimo metodų naudojamą skirtojo laiko reikšmę.is_connected— Grąžina, ar 6 ašių svirtis yra prijungta prie EXP smegenų.
Atgaliniai iškvietimai – vykdyti funkcijas, kai įvyksta įjungimo įvykiai.
control_stopped— Registruoja funkciją, kuri bus vykdoma, kai įjungtas valdymo sustabdymas.crashed— Registruoja funkciją, kuri bus vykdoma aptikus gedimą.
Konstruktorius – rankiniu būdu sukurkite 6 ašių rankos objektą.
Arm– Sukuria 6 ašių „Arm“ objektą.
Veiksmai#
move_to#
move_to perkelia 6 ašių svirtį į nurodytas x, y ir z koordinates.
X, y ir z koordinatės apibūdina galinio efektoriaus padėtį trimatėje erdvėje. Prieš šį metodą naudokite can_arm_reach_to, jei tikslinė padėtis gali būti už 6 ašių svirties pasiekiamos darbo srities ribų.
Usage:
arm1.move_to(x, y, z, wait)
Parametras |
Aprašymas |
|---|---|
|
Tikslinės padėties x koordinatė milimetrais. |
|
Tikslinės padėties y koordinatė milimetrais. |
|
Tikslinės padėties z koordinatė milimetrais. |
|
Pasirinktinai. |
# Move the 6-Axis Arm to (40, 140, 210)
arm1.move_to(40, 140, 210)
# Start moving, then print the y-position while the arm moves
arm1.move_to(-100, 200, 100, wait=False)
while not arm1.is_done():
brain.screen.print(arm1.get_y())
brain.screen.next_row()
wait(0.25, SECONDS)
move_inc#
move_inc perkelia 6 ašių svirtį nurodytu atstumu nuo dabartinės jos padėties išilgai x, y ir z ašių.
Šį metodą naudokite norėdami judėti pagal dabartinę galinio efektoriaus vietą. Prieš šį metodą naudokite can_arm_reach_inc, jei judėjimas gali perkelti 6 ašių svirtį už pasiekiamos darbo srities ribų.
Usage:
arm1.move_inc(x, y, z, wait)
Parametras |
Aprašymas |
|---|---|
|
Atstumas, kurį reikia judėti išilgai x ašies, milimetrais. |
|
Atstumas, kurį reikia judėti išilgai y ašies, milimetrais. |
|
Atstumas, kurį reikia judėti z ašimi, milimetrais. |
|
Pasirinktinai. |
# Move the 6-Axis Arm 100 millimeters along the y-axis
arm1.move_inc(0, 100, 0)
move_end_effector_to#
move_end_effector_to pasuka 6 ašių svirties galinį efektorių į nurodytą posūkio, riedėjimo ir žingsnio orientaciją.
Orientacija apibūdina, kaip sukamas galinis efektorius. yaw sukasi aplink z ašį, roll sukasi aplink x ašį, o pitch sukasi aplink y ašį.
Usage:
arm1.move_end_effector_to(yaw, roll, pitch, wait)
Parametras |
Aprašymas |
|---|---|
|
Tikslinis posūkio kampas laipsniais. |
|
Tikslinis riedėjimo kampas laipsniais. |
|
Tikslinis polinkio kampas laipsniais. |
|
Pasirinktinai. |
# Rotate the end effector to 90 degrees of roll
arm1.move_end_effector_to(0, 90, 0)
move_end_effector_inc#
move_end_effector_inc pasuka 6 ašių svirties galinį efektorių nurodytu posūkio, sukimosi ir žingsnio dydžiu nuo dabartinės jo orientacijos.
Naudokite šį metodą, norėdami pasukti, atsižvelgiant į galinio efektoriaus dabartinį posūkio, riedėjimo ar žingsnio kampą.
Usage:
arm1.move_end_effector_inc(yaw, roll, pitch, wait)
Parametras |
Aprašymas |
|---|---|
|
Posūkio pokytis laipsniais. |
|
Riedėjimo pokytis laipsniais. |
|
Tono pokytis laipsniais. |
|
Pasirinktinai. |
# Rotate the end effector -50 degrees in pitch
arm1.move_end_effector_inc(0, 0, -50)
Mutatoriai#
set_speed#
set_speed nustato judėjimo greitį, kurį 6 ašių svirtis naudoja judėjimo metodams.
Projekto pradžioje 6 ašių svirties greitis nustatomas į 50 %.
Usage:
arm1.set_speed(speed)
Parametras |
Aprašymas |
|---|---|
|
6 ašių svirties judėjimo greitis nuo |
# Set the 6-Axis Arm speed to 30%
arm1.set_speed(30)
set_end_effector_type#
set_end_effector_type nustato prie 6 ašių svirties pritvirtinto galinio efektoriaus tipą.
Kai pakeičiamas galinio efektoriaus tipas, 6 ašių svirtis automatiškai pakoreguoja savo z poslinkį, kad jis atitiktų pasirinktą įrankį. Projekto pradžioje galinio efektoriaus tipas nustatomas į MAGNET.
Usage:
arm1.set_end_effector_type(type)
Parametras |
Aprašymas |
|---|---|
|
Prie 6 ašių svirties pritvirtintas įrankis: |
# Set the end effector type to the Pen Holder Tool
arm1.set_end_effector_type(PEN)
set_end_effector_magnet#
set_end_effector_magnet įjungia arba atleidžia magneto paėmimo įrankį.
Magneto būsena lieka aktyvi tol, kol ją pakeičia kitas set_end_effector_magnet metodas. Projekto pradžioje magneto būsena atstatoma į False.
Usage:
arm1.set_end_effector_magnet(state)
Parametras |
Aprašymas |
|---|---|
|
Magneto paėmimo įrankio būsena: |
# Pick up objects and then drop them
arm1.set_end_effector_type(MAGNET)
arm1.set_end_effector_magnet(True)
wait(2, SECONDS)
arm1.set_end_effector_magnet(False)
set_pen_offset#
set_pen_offset nustato z ašies poslinkį, naudojamą, kai rašiklio laikiklio įrankis pritvirtintas prie 6 ašių svirties.
Prieš naudodami šį metodą, nustatykite galinio efektoriaus tipą į PEN Jei rašiklio laikiklio įrankis nepasirinktas, šis metodas neturi jokio poveikio.
Rašiklio poslinkis yra atstumas nuo rašiklio laikiklio įrankio viršaus iki sauso trinkimo žymeklio galiuko. Projekto pradžioje rašiklio poslinkis nustatomas į 0Rašiklio poslinkis, lygus 0 , nustato svirties z ašies pradžią taške, kuriame rašiklio laikiklio įrankis jungiasi prie 6 ašių svirties.
Usage:
arm1.set_pen_offset(zOffset)
Parametras |
Aprašymas |
|---|---|
|
Rašiklio poslinkio vertė milimetrais. |
# Set the end effector type to the Pen Holder Tool and set the pen offset
arm1.set_end_effector_type(PEN)
arm1.set_pen_offset(25)
set_control_stop#
set_control_stop įjungia 6 ašių svirties valdymo sustabdymą.
Kai įjungtas valdymo sustabdymas, 6 ašių svirtis nedelsdama sustabdo bet kokį judėjimą ir nevykdys jokių kitų svirties judėjimo metodų, kol projektas nebus paleistas iš naujo.
Usage:
arm1.set_control_stop(state)
Parametras |
Aprašymas |
|---|---|
|
Pasirinktinai. |
# Stop the 6-Axis Arm and prevent further movement
arm1.set_control_stop()
set_timeout#
set_timeout nustato skirtojo laiko reikšmę, naudojamą judinant 6 ašių svirtį.
Jei judėjimas nebaigia iki skirtojo laiko pabaigos, projektas tęsia darbą su kita kodo eilute.
Usage:
arm1.set_timeout(timeout, units)
Parametras |
Aprašymas |
|---|---|
|
Nauja skirtojo laiko reikšmė. |
|
Pasirinktinai. Laiko vienetas: |
# Set the 6-Axis Arm timeout to 2 seconds
arm1.set_timeout(2, SECONDS)
Getteriai#
is_done#
is_done grąžina, ar 6 ašių svirtis baigė judėti.
Šis metodas naudingas iškvietus judėjimo metodą su wait=False.
True— 6 ašių svirtis baigė judėti.False— 6 ašių svirtis vis dar juda.
Usage:
arm1.is_done()
Parametrai |
Aprašymas |
|---|---|
Šis metodas neturi parametrų. |
# Display the 6-Axis Arm's y-position while it moves
arm1.move_to(-100, 200, 100, wait=False)
while not arm1.is_done():
brain.screen.print(arm1.get_y())
brain.screen.next_row()
wait(0.25, SECONDS)
is_crashed#
is_crashed grąžina, ar 6 ašių svirtis sugedo judėdama.
Aptikus avariją, 6 ašių svirtis sustabdo variklio judėjimą ir gali atrodyti, kad variklis nustoja veikti. Tai sumažina įtampą ir padeda apsaugoti variklius nuo atsitiktinio pažeidimo.
True— 6 ašių svirtis sugedo.False— 6 ašių svirtis nesugedo.
Usage:
arm1.is_crashed()
Parametrai |
Aprašymas |
|---|---|
Šis metodas neturi parametrų. |
# Quickly move to a new location
arm1.set_speed(100)
arm1.move_to(-30, 240, 40, wait=False)
# While moving, check for a crash
while True:
if arm1.is_crashed():
# Indicate a crash with the Signal Tower and Brain screen
brain.screen.print("Crash Detected")
signal_tower_2.set_color(SignalTower.GREEN, SignalTower.OFF)
signal_tower_2.set_color(SignalTower.RED, SignalTower.ON)
break
wait(5, MSEC)
get_x#
get_x grąžina dabartinę galinio efektoriaus x padėtį milimetrais.
Šiuo metodu galite nuskaityti, kur šiuo metu yra galinis efektorius išilgai x ašies.
Usage:
arm1.get_x()
Parametrai |
Aprašymas |
|---|---|
Šis metodas neturi parametrų. |
# Print the current x position of the 6-Axis Arm
brain.screen.print(arm1.get_x())
get_y#
get_y grąžina dabartinę galinio efektoriaus y padėtį milimetrais.
Šiuo metodu galite nuskaityti, kur šiuo metu yra galinis efektorius išilgai y ašies.
Usage:
arm1.get_y()
Parametrai |
Aprašymas |
|---|---|
Šis metodas neturi parametrų. |
# Print the current y position of the 6-Axis Arm
brain.screen.print(arm1.get_y())
get_z#
get_z grąžina dabartinę galinio efektoriaus z padėtį milimetrais.
Šiuo metodu galite nuskaityti, kur šiuo metu yra galinis efektorius išilgai z ašies.
Usage:
arm1.get_z()
Parametrai |
Aprašymas |
|---|---|
Šis metodas neturi parametrų. |
# Print the current z position of the 6-Axis Arm
brain.screen.print(arm1.get_z())
get_pitch#
get_pitch grąžina dabartinį galinio efektoriaus žingsnį laipsniais.
Usage:
arm1.get_pitch()
Parametrai |
Aprašymas |
|---|---|
Šis metodas neturi parametrų. |
# Print the current pitch of the end effector
brain.screen.print(arm1.get_pitch())
get_roll#
get_roll grąžina dabartinį galinio efektoriaus posūkį laipsniais.
Usage:
arm1.get_roll()
Parametrai |
Aprašymas |
|---|---|
Šis metodas neturi parametrų. |
# Print the current roll of the end effector
brain.screen.print(arm1.get_roll())
get_yaw#
get_yaw grąžina dabartinį galinio efektoriaus posūkio kampą laipsniais.
Usage:
arm1.get_yaw()
Parametrai |
Aprašymas |
|---|---|
Šis metodas neturi parametrų. |
# Print the current yaw of the end effector
brain.screen.print(arm1.get_yaw())
can_arm_reach_to#
can_arm_reach_to grąžina, ar 6 ašių svirtis gali perkelti galinį efektorių į nurodytas x, y ir z koordinates.
Prieš naudodami move_to, naudokite šį metodą tikslinei pozicijai patikrinti.
True— 6 ašių svirtis gali pasiekti pageidaujamą padėtį.False— 6 ašių svirtis negali pasiekti prašomos padėties.
Usage:
arm1.can_arm_reach_to(x, y, z)
Parametras |
Aprašymas |
|---|---|
|
Tikslinės padėties x koordinatė milimetrais. |
|
Tikslinės padėties y koordinatė milimetrais. |
|
Tikslinės padėties z koordinatė milimetrais. |
# Move the 6-Axis Arm to (100, -20, 50) if it can reach
if arm1.can_arm_reach_to(100, -20, 50):
arm1.move_to(100, -20, 50)
can_arm_reach_inc#
can_arm_reach_inc grąžina, ar 6 ašių svirtis gali perkelti galinį efektorių nurodytu x, y ir z atstumu nuo dabartinės jo padėties.
Šį metodą naudokite santykiniam judėjimui patikrinti prieš naudodami move_inc.
True— 6 ašių svirtis gali atlikti pageidaujamą judesį.False— 6 ašių svirtis negali atlikti prašomo judesio.
Usage:
arm1.can_arm_reach_inc(x, y, z)
Parametras |
Aprašymas |
|---|---|
|
Atstumas, kurį reikia judėti išilgai x ašies, milimetrais. |
|
Atstumas, kurį reikia judėti išilgai y ašies, milimetrais. |
|
Atstumas, kurį reikia judėti z ašimi, milimetrais. |
# Increment the 6-Axis Arm 100 mm along the x-axis if possible
if arm1.can_arm_reach_inc(100, 0, 0):
arm1.move_inc(100, 0, 0)
can_end_effector_reach_to#
can_end_effector_reach_to grąžina, ar galinis efektorius gali pasisukti į nurodytą posūkio, riedėjimo ir žingsnio orientaciją.
Prieš naudodami move_end_effector_to, naudokite šį metodą taikinio orientacijai patikrinti.
True— Galutinis efektorius gali pasiekti pageidaujamą orientaciją.False— Galinis efektorius negali pasiekti prašomos orientacijos.
Usage:
arm1.can_end_effector_reach_to(yaw, roll, pitch)
Parametras |
Aprašymas |
|---|---|
|
Tikslinis posūkio kampas laipsniais. |
|
Tikslinis riedėjimo kampas laipsniais. |
|
Tikslinis polinkio kampas laipsniais. |
# Rotate the end effector to 90 degrees of roll if possible
if arm1.can_end_effector_reach_to(0, 90, 0):
arm1.move_end_effector_to(0, 90, 0)
can_end_effector_reach_inc#
can_end_effector_reach_inc grąžina, ar galinis efektorius gali pasisukti nurodytu posūkio, riedėjimo ir žingsnio dydžiu nuo dabartinės orientacijos.
Prieš naudodami move_end_effector_inc, naudokite šį metodą santykiniam orientacijos judėjimui patikrinti.
True— Galinis efektorius gali atlikti prašomą sukimąsi.False— Galinis efektorius negali atlikti prašomo sukimosi.
Usage:
arm1.can_end_effector_reach_inc(yaw, roll, pitch)
Parametras |
Aprašymas |
|---|---|
|
Posūkio pokytis laipsniais. |
|
Riedėjimo pokytis laipsniais. |
|
Tono pokytis laipsniais. |
# Increment the end effector by 10 degrees of pitch if possible
if arm1.can_end_effector_reach_inc(0, 0, 10):
arm1.move_end_effector_inc(0, 0, 10)
get_timeout#
get_timeout grąžina 6 ašių rankos judėjimo metodų naudojamą skirtojo laiko reikšmę milisekundėmis.
Usage:
arm1.get_timeout()
Parametrai |
Aprašymas |
|---|---|
Šis metodas neturi parametrų. |
# Print the current movement timeout in milliseconds
brain.screen.print(arm1.get_timeout())
is_connected#
is_connected grąžina, ar 6 ašių svirtis yra prijungta prie EXP smegenų.
True— 6 ašių svirtis prijungta prie EXP smegenų.False— 6 ašių svirtis neprijungta prie EXP smegenų.
Usage:
arm1.is_connected()
Parametrai |
Aprašymas |
|---|---|
Šis metodas neturi parametrų. |
# Print whether the 6-Axis Arm is connected
brain.screen.print(arm1.is_connected())
Atgaliniai skambučiai#
control_stopped#
control_stopped užregistruoja funkciją, kuri vykdoma, kai įjungtas valdymo sustabdymas.
Šis metodas grąžina Event klasės egzempliorių.
Usage:
arm1.control_stopped(callback, arg)
Parametras |
Aprašymas |
|---|---|
|
Anksčiau apibrėžta function, kuri vykdoma, kai įjungtas valdymo sustabdymas. |
|
Pasirinktinai. Rinkinys su argumentais, kurie turi būti perduoti atgalinio iškvietimo funkcijai. Daugiau informacijos žr. Funkcijų su parametrais naudojimas. |
# Define a function to run when control stop is enabled
def when_control_stopped():
brain.screen.print("The arm has been control stopped")
# Run when_control_stopped when the 6-Axis Arm is control stopped
arm1.control_stopped(when_control_stopped)
crashed#
crashed užregistruoja funkciją, kuri paleidžiama, kai 6 ašių svirtis sugenda judėdama.
Aptikus avariją, 6 ašių svirtis sustabdo variklio judėjimą ir gali atrodyti, kad variklis nustoja veikti. Tai sumažina įtampą ir padeda apsaugoti variklius nuo atsitiktinio pažeidimo.
Usage:
arm1.crashed(callback)
Parametras |
Aprašymas |
|---|---|
|
Anksčiau apibrėžta function, kuri paleidžiama aptikus gedimą. |
# Define what happens if a crash is detected
def arm_crash():
brain.screen.print("Crash Detected")
signal_tower_2.set_color(SignalTower.RED, SignalTower.ON)
# Run arm_crash when the 6-Axis Arm crashes
arm1.crashed(arm_crash)
Konstruktoriai#
Arm#
Arm sukuria 6 ašių „Arm“ objektą.
Usage:
Arm(smartport)
Parametras |
Aprašymas |
|---|---|
|
Išmanusis prievadas, prie kurio prijungta 6 ašių svirtis, užrašomas kaip |
# Construct a 6-Axis Arm named arm1 with the Arm class
arm1 = Arm(Ports.PORT1)