Einführung: 4wd Ardumower

Hallo und danke für eure Rückmeldungen. Habe die Settings wie im angehangen Bild eingestellt aber absolt keine Änderung am Verhalten beim Tracking wahrnehmen können.
 

Anhänge

  • perimeter.JPG
    perimeter.JPG
    92,2 KB · Aufrufe: 12
Sorry i am going to see that the tracking speed is not into arduremote.
So you need to change it into mower.cpp line 131
Test with 130
Code:
trackingBlockInnerWheelWhilePerimeterStruggling = 1;
  MaxSpeedperiPwm = 130; // speed max in PWM while perimeter tracking
  // ------ lawn sensor --------------------------------
  lawnSensorUse     = 0;                   // use capacitive lawn Sensor

Try again to adjust PID at lower speed.
If it's not OK the last chance is the divisor:
It's into motor.h
line 175 to 195 etc...
MaxSpeedperiPwm / 2
try
MaxSpeedperiPwm / 2.5


For auto mode
increase
perimeter out roll time to 6000
 
Hey today I adjust the MaxSpeedperiPwm to 100. The mower for sure is slower during the tracking but the tracking isn't very smoth. The mower drives extrem left and right.
PID of perimeter are:
perimeterPID.Kp = 0.1; // perimeter PID controller 18
perimeterPID.Ki = 0; // 3
perimeterPID.Kd = 0; // war 0.8

But one thing is fine now... the turning proces in Automode is fine. I have increased the roll out times to:
perimeterOutRollTimeMax = 5000; // roll time max after perimeter out (ms) 2000
perimeterOutRollTimeMin = 4000; // roll time min after perimeter out (ms)

The only thing what didn't work until now is the longer reverse Time. Sometimes the mower drives not back before rotating.
perimeterOutRevTime = 4000; // reverse time after perimeter out (ms) 2200
 

Anhänge

  • IMG_8824_x264.mp4
    3,5 MB
It looks like the KP value is to high. Try 0.05. But before doing this increase the KD value. Then you will see that the oszillation will dampend a little (not overdue it). After that decrease the KP value. Then increase KI.
 
Zuletzt bearbeitet:
I am Agree with Roland
But you need software knowledge

To have acces to more precise PID You need to change in the code
Into Pfod.cpp
line 561 and 584
robot->perimeterPID, 0.1, 100);
replace by
robot->perimeterPID, 0.01, 1);

But i hope the motor don't generate a lot of noise that disturb the smag reading.
Maybe you can try to drive in manual near the wire and check into setting perimeter if the Mag is stable and accurate.

Using Azuritber you can see at very high frequency the Pid result while tracking in the PC console (Send v until you see tracking value)


For that:
perimeterOutRollTimeMax = 5000; // roll time max after perimeter out (ms) 2000
perimeterOutRollTimeMin = 4000; // roll time min after perimeter out (ms)

The code generate a random duration to avoid stuck, but you need a significative difference between min and max
Here the mower allways rotate randomly between 4 and 5 secondes..
The correct max value can be the duration for your mower to roll 160 Degres.

For the reverse .
Normalt it's solve into the last version ????
 
Hello a few minutes ago I tested the settings what you suggest. Thanks for that.
I set the seetings to the following settings:

perimeterPID.Kp = 0.01; // perimeter PID controller 18
perimeterPID.Ki = 0; // 3
perimeterPID.Kd = 0; // war 0.8

trackingPerimeterTransitionTimeOut = 2500; // never<500 ms
trackingErrorTimeOut = 10000; // 0=disable
trackingBlockInnerWheelWhilePerimeterStruggling = 1;
MaxSpeedperiPwm = 130; // speed max in PWM while perimeter tracking

The tracking is much smother and ok for me. But now I have got a new problem. The mower canot follow the corner at the Perimeter (please find attached video).
 

