RFID On PCB1.3

Hi,
Thanks for explaining.
When i only want to change the speed what is the value for Angle? Angle=0? Because i dont want to leave the wire. Only drive more fast.
2 questions more about the Auto modes:
What is the "Track" mode?
Is the Perimeter mode working now or do we have to wait for it?
Thanks and good evening,
Bjoern
 
speed what is the value for Angle? Angle=0?
Angle is not manage here so what you want .I work on it tomorrow and tell you how to do exactly because it did not work actualy like i want.
To drive more fast on tracking ,first check in the setting perimeter that the mower Don't leave the wire when you increase the setting value
What is the "Track" mode?
Put the mower on the wire , click and the mower start to track.Usefull to perfectly set the wire near obstacle.
do we have to wait for it
Yes i check this tomorrow morning.

But you can put the mower just after the station,and click on arduremote on command menu and go to station
When the mower is on the wire click on Mowing is OFF to start the blade (It's the manual way) .
If you have RFID card on perimeter, you can deactivate it on arduremote during the mowing_wire to avoid fast return to station.
 
The code is on GitHub: https://github.com/Boilevin/AzuritBer/tree/RFID All is not tested

Now all the speed tracking can be controled by RFID , and good news on my mower the straight tracking work at PWM=255 :)
The new mowing pattern is unlock to allow the wire mowing ,manualy from arduremote command menu or with timer

On Due side
replace all

On Pi side
If your config is OK simply replace the PiArdu.py or use Piardu213 (normaly they are same) and robot.py by new version.
Setup your RFID according to new status and code of your card (Remember same card can be use on multiple status).
The Speed is PWM and the Dist1 is cm and it's the reduce speed distance.
Now the sonar trig on tracking reduce speed for 2 meters and not duration.

On first start you need to go on setting motor and click on new Calib Ticks/Second button , the mower run 1 full wheel turn and compute the speed, And save setting.
You can see the result on PiArdu console.In my platfrom it's 280 ticks/second.
This new feature is used to adjust the odomaxduration and timeout on state to avoid warning on the console.
 
Hi
Thanks a lot for your work.
- Just tested the new Calib Ticks/Second. The mower make a kind of jump for this one rotation. Its funny.
- Then i tested the new Auto mode "Perimeter" but it looks exactly like the "Random" mode. Mower motor start and mower is normal mowing. When reching wire he turns like in Random.
- Then wanted to test RFID but then Pi freeze. No connection over VNC.
- Then wanted to connect again with Arduremote. But also no connection
- Then i wanted to test all again but now it is raining :(
Thats my first feedback
Thanks and best,
Bjoern
 
The mower make a kind of jump for this one rotation. Its funny.
Check the motor RPM and PWM setting:
First make a screen copy of your actual setting :p
NOW:
Into Motor setting
1 - Adjust Speed Odo Minimum
It's the minimum pwm for mower to move :
To find the perfect value, Set Speed max in PWM to 50 for example and in manual try to move forward.Increase Until the mower move very slowly .

2 - Set Speed max in rpm to high value 50 for example.
Adjust Speed max in PWM until into manual forward you have a correct speed it's estimation . (180 for me)
Now reduce Speed max in rpm until the real time value that you see on Speed L/R are near 180 but Always inferior.(165/175) for me
You need to return in manual and stop and forward to Apply the new value.
Go on Odometry menu and check that the RPM Value R/L are near the Speed max in rpm that you set before

3 - Save the setting.
Normaly the manual mode need to be perfectly responsive at this point.

4-Speed Odo Maximum //Test with 80% of Speed max in PWM
It's use for very small movement (2 or 4 cm)

Check All the ODO test menu 1 rev forward 3 meters forward etc....

Now
5 - Calib Ticks/Second
Normaly the result is exactly the same as the test ODO 1 rev with accel and brake.
Here what you need to see in Piardu console:

Code:
15:51:12 WAIT / OFF  Dir 0 State changed at 18152190 From state CALIBMOTORSPEED
15:51:12 Robot Stats address Stop = 826
15:51:12 Robot Stats address Start = 800
15:51:11 Save Robot Stats
15:51:11  motorTickPerSecond 265
15:51:11 Compute Max State Duration : 32706.00
15:51:11 Real State Duration : 2712
15:51:11 Calibration finish 
15:51:08 TESTING / CALIBMOTORSPEED Dir 0 State changed at 18148957 From state OFF

The Real State Duration and Compute Max State Duration need to be the same execpt the 30 secondes add on compute one , so here it's perfect 2712 vs 2706.
Do it 3 or 4 times and Don't forget to save setting.

i tested the new Auto mode "Perimeter"
It's normal i have set all the test with the mower starting from station and don't see this bug.
Test again from station with Piardu on the console mode and arduremote to start the auto mode with pattern set to Wire
RFID but then Pi freeze
Here it's strange.
When you start all from power off,Is the console is OK ? Read var etc....
Is the powerOff is OK ?
 
Nice, well done. These lines you added commented, please confirm :)
three times

