Antriebsstrang#

Einführung#

Der Antriebsstrang der Klasse drivetrain steuert das Fahr- und Kurvenverhalten eines Roboters. Ein Antriebsstrang besteht aus Motoren und Rädern, die zusammenarbeiten, um den Roboter zu bewegen.

A drivetrain does not use an Inertial Sensor, Gyro Sensor, or GPS Sensor for heading-based or rotation-based turns. It can drive forward or reverse and turn left or right, but it cannot turn to a specific heading or rotation. For heading-based and rotation-based turns, use the smartdrive class.

Abgeleitete Klassen#

Die Klasse drivetrain dient als Basisklasse für die folgenden abgeleiteten Klassen:

  • smartdrive - Diese Klasse fügt Unterstützung für Inertialsensoren, GPS-Sensoren oder Gyrosensoren hinzu, um richtungs- und rotationsbasierte Kurvenfahrten zu ermöglichen.

Klassenkonstruktoren#

1 - Erstellt einen Antriebsstrang unter Verwendung von motor_group Objekten für die linke (&l) und rechte (&r) Seite.

drivetrain(
    motor_group      &l,
    motor_group      &r,
    double           wheelTravel = 320,
    double           trackWidth = 320,
    double           wheelBase = 130,
    distanceUnits    unit = mm,
    double           externalGearRatio = 1.0 );

2 - Erstellt einen Antriebsstrang unter Verwendung vorhandener motor Objekte für die linke (&l) und rechte (&r) Seite.

drivetrain(
    motor            &l,
    motor            &r,
    double           wheelTravel = 320,
    double           trackWidth = 320,
    double           wheelBase = 130,
    distanceUnits    unit = mm,
    double           externalGearRatio = 1.0 );

Klassendestruktor#

Zerstört das Antriebsstrangobjekt drivetrain zugehörigen Ressourcen frei.

virtual ~drivetrain();

Parameter#

Parameter

Typ

Beschreibung

&l / &r

motor_group / motor

The left and right motors or motor groups. Both parameters must use the same type: either two motor_group objects or two motor objects.

wheelTravel

double

Der Umfang der Antriebsräder. Der Standardwert ist 320.

trackWidth

double

Der Abstand zwischen dem linken und rechten Rad. Der Standardwert ist 320.

wheelBase

double

Der Abstand zwischen Vorder- und Hinterrädern. Der Standardwert ist 130.

unit

distanceUnits

Die Einheit für wheelTravel, trackWidthund wheelBase: mm (Millimeter, Standard) oder inches.

externalGearRatio

double

Das Übersetzungsverhältnis, das zur Anpassung der Antriebsdistanzen verwendet wird, falls Zahnräder zum Einsatz kommen. Der Standardwert ist 1.0.

Beispiel#

// Create the left and right motor objects
motor leftMotor = motor(PORT1, false);
motor rightMotor = motor(PORT9, true);

// Create the drivetrain object
drivetrain myDrivetrain = drivetrain(
    leftMotor,  // left motor object
    rightMotor, // right motor object
    259.34,     // wheelTravel
    320,        // trackWidth
    40,         // wheelBase
    mm,         // unit
    1.0 );      // externalGearRatio

Mitgliedsfunktionen#

Die Antriebsstrangklasse drivetrain umfasst die folgenden Memberfunktionen:

Aktionen – Den Roboter bewegen und drehen.

  • drive - Bewegt den Roboter endlos vorwärts oder rückwärts.

  • driveFor - Bewegt den Roboter vorwärts oder rückwärts über eine bestimmte Distanz.

  • turn - Dreht den Roboter endlos nach links oder rechts.

  • turnFor - Dreht den Roboter um eine bestimmte Anzahl von Grad nach links oder rechts.

  • stop - Stoppt die Bewegung des Roboters.

Einstellungen – Antriebsstrangeinstellungen anpassen.

  • setDriveVelocity - Sagt dem Roboter, wie schnell er fahren soll.

  • setTurnVelocity - Sagt dem Roboter, wie schnell er sich drehen soll.

  • setStopping - Gibt an, wie der Roboter seine Bewegung stoppen wird: durch Bremsen, Ausrollen oder Anhalten.

  • setTimeout - Legt fest, wie viele Sekunden der Roboter versucht, eine Bewegung abzuschließen.

