Mähmotorabschaltung am Bahnende bei Drehung auf der Stelle

Tinker

Member
Hi,
die Räder meines umgebauten Robomow 500 haben nicht den besten Grip wenn das Gras oder der Boden etwas feucht ist. Im Geradeauslauf ist alles prima. Wenn es aber am Bahnende zur Drehung auf der Stelle kommt, um den nächsten Bahnpunkt anzufahren, dreht ein Rad oft durch, der Mäher stoppt und der Mähmotor wird ausgeschaltet. Dann wird neu gestartet und es dauert einige Sekunden bis der Mähmotor wieder seine Drehzahl erreicht hat. Danach versucht der Mäher seine beabsichtigte Drehung fortzusetzen. Das klappt nach einigen Versuchen, oft helfe ich aber auch händisch etwas nach und die nächste Bahn kann gemäht werden. An den Rädern habe ich versuchsweise Zahnkränze aus Plexiglas angebracht um den Grip erhöhen. Das funktioniert auch manchmal, aber in der Regel gräbt sich das Rad dann in den weichen Boden ein und dreht auch durch.
Leider weiß ich nicht aufgrund welcher Tatsache der Mäher in diesen Situationen stoppt. Zu hohen Strom des Antriebs schließe ich mal aus, denn die Räder drehen ja kraftlos einfach durch. Meine Vermutung ist, dass die IMU einen Fehler feststellt, denn der gewünschte Drehwinkel wird ja nicht in einer definierten Zeit erreicht. In der Log Datei finde ich keinen Hinweis.
Jetzt zu meiner Frage:
Weiß jemand wo sich die Stelle im Code befindet, die bei durchrutschendem Rad einen Fehler erzeugt? An dieser Codestelle müsste sich auch das Ausschalten und Restarten des Mähmotors befinden.
Ich habe diese Codestellen nicht gefunden und würde dort gern erst einmal das Ausschalten des Mähmotors verhindern um den Restart zu beschleunigen.
Ich meine vor einiger Zeit mal einen Thread gelesen zu haben, wo das Abschalten des Mähmotors auskommentiert wurde. Ich finde ihn aber einfach nicht ...
Vielen Dank schon mal für eure Antworten!
Gruß Mario
 
Zuletzt bearbeitet:
Die Fehlererkennung bei Rotation kannst du in der config.h ausschalten. Habe die Zeile gerade nicht auf Tasche. Ist aber gut erklärt. Solltest du auch so finden.
 
Meinst du OBSTACLE_DETECTION_ROTATION?
Das ist bei mir ausgeschaltet:
#define OBSTACLE_DETECTION_ROTATION false
 
Meinst du OBSTACLE_DETECTION_ROTATION?
Das ist bei mir ausgeschaltet:
#define OBSTACLE_DETECTION_ROTATION fals
Here a link to code i use in the RL1000 mower.
To avoid error on IMU/ODO rotation You need to setup correctly odometry ticks/rev , wheel diameters and the distance between the 2 wheels into config.h
To adjust perfectly you have 3 test AT+E1 , AT+E2 and AT+E3
AT+E1 need 10 rev
AT+E2 mower need to roll 360 degres
AT+E3 mower need to drive for 3 meters
 
Oder meinst du das:

#define DISABLE_MOW_MOTOR_AT_OBSTACLE false // switch off mow motor while escape at detected obstacle; set false if mow motor shall not be stopped at detected obstacles

Welche Firmwareversion ist installiert?
 
Ich habe die Version "Sunray,1.0.305" in für meinen RL500 etwas abgwandelter Form installiert!
@bernard: Thank you for your contribution! Of course I've already checked my correct setup. Without slipping wheels everything works fine! But nevertheless I will do the AT+ ... test again! Cheers!
 
Ich habe die Version "Sunray,1.0.305" in für meinen RL500 etwas abgwandelter Form installiert!
@bernard: Thank you for your contribution! Of course I've already checked my correct setup. Without slipping wheels everything works fine! But nevertheless I will do the AT+ ... test again! Cheers!
WARNING : IT'S NOT THE STANDARD SUNRAY FIRMWARE
Mowing speed is update ,mow motor don't stop on bumper or slipping Etc.....
You have certainly done the AT+E test for standard sunray code and the ticksperrevolution is OK , but are you sure that wheel diameters and the distance between the 2 wheels into config.h have correct value :They are used when the test IMU/ODO is done

It's the reason i add the new test for this 2 values into RL1000 code .
You don't need to upload again the codeto test a new value
Without PI You can manually adjust the value by this way
AT+CT,4," + ticks per revolution +",0"
AT+CT,5," + distance between wheel +",0"
AT+CT,6," + diameter wheel +",0"

in my RL1000 value are:
AT+CT,4,960,0"
AT+CT,5,42,0"
AT+CT,6,260,0"

repeat test AT+E1 etc ... until movement are OK into grass.

When you find the correct value ,simply add them into config.h for permanent use.
 
Here a link to code i use in the RL1000 mower.
To avoid error on IMU/ODO rotation You need to setup correctly odometry ticks/rev , wheel diameters and the distance between the 2 wheels into config.h
To adjust perfectly you have 3 test AT+E1 , AT+E2 and AT+E3
AT+E1 need 10 rev
AT+E2 mower need to roll 360 degres
AT+E3 mower need to drive for 3 meters
I tried to build your RL1000 system, but it seems that your "config.h" file is missing?

But after looking at your source code, I was able to find the places to switch off the mower motor when the wheels slip! The result was as expected. The mower no longer switched off the mowing motor when the wheels slipped slightly. I thought everything was fine now. But there was another problem. Sometimes when turning on the spot, one or even both of the drive drivers would now stop. Then either the mower simply stopped with the mower motor running or it turned in circles. Sometimes there was a reset and then the motors worked again. Often in these cases I had to reset the mower (switch it off and on again). There are narrow places in my garden where it got stuck quite often.
Maybe it is because the motor currents are set too low
(#define MOTOR_FAULT_CURRENT 6.0
#define MOTOR_OVERLOAD_CURRENT 2) .
I will check this.
 
Zuletzt bearbeitet:
Sorry i am going to see that the config.h is in the gitignore file.
Change are made , it's now OK ,so you can compare with your config
 
Oben