brazo#
Inicializando la clase arm#
Un brazo de 6 ejes se crea utilizando el siguiente constructor:
El constructor arm
crea un brazo CTE de 6 ejes en el puerto especificado.
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 = arm(PORT1);
Este objeto “Arm” se utilizará en todos los ejemplos posteriores en esta documentación de API cuando se haga referencia a los métodos de la clase arm.
Métodos de clase#
moverA()#
El método moveTo(x, y, z, waitForCompletion)
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 waitForCompletion
.
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 a que se complete |
Determina si el comando bloqueará los comandos subsiguientes ( |
Devuelve: true
si el brazo se ha movido a la posición solicitada. false
si no lo hizo.
// Move the arm to the (200, 0, 100).
Arm.moveTo(200, 0, 100);
moverInc()#
El método moveInc(x, y, z, waitForCompletion)
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 waitForCompletion
.
Parámetros |
Descripción |
---|---|
incógnita |
La distancia en el eje X a recorrer, en milímetros. |
y |
La distancia a recorrer en el eje Y, en milímetros. |
z |
La distancia en el eje Z a mover, en milímetros. |
esperar a que se complete |
Determina si el comando bloqueará los comandos subsiguientes ( |
Devuelve: true
si el brazo se ha movido a la posición solicitada. false
si no lo hizo.
// Move the Arm +100 millimeters on the Y axis.
Arm.moveInc(0, 100, 0);
moverFinEfectorA()#
El método moveEndEffectorTo(yaw, roll, pitch, waitForCompletion)
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 waitForCompletion
.
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 a que se complete |
Determina si el comando bloqueará los comandos subsiguientes ( |
Devuelve: true
si el efector final se ha movido a la orientación solicitada. false
si no lo ha hecho.
// Orient the end effector to point towards
// 90 degrees around the X axis.
Arm.moveEndEffectorTo(0, 90, 0);
moveEndEffectorInc()#
El método moveEndEffectorInc(yaw, roll, pitch, waitForCompletion)
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 waitForCompletion
.
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 a que se complete |
Determina si el comando bloqueará los comandos subsiguientes ( |
Devuelve: true
si el efector final se ha movido a la orientación solicitada. false
si no lo ha hecho.
// Orient the end effector -50 degrees on the Y axis.
Arm.moveEndEffectorInc(0, 0, -50);
establecerVelocidad()#
El método setSpeed(speed)
establece la velocidad de los movimientos.
Parámetros |
Descripción |
---|---|
velocidad |
La velocidad a la que debe moverse el brazo. |
Devoluciones: Ninguna.
establecerTipoDeEfectorFinal()#
El método setEndEffectorType(type)
establece el tipo de efector final en imán o bolígrafo.
Parámetros |
Descripción |
---|---|
tipo |
Un [endEffectorType] válido (https://api.vex.com/exp/home/cpp/Enums.html#end-effector-types). |
Devuelve: true
si se configuró el tipo solicitado. false
si no se configuró.
// Set the end effector to the Magnet Pickup Tool.
Arm.setEndEffectorType(magnet);
setEndEfectorMagnet()#
El método setEndEffectorMagnet(state)
establece el imán del efector final como habilitado o deshabilitado.
Parámetros |
Descripción |
---|---|
estado |
|
Devoluciones: Ninguna.
// Enable the Magnet Pickup Tool.
Arm.setEndEffectorMagnet(true);
establecerDesplazamientoDePluma()#
El método setPenOffset(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.
establecerControlStop()#
El método setControlStop(state)
desactiva el brazo y coloca los motores de las articulaciones en modo de freno.
Parámetros |
Descripción |
---|---|
estado |
|
Devoluciones: Ninguna.
controlDetenido()#
El método controlStopped(callback)
registra una función que se llamará cuando se habilita el tope de control del brazo.
Parámetros |
Descripción |
---|---|
llamar de vuelta |
Una función que se llamará cuando se detenga el control del brazo. |
Devoluciones: Ninguna.
// Define the whenControlStopped function with a void
// return type, showing it doesn't return a value.
void whenControlStopped() {
// The brain will print that the arm has been control stopped
// on the Brain's screen.
Brain.Screen.print("The arm has been control stopped");
}
int main() {
// Initializing Robot Configuration. DO NOT REMOVE!
vexcodeInit();
// Run whenControlStopped when the the arm is control stopped.
Arm.controlStopped(whenControlStopped);
}
puedeArmReachTo()#
El método canArmReachTo(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: true
si el brazo puede moverse a la posición solicitada. false
si no puede.
// Check if the arm can move to the (100, -20, 50).
if (Arm.canArmReachTo(100, -20, 50)){
// Move the arm to (100, -20, 50).
Arm.moveTo(100, -20, 50);
}
puedeArmReachInc()#
El método Arm.canArmReachInc(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 a recorrer en el eje Y, en milímetros. |
z |
La distancia en el eje Z a mover, en milímetros. |
Devuelve: true
si el brazo puede moverse a la posición solicitada. false
si no puede.
// Check if the arm can increment by 100 mm along the x-axis.
if (Arm.canArmReachInc(100, 0, 0)){
// Increment the arm by 100 mm along the X axis.
Arm.moveInc(100, 0, 0);
}
puedeFinalizarEfectorAlcanceA()#
El método canEndEffectorReachTo(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: true
si el efector final puede moverse a la orientación solicitada. false
si no puede.
// Check if the arm can orient 25 degrees around the Z axis.
if (Arm.canEndEffectorReachTo(25, 0, 0)){
// Orient to 25 degrees around the Z axis.
Arm.moveEndEffectorTo(25, 0, 0);
}
puedeEndEffectorReachInc()#
El método canEndEffectorReachInc(yaw, roll, pitch)
verifica si el efector final puede moverse a la orientación relativa de guiñada, balanceo y cabeceo solicitada.
Parámetros |
Descripción |
---|---|
guiñada |
El ángulo alrededor del eje Z en el que se moverá el efector final, en grados. |
rollo |
Este parámetro es opcional. Indica el ángulo en grados que se moverá el efector final alrededor del eje X. |
paso |
Este es un parámetro opcional. El ángulo alrededor del eje Y que el efector final alcanzará, en grados. |
Devuelve: true
si el efector final puede moverse a la orientación solicitada. false
si no puede.
// Check If the arm can increment its orientation
// by 10 degrees on the X axis.
if (Arm.canEndEffectorReachInc(0, 10, 0)){
// Move +10 degrees around the X axis.
Arm.moveEndEffectorInc(0, 10, 0);
}
estáHecho()#
El método isDone()
devuelve el estado del movimiento del brazo.
Devuelve: true
si el brazo está realizando actualmente un movimiento. false
si no lo está haciendo.
// Move Arm to (-100, 200, 100) and let subsequent methods execute.
Arm.moveTo(-100, 200, 100, false);
// Keep repeating the methods until the Arm is done moving.
while (!Arm.isDone()) {
// Print the Arm's current Y coordinate on the Brain every .25 seconds.
Brain.Screen.print(Arm.getY());
Brain.Screen.newLine();
wait(0.25, seconds);
}
obtenerX()#
El método getX()
devuelve la posición X del efector final.
Devuelve: Un flotante que representa la posición X del efector final en “mm”.
// Print the current X position of the Arm in degrees.
Brain.Screen.print(Arm.getX());
obtenerY()#
El método getY()
devuelve la posición Y del efector final.
Devuelve: Un flotante que representa la posición Y del efector final en “mm”.
// Print the current Y position of the Arm in degrees.
Brain.Screen.print(Arm.getY());
obtenerZ()#
El método getZ()
solicita la posición Z del efector final.
Devuelve: Un flotante que representa la posición Z del efector final en “mm”.
// Print the current Z position of the Arm in degrees.
Brain.Screen.print(Arm.getZ());
obtenerYaw()#
El método getYaw()
solicita la guiñada actual del efector final.
Devuelve: Un flotante que representa la guiñada actual del efector final en grados.
// Print the current yaw of the Arm in degrees.
Brain.Screen.print(Arm.getYaw());
obtenerRoll()#
El método getRoll()
solicita el giro actual del efector final.
Devuelve: Un flotante que representa el balanceo actual del efector final en grados.
// Print the current roll of the Arm in degrees.
Brain.Screen.print(Arm.getRoll());
obtenerPitch()#
El método getPitch()
solicita el tono actual del efector final.
Devuelve: Un flotante que representa el tono actual del efector final en grados.
// Print the current pitch of the Arm in degrees.
Brain.Screen.print(Arm.getPitch());
establecerTiempo de espera()#
El método setTimeout(timeout, units)
establece el valor de tiempo de espera utilizado al mover el brazo.
Parámetros |
Descripción |
---|---|
se acabó el tiempo |
El nuevo valor de tiempo de espera. |
unidades |
Una unidad de tiempo válida. |
Devoluciones: Ninguna.
está conectado()#
El método isConnected()
comprueba si el brazo CTE está conectado. Esta función de compatibilidad devuelve el mismo resultado que la función installed()
.
Devuelve: true
si el brazo está conectado al cerebro en el puerto inteligente asociado. false
si no lo está.
marca de tiempo()#
El método timestamp()
solicita la marca de tiempo del último paquete de estado recibido del Arm.
Devuelve: Marca de tiempo del último paquete de estado como un entero de 32 bits sin signo en milisegundos.
instalado()#
El método installed()
regresa si el dispositivo está conectado.
Devuelve: true
si el dispositivo está conectado. false
si no lo está.