Welchen IMU Gyro Kompass für Sunray verwenden

Mir ist schon der zweite MPU6050 hops gegangen.
Roboter blieb heute Morgen mit Dauerpiepen stehen und Log zeigt IMU Errors.

Würde daher gerne mal eine Alternative probieren.
Ist der MPU9250 gleichwertig/besser oder gibt es da auch Nachteile?
Dann würde ich mal Testweise auf den umsteigen, eventuell hab ich da mehr Glück mit.

Allerdings wenn ich mich auf Amazon so umschaue (da schnell lieferbar), da gibt es zwar drölf MPU9250 Chips, aber Bewertungen sind gefühlt bei allen ziemlich bescheiden... von falschen Chips, über defekte etc... und das bei Preisen von 12-20€.... der MPU6050 liegt da eher bei 3-5€ das Stück.

Jemand einen Tipp zu Bezugsquelle und Typ?
 
Zuletzt bearbeitet:
Ich habe seit b3 Jahren die MPU9250 drinnen und damit keine Probleme.
MPU9250 vielleicht bei Marotronics kaufen, da ist dann auch MPU9250 im Karton
 
9250er da leider nicht lieferbar.

Edit: Hab mir hier jetzt mal zwei bestellt... hoffe einer davon tut es am Ende.
Hab auch noch einen MPU6050 als Ersatz hier liegen, aber der kommt aus der gleichen Charge wo die zwei nicht lange gehalten haben.
 
Zuletzt bearbeitet:
Kurze Frage, hab mir gerade nochmal den Wiki Post dazu angeschaut, mein IMU hängt am I2C2 Port und ich habe KEINEN extra PullUp Widerstand aktuell eingelötet. Ist das für das PCB 1.4 auch noch nötig?

Eventuell ist da schon der Fehler.
Bevor ich irgendwas falsch mache, wo genau kommt der Widerstand in der Zeichnung hin?

Jumper auf 3.3V, das hab ich aktuell.
 

Anhänge

  • 3.png
    3.png
    787,6 KB · Aufrufe: 28
  • 2023-04-19 13_40_17-Ardumower Sunray – www.wiki.ardumower.de.png
    2023-04-19 13_40_17-Ardumower Sunray – www.wiki.ardumower.de.png
    1,2 MB · Aufrufe: 28
9250er da leider nicht lieferbar.

Edit: Hab mir hier jetzt mal zwei bestellt... hoffe einer davon tut es am Ende.
Hab auch noch einen MPU6050 als Ersatz hier liegen, aber der kommt aus der gleichen Charge wo die zwei nicht lange gehalten haben.
I am using the MPU6050 from the beginning with no problems. It is clear that there is something behind the sensor that is giving too much voltage or the other way around. Did you try to see if the 3.3v voltage is correct in the jumper?
I had purchased another pack with MPU6050 and it wasn't worth it, there are still several similar models that don't really work correctly.

1681914337268.png
1681914372409.png

I do not know if I contribute something, but here I leave it.

Greetings.
 
I had purchased another pack with MPU6050 and it wasn't worth it, there are still several similar models that don't really work correctly.
Yeah and it seems hard to find out which one are good.
Since the last chip lasted for a few months I guess the voltage should be fine.
Jumper is set to 3,3V.

But not sure if I need to add a pull down resistor with the PCB 1.4.
Do you have one and using the I2C2 port?
 
Ich habe MPU6050 aus dem Marotronics shop und damit die komplette letzte Saison problemlos gemäht.
Ich habe kein extra Widerstand irgendwo zwischen Stecker und MPU verbaut, nur die PCB 1.4 nach Anleitung. Ich gehe davon aus, dass der hier erwähnte PullUp bereits einer auf der PCB ist.
Es ist aber auch unwahrscheinlich, dass Dir die MPU wegen eines fehlenden PullUp auf der Datenleitung abraucht. Da geht es eher um Signalfehlertoleranz bzw. dass die Signale überhaupt gelesen werden können.
 
Heute die MPU9250 mal eingebaut, exakt gleiche Problem.
Serial Monitor findet den MPU, kalibriert den aber wenn ich den Mower auf die Wiese setze und Start klicke passiert immer das gleiche.

Roboter startet erstmal neu, durchläuft dann nochmal die Kalibrierung, dann springt das Messer für 0,1s an und die Kalibrierung startet erneut und endet nach den 15x piepen im Dauer Piepton.

Antriebs Motoren funktionieren, Mähmotor funktioniert, GPS funktioniert... bin ratlos.
Kann ja nicht sein dass ich hier 5 fehlerhafte IMU Chips liegen habe?

