6-axlig arm#

Introduktion#

VEX 6-axlig robotarm flyttar en ändeffektor i tredimensionellt utrymme, styr ändeffektorns orientering och arbetar med anslutna verktyg som magnetupptagningsverktyget eller pennhållarverktyget.

Nedan följer en lista över alla tillgängliga metoder:

Åtgärder — Flytta 6-axlig arm till positioner eller orienteringar.

  • move_to — Flyttar ändeffektorn till en specificerad x-, y- och z-koordinat.

  • move_inc — Flyttar ändeffektorn ett angivet avstånd från dess aktuella position.

  • move_end_effector_to — Roterar ändeffektorn till en specificerad girnings-, rullnings- och lutningsorientering.

  • move_end_effector_inc — Roterar ändeffektorn med en specificerad girnings-, rullnings- och lutningsmängd.

Mutatorer — Konfigurera rörelser, verktyg och kontrollinställningar.

  • set_speed — Ställer in rörelsehastigheten som används av 6-axlig arm.

  • set_end_effector_type — Ställer in typen av ändeffektor som är fäst vid 6-axlig arm.

  • set_end_effector_magnet — Aktiverar eller släpper magnetupptagningsverktyget.

  • set_pen_offset — Ställer in z-axelns offset som används med pennhållarverktyget.

  • set_control_stop — Aktiverar kontrollstopp för 6-axlig arm.

  • set_timeout — Ställer in timeouten som används av 6-axliga armrörelsemetoder.

Getters — Returnerar rörelsestatus, position, orientering och anslutningsvärden.

  • is_done — Returnerar om 6-axlig arm har slutfört sin rörelse.

  • get_x — Returnerar ändeffektorns aktuella x-position.

  • get_y — Returnerar ändeffektorns aktuella y-position.

  • get_z — Returnerar ändeffektorns aktuella z-position.

  • get_pitch — Returnerar den aktuella tonhöjden för ändeffektorn.

  • get_roll — Returnerar den aktuella rullen för sluteffektorn.

  • get_yaw — Returnerar den aktuella girningen för ändeffektorn.

  • can_arm_reach_to — Returnerar om 6-axlig arm kan nå en specifik position.

  • can_arm_reach_inc — Returnerar om 6-axlig arm kan röra sig ett visst avstånd.

  • can_end_effector_reach_to — Returnerar om ändeffektorn kan nå en specificerad orientering.

  • can_end_effector_reach_inc — Returnerar om ändeffektorn kan rotera med en viss mängd.

  • get_timeout — Returnerar det aktuella timeout-värdet som används av förflyttningsmetoder.

  • is_connected — Returnerar om 6-axlig arm är ansluten till hjärnan.

Återanrop — Kör funktioner när aktiveringshändelser inträffar.

  • control_stopped — Registrerar en funktion som ska köras när kontrollstopp är aktiverat.

Konstruktor — Skapa manuellt ett 6-axligt armobjekt.

  • Arm — Skapar ett armobjekt med 6 axlar.

Den här sidan är till för att använda 6-axlig arm ensam med CTE-plattan. För att använda 6-axlig arm med andra CTE Workcell-komponenter, såsom pneumatik eller transportörer, anslut 6-axlig arm till en EXP Brain och använd motsvarande EXP Arm-sida.

Åtgärder#

move_to#

move_to flyttar 6-axlig arm till en specificerad x-, y- och z-koordinat.

X-, y- och z-koordinaterna beskriver ändeffektorns position i det tredimensionella rummet. Använd can_arm_reach_to före denna metod om målpositionen kan ligga utanför 6-axlarmens nåbara arbetsyta.

Usage:
arm.move_to(x, y, z, wait)

Parameter

Beskrivning

x

Målpositionens x-koordinat i millimeter.

y

Y-koordinaten för målpositionen i millimeter.

z

Z-koordinaten för målpositionen i millimeter.

wait

Valfritt. wait=True (standard) gör att projektet väntar tills rörelsen är klar innan den fortsätter. wait=False startar rörelsen och fortsätter omedelbart till nästa kodrad.

# Move the 6-Axis Arm to (40, 140, 210)
arm.move_to(40, 140, 210)

# Start moving, then print the y-position while the arm moves
arm.move_to(-100, 200, 100, wait=False)

while not arm.is_done():
    brain.print(arm.get_y())
    brain.new_line()
    wait(0.25, SECONDS)

move_inc#

move_inc flyttar 6-axlig arm ett angivet avstånd från dess aktuella position längs x-, y- och z-axlarna.

Använd den här metoden för att flytta i förhållande till var ändeffektorn nu befinner sig. Använd can_arm_reach_inc före den här metoden om rörelsen kan placera 6-axlig arm utanför dess nåbara arbetsyta.

