Hi, i made a quick sumup about most changes:
Code Iteration
- IDLE and DOCK Iteration time is 10 Hz
- Mow Iteration is 50 Hz
- Imu readout > 30 Hz
Mowmotor
- PID controller for RPM of mowmotor (USE_MOW_RPM_SET)
- Different RPM sets for different conditions eg. retry(escapeLawn), mowrpm stalls under xy% of setpoint --> RETRYSLOWSPEED
- Different RPM sets for different conditions eg. slow(escapeLawn), mowrpm stalls under xy% of setpoint --> KEEPSLOWSPEED
Mower states (used for obstacles)
- shouldMoveBackwards?
- shouldMoveForward?
- shouldRotateLeft?
- shouldRotateRight?
- on possible WatchdogReset´s: continue mowing option
Obstacle
- Bumper left and right seperatated
- Obstacles are set based on mower states
- Added IMU obstacles, rotation direction dependent (eg. sudden deflection while shouldMoveForward)
- Faster and improved GPS Obstacles (grab mower during linetracking --> reacts in 1.5 sec)
- Overload Obstacles
- Dockretry Obstacles
- better rotationObstacles (PoPo situation)
- obstacle Chaining during escape ops
noDockRotation
- improved and easier approach and config
- akustik feedback, dock/ undock
Speeds
- alot of custom speeds for all situations
GPS
- Reboot GPS Dock/unDock
- react on GPS Jump activated
- configurable GPS Reset if mower is in float and waits for fix
- before, GPS jump would trigger because of Pathfinder taking too long after escapeOp and not updating position
- now with waitTime
Mower allowed to move with GPS invalid
- configurable Time
Adaptive Speed (Mowpower needs to be validated)
- 2 Options: Mowpower/MowRpm
EscapeLawn (Mowpower needs to be validated)
- 2 Options: Mowpower/MowRpm
- GPS obstacle prohibited in configurable time if escapeLawn triggered
Improvement of mowmotor not starting/ mower moving with not turned on mowmotor
- waitOp when switch off mowmotor
- waitOp when switch on mowmotor
Movement
- refined linetracker
- reworked
motor.cpp bugs
- Rotation Ramp, flexible, fast but smooth rotations
- Distance Ramp, improved linear ramp based on target distance
- higher precision in targeting and point reaching (normal terrain)
- transition speed: mower will not stop if next target angle is under x degrees (configurable)
Timing and Calculation
- dismissed alot LP filters, used unfiltered or only slightly smoothed vals
- LP filters now use actual code iteration time and dont freak out on short or very long ite times (pathfinder)