PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : RP6 Linksdrall ausgleichen?



axel88
31.12.2007, 12:28
Hallo,
habe jetzt endlich einen funktionierenden RP6 von Conrad bekommen. Aber er hat einen linksdrall. In dem Manual steht nur wie man die Distanz beider Antriebe Kalibriert, aber nicht der linken und rechten antriebs kette einzeln... Als anfänger würde ich natürlcih ungern am Anfang direkt die ganze Lib zerpflücken... wie kann ich das schnell lösen das ich mal ein bischen experimenteiren kann? Gruß Axel

Dirk
31.12.2007, 12:37
Hallo axel88,

wenn du mit einer bestimmten Geschwindigkeit fährst, könntest du anstelle von ...
moveAtSpeed(90, 90);
... eine etwas höhere Geschwindigkeit links probieren ...
moveAtSpeed(91, 90);

Gruß Dirk

axel88
31.12.2007, 16:25
gibt es nicht eine möglichkeit, das auszugleichen, ohne das ich es in jedem Projekt berücksichtigen muss?
Und wenn ich mir grad überlege, wie kann das zu stande kommen? wenn die Taktgeber korrekt arbeiten müsste ja die rechte kette nen größeren Radius als die linke haben?

MfG axel

Dirk
31.12.2007, 16:34
Hallo axel88,

du könntest die Funktion moveAtSpeed so ändern:

void moveAtSpeed(uint8_t desired_speed_left, uint8_t desired_speed_right)
{
desired_speed_left += 2; // corrected left speed
if(desired_speed_left > 200) desired_speed_left = 200;
if(desired_speed_right > 200) desired_speed_right = 200;
mleft_des_speed = desired_speed_left;
mright_des_speed = desired_speed_right;
}

Mit den Encodern hat das erstmal nichts zu tun.

Gruß Dirk

radbruch
31.12.2007, 16:57
Hallo


Mit den Encodern hat das erstmal nichts zu tun.
Ich dachte immer, moveAtSpeed() regelt die Drehzahl automatisch, wenn das Task-System aktiviert ist:


* This function sets the desired speed value.
* The rest is done automatically. The speed is regulated to this speed value
* independent of Battery voltage, surface, weight of the robot and other things.
*
* You need to call task_motorSpeedControl(); frequently out of the main loop!
* otherwise this function will not work!
* Or use task_RP6System which includes this call.(Aus der Beschreibung von moveAtSpeed() in RP6RobotBaseLib.c ab ca. Zeile 695)

Also sollte es mit einem Task-Aufruf in der Hauptschleife funktionieren.

Gruß

mic

SlyD
31.12.2007, 17:17
Hallo axel88,

wie stark ist der Linksdrall denn?
So etwa 15cm auf 2m wären eine normale Abweichung wenn er eine gerade Linie fahren soll. Das hängt aber auch vom Untergrund ab.

--------------------------------

Hast Du Dir mal mit der neuen RP6Loader Version (1.4) die Signale der Drehgeber mal anzeigen lassen?

