Brazo de 6 ejes#

Introducción#

El brazo robótico VEX de 6 ejes mueve un efector final en un espacio tridimensional, controla la orientación del efector final y funciona con herramientas conectadas, como la herramienta de recogida de imanes o la herramienta de soporte de lápiz.

A continuación se muestra una lista de todos los métodos disponibles:

Acciones: mueva el brazo de 6 ejes a posiciones u orientaciones.

  • move_to — Mueve el efector final a una coordenada x, y y z especificada.

  • move_inc — Mueve el efector final una distancia específica de su posición actual.

  • move_end_effector_to — Gira el efector final a una orientación de guiñada, balanceo y cabeceo especificada.

  • move_end_effector_inc — Gira el efector final una cantidad específica de guiñada, balanceo y cabeceo.

Mutadores: configure el movimiento, las herramientas y los ajustes de control.

  • set_speed — Establece la velocidad de movimiento utilizada por el brazo de 6 ejes.

  • set_end_effector_type — Establece el tipo de efector final conectado al brazo de 6 ejes.

  • set_end_effector_magnet — Activa o libera la herramienta de recogida de imanes.

  • set_pen_offset — Establece el desplazamiento del eje z utilizado con la herramienta Portaplumas.

  • set_control_stop — Habilita la parada de control para el brazo de 6 ejes.

  • set_timeout — Establece el tiempo de espera utilizado por los métodos de movimiento del brazo de 6 ejes.

Getters: devuelve el estado de movimiento, la posición, la orientación y los valores de conexión.

  • is_done — Devuelve si el brazo de 6 ejes ha terminado de moverse.

  • get_x — Devuelve la posición x actual del efector final.

  • get_y — Devuelve la posición y actual del efector final.

  • get_z — Devuelve la posición z actual del efector final.

  • get_pitch — Devuelve el tono actual del efector final.

  • get_roll — Devuelve el rollo actual del efector final.

  • get_yaw — Devuelve la guiñada actual del efector final.

  • can_arm_reach_to — Devuelve si el brazo de 6 ejes puede alcanzar una posición especificada.

  • can_arm_reach_inc — Devuelve si el brazo de 6 ejes puede moverse una distancia específica.

  • can_end_effector_reach_to — Devuelve si el efector final puede alcanzar una orientación específica.

  • can_end_effector_reach_inc — Devuelve si el efector final puede rotar una cantidad específica.

  • get_timeout — Devuelve el valor de tiempo de espera actual utilizado por los métodos de movimiento.

  • is_connected — Devuelve si el brazo de 6 ejes está conectado al cerebro.

Devoluciones de llamada: ejecuta funciones cuando ocurren eventos ARM.

  • control_stopped — Registra una función para que se ejecute cuando se habilita la parada de control.

Constructor: crea manualmente un objeto de brazo de 6 ejes.

  • Arm — Crea un objeto de brazo de 6 ejes.

Esta página es para usar el brazo de 6 ejes por sí solo con el mosaico CTE. Para usar el brazo de 6 ejes con otros componentes de la celda de trabajo CTE, como neumáticos o transportadores, conecte el brazo de 6 ejes a un cerebro EXP y use la página correspondiente brazo EXP.

Acciones#

move_to#

move_to mueve el brazo de 6 ejes a las coordenadas x, y y z especificadas.

Las coordenadas x, y y z describen la posición del efector final en el espacio tridimensional. Utilice can_arm_reach_to antes de este método si la posición objetivo puede estar fuera del espacio de trabajo accesible del brazo de 6 ejes.

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

Parámetro

Descripción

x

La coordenada x de la posición objetivo en milímetros.

y

La coordenada y de la posición objetivo en milímetros.

z

La coordenada z de la posición objetivo en milímetros.

wait

Opcional. wait=True (predeterminado) hace que el proyecto espere hasta que se complete el movimiento antes de continuar. wait=False inicia el movimiento e inmediatamente continúa a la siguiente línea de código.

# 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 mueve el brazo de 6 ejes a una distancia específica de su posición actual a lo largo de los ejes x, y y z.

Utilice este método para moverse con respecto a donde está ahora el efector final. Utilice can_arm_reach_inc antes de este método si el movimiento puede colocar el brazo de 6 ejes fuera de su espacio de trabajo accesible.

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

Parámetro

Descripción

x

La distancia para moverse a lo largo del eje x en milímetros.

y

La distancia para moverse a lo largo del eje y en milímetros.

z

La distancia para moverse a lo largo del eje z en milímetros.

wait

Opcional. wait=True (predeterminado) hace que el proyecto espere hasta que se complete el movimiento antes de continuar. wait=False inicia el movimiento e inmediatamente continúa a la siguiente línea de código.

# 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 girar el efector final del brazo de 6 ejes a una orientación de guiñada, balanceo y cabeceo especificada.