Werte – Bewegungsstatus prüfen.

  • isDone - Gibt als booleschen Wert zurück, ob der Roboter seine Bewegung beendet hat.

  • isMoving - Gibt als booleschen Wert zurück, ob sich der Roboter bewegt.

  • velocity - Gibt die Geschwindigkeit des Roboters zurück.

  • current - Gibt zurück, wie viel elektrischer Strom der Antriebsstrang verbraucht.

  • power - Gibt zurück, wie schnell der Antriebsstrang Energie verbraucht.

  • torque - Gibt zurück, wie viel Drehmoment der Antriebsstrang verwendet.

  • efficiency - Gibt an, wie effizient der Antriebsstrang die Leistung nutzt.

  • temperature - Gibt zurück, wie warm der Antriebsstrang ist.

  • voltage - Gibt die dem Antriebsstrang zugeführte elektrische Spannung zurück.

Bevor Sie eine beliebige Memberfunktion vom Typ drivetrain aufrufen, muss ein Objekt drivetrain erstellt werden, wie unten dargestellt:

/* This constructor is required when using VS Code.
Drivetrain configuration is generated automatically
in VEXcode using the Device Menu. Replace the values
as needed. */

// Create the left and right motor objects
motor leftMotor = motor(PORT1, false);
motor rightMotor = motor(PORT9, true);

// Create the drivetrain object
drivetrain myDrivetrain = drivetrain(
    leftMotor,  // left motor object
    rightMotor, // right motor object
    259.34,     // wheelTravel
    320,        // trackWidth
    40,         // wheelBase
    mm,         // unit
    1.0 );      // externalGearRatio

Aktionen#

fahren#

Der Antrieb drive und zwar unbegrenzt. Der Roboter bewegt sich so lange, bis er eine andere Aktion erhält, z. B. Drehen oder Anhalten. Die Begrenzung für Drehzahl (RPM) oder DPS wird durch das Übersetzungsverhältnis des Antriebsstrangs bestimmt.

Available Functions

1 - Antriebe mit der aktuell konfigurierten Antriebsgeschwindigkeit.

void drive(
    directionType dir );

2 - Fährt mit der angegebenen Geschwindigkeit.

void drive(
    directionType dir,
    double        velocity,
    velocityUnits units );

Parameters

Parameter

Typ

Beschreibung

dir

directionType

Die Bewegungsrichtung des Roboters: forward oder reverse.

velocity

double

Die Fahrgeschwindigkeit variiert zwischen 0 % und 100 % bei Verwendung velocityUnits::pct, zwischen 0 und 600 U/min bei Verwendung rpmoder zwischen 0 und 3600 Grad pro Sekunde bei Verwendung dps. Wird keine Geschwindigkeit angegeben, fährt der Roboter mit der aktuellen Fahrgeschwindigkeit.

units

velocityUnits

Die Geschwindigkeitseinheit: velocityUnits::pct (Prozent), rpm (Umdrehungen pro Minute) oder dps (Grad pro Sekunde).

Return Values

Diese Funktion gibt keinen Wert zurück.

Notes
  • drive ist nicht wartend; das Projekt wird unmittelbar nach dem Aufruf die nächste Codezeile ausführen.

  • Der Antriebsstrang bewegt sich so lange weiter, bis stop aufgerufen wird oder eine andere Antriebsstrang-Bewegungsfunktion (wie z. B. driveFor oder turn) ausgeführt wird.

  • Funktionen wie isDone und isMoving sind für drivenicht anwendbar, da es keine zielbasierte Bewegung verwendet (hat keinen distance Parameter).

Examples
// Drive forward and back
myDrivetrain.drive(forward);
wait(2, seconds);
myDrivetrain.drive(reverse, 25, rpm);
wait(2, seconds);
myDrivetrain.stop();

fahren für#

Der Befehl driveFor bewegt den Roboter vorwärts oder rückwärts über eine bestimmte Strecke. Standardmäßig wartet das Projekt, bis der Roboter die Bewegung abgeschlossen hat, bevor die nächste Codezeile ausgeführt wird. Bei Drehzahl (RPM) oder DPS (DPS) wird der Grenzwert durch das Übersetzungsverhältnis des Antriebsstrangs bestimmt.

