RoπLawnMow

Yes i am Sure mpu6050 for straight Forward Drive and and one qmc5883 but this is actual not in use but i will use him in future. The results of my Indoor Tests shown that the compass had problems with the metall inside in the floor. So every time when the mower cross the ribbon the qmc will show wrong blaues i assume
 
So every time when the mower cross the ribbon the qmc will show wrong blaues i assume
Yes it's the goal.

My test show that QMC5883 or HMC5883 are very complex to use for real North detection (inside the mower you have so many magnetic field that it's really difficult to calibrate).
 
That's the reason why i don't use it in the Moment. And use on behalf your Suggestion only accelerator and the Gyroskop.
 
Hallo es gibt von meinem Projekt mal wieder etwas neues zu berichten.
@Bernard war so nett und hat mir ein Perimeter Receiver Sketch zu Verfügung gestellt. Ich wollte einmal ausprobieren ob ich die PiMowBot SW anstatt über die Kamera mit dem Perimeter Signal auf dem Rasen halten kann. Auf meinem Rasen gibt es einige Bereiche da tut sich die Kamera mit der Grünerkennung schwer. Ein Perimeter Draht wäre da eine gutes AddOn. Also habe ich mal wieder ein wenig Reverse Engineering betrieben und die Daten die das PICAM Modul liefert durch ein anderes Script ersetzt. Die Funktion ist nun folgende:
Das Teensy Board fungiert mit den LM 386 als Perimeter Receiver.
Teensy sendet die perimeterMagvalues via seriellen Port an den RaspberryPi. Dort läuft ein python Sript und liest die Werte aus.
Im Moment habe ich es so für Testzwecke implementiert, dass eine Triggerdatei erzeugt wird, sobald eine der Spulen, oder beide Spulen sich außerhab der Perimeterschleife befinden. Dann wird je nachdem ob es die Linke oder Rechte Spule ist / oder beide ein entsprechender Wert an die PiMowBotSW übergeben, die dann entsprechend reagiert. Das klappte in meinem Zimmer mit meinem MINIPiMowBot als Entwicklungsroboter schon ganz gut wie ihr sehen könnt. In den nächsten Tagen will ich meinen RoπLawnMow damit ausstatten und dann im Garten testen.
Ich bin sehr zuversichtlich, das Bernard mir schon signalsiert hat, das die magvalues, die ihr in dem rechten Fenster des Videos sehen könnt sehr realistisch sind.


View attachment Perimeter..mp4

Den Code von Sender / Empfänger und das python Script habe ich angehängt,

Vielen Dank nochmals an @Bernard für seinen unermüdlichen support
Un grand merci encore à @Bernard pour son soutien infatigable hope it is correct translated Thx Google
 

Attachments

Gestern erlaubte mein Projektfortschritt und das Wetter einen Outdoor Test.​

Ich war sehr zufrieden. Seht selbst.

View attachment PerimeterTest.mp4

Der Perimeter Sender und Empfänger leisten gute Dienste und arbeiten sehr zuvelässig. Vielleicht hätte ich vorher doch einmal mähen sollen, denn einige wilde Kräuter haben dann doch die ToFs ausgelöst. Ich habe ihn eine gute Stunde in Betrieb gehabt, dann kam der große Regen und ich musste abbrechen. Als nächsten versuche ich das PiCAM Modul aus der PiMowBot SW zur Rasen Erkennung zu implementieren. Dann muss ich nicht um die Bäume einen Draht verlegen. Die Kamera braucht dann nur unterscheiden ist es Rasen/ grün oder ist es Erde /braun. Sollte das nicht klappen, dann gibt es aber auch genügend python Beispiele wie man das mit opencv lösen kann. PiCAM hat den Vorteil, benötigt wenig Ressourcen und passt schon gut zu meiner File-Api
Ich werde weiter berichten
 
Habe die PiCAM nun auch in Betrieb, somit erkennt er um die Bäume herum die Erde und über die ToF Sensoren auch "Hindernisse" :)
Coole Szene habe ich hier festgehalten.
Als nächstes kommt noch die Fahrt entlang des Drahtes, da hat mir @Bernard wieder dankenswerter Weise Informationsmaterial zur Verfügung gstellt. Ich denke dazu komme ich aber nicht vor Juli

View attachment Poldi.mp4
 
Hallo gestern habe ich meine PID SW aktualisiert damit auch draußen mein Gyroskop zum einsatz kommen kann. Bisher schaukelte sich der PID Regler für den MotorPWM-Value bei der Kurskorrektur zeitweise auf. Das konnt ich gestern lösen. Hier zwei Video, Das erste Zeit die Fahrt ohne Kurskorrektur

View attachment OhneGyro.mp4

Das zweite Video zeigt die gleiche Strecke mit Kurskorrektur. Das Einsetzen der Regelung ist deutlich zu erkennen.

View attachment MitGyro.mp4

