Brazo con CTE#
Introducción#
The arm class provides control for the 6-Axis CTE Arm, allowing precise positioning and movement of the robotic arm in 3D space. This class supports both absolute and relative positioning, end effector control, and various sensor functions for monitoring arm status and capabilities.
Constructores de clases#
arm(
int32_t index );
Instructor de clase#
Destroys the arm object and releases associated resources.
~arm();
Parámetros#
Parámetro |
Tipo |
Descripción |
|---|---|---|
|
|
A valid Smart Port that the 6-Axis Arm is connected to, written as |
Ejemplo#
// Create the arm instance in Port 1
arm Arm = arm(PORT1);
Funciones de los miembros#
The arm classes includes the following member functions:
moveTo - Mueve el efector final a las coordenadas x, y, z solicitadas.
moveInc - Mueve el efector final las distancias x, y y z solicitadas en relación con su posición actual.
moveEndEffectorTo - Mueve el efector final a la orientación absoluta de guiñada, balanceo y cabeceo solicitada.
moveEndEffectorInc - Mueve el efector final a la orientación relativa de guiñada, balanceo y cabeceo solicitada.
setEndEffectorType - Establece el tipo de efector final conectado al brazo.
setEndEffectorMagnet - Establece el imán del efector final como habilitado o deshabilitado.
setPenOffset - Establece el desplazamiento del eje z del efector final del lápiz.
setControlStop - Deshabilita el brazo y pone los motores de las articulaciones en modo de freno.
controlStopped - Registra una función que se llamará cuando se habilite la parada del control del brazo.
canArmReachTo - Devuelve si el efector final puede moverse a las coordenadas x, y, z solicitadas.
canArmReachInc - Devuelve si el efector final puede moverse una distancia a lo largo de los ejes x, y y z.
canEndEffectorReachTo - Devuelve si el efector final puede moverse a la orientación absoluta de guiñada, balanceo y cabeceo solicitada.
canEndEffectorReachInc - Devuelve si el efector final puede moverse una distancia a lo largo de las orientaciones de guiñada, cabeceo o balanceo.
isDone – Devuelve el estado del movimiento del brazo.
getX – Devuelve la posición X del efector final.
getY – Devuelve la posición y del efector final.
getZ – Devuelve la posición z del efector final.
getYaw – Devuelve la guiñada actual del efector final.
getRoll – Devuelve el rollo actual del efector final.
getPitch – Devuelve el tono actual del efector final.
setTimeout – Establece el valor de tiempo de espera utilizado al mover el brazo.
isConnected – Devuelve true si el brazo CTE está conectado.
timestamp – Devuelve la marca de tiempo del último paquete de estado recibido del Arm.
instalado – Devuelve si el dispositivo está conectado.
moveTo#
Mueve el efector final a las coordenadas x, y, z solicitadas.
Available Functionsbool moveTo(
double x,
double y,
double z,
bool waitForCompletion = true );
Parámetro |
Tipo |
Descripción |
|---|---|---|
|
|
La coordenada X a la que hay que moverse, en milímetros. |
|
|
La coordenada Y a la que hay que moverse, en milímetros. |
|
|
La coordenada Z a la que hay que desplazarse, en milímetros. |
|
|
|
Devuelve un valor booleano que indica si el brazo alcanzó la posición objetivo.
trueif the arm reached the target position.falseif the arm did not reach the target position or ifwaitForCompletionparameter is set tofalse.
// Move the arm to the (200, 0, 100)
Arm.moveTo(200, 0, 100);
moveInc#
Mueve el efector final las distancias x, y, z solicitadas con respecto a su posición actual.
Available Functionsbool moveInc(
double x,
double y,
double z,
bool waitForCompletion = true );
Parámetro |
Tipo |
Descripción |
|---|---|---|
|
|
La distancia que hay que recorrer en el eje X, en milímetros. |
|
|
La distancia que hay que recorrer en el eje Y, en milímetros. |
|
|
La distancia que hay que recorrer en el eje Z, en milímetros. |
|
|
|
Devuelve un valor booleano que indica si el brazo alcanzó la posición objetivo.
trueif the arm reached the target position.falseif the arm did not reach the target position or ifwaitForCompletionparameter is set tofalse.
// Move the Arm +100 millimeters on the Y axis
Arm.moveInc(0, 100, 0);
moveEndEffectorTo#
Mueve el efector final a la orientación absoluta de guiñada, balanceo y cabeceo solicitada.
Available Functionsbool moveEndEffectorTo(
double yaw,
double roll = 0,
double pitch = 0,
bool waitForCompletion = true);
Parámetro |
Tipo |
Descripción |
|---|---|---|
|
|
El ángulo alrededor del eje Z hacia el que debe apuntar el efector final, en grados. |
|
|
El ángulo alrededor del eje X hacia el que debe apuntar el efector final, en grados. El valor predeterminado es 0. |
|
|
El ángulo alrededor del eje Y hacia el que debe apuntar el efector final, en grados. El valor predeterminado es 0. |
|
|
|
Devuelve un valor booleano que indica si el efector final alcanzó la orientación objetivo.
trueif the end effector reached the target orientation.falseif the end effector did not reach the target orientation or ifwaitForCompletionparameter is set tofalse.
// Orient the end effector to point towards
// 90 degrees around the X axis
Arm.moveEndEffectorTo(0, 90, 0);
moveEndEffectorInc#
Mueve el efector final a la orientación relativa de guiñada, balanceo y cabeceo solicitada.
Available Functionsbool moveEndEffectorInc(
double yaw,
double roll = 0,
double pitch = 0,
bool waitForCompletion = true );
Parámetro |
Tipo |
Descripción |
|---|---|---|
|
|
El ángulo alrededor del eje Z que debe cambiar el efector final, en grados. |
|
|
El ángulo alrededor del eje X que debe cambiar el efector final, en grados. El valor predeterminado es 0. |
|
|
El ángulo alrededor del eje Y que debe cambiar el efector final, en grados. El valor predeterminado es 0. |
|
|
|
Devuelve un valor booleano que indica si el efector final alcanzó la orientación objetivo.
trueif the end effector reached the target orientation.falseif the end effector did not reach the target orientation or ifwaitForCompletionparameter is set tofalse.
// Orient the end effector -50 degrees on the Y axis
Arm.moveEndEffectorInc(0, 0, -50);
setSpeed#
Establece la velocidad de los movimientos del brazo.
Available Functionsvoid setSpeed(
uint32_t speed );
Parámetro |
Tipo |
Descripción |
|---|---|---|
|
|
La velocidad a la que debe moverse el brazo en mm/s. |
Esta función no devuelve ningún valor.
setEndEffectorType#
Establece el tipo de efector final en imán o bolígrafo.
Available Functionsbool setEndEffectorType(
endEffectorType type,
bool waitForCompletion = true));
Parámetro |
Tipo |
Descripción |
|---|---|---|
|
|
An end effector type:
|
|
|
|
Devuelve un valor booleano que indica si se ha establecido el tipo solicitado.
trueif the requested type was set.falseif the requested type was not set or ifwaitForCompletionparameter is set tofalse.
// Set the end effector to the Magnet Pickup Tool.
Arm.setEndEffectorType(magnet);
setEndEffectorMagnet#
Configura el imán del efector final como habilitado o deshabilitado.
Available Functionsvoid setEndEffectorMagnet(
bool enabled );
Parámetro |
Tipo |
Descripción |
|---|---|---|
|
|
|
Esta función no devuelve ningún valor.
Examples// Enable the Magnet Pickup Tool
Arm.setEndEffectorMagnet(true);
setPenOffset#
Establece el desplazamiento del eje Z del efector final del lápiz.
Available Functionsvoid setPenOffset(
double zOffset );
Parámetro |
Tipo |
Descripción |
|---|---|---|
|
|
El nuevo desplazamiento en milímetros. Un valor z positivo indica hacia arriba. |
Esta función no devuelve ningún valor.
setControlStop#
Desactiva el brazo y pone los motores de las articulaciones en modo de frenado.
Available Functionsvoid setControlStop(
bool state = true);
Parámetro |
Tipo |
Descripción |
|---|---|---|
|
|
|
Esta función no devuelve ningún valor.
controlStopped#
Registra una función que se llamará cuando se habilite la parada de control del brazo.
Available Functionsvoid controlStopped(
void (* callback)(void) );
Parámetro |
Tipo |
Descripción |
|---|---|---|
|
|
Una función que se llamará cuando se detenga el control del brazo. |
Esta función no devuelve ningún valor.
Examples// 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");
}
// Run whenControlStopped when the the arm is control stopped.
Arm.controlStopped(whenControlStopped);
canArmReachTo#
Devuelve un valor booleano si el efector final puede moverse a las coordenadas x, y, z solicitadas.
Available Functionsbool canArmReachTo( double x, double y, double z );
Parámetro |
Tipo |
Descripción |
|---|---|---|
|
|
La coordenada X a la que hay que moverse, en milímetros. |
|
|
La coordenada Y a la que hay que moverse, en milímetros. |
|
|
La coordenada Z a la que hay que desplazarse, en milímetros. |
Returns true if the arm can move to the requested position, false if it cannot.
// 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);
}
canArmReachInc#
Devuelve verdadero si el efector final puede moverse una distancia a lo largo de los ejes x, y y z.
Available Functionsbool canArmReachInc(
double x,
double y,
double z );
Parámetro |
Tipo |
Descripción |
|---|---|---|
|
|
La distancia que hay que recorrer en el eje X, en milímetros. |
|
|
La distancia que hay que recorrer en el eje Y, en milímetros. |
|
|
La distancia que hay que recorrer en el eje Z, en milímetros. |
Devuelve un valor booleano que indica si el brazo puede moverse a la posición solicitada.
trueif the arm can move to the requested position.falseif the arm cannot move to the requested position.
// 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);
}
canEndEffectorReachTo#
Devuelve verdadero si el efector final puede moverse a la orientación absoluta de guiñada, balanceo y cabeceo solicitada.
Available Functionsbool canEndEffectorReachTo(
double yaw,
double roll = 0,
double pitch = 0 );
Parámetro |
Tipo |
Descripción |
|---|---|---|
|
|
El ángulo alrededor del eje Z hacia el que debe apuntar el efector final, en grados. |
|
|
El ángulo alrededor del eje X hacia el que debe apuntar el efector final, en grados. El valor predeterminado es 0. |
|
|
El ángulo alrededor del eje Y hacia el que debe apuntar el efector final, en grados. El valor predeterminado es 0. |
Devuelve un valor booleano que indica si el efector final puede moverse a la orientación solicitada.
trueif the end effector can move to the requested orientation.falseif the end effector cannot move to the requested orientation.
// 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);
}
canEndEffectorReachInc#
Devuelve verdadero si el efector final puede moverse una distancia en las direcciones de guiñada, cabeceo o balanceo.
Available Functionsbool canEndEffectorReachInc(
double yaw,
double roll = 0,
double pitch = 0 );
Parámetro |
Tipo |
Descripción |
|---|---|---|
|
|
El ángulo alrededor del eje z que abarca el movimiento del efector final, expresado en grados. |
|
|
El ángulo alrededor del eje x que abarca el movimiento del efector final, expresado en grados. El valor predeterminado es 0. |
|
|
El ángulo alrededor del eje Y que el efector final recorrerá, expresado en grados. El valor predeterminado es 0. |
Devuelve un valor booleano que indica si el efector final puede moverse a la orientación solicitada.
trueif the end effector can move to the requested orientation.falseif the end effector cannot move to the requested orientation.
// 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);
}
isDone#
Devuelve el estado del movimiento del brazo.
Available Functionsbool isDone();
Esta función no tiene parámetros.
Return ValuesDevuelve un valor booleano que indica si el brazo ha completado su movimiento.
trueif the arm has completed its movement.falseif the arm is still moving.
// 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);
}
getX#
Devuelve la posición X del efector final.
Available Functionsfloat getX();
Esta función no tiene parámetros.
Return ValuesReturns a float representing the X position of the end effector in millimeters.
// Print the current x-position of the arm in degrees
Brain.Screen.print(Arm.getX());
getY#
Devuelve la posición Y del efector final.
Available Functionsfloat getY();
Esta función no tiene parámetros.
Return ValuesReturns a float representing the y-position of the end effector in millimeters.
// Print the current y-position of the Arm in degrees
Brain.Screen.print(Arm.getY());
getZ#
Devuelve la posición z del efector final.
Available Functionsfloat getZ();
Esta función no tiene parámetros.
Return ValuesReturns a float representing the z-position of the end effector in millimeters.
// Print the current z-position of the Arm in degrees
Brain.Screen.print(Arm.getZ());
getYaw#
Devuelve el ángulo de guiñada actual del efector final.
Available Functionsfloat getYaw();
Esta función no tiene parámetros.
Return ValuesReturns a float representing the current yaw of the end effector in degrees.
// Print the current yaw of the Arm in degrees
Brain.Screen.print(Arm.getYaw());
getRoll#
Devuelve el valor actual del efector final.
Available Functionsfloat getRoll();
Esta función no tiene parámetros.
Return ValuesReturns a float representing the current roll of the end effector in degrees.
// Print the current roll of the Arm in degrees
Brain.Screen.print(Arm.getRoll());
getPitch#
Devuelve el tono actual del efector final.
Available Functionsfloat getPitch();
Esta función no tiene parámetros.
Return ValuesReturns a float representing the current pitch of the end effector in degrees.
// Print the current pitch of the Arm in degrees
Brain.Screen.print(Arm.getPitch());
setTimeout#
Establece el valor de tiempo de espera que se utiliza al mover el brazo.
Available Functionsvoid setTimeout(
int32_t timeout,
timeUnits units );
Parámetro |
Tipo |
Descripción |
|---|---|---|
|
|
El nuevo valor de tiempo de espera. |
|
|
The unit that represents the time:
|
Esta función no devuelve ningún valor.
isConnected#
Devuelve un valor si el brazo CTE está conectado. Esta es una función de compatibilidad que devuelve el mismo valor que la función installed().
Available Functionsbool isConnected();
Esta función no tiene parámetros.
Return ValuesDevuelve un valor booleano que indica si el brazo está conectado al cerebro a través del puerto inteligente asociado.
trueif the arm is connected to the brain on the associated smartport.falseif the arm is not connected to the brain on the associated smartport.
timestamp#
Devuelve la marca de tiempo del último paquete de estado recibido del Arm.
Available Functionsuint32_t timestamp();
Esta función no tiene parámetros.
Return ValuesReturns the timestamp of the last status packet as a uint32_t in milliseconds.
installed#
Devuelve un valor si el dispositivo está conectado.
Available Functionsbool installed();
Esta función no tiene parámetros.
Return ValuesDevuelve un valor booleano que indica si el dispositivo está conectado.
trueif the device is connected.falseif the device is not connected.