Available Functions

1 - Fährt in der angegebenen Richtung über eine bestimmte Distanz mit der aktuell konfigurierten Fahrgeschwindigkeit.

bool driveFor(
    directionType dir,
    double        distance,
    distanceUnits units,
    bool          waitForCompletion = true );

2 - Fährt in eine Richtung, die von der Entfernung abhängt, unter Verwendung der aktuell konfigurierten Fahrgeschwindigkeit.

bool driveFor(
    double        distance,
    distanceUnits units,
    bool          waitForCompletion = true );

3 - Fährt in eine Richtung, die von der Entfernung abhängt, mit der angegebenen Geschwindigkeit.

bool driveFor(
    double        distance,
    distanceUnits units,
    double        velocity,
    velocityUnits units_v,
    bool          waitForCompletion = true );

4 - Fährt in der angegebenen Richtung über eine bestimmte Distanz mit der angegebenen Geschwindigkeit.

bool driveFor(
    directionType dir,
    double        distance,
    distanceUnits units,
    double        velocity,
    velocityUnits units_v,
    bool          waitForCompletion = true );

Parameters

Parameter

Typ

Beschreibung

dir

directionType

Die Bewegungsrichtung des Roboters: forward oder reverse.

distance

double

Die vom Roboter zurückgelegte Strecke.

units

distanceUnits

Die Distanzeinheit: mm (Millimeter), inchesoder cm (Zentimeter).

velocity

double

Die Fahrgeschwindigkeit variiert zwischen 0 % und 100 % bei Verwendung velocityUnits::pct, zwischen 0 und 600 U/min bei Verwendung rpmoder zwischen 0 und 3600 Grad pro Sekunde bei Verwendung dps. Wird keine Geschwindigkeit angegeben, fährt der Roboter mit der aktuellen Fahrgeschwindigkeit.

units_v

velocityUnits

Die Geschwindigkeitseinheit: velocityUnits::pct (Prozent), rpm (Umdrehungen pro Minute) oder dps (Grad pro Sekunde).

waitForCompletion

bool

true (Standard) bewirkt, dass das Projekt wartet, bis der Roboter seine Bewegung abgeschlossen hat, bevor die nächste Codezeile ausgeführt wird. false bewirkt, dass die nächste Codezeile sofort ausgeführt wird.

Return Values

Gibt als booleschen Wert zurück, ob der Roboter die Zieldistanz erreicht hat.

  • true - Der Roboter hat die Zieldistanz erreicht.

  • false - Der Roboter hat die Bewegung nicht beendet, oder die Funktion kehrte zurück, bevor die Bewegung abgeschlossen war, weil waitForCompletion auf false gesetzt war.

Notes
  • Die Ausführung einer anderen Antriebsbewegungsfunktion (z. B. drive oder turnFor), während driveFor im Gange ist, unterbricht die aktuelle Bewegung.

  • Da driveFor zielbasiert ist (verwendet einen distance Parameter), funktionieren Funktionen wie isDone und isMoving mit driveFor.

Examples
// Drive 200 mm, then back 200 mm
myDrivetrain.driveFor(forward, 200, mm);
myDrivetrain.driveFor(reverse, 200, mm);

drehen#

turn dreht ihn endlos nach links oder rechts. Der Roboter dreht sich so lange, bis er eine andere Aktion erhält, z. B. Fahren oder Anhalten. Die Begrenzung für Drehzahl (RPM) oder Schubkraft (DPS) hängt vom Übersetzungsverhältnis des Antriebsstrangs ab.

Available Functions

1 - Führt Kurven mit der aktuell konfigurierten Kurvengeschwindigkeit durch.

void turn(
    turnType dir );

2 - Dreht sich mit der angegebenen Geschwindigkeit.

void turn(
    turnType     dir,
    double       velocity,
    velocityUnits units );

Parameters

Parameter

Typ

Beschreibung

dir

turnType

Die Richtung, in die sich der Roboter dreht: left oder right.

velocity

double

Die Drehgeschwindigkeit variiert zwischen 0 % und 100 % bei Verwendung velocityUnits::pct, zwischen 0 und 600 U/min bei Verwendung rpmoder zwischen 0 und 3600 Grad pro Sekunde bei Verwendung dps. Wird keine Geschwindigkeit angegeben, dreht sich der Roboter mit der aktuellen Drehgeschwindigkeit.