Usage:
arm.move_inc(x, y, z, wait)

Parameter

Beskrivning

x

Avståndet som ska förflyttas längs x-axeln i millimeter.

y

Avståndet att förflytta sig längs y-axeln i millimeter.

z

Avståndet som ska förflyttas längs z-axeln i millimeter.

wait

Valfritt. wait=True (standard) gör att projektet väntar tills rörelsen är klar innan den fortsätter. wait=False startar rörelsen och fortsätter omedelbart till nästa kodrad.

# Move the 6-Axis Arm 100 millimeters along the y-axis
arm.move_inc(0, 100, 0)

move_end_effector_to#

move_end_effector_to roterar 6-axlarmens ändeffektor till en specificerad girnings-, rullnings- och tippningsorientering.

Orientering beskriver hur ändeffektorn roteras. yaw roterar runt z-axeln, roll roterar runt x-axeln och pitch roterar runt y-axeln.

Usage:
arm.move_end_effector_to(yaw, roll, pitch, wait)

Parameter

Beskrivning

yaw

Målets girvinkel, i grader.

roll

Målets rullvinkel, i grader.

pitch

Målets lutningsvinkel, i grader.

wait

Valfritt. wait=True (standard) gör att projektet väntar tills rörelsen är klar innan den fortsätter. wait=False startar rörelsen och fortsätter omedelbart till nästa kodrad.

# Rotate the end effector to 90 degrees of roll
arm.move_end_effector_to(0, 90, 0)

move_end_effector_inc#

move_end_effector_inc roterar 6-axlarmens ändeffektor med en specificerad girnings-, rullnings- och lutningsmängd från dess aktuella orientering.

Använd den här metoden för att rotera i förhållande till ändeffektorns aktuella girning, roll eller lutning.

Usage:
arm.move_end_effector_inc(yaw, roll, pitch, wait)

Parameter

Beskrivning

yaw

Förändringen i girning, i grader.

roll

Förändringen i rullning, i grader.

pitch

Förändringen i tonhöjd, i grader.

wait

Valfritt. wait=True (standard) gör att projektet väntar tills rörelsen är klar innan den fortsätter. wait=False startar rörelsen och fortsätter omedelbart till nästa kodrad.

# Rotate the end effector -50 degrees in pitch
arm.move_end_effector_inc(0, 0, -50)

Mutatorer#

set_speed#

set_speed ställer in rörelsehastigheten som används av 6-axlig arm för rörelsemetoder.

6-axlig armhastighet är inställd på 50 % i början av ett projekt.

Usage:
arm.set_speed(speed)

Parameter

Beskrivning

speed

Rörelsehastigheten för 6-axlarmens arm, från 1 till 100 procent.

# Set the 6-Axis Arm speed to 30%
arm.set_speed(30)

set_end_effector_type#

set_end_effector_type anger typen av ändeffektor som är fäst vid 6-axlig arm.

När ändeffektortypen ändras justerar 6-axlig arm automatiskt sin z-offset för att matcha det valda verktyget. Ändeffektortypen sätts till Arm.MAGNET i början av ett projekt.

Usage:
arm.set_end_effector_type(type)

Parameter

Beskrivning

type

Verktyget som är fäst vid 6-axlingsarmen: Arm.MAGNET (Magnetupptagningsverktyg) eller Arm.PEN (Pennhållarverktyg).

# Set the end effector type to the Pen Holder Tool
arm.set_end_effector_type(Arm.PEN)

set_end_effector_magnet#

set_end_effector_magnet aktiverar eller släpper magnetupptagningsverktyget.

Magnettillståndet förblir aktivt tills en annan set_end_effector_magnet -metod ändrar det. Magnettillståndet återställs till False i början av ett projekt.

Usage:
arm.set_end_effector_magnet(state)

Parameter

Beskrivning

state

Magnetupplockningsverktygets tillstånd: True för att plocka upp och hålla föremål eller False för att släppa ett föremål som hålls och sluta plocka upp nya föremål.

# Pick up objects and then drop them
arm.set_end_effector_type(Arm.MAGNET)
arm.set_end_effector_magnet(True)
wait(2, SECONDS)
arm.set_end_effector_magnet(False)

set_pen_offset#

set_pen_offset ställer in z-axelns offset som används när pennhållarverktyget är fäst på 6-axlig arm.

Ställ in ändeffektortypen till Arm.PEN innan du använder den här metoden. Om pennhållarverktyget inte är valt har den här metoden ingen effekt.

