Brazo#

Inicializando la clase Arm#

Un brazo de 6 ejes se crea utilizando el siguiente constructor:

Brazo(puerto)

Este constructor utiliza un parámetro:

Parámetro

Descripción

puerto

Un Puerto inteligente válido al que está conectado el brazo de 6 ejes.

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

Este objeto “arm” se utilizará en todos los ejemplos posteriores a lo largo de esta documentación de API cuando se haga referencia a los métodos de la clase Arm.

Métodos de clase#

move_to()#

El método move_to(x, y, z, wait) mueve el efector final a la posición absoluta X, Y y Z solicitada.

Este puede ser un método de espera o sin espera dependiendo de si se utiliza el parámetro wait.

Parámetros

Descripción

incógnita

La coordenada x a la que moverse, en milímetros.

y

La coordenada y a la que moverse, en milímetros.

z

La coordenada z a la que moverse, en milímetros.

esperar

Opcional. El parámetro wait determina si el método bloqueará el método subsiguiente (wait=True) o permitirá la ejecución inmediata (wait=False). Si no se especifica, el valor predeterminado para el parámetro wait es wait=True.

Devuelve: Verdadero si el brazo de 6 ejes se ha movido a la posición solicitada cuando la espera es Verdadero. Falso si no lo hizo.

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

move_inc()#

El método move_inc(x, y, z, wait) mueve el efector final según las distancias X, Y y Z solicitadas.

Este puede ser un método de espera o sin espera dependiendo de si se utiliza el parámetro wait.

Parámetros

Descripción

incógnita

La distancia en el eje x a recorrer, en milímetros.

y

La distancia en el eje y a recorrer, en milímetros.

z

La distancia en el eje z a recorrer, en milímetros.

esperar

Opcional. El parámetro wait determina si el método bloqueará el método subsiguiente (wait=True) o permitirá la ejecución inmediata (wait=False). Si no se especifica, el valor predeterminado para el parámetro wait es wait=True.

Devuelve: Verdadero si el brazo de 6 ejes se ha movido a la posición solicitada cuando la espera es Verdadero. Falso si no lo hizo.

# Move the Arm +100 millimeters on the y-axis.
arm.move_inc(0, 100, 0)

move_end_effector_to()#

El método move_end_effector_to(yaw, roll, pitch, wait) mueve el efector final a la orientación absoluta de guiñada, balanceo y cabeceo solicitada.

Este puede ser un método de espera o sin espera dependiendo de si se utiliza el parámetro wait.

Parámetros

Descripción

guiñada

El ángulo alrededor del eje z al que debe apuntar el efector final, en grados.

rollo

El ángulo alrededor del eje x al que debe apuntar el efector final, en grados.

paso

El ángulo alrededor del eje y al que debe apuntar el efector final, en grados.

esperar

Opcional. El parámetro wait determina si el método bloqueará el método subsiguiente (wait=True) o permitirá la ejecución inmediata (wait=False). Si no se especifica, el valor predeterminado para el parámetro wait es wait=True.

Devuelve: Verdadero si el efector final se ha movido a la orientación solicitada cuando la espera es Verdadero. Falso si no lo ha hecho.

# Orient the End Effector to point towards 
# 90 degrees around the x-axis.
arm.move_end_effector_to(0, 90, 0)

move_end_effector_inc()#

El método move_end_effector_inc(yaw, roll, pitch, wait) mueve el efector final a la orientación relativa de guiñada, balanceo y cabeceo solicitada.

Este puede ser un método de espera o sin espera dependiendo de si se utiliza el parámetro wait.

Parámetros

Descripción

guiñada

El ángulo alrededor del eje z en el que debe cambiar el efector final, en grados.

rollo

El ángulo alrededor del eje x en el que debe cambiar el efector final, en grados.

paso

El ángulo alrededor del eje y en el que debe cambiar el efector final, en grados.

esperar

Opcional. El parámetro wait determina si el método bloqueará el método subsiguiente (wait=True) o permitirá la ejecución inmediata (wait=False). Si no se especifica, el valor predeterminado para el parámetro wait es wait=True.

Devuelve: Verdadero si el efector final se ha movido a la orientación solicitada cuando la espera es Verdadero. Falso si no lo ha hecho.

# Orient the End Effector -50 degrees on the y-axis.
arm.move_end_effector_inc(0, 0, -50)

set_speed()#

El método set_speed(speed) establece la velocidad de los movimientos.