La orientación describe cómo se gira el efector final. La yaw gira alrededor del eje z, el roll gira alrededor del eje x y el pitch gira alrededor del eje y.

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

Parámetro

Descripción

yaw

El ángulo de guiñada objetivo, en grados.

roll

El ángulo de balanceo objetivo, en grados.

pitch

El ángulo de paso objetivo, en grados.

wait

Opcional. wait=True (predeterminado) hace que el proyecto espere hasta que se complete el movimiento antes de continuar. wait=False inicia el movimiento e inmediatamente continúa a la siguiente línea de código.

# 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 gira el efector final del brazo de 6 ejes una cantidad específica de guiñada, balanceo y cabeceo desde su orientación actual.

Utilice este método para girar en relación con la guiñada, el balanceo o el cabeceo actuales del efector final.

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

Parámetro

Descripción

yaw

El cambio en la guiñada, en grados.

roll

El cambio de rollo, en grados.

pitch

El cambio de tono, en grados.

wait

Opcional. wait=True (predeterminado) hace que el proyecto espere hasta que se complete el movimiento antes de continuar. wait=False inicia el movimiento e inmediatamente continúa a la siguiente línea de código.

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

Mutadores#

set_speed#

set_speed establece la velocidad de movimiento utilizada por el brazo de 6 ejes para los métodos de movimiento.

La velocidad del brazo de 6 ejes se establece en 50% al inicio de un proyecto.

Usage:
arm.set_speed(speed)

Parámetro

Descripción

speed

La velocidad de movimiento del brazo de 6 ejes, del 1 al 100 por ciento.

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

set_end_effector_type#

set_end_effector_type establece el tipo de efector final conectado al brazo de 6 ejes.

Cuando se cambia el tipo de efector final, el brazo de 6 ejes ajusta automáticamente su desplazamiento z para que coincida con la herramienta seleccionada. El tipo de efector final se establece Arm.MAGNET en Arm.MAGNET al comienzo de un proyecto.

Usage:
arm.set_end_effector_type(type)

Parámetro

Descripción

type

La herramienta unida al brazo de 6 ejes Arm.MAGNET Arm.MAGNET (Magnet Pickup Tool) o Arm.PEN (Pen Holder Tool).

# 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 activa o libera la herramienta de recogida de imanes.

El estado del imán permanece activo hasta que otro método set_end_effector_magnet lo cambia. El estado del imán se restablece a False al inicio de un proyecto.

Usage:
arm.set_end_effector_magnet(state)

Parámetro

Descripción

state

Estado de la herramienta de recogida de imanes: True para recoger y sostener objetos o False para dejar caer cualquier objeto retenido y dejar de recoger objetos nuevos.

# 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 establece el desplazamiento del eje z utilizado cuando la herramienta de soporte de lápiz está conectada al brazo de 6 ejes.

Establezca el tipo de efector final en Arm.PEN antes de usar este método. Si no se selecciona la herramienta Portaplumas, este método no tiene efecto.

El desplazamiento de la pluma es la distancia desde la parte superior de la herramienta de soporte de pluma hasta la punta del marcador de borrado en seco. Al comienzo de un proyecto, el desplazamiento de la pluma se establece en 0. Un desplazamiento de la pluma de 0 coloca el origen del eje z del brazo en el punto donde la herramienta del soporte de la pluma se conecta al brazo de 6 ejes.

Usage:
arm.set_pen_offset(zOffset)

Parámetro

Descripción

zOffset

El valor de desplazamiento de la pluma en milímetros.

# 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 habilita la parada de control para el brazo de 6 ejes.

Cuando la parada de control está habilitada, el brazo de 6 ejes detiene inmediatamente cualquier movimiento y no ejecutará ningún otro método de movimiento del brazo hasta que se reinicie el proyecto.

Usage:
arm.set_control_stop(state)

Parámetro

Descripción

state

Opcional. True (predeterminado) habilita la parada de control. False no habilita la parada de control.

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

set_timeout#

set_timeout establece el valor de tiempo de espera utilizado al mover el brazo de 6 ejes.

Si un movimiento no termina antes de que se alcance el tiempo de espera, el proyecto continúa a la siguiente línea de código.

Usage:
arm.set_timeout(timeout, units)

Parámetro

Descripción

timeout

El nuevo valor de tiempo de espera.

units

Opcional. La unidad de tiempo: MSEC (milisegundos, predeterminado), SECONDSo SEC.

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

Getters#

is_done#

is_done devuelve si el brazo de 6 ejes ha terminado de moverse.

Este método es útil después de llamar a un método de movimiento con wait=False.

  • True : el brazo de 6 ejes ha terminado de moverse.

  • False — El brazo de 6 ejes todavía se está moviendo.

Usage:
arm.is_done()

Parámetros

