Sunray modding Spielwiese

Hier gab es mal einen Thread.... Wo diese Sache behandelt wurde. Aber letzlich ist es ein Faktor irgendwo im TreiberSrc oder AmRobotSrc.



Ich habe übrigens die INABrücke drin da ich ein 5A Ladegerät benutze.
 
Feedback von heute: das Update ist beim Mähvorgang eine klare Verbesserung - irgendwie gefühlt schneller und besser.

Auch der MowMotor startet jetzt mit 4A bis jetzt zuverlässig.

Bleibt noch das "Klemmen" des Antriebs nach laengerer Standzeit welches wohl ein Treiberproblem ist und durch Stromlos- Relais einen Workaround hat.

Bin sehr zufrieden, vielen Dank nochmal.

P.S. Das Einzige was seltsam ist, ist das der Auflagevorgang trotz Einstellung 28,5V des öfteren Mal bei 80% - 26V - Mal pausiert und nicht am Stück zu Ende geführt wird.
 
Freut mich.
Hmmm, Ladekontakte? Bei mir habe ich sowas noch nicht gesehen.

Ja, ich habe es ja gestern auch lange beobachtet... Er dreht hier und da nicht mehr Sinnlos umher.. trifft seine Punkte zuverlässig. Ist einfach Robuster... Es gibt kaum WTF Momente und über 4-5 Stunden Mähzeit spart das enorm.

Ein paar Sachen sind mir noch aufgefallen... Am Ende vom Mow wenn Dock automatisch ausgelöst wird, pendelt er immer mit angular auf der Stelle hin und her. Schau mal ob das bei dir auch vorkommt, falls du zufällig mal am Ende vom Akku oder weenn die Karte fertig ist dabei bist. Eine andere Sache, der GPS Reboot nach undock klappt nicht wie gewünscht. Er rebootet immer wieder und fährt dann einfach nie los. Das werde ich heute Abend noch fixen...
 
Neue Info zum Docking wegen Batterie leer: bei mir gibt's einen Obstacle Error und er bleibt stehen - in der Drehung zum Dockingstation Weg (ist mir gestern schon aufgefallen, hatte aber gedacht er ist irgendwo hängen geblieben). Wenn ich dann wieder auf Start drücke fährt er wie gehabt zum Docken und lädt...
 
Sehr kurios... das war bei mir anscheinend auch gestern Abend der Fall. Hatte er bei dir die Möglichkeit einer direkten Bahn zum Dock oder muss der mapper einen Pfad finden?
 
Kann ich nicht genau sagen, glaube ich beides. Eben war im letzten Teil des Gartens, gestern relativ nah an der Station. Der Fehler kommt immer so nach einer 100- 180 Grad Drehung Richtung Dockingstation. Einmal bei Batterie leer, einmal bei 100% fertig und zurück zum Dock...

Das Rausfahren aus Dock mit Start hat gerade auch nicht funktioniert. Nachdem ich manuell aus Dock gefahren bin ging es wieder.. Seltsam...
 
Hmmm.. das wird noch ein Bugsearch... zur GPS reboot funktion bei Undock habe ich den Fehler jedenfalls gefunden. Das ist gefixt und kann verwendet werden. Grund war das die neuen Operationen bei Svol0´s Programmierungen noch nicht drin waren... wenn Svolos code zum Rebbot gegriffen hat gibt es immer auch einen MowOp trigger für GPSinvalid, der den Linetracker und die gesamte Mowop Geschichte neu startet... da gab es dann einen endless loop von reset.. invalid start mowop... reset... etc.

Wegen der Dockgeschichte bin ich mir nicht sicher ob irgenwo im Code ein anderer Bug versteckt ist... denn Ausrichtunbgstechnisch kann während des Mähens irgendwein Punkt egal wo mit welcher Winkeldifferenz auftauchen.... 90grad... 50... 180... drumrum oder links.. rechts.. egal... es funktioniert nach meiner Beobachtung Stundenlang robust. Warum aber nicht wenn der mapper seinen Freepoint definiert... wohin sich der mower ausrichten soll um dann loszufahren? Ich habe ja nichts daran verändert. Ich muss mal schauen das ich relevante Codestellen finde und zusätzliche Consolenoutpus Einbaue ...
 
Bei einer anderen Map macht er es nicht... jedoch bei meiner MAINmap, reproduzierbar. Ich habe jetzt mehrfach die map bei 99.5% gestartet. Er fährt im mow zum letzten mowpunkt. Die Karte resettet und er bleibt einfach stehen mit Error obstacle, ohne drehen... zurückfahren oder irgendwas.
Screenshot_20230915-113025.png
 
Hier der log:

