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