default Einstellungen bei Standard ArduMower

thorsten-ac

Active member
Hallo zusammen,

Der Mäher ist zusammengebaut und hat die ersten Tests im Garten absolviert. Ich bin mir sicher das die Probleme die ich habe reine Einstellungssache ist. Darum stelle ich mir die Frage worauf sich die Standard Einstellung in der aktuellen azurit Software beziehen? Prinzipiell bin ich der Meinung das der Mover in den Grundeinstellung lauffähig sein sollte.

Es wäre sehr schön wenn einer seine lauffähige Konfiguration mal posten könnte, mit ein paar Kommentaren warum ehr von den Standort Einstellungen abgewichen ist. Ich denke das würde fiele fragen im Vorfeld klären.

Und jetzt muss ich aber auch mal ein Lob an die Gründer des Projekts richten, es ist zwar etwas umständlich sich durch die unzähligen Anleitungen zu kämpfen dennoch wurde bis jetzt jeder Punkt in der Hardware im Detail erklärt! Grundsätzlich ist das ArduMower Projekt erstklassig und kann es meiner Meinung nach mit jedem gekauften Mäher aufnehmen! Klasse ! Weiter so!
 
Hallo?

Kann wirklich keiner helfen ?
Bis jetzt ist nur noch 1 Problem übriggebliebene und ich weiß wirklich nicht mehr weiter : das perimeter Tracking oder das Home fahren wir nach ein paar Metern abgebrochen mit dem error „rechts Motor error „

Es wäre schön wenn mir einer helfen könnte

Vg Thorsten
 
Hello, Thanks for the tip, after which I had raised the max pwr it was better.

but then I noticed that I did not have the azurite release from github but the most recent if there was a big difference in it I do not know.

I have made all the settings and reduced the speed when perimetertrecking. now runs very well on the first test ..

Thorsten
 
Hallo nochmal :)

So jetzt läuft alles bis auf eine Kleinlichkeit:

Der Mower empfängt in dem mittleren bereich des Garten's kurz das outside Signal und dreht sich dann nur noch im Kreis. Stelle ich den Mower einen meter weiter Rechts /links ist wieder alles ok.
Woran könnte es liegen?

anbei die mover CPP
// ----------------------------------------------------------------------
// IMPORTANT: choose your robot type and PCB version in 'mower.h' !
// ----------------------------------------------------------------------