units

velocityUnits

Die Geschwindigkeitseinheit: velocityUnits::pct (Prozent), rpm (Umdrehungen pro Minute) oder dps (Grad pro Sekunde).

Return Values This function does not return a value. Notes
  • turn bedeutet, dass nicht gewartet wird; das Projekt wird unmittelbar nach dem Aufruf die nächste Codezeile ausführen.

  • Der Antriebsstrang dreht sich so lange weiter, bis stop aufgerufen wird oder eine andere Antriebsstrang-Bewegungsfunktion (wie z. B. turnFor oder drive) ausgeführt wird.

  • Funktionen wie isDone und isMoving sind für turnnicht anwendbar, da es keine zielbasierte Bewegung verwendet (hat keinen angle Parameter).

Examples
// Turn right, then left, then stop
myDrivetrain.turn(right);
wait(2, seconds);
myDrivetrain.turn(left);
wait(2, seconds);
myDrivetrain.stop();

turnFor#

turnFor dreht den Roboter um einen bestimmten Winkel nach links oder rechts. Die Drehung erfolgt relativ zur aktuellen Position des Roboters. Standardmäßig wartet das Projekt, bis der Roboter die Drehung abgeschlossen hat, bevor die nächste Codezeile ausgeführt wird. Bei Drehzahl (RPM) oder DPS (DPS) wird der Grenzwert durch das Übersetzungsverhältnis des Antriebsstrangs angepasst.

Available Functions

1 - Führt Drehungen um den angegebenen Winkel mit der aktuell konfigurierten Drehgeschwindigkeit durch.

bool turnFor(
    double        angle,
    rotationUnits units,
    bool          waitForCompletion = true );

2 - Dreht sich in die angegebene Richtung um einen Winkel mit der aktuell konfigurierten Drehgeschwindigkeit.

bool turnFor(
    turnType      dir,
    double        angle,
    rotationUnits units,
    bool          waitForCompletion = true );

3 - Umdrehungen um den angegebenen Winkel mit der angegebenen Geschwindigkeit.

bool turnFor(
    double        angle,
    rotationUnits units,
    double        velocity,
    velocityUnits units_v,
    bool          waitForCompletion = true );

4 - Dreht sich in der angegebenen Richtung um einen Winkel mit der angegebenen Geschwindigkeit.

bool turnFor(
    turnType      dir,
    double        angle,
    rotationUnits units,
    double        velocity,
    velocityUnits units_v,
    bool          waitForCompletion = true );

Parameters

Parameter

Typ

Beschreibung

dir

turnType

Die Richtung, in die sich der Roboter dreht: left oder right.

angle

double

Der Winkel, um den sich der Roboter dreht.

units

rotationUnits

Die Dreheinheit: deg ), rev ) oder raw ). Eine Umdrehung entspricht 360 Grad.

velocity

double

Die Drehgeschwindigkeit variiert zwischen 0 % und 100 % bei Verwendung velocityUnits::pct, zwischen 0 und 600 U/min bei Verwendung rpmoder zwischen 0 und 3600 Grad pro Sekunde bei Verwendung dps. Wird keine Geschwindigkeit angegeben, dreht sich der Roboter mit der aktuellen Drehgeschwindigkeit.

units_v

velocityUnits

Die Geschwindigkeitseinheit: velocityUnits::pct (Prozent), rpm (Umdrehungen pro Minute) oder dps (Grad pro Sekunde).

waitForCompletion

bool

true (Standard) bewirkt, dass das Projekt wartet, bis der Roboter seine Drehung abgeschlossen hat, bevor die nächste Codezeile ausgeführt wird. false bewirkt, dass die nächste Codezeile sofort ausgeführt wird.

Return Values

Gibt als booleschen Wert zurück, ob der Roboter den Zielwinkel erreicht hat.

  • true - Der Roboter hat den Zielwinkel erreicht.

  • false - Der Roboter hat die Drehung nicht beendet, oder die Funktion kehrte zurück, bevor die Drehung abgeschlossen war, weil waitForCompletion auf false gesetzt war.