Linetracker.cpp changed speed to: 0.00
clearObstacles
mowing finished!
==> changeOp:Dock(initiatedByOperator 0)
Motor::setMowState 0
OP_DOCK initiatedByOperator=0 dockReasonRainTriggered=0
Map::startDocking
findPath (-14.35,7.34) (-3.27,36.79)
path finder is enabled (using FLOAT_CALC)
freem=211495 allocating nodes 245 (5880 bytes)
freem=211495
starting path-finder
.finish nodes=245 duration=130
node pt=-3.27,36.79
node pt=-4.00,13.92
node pt=-14.35,7.34
Motor::setMowState 1
WARN: PID unmet cycle time Ta=0.23 TaMax=0.20
WARN: PID unmet cycle time Ta=0.23 TaMax=0.20
WARN: PID unmet cycle time Ta=0.26 TaMax=0.20
Motor::setMowState 0
Linetracker.cpp changed speed to: 0.25
14:36:23 ctlDur=0.02 op=Dock(initiatedByOperator 0) freem=211647 sp=200019B4 bat=27.83,-0.005(0.37) chg=0.12,0(0.01) diff=-27.686 tg=-14.35,7.34 x=-14.32 y=7.28 delta=1.96 tow=466149800 lon=12.30655813 lat=52.16874983 h=163.5 n=7.28 e=-14.32 d=9.35 sol=2 age=1.01
dumpState: X=-14.32 Y=7.28 delta=1.96 mapCRC=2999811 mowPointsIdx=0 dockPointsIdx=0 freePointsIdx=0 wayMode=4 op=4 sensor=0 sonar.enabled=1 fixTimeout=120 absolutePosSource=0 lon=0.00 lat=0.00 mowPwm=250 finishAndRestart=0 motorMowForwardSet=1
save state... ok
no IMU rotation speed detected for requested rotation => assuming obstacle
error: rotation error due to obstacle!
==> changeOp:Error(initiatedByOperator 1)
OP_ERROR


Ich denke ich sehe das Problem.... Irgendwas wollte da den Mowstate nochmal anschalten.... hat die Wartezeit getriggert und deshalb löst sofort dieser Error aus.. Aber eigentlich sollte der Dockprozess es mehrmals versuchen und nicht gleich das Handtuch werfen. Das sehe ich mir gleich mal an.
 
Gerade noch was in der Richtung festgestellt: er dreht sich während des Ladens plötzlich mit einem Rad weg und meint Obstacle. Mit der Juni Version und gleichen Bumper und Sonar Parametern hat er es nicht gemacht. Hab ihn immer wieder an die Kontakte geschoben und nach einiger Zeit hat er diese verlassen..
 
Hier der log:

Linetracker.cpp changed speed to: 0.00
clearObstacles
mowing finished!
==> changeOp:Dock(initiatedByOperator 0)
Motor::setMowState 0
OP_DOCK initiatedByOperator=0 dockReasonRainTriggered=0
Map::startDocking
findPath (-14.35,7.34) (-3.27,36.79)
path finder is enabled (using FLOAT_CALC)
freem=211495 allocating nodes 245 (5880 bytes)
freem=211495
starting path-finder
.finish nodes=245 duration=130
node pt=-3.27,36.79
node pt=-4.00,13.92
node pt=-14.35,7.34
Motor::setMowState 1
WARN: PID unmet cycle time Ta=0.23 TaMax=0.20
WARN: PID unmet cycle time Ta=0.23 TaMax=0.20
WARN: PID unmet cycle time Ta=0.26 TaMax=0.20
Motor::setMowState 0
Linetracker.cpp changed speed to: 0.25
14:36:23 ctlDur=0.02 op=Dock(initiatedByOperator 0) freem=211647 sp=200019B4 bat=27.83,-0.005(0.37) chg=0.12,0(0.01) diff=-27.686 tg=-14.35,7.34 x=-14.32 y=7.28 delta=1.96 tow=466149800 lon=12.30655813 lat=52.16874983 h=163.5 n=7.28 e=-14.32 d=9.35 sol=2 age=1.01
dumpState: X=-14.32 Y=7.28 delta=1.96 mapCRC=2999811 mowPointsIdx=0 dockPointsIdx=0 freePointsIdx=0 wayMode=4 op=4 sensor=0 sonar.enabled=1 fixTimeout=120 absolutePosSource=0 lon=0.00 lat=0.00 mowPwm=250 finishAndRestart=0 motorMowForwardSet=1
save state... ok
no IMU rotation speed detected for requested rotation => assuming obstacle
error: rotation error due to obstacle!
==> changeOp:Error(initiatedByOperator 1)
OP_ERROR


Ich denke ich sehe das Problem.... Irgendwas wollte da den Mowstate nochmal anschalten.... hat die Wartezeit getriggert und deshalb löst sofort dieser Error aus.. Aber eigentlich sollte der Dockprozess es mehrmals versuchen und nicht gleich das Handtuch werfen. Das sehe ich mir gleich mal an.
ich erinnere mich dunkel, dass ich das am Anfang auch mal hatte. Bei mir dauern die Path-Berechnungen aufgrund der Grundstücksgröße und -komplexität sehr lange. Und wenn ich mich recht erinnere, dann wird beim Berechnen nur linear auf 0 gesetzt, aber nicht die Rotation. Rotation auf 0 hat dann die Lösung gebracht.
 
