Warum ist die Patternsuche ein Durchbruch in der Automatisierung?

Moderator: MVogt

Post Reply
User avatar
Theo_Gottwald
Posts: 348
Joined: 03. Oct 2009, 08:57
Location: Herrenstr.11 * 76706 Dettenheim
Contact:

Warum ist die Patternsuche ein Durchbruch in der Automatisierung?

Post by Theo_Gottwald » 14. May 2022, 18:08

Was ist die "Patternsuche"?
Die Patternsuche ist das neue lang erwartete MPR-Feature das mit dem kommenden Update ausgeliefert werden soll.

Man kann sich die Patternsuche vorstellen wie einen Student, dem man ein Bild zeigt und sagt "Wenn das Bild kommt, dann klickst du da drauf".
Die Patternsuche basiert also auf kleinen Bildern - das sind die "Patterns".
Diese Patterns haben irgendeine Größe zwischen 8x8 Pixel und 128x16 Pixel.

Wie schnell ist denn die "Bildersuche"?
Wir haben jeden Aufwand getrieben um die Patternsuche so schnell wie möglich zu machen.
Je nach Computer reagiert der Robot schnell, und findet Patterns schneller als ein menschlicher Benutzer diese finden würde.
Deswegen mussten wir bei usneren Tests immer wieder Pausen einfügen.

Wozu brauch man diese Patterns?
Bei der visuellen Automatisierung klicken wir auf Buttons, aber wir warten auch bis ein Vorgang abgeschlossen ist.
In beiden Fällen tauchen bestimmte "Signale" auf dem Bildschirm auf, auf diese reagieren wir als Benutzer.
Genauso macht es der Robot bei der Patternsuche.

Nehmen wir Mal an, dass es schnell gehen muss. Da ist eine Sache, die muss automatisch laufen, aber es muss schnell gehen. Und zuverlässig sein.
Und nein das ist nichts für die Softwareverteilung, das ist ein Feature für die "schnell Mal was automatisieren Fraktion".
Das ist der Moment, wo der Chef wartet.
Der wartet auf das PDF, die Daten müssen eigegeben werden .... am besten sollte es automatisch gehen.
Es muss schnell gehen und es muss sofort funktionieren.
Keine Zeit für Technologiestudien ... ist es ein Fenster oder ein Acc-Objekt? Bei der Patternsuche ist das alles egal.

1. Wir bestimmen das Fenster, in dem das Pattern auftaucht.
2. Wir zeichenn das Pattern auf.
3. Wir speichern das Pattern direkt im Skript als "Inline Data"
4. Wir testen ob das Pattern angefahren wird.
Und wir gehen zum nächsten Schritt.

Die Vorteile liegen auf der Hand:

A. Jedes Element aus jeder GUI-Technologie kann sofort lokalisiert werden. Es können sogar Elemente in einer VMWare von ausserhalb lokalisiert werden. Allerdings kann man die nicht anfahren, denn das verhindert der VMWare Maustreiber.

B. Man kann Elemente mit Offset lokalisieren, d.h. man lokalisiert ein Element und klickt dann "rechts daneben".
Man klickt als wenn sinnvoll mit "Offset.

C. Einfach nur klicken, das könnte man ja auch in dem man sich die Position merkt. Mit dem Pattern kann man warten bis eine Nachricht, Button, Grafik ... irgendein Pattern erscheint.
Die Patternsuche stellt sicher, dass wir zum richtigen Zeitpunkt an den richtigen Ort klicken.

Es gibt ein paar Schritte, die man lernen muss.
a) Wie der Pattern-.Rekorder bedient wird, der das Patternsuch-Script schreibt.
b) Wie man die Patternsuche-Befehle mit GSB\ (GOSUB) aufruft.
c) Wie man das Script umändert, wenn man darauf wartet, dass ein Pattern verschwindet.
d) und wie man den Offset beim Klicken angeben kann.

Alles einfache Sachen, da kann nichts schief gehen.

Man befolgt diese Schritte und die Patternsuche funktioniert immer. Es ist also ein System.
Viel weniger "Trial and Error" wie bei anderen Automatisierungen. Denn entweder ist das Pattern da, oder es nicht da.

Anmerkung zur Historie und Technik.
Beim MPR gab es auch früher schon Pattern-Such Kommandos. Wir haben diese Mal implementiert und uns gewundert, warum das nie richtig funktioniert hat. Wobei die Kommandos haben immer richtig funktioniert, perfekt funktioniert.

Aber Windows rendert Texte und Bilder nie ganz gleich.
Da spielen vielen Faktoren eine Rolle, vom Subpixel-Antialiasing, bis zum Cleartype-Schriftrenderer.
Jedenfalls sind die Bilder nie ganz gleich. Und das verhindert eine "simple = Patternsuche".
Auch wenn ein Text genau gleich aussieht , ist er nicht genau gleich.

Die neue Patternsuche hat deshalb eine 3 stufige "Fuzzy-Logik" um auch Bilder und Patterns zu erkennen, die nicht ganz genau übereinstimmen. Undman kann die Toleranz an 2 Stellen angeben.
Nehmen wir ein 8x8 Pattern. Das sind 64 Pixel. Man kann da angeben, wieviele der 64 Pixel übereinstimmen müssen.
Das geht auch in Prozent. Also zum Beispiel 80% oder 75%.

Aber was heisst denn Übereinstimmen?
Die Farben sind ja auch nie ganz genau die gleichen. Deswegen gibt es auch noch ein Farbtoleranz die man ebenso angeben kann.
Ein Pixel stimmt dann überein, wenn die Farbabweichung inkl. Farbtoleranz passt.
Und diese zwei Werte kann man bei jedem Pattern angeben und so die Erkennungs-Unschärfe mitbestimmen.
Meisten muss man an den "default Werten" gar nichts ändern, das muss man an sich nur in Spezialfällen.
Wenn man zum Beispiel in Sozialen Netzwerken herumklickt. Da kann das Mal sein.

Das ist kurz gesagt der Unterschied zur früheren Variante. Und das es funktioniert ist nun auch getestet, schon in vielen Automatisierungen mit dem SPR. Welche Features der MPR davon bekommt steht noch nicht ganz bis ins Details fest, aber die grundlegende Patternsuche wird es geben.

Und das bedeutet, man kann mit dem MPR in Zukunft "jede Automatisierung mal schnell machen".

Post Reply

Return to “Package Robot”

Who is online

Users browsing this forum: No registered users and 1 guest