Noch Jemand eine Idee?
Wie kann ich den IMU komplett auskommentieren um mal zu testen ob der Roboter ohne IMU zurecht kommt?
Oder geht das gar nicht?
Wenn ich den IMU Block oben in der config.h komplett auskommentiere dann lässt es sich nicht kompelieren.

Kann ich den IMU irgendwie einzeln testen?
Gibt es da ein Command für den Serial Monitor?

Das Kabel zwischen PCB und IMU hab ich schon neu gemacht, bzw. musste ich eh da der 9250er ja eine andere Pinbelegung hat.
Aber wenn VCC,GND,SLA,SLC nicht funktionieren würden dann dürfte er die IMU ja auch gar nicht finden.
Wenn ich den AD0 Port mal auf Low setze im Code dann startet er auch nicht, scheint also so das AD0 auf High (3,3V) auch korrekt erkannt wird.

Achja in der App zeigt er als Fehler hinter mow oder idle dann immer (imu timeout).

Code:
MPU9250 found
using imu driver: MpuDriver
resuming is activated
state load... ok
dumpState:  X=5.62 Y=-27.16 delta=2.96 mapCRC=-4668871 mowPointsIdx=12 dockPointsIdx=1 freePointsIdx=1 wayMode=4 op=0 sensor=4 sonar.enabled=0 fixTimeout=4 absolutePosSource=0 lon=0.00 lat=0.00
WARN: PID unmet cycle time Ta=2.05 TaMax=0.07
WARN: PID unmet cycle time Ta=2.05 TaMax=0.07
batTemp=20  cpuTemp=32
==> changeOp:ImuCalibration->Idle
IMU gyro calibration (robot must be static)... 1
0:0:11 ctlDur=0.00 op=ImuCalibration->Idle freem=231363 sp=2C9B bat=0.00(0.00) chg=0.00(0.00) tg=0.00,0.00 x=5.62 y=-27.16 delta=2.96 tow=6400 lon=0.00000000 lat=0.00000000 h=0.0 n=0.00 e=0.00 d=0.00 sol=0 age=0.01
ublox chka error, msgclass=1, msgid=14, msglen=24: FF!=E6
IMU gyro calibration (robot must be static)... 2
IMU gyro calibration (robot must be static)... 3
IMU gyro calibration (robot must be static)... 4
IMU gyro calibration (robot must be static)... 5
0:0:16 ctlDur=0.02 op=ImuCalibration->Idle freem=231363 sp=4026 bat=28.73(0.13) chg=0.58(0.01) tg=0.00,0.00 x=5.62 y=-27.16 delta=2.96 tow=13000 lon=0.00000000 lat=0.00000000 h=0.0 n=0.00 e=0.00 d=0.00 sol=0 age=0.22
IMU gyro calibration (robot must be static)... 6
IMU gyro calibration (robot must be static)... 7
IMU gyro calibration (robot must be static)... 8
IMU gyro calibration (robot must be static)... 9
IMU gyro calibration (robot must be static)... 10
0:0:21 ctlDur=0.02 op=ImuCalibration->Idle freem=231363 sp=53B1 bat=28.73(0.20) chg=0.57(0.01) tg=0.00,0.00 x=5.62 y=-27.16 delta=2.96 tow=18000 lon=0.00000000 lat=0.00000000 h=0.0 n=0.00 e=0.00 d=0.00 sol=0 age=0.22
IMU gyro calibration (robot must be static)... 11
IMU gyro calibration (robot must be static)... 12
IMU gyro calibration (robot must be static)... 13
IMU gyro calibration (robot must be static)... 14
IMU gyro calibration (robot must be static)... 15
==> changeOp:Idle
OP_IDLE
0:0:26 ctlDur=0.02 op=Idle freem=231363 sp=673C bat=28.73(0.23) chg=0.58(0.01) tg=0.00,0.00 x=5.62 y=-27.16 delta=-3.04 tow=23000 lon=0.00000000 lat=0.00000000 h=0.0 n=0.00 e=0.00 d=0.00 sol=0 age=0.23
 
Zuletzt bearbeitet:
Das Kabel sollte sehr kurz sein (sollte sichergestellt sein, dass es vom Motor nicht elektromagnetisch beeinflusst wird), der IMU fest (am Gehäuse? - sollte zumindest nicht durch den Motorstart wackeln). Die auf dem IMU markierte x-Richtung sollte nach vorne zeigen und der IMU sollte lagerichtig eingebaut sein (waagerecht und oben sollte auch oben sein). Die Richtung könnte aber erst Probleme bereiten, wenn der Mäher fährt. Das tut er aber ja nicht, wenn ich es richtig verstehe.
Dein Problem scheint beim Motorstart zu entstehen. Wenn Du den Mäher per Startknopf einschaltest und erst einmal nur stehen lässt, wird der IMU bereits kalibriert und Du scheinst hier noch keinen Fehler zu bekommen, oder?
Dann ist es vielleicht ein elektromagnetisches Problem, dass beim Mähmotorstart entsteht.

