Sunray modding Spielwiese

I observed the mower during 1100qm², there was no watchdog reset, but a false fix on the perimeter in the beginning. After all, It did mow the Area in about 6,5 hours and did Dock nicely. I released a last .322_5 stable version. Hope it works for everyone who is interested. Cheers.

Btw.: if you hear a morse SOS code, the mower is in Error(obstacle) .... thats considered as stable ;)
 
Zuletzt bearbeitet:
Ich teste mit schon seit einer Woche und muss sagen diese Kiste läuft super und besser dank der Arbeit von Mr. Tree. An Modifikation zur weiteren Verbesserung und vereinfachung der Einstellungen in der config wird von ihm noch gearbeitet. Danke das das Projekt Ardumower weiter läuft. Hut ab.
 
Zuletzt bearbeitet:
Danke @Mr. Tree für deine Mail!
Also, ich habe die Sparkfun u-blox Bibliothek aktualisiert und die config.h nochmal genau durchgesehen. Jetzt bekomme ich GPS-Fix und der Mäher fährt auch los, aber in Zeitlupe und bleibt ständig stehen bzw. fährt kurz zurück und meldet Obstacle. Das hängt ja sicher mit den eingestellten Leistungswerten zusammen. Ich habe aber leider keinen Plan, an welchen Stellschrauben ich da drehen muss. Ich weiß auch nicht, welche Werte für die Ströme der Bürstenmotoren richtig sind, da an den Motoren keine Typenschilder sind und ich keine Daten davon habe.
Jetzt habe ich mal ein Log auf der SD-Karte schreiben lassen, vielleicht lässt sich darin etwas erkennen (für mich nicht wirklich).
Übrigens, die u-blox-Firmware ist die 1.32, es gibt, wie ich gesehen habe, inzwischen eine 1.51. Kann mir jemand sagen, ob es sich lohnt, diese zu installieren, gibt es markante Verbesserungen dadurch? Es wäre für mich nämlich ein ziemlicher Aufwand, da ich mit Linux arbeite und kein Windows zur Verfügung habe.
 
Mhhh, also dein Motor nimmt beim hochfahren ca. 80 Watt, im idle 5 - 10 Watt. Geloggt wurde ein maximal wert von 160 Watt.
Deine Fahrmotoren sind gerade das Problem. Es triggert obatacle Rotation in Overload while Robot should rotate... Rotation Overload kannst du erstmal deaktivieren oder den overloadstrom erhöhen. Ich muss an den Rechner um die jeweiligen Zeilen zu finden.
Ansonsten: du darfst nicht vergessen die loggeschichten abzuschalten wenn du nicht mehr testest.

Hier mal die entsprechenden Stellen:

ap::startMowing
findObstacleSafeMowPoint checking 8.88,-3.47
findPath (8.83,-3.48) (8.88,-3.47)
path finder is enabled (using FLOAT_CALC)
freem=210359 allocating nodes 295 (7080 bytes)
freem=210359
starting path-finder
.finish nodes=295 duration=101
node pt=8.88,-3.47
node pt=8.83,-3.48
clearObstacles

TUNING_LOG (disable in config.h):
---------------------------------------------------->
motor.cpp: adaptive_speed()
motorMowRpmSet: 0.00 RPM, Driver PWM: 184 val
battV: 27.07 V, motorMowPower: 6.98 Watt
gpsSpeed: 0.01 m/s, speedSet: 0.00 m/s
ADSpeedfactor: 0.94 val, actSpeed: 0.00 m/s

motor.cpp: sense()
mowPowerAct: 6.98 Watt, motorMowPowerMax: 62.69 Watt
motorMowSense: 0.26 A, motorMowSenseLP: 0.28 A
motorLeftSense: 0.05 A, motorLeftSenseLP: 0.23 A
motorRightSense: 0.50 A, motorRightSenseLP: 0.50 A

IMU --
diffIMUWheelYawSpeedLP: 25.80 deg/s
stateDeltaSpeedIMU: -47.57 deg/s
stateDeltaSpeedWheels: -88.80 deg/s
stateDeltaSpeedLP: 52.92 deg/s
heading: 0.00 none
ax: 0.15 g, ay: -0.06 g, az: 1.19 g
roll: -0.00 rad, pitch: -0.15rad, yaw: 0.05 rad
Info --
Operation: 1
<----------------------------------------------------

ERROR motor overload (average current too high) - duration=0 avg current amps (left,right,mow)=0.35,0.81,0.42
ERROR motor overload (average current too high) - duration=0 avg current amps (left,right,mow)=0.37,0.84,0.42
Overload on traction motors while robot should rotate! Assuming obstacle in the back!
triggerObstacleRotation
==> changeOp:EscapeForward(initiatedByOperator 0)->Mow