Notes
  • Die Ausführung einer anderen Antriebsbewegungsfunktion (z. B. turn oder drive), während turnFor im Gange ist, unterbricht die aktuelle Bewegung.

  • Da turnFor zielbasiert ist (verwendet einen angle Parameter), funktionieren Funktionen wie isDone und isMoving mit turnFor.

Examples
// Turn right then left
myDrivetrain.turnFor(right, 90, degrees);
wait(1, seconds);
myDrivetrain.turnFor(left, 90, degrees);

stoppen#

stop stoppt die Bewegung des Roboters. Falls ein Stoppmodus angegeben ist, steuert dieser, wie der Roboter bei diesem Funktionsaufruf stoppt.

Available Functions

1 - Stoppt den Antriebsstrang mit dem aktuell konfigurierten Stoppmodus.

void stop();

2 - Unterbricht den Antriebsstrang mit Hilfe des angegebenen Bremsmodus.

void stop(
    brakeType mode );

Parameters

Parameter

Typ

Beschreibung

mode

brakeType

So stoppt der Roboter:

  • brake – Hält sofort an.
  • coast – Verlangsamt bis zum Stillstand.
  • hold – Hält sofort an und hält die Radposition.

Return Values

Diese Funktion gibt keinen Wert zurück.

Examples
// Drive forward, then coast to a stop
myDrivetrain.setDriveVelocity(100, percent);
myDrivetrain.drive(forward);
wait(2, seconds);
myDrivetrain.stop(coast);

Mutatoren#

setDriveVelocity#

Der Wert setDriveVelocity gibt die Fahrgeschwindigkeit des Roboters vor. Ein höherer Prozentsatz beschleunigt den Roboter, ein niedrigerer verlangsamt ihn. Die Drehzahlbegrenzung wird durch das Übersetzungsverhältnis des Antriebsstrangs bestimmt.

Jedes Projekt beginnt standardmäßig damit, dass der Roboter mit 50 % Geschwindigkeit fährt.

Hinweis: Eine höhere Geschwindigkeit lässt den Roboter schneller fahren, kann aber die Präzision verringern. Eine niedrigere Geschwindigkeit lässt den Roboter langsamer fahren, kann aber die Präzision erhöhen.

Available Functions
void  setDriveVelocity(
  double velocity,
  velocityUnits units );

Parameters

Parameter

Typ

Beschreibung

velocity

double

Die Geschwindigkeit, mit der gefahren werden soll, von 0 % bis 100 %, wenn velocityUnits::pctverwendet wird, von 0 bis 600 U/min, wenn rpmverwendet wird, oder von 0 bis 3600 Grad pro Sekunde, wenn dps verwendet wird.

units

velocityUnits

Die Geschwindigkeitseinheit: velocityUnits::pct (Prozent), rpm (Umdrehungen pro Minute) oder dps (Grad pro Sekunde).

Return Values

Diese Funktion gibt keinen Wert zurück.

Notes
  • Die Antriebsgeschwindigkeit gilt für alle nachfolgenden Antriebsstrang-Bewegungsfunktionen (wie drive und driveFor), es sei denn, im Funktionsaufruf wird eine spezifische Geschwindigkeit angegeben.

Examples
// Drive forward, then coast to a stop
myDrivetrain.setDriveVelocity(100, percent);
myDrivetrain.drive(forward);
wait(2, seconds);
myDrivetrain.stop(coast);

setTurnVelocity#

Der Wert setTurnVelocity gibt dem Roboter die Drehgeschwindigkeit vor. Ein höherer Prozentsatz beschleunigt die Drehung, ein niedrigerer verlangsamt sie.

Jedes Projekt beginnt standardmäßig damit, dass sich der Roboter mit 50 % Geschwindigkeit dreht.

Hinweis: Eine höhere Geschwindigkeit führt zu schnelleren Drehungen des Roboters, kann aber die Präzision verringern. Eine niedrigere Geschwindigkeit verlangsamt die Drehung, kann aber die Präzision erhöhen.

Available Functions
void  setTurnVelocity(
  double velocity,
  velocityUnits units );

Parameters

Parameter

Typ

Beschreibung

velocity

double