Was mir sonst noch an Deinem Log auffällt: lat und lon sind immer 0. Hast Du bei dem Versuch bereits RTK fix?

Was Du vielleicht mal probieren könntest: Du kannst in motor.cpp um Zeile 64 je nach sunray Version die Zeile "enableMowMotor = true" nach "enableMowMotor = false" ändern oder ich habe mir diesen Wert sogar in die config.h als define gelegt. Dann kannst Du mal fahren, ohne dass versucht wird, den Mähmotor zu starten. Damit kannst Du ausschließen, dass es irgendetwas mit dem Mähmotor zu tun hat.
 
Hab grad kein aktuelles Bild, aber der IMU ist quasi vor das PCB geschraubt.
Quasi maximal weit weg von allen Kabeln wo richtig Strom durchgeht.

Richtung passt, X nach vorne und die Chipseite mit der Bestückung nach oben, gut verschraubt, bewegt sich keinen Millimeter.
Kabel ist so 10-15cm lang, kann das schon zu viel sein?
Wobei ich Monate lange keine Probleme hatte und jetzt klappt kein einziger Start mehr.

Hab den Start auch schon ohne Mowmotor gemacht indem ich dem in der App deaktiviert hatte.
Gleiche Ergebnis leider.

Der Log ist aus der Werkstatt, daher kein GPS bei der Situation, draußen hatte ich auch schon den Laptop dran aber da kam nicht viel mehr bei rüber.
Lon + Lat sollten die aktuellen GPS Koordinaten sein oder?
 

Anhänge

  • 20220523_103024.jpg
    20220523_103024.jpg
    1,7 MB · Aufrufe: 29
Zieh mal das Sonar ab, und wenn du hast auch den htu. Ziehe alles vom i2c bus ab, außer den imu.
Und lege die Kabel nicht über oder unter den Sensor.

img_20220122_154211-jpg.3472


Das hier könnte auch noch verbessert werden, mein raindrops kabel könnte von der anderen seite kommen...

Also erstmal alle leitungen verdrillen... und dann so gut wie möglich zusammenführen, würde ich vorschlagen.

img_20220122_154105-jpg.3471


Das mit dem Ubloxantennenkabel hat natürlich niemand gesehen XD!
 
Zuletzt bearbeitet:
Ich verstehe es einfach nicht...

Eben mal den zweiten IMU 9250 Chip genommen, das Kabel getwisted vom IMU.
Den Temp Sensor komplett entfernt + Jumper vom Temp Sensor.

Die anderen Kabel mal maximal weit weg gelegt vom IMU Kabel.

Auf die Wiese vor die Garage gestellt, exakt gleiches Problem, GPS fix in der App vorhanden, Position hat auch gepasst auf der Karte.
Strom aus, Roboter geschnappt und zur Terasse getragen um da den Laptop dran zustecken und das Log mitzuschneiden...
Laptop dran, Strom an, Log sieht gut aus, klick auf Start in der App -> Roboter springt sofort problemlos an und will los mähen... WTF

Noch 2x probiert, 2x funktioniert.
Wobei er einmal immerhin in die gleiche Routine gesprungen ist und kurz einen Dauerpiepton abgegeben hat, 5sek später ging es dann aber trotzdem los.

Muss jetzt erstmal die Chance nutzen und ihn fahren lassen bevor die Wiese zu hoch wird, weiteres Debugging dann in den nächsten Tagen.

Hier mal der Log von dem Try wo er 5sek Dauerpiepton abgegeben hat, was bedeuten denn diese "node pt=xxx" Zeilen?
Das ist grob der Zeitpunkt wo das piepen war. Dürften aber einfach nur die nächsten Wegpunkte sein oder?
Log damit quasi komplett unauffällig korrekt? Der Dauerpiepton kam direkt nach der Calibration die bis 15 zählt.

