Deutsch English |
Was tun, wenn der Roboter nicht geradeaus fährt?
Nachteil der preisgünstigen Roboter ist die oft ungenügende Präzision. Einige Roboter bewegen sich beim Befehl forward() exakt geradeaus, einige eher auf einem Linksbogen, andere auf einem Rechtsbogen. Mit dem Befehl
calibrate(offset, differential, arcScaling)
kann man den Roboter genauer einstellen. Der Befehl calibrate() benötigt drei Parameter, die standardmässig auf 0 gesetzt sind.
offset (Range: (-10, 50)). Minimal power der Motoren. Abhängig vom Ladezustand der Batterie)
differential (Range: (-150, 150)). Regelt den Links- bzw. Rechtsdrall. Wenn Roboter beim Befehl forward() eher auf einem Linksbogen fährt, muss man einen negativen Wert wählen. Wenn der Roboter beim Befehl forward() eher auf einem Rechtsbogen fährt, muss man eine positive Zahl wählen.
arcScalling (Range: (-50, 50)). Kalibriert den Roboter beim fahren auf einem Links- oder Rechtsbogen (Befehle leftArc(radius) und rightArc(radius)) Positiver Wert, falls der Roboterradius zu gross ist, negativer Wert, falls der Roboterradius zu klein ist.
Beispiel 1: Kalibrierung beim Geradeausfahren
Kallibrierung beim Linksdrall | Kallibrierung beim Rechtsdrall |
from mbrobot import * calibrate(0, -15, 0) forward() delay(4000) stop() |
from mbrobot import * calibrate(0, 20, 0) forward() delay(4000) stop() |
Beispiel 2: Anpassen des Radius bei leftArc() und rightArc()
Kallibrierung falls der Radius des Roboters grösser als 20 cm ist |
from mbrobot import * calibrate(0, 0, 10) leftArc(0.2) delay(4000) rightArc(0.2) delay(4000) stop() |
Die grösse der Parameter müssen Sie für ihren Roboter durch Probieren festlegen und die Zeile calibrate() in allen Programmen, in welchen Sie präzisere Bewegung erreichen möchten, einfügen.
Wenn Sie mit mbRobot Plus V2 arbeiten, müssen Sie die Importzeile from mbrobot_plusV2 import * verwenden.