Die Drehzahl, mit der von 0 % bis 100 % gedreht werden soll, wenn velocityUnits::pctverwendet wird, von 0 bis 600 U/min, wenn rpmverwendet wird, oder von 0 bis 3600 Grad pro Sekunde, wenn dps verwendet wird.

units

velocityUnits

Die Geschwindigkeitseinheit: percent oder pct (Prozent), rpm (Umdrehungen pro Minute) oder dps (Grad pro Sekunde).

Return Values

Diese Funktion gibt keinen Wert zurück.

Notes
  • Die Drehgeschwindigkeit gilt für alle nachfolgenden Drehfunktionen des Antriebsstrangs (wie turn und turnFor), es sei denn, im Funktionsaufruf wird eine bestimmte Geschwindigkeit angegeben.

Examples
// Try default, slow, then fast
myDrivetrain.turnFor(right, 360, degrees);
wait(1, seconds);
myDrivetrain.setTurnVelocity(20, percent);
myDrivetrain.turnFor(right, 360, degrees);
wait(1, seconds);
myDrivetrain.setTurnVelocity(100, percent);
myDrivetrain.turnFor(right, 360, degrees);

setStopping#

setStopping legt fest, wie der Roboter seine Bewegung beendet: durch Bremsen, Ausrollen oder Anhalten.

Available Functions
void setStopping(
  brakeType mode );

Parameters

Parameter

Typ

Beschreibung

mode

brakeType

So stoppt der Roboter:

  • brake – Hält sofort an.
  • coast – Verlangsamt bis zum Stillstand.
  • hold – Hält sofort an und hält die Radposition.

Return Values

Diese Funktion gibt keinen Wert zurück.

Notes
  • Der Stoppmodus gilt für alle nachfolgenden stop-Aufrufe, es sei denn, im Funktionsaufruf wird ein spezifischer Stoppmodus angegeben.

setTimeout#

setTimeout wird festgelegt, wie viele Sekunden der Roboter versucht, eine Bewegung abzuschließen. Gelingt ihm dies nicht, bricht er den Versuch ab und fährt mit der nächsten Codezeile fort. Dadurch wird verhindert, dass der Roboter bei einer Bewegung hängen bleibt.

Available Functions
void  setTimeout(
  int32_t time,
  timeUnits units );

Parameters

Parameter

Typ

Beschreibung

time

int32_t

Die Zeitspanne, in der der Roboter versuchen kann, eine Bewegung abzuschließen. Dies sollte eine positive ganze Zahl sein.

units

timeUnits

Die Zeiteinheit: sec (Sekunden) oder msec (Millisekunden).

Return Values

Diese Funktion gibt keinen Wert zurück.

Notes
  • Das Timeout gilt nur für zielbasierte Antriebsstrang-Bewegungsfunktionen (wie z. B. driveFor und turnFor).

Examples
// Start turning if driving takes too long
myDrivetrain.setTimeout(1, seconds);
myDrivetrain.driveFor(forward, 25, inches);
myDrivetrain.turnFor(right, 90, degrees);

Getter#

ist fertig#

Die Funktion isDone gibt als booleschen Wert zurück, ob der Roboter seine Bewegung beendet hat isDone . Dieser Wert kann verwendet werden, um den Zeitpunkt anderer Verhaltensweisen basierend auf der Bewegung des Roboters zu steuern.

Available Functions
bool isDone( void );

Parameters

Diese Funktion akzeptiert keine Parameter.

Return Values
  • true - Der Roboter hat seine Bewegung beendet.

  • false - Der Roboter bewegt sich noch.

Notes
  • isDone ist kompatibel mit zielbasierten Antriebsstrangbewegungen (Funktionen, die sich zu einem Ziel bewegen, wie z. B. driveFor und turnFor).

  • isDone ist nicht kompatibel mit Funktionen wie drive und turn, da diese keine zielbasierte Bewegung verwenden.

bewegt sich#

Die Funktion isMoving gibt als booleschen Wert zurück, ob sich der Roboter bewegt isMoving . Dieser Wert kann verwendet werden, um den Zeitpunkt anderer Verhaltensweisen basierend auf der Bewegung des Roboters zu steuern.

Available Functions
virtual bool isMoving( void );

Parameters

Diese Funktion akzeptiert keine Parameter.