Descripción

Este método no tiene parámetros.

# 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 devuelve la posición x actual del efector final en milímetros.

Utilice este método para leer dónde se encuentra actualmente el efector final a lo largo del eje x.

Usage:
arm.get_x()

Parámetros

Descripción

Este método no tiene parámetros.

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

get_y#

get_y devuelve la posición y actual del efector final en milímetros.

Utilice este método para leer dónde se encuentra actualmente el efector final a lo largo del eje y.

Usage:
arm.get_y()

Parámetros

Descripción

Este método no tiene parámetros.

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

get_z#

get_z devuelve la posición z actual del efector final en milímetros.

Utilice este método para leer dónde se encuentra actualmente el efector final a lo largo del eje z.

Usage:
arm.get_z()

Parámetros

Descripción

Este método no tiene parámetros.

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

get_pitch#

get_pitch devuelve el tono actual del efector final en grados.

Usage:
arm.get_pitch()

Parámetros

Descripción

Este método no tiene parámetros.

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

get_roll#

get_roll devuelve el rollo actual del efector final en grados.

Usage:
arm.get_roll()

Parámetros

Descripción

Este método no tiene parámetros.

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

get_yaw#

get_yaw devuelve la guiñada actual del efector final en grados.

Usage:
arm.get_yaw()

Parámetros

Descripción

Este método no tiene parámetros.

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

can_arm_reach_to#

can_arm_reach_to devuelve si el brazo de 6 ejes puede mover el efector final a una coordenada x, y y z especificada.

Utilice este método para verificar una posición objetivo antes de usar move_to.

  • True : el brazo de 6 ejes puede alcanzar la posición solicitada.

  • False — El brazo de 6 ejes no puede alcanzar la posición solicitada.

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

Parámetro

Descripción

x

La coordenada x de la posición objetivo en milímetros.

y

La coordenada y de la posición objetivo en milímetros.

z

La coordenada z de la posición objetivo en milímetros.

# 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 devuelve si el brazo de 6 ejes puede mover el efector final una distancia x, y y z especificada desde su posición actual.

Utilice este método para comprobar un movimiento relativo antes de usar move_inc.

  • True : el brazo de 6 ejes puede realizar el movimiento solicitado.

  • False — El brazo de 6 ejes no puede realizar el movimiento solicitado.

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

Parámetro

Descripción

x

La distancia para moverse a lo largo del eje x en milímetros.

y

La distancia para moverse a lo largo del eje y en milímetros.

z

La distancia para moverse a lo largo del eje z en milímetros.

# 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 devuelve si el efector final puede girar a una orientación de guiñada, balanceo y cabeceo especificada.

Utilice este método para verificar la orientación de un objetivo antes de usar move_end_effector_to.

  • True : el efector final puede alcanzar la orientación solicitada.

  • False — El efector final no puede alcanzar la orientación solicitada.

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

Parámetro

Descripción

yaw

El ángulo de guiñada objetivo, en grados.

roll

El ángulo de balanceo objetivo, en grados.

pitch

El ángulo de paso objetivo, en grados.

# 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 devuelve si el efector final puede girar una cantidad específica de guiñada, balanceo y cabeceo desde su orientación actual.

Utilice este método para comprobar un movimiento de orientación relativa antes de usar move_end_effector_inc.

  • True : el efector final puede realizar la rotación solicitada.

  • False — El efector final no puede realizar la rotación solicitada.

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

Parámetro

Descripción

yaw

El cambio en la guiñada, en grados.

roll

El cambio de rollo, en grados.

pitch

El cambio de tono, en grados.

# 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 devuelve el valor de tiempo de espera utilizado por los métodos de movimiento del brazo de 6 ejes en milisegundos.

Usage:
arm.get_timeout()

Parámetros

Descripción

Este método no tiene parámetros.

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

is_connected#

is_connected devuelve si el brazo de 6 ejes está conectado al cerebro.

  • True : el brazo de 6 ejes está conectado al cerebro.

  • False — El brazo de 6 ejes no está conectado al cerebro.

Usage:
arm.is_connected()

Parámetros

Descripción

Este método no tiene parámetros.

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

Devoluciones de llamada#

control_stopped#

control_stopped registra una función que se ejecuta cuando la parada de control está habilitada.

Este método devuelve una instancia de la clase Event.

Usage:
arm.control_stopped(callback, arg)

Parámetro

Descripción

callback

Una función previamente definida que se ejecuta cuando la parada de control está habilitada.

arg

Opcional. Una tupla que contiene argumentos para pasar a la función de devolución de llamada. Consulte Uso de funciones con parámetros para obtener más información.

# 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)

Constructores#

Arm#

Arm crea un objeto de brazo de 6 ejes.

Usage:
Arm()

Parámetros

Descripción

Este constructor no tiene parámetros.

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