Code:
IMU gyro calibration (robot must be static)... 10
0:1:55 ctlDur=0.02 op=ImuCalibration->Mow freem=216351 sp=1C2BC bat=28.78(0.13) chg=0.58(0.01) tg=-4.39,-10.81 x=-5.44 y=-12.85 delta=1.12 tow=296795800 lon=8.08449712 lat=50.56868413 h=441.4 n=-12.85 e=-5.44 d=2.94 sol=2 age=0.85
IMU gyro calibration (robot must be static)... 11
IMU gyro calibration (robot must be static)... 12
IMU gyro calibration (robot must be static)... 13
IMU gyro calibration (robot must be static)... 14
IMU gyro calibration (robot must be static)... 15
==> changeOp:Mow
OP_MOW
Map::startMowing
findObstacleSafeMowPoint checking 15.23,-16.36
findPath (-5.44,-12.85) (15.23,-16.36)
path finder is enabled
freem=216215
starting path-finder
.finish nodes=481 duration=3588
node pt=15.23,-16.36
node pt=14.91,-15.57
node pt=14.05,-9.52
node pt=14.13,-9.26
node pt=14.27,-9.00
node pt=4.13,-5.63
node pt=0.96,-5.93
node pt=0.55,-6.10
node pt=-4.09,-10.47
node pt=-4.39,-10.81
node pt=-5.44,-12.85
0:2:3 ctlDur=0.02 op=Mow freem=216351 sp=0 bat=28.78(0.13) chg=0.58(0.01) tg=-4.39,-10.81 x=-5.44 y=-12.85 delta=1.12 tow=296800000 lon=8.08449693 lat=50.56868412 h=441.4 n=-12.85 e=-5.44 d=2.94 sol=2 age=3.72
WARN: PID unmet cycle time Ta=3.60 TaMax=0.07
WARN: PID unmet cycle time Ta=3.61 TaMax=0.07
dumpState:  X=-5.44 Y=-12.85 delta=1.12 mapCRC=-4668871 mowPointsIdx=12 dockPointsIdx=0 freePointsIdx=0 wayMode=4 op=1 sensor=4 sonar.enabled=0 fixTimeout=4 absolutePosSource=0 lon=0.00 lat=0.00
save state... ok
ublox chka error, msgclass=1, msgid=14, msglen=24: 11!=C4
0:2:8 ctlDur=0.02 op=Mow freem=216351 sp=1F4F2 bat=28.65(0.34) chg=0.57(0.01) tg=-4.39,-10.81 x=-5.44 y=-12.85 delta=0.92 tow=296808600 lon=8.08449713 lat=50.56868412 h=441.4 n=-12.85 e=-5.44 d=2.94 sol=2 age=0.74
dumpState:  X=-5.44 Y=-12.85 delta=0.92 mapCRC=-4668871 mowPointsIdx=12 dockPointsIdx=1 freePointsIdx=1 wayMode=4 op=1 sensor=4 sonar.enabled=0 fixTimeout=4 absolutePosSource=0 lon=0.00 lat=0.00
save state... ok
batTemp=998  cpuTemp=28
WARN: PID unmet cycle time Ta=0.14 TaMax=0.07
WARN: PID unmet cycle time Ta=0.14 TaMax=0.07
0:2:13 ctlDur=0.02 op=Mow freem=216351 sp=2087B bat=28.62(0.40) chg=0.58(0.01) tg=-4.39,-10.81 x=-5.45 y=-12.85 delta=0.92 tow=296813600 lon=8.08449683 lat=50.56868411 h=441.4 n=-12.85 e=-5.45 d=2.94 sol=2 age=0.75

Hier mal der volle Log wo er auch direkt angesprungen ist, da ist auch komplette Config zu sehen.