Return Values
  • true - Der Roboter bewegt sich.

  • false - Der Roboter bewegt sich nicht.

Notes
  • isMoving ist kompatibel mit zielbasierten Antriebsstrangbewegungen (Funktionen, die sich zu einem Ziel bewegen, wie z. B. driveFor und turnFor).

  • isMoving ist nicht kompatibel mit Funktionen wie drive und turn, da diese keine zielbasierte Bewegung verwenden.

Geschwindigkeit#

velocity gibt an, wie schnell der Roboter fährt.

Ein positiver Wert bedeutet, dass der Roboter vorwärts fährt. Ein negativer Wert bedeutet, dass der Roboter rückwärts fährt.

Available Functions
double velocity(
  velocityUnits units );

Parameters

Parameter

Typ

Beschreibung

units

velocityUnits

Die Geschwindigkeitseinheit: percent oder pct (Prozent), rpm (Umdrehungen pro Minute) oder dps (Grad pro Sekunde).

Return Values

Gibt die Antriebsstranggeschwindigkeit als double in der ausgewählten Einheit zurück.

Examples
// Show velocity before and during motion
Brain.Screen.print("Resting: %f", myDrivetrain.velocity(percent));
myDrivetrain.drive(forward, 100, velocityUnits::pct);
wait(1, seconds);
Brain.Screen.newLine();
Brain.Screen.print("Moving: %f", myDrivetrain.velocity(percent));
myDrivetrain.stop();

aktuell#

Die Stromstärke current gibt an, wie viel Strom der Antriebsstrang verbraucht. Die Stromstärke ist die elektrische Menge, die durch den Antriebsstrang fließt. Sie kann je nach Gerät in Ampere (A) oder als Prozentsatz angegeben werden.

Ein höherer Stromwert bedeutet, dass der Antriebsstrang mehr Strom verbraucht. Dies kann vorkommen, wenn der Roboter gegen ein Hindernis drückt oder versucht, sich aus einer festgefahrenen Situation zu befreien.

Dies kann genutzt werden, um zu überprüfen, ob der Antriebsstrang während einer Bewegung überlastet ist. Bleibt der Stromfluss hoch, kann der Antriebsstrang sich erwärmen oder die Energie weniger effizient nutzen.

Available Functions

1 - Gibt den elektrischen Strom des Antriebsstrangs in Ampere zurück.

double current(
    currentUnits units = currentUnits::amp );

2 - Gibt den elektrischen Strom des Antriebsstrangs als Prozentsatz des Maximalwerts zurück.

double current(
    percentUnits units );

Parameters

Parameter

Typ

Beschreibung

units

currentUnits

Die Einheit, in die der Strom zurückgeführt werden soll: amp (Ampere, Standard).

units

percentUnits

Die Einheit, in der der Strom zurückgeführt werden soll: percent oder pct.

Return Values

Gibt den Antriebsstrangstrom als double in der ausgewählten Einheit zurück.

Leistung#

Die Leistungsangabe power gibt an, wie viel Leistung der Antriebsstrang in Watt verbraucht. Die Leistungsangabe zeigt, wie schnell der Antriebsstrang Energie verbraucht.

Ein höherer Leistungswert bedeutet, dass der Antriebsstrang schneller Energie verbraucht. Dies kann vorkommen, wenn der Roboter gegen ein Hindernis drückt oder versucht, sich aus einer festgefahrenen Situation zu befreien.

Dies kann genutzt werden, um Bewegungen zu vergleichen oder zu überprüfen, ob der Antriebsstrang überlastet ist. Bei anhaltend hoher Leistung kann der Antriebsstrang wärmer werden oder die Energie weniger effizient nutzen.

Available Functions
double power(
  powerUnits units = powerUnits::watt );

Parameters

Parameter

Typ

Beschreibung

units

powerUnits

Die Leistungseinheit: watt (Watt, Standard).

Return Values

Gibt die Antriebsstrangleistung als double in Watt zurück.

Drehmoment#

Das Drehmoment gibt an, wie stark der Antriebsstrang drücken oder ziehen kann, während sich die Räder drehen.

torque gibt an, wie viel Drehmoment der Antriebsstrang verwendet, gemessen in Newtonmeter (Nm) oder Inch-Pfund (InLb).