Anhänge

  • IMG_8838_x264.mp4
    5,7 MB
  • Perimeter_during_tracking.JPG
    Perimeter_during_tracking.JPG
    4,2 MB · Aufrufe: 7
  • settings.JPG
    settings.JPG
    87,3 KB · Aufrufe: 7
  • perimeter_standng.JPG
    perimeter_standng.JPG
    59,5 KB · Aufrufe: 7
First of all, tune the Pid with all parameter an not only P that the robot follows a straight and curved line very well. If you make KP more agressive, you can dump it with KD. If you have the I value you get more speed to one motor over time. When it runs like you want, then you have adapt the code. The current code looks like it has a bug. You should never drive straight, if the coil is outside. Only rotate.
I would change the code to a statmachine. Furthermore, the code decided on time what to do. In my opinion the better way is motorspeed. Normaly on edges, one motor will drive very fast to bring the coil to the perimeter. If the speed is to high, then stop, change the state and rotate. You can look at Raindancer bPerimeterTracking.h -> TlineFollow -> onUpdate. There I implementd that kind of statmachine. In case -1: you can see what I mean in the State transition.
 
For me it's not OK (No smooth speed change on the wheel) :(
Azuritber firmware tracking
Old video with a correct PID on 2WD mower the wire is never lost at +-2cm.
I have the same result for Denna platform, Robomow RL 1000 and 2000.

And Here is the raindancer tracking with the same platform.

As you can see both work well.

Maybe Roland can help you to test raindancer firmware if you can use 2 coils on left and right.

For Azurit again reduce the speed, always use KP and Ki (never set Ki to 0)
On straight line the 2 wheel need to always run at different speed with smooth changing spped and never stop.
The trackingPerimeterTransitionTimeOut is used On 90 deg angle. The inner wheel stop and mower rotate until find again the wire.Maybe reduce it to 1500 for angle.
Normaly i have commented all the transition (3 possible state in the code)
possible change line 149 into motor.h 30ms to 15ms
I hope you use a DUE so
Code:
nextTimeMotorPerimeterControl = millis() + 15; //possible 15ms with the DUE
but i don't know if the perimeter is read faster.

Into Azuritber The motorcontrol is optimized for due and run 2 time faster and you can print all the debug data.
 
@bernard, I just saw you linefollowing video with high speed some minutes ago. Very funny :) But here you can see, that the mower rotates at the edges when it is too long outside at 0:30.


You dont't have to follow the line at edges with the pid. You must find a threshold value, where you decide to turn instead of following the pid.
In motor.h you find the line: if ((millis() > stateStartTime + 10000) && (millis() > perimeterLastTransitionTime + trackingPerimeterTransitionTimeOut))
That is responsible for starting rotation. The constant trackingPerimeterTransitionTimeOut is defined in mower.cpp .

In your last movie it looks like the robot wants to rotate. But does not rotate very hard. Then somthing throws him out of the rotation code. I think it could be that line:
if (abs(perimeterMag) < perimeterMagMaxValue / 4) {
perimeterLastTransitionTime = millis(); //initialise perimeterLastTransitionTime in perfect sthraith line
}