Eine detaillierte Beschreibung dazu gibts hier (Drehgeber justieren):
http://www.arexx.com/rp6/html/de/docs.htm
(direkt link: http://www.arexx.com/rp6/downloads/RP6_ENCODER_DE_20071219.zip )

Damit das funktioniert musst Du noch dieses:
http://www.arexx.com/rp6/downloads/RP6Base_NEW_SELFTEST.zip
Programm in den Roboter laden!

Also erstmal nur wie im ersten Teil des PDFs beschrieben das Signal anzeigen lassen und evtl. die Ausgabe des Tests im Terminal mal hier im Forum posten.

------------------------------------------------------------------

Kleine Abweichungen sind aber normal. Die standard Regelung in der RP6Lib ist nicht perfekt. Das Regelintervall ist mit 200ms relativ lang.
Und es wird nur für jeden Antrieb EINZELN die Geschwindigkeit eingeregelt - Unterschiede werden nicht automatisch ausgeregelt.
Also könnte für kurze Zeit die Geschwindigkeit der beiden Antriebe abweichen und währenddessen fährt der Roboter dann natürlich eine kleine Kurve - je nachdem wie hoch dieser Unterschied ausfällt und auf welchem Untergrund er fährt.

Schau mal im ASURO Bereich - da haben einige Anwender eine eigene Lib geschrieben die die Drehzahlen der Motoren aneinander angleicht - das könnte man durchaus mit der normalen Regelung vom RP6 kombinieren...

MfG,
SlyD

radbruch
31.12.2007, 17:29
Hallo

Das Thema kam mir doch gleich so bekannt vor:

https://www.roboternetz.de/phpBB2/viewtopic.php?t=32498

Gruß

mic

axel88
31.12.2007, 17:32
So....
also hatte mit moveAtSpeed(98, 80); eine halbwegs gerade Linie erreicht. Kann die anderen Vorschläge jetzt leider nicht mehr ausprobieren, da der Rechte Antrieb ausgefallen ist :( Selftest sagt folgendes:


RP6 Robot Base Selftest



################################################## ###################

### ATTENTION!!! DANGER!!! WARNING!!!

Make sure that the RP6 CAN __NOT__ MOVE!

The caterpillar tracks should NOT touch the ground!

(hold it in your hands for example...)

THE RP6 WILL START MOVING IN TEST 8! YOU CAN DAMAGE IT IF YOU DO NOT

MAKE SURE THAT IT CAN __NOT__ MOVE!

Make sure both crawler tracks are FREE RUNNING! DO NOT BLOCK THEM!

################################################## ###################



Please enter "x" and hit Enter to continue!

Hint: This program requires a newline character ("\n") at the end of

all input lines!



# x



################################################## ###################

######### RP6 Robot Base Selftest #########

######### HOME VERSION v. 1.3 - 25.09.2007 #########

################################################## ###################

##### Main Menu ######### Advanced Menu #####

# # #

# 0 - Run ALL Selftests (0-8) # s - Move at speed Test #

# 1 - PowerOn Test # d - Move distance Test #

# 2 - LED Test # c - Encoder Duty-Cycle Test #

# 3 - Voltage Sensor Test # #

# 4 - Bumper Test # #

# 5 - Light Sensor Test # #

# 6 - ACS (and RC5 receive) Test # #

# 7 - IRCOMM/RC5 Test # System voltage is: #

# 8 - Motors and Encoders Test # 08.26V #

# # #

################################################## ###################

# Please enter your choice (1-8, s, d, c)! #

################################################## ###################



# 8



################################################## ###################

################################################## ###################

#### TEST #8 ####



Automatic speed speed regulation test



################################################## ###################

### ATTENTION!!! DANGER!!! WARNING!!!

Make sure that the RP6 can __NOT__ move!

The caterpillar tracks should __NOT__ touch the ground!

(hold it in your hands for example...)

THE RP6 WILL START MOVING FAST! YOU CAN DAMAGE IT IF YOU DO NOT

MAKE SURE THAT IT CAN __NOT__ MOVE!

Make sure both crawler tracks are FREE RUNNING! DO NOT BLOCK THEM!

--> OTHERWISE THE TEST WILL FAIL!

################################################## ###################



### Enter "x" and hit return when TO START this test!

### Make sure the RP6 can not move!





# x

T: 000 |VL: 000 |VR: 000 |PL: 000 |PR: 000 |IL: 000 |IR: 001 |UB: 08.25V

T: 000 |VL: 000 |VR: 000 |PL: 000 |PR: 000 |IL: 000 |IR: 001 |UB: 08.25V

T: 000 |VL: 000 |VR: 000 |PL: 000 |PR: 000 |IL: 000 |IR: 001 |UB: 08.25V

T: 000 |VL: 000 |VR: 000 |PL: 000 |PR: 000 |IL: 000 |IR: 001 |UB: 08.25V

T: 000 |VL: 000 |VR: 000 |PL: 000 |PR: 000 |IL: 000 |IR: 001 |UB: 08.25V

T: 000 |VL: 000 |VR: 000 |PL: 000 |PR: 000 |IL: 000 |IR: 001 |UB: 08.25V

T: 000 |VL: 000 |VR: 000 |PL: 000 |PR: 000 |IL: 000 |IR: 001 |UB: 08.25V

T: 000 |VL: 000 |VR: 000 |PL: 000 |PR: 000 |IL: 000 |IR: 001 |UB: 08.25V

T: 000 |VL: 000 |VR: 000 |PL: 000 |PR: 000 |IL: 000 |IR: 001 |UB: 08.25V

Speed Left: OK

Speed Right: OK

T: 020 |VL: 000 |VR: 000 |PL: 000 |PR: 000 |IL: 000 |IR: 001 |UB: 08.25V

T: 020 |VL: 000 |VR: 000 |PL: 000 |PR: 000 |IL: 000 |IR: 001 |UB: 08.25V

T: 020 |VL: 000 |VR: 000 |PL: 000 |PR: 000 |IL: 000 |IR: 001 |UB: 08.25V

T: 020 |VL: 000 |VR: 000 |PL: 020 |PR: 020 |IL: 010 |IR: 006 |UB: 08.24V

T: 020 |VL: 020 |VR: 000 |PL: 023 |PR: 040 |IL: 014 |IR: 001 |UB: 08.24V

T: 020 |VL: 020 |VR: 000 |PL: 022 |PR: 060 |IL: 014 |IR: 001 |UB: 08.24V

T: 020 |VL: 020 |VR: 000 |PL: 023 |PR: 080 |IL: 015 |IR: 001 |UB: 08.24V

T: 020 |VL: 020 |VR: 000 |PL: 023 |PR: 100 |IL: 016 |IR: 001 |UB: 08.23V

T: 020 |VL: 021 |VR: 000 |PL: 023 |PR: 120 |IL: 016 |IR: 001 |UB: 08.23V

T: 020 |VL: 021 |VR: 000 |PL: 023 |PR: 140 |IL: 016 |IR: 001 |UB: 08.23V

Speed Left: OK

####### ERROR Right #######

####### !!! WARNING WARNING WARNING !!! #######

####### !!! TEST FINISHED WITH ERRORS !!! #######

#### Please check motor and encoder assembly! ###

#### And also check Sensors for defects! ###





Enter any character to continue!
kann man das irgendwie selbst beheben oder muss ich das ding wieder wegschicken?
MfG Axel

SlyD
01.01.2008, 11:37
Hallo axel88,

versuch bitte mal einen kleinen manuellen Test zu machen:

------------------------------------------

- Starte das neue Testprogram.
- Gib im Hauptmenü "c"+Enter ein (Encoder Test - kann auch zum testen der Motortreiber verwendet werden).
- "30"+Enter eingeben
- 3 Sekunden warten
- "60"+Enter eingeben
- 3 Sekunden warten
- "90"+Enter eingeben
- Sollte sich die rechte Kette dann noch nicht drehen, dreh zwei drei mal mit der Hand dran, so dass sich die Werte für die Encoder verändern.

- "60"+Enter eingeben
- "bwd" eingeben
- 3 Sekunden warten.
- "90"+Enter eingeben
- wieder an der rechten Kette drehen sofern Sie das nicht von selbst tut.
- "r"+Enter eingeben
- 3 Sekunden warten
- "l"+Enter eingeben
- 3 Sekunden warten
- "x"+Enter eingeben um den Test zu beenden.

Ausgabe hier bitte posten und kurz beschreiben wann sich welcher Antrieb gedreht hat und wann nicht!


------------------------------------------

Schau auch mal auf der Platine im Bereich der Motortreiber ob nicht irgendetwas einen Kurzschluss verursachen könnte (kleiner Metallsplitter zwischen zwei benachbarten Pins eines Chips o.ä.) oder irgendwo eine schlechte Lötstelle ist.
Hier mal ein Foto wie es in etwa ausschauen sollte:
http://www.arexx.com/rp6/tmp/motor_drivers_closeup.jpg

Sofern möglich kannst Du auch ein (gutes - etwa so wie das Foto oben) Foto mit ner Digicam davon machen und es mir schicken, ich werde dann mal schauen ob etwas zu erkennen ist.

MfG,
SlyD

roboterheld
01.01.2008, 12:12
...kann man das irgendwie selbst beheben oder muss ich das ding wieder wegschicken? .....


das gerät sofort tauschen, ansonsten häufen sich die fehler und kannst am rp6 nicht mehr vorn von hinten unterscheiden in den libs.
du tust gut daran mal selber eine antriebsprogramm zu schreiben, dann hat man die fehler schneller im griff. stück für stück, es lohnt sich.

axel88
01.01.2008, 19:10
naja mit den Lötstellen kanns ja kaum zusammenhängen da es ja vorher funktioniert hat... außerdem sehn die ganz gut aus... werd ihn wohl einfach mal einschicken
Besten Dank für die Hilfe!
MfG Axel