Ein höherer Drehmomentwert bedeutet, dass der Antriebsstrang stärker drückt oder zieht. Dies kann vorkommen, wenn der Roboter gegen ein Hindernis drückt oder versucht, sich aus einer festgefahrenen Situation zu befreien.

Dies kann genutzt werden, um zu überprüfen, ob der Antriebsstrang überlastet ist oder um zu vergleichen, wie viel Schubkraft für verschiedene Bewegungen benötigt wird.

Available Functions
double torque(
  torqueUnits units = torqueUnits::nm );

Parameters

Parameter

Typ

Beschreibung

units

torqueUnits

Die Einheit für das Rückdrehmoment ist: Nm (Newtonmeter, Standard) oder InLb (Zoll-Pfund).

Return Values

Gibt das Antriebsmoment als double in der ausgewählten Einheit zurück.

Effizienz#

efficiency gibt an, wie effizient der Antriebsstrang die Leistung nutzt, als Prozentsatz von 0% bis 100%.

Der Wirkungsgrad gibt an, wie viel der Antriebsleistung für die Bewegung genutzt wird. Ein höherer Wirkungsgrad bedeutet, dass mehr Antriebsleistung für die Bewegung verwendet wird. Ein niedriger Wirkungsgrad kann auftreten, wenn der Antriebsstrang stark beansprucht wird, sich aber kaum bewegt, beispielsweise wenn der Roboter feststeckt oder gegen ein Hindernis stößt.

Dies kann genutzt werden, um Bewegungen zu vergleichen oder zu überprüfen, ob der Antriebsstrang Energie verschwendet, anstatt sie für die Bewegung zu nutzen.

Available Functions
double efficiency(
  percentUnits units = percentUnits::pct );

Parameters

Parameter

Typ

Beschreibung

units

percentUnits

Die Einheit, in der die Effizienz angegeben werden soll: percent oder pct (Standard).

Return Values

Gibt den Wirkungsgrad des Antriebsstrangs als double in der ausgewählten Einheit zurück.

Temperatur#

temperature gibt die durchschnittliche Temperatur des Antriebsstrangs als Prozentsatz von 0% bis 100% zurück.

Die Temperaturanzeige gibt an, wie warm die Antriebsmotoren sind. Eine höhere Temperatur bedeutet, dass die Motoren während des Betriebs wärmer werden. Um ihre volle Leistung zu erbringen, sollten die Motoren unter 55 °C bleiben.

Wenn die Motoren zu heiß werden, reduzieren sie zum Selbstschutz ihren maximalen Strom. Bei 70 °C schalten sich die Motoren ab, bis sie abgekühlt sind.

Dies kann verwendet werden, um zu überprüfen, ob der Antriebsstrang bei wiederholten Bewegungen, langen Fahrten oder beim Drücken gegen ein Objekt zu heiß wird.

Available Functions
double temperature(
  percentUnits units );

Parameters

Parameter

Typ

Beschreibung

units

percentUnits

Die Einheit, in der die Temperatur zurückgegeben werden soll: percent oder pct.

Return Values

Gibt die durchschnittliche Antriebsstrangtemperatur als double in der ausgewählten Einheit zurück.

Notes
  • Ein Rückgabewert von 50% bedeutet, dass die durchschnittliche Motortemperatur ungefähr 45°C (113°F ) beträgt.

  • Der typische Betriebstemperaturbereich für den Antriebsstrang liegt bei etwa 20°C (68°F) bis 70°C (158°F).

Stromspannung#

voltage gibt die dem Antriebsstrang zugeführte elektrische Spannung zurück.

Die Spannung ist der elektrische Druck, der den Antriebsmotoren zugeführt wird. Zusammen mit Strom- und Leistungswerten lässt sich daraus ableiten, wie der Antriebsstrang elektrische Energie nutzt.

Available Functions
double  voltage(
  voltageUnits units = voltageUnits::volt );

Parameters

Parameter

Typ

Beschreibung

units

voltageUnits

Die Einheit, in der die Spannung zurückgegeben werden soll: volt (Volt, Standard) oder voltageUnits::mV (Millivolt).

Return Values

Gibt die Antriebsstrangspannung als double in der ausgewählten Einheit zurück.