Parámetros

Descripción

velocidad

La velocidad a la que debe moverse el brazo de 6 ejes.

Devoluciones: Ninguna.

set_end_effector_type()#

El método set_end_effector_type(type) establece el tipo de efector final en magnet o pen.

Parámetros

Descripción

tipo

Un [EndEffectorType] válido (https://api.vex.com/exp/home/python/Enums.html#end-effector-types).

Devuelve: «Verdadero» si se configuró el tipo solicitado. «Falso» si no se configuró.

# Set the End Effector type to the Magnet Pickup Tool.
arm.set_end_effector_type(MAGNET)

set_end_effector_magnet()#

El método set_end_effector_magnet(state) establece la herramienta de recogida de imán del efector final como habilitada o deshabilitada.

Parámetros

Descripción

estado

Verdadero para habilitar la herramienta de recogida de imán. Falso para deshabilitarla.

Devoluciones: Ninguna.

# Enable the Magnet Pickup Tool.
arm.set_end_effector_magnet(True)

set_pen_offset()#

El método set_pen_offset(zOffset) establece el desplazamiento del eje z del efector final del lápiz.

Parámetros

Descripción

zOffset

El nuevo desplazamiento en MM. Un valor z positivo indica hacia arriba.

Devoluciones: Ninguna.

set_control_stop()#

El método set_control_stop(state) desactiva el brazo y coloca los motores de la articulación en modo de freno.

Si la parada de control está habilitada, no se podrá deshabilitar a menos que se reinicie todo el proyecto.

Parámetros

Descripción

estado

Verdadero para deshabilitar más movimientos lineales o conjuntos.

Devoluciones: Ninguna.

control_stopped()#

El método control_stopped(callback, arg) registra una función que se llamará cuando se habilita el tope de control del brazo de 6 ejes.

Parámetros

Descripción

llamar de vuelta

Una función que se llamará cuando se detenga el control del brazo de 6 ejes

arg

Opcional. Una tupla que se utiliza para pasar argumentos a la función de devolución de llamada

Devuelve: Una instancia de la clase Event.

# Define a function when_control_stopped
def when_control_stopped():
    # Print to the Brain's screen that the Arm has been
    # control stopped.
    brain.screen.print("The arm has been control stopped")

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

can_arm_reach_to()#

El método can_arm_reach_to(x, y, z) verifica si el efector final puede moverse a la posición absoluta X, Y y Z solicitada.

Parámetros

Descripción

incógnita

La coordenada x a la que moverse, en milímetros.

y

La coordenada y a la que moverse, en milímetros.

z

La coordenada z a la que moverse, en milímetros.

Devuelve: «Verdadero» si el brazo puede moverse a la posición solicitada. «Falso» si no puede.

# Check if the Arm can move to the (100, -20, 50).
if arm.can_arm_reach_to(100, -20, 50):
    # Move the Arm to (100, -20, 50).
    arm.move_to(100, -20, 50)

can_arm_reach_inc()#

El método can_arm_reach_inc(x, y, z) verifica si el efector final puede moverse a la posición relativa X, Y y Z solicitada.

Parámetros

Descripción

incógnita

La distancia en el eje x a recorrer, en milímetros.

y

La distancia en el eje y a recorrer, en milímetros.

z

La distancia en el eje z a recorrer, en milímetros.

Devuelve: «Verdadero» si el brazo puede moverse a la posición solicitada. «Falso» si no puede.

# Check if the Arm can increment its position 
# +100 mm along the x-axis.
if arm.can_arm_reach_inc(100, 0, 0):
    # Increment the Arm +100 mm along the x-axis.
    arm.move_inc(100, 0, 0)

can_end_effector_reach_to()#

El método can_end_effector_reach_to(yaw, roll, pitch) verifica si el efector final puede moverse a la orientación absoluta de guiñada, balanceo y cabeceo solicitada.

Parámetros

Descripción

guiñada

El ángulo alrededor del eje z al que debe apuntar el efector final, en grados.

rollo

El ángulo alrededor del eje x al que debe apuntar el efector final, en grados.

paso

El ángulo alrededor del eje y al que debe apuntar el efector final, en grados.

Devuelve: Verdadero si el efector final puede moverse a la orientación solicitada. Falso si no puede.

# Check If the arm can orient to 90 degrees on the x-axis.
if arm.can_end_effector_reach_to(0, 90, 0):
    # Orient towards 90 degrees on the x-axis.
    arm.move_end_effector_to(0, 90, 0)

can_end_effector_reach_inc()#

El método can_end_effector_reach_inc(yaw, roll, pitch) verifica si el efector final puede moverse a la orientación relativa solicitada de guiñada, balanceo y cabeceo.

Parámetros

Descripción

guiñada

El ángulo alrededor del eje z en el que debe cambiar el efector final, en grados.

rollo

El ángulo alrededor del eje x en el que debe cambiar el efector final, en grados.

paso

El ángulo alrededor del eje y en el que debe cambiar el efector final, en grados.

Devuelve: Verdadero si el efector final puede moverse a la orientación solicitada. Falso si no puede.

# Check if the End Effector can increment its orientation
# +10 degrees on the y-axis.
if arm.can_end_effector_reach_inc(0, 0, 10):
    # Increment the End Effector by +10 degrees on the y-axis.
    arm.move_end_effector_inc(0, 0, 10)

is_done()#

El método is_done() se utiliza para verificar si el brazo de 6 ejes se está moviendo actualmente o no.

Devuelve: «Verdadero» si el brazo de 6 ejes está realizando actualmente un movimiento. «Falso» si no lo está haciendo.

def main():
    # Move the Arm to (-100, 200, 100) and let subsequent 
    # methods execute.
    arm.move_to(-100, 200, 100, False)
    # Repeat the methods until the Arm is done moving.
    while not arm.is_done():
        # Print the Arm's current y position to the Brain's
        # screen every .25 seconds.
        brain.print(arm.get_y())
        brain.next_row()
        wait(0.25, SECONDS)

get_x()#

El método get_x() devuelve la posición x del efector final.

Devuelve: La posición x del efector final en MM.

def main():
    # Print the current x position of the Arm in millimeters.
    brain.print(arm.get_x())

get_y()#

El método get_y() devuelve la posición y del efector final.

Devuelve: La posición y del efector final en MM.

def main():
    # Print the current y position of the Arm in millimeters.
    brain.print(arm.get_y())

get_z()#

El método get_z() solicita la posición z del efector final.

Devuelve: La posición z del efector final en MM.

def main():
    # Print the current z position of the Arm in millimeters.
    brain.print(arm.get_z())

get_pitch()#

El método get_pitch() solicita el tono actual del efector final.

Devuelve: El tono actual del efector final en grados.

def main():
    # Print the current pitch of the Arm in degrees.
    brain.print(arm.get_pitch())

get_roll()#

El método get_roll() solicita el giro actual del efector final.

Devuelve: El balance actual del efector final en grados.

def main():
    # Print the current roll of the Arm in degrees.
    brain.print(arm.get_roll())

get_yaw()#

El método get_yaw() solicita la guiñada actual del efector final.

Devuelve: La guiñada actual del efector final en grados.

def main():
    # Print the current yaw of the Arm in degrees.
    brain.print(arm.get_yaw())

set_timeout()#

El método set_timeout(timeout, units) establece el valor de tiempo de espera utilizado al mover el brazo de 6 ejes.

Parámetros

Descripción

se acabó el tiempo

El nuevo valor de tiempo de espera.

unidades

Un tipo TimeUnits válido. La unidad predeterminada es MSEC.

Devoluciones: Ninguna.

get_timeout()#

El método get_timeout() obtiene el valor de tiempo de espera actual utilizado por los métodos de movimiento del brazo de 6 ejes.

Devuelve: El valor de tiempo de espera en milisegundos.

# Get the current timeout value of the 6-Axis Arm.
value = arm.get_timeout()

is_connected()#

El método is_connected() comprueba si el brazo CTE está conectado. Esta función de compatibilidad devuelve el mismo resultado que la función installed().

Este es un método sin espera y permite que el siguiente método se ejecute sin demora.

Devuelve: Verdadero si el brazo está conectado al cerebro en el puerto inteligente asociado. Falso si no lo está.

installed()#

El método installed() verifica la conexión del dispositivo.

Este es un método sin espera y permite que el siguiente método se ejecute sin demora.

Devuelve: «Verdadero» si el dispositivo está conectado. «Falso» si no lo está.

timestamp()#

El método timestamp() devuelve la marca de tiempo del último paquete de estado recibido del Arm.

Este es un método sin espera y permite que el siguiente método se ejecute sin demora.

Devuelve: La marca de tiempo del último paquete de estado recibido del Arm en milisegundos.