Ich finde echt cool was MrTree hier gemacht hat, habe schon lange nicht mehr so eine schön geschnittene Mähfläche gehabt. Muss schon suchen ob da noch irgendwo ein Halm stehen bleibt. Diese angepasste Firmware sollte man auch auf dem Alfred übernehmen, da ist das Mähergebnis noch weit entfernt von dem was der Ardumower mit dieser Firmware macht. Klasse Arbeit!!!
 
Gerade noch was in der Richtung festgestellt: er dreht sich während des Ladens plötzlich mit einem Rad weg und meint Obstacle. Mit der Juni Version und gleichen Bumper und Sonar Parametern hat er es nicht gemacht. Hab ihn immer wieder an die Kontakte geschoben und nach einiger Zeit hat er diese verlassen..
Hast du Dock Retry Touch an? Sowas habe ich noch nie gesehen. Also wenn z.b ein Treiber bei dir schon "klemmt" dann kann ich mir das mit der charger connect retry vorstellen. Du meintest ja er hört immer irgendwo auf mit chargen, vllt macht dein Ladegerät eine Pause weil es zu warm wird? Dann denkt Sunray der Mower hat den Kontakt zur Ladestation verloren.

//#define DOCK_RETRY_TOUCH true // robot will retry touching docking contacts (max. 1cm) if loosing docking contacts during charging

Da fällt mir ein.... man könnte diese Funktion nutzen um einen Workaround der "klemmenden" Antriebe zu bauen... einfach Stündlich kurz zurück und wieder vor müsste das Problem umgehen....... Probier ich demnächst mal.

@W1976 Ich habe mich gestern auch gefreut und war erstaunt, so gut lief es schon sehr lange nicht mehr wenn es überhaupt schon mal da heran kam. Danke für die Blumen.


Ich habe jedenfalls das Problem des Obstacle Errors behoben. Bei mir macht er es jedenfalls nicht mehr. Wie gesagt, GPS reboot funktioniert bei mir jetzt auch.
Weiterhin hab ich noch schnell das eingebaut:

#define ESCAPELAWNWAITTIME 0 // (ms)after Reversing, mower will wait for this time (workaround if RPM needs time to recover)
#define DOCK_NO_ROTATION_SPEED 0.15 // (m/s) (original it was 0.10, made it changeable...) when angular is not allowed while going to dockposition, this speed is used
#define MAXRETRYOBSTACLE true // if true, ESCAPELAWN will trigger Obstacle avoidance when to many MAXRETRY´s and will not trigger an error

Hier der Link:

Sunray-master_follow_314ide.zip
 
Danke - werde die neue Firmware mal austesten :)

Übrigens - Dock_retry ist bei mir nicht an, komischerweise macht er es nach dem letzten stromlos -> anschalten, nicht mehr und lädt schon seit 1 Stunde wie es soll (irgendwie ein Eigenleben)...
 
So - läuft jetzt mit der Neuen...

Am Anfang hatte ich einmal Imu timeout und einmal obstacle Error (wo keiner war, wieder bei einer Drehung größer 180 Grad). Aktuell seit 20 Minuten läuft er gut...
 
So - nochmal Feedback von heute:

Mähen - perfekt, optimales Tracking und Mähbild :) :)

Am Ende von Batterie zum Docken fahren: funktioniert jetzt : :) :)

Aber leider 2 mal Obstacle Error beim drehen (da war nichts - innerhalb von 3 Stunden), hatte ich vorher nie...
...und wenn er im Dock lädt will er beim drücken der Start Taste nicht mehr raus (manuelles rausfahren mit Joystick geht).

Habe die gleichen Bumper und GPS Einstellungen wie bei der Juni Version:

#define GPS_REBOOT true
#define GPS_STABLETIME 5000
#define DOCK_POINT_GPS_REBOOT 0
#define DOCK_SLOW_ONLY_LAST_POINTS 3
#define DOCKING_STATION true
#define DOCK_IGNORE_GPS true
#define DOCK_AUTO_START false
#define DOCK_RETRY_TOUCH false
#define DOCK_UNDOCK_TRACKSLOW_DISTANCE 3
#define UNDOCK_IGNORE_GPS_DISTANCE 2


#define BUMPER_ENABLE true
//#define BUMPER_ENABLE false
#define BUMPER_DEADTIME 500
#define BUMPER_TRIGGER_DELAY 10
#define BUMPER_MAX_TRIGGER_TIME 20
 
Eine log wäre hilfreich bei beiden Fällen, ansonsten... wo erfolgt dein reboot? Wieviele Dockpunkte hast du? DOCK_POINT_GPS_REBOOT = 0 ... hier könnte es einen Bug geben. Wenn du keinen GPS reboot brauchst, dann probiere mal #define GPS_REBOOT true // if false and DOCK_POINT_GPS_REBOOT is not 0, mower will wait at the DOCK_POINT_GPS_REBOOT point for fix without rebooting GPS

Also, ändere mal die Null. Nimm probehalber mal die mitte deiner Dockpunkteanzahl. und Falls du zu wenig Dockpunkte hast um die +3 zu erreichen, füge einfach welche auf deiner map hinzu. Diese indexvergleiche sind von der logic total buggy. Bzw,. reboot false o_O
 
Oben