Normally you have to wait, until the coil is inside again while rotating. The statment if (abs(perimeterMag) < perimeterMagMaxValue / 4 could also happens outside.

By the way, here I found a video with the wiper algorithm. Looks like it is in Azurite or was:
 
Zuletzt bearbeitet:
Hello everyone, a few minutes ago I played with the PID settings again and tried it. As soon as I increase one of the three values the swinging becomes much stronger while tracking. But then the mower gets the curve and can follow the wire further.

Due to the fact, that I use the Due, I also tried the following test method: --> unfortunately without success
nextTimeMotorPerimeterControl = millis() + 15; //possible 15ms with the DUE


Are there other things I could test in the Azurith? I really suspect that the upswing is due to the all-wheel drive concept on the other side your videos shows 4wd mowers wich are very smooth during the tracking. Are they also running with the Azurith?

I just finished a second perimeter receiver and would otherwise test the Raindancer firmware in the next step. Just in case I switch to Raindancer... do I also have to flash the transmitter with the Randancer code?

Actually, I would like to stay on the Azurith or switch to the Sunray (away from the chaos principle).
 
Zuletzt bearbeitet:
Ja. Raindancer verwendet ein anderes Signal. In der masterversion ist allerdings noch nicht beschrieben wie die Linefollowing routine getuned wird. Allerding soltest du diese verwenden, da in der Vers. 1.1 das Linefollowing anders realisiert wurde. Letztendlich gibt es da auch Befehle für. Aber erstmal musst du gucken ob die Motoren laufen mit deinen Encodern. Ggf. musst du da auch tunen obwohl der PDFF Regler ziemlich gutmütig ist. Der code für das Linefollowing ist fast der gleiche wie bei Azurite. Bloss eben optimiert für Ecken und einem Lowpassfilter für das Eingangssignal. Der Pid Regler verwendet auch eine ander Formel für den DTERM. Falls du ein LE BT verwendest, funktioniert Arduino Central nicht. Da musst du dann Serial Bluetooth Terminal nehmen.
 
@roland
The code used in my video is Azuritber and not azurit1.09.
if (abs(perimeterMag) < perimeterMagMaxValue / 4) {
This line is used to reset the transition and use 100 % of the PID

Here the main 3 states.
State 1
If the mag is < perimeterMagMaxValue/4 we consider that the mower is at +/- 5 cm upper the wire so the PID can work it's name FAST in the console and in this case the mower follow the wire PERFECTLY.
State 2
If the mower find a 90 deg angle the transition time is not reset and after 2.5 or 1.5 secondes the inner wheel is stop and the mower start to roll, the PID is not use .it's name SEARCH in the console.(Here as you suggest maybe it's possible to replace the transition time by particular perimeter value for fast response)
State 3
After Roll the mower find inside and for the next 3 secondes the PID start again with less power and lower motor speed to put again the mower in straight line.it's name SLOW in the console.

Certainly in the Biland tracking (Azurit1.09 is used) the FAST is never use and the mower always search,so the PID is not used and has no effect and the mower shake.
The console exist only into Azuritber and is refresh every 15ms when tracking , so need a correct connection with PC or Raspberry.
See track.txt sample (read from bottom to top)

@Biland.
If you understand the code i suggest you to test only the tracking with Azuritber and verify the console to see if the FAST appear (The IMU or Odometry is not use for tracking, so no problem);you can also see the PID result , the 2 motor speed ,the mag value.
If the tracking is better than Azurit it's easy to see the differance betwen the 2 motorcontrolperimeter and make the adjustment into azurit
If it don't work maybe Raindancer can help.
 

Anhänge

  • track.txt
    13,4 KB · Aufrufe: 5
Hey thanks for response... so your suggestion is to test the tracking with Azuribear an without odo / imu right and log date on the Serialconsole right? I will try that due to the fact that I have a Pobelem with Raindancer (the serial Console doesn't react onto the "H" for help.

HardwareSetup started
I2c reset started
I2c reset OK
adcman setup pin: AD2
adcman setup pin: AD9
adcman setup pin: AD8
adcman setup pin: AD7
adcman setup pin: AD6
adcman setup pin: AD1
adcman setup pin: AD0
adcman setup pin: AD3
adcman setup pin: AD5
adcman setup pin: AD4
I2C scanning...
I2C device found at address 80 0x50 probably AT24C32
I2C device found at address 104 0x68 probably DS1307
I2C scan done
Set L encoder not reverse
Set R encoder not reverse
Reset motor left fault
Reset motor right fault
Reset motor mow fault
HardwareSetup finished
srvPerSensoren Setup Startet
REFERENCE_SIGNAL:1,1,-1,-1,-1,1,-1,-1,1,-1,1,-1,-1,1,1,-1,1,1,-1,-1,1,1,-1,1,1,-1,1,-1,1,-1,-1,1,-1,-1,1,-1,1,1,-1,1,-1,1,-1,1,-1,1,1,-1,-1,1,1,-1,-1,1,1,-1,1,-1,1,1,-1,-1,1,-1,-1,1,1,-1,1,1,-1,-1,1,-1,-1,1,-1,1,-1,1,1,-1,1,-1,-1,1,-1,-1,1,1,-1,1,-1,-1,1,1,-1,1,-1,1,-1,1,-1,1,-1,1,1,-1,-1,1,-1,-1,1,-1,1,-1,-1,1,-1,-1,1,1,-1,1,1,-1,-1,1,
GENERATE_DIFF_SIGNAL:0,0,-1,0,0,1,-1,0,1,-1,1,-1,0,1,0,-1,1,0,-1,0,1,0,-1,1,0,-1,1,-1,1,-1,0,1,-1,0,1,-1,1,0,-1,1,-1,1,-1,1,-1,1,0,-1,0,1,0,-1,0,1,0,-1,1,-1,1,0,-1,0,1,-1,0,1,0,-1,1,0,-1,0,1,-1,0,1,-1,1,-1,1,0,-1,1,-1,0,1,-1,0,1,0,-1,1,-1,0,1,0,-1,1,-1,1,-1,1,-1,1,-1,1,0,-1,0,1,-1,0,1,-1,1,-1,0,1,-1,0,1,0,-1,1,0,-1,0,1,
referenceSignalFFT_r Oversample 512:
0 0 0 0 0 0 0 0 -10 -10 -10 -10 0 0 0 0 0 0 0 0 10 10 10 10 -10 -10 -10 -10 0 0 0 0 10 10 10 10 -10 -10 -10 -10 10 10 10 10 -10 -10 -10 -10 0 0 0 0 10 10 10 10 0 0 0 0 -10 -10 -10 -10 10 10 10 10 0 0 0 0 -10 -10 -10 -10 0 0 0 0 10 10 10 10 0 0 0 0 -10 -10 -10 -10 10 10 10 10 0 0 0 0 -10 -10 -10 -10 10 10 10 10 -10 -10 -10 -10 10 10 10 10 -10 -10 -10 -10 0 0 0 0 10 10 10 10 -10 -10 -10 -10 0 0 0 0 10 10 10 10 -10 -10 -10 -10 10 10 10 10 0 0 0 0 -10 -10 -10 -10 10 10 10 10 -10 -10 -10 -10 10 10 10 10 -10 -10 -10 -10 10 10 10 10 -10 -10 -10 -10 10 10 10 10 0 0 0 0 -10 -10 -10 -10 0 0 0 0 10 10 10 10 0 0 0 0 -10 -10 -10 -10 0 0 0 0 10 10 10 10 0 0 0 0 -10 -10 -10 -10 10 10 10 10 -10 -10 -10 -10 10 10 10 10 0 0 0 0 -10 -10 -10 -10 0 0 0 0 10 10 10 10 -10 -10 -10 -10 0 0 0 0 10 10 10 10 0 0 0 0 -10 -10 -10 -10 10 10 10 10 0 0 0 0 -10 -10 -10 -10 0 0 0 0 10 10 10 10 -10 -10 -10 -10 0 0 0 0 10 10 10 10 -10 -10 -10 -10 10 10 10 10 -10 -10 -10 -10 10 10 10 10 0 0 0 0 -10 -10 -10 -10 10 10 10 10 -10 -10 -10 -10 0 0 0 0 10 10 10 10 -10 -10 -10 -10 0 0 0 0 10 10 10 10 0 0 0 0 -10 -10 -10 -10 10 10 10 10 -10 -10 -10 -10 0 0 0 0 10 10 10 10 0 0 0 0 -10 -10 -10 -10 10 10 10 10 -10 -10 -10 -10 10 10 10 10 -10 -10 -10 -10 10 10 10 10 -10 -10 -10 -10 10 10 10 10 -10 -10 -10 -10 10 10 10 10 0 0 0 0 -10 -10 -10 -10 0 0 0 0 10 10 10 10 -10 -10 -10 -10 0 0 0 0 10 10 10 10 -10 -10 -10 -10 10 10 10 10 -10 -10 -10 -10 0 0 0 0 10 10 10 10 -10 -10 -10 -10 0 0 0 0 10 10 10 10 0 0 0 0 -10 -10 -10 -10 10 10 10 10 0 0 0 0 -10 -10 -10 -10 0 0 0 0 10 10 10 10
referenceSignalFFT_i Oversample 512:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
referenceSignalFFT_r after FFT 512:
-28 -52 -24 16 -15 -65 -54 -14 -4 -70 39 -28 50 -69 -27 61 96 26 123 108 9 11 51 87 64 -32 274 69 78 274 -37 301 124 247 178 -61 -43 136 -69 576 -744 60 -306 -459 -642 414 157 -191 513 224 217 -441 -336 320 -206 -224 53 -196 100 262 -384 -254 304 276 -98 -299 -62 3 291 -415 -270 172 25 266 92 -29 127 220 86 -225 -304 90 -23 -78 243 -23 65 -53 255 -185 53 -164 -106 -92 59 -62 63 -72 -20 -22 -75 -22 -49 -6 -42 -38 -3 -4 -8 -18 -14 -26 -18 -9 4 0 0 -5 -6 0 -1 -3 -2 -1 -2 -2 -2 -2 0 0 0 0 0 -2 -3 -2 0 -3 1 -5 9 -8 2 7 3 -13 13 10 -1 2 10 -4 -13 -9 42 8 -27 70 -25 49 85 47 103 -79 -78 -48 10 116 -142 -3 -84 -202 -138 145 63 -35 80 -9 154 -100 -98 150 -55 15 42 -22 -65 -39 -81 -139 153 36 -97 -62 87 -95 34 -155 -129 40 39 97 -6 91 -21 9 133 -81 -52 10 34 66 2 -137 -28 -21 7 4 29 -92 -88 -82 87 4 78 2 -21 34 -46 -3 6 -6 -23 -17 6 2 -4 -1 3 -18 -5 2 5 -3 7 -4 -2 0 1 0 -1 0 0 1 0 0 0 0 0 0 -1 -1 -2 -2 0 0 -1 -4 6 -3 5 1 -6 -18 1 -2 -3 1 5 -19 -24 -6 4 -3 -46 32 -23 1 78 5 86 -83 -87 -92 27 2 8 -20 -26 -135 2 68 35 11 -53 -80 135 9 -20 92 -4 98 39 42 -126 -154 36 -94 90 -62 -96 37 152 -139 -81 -39 -64 -22 43 16 -54 149 -97 -100 156 -7 80 -34 65 144 -137 -203 -85 -3 -143 117 11 -48 -78 -78 105 46 85 52 -22 70 -27 8 43 -8 -10 -2 13 4 0 12 14 -10 4 9 2 -6 12 -5 2 -2 1 -1 -2 -1 0 2 0 0 0 0 0 0 0 0 -1 -2 0 5 -3 -3 3 4 8 -5 -17 -23 -13 -16 -5 -2 -2 -36 -39 -1 -48 -18 -73 -20 -19 -71 65 -59 61 -89 -100 -160 56 -182 258 -49 72 -16 246 -71 -15 95 -300 -219 94 224 134 -26 101 271 30 176 -261 -409 297 7 -55 -294 -97 280 311 -249 -380 269 107 -194 57 -215 -196 325 -325 -437 229 233 520 -182 168 424 -636 -449 -296 65 -739 584 -61 144 -36 -56 189 252 126 306 -29 278 80 77 280 -20 71 101 56 26 24 123 125 46 99 82 -19 -51 77 -10 50 -46 3 12 -27 -34 -2 47 6 -10
referenceSignalFFT_i after FFT 512:
0 -67 -31 -16 -39 -51 -72 -63 -3 -4 -26 -68 79 -38 45 7 -65 -173 5 -19 -30 -1 29 -132 -167 -42 19 -22 -271 178 -127 2 384 19 403 -384 -392 -399 110 9 27 -82 -104 -502 2 234 118 34 -176 -264 419 26 -64 268 -14 275 105 110 -342 -409 89 -243 222 -154 -235 85 351 -320 -187 -89 -144 -50 89 32 -115 300 -195 -198 298 -16 149 -65 114 257 -244 -356 -147 -8 -239 192 16 -78 -126 -123 160 68 126 73 -34 99 -41 10 58 -14 -16 -5 15 3 -2 14 17 -16 3 9 0 -9 13 -7 0 -4 -1 -2 -5 -3 -2 -1 -1 -2 0 1 1 0 0 0 1 -1 1 3 -4 -1 2 3 6 -3 -14 -18 -11 -13 -4 0 -2 -27 -30 -1 -35 -13 -52 -14 -13 -48 43 -39 40 -58 -63 -101 35 -111 155 -29 42 -9 140 -39 -8 52 -161 -115 50 115 68 -12 49 130 14 82 -119 -184 132 4 -23 -124 -40 114 124 -98 -146 103 41 -70 21 -75 -67 110 -107 -141 73 72 159 -53 49 121 -175 -120 -78 18 -185 143 -14 34 -8 -13 40 52 25 59 -5 51 14 13 45 -2 11 14 8 3 4 15 14 6 10 8 -1 -4 6 0 4 -2 1 1 0 0 0 2 1 0 0 1 1 0 1 3 2 1 1 4 -2 2 -3 6 3 -5 -9 -3 -13 -13 -2 -1 -7 -12 -9 6 -43 -12 -13 -48 7 -58 -24 -51 -39 14 10 -31 16 -141 187 -16 80 124 178 -118 -44 56 -156 -70 -69 142 112 -108 70 79 -19 72 -38 -99 147 99 -122 -112 41 127 27 -2 -129 187 124 -80 -13 -128 -45 14 -63 -112 -46 118 161 -49 12 43 -138 12 -39 30 -153 112 -34 102 66 59 -38 40 -42 49 14 15 53 14 36 4 30 29 1 3 6 14 11 20 15 5 -4 -1 -1 3 4 -2 1 2 1 -1 0 1 1 0 0 1 1 0 2 4 5 3 1 5 0 7 -10 9 -2 -7 -4 18 -17 -11 4 -2 -12 7 18 13 -57 -9 40 -100 37 -72 -127 -69 -156 124 125 79 -13 -189 239 7 146 355 244 -257 -114 66 -147 17 -296 197 196 -300 115 -28 -88 48 143 88 184 320 -353 -86 234 154 -218 244 -86 411 347 -108 -105 -277 19 -268 65 -25 -417 266 175 -33 -115 -229 -3 508 112 84 -27 -15 -116 398 396 381 -410 -16 -385 -9 113 -181 270 23 -31 44 159 122 -44 -9 28 9 -18 166 60 -14 -43 38 -90 68 28 8 -5 31 48 16 10 -6 11 46
referenceSignal Amplitude Spectrum 512:
28 84 39 22 41 82 90 64 5 70 46 73 93 78 52 61 115 174 123 109 31 11 58 158 178 52 274 72 282 326 132 301 403 247 440 388 394 421 129 576 744 101 323 680 642 475 196 194 542 346 471 441 342 417 206 354 117 224 356 485 394 351 376 316 254 310 356 320 345 424 306 179 92 267 147 301 232 295 310 225 338 111 116 268 344 356 160 53 349 266 55 181 164 153 170 92 140 102 39 101 85 24 75 15 44 38 15 5 8 22 22 30 18 12 4 9 13 8 6 4 1 3 5 3 2 2 2 2 0 1 1 0 0 2 3 2 1 4 4 5 9 8 6 7 14 22 17 16 4 2 10 27 32 9 54 15 58 71 28 68 95 61 110 98 100 111 36 160 210 29 93 202 196 150 63 62 179 115 161 152 119 150 73 130 44 84 135 188 154 139 154 129 104 129 151 136 149 186 135 80 44 122 67 142 109 141 151 108 167 53 59 137 175 182 82 27 185 143 32 98 88 83 95 52 81 59 21 61 48 13 45 6 25 22 10 3 5 15 14 18 11 8 5 5 9 4 4 2 1 1 1 0 0 2 1 0 0 1 1 0 1 3 2 2 1 4 2 4 6 6 5 5 10 18 13 13 3 1 8 22 25 8 43 12 47 57 24 58 81 51 94 84 87 97 31 141 187 25 84 183 178 136 56 57 164 106 151 142 113 141 70 125 43 83 131 183 151 136 151 128 104 132 154 139 152 191 139 82 44 128 70 149 115 150 162 118 179 59 66 150 194 203 93 30 209 161 35 112 102 97 111 60 94 71 26 71 59 16 56 8 31 29 13 5 6 18 17 22 15 10 4 6 12 5 4 2 1 2 2 1 0 2 1 0 0 1 1 0 2 4 5 3 1 7 3 7 10 9 8 8 17 29 21 19 6 2 12 36 42 13 74 20 83 101 41 101 142 90 167 152 160 178 57 262 351 49 162 355 346 266 114 115 334 219 310 298 237 301 153 272 92 182 297 418 349 320 357 306 253 319 379 348 389 491 363 222 119 350 196 421 331 437 475 353 548 184 203 481 636 677 316 106 739 584 131 423 397 385 451 252 405 306 116 331 281 80 281 48 174 158 71 27 36 123 126 172 115 83 47 63 118 68 57 46 5 33 55 37 10 47 12 47
srvPerSensoren Setup Finished
TbumperSensor::setup()
TCreateTree::reset
Blackboard:reset
Relay Off
!04,SET BEHAV -> BH_NONE
!03,Motor L measure offset
!03,0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 offset: 0.000000
!03,Motor R measure offset
!03,0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 offset: 0.000000
!03,Mow Motor measure offset
!03,0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 offset: 0.000000
Check if in charging station
NO Charging station detected
MANUAL MODE ACTIVATED
!03,ChargeSystem measure offsetCV
!03,0 0 8 0 6 0 7 0 7 0 6 0 6 0 5 0 offsetCV: 0.001612
!03,ChargeSystem measure offsetCC
!03,0 7 0 7 0 5 0 1 0 4 0 0 0 0 0 0 offsetCC: 0.000000
Setup finished. Loop is running.
Version 2.0.0 Raindancer

Press H for help.
 
maybe you have to sent CR. And the H must be in upper case. And you have to start like it is documented in the wiki.
 
Zuletzt bearbeitet:
@bernard: I am back to the ber Software .... If I start the tracking with Bluetooth the mower just turns around ... the tracking don't start. IMU and ODO is turned off in the code.
Hier are the results of the serial konsole:
 

Anhänge

  • Konsole.txt
    13,4 KB · Aufrufe: 4
Zuletzt bearbeitet:
Is it possible that the Power (PWM) on the motors is not enough for the rotation and truning? I recognized that the rotation angle is verry low but if I lift the mower in the front or in the back the rotation angle is much bigger. I guess that the resistance is too high and the power of the motors is not sufficient or the PWM control is too low to turn and steer the mower properly. The motors are '"whine# but doesn't move
 
Even in the Raindancer Firmware the rotating is verry hard. This is absolutly based on the construction of the 4wd. In the console I can see that there is an error due to overcurrent when the mower whants rotate after driving over the perimeter
 

Anhänge

  • Serial.txt
    2,7 KB · Aufrufe: 5
Oben