Beide Fahrten habe ich mit der selben RPM durchgeführt die Wegstrecke sind 500 cm
Nun steht noch das stückchen SW aus, welches die Regelung entlang des Perimeter Drahtes abbildet. Vielleicht komme ich dazu in der Kommenden Woche. Danach kann ich auf GitHub die Python Scripte hochladen
 
Yes it is easy. I use opto-coppler because I made the experience, that several levelshifter have several characteristicas and the Pi is sometimes picky. So far I remember right end of last year, I tested out, that on the break Pin of the ZS Board, there are 5 Volt. So the Pi is not happy with that.
The HALL signal is 5 Volt, as you know you can manage this with 2 restiors. But I started my professional carrer as a Radio & TV technician and I love Optocoppler and I have I'm honest around 100 PC817 in a box. So they will be used. But it is really true. I used 3 different Levelshifters and an arduiono works propper with the levelshifter, the pi had problems. This is the reason why I designed this smart PCB wich fits exactly in Front of the ZS Boards. But I forgot the Pull-up for GPIO 12 🙁
View attachment 1183
Moin Ulli,
ist der Schaltplan auf Github aktuell, oder musste da etwas dran geändert werden?
Ich sitze gerade an EinEinfach seine PCB und überlege, das gleich mit einzufügen.
 
Moin Ulli,
ist der Schaltplan auf Github aktuell, oder musste da etwas dran geändert werden?
Ich sitze gerade an EinEinfach seine PCB und überlege, das gleich mit einzufügen.
Hallo @Sascha , @EinEinfach hier ist https://github.com/ullisun/RopiLawnMow/blob/main/MotorCal/Scheamtic.pdf
der aktuelle Plan abgelegt. die Anderung zum alten ist der PullupWiderstand beim Hall Optokoppler Ausgang, der Pi kommt bei den Frequenzen besser mit einem physikalischen als mit einer SW-Lösung zurecht.
Die Schaltung funktioniert zuverlässig und ist schon bei einigen "Kollegen" im Einsatz.
Sicher ist es möglich anstatt der 3 einzelnen PC817 einen 4fach PC817 einzusetzen und dann vielleicht noch den Stop Eingang vom ZS Board mit als Steuereingang mit auf zu nehmen . Das konnte ich aber noch nicht testen

Gruß Ulli
 
Hallo;
heute habe ich einen großen Projekt Rückschlag zu verzeichnen.
Die Distanzauswertung funktioniert bei mir mit ToF Sensoren VL53L0X. Das funktioniert soweit auch sehr zuverlässig ich habe ja auch schon das ein und andere Video vom Betrieb gepostet. Nun habe ich festgestellt, dass bei extremen Motor-Regelungen sich die ToFs verbschieden, und zwar in der Form dass sie einfrieren und keine aktuellen Distanzen mehr melden. Da Pi und Motore an unterschiedlichen Power Strängen hängen kann ich ein Betriebsspannungsfehler ausschließn. Auch ein auswechseln der ToFs brachte keine Veränderung. Hat jemand eine Idee?
Ansonsten überlege ich ob ich TOF Berimeter und MPU Auswertung auf das Teensy Board lege und die Daten via Serielle Schnittstelle an den Pi übertrage. Dann bliebe noch die Kamera Auswertung Motorsteuerung und INA Auswertung auf dem Pi.
Wenn jemand beim PI schon einmal solch ein phanömän gehabt hat und ein Tip hat wäre ich sehr dankbar.
 
Hi Bernard thx for your reply. Yes outdoor work fine over hours. And also during sunshine in a range up to 125cm with Motors. I close to decide to Change the ToFs to Ultrasonic Sensors.
 
So maybe i miss something, because i have exactly the same issue in 2018 :

First test inside :

So i build the full mower integration
3 TOF VL53L0 was connected to one arduino nano (so no powering issue)
All my test on table work very fine , but when i test them in real condition, they always fail (many false detection) , it's the reason i have thought that the sun was the issue.
 

Attachments

  • denna towel2.jpg
    denna towel2.jpg
    462.4 KB · Views: 5
  • towel1.jpg
    towel1.jpg
    460.5 KB · Views: 5
  • towel3.jpg
    towel3.jpg
    672.4 KB · Views: 5
In the moment i am sure, that it someting like EMV or so. If there is no much fast current change all Tofs works perfect. Also my tests outsite during Juni where perfect. You can see it in my posted videos. either the rabbit was in front of one ToF or a blade of grass. The only false detection was with the camera when the sun was intensiv shining. The green pixel detection was faulty.
And tonight I found a lot of posts in several foren with the same problem, that the ToF freeze the last messurement. Only a restart of the script was the solution. Yes it helbs but only for fwe seconds. So I am a bit perplexed. I have now the option
a: test ist again with an arduino configuration and transfer the results of the Tof to the Pi via i2C or serial interface,
b: replace the VL53L0X with VL53L1X maby they have a better performance or
c: replace the ToFs with HC-SRF05 for my development robot and for Outside with the JSN-SR04
how would you decide?
This Video shows the test situation. The ToF on Top is mounted on a servo and looks 45 heading. The aim was to drive with more or less 50cm ToF distance to the wall. here it works. After that I changed the PID to have a better adjustment the ToFs fails.
The intention was: in my Garden I have a long wall of my neighbor garage. And until now I dont will use there a perimeter wire. So the Idea, meassure the distance to the wall and drive along it.