Code:
SD card found!
RESET cause: power-on
Sunray,1.0.286
compiled for: Adafruit Grand Central M4
using robot driver: AmRobotDriver
robot id: 09:c5:37:9b:53:37:54:48:4e:20:20:20:ff:12:29:33
MOTOR_DRIVER_BRUSHLESS: yes
enableCharging 0
probing for HM-10 module (NOTE: will fail for ESP32)...
trying to detect Bluetooth 4.0/BLE (HM-10 module) (make sure your phone is NOT connected)9600...
BLE: AT
trying to detect Bluetooth 4.0/BLE (HM-10 module) (make sure your phone is NOT connected)115200...
BLE: AT
OK
Bluetooth 4.0/BLE (HM-10) module found!
BLE: AT+VERSION
+VERSION=ESP32 firmware V0.4.5,Bluetooth V4.0 LE
BLE: AT+NAMEArdumower
+NAME=Ardumower
BLE: AT+RESET
+RESET
RCModel disabled in config
ENABLE_PASS
FREEWHEEL_IS_AT_BACKSIDE: 1
WHEEL_BASE_CM: 36
WHEEL_DIAMETER: 250
ENABLE_ODOMETRY_ERROR_DETECTION: 1
TICKS_PER_REVOLUTION: 650
MOTOR_DRIVER_BRUSHLESS
MOTOR_DRIVER_BRUSHLESS_MOW_JYQD
MOTOR_DRIVER_BRUSHLESS_GEARS_JYQD
MOTOR_FAULT_CURRENT: 6.00
MOTOR_OVERLOAD_CURRENT: 2.80
USE_LINEAR_SPEED_RAMP: 0
MOTOR_PID_KP: 1.50
MOTOR_PID_KI: 0.03
MOTOR_PID_KD: 0
MOTOR_LEFT_SWAP_DIRECTION
MOTOR_RIGHT_SWAP_DIRECTION
ENABLE_DYNAMIC_MOWER_SPEED: 0
MOW_FAULT_CURRENT: 3.30
MOW_OVERLOAD_CURRENT: 2.50
ENABLE_OVERLOAD_DETECTION: 1
ENABLE_FAULT_DETECTION: 0
ENABLE_FAULT_OBSTACLE_AVOIDANCE: 0
ENABLE_RPM_FAULT_DETECTION: 1
ENABLE_DYNAMIC_MOWMOTOR: 1
SONAR_INSTALLED
SONAR_ENABLE: 1
SONAR_TRIGGER_OBSTACLES: 0
RAIN_ENABLE: 0
BUMPER_ENABLE: 0
CURRENT_FACTOR: 2.94
GO_HOME_VOLTAGE: 22.50
BAT_FULL_VOLTAGE: 29.00
BAT_FULL_CURRENT: 0.20
BAT_SWITCH_OFF_IDLE: 1
BAT_SWITCH_OFF_UNDERVOLTAGE: 1
REQUIRE_VALID_GPS: 1
GPS_SPEED_DETECTION: 1
GPS_MOTION_DETECTION: 1
GPS_REBOOT_RECOVERY: 1
GPS_CONFIG: 1
GPS_CONFIG_FILTER: 1
CPG_CONFIG_FILTER_MINELEV: 10
CPG_CONFIG_FILTER_NCNOTHRS: 0
CPG_CONFIG_FILTER_CNOTHRS: 0
ALLOW_ROUTE_OUTSIDE_PERI_METER: 0.15
OBSTACLE_DETECTION_ROTATION: 0
KIDNAP_DETECT: 0
KIDNAP_DETECT_ALLOWED_PATH_TOLERANCE: 1.00
DOCKING_STATION: 0
DOCK_IGNORE_GPS: 0
DOCK_AUTO_START: 1
TARGET_REACHED_TOLERANCE: 0.05
STANLEY_CONTROL_P_NORMAL: 0.60
STANLEY_CONTROL_K_NORMAL: 0.40
STANLEY_CONTROL_P_SLOW: 0.80
STANLEY_CONTROL_K_SLOW: 0.10
BUTTON_CONTROL: 1
USE_TEMP_SENSOR
BUZZER_ENABLE
SERIAL_BUFFER_SIZE=1024 (increase if you experience GPS checksum errors)
-----------------------------------------------------
UBLOX::begin serial
using gps driver: UBLOX
trying to connect to ublox f9p...
NOTE: if GPS is not responding either set 'GPS_CONFIG=false' in config.h or perform GPS wire fix (see Wiki)
trying baud 115200
GPS receiver found!
ublox f9p: sending GPS rover configuration...
idx=0...OK
idx=1...OK
idx=2...OK
config sent successfully
sizeof Point=4
map load... ok
map dump - mapCRC=-4668871
points:
perimeter pts: 150
exclusion pts: 329
exclusions: 22
dock pts: 0
mow pts: 2792
first mow point:12.60,-13.99
free pts: 0
mowPointsIdx=0 dockPointsIdx=0 freePointsIdx=0 wayMode=3
probing for ESP8266 (NOTE: will fail for ESP32)...
WIFI (ESP8266) not found! If you have ESP8266 and the problem persist, you may need to flash your ESP to firmware 2.2.171
MPU9250 found
using imu driver: MpuDriver
resuming is activated
state load... ok
dumpState:  X=5.98 Y=-27.29 delta=-2.89 mapCRC=-4668871 mowPointsIdx=12 dockPointsIdx=1 freePointsIdx=1 wayMode=4 op=0 sensor=4 sonar.enabled=0 fixTimeout=4 absolutePosSource=0 lon=0.00 lat=0.00
WARN: PID unmet cycle time Ta=2.01 TaMax=0.07
WARN: PID unmet cycle time Ta=2.01 TaMax=0.07
batTemp=20  cpuTemp=22
==> changeOp:ImuCalibration->Idle
IMU gyro calibration (robot must be static)... 1
0:0:11 ctlDur=0.00 op=ImuCalibration->Idle freem=231363 sp=2D42 bat=0.00(0.00) chg=0.00(0.00) tg=0.00,0.00 x=5.98 y=-27.29 delta=-2.89 tow=5600 lon=0.00000000 lat=0.00000000 h=0.0 n=0.00 e=0.00 d=0.00 sol=0 age=11.59
ublox chka error, msgclass=1, msgid=14, msglen=24: 11!=47
IMU gyro calibration (robot must be static)... 2
IMU gyro calibration (robot must be static)... 3
IMU gyro calibration (robot must be static)... 4
IMU gyro calibration (robot must be static)... 5
0:0:16 ctlDur=0.02 op=ImuCalibration->Idle freem=231363 sp=40CC bat=28.79(0.14) chg=0.57(0.01) tg=0.00,0.00 x=5.98 y=-27.29 delta=-2.89 tow=296575600 lon=0.00000000 lat=0.00000000 h=0.0 n=0.00 e=0.00 d=0.00 sol=0 age=0.21
IMU gyro calibration (robot must be static)... 6
IMU gyro calibration (robot must be static)... 7
IMU gyro calibration (robot must be static)... 8
IMU gyro calibration (robot must be static)... 9
IMU gyro calibration (robot must be static)... 10
0:0:21 ctlDur=0.02 op=ImuCalibration->Idle freem=231363 sp=5456 bat=28.80(0.21) chg=0.55(0.02) tg=0.00,0.00 x=5.98 y=-27.29 delta=-2.89 tow=296580600 lon=8.08450845 lat=50.56868765 h=439.1 n=-12.46 e=-4.64 d=5.20 sol=0 age=0.23
GPS jump: 13.29
IMU gyro calibration (robot must be static)... 11
IMU gyro calibration (robot must be static)... 12
IMU gyro calibration (robot must be static)... 13
IMU gyro calibration (robot must be static)... 14
IMU gyro calibration (robot must be static)... 15
==> changeOp:Idle
OP_IDLE
0:0:26 ctlDur=0.02 op=Idle freem=231363 sp=67DF bat=28.81(0.24) chg=0.57(0.01) tg=0.00,0.00 x=-4.62 y=-12.47 delta=-3.11 tow=296585600 lon=8.08450852 lat=50.56868732 h=439.1 n=-12.47 e=-4.62 d=5.24 sol=1 age=0.24
0:0:31 ctlDur=0.02 op=Idle freem=231363 sp=7B6A bat=28.81(0.26) chg=0.56(0.01) tg=0.00,0.00 x=-4.63 y=-12.67 delta=-2.91 tow=296590600 lon=8.08450865 lat=50.56868552 h=439.1 n=-12.67 e=-4.63 d=5.20 sol=1 age=0.25
0:0:36 ctlDur=0.02 op=Idle freem=231363 sp=8EF5 bat=28.81(0.25) chg=0.57(0.01) tg=0.00,0.00 x=-4.96 y=-13.00 delta=-3.11 tow=296595600 lon=8.08450402 lat=50.56868282 h=439.4 n=-13.00 e=-4.96 d=4.90 sol=1 age=0.27
GPS jump: 0.49
0:0:41 ctlDur=0.02 op=Idle freem=231363 sp=A27E bat=28.81(0.24) chg=0.56(0.01) tg=0.00,0.00 x=-5.52 y=-13.16 delta=-3.11 tow=296600600 lon=8.08449601 lat=50.56868134 h=441.4 n=-13.16 e=-5.52 d=2.94 sol=2 age=0.29
sending encryptMode=1 encryptChallenge=191
absolutePosSource=0 lon=0.00000000 lat=0.00000000
0:0:46 ctlDur=0.02 op=Idle freem=230643 sp=B608 bat=28.81(0.23) chg=0.56(0.02) tg=0.00,0.00 x=-5.52 y=-13.16 delta=-3.11 tow=296605600 lon=8.08449602 lat=50.56868111 h=441.4 n=-13.16 e=-5.52 d=2.93 sol=2 age=0.31
0:0:51 ctlDur=0.02 op=Idle freem=230643 sp=C991 bat=28.80(0.22) chg=0.57(0.02) tg=0.00,0.00 x=-5.52 y=-13.16 delta=-3.11 tow=296610600 lon=8.08449603 lat=50.56868135 h=441.4 n=-13.16 e=-5.52 d=2.94 sol=2 age=0.34
setOperation op=1
changeOperationType
dumpState:  X=-5.51 Y=-13.16 delta=-3.11 mapCRC=-4668871 mowPointsIdx=12 dockPointsIdx=1 freePointsIdx=1 wayMode=4 op=1 sensor=4 sonar.enabled=0 fixTimeout=4 absolutePosSource=0 lon=0.00 lat=0.00
save state... ok
==> changeOp:Mow
OP_MOW
clearObstacles
Map::startMowing
findObstacleSafeMowPoint checking 15.23,-16.36
findPath (-5.51,-13.16) (15.23,-16.36)
path finder is enabled
freem=216919
starting path-finder
.finish nodes=481 duration=3641
node pt=15.23,-16.36
node pt=14.91,-15.57
node pt=14.05,-9.52
node pt=14.13,-9.26
node pt=14.27,-9.00
node pt=4.13,-5.63
node pt=0.96,-5.93
node pt=0.55,-6.10
node pt=-4.09,-10.47
node pt=-4.39,-10.81
node pt=-5.51,-13.16
WARN: PID unmet cycle time Ta=3.70 TaMax=0.07
WARN: PID unmet cycle time Ta=3.70 TaMax=0.07
ublox chka error, msgclass=1, msgid=3C, msglen=40: 62!=1
0:0:56 ctlDur=0.07 op=Mow freem=216387 sp=DD1B bat=28.70(0.35) chg=0.53(0.01) tg=-4.39,-10.81 x=-5.52 y=-13.16 delta=-3.11 tow=296615800 lon=8.08449612 lat=50.56868133 h=441.4 n=-13.16 e=-5.52 d=2.95 sol=2 age=0.35
0:1:1 ctlDur=0.02 op=Mow freem=216287 sp=F0A4 bat=28.63(0.47) chg=0.56(0.01) tg=-4.39,-10.81 x=-5.51 y=-13.16 delta=-3.11 tow=296620800 lon=8.08449615 lat=50.56868134 h=441.4 n=-13.16 e=-5.51 d=2.96 sol=2 age=0.36
0:1:6 ctlDur=0.02 op=Mow freem=216287 sp=1042F bat=28.59(0.53) chg=0.54(0.01) tg=-4.39,-10.81 x=-5.51 y=-13.16 delta=2.95 tow=296625800 lon=8.08449593 lat=50.56868110 h=441.4 n=-13.16 e=-5.51 d=2.96 sol=2 age=0.36
setOperation op=0
changeOperationType
dumpState:  X=-5.51 Y=-13.16 delta=2.82 mapCRC=-4668871 mowPointsIdx=12 dockPointsIdx=1 freePointsIdx=1 wayMode=4 op=0 sensor=4 sonar.enabled=0 fixTimeout=4 absolutePosSource=0 lon=0.00 lat=0.00
save state... ok
==> changeOp:Idle
OP_IDLE
batTemp=998  cpuTemp=25
WARN: PID unmet cycle time Ta=0.11 TaMax=0.07
WARN: PID unmet cycle time Ta=0.11 TaMax=0.07
0:1:11 ctlDur=0.02 op=Idle freem=216287 sp=117B9 bat=28.64(0.43) chg=0.57(0.01) tg=-4.39,-10.81 x=-5.50 y=-13.16 delta=2.67 tow=296630800 lon=8.08449633 lat=50.56868134 h=441.4 n=-13.16 e=-5.50 d=2.96 sol=2 age=0.39
0:1:16 ctlDur=0.02 op=Idle freem=216287 sp=12B43 bat=28.69(0.35) chg=0.57(0.01) tg=-4.39,-10.81 x=-5.50 y=-13.16 delta=2.68 tow=296635800 lon=8.08449631 lat=50.56868132 h=441.4 n=-13.16 e=-5.50 d=2.96 sol=2 age=0.36
0:1:21 ctlDur=0.02 op=Idle freem=216287 sp=13ECD bat=28.73(0.28) chg=0.58(0.01) tg=-4.39,-10.81 x=-5.51 y=-13.16 delta=2.69 tow=296640800 lon=8.08449624 lat=50.56868111 h=441.4 n=-13.16 e=-5.51 d=2.96 sol=2 age=0.41
0:1:26 ctlDur=0.02 op=Idle freem=216287 sp=0 bat=28.74(0.27) chg=0.57(0.01) tg=-4.39,-10.81 x=-5.44 y=-12.92 delta=1.78 tow=296645800 lon=8.08449722 lat=50.56868352 h=441.4 n=-12.92 e=-5.44 d=2.97 sol=2 age=0.42
ERROR: odometry error - rpm too low (left, right)=0.00,0.17
setOperation op=1
changeOperationType
dumpState:  X=-5.44 Y=-12.92 delta=1.77 mapCRC=-4668871 mowPointsIdx=12 dockPointsIdx=1 freePointsIdx=1 wayMode=4 op=1 sensor=4 sonar.enabled=0 fixTimeout=4 absolutePosSource=0 lon=0.00 lat=0.00
save state... ok
==> changeOp:Mow
OP_MOW
clearObstacles
Map::startMowing
findObstacleSafeMowPoint checking 15.23,-16.36
findPath (-5.44,-12.92) (15.23,-16.36)
path finder is enabled
freem=216151
starting path-finder
.finish nodes=481 duration=3564
node pt=15.23,-16.36
node pt=14.91,-15.57
node pt=14.05,-9.52
node pt=14.13,-9.26
node pt=14.27,-9.00
node pt=4.13,-5.63
node pt=0.96,-5.93
node pt=0.55,-6.10
node pt=-4.09,-10.47
node pt=-4.39,-10.81
node pt=-5.44,-12.92
motor fault recover counter 1
Starting Recovery JYQD2021 Driver. Brake-Pins and Dir-Pins are LOW for 100ms
WARN: PID unmet cycle time Ta=3.72 TaMax=0.07
WARN: PID unmet cycle time Ta=3.72 TaMax=0.07
ublox chka error, msgclass=1, msgid=14, msglen=24: 11!=AA
0:1:31 ctlDur=0.08 op=Mow freem=216287 sp=165E1 bat=28.68(0.35) chg=0.54(0.00) tg=-4.39,-10.81 x=-5.44 y=-12.92 delta=1.77 tow=296650800 lon=8.08449722 lat=50.56868322 h=441.4 n=-12.92 e=-5.44 d=2.96 sol=2 age=0.43
0:1:36 ctlDur=0.02 op=Mow freem=216287 sp=1796B bat=28.63(0.43) chg=0.54(0.01) tg=-4.39,-10.81 x=-5.43 y=-12.92 delta=1.76 tow=296655800 lon=8.08449700 lat=50.56868352 h=441.4 n=-12.92 e=-5.43 d=2.96 sol=2 age=0.44
resetting recoverMotorFaultCounter
0:1:41 ctlDur=0.02 op=Mow freem=216287 sp=18CF6 bat=28.61(0.46) chg=0.56(0.01) tg=-4.39,-10.81 x=-5.44 y=-12.92 delta=1.71 tow=296660800 lon=8.08449722 lat=50.56868321 h=441.4 n=-12.92 e=-5.44 d=2.96 sol=2 age=0.44
setOperation op=0
changeOperationType
dumpState:  X=-5.44 Y=-12.87 delta=1.32 mapCRC=-4668871 mowPointsIdx=12 dockPointsIdx=1 freePointsIdx=1 wayMode=4 op=0 sensor=4 sonar.enabled=0 fixTimeout=4 absolutePosSource=0 lon=0.00 lat=0.00
save state... ok
==> changeOp:Idle
OP_IDLE
 