Code:
// ignoreRfidTag=true/false

and

Code:
// boolean ignoreRfidTag ;
// timeToResetSpeedPeri = millis() + 10000; //brake the tracking during 10 secondes
 
All the var ignoreRfidTag is not use.
I have add this to mow the wire ,but it's a new status so the Raspberry can choose to ignore or not the Tag according to your setting.
By this way it's possible to use the tag just before the station to reduce docking speed if the sonar fail.

In the past the timeToResetSpeedPeri is used when sonar detect Something, but now it's not time control but Distance control.
The new process use whereToResetSpeed to do the same result without trouble with RFID TAG SPEED
 
Hi
Thanks for explaining the setup. I have to say: I dont understand in detail what to do ;)
But i will try my best.
- For point 1: What is the target? To find the slowest possible speed?
- What is the idea behind point 2?
- For point 5 i have nothing in console

In my console i have so many times: INCOMMING MESSAGE ERROR FROM DUE
But in Arduremote no Error.

In moment my console is full with "checktimer"
Every minute this message.

Yesterday i tried to change the angle of one RFID card. It was teached with 90°. I marked it, changed the angle to 80°
and clicked on "Add This Tag". Then i marked the old Tag and pressed on "Delete this Tag". The result was that both Tags are deleted.:(
Then i added the Tag manual new and setup the right parameter. When the mower drive over the Tag i can see right reading in Arduremote :)
but the Pi is doing nothing. The Pi ignore this Tag now.:angry:
Where is the file location with the Tags when i click on "Save to file"? I want to double check the entries. Is it the tag_list.bin? This format is not easy to debug.:(

Sorry for so many questions. Take your time with help and thanks again
Bjoern
 
The main issue is that i Don't have motor from shop ,so i can't give you the perfect value for your platform,Maybe Jussip can share them.
All these setting help to have smooth movement.

For point 1: What is the target? To find the slowest possible speed?
Yes just a little more than the slowest possible.
If mower can't move at Pwm=50 and just a little at PWM=60, you can set 70 for example.
You can see the result when mower reach the wire on normal mowing the motor brake and change direction.
If the value is OK, all is smooth , if too high it's not smooth (hard brake),if too low the mower stop for some secondes and you can see this kind of message into console ("Warning can t peri out stop in time ")

What is the idea behind point 2
You need to find the PWM that is the best for you when mower run at logical speed.
The mower use RPM and PWM to control motor so both need to be correctly set, or in manual mode for example when you click on right the motor can change dir only 1 seconde later and same for stop.
When click on stop the motor need to stop immediatly.

For point 5 i have nothing in console
It's not normal at all and same for INCOMMING MESSAGE ERROR FROM DUE
There is a big issue with the Pi setting.
Into mower.h
line 132 and 133 need to be uncommented
line 129 and 130 need to be commented
if you want that the PI receive the console message.
Into Arduremote Into setting R/C the Use Rasberry(Need Reboot) need to be YES and Use RC to NO

In moment my console is full with "checktimer"
Normal if mower is into station.

and clicked on "Add This Tag".
You have to do this exactly in the opposite order.
Click on the list so the value are update on the right textBox.
Click on Delete this Tag.
Change value on the textBox
And click on add this Tag.
Do not click on ADD before DELETE
Save to file.

The result was that both Tags are deleted.
Normal ,You can't have same TagNr with same STATUS or both are delete

Is it the tag_list.bin? This format is not easy to debug.
Yes it's binary file and no need debug simply try again on the RFID page .

i added the Tag manual new
The tagNr need to be exact ,simply copy it from console and past value without space before or after
Actualy The Status list can contain only one of these value (BACK_TO_STATION, TRACK_TO_START,WIRE_MOWING) without space before or after
Actualy The What to do list can contain only one of these value (FAST_START,RTS,SPEED,NEW_AREA) without space before or after


For all you certainly have a problem with the PI Setting
Can you go into Pi console, Start a 5 minutes mowing trip, click on save and show me the 3 files (There are in the log directory,sort them by date to find easily)
Before or After the INCOMMING MESSAGE ERROR FROM DUE you have the message , What is it exactly.
Do you have access to python idle? to show me the shell start of the Piardu to be sure all is OK.
 
Yesterday I tried to set those settings. First, IMU is disabled for now because it cause error when mower goes charger.
rpm 29, min pwm 35 max 180, these work best in manual mode. +2% right offset for./rev. mower goes perfect straight line in manual mode.
Then mowing mode same settings, mower goes arc to right and driving is not smooth at 160-180 pwm and min 35 pwm is too low to move mower. 50 is better for mowing mode. +3 offset almost perfect offset in mowing mode
https://www.youtube.com/watch?v=HCp45NeB5ls
 
Yes, every single time. one of these: imu_tilt / eeprom_data / rtc_data. imu disabled no errors. This is caused shorted Q2 and that makes something weird to i2c communication when charge voltage present. New Q2 is on it's way but here yet.
 
Bernard schrieb:
It's not normal at all and same for INCOMMING MESSAGE ERROR FROM DUE
There is a big issue with the Pi setting.
Into mower.h
line 132 and 133 need to be uncommented
line 129 and 130 need to be commented
if you want that the PI receive the console message.
Into Arduremote Into setting R/C the Use Rasberry(Need Reboot) need to be YES and Use RC to NO

My mower.h looks like this:
Is it ok?

//#define Console Serial
//#define CONSOLE_BAUDRATE 115200 // baudrate used for PC

#define Console SerialUSB
#define CONSOLE_BAUDRATE 115200 // baudrate used for Raspberry PI console

#define Enable_DueWatchdog true

#define RaspberryPIPort SerialUSB //The PI is connected on NATIVE USB port over USB cable

#define ESP8266port Serial3 //not use and exchange with GPS to avoid workarround (but no issue for me ????????)
#define ESP8266_BAUDRATE 115200 // baudrate used for communication with esp8266 Wifi module

#define Bluetooth Serial2 // Ardumower default OK for ESP32 or HC05
#define BLUETOOTH_BAUDRATE 19200 // baudrate used for communication with Bluetooth module (Ardumower default: 19200)
#define BLUETOOTH_PIN 1234

#define GpsPort Serial1 // connected on P44 Wlan
#define GPS_BAUDRATE 38400 // set value to 9600 for M6n marotronics shop or 19200 or 38400 for BN880 and M8N other module
 
Zuletzt bearbeitet von einem Moderator:
Yes it is ok.
You can change the enable_duewatchdog from true to false until your pi communication work correctly
Did you find console message into the log folder?
 
Hello
Sorry for late answer but it was raining or i have had no time.
But today i tested a lot.
I flashed new with enable_duewatchdog false in Mover.h
I added the Logfiles from mowing here. Hope this will work.
The files MowOnPerimeterwire i tried a mowing on wire. The mower has done a good job but
in Log are only Errors.
What i have seen during a test before (Sorry, no Log of this): When the mower motor gets overcurrent the mower motors stopping.
In console is the message the mower motor will start again in 1 minute. But nothing happened. For me it looks like the mower also lost the status to mow
on wire. After stopping the mower motors the mower only follow the wire and also react to the RFIDs. But i dont remember if the status jumped to Back_to-Station or so. Sorry.
Can you please check what happens normaly after Mower Error?
What i also learned today is that there is a maxim of 20 RFID tags. Can you change this to higher number? 30 or 40? This would be great.
Thanks a lot and best regards,
Bjoern
Attachment: https://forum.ardumower.de/data/med...60/MowOnPeremterwire201909081446_Console.txt/
 
Zuletzt bearbeitet von einem Moderator:
Yes there is a big issue with the PI. and Nothing can work like that
You need to check the permission to file locate into PiArdumowerpynmea2types
I use a file named: talker.py to decode all the message and you need to set execution permission to it.

cd Documents/
sudo chmod -R 755 PiArdumower

Can you please check what happens normaly after Mower Error?

Normaly 3 states
1 At 80% the spirale start
2 At 100% the motor stop for 1 minute
3 Near 2 or 3 Amp the driver itself stop the motor and there is no auto restart.
Certainly in your case the state 2 and 3 are trigger at the same time ,State 3 is hard safety and it's very dangerous to bypass it.
Did the motor driver heat or not ?
What is the setting power Max
Try to disconnect one of the 2 motors and reduce max power into setting mow
Normaly this can occur only on very high grass.

maxim of 20 RFID tags
Normaly there is no limit ???

You need to have first the Pi working correctly
Check in Auto page the loops/sec ,batterie voltage,Imu etc need to be Ok
And No Decode error in the console.

After that you can use the plot page with KST to check the mowing power.
 
Hello
Thanks alot for your answers.

Bernard schrieb:
You need to check the permission to file locate into PiArdumowerpynmea2types
OK, i checked. Hope now all files have 755. ;)

