-
Die vorliegende Erfindung betrifft ein Verfahren und System zum Steuern einer Roboteranordnung mit wenigstens einem Roboter sowie eine Anordnung mit dem System und ein Computerprogrammprodukt zur Durchführung des Verfahrens.
-
Aus betriebsinterner Praxis ist es bekannt, Positionen von Objekten, beispielsweise mithilfe von Kameras, zu erfassen und Roboter auf Basis dieser erfassten Positionen zu steuern, beispielsweise den Objekten zu folgen, ihnen auszuweichen, sie aufzunehmen oder dergleichen.
-
Dabei sind die Zeitabstände, in denen die erfassten Positionen vorliegen, häufig größer als ein Regeltakt zum Steuern der Roboter.
-
Entsprechend werden nach betriebsinterner Praxis für das Steuern der Roboter auf Basis der erfassten Positionen der Objekte zunächst auf Basis dieser Roboter-Soll-Stellungen ermittelt (beispielsweise durch entsprechende Rückwärtskinematik oder dergleichen) und dann zwischen diesen Roboter-Soll-Stellungen auf den Regeltakt der Robotersteuerung (fein)interpoliert.
-
Die
DE 10 2010 017 857 A1 offenbart eine 3D-Sicherheitsvorrichtung zur Absicherung und Bedienung mindestens einer Maschine an einem kooperativen Arbeitsplatz mit einem 3D-Sensor zur Erfassung dreidimensionaler Bilddaten des Arbeitsplatzes, der Maschine und mindestens einer Bedienperson an dem Arbeitsplatz und mit einer Auswertungseinheit, die dafür ausgebildet ist, Bewegungsmuster der Bedienperson zu bestimmen und bei Erkennung einer Gefährdung der Bedienperson einen Absicherungsbefehl an die Maschine auszugeben, wobei die Auswertungseinheit dafür ausgebildet ist, aus den Bewegungsmustern Benutzereingaben an den 3D-Sensor oder an die Maschine abzuleiten.
-
Aus der
DE 20 2013 104 860 U1 ist eine Arbeitsvorrichtung mit einem Industrieroboter, der ein Prozesswerkzeug trägt, und mit einer Steuerung bekannt, wobei die Arbeitsvorrichtung für eine Mensch-Roboter-Kooperation oder -Kollaboration ausgebildet ist und eine mit der Steuerung verbundene Erfassungseinrichtung mit einer Sensoreinrichtung für die Detektion einer aufgetretenen Kollision des Industrieroboters oder des Prozesswerkzeugs mit einem Hindernis aufweist, wobei die Erfassungseinrichtung zusätzlich einen Abstand zwischen dem Industrieroboter und/oder dem Prozesswerkzeug und dem Hindernis erfasst und die Arbeitsvorrichtung dazu ausgebildet ist, bei einer aus dem Abstand ermittelten Kollisionsgefahr den Industrieroboter eine Ausweichbewegung gegenüber dem Hindernis ausführen zu lassen.
-
Nach der
DE 40 21 330 A1 wird ein Portalroboter gleichlaufend mit einem bewegten Werkstück bewegt, wobei hierzu eine parallel zur Bewegungsrichtung des Werkstückes verlaufende Trägerachse für einen Positionsübermittler vorgesehen ist, dessen Signale auf elektronischem Weg in der Steuereinheit des Roboters berücksichtigt werden und zur Reduzierung der Signalverarbeitungsdauer die vom Positionsübermittler ermittelten Kennwerte im Feininterpolationstakt in eine Lageregelkarte der Robotersteuerung eingespeist werden.
-
Die
DE 42 38 938 C2 offenbart ein Verfahren zur Erzeugung und Interpolation eines Lageführungssignals zur konturtreuen Bahnsteuerung eines numerisch gesteuerten Manipulators, insbesondere einer Achse einer Werkzeugmaschine, entlang einer Bewegungssollbahn, wobei zwischen je zwei aufeinanderfolgende, von einer Steuerung vorgegebene Bahnstützpunkte immer k Zwischenstützstellen eingefügt werden, wobei zur Bestimmung einer Zwischenstützstelle jeweils eine vorgegebene Anzahl von vor der Zwischenstützstelle liegenden Bahnstützpunkten sowie von hinter der Zwischenstützstelle liegenden Bahnstützpunkten mit geeigneten Koeffizienten gewichtet und die gewichteten Bahnstützpunkte durch Bildung der Summe verknüpft werden.
-
Nach der
DE 102 51 600 A1 ist bei einem Verfahren zur Bewegungssteuerung eines Industrieroboters verbunden mit einer Interpretation einer gegebenen Punktfolge von Posen durch Splines vorgesehen, dass Komponenten der Bewegung getrennt parametrisiert werden.
-
Die
DE 10 2005 060 967 B4 betrifft ein Verfahren zum Einrichten einer Bahnkurve für eine Robotereinrichtung, wobei ein Werkstück mit wenigstens einer zu bearbeitenden Oberfläche im Arbeitsbereich der Robotervorrichtung angeordnet wird, eine Zeigereinrichtung an einer Mehrzahl von Stützpunkten auf der zu bearbeitenden Oberfläche positioniert wird, die Koordinaten der Stützpunkte durch Erfassen der zugehörigen Koordinaten der Zeigereinrichtung festgelegt werden, zwischen jeweils zwei benachbarten Stützpunkten automatisch gemäß einem vorbestimmten Algorithmus interpoliert wird, um die Bahnkurve festzulegen, und die Bahnkurve K auf die zu bearbeitende Oberfläche O projiziert wird.
-
Aufgabe der vorliegenden Erfindung ist es, ein Steuern einer Roboteranordnung mit wenigstens einem Roboter zu verbessern.
-
Diese Aufgabe wird durch ein Verfahren mit den Merkmalen des Anspruchs 1 gelöst. Ansprüche 12 - 14 stellen ein System bzw. Computerprogrammprodukt zur Durchführung eines hier beschriebenen Verfahrens bzw. eine Anlage mit einer Roboteranordnung und einem hier beschriebenen System zum Steuern der Roboteranordnung nach einem hier beschriebenen Verfahren unter Schutz. Die Unteransprüche betreffen vorteilhafte Weiterbildungen.
-
Nach einem Ausführung der vorliegenden Erfindung weist eine Roboteranordnung einen oder mehrere Roboter auf, der bzw. von denen einer oder mehrere in einer Weiterbildung (jeweils) wenigstens drei, insbesondere wenigstens sechs, insbesondere wenigstens sieben, insbesondere motorisch, aktuierte Achsen bzw. Gelenke, insbesondere Drehachsen bzw. -gelenke, aufweisen.
-
Nach einer Ausführung der vorliegenden Erfindung weist ein Verfahren zum Steuern der Roboteranordnung die, insbesondere zyklisch wiederholten und/oder sequentiellen bzw. aufeinanderfolgenden, Schritte auf:
- - Erfassen von (ersten) Posendaten von einer Objektanordnung mit einem oder mehreren Objekten, wobei die erfassten Posendaten einen ersten, insbesondere minimalen, maximalen und/oder mittleren bzw. gemittelten, Zeitabstand aufweisen, insbesondere mithilfe wenigstens eines (ersten) Sensors;
- - Ermitteln von modifizierten (ersten) Posendaten von der Objektanordnung, die einen zweiten, insbesondere minimalen, maximalen und/oder mittleren bzw. gemittelten, Zeitabstand aufweisen, der kleiner oder größer, in einer Ausführung höchstens um den Faktor 20, insbesondere höchstens um den Faktor 2, größer, in einer Ausführung um wenigstens den Faktor 2, insbesondere um wenigstens den Faktor 10, und/oder um höchstens den Faktor 200, insbesondere um höchstens den Faktor 120, kleiner, als der erste Zeitabstand oder gleich dem ersten Zeitabstand ist, auf Basis bzw. in Abhängigkeit von, insbesondere aus, den erfassten (ersten) Posendaten; und
- - Steuern der Roboteranordnung, insbesondere Ermitteln, Kommandieren und/oder Anfahren, von Soll-Stellungen der Roboteranordnung, insbesondere des bzw. eines oder mehrerer ihrer Roboter, auf Basis der modifizierten (ersten) Posendaten, insbesondere zum Folgen, Aufnehmen und/oder Auszuweichen von dem bzw. einem oder mehreren Objekt(en) durch die Roboteranordnung, wobei zur kompakteren Darstellung auch ein Regeln des bzw. eines oder mehrerer Roboter der Roboteranordnung als Steuern bezeichnet wird. In einer Weiterbildung umfasst das Steuern der Roboteranordnung auf Basis von modifizierten Posendaten eine Überlagerung von modifizierten Posendaten mit Manipulationsvorschriften, insbesondere Bahnen oder dergleichen, die relativ zu der Objektanordnung vorgegeben, insbesondere definiert, sind, insbesondere das Abfahren von Bahnen auf bzw. relativ zu Objekten, deren Posen durch die modifizierten Posendaten bestimmt sind bzw. werden.
-
In einer Ausführung werden somit nicht mehr zuerst Roboter-Soll-Stellungen auf Basis erfasster Posendaten ermittelt und erst bzw. nur anschließend zwischen diesen bzw. im Achs- bzw. Gelenkraum der Roboteranordnung (fein)interpoliert, sondern bereits modifizierte Posendaten mit einer höheren (Abtast)Rate zur Verfügung gestellt bzw. zum Steuern genutzt.
-
Hierdurch können in einer Ausführung ein oder mehrere Nachteile, die sich infolge einer solchen späten bzw. verzögerten Feininterpolation erst bzw. nur im Achsraum der Roboter ergeben, zum Beispiel Rauschen, Unstetigkeiten, Achsbrummen, Jitter, Latenz oder dergleichen, reduziert, vorzugsweise vermieden werden.
-
Ein zweiter Zeitabstand, der kleiner als der erste Zeitabstand ist, entspricht einer Feininter- bzw. -extrapolation im engeren Sinne. Hierdurch kann insbesondere eine langsameren Abtastrate der (Erfassung der bzw. erfassten) Posendaten vorteilhaft mit einem kürzeren Steuer- bzw. Regeltakt kombiniert werden. So kann etwa vorteilhaft ein erster Zeitabstand von etwa 20 ms einer 50 Hz Kamera mit Halb-Bildverfahren mit einer Steuer- bzw. Regel-Bezugstaktung von 1 ms kombiniert werden. Durch einen zweiten Zeitabstand, der gleich dem ersten Zeitabstand ist, kann in einer Ausführung vorteilhaft ein glatte(re)s Signal realisiert, insbesondere eine vorteilhafte Geschwindigkeitsbestimmung und/oder Vorausrechnung auch bei Paketausfällen genutzt werden. Durch einen zweiten Zeitabstand, der größer als der erste Zeitabstand ist, kann in einer Ausführung eine schnellere Abtastrate der (Erfassung der bzw. erfassten) Posendaten mit einem langsameren Steuer- bzw. Regeltakt kombiniert werden. In einer bevorzugten Ausführung beträgt ein Quotient des ersten Zeitabstands der erfassten Posendaten dividiert durch den zweiten Zeitabstand der modifizierten Posendaten wenigstens 0,9, vorzugsweise wenigstens 1, insbesondere wenigstens 1,1, und/oder höchstens 120, was vorliegend verallgemeinernd ebenfalls als (Fein)Interpolation bezeichnet wird. Entsprechend ist in einer bevorzugten Ausführung der zweite Zeitabstand kleiner oder gleich dem ersten Zeitabstand bzw. höchstens so groß wie der erste Zeitabstand, in einer Weiterbildung (echt) kleiner als der erste Zeitabstand.
-
Durch die erfindungsgemäße wenigstens teilweise Verlagerung der (Fein)Interpolation in den Raum der Posen der Objekte können in einer Ausführung besonders vorteilhaft verschiedene zeitgleich erfasste Posendaten, insbesondere durch unterschiedliche Sensoren, insbesondere mit unterschiedlichen Zeitabständen, erfasste Posendaten, zum Steuern der Roboteranordnung genutzt, insbesondere zusammengeführt, insbesondere überlagert, und/oder an eine Steuerung zum Steuern der Roboteranordnung übermittelt werden.
-
Entsprechend weist das Verfahren in einer Ausführung die Schritte auf:
- - Erfassen von weiteren Posendaten von der Objektanordnung, in einer Ausführung dem- bzw. denselben und/oder anderen Objekten der Objektanordnung, zeitlich parallel zu bzw. zusammen mit dem Erfassen der (ersten) Posendaten, insbesondere mithilfe wenigstens eines zusätzlichen Sensors, wobei die weiteren erfassten Posendaten einen weiteren, insbesondere denselben oder einem anderen, insbesondere minimalen, maximalen und/oder mittleren bzw. gemittelten, ersten Zeitabstand aufweisen;
- - Ermitteln von weiteren modifizierten Posendaten von der Objektanordnung, die einen weiteren, insbesondere denselben oder einem anderen, insbesondere minimalen, maximalen und/oder mittleren bzw. gemittelten, zweiten Zeitabstand, der kleiner oder größer als dieser weitere erste Zeitabstand oder gleich diesem weiteren ersten Zeitabstand ist, aufweisen, auf Basis bzw. in Abhängigkeit von, insbesondere aus, den weiteren erfassten Posendaten; und
- - Steuern der Roboteranordnung, insbesondere Ermitteln, Kommandieren und/oder Anfahren, von Soll-Stellungen der Roboteranordnung, insbesondere des- bzw. derselben und/oder anderer Roboter der Roboteranordnung, auf Basis (auch) der weiteren modifizierten Posendaten, die in einer Weiterbildung dieselbe oder eine andere Taktrate und/oder Phasenlager aufweise (können) als die (ersten) modifizierten Posendaten.
-
In einer bevorzugten Ausführung beträgt ein Quotient des weiteren ersten Zeitabstands der weiteren erfassten Posendaten dividiert durch den weiteren zweiten Zeitabstand der weiteren modifizierten Posendaten wenigstens 0,9, vorzugsweise wenigstens 1, insbesondere wenigstens 1,1, und/oder höchstens 120. Entsprechend ist in einer bevorzugten Ausführung der weitere zweite Zeitabstand kleiner oder gleich dem weiteren ersten Zeitabstand bzw. höchstens so groß wie der weitere erste Zeitabstand, in einer Weiterbildung (echt) kleiner als der weitere erste Zeitabstand.
-
Eine Pose eines Objekts im Sinne der vorliegenden Erfindung hängt von einer, insbesondere kartesischen und/oder ein-, zwei- oder dreidimensionalen, Position und/oder Orientierung, insbesondere Winkelstellung, des entsprechenden Objekts, insbesondere relativ zu der Roboteranordnung und/oder einer Umgebung bzw. im (kartesischen) Raum ab, sie kann insbesondere die Position und/oder Orientierung beschreiben bzw. angeben, insbesondere sein.
-
Entsprechend hängen in einer Ausführung die (ersten und/oder weiteren) erfassten Posendaten und/oder die (ersten und/oder weiteren) modifizierten Posendaten, insbesondere auch oder nur, von einer, insbesondere kartesischen und/oder ein-, zwei- oder dreidimensionalen, Position und/oder Orientierung der Objektanordnung, insbesondere des bzw. einer oder mehrerer ihrer Objekte, insbesondere relativ zu der Roboteranordnung und/oder einer Umgebung bzw. im (kartesischen) Raum ab, sie können diese insbesondere beschreiben bzw. angeben, insbesondere sein.
-
Es hat sich überraschend herausgestellt, dass die wenigstens teilweise (Fein)Interpolation bereits im Raum (auch) der Orientierung bzw. Winkellage bzw. -stellung von erfassten Objekten ein besonders vorteilhaftes Steuern von Robotern ermöglicht.
-
In einer Weiterbildung werden die (ersten und/oder weiteren) modifizierten Posendaten derart bzw. mit der Maßgabe ermittelt, dass eine, insbesondere (absolute) Drehung der Objektanordnung bzw. des bzw. eines oder mehrerer Objekte der Objektanordnung im Raum zwischen (ersten bzw. weiteren) modifizierten Posendaten, die aufeinanderfolgen oder zwischen denen ein oder mehrere Posendaten liegen, (jeweils) minimal ist bzw. wird.
-
Betrachtet man, wie in 1 exemplarisch dargestellt, ein objektfestes Koordinatensystem K und eine, in 1 strich-doppelpunktierte, Kugel um dessen Mittelpunkt, so beschreiben bei einer Drehung des entsprechenden Objekts 4 die Durchstoßpunkte des Koordinatensystems bzw. seiner Achsen durch die Kugel Bahnen b auf der Kugel, deren Längen ein Maß für die Drehung des Objekts darstellen.
-
Entsprechend werden in einer Weiterbildung die (ersten und/oder weiteren) modifizierten Posendaten derart bzw. mit der Maßgabe ermittelt, dass diese Bahn(läng)en minimiert sind bzw. werden bzw. auf Großkreisen einer solchen Kugel liegen bzw. Durchstoßpunkte eines objektfesten Koordinatensystems durch eine Kugel um dessen Mittelpunkt sich auf Großkreisen der Kugel bewegen.
-
Hierdurch kann in einer Ausführung ein unerwartetes Verhalten, insbesondere ein unerwünschtes Torkeln, der auf Basis der (ersten bzw. weiteren modifizierten) Posendaten gesteuerten Roboteranordnung reduziert, vorzugsweise vermieden werden.
-
Insbesondere hierzu können die (ersten und/oder weiteren) erfassten Posendaten und/oder die (ersten und/oder weiteren) modifizierten Posendaten Quaternionen aufweisen, insbesondere sein.
-
Zusätzlich oder alternativ sind in einer Ausführung die (ersten und/oder weiteren) modifizierten Posendaten derart (gewählt), dass ihre, insbesondere erste, Zeitableitung eine, insbesondere absolute, Winkelgeschwindigkeit der Objektanordnung, insbesondere des bzw. eines oder mehrerer der Objekte, beschreibt bzw. angibt, insbesondere direkt bzw. unmittelbar, wie dies insbesondere bei Quaternionen der Fall ist, im Gegensatz beispielsweise zu Zeitableitungen von EULER- oder KARDAN-Winkeln.
-
Hierdurch können in einer Ausführung die vorstehen erläuterten minimalen Drehungen bzw. minimale Bahnen bzw. Großkreise realisiert und/oder eine Rechenzeit vorteilhaft verkürzt werden.
-
Quaternionen sind dem Fachmann zur Beschreibung von Orientierungen bzw. Orientierungsänderungen bzw. Drehungen bekannt, so dass auf diese nicht weiter einzugehen ist. Sofern die (ersten bzw. weiteren) erfassten Posendaten nicht in Quaternionendarstellung vorliegen, werden sie in einer Ausführung zur bzw. bei der Ermittlung der (ersten bzw. weiteren) modifizierten Posendaten in Quaternionendarstellung transformiert, in einer Ausführung beispielsweise aus einer Darstellung mit EULER- oder KARDAN-Winkeln, wie sie bei Sensoren zur Erfassung von Orientierungen üblich ist.
-
In einer Ausführung werden die (ersten und/oder weiteren) modifizierten Posendaten derart bzw. mit der Maßgabe ermittelt, dass sie einer Funktion, insbesondere stückweise definierten Polynomen, insbesondere dritter Ordnung, genügen bzw. durch diese beschrieben werden, die (erste bzw. weitere) erfasste Posendaten approximiert, insbesondere durch (erste bzw. weitere) erfasste Posendaten und/oder, insbesondere durch lineare Interpolation bestimmte, Stützstellen zwischen aufeinanderfolgenden (ersten bzw. weiteren) erfassten Posendaten verläuft.
-
Hierdurch können die modifizierten Posendaten in einer Ausführung besonders vorteilhaft ermittelt werden, insbesondere durch Abtasten bzw. Auswerten der Funktion in dem (jeweiligen) zweiten Zeitabstand.
-
In einer Weiterbildung weist die Funktion an Stützstellen vorgegebene, insbesondere durch aufeinanderfolgende erfasste Posendaten, insbesondere durch lineare Interpolation zwischen diesen, bestimmte, (Zeit)Ableitungen auf, die in einer Ausführung translatorische und/oder rotatorische Geschwindigkeiten, insbesondere (absoluten) Winkelgeschwindigkeiten, der Objektanordnung angeben. Zusätzlich oder alternativ weisen in einer Weiterbildung die stückweise definierten Polynome an ihren Übergangsstellen dieselbe Ableitung auf.
-
Hierdurch können in einer Ausführung besonders vorteilhafte modifizierte Posendaten ermittelt werden, diese insbesondere einen (wenigstens C1-stetigen) Verlauf aufweisen und/oder, insbesondere hierdurch, ein unerwünschtes Antriebsbrummen reduziert und/oder eine Auswertung verbessert werden.
-
In einer Ausführung werden die (ersten und/oder weiteren) modifizierten Posendaten mithilfe einer oder mehrerer Filterungen bzw. Filterstufen, insbesondere Tiefpassfilterungen bzw. -stufen, insbesondere der (ersten bzw. weiteren) erfassten modifizierten Posendaten ermittelt.
-
Hierdurch können in einer Ausführung vorteilhafte modifizierte Posendaten ermittelt, insbesondere diese geglättet und/oder Messfehler, insbesondere -rauschen reduziert, werden.
-
In einer Ausführung werden bei einem bzw. infolge eines Ausbleiben(s) (erster und/oder weiterer) erfasster Posendaten für eine, insbesondere vorgegebene, Nachlaufzeit die modifizierten bzw. weiteren modifizierten Posendaten derart bzw. mit der Maßgabe ermittelt, dass eine, insbesondere translatorische und/oder rotatorische, Geschwindigkeit, insbesondere (absolute) Winkelgeschwindigkeit, der Objektanordnung, insbesondere relativ zu der Roboteranordnung und/oder einer Umgebung bzw. im (kartesischen) Raum, zwischen diesen modifizierten Posendaten konstant ist bzw. gehalten wird.
-
Hierdurch kann in einer Ausführung eine Zeitverzögerung bei der Erfassung von Posendaten und/oder deren Übermittlung vorteilhaft kompensiert werden.
-
Zusätzlich oder alternativ wird in einer Ausführung bei bzw. infolge eines Ausbleiben(s) (erster und/oder weiterer) erfasster Posendaten für eine, insbesondere vorgegebene, Abbruchzeit, die in einer Weiterbildung größer als die Nachlaufzeit ist, das Steuern der Roboteranordnung auf Basis der modifizierten bzw. weiteren modifizierten Posendaten gestoppt und/oder eine Warnung ausgegeben.
-
Hierdurch kann in einer Ausführung vorteilhaft auf eine übermäßige Zeitverzögerung bei der Erfassung von Posendaten und/oder deren Übermittlung reagiert und/oder die Gefahr eines dadurch bedingten inkorrekten Steuerns der Roboteranordnung reduziert werden.
-
Die (ersten und/oder weiteren) Posendaten der Objektanordnung werden mithilfe eines oder mehrerer, insbesondere berührungsloser und/oder optischer, (ersten bzw. zusätzlichen) Sensoren, insbesondere (jeweils) einer oder mehrerer, insbesondere umgebungs- oder roboterfester, Kameras, insbesondere mithilfe einer Bildverarbeitung, erfasst.
-
Zusätzlich oder alternativ werden in einer Ausführung die (ersten und/oder weiteren) modifizierten Posendaten, in einer Weiterbildung über ein Netzwerk, insbesondere das Internet und/oder ein LAN, insbesondere WLAN, und/oder eine Cloud, an eine Steuerung übermittelt, die die Roboteranordnung bzw. den oder einen oder mehrere ihrer Roboter steuert, insbesondere von Soll-Stellungen der Roboteranordnung, insbesondere des bzw. eines oder mehrerer ihrer Roboter, auf Basis der (ersten und/oder weiteren) modifizierten Posendaten ermittelt, kommandiert und/oder anfährt, insbesondere zum Folgen, Aufnehmen und/oder Auszuweichen von dem bzw. einem oder mehreren Objekt(en) durch die Roboteranordnung, bzw. hierzu, insbesondere hard- und/oder software-, insbesondere programmtechnisch, eingerichtet ist bzw. verwendet wird.
-
Gleichermaßen können die (ersten und/oder weiteren) modifizierten Posendaten auch wenigstens teilweise verteilt bzw. auf mehreren Rechnern und/oder in der Robotersteuerung ermittelt werden.
-
Hierdurch können die Posendaten in einer Ausführung besonders vorteilhaft, insbesondere störungsfrei, präzise und/oder schnell, erfasst und/oder die wenigstens teilweise Verlagerung der (Fein)Interpolation in den Raum der Posen der Objekte und/oder die Überlagerung von ersten und weiteren modifizierten Posendaten besonders vorteilhaft durchgeführt werden.
-
Wie bereits erwähnt, kann in einer Ausführung das Steuern der Roboteranordnung auf Basis der modifizierten Posendaten und/oder der weiteren modifizierten Posendaten ein Kombinieren, insbesondere Überlagern, dieser Posendaten mit Manipulationsvorschriften, insbesondere Bahnen oder dergleichen, umfassen, insbesondere sein, die relativ zu der Objektordnung, insbesondere dem bzw. einem oder mehreren ihrer Objekte, vorgegeben, insbesondere definiert, sind („objektordnungsbezogene Manipulationsvorschriften“), beispielsweise ein Abfahren von Bahnen, die auf bzw. relativ zu der Objektordnung vorgegeben sind, durch die Roboteranordnung.
-
Nach einer Ausführung der vorliegenden Erfindung ist ein System zum Steuern der Roboteranordnung, insbesondere hard- und/oder software-, insbesondere programmtechnisch, zur Durchführung eines hier beschriebenen Verfahrens eingerichtet und/oder weist (wenigstens) auf:
- - Mittel zum Ermitteln von modifizierten (ersten) Posendaten von einer Objektanordnung mit einem oder mehreren Objekten, die einen zweiten, insbesondere minimalen, maximalen und/oder mittleren bzw. gemittelten, Zeitabstand aufweisen, auf Basis bzw. in Abhängigkeit von erfassten (ersten) Posendaten der Objektanordnung, wobei der zweite Zeitabstand kleiner oder größer als ein erster Zeitabstand oder gleich einem ersten Zeitabstand der erfassten Posendaten ist, zum Steuern der Roboteranordnung.
-
In einer Ausführung weist das System auf:
- - Mittel zum Erfassen von den (ersten) Posendaten von der Objektanordnung, wobei die erfassten Posendaten den ersten, insbesondere minimalen, maximalen und/oder mittleren bzw. gemittelten, Zeitabstand aufweisen; und/oder
- - Mittel zum Steuern der Roboteranordnung, insbesondere Ermitteln, Kommandieren und/oder Anfahren, von Soll-Stellungen der Roboteranordnung, insbesondere des bzw. eines oder mehrerer ihrer Roboter, auf Basis der modifizierten (ersten) Posendaten, insbesondere zum Folgen, Aufnehmen und/oder Auszuweichen von dem bzw. einem oder mehreren Objekt(en) durch die Roboteranordnung.
-
Zusätzlich oder alternativ weist das System bzw. sein(e) Mittel in einer Ausführung auf: Mittel zum Erfassen von weiteren Posendaten von der Objektanordnung, die einen weiteren ersten Zeitabstand aufweisen, zeitlich parallel zu dem Erfassen der (ersten) Posendaten, insbesondere mithilfe wenigstens eines zusätzlichen Sensors; und/oder Mittel zum Ermitteln von weiteren modifizierten Posendaten von der Objektanordnung, die einen weiteren zweiten Zeitabstand aufweisen, der kleiner oder größer als der weitere erste Zeitabstand oder gleich dem weiteren ersten Zeitabstand ist, auf Basis der weiteren erfassten Posendaten; und/oder
Mittel zum Steuern der Roboteranordnung auf Basis dieser weiteren modifizierten Posendaten.
Mittel zum Ermitteln der modifizierten Posendaten und/oder weiteren modifizierten Posendaten derart, dass eine Drehung der Objektanordnung im Raum zwischen modifizierten Posendaten minimal ist; und/oder
Mittel zum Ermitteln modifizierten Posendaten und/oder weiteren modifizierten Posendaten derart, dass sie einer Funktion, insbesondere stückweise definierten Polynomen, insbesondere dritter Ordnung, genügen, die erfasste Posendaten approximiert, insbesondere durch erfasste Posendaten und/oder Stützstellen zwischen aufeinanderfolgenden erfassten Posendaten verläuft; und/oder Mittel zum Ermitteln der modifizierten Posendaten und/oder die weiteren modifizierten Posendaten mithilfe wenigstens einer Filterung; und/oder
Mittel zum Ermitteln der modifizierten Posendaten bei Ausbleiben erfasster Posendaten für eine Nachlaufzeit derart, dass eine Geschwindigkeit der Objektanordnung im Raum zwischen modifizierten Posendaten konstant ist; und/oder Mittel zum Stoppen des Steuerns der Roboteranordnung auf Basis der modifizierten Posendaten und/oder Ausgeben einer Warnung bei Ausbleiben erfasster Posendaten für eine Abbruchzeit; und/oder
Mittel zum Erfassen der (ersten und/oder weiteren) Posendaten der Objektanordnung mithilfe wenigstens eines, insbesondere berührungslosen und/oder optischen, Sensors; und/oder
Mittel zum Übermittelt der (ersten und/oder weiteren) modifizierten Posendaten an eine Steuerung zum Steuern der Roboteranordnung; und/oder Mittel zum Kombinieren, insbesondere Überlagern, der modifizierten Posendaten und/oder der weiteren modifizierten Posendaten mit objektordnungsbezogenen Manipulationsvorschriften zum Steuern der Roboteranordnung.
-
Ein Mittel im Sinne der vorliegenden Erfindung kann hard- und/oder softwaretechnisch ausgebildet sein, insbesondere eine, vorzugsweise mit einem Speicher- und/oder Bussystem daten- bzw. signalverbundene, insbesondere digitale, Verarbeitungs-, insbesondere Mikroprozessoreinheit (CPU) und/oder ein oder mehrere Programme oder Programmmodule aufweisen. Die CPU kann dazu ausgebildet sein, Befehle, die als ein in einem Speichersystem abgelegtes Programm implementiert sind, abzuarbeiten, Eingangssignale von einem Datenbus zu erfassen und/oder Ausgangssignale an einen Datenbus abzugeben. Ein Speichersystem kann ein oder mehrere, insbesondere verschiedene, Speichermedien, insbesondere optische, magnetische, Festkörper- und/oder andere nicht-flüchtige Medien aufweisen. Das Programm kann derart beschaffen sein, dass es die hier beschriebenen Verfahren verkörpert bzw. auszuführen imstande ist, sodass die CPU die Schritte solcher Verfahren ausführen kann und damit insbesondere die Roboteranordnung steuern kann. Ein Computerprogrammprodukt kann in einer Ausführung ein, insbesondere nichtflüchtiges, Speichermedium zum Speichern eines Programms bzw. mit einem darauf gespeicherten Programm aufweisen, insbesondere sein, wobei ein Ausführen dieses Programms ein System bzw. eine Steuerung, insbesondere einen Computer, dazu veranlasst, ein hier beschriebenes Verfahren bzw. einen oder mehrere seiner Schritte auszuführen
-
In einer Ausführung werden ein oder mehrere, insbesondere alle, Schritte des Verfahrens vollständig oder teilweise automatisiert durchgeführt, insbesondere durch das System bzw. sein(e) Mittel.
-
Weitere Vorteile und Merkmale ergeben sich aus den Unteransprüchen und den Ausführungsbeispielen. Hierzu zeigt, teilweise schematisiert,:
- 1: eine Anordnung mit einem Roboter und einem System zum Steuern des Roboters nach einer Ausführung der vorliegenden Erfindung;
- 2: erfasste und modifizierte Posendaten; und
- 3: ein Verfahren zum Steuern des Roboters nach einer Ausführung der vorliegenden Erfindung.
-
1 zeigt eine Anordnung mit einem Roboter 1 und einem System zum Steuern des Roboters 1 nach einer Ausführung der vorliegenden Erfindung.
-
Das System umfasst eine Robotersteuerung 2 und eine damit kommunizierende Erfassungs- und Verarbeitungseinrichtung 30 zum Erfassen von Posendaten von Objekten 4, die eine Kamera 31 aufweist.
-
Mithilfe der Kamera 31 erfasst die Erfassungs- und Verarbeitungseinrichtung 30 (erste) Posendaten xs, welche die dreidimensionale kartesische Position und Orientierung der Objekte 4, von denen in 1 exemplarisch nur eines dargestellt ist, zu bestimmten Zeiten t1, t5, t9 beschreiben und die in 2 durch ausgefüllte Rechtecke angedeutet sind.
-
Entsprechend weisen diese ersten Posendaten xs einen ersten Zeitabstand T1 auf, der im Ausführungsbeispiel konstant ist und der Abtast- bzw. Auswerterate der Kamera 31 bzw. Erfassungs- und Verarbeitungseinrichtung 30 entspricht. Die erfassten Posendaten beschreiben die Orientierung des Objekts 4, gegebenenfalls nach entsprechender Transformation, in Quaternionen.
-
Die Kamera 31 erfasst in einem Schritt S90 Posen des Objekts 4 (vgl. 3). Die Erfassungs- und Verarbeitungseinrichtung 30 prüft in einem Schritt S100, ob bereits eine vorgegebene Abbruchzeit vergangen ist, seit die letzte erfasste Pose von der Kamera 31 empfangen wurde.
-
Ist dies der Fall (S100: „Y“), d.h. bleiben für die Abbruchzeit (neue) erfasste Posendaten aus, wird in einem Schritt S110 ein Steuern des Roboters 1 auf Basis der Posendaten gestoppt und eine Warnung ausgegeben.
-
Andernfalls (S100: „N“) prüft die Erfassungs- und Verarbeitungseinrichtung 30 in einem Schritt S120, ob eine vorgegebene Nachlaufzeit vergangen ist, seit die letzte erfasste Pose von der Kamera 31 empfangen wurde.
-
Ist dies der Fall (S120: „Y“), d.h. bleiben für die Nachlaufzeit (neue) erfasste Posendaten aus, werden in nachfolgend mit Bezug auf 2 erläuterter Weise in einem Schritt S130 modifizierte Posendaten y(t) derart ermittelt, dass eine translatorische und rotatorische Geschwindigkeit des Objekts 4 im Raum zwischen modifizierten Posendaten bzw. die zeitliche Ableitung der ermittelten modifzierten Posendaten konstant ist, und der Roboter 1 in einem Schritt S140 auf Basis dieser modifizierten Posendaten gesteuert, bis entweder die Abbruchzeit vergangen ist oder inzwischen doch noch ein neue erfasste Pose von der Kamera 31 empfangen wurde (S90).
-
Mit anderen Worten wird bei einer Verzögerung neuer erfasster Posen angenommen, dass das Objekt 4 sich von einem letzten Stützpunkt aus mit konstanter kartesischer und (absoluter) Winkelgeschwindigkeit weiterbewegt, und der Roboter 1 auf Basis dieser Annahme gesteuert, bis entweder neue Posen erfasst oder die Abbruchzeit erreicht ist.
-
Falls rechtzeitig bzw. innerhalb der Nachlaufzeit neue erfasste Posen von der Kamera 31 empfangen wurde (S120: „N“), fährt die Erfassungs- und Verarbeitungseinrichtung 30 mit einem Schritt S150 fort.
-
In diesem ermittelt sie durch lineare Interpolation eine in 2 durch ein leeres Rechteck angedeutet Stützstelle xd in der Mitte zwischen der neuen und der vorhergehenden erfassten Pose sowie eine Geschwindigkeit vd an dieser Stützstelle, die sich ebenfalls aus der lineare Interpolation ergibt bzw. dem Quotienten aus dem Abstand von der Stützstelle zu der neuen Pose dividiert durch die entsprechende Zeit entspricht.
-
Exemplarisch ist in 2 eine solche Stützstelle xd(t7), die sich durch lineare Interpolation zwischen den Posendaten xs(t5) und xs(t9) ergibt, wie in 2 gestrichelt angedeutet, sowie die entsprechende Geschwindigkeit vd(t7) an dieser Stützstelle bezeichnet, die sich aus [xs(t9) - xd(t7)]/ (t9 - t7) ergibt.
-
Dann ermittelt die Erfassungs- und Verarbeitungseinrichtung 30 in einem Schritt S160 ein Polynom dritter Ordnung einer stückweise durch Polynome dritter Ordnung definierten Funktion f derart, dass es an das vorhergehende Polynom C1-stetig anschließt bzw. an der Übergangsstelle dieselbe (Zeit)Ableitung aufweist, sowie durch die neue Stützstelle xd verläuft und dort die ermittelte Geschwindigkeit vd(t7) aufweist.
-
Diese Funktion f bzw. dieses Polynom(stück) wird in einem Schritt S170 im Regeltakt der Robotersteuerung 2, d.h. mit einem kürzeren Zeitabstand T2 ausgewertet und ergibt die modifizierten Posendaten y, die in 2 durch ausgefüllte Kreise angedeutet und für die Zeitpunkte t4, t5, t6, t11 und t12 exemplarisch bezeichnet sind.
-
Auf Basis dieser modifizierten Posendaten y steuert die Robotersteuerung 2 in Schritt S170 den Roboter 1, beispielsweise zum Greifen des Objekts 4 oder dergleichen. In einer Ausführung kann zum Steuern den modifizierten Posendaten y eine objektbezogene Manipulationsvorschrift, beispielsweise eine relativ zum Objekt 4 definierte B(earbeitungsb)ahn, überlagert und der Roboter 1 auf Basis der modifizierten Posendaten y und der objektbezogenen Manipulationsvorschrift gesteuert werden.
-
Man erkennt in 2, dass für den Zeitpunkt t13 = t9 + T1 eine neue erfasste Pose vorliegen müsste, um in der beschriebenen Weise eine neue Stützstelle für t11 und so das nächste Polynomstück ermitteln zu können.
-
Da jedoch im Ausführungsbeispiel innerhalb der Nachlaufzeit eine solche neue erfasste Pose noch nicht vorliegt, wird in Schritt S130 (vgl. 3) die Funktion f an der entsprechenden Stelle t11 mit der dort vorliegenden Steigung f'(t11) linear fortgesetzt, wie in 2 gestrichelt angedeutet, so dass die translatorische und rotatorische Geschwindigkeit des Objekts 4 im Raum zwischen modifizierten Posendaten ab t11 konstant ist.
-
In Schritt S140 wird dann analog zu Schritt S170 diese Funktion im Regeltakt der Robotersteuerung 2 bzw. mit dem kürzeren Zeitabstand T2 ausgewertet und ergibt die modifizierten Posendaten y(t12).
-
Sofern auch nach der Abbruchzeit noch keine neue erfasste Pose vorliegt (S100: „Y“), wird das Verfahren abgebrochen.
-
Bei dem beschriebenen Verfahren ist die Drehung des Objekts 4 im Raum zwischen modifizierten Posendaten y insbesondere aufgrund der Polynominterpolation der Quaternionen vorteilhafterweise minimal, so dass insbesondere ein Torkeln vermieden wird.
-
Parallel können auch für durch eine Kamera 32 zeitlich parallel erfassten weitere Posendaten in analoger, hier beschriebener Weise weitere modifzierte Posendaten ermittelt und der Roboter 1 auch auf Basis dieser weiteren modifzierten Posendaten gesteuert werden.
-
Vorteilhafterweise können dabei der Robotersteuerung 2 die modifzierten Posendaten von Kamera 31 und die weiteren modifzierten Posendaten von Kamera 32 mit demselben Takt zur Verfügung gestellt werden, indem die modifzierten Posendaten und die weiteren modifzierten Posendaten mit demselben zweiten Zeitabstand T2 ermittelt werden bzw. denselben zweiten Zeitabstand aufweisen. Gleichermaßen können die modifizierten Posendaten und die weiteren modifizierten Posendaten auch unterschiedliche Taktraten und/oder Phasenlagen aufweisen.
-
Man erkennt in 2, dass die modifzierten Posendaten y den erfassten Posendaten xs um T1/2 zeitversetzt „nachlaufen“, da erst nach Erhalt der neuen erfassten Pose (z.B. xs(t9)) die entsprechende Stützstelle (z.B. xd(t7)) und die dort vorgegebene Geschwindigkeit bzw. Zeitableitung (z.B. vd(t7)) ermittelt und zur Approximation durch die Funktion f bzw. (Fein)Interpolation verwendet wird, sofern nicht die erwartete nächste bzw. neue erfasste Pose ausbleibt (z.B. xs(t13)).
-
Bezugszeichenliste
-
- 1
- Roboter(anordnung)
- 2
- Robotersteuerung
- 30
- Erfassungs- und Verarbeitungseinrichtung
- 31, 32
- Kamera
- 4
- Objekt(anordnung)
- F
- Funktion
- T1
- erster Zeitabstand
- T2
- zweiter Zeitabstand
- vd
- Geschwindigkeit
- xs
- erfasste Pose(ndaten)
- xd
- Stützstellen
- y
- modifzierte Posendaten