-
HINTERGRUND
-
In der Robotik, der Fertigung, der Raumfahrt, in Industriemaschinen und anderen Industrien verwendete Maschinencontroller werden typischerweise so programmiert, dass sie einen speziellen Satz vordefinierter Bewegungen oder Aktionen durchführen. Dies kann zeitraubend und ressourcenintensiv sein. Beispielsweise kann das Programmieren eines Roboters zur Durchführung einer einzigen sich wiederholenden Aufgabe erfordern, dass alle Roboterkomponenten fest eingebaut sind. Nach der Programmierung kann es sein, dass der Roboter nicht in der Lage ist, sich anzupassen, Veränderungen zu kompensieren oder sich auf eine neue Arbeitsumgebung einzustellen. Veränderungen der Roboterfunktion erfordern typischerweise eine Umprogrammierung, Verifizierung, Validierung und andere Prozesse, um eine korrekte Arbeitsweise sicherzustellen.
-
ZUSAMMENFASSUNG
-
Ausführungsformen der vorliegenden Erfindung sorgen für ein Lernen durch Demonstration – ein Robotercontroller lernt, indem er demonstrierte Aktionen durch Versuch und Irrtum kopiert. Die Beherrschung der Aufgabe erlaubt dem Robotercontroller, ähnliche, jedoch unterschiedliche Aufgaben auszuführen. Zudem sind Ergebnisse des Lernens dauerhaft und der Roboter ist in der Lage, die Effekte der Alterung, des Verschleißes und sich verändernder Umgebungsbedingungen zu kompensieren. Es ist nicht nur unnötig, den Roboter vorab zu teachen, sondern es ist auch unnötig, Befehle auf niedriger Ebene explizit zu formalisieren, welche in die Ausführung der Aufgabe involviert sind.
-
Ein prozeduraler Gedächtniscontroller wird während des Normalbetriebs des Roboters durch Beobachten und Korrelieren von Störungen mit gewünschten Ergebnissen trainiert. Sobald die Korrelationen, Sequenzen und angemessenen Kombinationen herausgefunden worden sind, ersetzt dieser Controller die Steuerungsmechanismen auf hoher Ebene. Ausführungsformen der vorliegenden Erfindung verwenden existierende deklarative Gedächtnismodellcontroller (z. B. Streckenplanung, Vorwärtskinematik und inverse Kinematik) in Verbindung mit einem prozeduralen Gedächtniscontroller, der wie ein Fehlerkompensierer wirkt, um den zeitlichen Ablauf und die Betätigung von Robotergreiforganen zu modulieren. Ein deklarativer Gedächtniscontroller kann programmiert sein, um Sequenzen von Aufgaben durchzuführen.
-
In Übereinstimmung mit Ausführungsformen der vorliegenden Erfindung werden mehrere Eingangssignale (Beispiele ohne Einschränkung derselben umfassen: Sensorausgänge, Aktoreingänge, Attribute, Positionen und andere relevante messbare Variablen einer Roboterprozedur) bei Demonstrationen mit halbbeaufsichtigtem Lernen überwacht. Bei bestimmten Ausführungsformen werden diese Signale außerdem differenziert und integriert, um rekursive Erweiterungen bereitzustellen. Dann werden Ähnlichkeitsmatrizen entwickelt, um zusammenzufassen, wie sich diese Variablen mit Bezug zueinander verhalten, und diese Matrizen werden als Eingänge für einen Lernalgorithmus verwendet. Spezielle Beispiele verwenden die Korrelation, die Kreuzkorrelation, die Rangkorrelation, Produkt-Moment-Korrelationen, die Abstandskorrelation und andere Relationsmaße. Obwohl lineare Beziehungen typischerweise schneller analysiert werden können, können auch nicht lineare Beziehungen verwendet werden.
-
Sensoren umfassen Vorrichtungen innerhalb des Roboters (Beispiele ohne Einschränkung derselben umfassen: Dehnungsmessstreifen; Beschleunigungsmesser; Positionsdetektoren; Sensoren für elektrischen Strom, etwa RMS-Strom- und Spannungsmesser; und Auswerteeinrichtungen für Komponentenverhalten, etwa Vibrationsdetektoren und Einschwingszeitmessung) sowie Vorrichtungen außerhalb des Roboters (Beispiele ohne Einschränkung derselben umfassen Videokameras und Näherungsdetektoren). Aktoren sind typischerweise Vorrichtungen mit zwei Zuständen, und Beispiele ohne Einschränkung derselben umfassen Ein/Aus-Schalter und Auf/Zu-Greifer.
-
Bei dem halb beaufsichtigten Lernen von Sequenzen in Übereinstimmung mit Ausführungsformen der vorliegenden Erfindung wird das System angewiesen, die Werte in den Matrizen als Ziel für die betreffende Prozedur zu verwenden. Je genauer die Ausgangswerte des Roboters mit denjenigen der Matrizen korrelieren, desto besser führt der Roboter die betreffende Prozedur aus. Der Controller lernt, wie die Prozedur am besten ausgeführt werden soll, indem er versucht, die Korrelation zwischen dem Roboterausgang und den Zielmatrizen zu optimieren. Bei Beispielen der Erfindung dauert der Lernprozess an, sodass der Controller Veränderungen über die Zeit bei der Arbeitsumgebung und den Arbeitsbedingungen des Roboters kontinuierlich kompensiert.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
Der Gegenstand, der als die Erfindung aufgefasst wird, wird im abschließenden Abschnitt der Beschreibung speziell dargelegt und klar beansprucht. Ausführungsformen der vorliegenden Erfindung sowohl hinsichtlich der Organisation als auch des Betriebsverfahrens können zusammen mit Zielen, Merkmalen und Vorteilen derselben durch Bezugnahme auf die folgende genaue Beschreibung am besten verstanden werden, wenn diese mit den beiliegenden Zeichnungen gelesen wird, welche die Ausführungsformen veranschaulichen, in denen:
-
1 ein System gemäß einer Ausführungsform der vorliegenden Erfindung darstellt;
-
2 Elemente eines Verfahrens gemäß einer Ausführungsform der vorliegenden Erfindung darstellt;
-
3 Elemente eines Verfahrens gemäß einer Ausführungsform der vorliegenden Erfindung darstellt;
-
4 Elemente eines Verfahrens gemäß einer Ausführungsform der vorliegenden Erfindung darstellt;
-
5 ein Flussdiagramm eines Verfahrens gemäß einer Ausführungsform der vorliegenden Erfindung darstellt.
-
Es ist festzustellen, dass zur Einfachheit und Klarheit der Darstellung Elemente, die in den Figuren gezeigt sind, nicht unbedingt maßstabsgetreu gezeichnet sind. Beispielsweise können die Abmessungen einiger der Elemente der Klarheit halber mit Bezug auf andere Elemente übertrieben sein. Außerdem können Bezugszeichen innerhalb der Figuren wiederholt sein, wenn dies als geeignet betrachtet wird, um einander entsprechende oder analoge Elemente anzuzeigen.
-
GENAUE BESCHREIBUNG
-
In der folgenden genauen Beschreibung sind zahlreiche spezielle Details offengelegt, um ein genaues Verständnis der Erfindung bereitzustellen. Der Fachmann wird jedoch verstehen, dass die vorliegende Erfindung ohne diese speziellen Details in die Praxis umgesetzt werden kann. In anderen Fällen wurden gut bekannte Verfahren, Prozeduren und Komponenten nicht im Detail beschrieben, um die vorliegende Erfindung nicht zu verschleiern.
-
Sofern es nicht speziell anders angegeben ist, ist festzustellen, wie aus den folgenden Erörterungen hervorgeht, dass in der gesamten Beschreibung Erörterungen, die Begriffe wie etwa „Verarbeiten” „Berechnen”, „Speichern”, „Bestimmen”, „Auswerten”, „Ausrechnen”, „Messen”, „Bereitstellen”, „Übertragen” oder dergleichen verwenden, die Aktionen und/oder Prozesse eines Computers oder Computersystems oder einer ähnlichen elektronischen Rechenvorrichtung bezeichnen, welche Daten, die als physikalische, etwa elektronische Größen in Registern und/oder Speichern des Rechensystems dargestellt sind, manipuliert und/oder in andere Daten umformt, die auf ähnliche Weise als physikalische Größen in den Speichern, Registern oder anderen derartigen Vorrichtungen zur Informationsspeicherung, Übertragung und Anzeige des Rechensystems dargestellt sind.
-
1 veranschaulicht ein Lern/Steuerungssystem 101 in Übereinstimmung mit Beispielen der vorliegenden Erfindung. Das System 101 enthält eine zentrale Verarbeitungseinheit 103, eine Datenmassenspeichereinheit 105 und eine Arbeitsspeichereinheit 107, die eine aktive Datenbank 109 enthält. Eine Signalschnittstelle 111 kann über einen Controller 125, der ein künstliches neuronales Netzwerk enthält, Signale von einem Roboter 123 empfangen. Ein Korrelator 113 kann zwei oder mehr Signale korrelieren und eine Korrelationsausgabe erzeugen, wobei Beispiele ohne Einschränkung desselben umfassen: eine Kreuzkorrelation, eine Rangkorrelation, Produkt-Moment-Korrelationen und eine Abstandskorrelation. Ein Differenzierer 115 kann eine zeitliche Ableitung eines Signals, die Ableitungen höherer Ordnung umfasst, ausgeben; und ein Integrierer 117 kann ein Zeitintegral eines Signals ausgeben. Unter der Steuerung der Verarbeitungseinheit 103 können Ausgänge des Differenzierers 115 und des Integrierers 117 in den Korrelator 113 eingegeben werden. Eine Matrixeinheit 119 kann Ähnlichkeitsmatrizen erzeugen, die Werte enthalten, die vom Korrelator 113 ausgegeben werden, und kann über den Controller 125 Matrizen an das künstliche neuronale Netzwerk (ANN von artificial neural network) senden. Bei Beispielen der Erfindung werden von der Matrixeinheit 119 erzeugte Matrizen in der Datenmassenspeichereinheit 105 gespeichert. Eine Steuerungsschnittstelle 121 auf niedriger Ebene sendet über den Controller 125 direkte Steuerungsbefehle an den Roboter 123. Dies kann mithilfe einer Mensch-Roboter-Schnittstelle 127 durchgeführt werden, bei der ein menschlicher Bediener den Roboter 123 über den Controller 125 unter Verwendung von Handbedienelementen wie etwa einem Joystick oder einer ähnlichen Vorrichtung direkt steuert; alternativ können Steuerungsbefehle für den Roboter 123 von einer Software, die auf dem System 101 läuft, über eine Befehlsschnittstelle 129 für den Controller 125 erzeugt werden. Bei Ausführungsformen der Erfindung ist ein „Befehl” eine Anweisung, die von dem Robotercontroller auf einer niedrigen Ebene interpretiert werden kann. Befehle können in dem Kontext einer formalen Sprache ausgedrückt werden, wie etwa „gehe zu <X, Y, Z>”, wobei <X, Y, Z> einen Punkt in einer Koordinate darstellt und der Robotercontroller so programmiert ist, dass er diese erkennt. Ein Aggregator 131 kombiniert Befehlssignale von dem ANN in Übereinstimmung mit einem Kinematikmodell des Roboters 123 und sendet die resultierenden modulierten Steuerungssignale über die Steuerungsschnittstelle 125 zum Roboter 123.
-
Wie nachstehend erörtert ist, stellt die direkte Steuerung des Roboters 123 (entweder über die Mensch-Roboter-Schnittstelle 127 oder durch Programmsteuerung) eine Demonstration der Aktion für den Roboter 123 bereit, die gelernt werden soll. Ein Vorteil der Programmsteuerung besteht darin, dass die demonstrierte Aktion exakt wiederholt werden kann, und dass sie eine große Anzahl von Malen wiederholt werden kann. Bei Ausführungsformen der Erfindung wird die Anzahl der Wiederholungen der Aktion als N bezeichnet.
-
Im Allgemeinen sind die Signale und Befehle, die mit dem Roboter 123 verbunden sind, variierende Größen – sie sind Funktionen der Zeit und/oder der Frequenz oder anderer Parameter.
-
In Übereinstimmung mit Ausführungsformen der Erfindung werden mehrere Signale vom Roboter 123 empfangen und miteinander verglichen, um ein Ähnlichkeitsmaß zu erhalten. 2 veranschaulicht einen Vergleich von zwei Signalen gemäß einer Ausführungsform. Ein erstes Signal 201, das als S1 bezeichnet ist, ist als eine Kurve gemäß einer Amplitudenachse 203 mit Bezug auf eine Zeitachse 205 gezeigt; und ein zweites, als S2 bezeichnetes Signal 207 ist als eine Kurve gemäß einer Amplitudenachse 209 mit Bezug auf eine Zeitachse 211 gezeigt. Das Signal S1 201 und das Signal S2 207 sind zwei Signale zur Veranschaulichung, die einem Abtastwertesatz 219 entnommen sind, der N Abtastwerte mit jeweils K verschiedenen Signalen enthält. Ein gleitendes Fenster 215, das in eine Richtung 217 gleitet, tastet beide Signale ab und führt die Abtastwerte einer Ähnlichkeitsanalyseeinheit 221 zu. Bei einem Beispiel analysiert die Ähnlichkeitsanalyseeinheit 221 die Ähnlichkeit des Signals S1 201 und des Signals S2 207, indem es Ähnlichkeitsfunktionen zwischen diesen bewertet. Bei einem Beispiel ohne Einschränkung führt die Ähnlichkeitsanalyseeinheit 221 eine Amplituden/Phasen-Kreuzkorrelation des Signals S1 201 und des Signals S2 207 durch. Die korrelierten Werte werden dann in den geeigneten Einträgen platziert, um dadurch eine K × K-Ähnlichkeitsmatix 223 zu berechnen. Die Korrelationswerte sind im Allgemeinen komplexe Zahlen, die Korrelationen sowohl bei der Amplitude als auch bei der Phase darstellen. Bei bestimmten Ausführungsformen ist die Ähnlichkeitsmatrix 223 als zwei getrennte Matrizen dargestellt, wobei eine den Realteil und die andere den Imaginärteil der Korrelation enthält. Bei einigen Ausführungsformen sind die Elemente der Ähnlichkeitsmatrix 223 Werte, die Funktionen der Korrelationen sind; Beispiele ohne Einschränkung derartiger Funktionen umfassen Normierungsfunktionen, Gewichtungsfunktionen und so weiter. Es ist nicht notwendig, eine explizite Mittelwertsbildungsoperation durchzuführen, wenn die Aktion N mal wiederholt wird, um N Abtastwerte zu liefern; die Korrelation selbst berücksichtigt die Wiederholung.
-
Die Ähnlichkeitsmatrix 223 ist eine Funktion der Zeit und daher werden viele Instanzen der Matrix 223 im Arbeitsspeicher gespeichert, um die zeitvarianten Funktionen zu approximieren. Bei einem Beispiel ohne Einschränkung weist eine zehn Sekunden lange Aktion, die in Momentaufnahmen alle 0,1 Sekunden unterteilt ist, 100 Instanzen der Matrix 223 auf, die im Arbeitsspeicher oder einem Datenbankeintrag gespeichert sind. Eine Ähnlichkeitsmatrix M (t) kann in der Zeit um T0 Sekunden verschoben werden, indem einfach ein Versatz angewendet wird, um M(t + T0) zu erhalten. Wenn daher eine Ähnlichkeitsmatrix für eine spezielle Aktion vorliegt, liefert diese automatisch eine Ähnlichkeitsmatrix für die gleiche Aktion, die zeitlich verzögert ist.
-
3 veranschaulicht eine Erweiterung von Elementen von 2, die vorstehend beschrieben ist. Ein N × K-Eingangsfeld 301 enthält N Abtastwerte mit jeweils K verschiedenen Signalen. Beispiele ohne Einschränkung der Signale umfassen: einen ersten Sensoreingang 303, einen zweiten Sensoreingang 305, ...; einen ersten Aktoreingang 307, einen zweiten Aktoreingang 309, ...; einen ersten Attributeingang 311, einen zweiten Attributeingang 313, ...; einen ersten Positionseingang 315, einen zweiten Positionseingang 317, ...; und endet mit einem K-ten-Eingang 319.
-
Das Eingangsfeld 301 wird als ein Zustandseingang 325 eingegeben, der N × K Elemente eines L × N × K großen erweiterten Eingangsfelds 321 bildet. Bei dem Beispiel ohne Einschränkung von 3 ist L = 4, aber andere Werte von L sind auch möglich.
-
Bei dem Beispiel ohne Einschränkung von 3 wird jedes Element des Eingangsfelds 301 über die Zeit integriert, um N × K zusätzliche Elemente für einen integrierten Zustandseingang 323 zu erzeugen. Jedes Element des Eingangsfelds 301 wird zeitlich differenziert, um N × K zusätzliche Elemente für einen Zustandseingang 327 mit erster Ableitung zu erzeugen. Jedes Element des Zustandseingangs 327 mit erster Ableitung wird wieder zeitlich differenziert, um N × K zusätzliche Elemente für einen Zustandseingang 329 mit zweiter Ableitung zu erzeugen. Bei anderen Beispielen werden andere Momente höherer Ordnung verwendet. Bei dem Beispiel von 3 liefert die zweite Ableitung eines Positionssensors einen Beschleunigungswert. Bei einem anderen Beispiel (nicht dargestellt) liefert das doppelte Integral eines Beschleunigungssensors einen Positionsversatz. Wenn eine zweite Ableitung, eine erste Ableitung, der Zustand, ein Integral und ein doppeltes Integral verwendet werden, ist L = 5.
-
Die Elemente des erweiterten Eingangsfelds 321 (welche alle variierende Größen sind) werden korreliert, um eine (4 × K) × (4 × K) = 16 × K2 quadratische erweiterte Ähnlichkeitsmatrix 331 zu erzeugen (unter Verwendung des Werts L = 4 wie in dem Beispiel ohne Einschränkung von 3 dargestellt ist). Im Allgemeinen ist ein Element i, j der erweiterten Ähnlichkeitsmatrix 331 die Korrelation eines Signals S1 mit einem Signal S1.
-
Die erweiterte Ähnlichkeitsmatrix 331 charakterisiert die Bewegung des Roboters während der Durchführung einer Aufgabe – nicht nur individuelle Aspekte der Bewegung sondern auch die Weise, in der jeder Aspekt mit jedem anderen Aspekt in Beziehung steht.
-
Zusätzlich zu der Analyse im Amplituden-Zeit-Bereich von Signalen, wie sie für die vorstehenden Beispiele beschrieben ist, verwenden andere Beispiele eine Analyse im Amplituden-Frequenzbereich (Fourier Transformation), eine Frequenz-Zeit-Analyse (Kurzzeit-Fourier Transformation oder STFT) und die Zeit-Wavelet-Analyse („Multiskalenanalyse”).
-
Andere oder abweichende Reihen von Operationen können auch verwendet werden.
-
4 veranschaulicht Elemente eines Verfahrens gemäß einem Beispiel ohne Einschränkung wie folgt: Ein Kinematikmodell 400 für den Roboter 123 enthält Modellierungselemente für: Verbindungskomponenten 401, 405, 409, 413, 417, 421 und 425; Gelenke 403, 407, 411, 415, 419 und 423 und einen Greifer 427. Positionen und Orientierungen werden relativ zu einem Koordinatensystem 429 gemessen.
-
Eine erweiterte Ähnlichkeitsmatrix 451 für eine „nach links bewegen”-Aktion wird zusammen mit Steuerungsbefehlen 452 für die „nach links bewegen”-Aktion in ein künstliches neuronales Netzwerk („ANN”) 457 eingegeben. Somit lernt das ANN 457, die Ähnlichkeitsmatrix 451 den Steuerungsbefehlen 452 für die „nach links bewegen”-Aktion zuzuordnen. Eine erweiterte Ähnlichkeitsmatrix 453 für eine „in 5 Sekunden nach oben bewegen”-Aktion wird ebenfalls zusammen mit Steuerungsbefehlen 454 für die „in 5 Sekunden nach oben bewegen”-Aktion in das ANN 457 eingegeben. Somit lernt das ANN 457 auch, die Ähnlichkeitsmatrix 453 den Steuerungsbefehlen 454 der „in 5 Sekunden nach oben bewegen”-Aktion zuzuordnen. Wenn dem ANN 457 die erweiterten Ähnlichkeitsmatrizen 451 und 453 dargeboten werden, gibt es Steuerungssignale aus, um den Roboter 123 so zu steuern, dass er die kombinierten Aktionen „nach links bewegen” und „in 5 Sekunden nach oben bewegen” ausführt.
-
In Übereinstimmung mit bestimmten Ausführungsformen der Erfindung weist jede Aktionsgruppe ihre eigene Ähnlichkeitsmatrix auf und bei diesem Beispiel ohne Einschränkung wird außerdem eine erweiterte Ähnlichkeitsmatrix 455 für eine „Greifer schließen”-Operation in ein künstliches neuronales Netzwerk 459 zusammen mit Steuerungsbefehlen 456 für die „Greifer schließen”-Operation eingegeben. Somit lernt das ANN 459, die Ähnlichkeitsmatrix 455 den Steuerungsbefehlen 456 für die „Greifer schließen”-Operation zuzuordnen. Bei diesem Beispiel ist die „Greifer schließen”-Aktion in einer von der „nach links bewegen” und der „in 5 Sekunden nach oben bewegen” verschiedenen Aktionsgruppe enthalten, weil die „bewegen”-Aktionen eine kontinuierliche Positionierungsbewegung mit Positionserfassung umfassen, wohingegen die „schließen”-Aktion eine binäre Bedingung (offen oder geschlossen) mit Krafterfassung umfasst.
-
Für eine Aufgabe „Greifer schließen, dann nach links bewegen, dann in 5 Sekunden nach oben bewegen” werden die vorstehend beschriebenen Ausgänge in einem Aggregator 461 kombiniert, um ein moduliertes Steuerungssignal 463 für den Roboter 123 in Übereinstimmung mit einem Kinematikmodell 400 zu erzeugen. Bei bestimmten Ausführungsformen der Erfindung, bei denen die von den ANN 457 und 459 ausgegebenen Steuerungssignale linear sind, führt der Aggregator 461 die Steuerungssignale zusammen, indem er eine Summierungsfunktion durchführt. Bei Ausführungsformen der Erfindung kann eine willkürliche Anzahl unterschiedlicher Aktionsgruppen zusammengeführt werden, um eine spezielle Aufgabe durchzuführen.
-
Bei dem „halb beaufsichtigten Lernen” wird ein beaufsichtigtes Lernen nur gebraucht, wenn das System initialisiert wird und bei der Durchführung von Änderungen, Korrekturen und einer periodischen Wartung. Bei einer Ausführungsform der Erfindung wird ein erneutes Training zur Wartung alle 100 Zyklen durchgeführt. Zwischen beaufsichtigten Lernsitzungen ist das System zum unbeaufsichtigten Betrieb ohne Modifikation am Regelkreis fähig.
-
Kinematikmodelle werden in der Robotik typischerweise verwendet, um eine Greiforganposition mit Gelenkparametern in Beziehung zu setzen (Vorwärtskinematikmodelle) und um Gelenkparameter mit der Position des Greiforgans in Beziehung zu setzen (inverse Kinematikmodelle). Kinematikmodelle umfassen typischerweise Sätze mit Gelenkbeschränkungen, sodass ein Eingang des Kinematikmodells 400 in den Aggregator 461 sicherstellt, dass das modulierte Steuerungssignal 463 die Beschränkungen des Roboters 123 einhalten wird.
-
Die Kombination funktioniert wie ein Regelkreis für den Roboter 400. Der Prozess wird wiederholt und misst die Parameter, Attribute und Signale, die zum erneuten Berechnen der erweiterten Ähnlichkeitsmatrizen 451, 453 und 455 notwendig sind.
-
5 veranschaulicht ein Flussdiagramm eines Verfahrens gemäß einer Ausführungsform der vorliegenden Erfindung. Bei einem Schritt 501 wird eine Aktion einem Roboter mit einem direkten Befehl 503 demonstriert. In einem Schritt 505 wird eine Ähnlichkeitsmatrix 507 berechnet und in einem Schritt 509 werden der direkte Befehl 503 und die Ähnlichkeitsmatrix 507 in ein künstliches neuronales Netzwerk (ANN) eingegeben, um ein Signal 511 zu erhalten. In einem Schritt 513 wird das Signal 511 in Übereinstimmung mit einem Kinematikmodell 515 des Roboters zusammengefasst, um ein moduliertes Steuerungssignal 517 zur Steuerung des Roboters, um die Aktion durchzuführen, ausgegeben.
-
Ausführungsformen der vorliegenden Erfindung können Vorrichtungen zum Durchführen der hier beschriebenen Operationen enthalten. Derartige Vorrichtungen können speziell für die gewünschten Zwecke konstruiert sein oder sie können Computer oder Prozessoren umfassen, die von einem Computerprogramm, das in den Computern gespeichert ist, selektiv aktiviert oder neu konfiguriert werden. Derartige Computerprogramme können in einem von einem Computer lesbaren oder von einem Prozessor lesbaren nicht vorübergehenden Massenspeichermedium, einer beliebigen Art von Platte einschließlich von Disketten, optischen Platten, CD-ROMs, magnetooptischen Platten, Festwertspeichern (ROMs), Speichern mit wahlfreiem Zugriff (RAMs), elektrisch programmierbaren Festwertspeichern (EPROMs), elektrisch löschbaren und programmierbaren Festwertspeichern (EEPROMs), magnetischen oder optischen Karten oder einem beliebigen anderen Typ von nicht vorübergehenden konkreten Medien, der zum Speichern elektronischer Anweisungen geeignet ist, gespeichert sein. Es ist festzustellen, dass eine Vielfalt von Programmiersprachen verwendet werden kann, um die Lehren der Erfindung wie hier beschrieben zu implementieren. Ausführungsformen der Erfindung können einen Artikel enthalten, etwa ein von einem Computer oder einem Prozessor lesbares nicht vorübergehendes Speichermedium, wie zum Beispiel einen Arbeitsspeicher, ein Festplattenlaufwerk oder einen USB-Flashspeicher, welches Anweisungen codiert, enthält oder speichert, z. B. von einem Computer ausführbare Anweisungen, welche, wenn sie von einem Prozessor oder einem Controller ausgeführt werden, bewirken, dass der Prozessor oder Controller hier offenbarte Verfahren ausführt. Die Anweisungen können veranlassen, dass der Prozessor oder Controller Prozesse ausführt, die hier offenbarte Verfahren ausführen.
-
Es sind hier verschiedene Ausführungsformen offenbart. Merkmale bestimmter Ausführungsformen können mit Merkmalen von anderen Ausführungsformen kombiniert werden; somit können bestimmte Ausführungsformen Kombinationen von Merkmalen von mehreren Ausführungsformen sein. Die vorstehende Beschreibung der Ausführungsformen der Erfindung wurde zum Zweck der Darstellung und Beschreibung präsentiert. Es ist nicht beabsichtigt, dass diese umfassend ist oder die Erfindung auf die präzise offenbarte Form begrenzt. Der Fachmann wird feststellen, dass viele Modifikationen, Variationen, Substitutionen, Veränderungen und Äquivalente im Licht der vorstehenden Lehren möglich sind. Es versteht sich daher, dass die beigefügten Ansprüche dazu gedacht sind, dass sie alle derartigen Modifikationen und Veränderungen abdecken, die in den Grundgedanken der Erfindung fallen.