-
Ok, dann sag doch mal, was die Motoren genau machen, wenn man ihnen verschiedene Werte füttert. Gehe ich richtig in der Annahme, dass 0 bzw. 180 jeweils die Maximalgeschwindigkeiten sind?
Hast du dir meinen Vorschlag angesehen? Das führt ja quasi beide Probleme zusammen, kannst ja mal versuchen umzusetzen. Die Schlüsselstelle ist dabei die Oder-Verknüpfung in den If-Verzweigungen, die eben beide Fälle berücksichtigen.
-
Wenn man dem Motor 0-89 eingibt, dann dreht er sich gegen den uhrzeigersinn bei 90 stoppt er und über 90 bis 180 dreht er im Uhrzeigersinn.
Die Motoren sind bei mir entgegengesetzt angebracht, deswegen muss ich einen im uhrzeigersinn und einen gegen den uhrzeigersinn drehen, damit beide räder vorwärts drehen. Und wie vorhin gesagt ist ab 100 bzw. 80 die maximal Geschwindigkeiten erreicht.
Ich habe mir deinen Vorschlag schon angesehen. Mein Problem ist, dass wenn er zu nah ist und nach rechts dreht um sich zu entfernen, verliert er die parallelität zur wand und dreht sich irgendwann im kreis.
-
Dann kann man ja immernoch sagen, dass wenn zB. der Roboter links von der Solllinie steht und sich über einen bestimmten Winkel nach rechts gelenkt hat, dass er dann einfach geradeaus fahren soll. Analog für die den Fall auf der anderen Seite. So dürfte er keine unsinnigen Kreise fahren. Sobald dann der Abstand über die gegenüberliegenden Toleranzgrenzen hinausgeht, lenkt er dann wieder gegen und ist im Toleranzbereich. Was du dabei vielleicht aber noch beachten solltest, dass die Sensorwerte konsistent bleiben. Wenn der Roboter zB. ein stück gedreht ist, misst er eigentlich nicht wirklich den Abstand zum Auto, sondern unter einem Winkel, wodurch der gemessene Wert größer wird. Das könnte ab einem bestimmten Winkel vielleicht zum Problem werden.
-
Das habe ich mir auch gedacht, wie kann ich das in meinem Code umsetzen?