EinEinfach
Well-known member
Hallo zusammen,
ich habe heute meine Rover im Gaten liegen geblieben entdekt, eigentlich sollte er den Rasen mähen. Zuerst dachte ich an die üblichen verdächtigen (GPS invalid etc.). Allerdings stand er einfach nur rum und die App zeigte Idle. Sowie der Zufall es will, hatte ich aus anderen Gründen den seriellen Monitor laufen und das was ich da entdeckt habe, konnte ich bei meinem Mower noch nie beobachten. Anscheinend wurde der Programcode vom Watchdog resetet. Hier ist der Auszug:
Kennt Ihr das von euren Mowern? Was sind die Gründe von dem Reset? Hat sich der Code tatsächlich aufgehängt? Wie habt Ihr das gelöst?
Gruß
Alexander
ich habe heute meine Rover im Gaten liegen geblieben entdekt, eigentlich sollte er den Rasen mähen. Zuerst dachte ich an die üblichen verdächtigen (GPS invalid etc.). Allerdings stand er einfach nur rum und die App zeigte Idle. Sowie der Zufall es will, hatte ich aus anderen Gründen den seriellen Monitor laufen und das was ich da entdeckt habe, konnte ich bei meinem Mower noch nie beobachten. Anscheinend wurde der Programcode vom Watchdog resetet. Hier ist der Auszug:
Code:
16:10:41.008 -> bumper obstacle!
16:10:41.008 -> triggerObstacle
16:10:41.057 -> ==> changeOp:EscapeReverse->Mow
16:10:42.804 -> batTemp=0.0 cpuTemp=47
16:10:43.735 -> 2:26:14 ctlDur=0.02 op=EscapeReverse->Mow freem=199667 sp=85E39F bat=25.78(0.31) chg=0.67(0.04) tg=-12.26,3.87 x=-12.52 y=3.59 delta=0.75 tow=51061600 lon=10.43170235 lat=52.44016861 h=106.4 n=4362.96 e=-2457.19 d=2.18 sol=2 age=0.94
16:10:44.068 -> driveReverseStopTime
16:10:44.068 -> continue operation with virtual obstacle
16:10:44.068 -> addObstacle -12.08,4.05
16:10:44.106 -> ==> changeOp:Mow
16:10:44.106 -> OP_MOW
16:10:44.106 -> Map::startMowing
16:10:44.106 -> findObstacleSafeMowPoint checking -13.33,5.85
16:10:44.106 -> findPath (-12.54,3.59) (-13.01,4.67)
16:10:44.106 -> path finder is enabled
16:10:44.106 -> freem=199523
16:10:44.106 -> starting path-finder
16:10:44.106 -> .finish nodes=204 duration=201
16:10:44.302 -> node pt=-13.01,4.67
16:10:44.302 -> node pt=-13.06,4.67
16:10:44.302 -> node pt=-13.46,4.27
16:10:44.302 -> node pt=-13.46,3.87
16:10:44.302 -> node pt=-13.06,3.47
16:10:44.302 -> node pt=-12.66,3.47
16:10:44.302 -> node pt=-12.54,3.59
16:10:44.302 -> WARN: PID unmet cycle time Ta=0.24 TaMax=0.07
16:10:44.302 -> WARN: PID unmet cycle time Ta=0.24 TaMax=0.07
16:10:47.697 -> ublox chka error, msgclass=1, msgid=3C, msglen=40: B5!=E4
16:11:00.844 -> SD card found!
16:11:00.844 -> RESET cause: watchdog
16:11:00.844 -> Sunray,1.0.276
16:11:00.844 -> compiled for: Adafruit Grand Central M4
16:11:00.844 -> using robot driver: AmRobotDriver
16:11:00.844 -> robot id: f1:81:dd:56:53:4c:53:34:48:20:20:20:ff:06:03:2b
16:11:00.844 -> MOTOR_DRIVER_BRUSHLESS: yes
16:11:00.844 -> enableCharging 0
16:11:00.844 -> probing for HM-10 module (NOTE: will fail for ESP32)...
16:11:00.844 -> trying to detect Bluetooth 4.0/BLE (HM-10 module) (make sure your phone is NOT connected)9600...
16:11:01.343 -> BLE: AT
16:11:03.372 -> trying to detect Bluetooth 4.0/BLE (HM-10 module) (make sure your phone is NOT connected)115200...
16:11:03.870 -> BLE: AT
16:11:05.301 -> AT+S,0x13
16:11:05.501 -> error: no BLE module found!
16:11:05.501 -> RCModel disabled in config
16:11:05.501 -> ENABLE_TILT_DETECTION
16:11:05.501 -> FREEWHEEL_IS_AT_BACKSIDE: 0
16:11:05.501 -> WHEEL_BASE_CM: 44
16:11:05.501 -> WHEEL_DIAMETER: 220
16:11:05.501 -> ENABLE_LIFT_DETECTION
16:11:05.501 -> LIFT_OBSTACLE_AVOIDANCE
16:11:05.501 -> ENABLE_ODOMETRY_ERROR_DETECTION: 1
16:11:05.501 -> TICKS_PER_REVOLUTION: 384
16:11:05.501 -> MOTOR_DRIVER_BRUSHLESS
16:11:05.501 -> MOTOR_DRIVER_BRUSHLESS_MOW_JYQD
16:11:05.501 -> MOTOR_OVERLOAD_CURRENT: 1.80
16:11:05.501 -> USE_LINEAR_SPEED_RAMP: 0
16:11:05.501 -> MOTOR_PID_KP: 1.50
16:11:05.501 -> MOTOR_PID_KI: 0.03
16:11:05.501 -> MOTOR_PID_KD: 0
16:11:05.501 -> MOTOR_LEFT_SWAP_DIRECTION
16:11:05.501 -> MOTOR_RIGHT_SWAP_DIRECTION
16:11:05.501 -> ENABLE_DYNAMIC_MOWER_SPEED: 0
16:11:05.501 -> MOW_OVERLOAD_CURRENT: 3.00
16:11:05.501 -> ENABLE_OVERLOAD_DETECTION: 1
16:11:05.501 -> ENABLE_FAULT_DETECTION: 0
16:11:05.501 -> ENABLE_FAULT_OBSTACLE_AVOIDANCE: 1
16:11:05.501 -> ENABLE_DYNAMIC_MOWMOTOR: 0
16:11:05.501 -> RAIN_ENABLE: 0
16:11:05.501 -> BUMPER_ENABLE: 1
16:11:05.501 -> CURRENT_FACTOR: 1.98
16:11:05.501 -> GO_HOME_VOLTAGE: 23.50
16:11:05.501 -> BAT_FULL_VOLTAGE: 28.70
16:11:05.501 -> BAT_FULL_CURRENT: 0.20
16:11:05.501 -> BAT_SWITCH_OFF_IDLE: 0
16:11:05.501 -> BAT_SWITCH_OFF_UNDERVOLTAGE: 1
16:11:05.501 -> REQUIRE_VALID_GPS: 1
16:11:05.501 -> GPS_SPEED_DETECTION: 1
16:11:05.501 -> GPS_MOTION_DETECTION: 1
16:11:05.501 -> GPS_REBOOT_RECOVERY: 1
16:11:05.501 -> GPS_CONFIG: 1
16:11:05.501 -> GPS_CONFIG_FILTER: 1
16:11:05.501 -> CPG_CONFIG_FILTER_MINELEV: 10
16:11:05.501 -> CPG_CONFIG_FILTER_NCNOTHRS: 10
16:11:05.501 -> CPG_CONFIG_FILTER_CNOTHRS: 30
16:11:05.501 -> ALLOW_ROUTE_OUTSIDE_PERI_METER: 1.00
16:11:05.501 -> OBSTACLE_DETECTION_ROTATION: 1
16:11:05.501 -> KIDNAP_DETECT: 1
16:11:05.501 -> KIDNAP_DETECT_ALLOWED_PATH_TOLERANCE: 1.00
16:11:05.501 -> DOCKING_STATION: 1
16:11:05.501 -> DOCK_IGNORE_GPS: 0
16:11:05.501 -> DOCK_AUTO_START: 0
16:11:05.501 -> TARGET_REACHED_TOLERANCE: 0.05
16:11:05.501 -> STANLEY_CONTROL_P_NORMAL: 0.60
16:11:05.501 -> STANLEY_CONTROL_K_NORMAL: 0.40
16:11:05.501 -> STANLEY_CONTROL_P_SLOW: 0.80
16:11:05.501 -> STANLEY_CONTROL_K_SLOW: 0.10
16:11:05.501 -> BUTTON_CONTROL: 1
16:11:05.501 -> BUZZER_ENABLE
16:11:05.501 -> SERIAL_BUFFER_SIZE=2048 (increase if you experience GPS checksum errors)
16:11:05.501 -> -----------------------------------------------------
16:11:05.501 -> UBLOX::begin serial
16:11:05.501 -> using gps driver: UBLOX
16:11:05.501 -> trying to connect to ublox f9p...
16:11:05.501 -> NOTE: if GPS is not responding either set 'GPS_CONFIG=false' in config.h or perform GPS wire fix (see Wiki)
16:11:05.544 -> trying baud 115200
16:11:05.544 -> GPS receiver found!
16:11:05.544 -> ublox f9p: sending GPS rover configuration...
16:11:05.544 -> idx=0...OK
16:11:05.544 -> idx=1...OK
16:11:05.583 -> idx=2...OK
16:11:05.583 -> config sent successfully
16:11:05.583 -> sizeof Point=4
16:11:05.583 -> map load... ok
16:11:05.631 -> map dump - mapCRC=-1823114
16:11:05.631 -> points:
16:11:05.631 -> perimeter pts: 109
16:11:05.631 -> exclusion pts: 69
16:11:05.631 -> exclusions: 8
16:11:05.631 -> dock pts: 6
16:11:05.631 -> mow pts: 1234
16:11:05.631 -> first mow point:-8.29,-8.04
16:11:05.631 -> free pts: 0
16:11:05.631 -> mowPointsIdx=0 dockPointsIdx=0 freePointsIdx=0 wayMode=3
16:11:05.631 -> probing for ESP8266 (NOTE: will fail for ESP32)...
16:11:06.101 -> WIFI (ESP8266) not found! If you have ESP8266 and the problem persist, you may need to flash your ESP to firmware 2.2.168
16:11:06.135 -> MPU6050/9150 found
16:11:06.135 -> using imu driver: MpuDriver
16:11:07.466 -> resuming is activated
16:11:07.466 -> state load... ok
16:11:07.466 -> dumpState: X=-12.69 Y=3.47 delta=1.76 mapCRC=-1823114 mowPointsIdx=551 dockPointsIdx=1 freePointsIdx=1 wayMode=4 op=0 sensor=0 sonar.enabled=1 fixTimeout=70 absolutePosSource=1 lon=10.43 lat=52.44
16:11:07.466 -> resuming operation due to watchdog trigger
16:11:07.466 -> setOperation op=1
16:11:07.466 -> dumpState: X=-12.69 Y=3.47 delta=1.76 mapCRC=-1823114 mowPointsIdx=551 dockPointsIdx=1 freePointsIdx=1 wayMode=4 op=1 sensor=0 sonar.enabled=1 fixTimeout=70 absolutePosSource=1 lon=10.43 lat=52.44
16:11:07.516 -> save state... ok
16:11:07.516 -> WARN: PID unmet cycle time Ta=2.00 TaMax=0.07
16:11:07.516 -> WARN: PID unmet cycle time Ta=2.00 TaMax=0.07
16:11:07.516 -> batTemp=0.0 cpuTemp=48
16:11:07.516 -> GPS jump: 13.07
16:11:07.516 -> ==> changeOp:ImuCalibration->Idle
16:11:07.516 -> IMU gyro calibration (robot must be static)... 1
16:11:07.516 -> 0:0:10 ctlDur=0.00 op=ImuCalibration->Idle freem=225551 sp=299D bat=0.00(0.00) chg=0.00(0.00) tg=0.00,0.00 x=-12.58 y=3.55 delta=1.76 tow=51085200 lon=10.43170153 lat=52.44016824 h=106.4 n=4362.92 e=-2457.23 d=2.18 sol=2 age=0.02
16:11:08.130 -> ublox chka error, msgclass=1, msgid=43, msglen=508: 0!=B3
16:11:08.529 -> IMU gyro calibration (robot must be static)... 2
16:11:09.526 -> IMU gyro calibration (robot must be static)... 3
16:11:10.557 -> IMU gyro calibration (robot must be static)... 4
16:11:11.555 -> IMU gyro calibration (robot must be static)... 5
16:11:12.519 -> dumpState: X=-12.56 Y=3.58 delta=1.76 mapCRC=-1823114 mowPointsIdx=551 dockPointsIdx=1 freePointsIdx=1 wayMode=4 op=0 sensor=0 sonar.enabled=1 fixTimeout=70 absolutePosSource=1 lon=10.43 lat=52.44
16:11:12.519 -> save state... ok
16:11:12.519 -> 0:0:15 ctlDur=0.02 op=ImuCalibration->Idle freem=224683 sp=3D33 bat=25.83(0.10) chg=0.66(0.04) tg=0.00,0.00 x=-12.55 y=3.58 delta=1.76 tow=51090400 lon=10.43170183 lat=52.44016853 h=106.4 n=4362.92 e=-2457.23 d=2.18 sol=2 age=0.08
16:11:12.609 -> IMU gyro calibration (robot must be static)... 6
16:11:13.585 -> IMU gyro calibration (robot must be static)... 7
16:11:14.582 -> IMU gyro calibration (robot must be static)... 8
16:11:15.613 -> IMU gyro calibration (robot must be static)... 9
16:11:16.644 -> IMU gyro calibration (robot must be static)... 10
16:11:17.542 -> 0:0:20 ctlDur=0.02 op=ImuCalibration->Idle freem=224683 sp=50BC bat=25.82(0.16) chg=0.66(0.04) tg=0.00,0.00 x=-12.56 y=3.58 delta=1.76 tow=51095400 lon=10.43170182 lat=52.44016852 h=106.4 n=4362.92 e=-2457.23 d=2.18 sol=2 age=0.32
16:11:17.643 -> IMU gyro calibration (robot must be static)... 11
16:11:18.673 -> IMU gyro calibration (robot must be static)... 12
16:11:19.670 -> IMU gyro calibration (robot must be static)... 13
16:11:20.700 -> IMU gyro calibration (robot must be static)... 14
16:11:21.699 -> IMU gyro calibration (robot must be static)... 15
16:11:21.768 -> ==> changeOp:Idle
16:11:21.768 -> OP_IDLE
Kennt Ihr das von euren Mowern? Was sind die Gründe von dem Reset? Hat sich der Code tatsächlich aufgehängt? Wie habt Ihr das gelöst?
Gruß
Alexander