Mower::Mower(){
#if defined (ROBOT_ARDUMOWER)
name = "Ardumower"; //Set the Name of BT
#else
name = "Mini";
#endif

// ------- wheel motors -----------------------------
motorAccel = 1000; // motor wheel acceleration - only functional when odometry is not in use (warning: do not set too low)
#if defined (ROBOT_ARDUMOWER)
motorPowerMax = 75; // motor wheel max power (Watt)
motorSpeedMaxPwm = 255; // motor wheel max Pwm (8-bit PWM=255, 10-bit PWM=1023)
motorSpeedMaxRpm = 25; // motor wheel max RPM (WARNING: do not set too high, so there's still speed control when battery is low!)
motorLeftPID.Kp = 1.5; // motor wheel PID controller
motorLeftPID.Ki = 0.29;
motorLeftPID.Kd = 0.25;
motorZeroSettleTime = 3000 ; // how long (ms) to wait for motors to settle at zero speed
motorReverseTime = 1200; // max. reverse time (ms)
motorRollTimeMax = 1500; // max. roll time (ms)
motorRollTimeMin = 750; // min. roll time (ms) should be smaller than motorRollTimeMax
#else // ROBOT_MINI
motorPowerMax = 2.0; // motor wheel max power (Watt)
motorSpeedMaxPwm = 127; // motor wheel max Pwm (8-bit PWM=255, 10-bit PWM=1023)
motorSpeedMaxRpm = 50; // motor wheel max RPM (WARNING: do not set too high, so there's still speed control when battery is low!)
motorLeftPID.Kp = 0.2; // motor wheel PID controller
motorLeftPID.Ki = 0.0;
motorLeftPID.Kd = 0.0;
motorZeroSettleTime = 0 ; // how long (ms) to wait for motors to settle at zero speed
motorReverseTime = 2200; // max. reverse time (ms)
motorRollTimeMax = 2000; // max. roll time (ms)
motorRollTimeMin = 750; // min. roll time (ms) should be smaller than motorRollTimeMax
#endif
motorSenseRightScale = ADC2voltage(1)*1905; // ADC to right motor sense milliamp
motorSenseLeftScale = ADC2voltage(1)*1905; // ADC to left motor sense milliamp
motorPowerIgnoreTime = 2000; // time to ignore motor power (ms)
motorForwTimeMax = 80000; // max. forward time (ms) / timeout
motorBiDirSpeedRatio1 = 0.3; // bidir mow pattern speed ratio 1
motorBiDirSpeedRatio2 = 0.92; // bidir mow pattern speed ratio 2

motorRightSwapDir = 0; // inverse right motor direction?
motorLeftSwapDir = 0; // inverse left motor direction?

// ------ mower motor -------------------------------
motorMowAccel = 2000; // motor mower acceleration (warning: do not set too low) 2000 seems to fit best considerating start time and power consumption
motorMowSpeedMaxPwm = 255; // motor mower max PWM
motorMowPowerMax = 75.0; // motor mower max power (Watt)
motorMowModulate = 0; // motor mower cutter modulation?
motorMowRPMSet = 3300; // motor mower RPM (only for cutter modulation)
motorMowSenseScale = ADC2voltage(1)*1905; // ADC to mower motor sense milliamp
motorMowPID.Kp = 0.005; // motor mower RPM PID controller
motorMowPID.Ki = 0.01;
motorMowPID.Kd = 0.01;

// ------ free wheel sensor-------------------------------
freeWheelUse = 0; // has free wheel sensor?

// ------ bumper (BumperDuino)-------------------------------
bumperUse = 0; // has bumpers?
tiltUse = 0; // use tilt-sensor?

// ------ drop -----------------------------------
dropUse = 0; // has drops? Dropsensor - Absturzsensor vorhanden ?
dropcontact = 1; // contact 0-openers 1-closers Dropsensor - Kontakt 0-Öffner - 1-Schließer betätigt gegen GND

// ------ rain ------------------------------------
rainUse = 1; // use rain sensor?

// ------ sonar ------------------------------------
sonarUse = 1; //geändert Thorsten // use ultra sonic sensor? (WARNING: robot will slow down, if enabled but not connected!)
sonarLeftUse = 1;
sonarRightUse = 1;
sonarCenterUse = 1; //geändert Thorsten
sonarTriggerBelow = 20; //Geändert Thorsten // ultrasonic sensor trigger distance (0=off)
sonarSlowBelow = 4; //geändert Thorsten // ultrasonic sensor slow down distance

// ------ perimeter ---------------------------------
perimeterUse = 1; // geändert Thorsten // use perimeter?
perimeterTriggerTimeout = 0; // perimeter trigger timeout when escaping from inside (ms)
perimeterOutRollTimeMax = 2000; // roll time max after perimeter out (ms)
perimeterOutRollTimeMin = 750; // roll time min after perimeter out (ms)
perimeterOutRevTime = 2200; // reverse time after perimeter out (ms)
perimeterTrackRollTime = 1500; // roll time during perimeter tracking
perimeterTrackRevTime = 2200; // reverse time during perimeter tracking
#if defined (ROBOT_ARDUMOWER)
perimeterPID.Kp = 16; // perimeter PID controller
perimeterPID.Ki = 8;
perimeterPID.Kd = 0.8;
#else // ROBOT_MINI
perimeterPID.Kp = 24.0; // perimeter PID controller
perimeterPID.Ki = 7.0;
perimeterPID.Kd = 9.0;
#endif

trackingPerimeterTransitionTimeOut = 2500; // never
 
hallo zusammen,

zur Info: bei mir war das Poti am Empfänger defekt nach dem ich einen 10K widerstand (hatte ich hier schon gelesen ) eingelötet habe funktioniert jetzt alles :)

Sollte man eventuell im WIKI dokumentieren ....

vg
Thorsten
 
Oben