Normaly 3 states
1 At 80% the spirale start
2 At 100% the motor stop for 1 minute
3 Near 2 or 3 Amp the driver itself stop the motor and there is no auto restart.
Certainly in your case the state 2 and 3 are trigger at the same time ,State 3 is hard safety and it's very dangerous to bypass it.
Did the motor driver heat or not ?
What is the setting power Max
In Mowmotor Setup i have 40W. My mower has 2 Mowmotors.
Do this safty logic also work on "Perimeter Mow Mode"? Is the Software also jump to Spirale on the wire?
The reason in my case was high long gras.
For my normal mowing the 40W works perfect. I never reach them. From time to time i got a Spiral. Only after
long mowing break i have sometimes Error state 2.
My question was can this error 1, 2 or 3 change the mower mode from "Perimeter" to "Back_to_station"?

maxim of 20 RFID tags...Normaly there is no limit ???
Yesterday i wanted to add new RFID cards. But when i clicked on "Add This Tag" it was in the list on left side.
But after go Back to main screen and then go back to RFID the new Tag was gone.
At this moment there were excact 20 saved Tags. Then i deleted a few older Tags from your image. In this moment i was able to add my new Tag.
That was the reason for my question. It looks like a limit of 20.

Check in Auto page the loops/sec ,batterie voltage,Imu etc need to be Ok
I dont use the IMU. I am fine with Random mowing. It is the best result for my small area with many islands.