TUNING_LOG (disable in config.h):
---------------------------------------------------->
motor.cpp: adaptive_speed()
motorMowRpmSet: 0.00 RPM, Driver PWM: 184 val
battV: 27.05 V, motorMowPower: 10.13 Watt
gpsSpeed: 0.11 m/s, speedSet: 0.30 m/s
ADSpeedfactor: 0.85 val, actSpeed: 0.30 m/s

motor.cpp: sense()
mowPowerAct: 10.13 Watt, motorMowPowerMax: 62.69 Watt
motorMowSense: 0.37 A, motorMowSenseLP: 0.39 A
motorLeftSense: 0.05 A, motorLeftSenseLP: 0.27 A
motorRightSense: 0.44 A, motorRightSenseLP: 0.37 A

IMU --
diffIMUWheelYawSpeedLP: 0.31 deg/s
stateDeltaSpeedIMU: -5.59 deg/s
stateDeltaSpeedWheels: -4.95 deg/s
stateDeltaSpeedLP: 5.19 deg/s
heading: 0.00 none
ax: 0.17 g, ay: 0.10 g, az: 1.15 g
roll: 0.04 rad, pitch: -0.11rad, yaw: -1.06 rad
Info --
Operation: 1
<----------------------------------------------------

driveForwardStopTime
adding modified obstacle
addObstaclePosition 8.65,-3.06
==> changeOp:Mow(initiatedByOperator 1)
MowOp::begin
MowOp:: set linear = 0, angular = 0
battery.setIsDocked 0
Map::startMowing
findObstacleSafeMowPoint checking 4.63,-3.47
findPath (8.77,-3.56) (8.25,-3.47)
path finder is enabled (using FLOAT_CALC)
freem=210359 allocating nodes 295 (7080 bytes)
freem=210359
starting path-finder
.finish nodes=295 duration=112
node pt=8.25,-3.47
node pt=8.77,-3.56
dumpState: X=8.75 Y=-3.59 delta=-2.29 mapCRC=-155705 mowPointsIdx=1 dockPointsIdx=1 freePointsIdx=1 wayMode=4 op=1 sensor=0 sonar.enabled=0 fixTimeout=30 absolutePosSource=0 lon=0.00 lat=0.00 mowPwm=185 finishAndRestart=0 motorMowForwardSet=1
save state... ok
0:5:3 ctlDur=0.02 op=Mow(initiatedByOperator 1) freem=210511 sp=200000A4 bat=27.05,-0.001(1.31) chg=0.05,0(0.01) diff=-27.021 tg=8.25,-3.47 x=8.75 y=-3.59 delta=-2.55 tow=476876000 lon=12.16879855 lat=50.64790835 h=373.2 n=-3.59 e=8.75 d=2.67 sol=2 age=0.60
ERROR motor overload (average current too high) - duration=0 avg current amps (left,right,mow)=0.22,0.80,0.35
Overload on traction motors while robot should rotate! Assuming obstacle in the back!
triggerObstacleRotation
==> changeOp:EscapeForward(initiatedByOperator 0)->Mow
ERROR motor overload (average current too high) - duration=0 avg current amps (left,right,mow)=0.22,0.84,0.35

TUNING_LOG (disable in config.h):
---------------------------------------------------->
motor.cpp: adaptive_speed()
motorMowRpmSet: 0.00 RPM, Driver PWM: 184 val
battV: 27.04 V, motorMowPower: 8.47 Watt
gpsSpeed: 0.13 m/s, speedSet: 0.31 m/s
ADSpeedfactor: 0.89 val, actSpeed: 0.31 m/s

motor.cpp: sense()
mowPowerAct: 8.47 Watt, motorMowPowerMax: 62.69 Watt
motorMowSense: 0.31 A, motorMowSenseLP: 0.33 A
motorLeftSense: 0.23 A, motorLeftSenseLP: 0.27 A
motorRightSense: 0.29 A, motorRightSenseLP: 0.43 A

IMU --
diffIMUWheelYawSpeedLP: 0.90 deg/s
stateDeltaSpeedIMU: -11.08 deg/s
stateDeltaSpeedWheels: -7.61 deg/s
stateDeltaSpeedLP: 12.57 deg/s
heading: 0.00 none
ax: 0.19 g, ay: -0.02 g, az: 1.29 g
roll: 0.03 rad, pitch: -0.10rad, yaw: -1.82 rad
Info --
Operation: 1
<----------------------------------------------------

