Hello all,
I also have big problems with drunken pilot and Drift if my Mower is not rebooted after >10h.
Alexander gave me the hint to this thread, I have read it, many thanks for your good analysis and explanations, nevertheless I am not sure if I know now what to do ;-(
Can somebody please check my questions below, I am writing in Englsih to rreach all of you.
Many thanks
Konny
Sunray version: 1.0.298
Unit: AGCM4
Motors: Original BRUSHED motors
Drivers: standard BRUSHED
IMU: 6050
Usually mowing speed: 0.3m/s
Problem solved when disable the spike function: I will test now starting today
Questions:
1) Why is the no new Ardumower-Sunray-Release available where the problem with drunken pilot is fixed. In last version 1.0.298 it is not, and it is from Oct 8, 2022, so very old - no maintenance any more for Sunray...?
2) Do I also need to change this hints within this thread:
Or non of them and only disable spike function?
a) Hartmut's solution for BRUSHED Motors:
//
motor speed control (PID coefficients) - these values are tuned for Ardumower motors
// general information about PID controllers:
https://wiki.ardumower.de/index.php?title=PID_control
#define MOTOR_PID_KP 1.0 // do not change 2.0 (for non-Ardumower motors or if the
motor speed control is too fast you may try: KP=1.0, KI=0, KD=0)
#define MOTOR_PID_KI 0.01 // do not change 0.03
#define MOTOR_PID_KD 0.005 // do not change 0.03
// ---- path tracking -----------------------------------
// below this robot-to-target distance (m) a target is considered as reached
#define TARGET_REACHED_TOLERANCE 0.05
// stanley control for path tracking - determines gain how fast to correct for lateral path errors
#define STANLEY_CONTROL_P_NORMAL 1.6 // 3.0 for path tracking control (angular gain) when mowing
#define STANLEY_CONTROL_K_NORMAL 0.2 // 1.0 for path tracking control (lateral gain) when mowing
#define STANLEY_CONTROL_P_SLOW 1.6 // 3.0 for path tracking control (angular gain) when docking tracking
#define STANLEY_CONTROL_K_SLOW 0.1 // 0.1 for path tracking control (lateral gain) when docking tracking
b) or Bernhard's values:
Also into config.h try to Adjust stanley setting according the value you use in the sunray app:
// ---- path tracking -----------------------------------
// below this robot-to-target distance (m) a target is considered as reached
#define TARGET_REACHED_TOLERANCE 0.05
// stanley control for path tracking - determines gain how fast to correct for lateral path errors
#define STANLEY_CONTROL_P_NORMAL 1.1 // 3.0 for path tracking control (angular gain) when mowing
#define STANLEY_CONTROL_K_NORMAL 0.3 // 1.0 for path tracking control (lateral gain) when mowing
#define STANLEY_CONTROL_P_SLOW 1.1 // 3.0 for path tracking control (angular gain) when docking tracking
#define STANLEY_CONTROL_K_SLOW 0.3 // 0.1 for path tracking control (lateral gain) when docking tracking
c) where can I change stanley setting in the sunray app anyhow?
d) EinEinfach's tip: bfx AGCM4 stack memory waste workaround
Ardumower Sunray. Contribute to Ardumower/Sunray development by creating an account on GitHub.
github.com
// CONSOLE.print (activeOp->getOpChain());
e) Bernhard's Tip: asm("dsb"); code to free the interrupt into amRobotdriver.com