Zuletzt bearbeitet:
Zur node - Frage kann ich Dir nichts sagen. Diese Meldung habe ich gar nicht. Vielleicht liegt es an der eingesetzten SW-Version (Ich bin auf etwas neuerer Version), vielleicht auch daran, dass Du anders parametrierst als ich.

Was mir aber auffällt:
Du hast auch im Log, wo es funktioniert hat, recht viele "ublox chka error". Diesen habe ich immer nur ein einziges mal kurz nach Start und dann nie wieder. Hast Du den serial buffer wie im Wiki beschrieben hochgesetzt? - Laut log: Ja. Aber auch in der Adafruit-Systemdatei? Siehst Du in der App auch ein hochzählen von Checksum-Fehlern in der ublox-Kommunikation? Auch diese Datenkabel sollten für sich verdrillt sein. Powerkabel verdrille ich immer separat miteinander, getrennt von den Datenkabeln.

Die "WARN: PID unmet cycle time" habe ich zwar auch gelegentlich. Aber nicht mit so hohen Werten wie 3.72. Bei mir ist es einmalig 1.9 gewesen und ansonsten gelegentlich mal 0.12. - Frag mich aber nicht wo das herkommen kann und ob das irgendwelche negativen Auswirkungen hat.

Und ein Odometriefehler ist auch noch im Log zu sehen.