driveForwardStopTime
adding modified obstacle
addObstaclePosition 8.89,-3.16
==> changeOp:Mow(initiatedByOperator 1)
MowOp::begin
MowOp:: set linear = 0, angular = 0
battery.setIsDocked 0
Map::startMowing
findObstacleSafeMowPoint checking 4.63,-3.47
findPath (8.63,-3.64) (8.25,-3.47)
path finder is enabled (using FLOAT_CALC)
freem=210359 allocating nodes 303 (7272 bytes)
freem=210359
starting path-finder
.finish nodes=303 duration=160
node pt=8.25,-3.47
node pt=8.45,-3.66
node pt=8.63,-3.64

TUNING_LOG (disable in config.h):
---------------------------------------------------->
motor.cpp: adaptive_speed()
motorMowRpmSet: 0.00 RPM, Driver PWM: 184 val
battV: 27.04 V, motorMowPower: 9.46 Watt
gpsSpeed: 0.01 m/s, speedSet: 0.15 m/s
ADSpeedfactor: 0.90 val, actSpeed: 0.15 m/s

motor.cpp: sense()
mowPowerAct: 9.46 Watt, motorMowPowerMax: 62.69 Watt
motorMowSense: 0.35 A, motorMowSenseLP: 0.31 A
motorLeftSense: 0.09 A, motorLeftSenseLP: 0.09 A
motorRightSense: 0.03 A, motorRightSenseLP: 0.51 A

IMU --
diffIMUWheelYawSpeedLP: 0.21 deg/s
stateDeltaSpeedIMU: -5.14 deg/s
stateDeltaSpeedWheels: -4.53 deg/s
stateDeltaSpeedLP: 6.34 deg/s
heading: 0.00 none
ax: 0.11 g, ay: 0.07 g, az: 1.09 g
roll: 0.01 rad, pitch: -0.06rad, yaw: -2.07 rad
Info --
Operation: 1
<----------------------------------------------------

dumpState: X=8.52 Y=-3.64 delta=3.05 mapCRC=-155705 mowPointsIdx=1 dockPointsIdx=2 freePointsIdx=2 wayMode=4 op=1 sensor=0 sonar.enabled=0 fixTimeout=30 absolutePosSource=0 lon=0.00 lat=0.00 mowPwm=185 finishAndRestart=0 motorMowForwardSet=1
save state... ok

TUNING_LOG (disable in config.h):
---------------------------------------------------->
motor.cpp: adaptive_speed()
motorMowRpmSet: 0.00 RPM, Driver PWM: 184 val
battV: 27.03 V, motorMowPower: 9.13 Watt
gpsSpeed: 0.01 m/s, speedSet: 0.00 m/s
ADSpeedfactor: 0.85 val, actSpeed: 0.00 m/s

motor.cpp: sense()
mowPowerAct: 9.13 Watt, motorMowPowerMax: 62.69 Watt
motorMowSense: 0.34 A, motorMowSenseLP: 0.36 A
motorLeftSense: 0.09 A, motorLeftSenseLP: 0.11 A
motorRightSense: 1.17 A, motorRightSenseLP: 0.41 A

IMU --
diffIMUWheelYawSpeedLP: 5.07 deg/s
stateDeltaSpeedIMU: -11.25 deg/s
stateDeltaSpeedWheels: -26.45 deg/s
stateDeltaSpeedLP: 501.65 deg/s
heading: 0.00 none
ax: 0.09 g, ay: -0.04 g, az: 1.28 g
roll: 0.01 rad, pitch: -0.06rad, yaw: -2.22 rad
Info --
Operation: 1
<----------------------------------------------------

ERROR motor overload (average current too high) - duration=0 avg current amps (left,right,mow)=0.15,0.98,0.32
0:5:8 ctlDur=0.03 op=Mow(initiatedByOperator 1) freem=210511 sp=2000004C bat=27.03,-0.002(1.73) chg=0.06,0(0.01) diff=-26.997 tg=8.25,-3.47 x=8.51 y=-3.65 delta=2.98 tow=476881000 lon=12.16879514 lat=50.64790792 h=373.1 n=-3.65 e=8.51 d=2.72 sol=2 age=0.60
Info - LoopTime: 4 - 2 - 4.63 - 211ms
Overload on traction motors while robot should rotate! Assuming obstacle in the back!
triggerObstacleRotation
==> changeOp:EscapeForward(initiatedByOperator 0)->Mow
driveForwardStopTime
adding modified obstacle
addObstaclePosition 8.88,-3.39
==> changeOp:Mow(initiatedByOperator 1)
MowOp::begin
MowOp:: set linear = 0, angular = 0
battery.setIsDocked 0
Map::startMowing
findObstacleSafeMowPoint checking 4.63,-3.47
findPath (8.35,-3.60) (8.25,-3.47)
path finder is enabled (using FLOAT_CALC)
freem=210359 allocating nodes 311 (7464 bytes)
freem=202863
starting path-finder
.finish nodes=311 duration=124
node pt=8.25,-3.47
node pt=8.35,-3.60
sending encryptMode=0 encryptChallenge=0
 
