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

x

Tikslinės padėties x koordinatė milimetrais.

y

Tikslinės padėties y koordinatė milimetrais.

z

Tikslinės padėties z koordinatė milimetrais.

wait

Pasirinktinai. wait=True (numatytasis) priverčia projektą laukti, kol judėjimas bus baigtas, prieš tęsiant. wait=False pradeda judėjimą ir iš karto tęsia jį kita kodo eilute.

# 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

x

Atstumas, kurį reikia judėti išilgai x ašies, milimetrais.

y

Atstumas, kurį reikia judėti išilgai y ašies, milimetrais.

z

Atstumas, kurį reikia judėti z ašimi, milimetrais.

wait

Pasirinktinai. wait=True (numatytasis) priverčia projektą laukti, kol judėjimas bus baigtas, prieš tęsiant. wait=False pradeda judėjimą ir iš karto tęsia jį kita kodo eilute.

# 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

yaw

Tikslinis posūkio kampas laipsniais.

roll

Tikslinis riedėjimo kampas laipsniais.

pitch

Tikslinis polinkio kampas laipsniais.

wait

Pasirinktinai. wait=True (numatytasis) priverčia projektą laukti, kol judėjimas bus baigtas, prieš tęsiant. wait=False pradeda judėjimą ir iš karto tęsia jį kita kodo eilute.

# 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

yaw

Posūkio pokytis laipsniais.

roll

Riedėjimo pokytis laipsniais.

pitch

Tono pokytis laipsniais.

wait

Pasirinktinai. wait=True (numatytasis) priverčia projektą laukti, kol judėjimas bus baigtas, prieš tęsiant. wait=False pradeda judėjimą ir iš karto tęsia jį kita kodo eilute.

# 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

speed

6 ašių svirties judėjimo greitis nuo 1 iki 100 procentų.

# 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

type

Prie 6 ašių svirties pritvirtintas įrankis: MAGNET (magneto paėmimo įrankis) arba PEN (rašiklio laikiklio į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

state

Magneto paėmimo įrankio būsena: True pakelti ir laikyti objektus arba False numesti bet kurį laikomą objektą ir nustoti rinkti naujus objektus.

# 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

zOffset

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

state

Pasirinktinai. True (numatytasis) įjungia valdymo sustabdymą. False neįjungia valdymo sustabdymo.

# 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

timeout

Nauja skirtojo laiko reikšmė.

units

Pasirinktinai. Laiko vienetas: MSEC (milisekundės, numatytoji reikšmė), SECONDSarba SEC.

# 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

x

Tikslinės padėties x koordinatė milimetrais.

y

Tikslinės padėties y koordinatė milimetrais.

z

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

x

Atstumas, kurį reikia judėti išilgai x ašies, milimetrais.

y

Atstumas, kurį reikia judėti išilgai y ašies, milimetrais.

z

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

yaw

Tikslinis posūkio kampas laipsniais.

roll

Tikslinis riedėjimo kampas laipsniais.

pitch

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

yaw

Posūkio pokytis laipsniais.

roll

Riedėjimo pokytis laipsniais.

pitch

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

callback

Anksčiau apibrėžta function, kuri vykdoma, kai įjungtas valdymo sustabdymas.

arg

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

callback

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

smartport

Išmanusis prievadas, prie kurio prijungta 6 ašių svirtis, užrašomas kaip Ports.PORTx, kur x yra prievado numeris.

# Construct a 6-Axis Arm named arm1 with the Arm class
arm1 = Arm(Ports.PORT1)