Ok want to check everything again, special with the new permissions. But it is raining very strong. :(
Next days will not better :angry:
Thanks and best regards,
Bjoern
 
Zuletzt bearbeitet von einem Moderator:
OK, i checked. Hope now all files have 755.
Don't need to mow to check this.
If permission is OK ,when you power the mower the Console need to be empty (No error message) and in Auto Page the Loop/sec change each 500ms.
Is the Software also jump to Spirale on the wire?
i Don't know , I have to check this behaviour,The Mow motor sense is checked on the wire ,so certainly i reduce the tracking speed, because the spirale is not possible on the wire.(On next version).
But after go Back to main screen and then go back to RFID the new Tag was gone.
I check this .


If the permission don't solve the issue:
In PiArdu213.py find this :

Code:
else :  # here a nmea message
                #print(mymower.dueSerialReceived)
                #message = pynmea2.parse(mymower.dueSerialReceived)
                #decode_message(message)
               
                try:
                    message = pynmea2.parse(mymower.dueSerialReceived)
                    decode_message(message)
                except :
                #    print("INCOMMING MESSAGE ERROR FROM DUE --> " + str(mymower.dueSerialReceived))
                    consoleInsertText("INCOMMING MESSAGE ERROR FROM DUE" + 'n')
                    consoleInsertText(str(mymower.dueSerialReceived) + 'n')


and replace by :

Code:
else :  # here a nmea message
                #print(mymower.dueSerialReceived)
                message = pynmea2.parse(mymower.dueSerialReceived)
                decode_message(message)
               
                #try:
                #    message = pynmea2.parse(mymower.dueSerialReceived)
                #    decode_message(message)
                #except :
                #    print("INCOMMING MESSAGE ERROR FROM DUE --> " + str(mymower.dueSerialReceived))
                #    consoleInsertText("INCOMMING MESSAGE ERROR FROM DUE" + 'n')
                #    consoleInsertText(str(mymower.dueSerialReceived) + 'n')


This remove the try except and now you can show me the exact full error message in the python shell of idle.

I dont use the IMU
Why ? ,It's not a good idea , Software need it to work with all rfid tag direction(random mode also work better with it),maybe odometry can work but it' s not at all the goal of the soft.
 
Oben