Es hat hier bei Dir zwar funktioniert, aber vielleicht ist das ein Indiz, wo etwas nicht stimmt. Wenn es irgendwodurch mal ungünstiger wird, knallt es dann vielleicht.
 
Wenn der einfach losmähen will.... mach mal dock auto start aus

Du hast nämlich keine docking station true.....
Aber dock auto start.

Der denkt wahrscheinlich das er immer aus dem dock kommt, weil er keins hat....
 
Mäher läuft jetzt wieder recht zuverlässig, bekomme aber hin und wieder doch mal den gleichen Fehler.
Verdacht liegt also nahe dass es eventuell gar nicht nur am IMU Chip liegt.

Ich denke ich muss mein komplettes Case eh nochmal etwas aufräumen.
Die ESP32 und GPS Kabel gehen aktuell direkt an den Motoren vorbei, kann ich aber nicht ändern ohne jetzt alles zu zerlegen.
Eventuell war es auch eine Kombi aus IMU und GPS Störung durch Motoren.

Da ich jetzt aber auch neu einen 3D Drucker habe wollte ich eh noch einige Anpassungen am Mowerinneren machen.
Aber das schiebe ich erstmal noch paar Tage/Wochen vor mir hin, aktuell wenig Lust und Zeit dafür.
 
Oben