Hallo zusammen,
was ist denn nun richtig????
In der Doku der NiboLib 2.8 steht, wie schon oben zitiert: "40 Ticks entsprechen 1 Radumdrehung"
Unter http://www.nibo-roboter.de/wiki/Moto...irmware <br /> liest man: "...ein Tick ist 1/20 einer kompletten Radumdrehung."
Welche Werte sind denn zu "uint8_t copro_setSpeedParameters ( int8_t kp, int8_t ki, int8_t kd )" eingesetzt? Hat denn schon mal jemand die Regler optimiert? Da die Motore sicherlich einer gewissen Fertigungsstreuung unterliegen und die selbst zusammengelötete Getriebelagerungen auch "kleinen" Streuungen unterliegen, darf man nicht voraussetzten, das die Regler werksseitig auf idealen Werten stehen - das dürft bei jedem Nibo2 anders sein. Je nach Bodenbeschaffenheit kaben die Räder Schlupf und das Gleitpad unterschiedliche Bremswirkung.
Grundsätzlich bekannt ist, dass die Printanweisungen unter C "ZEIT" kosten, siehe Erkenntnis, dass ohne Grafik-Befehle der Bremsweg kürzer ist. (Beim Fahren das ist Displayablesen doch nicht wirklich erforderlich, oder? Mögliche Anwendung: Werte nur bei gedrückter linker Taste zur Anzeige bringen.)
Die Motorregelung läuft auf dem CoProz um nicht vom Programm auf dem Hauptproz zeitlich gestört zu werden. Da macht es wenig Sinn ein wichtiges STOP-Signal im langsamen Programmteil zu ermittel, um es dann irgendwann zum Motorregler weiterzureichen. Da die Bodensensoren direkt an den Hauptproz angeschlossen sind, kann der CoProz diese nicht direkt abfragen und ist auf Signale vom Hauptprozessor angewiesen. Um möglichst kurze Reaktionszeiten zu erreichen bleibt also nur die Einbettung in eine Interrupt-Routine.
Lesezeichen