Pennans offset är avståndet från toppen av pennhållarverktyget till spetsen på whiteboardpennan. I början av ett projekt är pennans offset inställt på 0En pennoffset på 0 placerar armens z-axelorigo vid den punkt där pennhållarverktyget ansluter till 6-axlad arm.

Usage:
arm.set_pen_offset(zOffset)

Parameter

Beskrivning

zOffset

Pennans offsetvärde i millimeter.

# Set the end effector type to the Pen Holder Tool and set the pen offset
arm.set_end_effector_type(Arm.PEN)
arm.set_pen_offset(25)

set_control_stop#

set_control_stop aktiverar kontrollstopp för 6-axlig arm.

När kontrollstopp är aktiverat stoppar 6-axlig arm omedelbart alla rörelser och kör inga ytterligare armrörelsemetoder förrän projektet startas om.

Usage:
arm.set_control_stop(state)

Parameter

Beskrivning

state

Valfritt. True (standard) aktiverar kontrollstopp. False aktiverar inte kontrollstopp.

# Stop the 6-Axis Arm and prevent further movement
arm.set_control_stop()

set_timeout#

set_timeout anger timeout-värdet som används vid förflyttning av 6-axlig arm.

Om en rörelse inte avslutas innan timeout-tiden har nåtts fortsätter projektet till nästa kodrad.

Usage:
arm.set_timeout(timeout, units)

Parameter

Beskrivning

timeout

Det nya timeout-värdet.

units

Valfritt. Tidsenheten: MSEC (millisekunder, standard), SECONDSeller SEC.

# Set the 6-Axis Arm timeout to 2 seconds
arm.set_timeout(2, SECONDS)

Getters#

is_done#

is_done returnerar om 6-axlig arm har rört sig färdigt.

Den här metoden är användbar efter att en förflyttningsmetod anropats med wait=False.

  • True — 6-axlig arm har rört sig färdigt.

  • False — 6-axlig arm rör sig fortfarande.

Usage:
arm.is_done()

Parametrar

Beskrivning

Den här metoden har inga parametrar.

# Display the 6-Axis Arm's y-position while it moves
arm.move_to(-100, 200, 100, wait=False)

while not arm.is_done():
    brain.print(arm.get_y())
    brain.new_line()
    wait(0.25, SECONDS)

get_x#

get_x returnerar ändeffektorns aktuella x-position i millimeter.

Använd den här metoden för att avläsa var ändeffektorn för närvarande är placerad längs x-axeln.

Usage:
arm.get_x()

Parametrar

Beskrivning

Den här metoden har inga parametrar.

# Print the current x position of the 6-Axis Arm
brain.print(arm.get_x())

get_y#

get_y returnerar ändeffektorns aktuella y-position i millimeter.

Använd den här metoden för att avläsa var ändeffektorn för närvarande är placerad längs y-axeln.

Usage:
arm.get_y()

Parametrar

Beskrivning

Den här metoden har inga parametrar.

# Print the current y position of the 6-Axis Arm
brain.print(arm.get_y())

get_z#

get_z returnerar ändeffektorns aktuella z-position i millimeter.

Använd den här metoden för att avläsa var ändeffektorn för närvarande är placerad längs z-axeln.

Usage:
arm.get_z()

Parametrar

Beskrivning

Den här metoden har inga parametrar.

# Print the current z position of the 6-Axis Arm
brain.print(arm.get_z())

get_pitch#

get_pitch returnerar den aktuella tonhöjden för ändeffektorn i grader.

Usage:
arm.get_pitch()

Parametrar

Beskrivning

Den här metoden har inga parametrar.

# Print the current pitch of the end effector
brain.print(arm.get_pitch())

get_roll#

get_roll returnerar den aktuella rullningen av ändeffektorn i grader.

Usage:
arm.get_roll()

Parametrar

Beskrivning

Den här metoden har inga parametrar.

# Print the current roll of the end effector
brain.print(arm.get_roll())

get_yaw#

get_yaw returnerar den aktuella girningen för ändeffektorn i grader.

Usage:
arm.get_yaw()

Parametrar

Beskrivning

Den här metoden har inga parametrar.

# Print the current yaw of the end effector
brain.print(arm.get_yaw())

can_arm_reach_to#

can_arm_reach_to returnerar om 6-axlig arm kan flytta ändeffektorn till en specificerad x-, y- och z-koordinat.

Använd den här metoden för att kontrollera en målposition innan du använder move_to.

  • True — 6-axlig arm kan nå den begärda positionen.

  • False — 6-axlig arm kan inte nå den begärda positionen.

Usage:
arm.can_arm_reach_to(x, y, z)

Parameter

Beskrivning

x