View attachment entlangDerWand.mp4
 
Hello, I've browsed around a bit about possible problems and perhaps found a small solution...


 
Hello, I've browsed around a bit about possible problems and perhaps found a small solution...


Thanks @Richtel and @Bernard for your comments. I am quite sure that I fixed the problem. I am using now a different library and since this afternoon i made a lot of tests and all 3 sensors delivers the correct distance during the time
I looked to this code
# https://github.com/jdc-cunningham/t...1fd543862de183084f9e64c/software/test/tof7.py
and updated my library
https://github.com/Gadgetoid/VL53L0X-python
with sudo pip3 install git+https://github.com/pimoroni/VL53L0X-python.git and my example Script is attached which is working together with the PiMowBot-SW. Please cross your fingers that this is really fixed - I am confident. I would take the distance of the centered ToF it is orientated at 45° or -45° via Servo and will take this result to write a python script for following the Perimeter wire for my roπLawnMow. So I can test it indoor along the wall and do not need tu run all basic tests outside. if it works basicly i can swap Tof-data for Perimeter Mag Data and hope it will work.
That is my plan.
Best regards Ulli

View attachment walRight..mp4
View attachment wall_left.mp4
 

Attachments

Noch was neues zu den ToFs,
Ich habe im Zuge de ganzen Tests auch einmal die ToF200C-VL53L0X ausprobiert. Einen elektrischen Unterschied habe ich zu meinen bisherigen ToFs nicht feststellen können.
Aber die Verarbeitung, das ist schon eine andere Nummer. Ich wüsste jetzt nicht welcher Schutzklasse man diesen Sensoren zuordnen könnte, aber rein optisch machen die schon einen soliden Eindruck. Dafür habe ich mir neue Linsen für meine ToF-Gehäuse gedruckt. Ich finde den Unetrschied kann man gut erkennen. Da würde ich mich auch trauen mit einem Q-Tip vorher zu putzen. Bei den anderen hatte ich beim pusten schon ein schlechtes Gewissen.
Hier eine Collage mit der Gegenüberstellung, Links mit schutzkappe, rechts die bisherigen.
Bitte eins unbedingt beachten bei der Nutzung: SDA und SCL sind genau andersherum belegt als bei den anderen ToFs.
ToFCollage.png
 
Hallo,
heute habe ich draußen eine Perimeter Test Fahrt unternommen.
Hintergrund: In meinem kleinen Zimmer beeinflussen sich anscheinend die Magnetfelder gegenseitig und ich konnte zwar immer die Spulenwerte von einer Spule gut messen, aber wenn ich beide auswerten wollte, klappte das nicht richtig. Ziel ist meinen RoπLawnMow irgendwann einmal in der Mitte des Drahtes als Driving Home Funktion fahren zu lassen, um dann auch mal die Ladestation zu finden. Zur Erinnerung: Die Spulen werden mit einem Teensy ausgelesen, die Motorsteuerung werfolgt durch einen Pi und das ganze dann in Python.
Im Zimmer konnte ich nur immer eine Spule ordentlich auswerten, aber mein Ziel ist beide auszuwerten, Theoretisch sollte meiner Meinung nach wenn der Draht mittig unter den Spulen her läuft, die mag values gleich groß sein, jedoch mit unterschiedlichen Vorzeichen.
Perimeter.png

Hier ein Diagram einer Fahrtstrecke. Ich habe noch keinen PID Regler dazu konfiguriert, sondern nur der Logik folgend wird der Linke Perimeter Value positiv, muss ordentlich gegen gesteuert werden. Wird er negativ , so steuer ich das linke Rad immer etwas mehr an, als das rechte, damit er einen kleinen Rechtsdrift hat. So könnte ich z.B. innerhalb der Perimeterschleife immer den Draht finden, wenn er die Driving home Funktion aufruft. Ich denke das Diagramm zeigt sehr gut wie im Video zu sehen ist, dass er immer im Zickzack fährt. Ziel wäre nun einen PID Regler so zu konfigurieren, dass er im Bestcase die Mitte hält, also die gelbe Linie immer möglichst an der Null Linie ist +-500 würde ich mal sagen. Bin ich da auf dem richtigen Weg?
Hier das Video von heute 5x im Zeitraffer.

View attachment Perimeter2.mp4
 
Back
Top