Hey Leute ich hab das Problem endgültig gelöst....
1) ich fahre alle Geschwindigkeiten mit Geschwindigkeiten von 60, damit sich keine Unregelmäßigkeiten wie oben genannt ergeben.
2) Beim Problem mit den unterschiedlichen Rotationswinkeln.....hierl lasse ich den Roboter immer nur nach links drehen, da die Linksumdrehung wunderbar passt.
D.h. wenn ich 90 Gerade nach rechts will, lass ich ihn 270 nach links drehen, wenn ich 45 Grad nach rechts will dreh ich 315 nach links usw....
HEY UNGLAUBLICH ABER WAHR:
Mein Roboter ist jetzt so exakt eingestellt, das er 20,6 Meter zurücklegt (mit 9 Drehungen) und um nur 3 mm versetzt auf seinem Ausganspunkt zurückkehrt (ohne Hilfe von Sensoren)!!!
Eine ganze Woche hab ich dafür verkackt!
Er fährt durchs Wohnzimmer, Vorzimmer, bis in die Mitte der Küche, dreht um und kehrt zurück zum Ausgangspunkt, aber seht selbst
Folgendes Test-Programm hab ich dafür geschrieben:
Code:while(true){ task_RP6System(); //4 in 1 move(DRIVE_SPEED,FWD,DIST_MM(1200),true); rotate(ROTATION_SPEED,LEFT,270,true); move(DRIVE_SPEED,FWD,DIST_MM(2500),true); rotate(ROTATION_SPEED,LEFT,315,true); move(DRIVE_SPEED,FWD,DIST_MM(2000),true); rotate(ROTATION_SPEED,LEFT,315,true); move(DRIVE_SPEED,FWD,DIST_MM(2100),true); rotate(ROTATION_SPEED,LEFT,270,true); move(DRIVE_SPEED,FWD,DIST_MM(3500),true); rotate(ROTATION_SPEED,LEFT,180,true); move(DRIVE_SPEED,FWD,DIST_MM(3500),true); rotate(ROTATION_SPEED,LEFT,90,true); move(DRIVE_SPEED,FWD,DIST_MM(2100),true); rotate(ROTATION_SPEED,LEFT,45,true); move(DRIVE_SPEED,FWD,DIST_MM(2000),true); rotate(ROTATION_SPEED,LEFT,45,true); move(DRIVE_SPEED,FWD,DIST_MM(2500),true); rotate(ROTATION_SPEED,LEFT,90,true); move(DRIVE_SPEED,FWD,DIST_MM(1200),true); }
Lesezeichen