Zuletzt bearbeitet:
Leider habe ich einen ekligen Bug gefunden, neben meinem neuerlichen hardware problem. Wenn der Pathfinder einen Pfad durch einen komplexen Schlauchweg zu einem entfernten Taskl finden soll und der Mäher irgendwo im idle rumsteht, passieren die weirdesten Sachen mit dem Mower..... :| keine Ahnung seit wann das so ist, aber es gibt ein Piepkonzert und 10-15 sekündige geradeausfahrten mit leichten kurven bis es wieder ein Piepkonzert gibt. Sorry :(
 
I am very sorry, but the latest Release from the github Reverse from .25 is flawed. The merge and revert did mess Up quite some Things in the Code, i Just realized. Thats probably because of my inexperience. Its Not stable and it Mixed Up original Code with modified Code.
 
Ich finde das alle Firmwares welche nach der 1.0.276 gekommen sind, nicht wirklich gut mit dem Ardumower mehr laufen. Die aktuelle ist 1.0.325 ist eine Katastrophe.
 
Ich finde das alle Firmwares welche nach der 1.0.276 gekommen sind, nicht wirklich gut mit dem Ardumower mehr laufen. Die aktuelle ist 1.0.325 ist eine Katastrophe.
seh ich auch so, mein Ardumower blieb damit immer wieder abseits vom Perimeter liegen. Verzweifle auch grad eine funktionierende Version für den ESP32 zu finden, immerhin läuft mqtt(nur mit der Version von Joel Gaehwiler 2.5.0) aber http bricht immer wieder ab.
 
seh ich auch so, mein Ardumower blieb damit immer wieder abseits vom Perimeter liegen. Verzweifle auch grad eine funktionierende Version für den ESP32 zu finden, immerhin läuft mqtt(nur mit der Version von Joel Gaehwiler 2.5.0) aber http bricht immer wieder ab.
Das habe ich auch festgestellt, das der Ardumower immer wieder über den Perimeter raus gefahren ist mit der 1.0.325 und mit der 1.0.324 hat er dauern Hindernisse erkannt. Ich bin aktuell zurück auf die alte 1.0.276.
 
Das habe ich auch festgestellt, das der Ardumower immer wieder über den Perimeter raus gefahren ist mit der 1.0.325 und mit der 1.0.324 hat er dauern Hindernisse erkannt. Ich bin aktuell zurück auf die alte 1.0.276.
aktuell bin ich wieder auf die Version vom August Version von MrTree und die läuft bisher top, außer mein Esp32 :-(
 
MrTree Firmware Version war eigentlich auch gut, aber mir hat es damit ein Motor und mehrere Motortreiber gekostet. Welche Version nimmst du aktuell von ihm?
 
MrTree Firmware Version war eigentlich auch gut, aber mir hat es damit ein Motor und mehrere Motortreiber gekostet. Welche Version nimmst du aktuell von ihm?
Ich bin mit der 322 unterwegs welche zwar Hindernisse erkennt wo keine sind aber sonst gut durchläuft. Ist vom letzten Jahr. Aber die Verbesserungen die er entwickelt hat sind top. Er kam zur Zeit Hardware technisch nicht loggen aber in den nächsten Wochen wird eine stabile super Version entstehen. Da bin ich mir sicher.
 
Die Sache mit den Hindernissen ist eigentlich gefixt, also zu 80%. Ich habe die kürzlichen Änderungen mit git resetted auf vor der 325 Anpassung.. Aber immernoch mit vielen Änderungen nach August letzten Jahres.

Leider gibts n doofen bug in der master 322, der irgendwann aufgetaucht ist nach August. Es gibt einen Loop zwischen Pathfinder und Starten, wenn er zu weit weg muss oder Rechnen muss. Weiterhin gibt es einen Bug wo der Mäher nach einem Obstacle Error nicht mehr zu gebrauchen ist, nur ein Rest hilf. Er will dann los, drhet sich ..erkennt obstacles und ist nach einigen sekunden wieder im Error. Ansonsten läuft der Master bei mir sehr gut.
 
Kann man das umfahren eines Hindernisses über den Perimeter nicht mehr ausschalten? Das ging doch früher, in der Config.h ist es eigentlich auch zum ausschalten, nur lässt es sich dann nicht Compilern.
 
Die habe ich wieder Rückgängig gemacht, die ist dem Watchdog zum Opfer gefallen. Demnächst versuche ich es noch einmal. Mit den Hindernissen bezog sich auf @kaido und der August 322.
 
Oben