Målpositionens x-koordinat i millimeter.

y

Y-koordinaten för målpositionen i millimeter.

z

Z-koordinaten för målpositionen i millimeter.

# Move the 6-Axis Arm to (100, -20, 50) if it can reach
if arm.can_arm_reach_to(100, -20, 50):
    arm.move_to(100, -20, 50)

can_arm_reach_inc#

can_arm_reach_inc returnerar om 6-axlig arm kan flytta ändeffektorn med ett angivet x-, y- och z-avstånd från dess aktuella position.

Använd den här metoden för att kontrollera en relativ rörelse innan du använder move_inc.

  • True — 6-axlig arm kan utföra den begärda rörelsen.

  • False — 6-axlig arm kan inte utföra den begärda rörelsen.

Usage:
arm.can_arm_reach_inc(x, y, z)

Parameter

Beskrivning

x

Avståndet som ska förflyttas längs x-axeln i millimeter.

y

Avståndet att förflytta sig längs y-axeln i millimeter.

z

Avståndet som ska förflyttas längs z-axeln i millimeter.

# Increment the 6-Axis Arm 100 mm along the x-axis if possible
if arm.can_arm_reach_inc(100, 0, 0):
    arm.move_inc(100, 0, 0)

can_end_effector_reach_to#

can_end_effector_reach_to returnerar om ändeffektorn kan rotera till en specificerad girnings-, rullnings- och tippningsorientering.

Använd den här metoden för att kontrollera ett måls orientering innan du använder move_end_effector_to.

  • True — Ändeffektorn kan nå den begärda orienteringen.

  • False — Ändeffektorn kan inte nå den begärda orienteringen.

Usage:
arm.can_end_effector_reach_to(yaw, roll, pitch)

Parameter

Beskrivning

yaw

Målets girvinkel, i grader.

roll

Målets rullvinkel, i grader.

pitch

Målets lutningsvinkel, i grader.

# Rotate the end effector to 90 degrees of roll if possible
if arm.can_end_effector_reach_to(0, 90, 0):
    arm.move_end_effector_to(0, 90, 0)

can_end_effector_reach_inc#

can_end_effector_reach_inc returnerar om ändeffektorn kan rotera med en specificerad girnings-, rullnings- och lutningsmängd från sin nuvarande orientering.

Använd den här metoden för att kontrollera en relativ orienteringsrörelse innan du använder move_end_effector_inc.

  • True — Ändeffektorn kan utföra den begärda rotationen.

  • False — Ändeffektorn kan inte utföra den begärda rotationen.

Usage:
arm.can_end_effector_reach_inc(yaw, roll, pitch)

Parameter

Beskrivning

yaw

Förändringen i girning, i grader.

roll

Förändringen i rullning, i grader.

pitch

Förändringen i tonhöjd, i grader.

# Increment the end effector by 10 degrees of pitch if possible
if arm.can_end_effector_reach_inc(0, 0, 10):
    arm.move_end_effector_inc(0, 0, 10)

get_timeout#

get_timeout returnerar timeout-värdet som används av 6-axliga armrörelsemetoder i millisekunder.

Usage:
arm.get_timeout()

Parametrar

Beskrivning

Den här metoden har inga parametrar.

# Print the current movement timeout in milliseconds
brain.print(arm.get_timeout())

is_connected#

is_connected returnerar om 6-axlig arm är ansluten till hjärnan.

  • True — 6-axlig arm är ansluten till hjärnan.

  • False — 6-axlig arm är inte ansluten till hjärnan.

Usage:
arm.is_connected()

Parametrar

Beskrivning

Den här metoden har inga parametrar.

# Print whether the 6-Axis Arm is connected
brain.print(arm.is_connected())

Återuppringningar#

control_stopped#

control_stopped registrerar en funktion som körs när kontrollstopp är aktiverat.

Den här metoden returnerar en instans av klassen Event.

Usage:
arm.control_stopped(callback, arg)

Parameter

Beskrivning

callback

En tidigare definierad funktion som körs när kontrollstopp är aktiverat.

arg

Valfritt. En tupel som innehåller argument som ska skickas till callback-funktionen. Se Använda funktioner med parametrar för mer information.

# Define a function to run when control stop is enabled
def when_control_stopped():
    brain.print("The arm has been control stopped")

# Run when_control_stopped when the 6-Axis Arm is control stopped
arm.control_stopped(when_control_stopped)

Konstruktörer#

Arm#

Arm skapar ett 6-axligt armobjekt.

Usage:
Arm()

Parametrar

Beskrivning

Denna konstruktor har inga parametrar.

# Construct a 6-Axis Arm named arm with the Arm class
arm = Arm()