Brazo de 6 ejes#

Introducción#

El brazo robótico VEX de 6 ejes mueve un efector final en el espacio tridimensional, controla la orientación del efector final y funciona con herramientas acopladas, como la herramienta de recogida magnética o la herramienta de sujeción de bolígrafos.

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, z especificada.

  • move_inc — Mueve el efector final una distancia especificada desde 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.

Motadores: configura 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 acoplado al brazo de 6 ejes.

  • set_end_effector_magnet — Activa o desactiva la herramienta de recogida magnética.

  • set_pen_offset — Establece el desplazamiento del eje z utilizado con la herramienta de soporte de pluma.

  • 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.

Obtenedores: Devuelven el estado del 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 resultado 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 específica.

  • can_arm_reach_inc — Devuelve si el brazo de 6 ejes puede moverse una distancia especificada.

  • 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 girar una cantidad especificada.

  • 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.

Funciones de devolución de llamada: ejecutan funciones cuando ocurren eventos en el brazo.

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

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

  • Arm — Crea un objeto Brazo de 6 ejes.

Esta página sirve para usar el brazo de 6 ejes de forma independiente con el módulo CTE. Para usar el brazo de 6 ejes con otros componentes de la celda de trabajo CTE, como sistemas neumáticos o transportadores, conecte el brazo de 6 ejes a un módulo EXP y utilice la página EXP Arm correspondiente.

Comportamiento#

move_to#

move_to mueve el brazo de 6 ejes a una coordenada x, y, z especificada.

Las coordenadas x, 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 alcanzable 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 el movimiento se complete antes de continuar. wait=False inicia el movimiento y continúa inmediatamente con 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 una distancia especificada desde su posición actual a lo largo de los ejes x, y y z.

Utilice este método para moverse en relación con la posición actual del 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 alcanzable.

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

Parámetro

Descripción

x

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

y

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

z

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

wait

Opcional. wait=True (predeterminado) hace que el proyecto espere hasta que el movimiento se complete antes de continuar. wait=False inicia el movimiento y continúa inmediatamente con 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 gira el efector final del brazo de 6 ejes a una orientación específica de guiñada, balanceo y cabeceo.

La orientación describe cómo gira el efector final. yaw gira alrededor del eje z, roll gira alrededor del eje x y 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 cabeceo objetivo, en grados.

wait

Opcional. wait=True (predeterminado) hace que el proyecto espere hasta que el movimiento se complete antes de continuar. wait=False inicia el movimiento y continúa inmediatamente con 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 rota el efector final del brazo de 6 ejes en una cantidad específica de guiñada, balanceo y cabeceo desde su orientación actual.

Utilice este método para rotar en relación con el guiñada, el balanceo o la inclinación 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 balanceo, en grados.

pitch

El cambio de tono, en grados.

wait

Opcional. wait=True (predeterminado) hace que el proyecto espere hasta que el movimiento se complete antes de continuar. wait=False inicia el movimiento y continúa inmediatamente con 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 ajusta al 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, de 1 a 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 en Arm.MAGNET al inicio del proyecto.

Usage:
arm.set_end_effector_type(type)

Parámetro

Descripción

type

La herramienta acoplada al brazo de 6 ejes: Arm.MAGNET (Herramienta de recogida magnética) o Arm.PEN (Herramienta de sujeción de bolígrafo).

# 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 desactiva 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 magnética: True para recoger y sujetar objetos o False para soltar cualquier objeto sujeto y dejar de recoger nuevos objetos.

# 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 pluma está acoplada al brazo de 6 ejes.

Antes de usar este método, configure el tipo de efector final en Arm.PEN Si no está seleccionada la herramienta Soporte para pluma, este método no tendrá ningún efecto.

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

Usage:
arm.set_pen_offset(zOffset)

Parámetro

Descripción

zOffset

Valor de desplazamiento del lápiz 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 se habilita la parada de control, 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 finaliza antes de que se agote el tiempo de espera, el proyecto continúa con 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 que se llama 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 sigue moviéndose.

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 la posición actual del 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 la posición actual del 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 la posición actual del 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 giro 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 comprobar 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 a recorrer a lo largo del eje x en milímetros.

y

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

z

La distancia a recorrer 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 comprobar la orientación del 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 cabeceo 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 balanceo, 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 se habilita la parada de control.

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

Usage:
arm.control_stopped(callback, arg)

Parámetro

Descripción

callback

Una función definida previamente que se ejecuta cuando se habilita la parada de control.

arg

Opcional. Una tupla que contiene los argumentos que se pasarán 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()