-
AUSSAGE HINSICHTLICH STAATLICH GEFÖRDERTER FORSCHUNG ODER ENTWICKLUNG
-
Diese Erfindung wurde mit Regierungsunterstützung unter dem NASA Space Act Agreement mit der Nummer SAA-AT-07-003 durchgeführt. Die hier beschriebene Erfindung kann von der oder für die US-Regierung zu Zwecken der US-Regierung (d. h. nicht kommerziellen Zwecken) hergestellt und verwendet werden, ohne dass dafür oder darauf Gebühren zu entrichten sind.
-
TECHNISCHES GEBIET
-
Die vorliegende Offenbarung betrifft die Steuerung eines seriellen Roboters, der zum Ergreifen eines dreidimensionalen Objekts in der Lage ist.
-
HINTERGRUND
-
Ein serieller Roboter enthält eine Reihe von Gliedern, die durch ein oder mehrere Gelenke miteinander verbunden sind. Jedes Gelenk stellt mindestens eine unabhängige Steuervariable, d. h. einen Freiheitsgrad, dar. Greiforgane sind die speziellen Glieder, die verwendet werden, um eine Arbeitsaufgabe auszuführen, etwa das Ergreifen eines dreidimensionalen Objekts. Eine präzise Steuerung der verschiedenen Greiforgane, die bei der Ausführung eines speziellen Greifmanövers verwendet werden, kann daher zur Durchführung einer benötigten Aufgabe mit einem erforderlichen Geschicklichkeitsniveau beitragen.
-
Geschickte serielle Roboter können dort verwendet werden, wo eine direkte Interaktion mit Vorrichtungen oder Systemen benötigt wird, die speziell zur menschlichen Verwendung konstruiert sind, zum Beispiel Arbeitswerkzeuge oder Instrumente, die nur mit menschenähnlichen Geschicklichkeitsniveaus effektiv betätigt werden können. Die Verwendung eines geschickten seriellen Roboters kann auch dort bevorzugt sein, wo eine direkte Interaktion mit menschlichen Bedienern benötigt wird. Derartige Roboter können eine Roboterhand mit einem oder mehreren seriellen Robotern in der Form eines oder mehrerer gelenkiger Finger umfassen.
-
Die Druckschrift
DE 10 2010 018 440 A1 offenbart ein hierarchisches Robotersteuerungssystem mit primären und sekundären Steuerungsaufgaben zur Steuerung von Manipulatoren, um ein Objekt zu ergreifen. Die primäre Steuerungsaufgabe ist auf Objektebene definiert und befiehlt nur ausgewählte Freiheitsgrade für das Objekt, wodurch die Steuerung vereinfacht wird.
-
In der Druckschrift
US 2009/0 306 825 A1 ist ein Manipulationssystem und -verfahren offenbart, bei denen ein Objekt mit mindestens einer Eigenschaft detektiert wird und die mindestens eine Eigenschaft mit Hilfe einer Rechenvorrichtung detektiert wird. Beruhend auf der Eigenschaft wird ein Robotermanipulationsalgorithmus bestimmt, der Anweisungen definiert, die ermöglichen, dass ein Roboter das Objekt manipuliert.
-
Die Druckschrift
US 2008/0 114 491 A1 offenbart eine Roboterhand, die die Weise ändern kann, in der sie ein Objekt hält, wobei eine von mehreren Fingern auf das Objekt aufgebrachte Kraft ohne Verwendung eines weiteren Fingers verstellt wird. Dabei wird eine stabile Greifbedingung eingehalten, die besagt, dass die Summe aller Kräfte und Momente, die von den Fingern auf das Objekt aufgebracht werden, null wird.
-
In der Druckschrift
US 2007/0 219 668 A1 ist ein Handsteuerungssystem offenbart, um ein Objekt mit beliebiger Gestalt genau zu ergreifen. Dabei werden Position und Haltung einer Handfläche einer Roboterhand so gesteuert, dass sich ein Objektreferenzpunkt und ein Handreferenzpunkt annähern, und Finger werden so gesteuert, dass sich deren Biegeposition allmählich ändert, um das Objekt zu ergreifen.
-
Die Druckschrift
JP 2006-026 875 A offenbart eine Griffsteuerungsvorrichtung für eine Roboterhand, die das Risiko des Fallenlassens eines Objekts oder des Beschädigens eines Objekts durch einen Finger verringert, indem sie die Gestalt des zu ergreifenden Objekts durch eine Bilderkennungsvorrichtung erkennt und eine Griffpose beruhend auf der Gestalt des zu ergreifenden Objekts berechnet. Für Fingergelenke der Roboterhand werden Gelenkzielwinkel so berechnet, dass sich Kontaktpunkte an das zu ergreifende Objekt annähern.
-
In der Druckschrift
JP 2005-007 486 A ist eine Griffsteuerungsvorrichtung einer Roboterhand offenbart, die Koordinaten eines Kontaktzielpunkts an einem Objekt über eine Bilderkennungseinheit und einen senkrechten Vektor in diesem Punkt bestimmt. Eine Steuerungseinheit der Roboterhand bestimmt einen Gelenkzielwinkel, bei dem Abstände zwischen Fingerspitzen der Roboterhand und den Kontaktzielpunkten null werden und entsprechende senkrechte Vektoren auf die Fingerspitzen und die Kontaktzielpunkte übereinstimmen und bewegt die Finger der Roboterhand zu diesen Winkeln.
-
Die Aufgabe der Erfindung besteht darin, geeignete Griffkontakte von Roboterfingern oder anderen seriellen Robotern mit einem dreidimensionalen Objekt ohne manuelles Teachen von Griffpositionen zu bestimmen.
-
Diese Aufgabe wird durch die Gegenstände der unabhängigen Ansprüche gelöst.
-
ZUSAMMENFASSUNG
-
Das hier offenbarte Steuersystem kann verwendet werden, um die für einen seriellen Roboter, z. B. einen Roboterfinger, benötigten Griffkontaktinformationen schnell zu berechnen. Herkömmlicherweise erfordert die Berechnung eines Griffkontakts mit einem Objekt eine Berechnung in einem Konfigurationsraum mit vielen Dimensionen, mit typischerweise zehn oder mehr Freiheitsgraden (DOF). Als Folge wird in der tatsächlichen Praxis ein serieller Roboter, etwa eine Roboterhand, oft von einem Bediener manuell ”geteacht”, damit er ein spezielles 3D-Objekt ergreift. Das heißt, dass der Bediener die Gelenke und Glieder des seriellen Roboters mit Bezug auf das Objekt physikalisch positioniert, um eine spezielle Griffpose zu schaffen.
-
Der vorliegende Ansatz beseitigt ein derartiges manuelles Teachen einer Robotergriffposition. Stattdessen umfasst das hier offenbarte Verfahren, dass die verschiedenen Kontakte mit dem 3D-Objekt unter Verwendung eines Satzes analytischer Gleichungen und vorbestimmter kinematischer und Objektpositionsdaten mit Hilfe eines Controllers berechnet werden. Wenn bei einer beispielhaften Rotoberhand mehr als ein Roboterfinger verwendet wird, kann der Controller alle benötigten Kontaktpunkte und Gelenkwinkel für alle Finger auf zu dem Finger parallelen Ebenen gleichzeitig berechnen. Das heißt, dass, wenn aufgrund einer komplexen oder nicht einheitlichen Oberflächenkurvatur des Objekts Kontaktverschiebungen auftreten können, die Verschiebungen durch ein Berechnen von Kontaktinformationen an mehreren zu den Fingern parallelen Ebenen wie hier offengelegt berechnet werden können und dann der optimale Lösungssatz gewählt wird.
-
Die vorliegende schnelle Griffkontaktberechnung erfordert keine umfassende Suche nach Robotergriffgelenkwinkeln oder die Verwendung einer zuvor gefüllten Griffdatenbank von bekannten Objekten. Zudem wird der vorliegende Ansatz kinematische Beschränkungen der Roboterhand automatisch in die analytischen Gleichungen einbauen, um geeignete Griffkontakte für bekannte Objekte zu finden.
-
Speziell wird hier ein System offenbart, das einen seriellen Roboter und einen Controller umfasst. Der serielle Roboter weist ein Paar Glieder auf, die durch ein Gelenk miteinander verbunden sind. Der serielle Roboter ist ausgestaltet, um ein dreidimensionales Objekt (3D-Objekt) in Ansprechen auf eine befohlene Griffpose zu ergreifen. Der Controller steht in elektrischer Verbindung mit dem seriellen Roboter und ist ausgestaltet, um einen Satz von Eingabeinformationen zu empfangen. Die Eingabeinformationen umfassen die befohlene Griffpose, einen ersten Satz von Informationen, der die Kinematiken des seriellen Roboters beschreibt, und einen zweiten Satz von Informationen, der die Position im 3D-Raum des durch den seriellen Roboter zu ergreifenden Objekts beschreibt. Der Controller berechnet in einer zweidimensionalen Ebene (2D-Ebene) einen Satz von Kontaktpunkten zwischen dem seriellen Roboter und einer Oberfläche des 3D-Objekts, der benötigt wird, damit der serielle Roboter die befohlene Griffpose erreicht. Der Controller berechnet außerdem einen benötigten Gelenkwinkel in der 2D-Ebene zwischen dem Paar von Gliedern unter Verwendung des Satzes von Kontaktpunkten und führt eine Steueraktion mit Bezug auf die Bewegung des seriellen Roboters unter Verwendung des benötigten Gelenkwinkels aus.
-
Es wird auch ein Verfahren offenbart. Das Verfahren umfasst, dass über einen Controller ein Satz von Eingabeinformationen empfangen wird, der eine befohlene Griffpose für einen seriellen Roboter, einen ersten Satz von Informationen, der die Kinematiken des seriellen Roboters beschreibt, und einen zweiten Satz von Informationen, der die Position im dreidimensionalen Raum (3D-Raum) eines von dem seriellen Roboter in der befohlenen Griffpose zu ergreifenden 3D-Objekts beschreibt, umfasst. Das Verfahren umfasst, dass eine Bewegung des seriellen Roboters in zwei orthogonale Bewegungen zerlegt wird, die eine erste Bewegung in einer zweidimensionalen Ebene (2D-Ebene) und eine zweite Bewegung, die über der 2D-Ebene orientiert ist, umfasst, und dass ein Satz von Kontaktpunkten zwischen dem seriellen Roboter und einer Oberfläche des 3D-Objekts im 2D-Raum berechnet wird, der benötigt wird, damit der serielle Roboter die befohlene Griffpose erreicht. Das Verfahren umfasst außerdem, dass ein benötigter Gelenkwinkel zwischen einem Paar von Gliedern des seriellen Roboters unter Verwendung des Satzes von Kontaktpunkten berechnet wird, und dass dann eine Steuerungsmaßnahme mit Bezug auf die Bewegung des seriellen Roboters unter Verwendung des benötigten Gelenkwinkels ausgeführt wird.
-
Die vorstehenden Merkmale und Vorteile und andere Merkmale und Vorteile der vorstehenden Erfindung ergeben sich leicht aus der folgenden genauen Beschreibung der besten Arten, um die Erfindung auszuführen, wenn sie in Verbindung mit den beiliegenden Zeichnungen gelesen wird.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
1 ist eine Darstellung in einer schematischen perspektivischen Ansicht eines beispielhaften Robotersystems, das serielle Roboter in der Form von Roboterfingern aufweist.
-
2 ist eine Darstellung in einer schematischen perspektivischen Ansicht eines beispielhaften Roboterfingers mit drei Gelenken und drei Fingersegmenten, der verwendet werden kann, um ein Objekt als Teil einer Arbeitsaufgabe zu ergreifen.
-
3 ist eine graphische Aufzeichnung auf den X- und Z-Achsen (Nicken und Gieren), d. h. in einem zweidimensionalen Raum (2D-Raum), der Bewegung innerhalb einer gemeinsamen Ebene der verschiedenen Segmente des in 2 gezeigten beispielhaften Fingers.
-
4 ist eine schematische Darstellung einer Roboterhand, die ein Objekt mit einer Oberflächenkurvatur ergreift.
-
5 ist eine graphische Aufzeichnung auf den X- und Z-Achsen (Nicken und Gieren), d. h. im 2D-Raum, von berechneten Griffkontakten der verschiedenen Segmente des in 2 gezeigten beispielhaften Fingers mit einem beispielhaften Objekt.
-
6 ist ein Flussdiagramm, das ein beispielhaftes Verfahren zum Berechnen von Griffkontaktinformationen für einen seriellen Roboter beschreibt.
-
BESCHREIBUNG
-
Mit Bezug auf die Zeichnungen, in denen gleiche Bezugszeichen in den verschiedenen Ansichten gleiche oder ähnliche Komponenten bezeichnen, und mit 1 beginnend, enthält ein Robotersystem 10 einen geschickten Roboter 11 und einen Controller 12. Der Roboter 11 von 1 enthält mehrere Roboterfinger 14. Jeder der Finger 14 bildet einen beispielhaften seriellen Roboter des Typs, der wie hier offenbart gesteuert wird. Daher wird der Begriff ”Finger” hier synonym als ein Beispiel für den Begriff ”serieller Roboter” verwendet, obwohl der Fachmann erkennen wird, dass andere serielle Roboterkonfigurationen ebenfalls möglich sind. Serielle Roboter eines beliebigen Typs enthalten ein oder mehrere Gelenke, die ein seriell angeordnetes Paar von Segmenten oder Gliedern verbinden. Bei dem Beispiel des vorliegenden Fingers 14 kann jedes der gekoppelten Segmente ein anderes Fingerglied des Fingers 14 ausbilden.
-
Der vorliegende Controller 12 ist ausgestaltet, um einen Satz von Eingabeinformationen 25 zu empfangen. Die Eingabeinformationen stellen zumindest kinematische und Positionsinformationen bereit, wie nachstehend erläutert wird. Der Controller 12 berechnet auf schnelle Weise einen oder mehrere benötigte Sätze von Kontaktpunkten mit jedem Finger 14. Der Controller 12 leitet außerdem zum Ergreifen eines dreidimensionalen Objekts (3D-Objekts) 30 benötigte Sätze von Gelenkwinkeln unter Verwendung der Kontaktpunkte für diesen speziellen Finger 14 her. Der Controller 12 ist ferner ausgestaltet, um eine Steuerungsmaßnahme mit Bezug auf eine Bewegung des Fingers 14 unter Verwendung der Sätze von Gelenkwinkeln auszuführen, was umfasst, dass die Sätze von Gelenkwinkeln über einen konkreten/nicht vorübergehenden Speicher 90 aufgezeichnet werden. Gelenkwinkel können auf parallelen Ebenen jedes Fingers 14 bestimmt werden. Als Folge kann der Controller 12 ausgestaltet sein, um den optimalen Satz von Gelenkwinkeln zum Ergreifen des Objekts 30 zu wählen.
-
Das durch den Roboter 11 zu ergreifende 3D-Objekt 30 kann beispielsweise ein zylindrisches Werkzeug oder eine andere Vorrichtung mit einer gebogenen Oberfläche sein, welche eine oder mehrere der Finger 14 kontaktiert, wenn das Objekt 30 ergriffen wird. Der Satz von Gelenkwinkeln kann durch den Controller 12 aufgezeichnet und anschließend zur Bewegungssteuerung des Roboters 11 verwendet werden, um sicherzustellen, dass die verschiedenen Gelenke nach Bedarf bewegt werden, um die berechneten Kontaktpunkte herzustellen.
-
Bei einer möglichen Ausführungsform kann der Roboter 11 mit einem allgemein menschlichen Erscheinungsbild wie in 1 gezeigt ausgestaltet sein und mit einem Geschicklichkeitsniveau versehen sein, das notwendig ist, um eine Arbeitsaufgabe zu erfüllen, wie etwa das Ergreifen des 3D-Objekts 30. Die Finger 14 werden vom Controller 12 über einen Satz von Steuersignalen (Pfeil 55) direkt gesteuert, wenn der Roboter 11 auf das 3D-Objekt 30 einwirkt.
-
Der Roboter 11 kann so programmiert sein, dass er automatisierte Aufgaben mit vielen Freiheitsgraden (DOF) ausführt, und dass er andere integrierte Systemkomponenten steuert, z. B. beliebige notwendige Klemmvorrichtungen, Beleuchtung, Relais usw. Gemäß einer möglichen Ausführungsform kann der Roboter 11 eine Vielzahl von unabhängig und voneinander abhängig bewegbaren Robotergelenken aufweisen, von denen einige sich überschneidende Bewegungsbereiche aufweisen. Zusätzlich zu den Gelenken der Finger 14, welche die verschiedenen Segnente oder Fingerglieder derselben trennen und bewegen, können die Gelenke des Roboters 11 Schultern 13, Ellenbogen 15, Handgelenke 17, einen Nacken 26 und eine Taille 20 zum Drehen oder Biegen eines Torsos 18 enthalten.
-
Bei einer möglichen Ausführungsform kann der Roboter 11 aus einem einzigen Finger 14 ausgebildet sein. Bei anderen Ausführungsformen kann der Roboter 11 mehrere Finger 14 und/oder andere Komponenten, etwa eine Roboterhand 24, einen Kopf 16, den Torso 18, die Taille 20 und/oder Arme 22 enthalten, wobei die verschiedenen Gelenke innerhalb dieser oder zwischen diesen Komponenten angeordnet sind. Der Roboter 11 kann außerdem eine für die Aufgabe geeignete Halterung oder Basis (nicht gezeigt) enthalten, wie etwa Beine, Laufflächen oder eine andere bewegliche oder feste Basis in Abhängigkeit von der speziellen Anwendung oder der beabsichtigten Verwendung des Roboters. Eine Stromversorgung 28 kann einstückig am Roboter 11 montiert sein, z. B. ein wiederaufladbarer Batteriestapel, der auf dem Rücken eines Torsos 18 getragen oder mitgeführt wird, oder eine andere geeignete Energieversorgung, oder die abgesetzt durch ein Spannkabel verbunden sein kann, um genügend elektrische Energie für die verschiedenen Gelenke zur Bewegung derselben bereitzustellen.
-
Immer noch mit Bezug auf 1 kann jedes Robotergelenk einen oder mehrere Freiheitsgrade aufweisen. Jedes Robotergelenk enthält ein oder mehrere Stellglieder und wird durch diese intern angetrieben, beispielsweise Gelenkmotoren, lineare Stellglieder, rotatorische Stellglieder und dergleichen, welche auf eine (nicht gezeigte) Sehne einwirken können, um schließlich den Roboter 11 mit den benötigten Freiheitsgraden zu bewegen und zu positionieren. Zum Beispiel können bestimmte nachgiebige Gelenke wie etwa die Schultern 13 und die Ellenbogen 15 mindestens zwei Freiheitsgrade in der Form von Nicken und Rollen aufweisen. Auf ähnliche Weise kann der Nacken 26 mindestens drei Freiheitsgrade aufweisen, während die Taille 20 bzw. die Handgelenke 17 einen oder mehrere Freiheitsgrade aufweisen können. Die Hand 24 kann bei einer Ausführungsform mit fünf Fingern 14 15 Freiheitsgrade aufweisen. In Abhängigkeit von der Komplexität der Aufgabe kann sich der Roboter 11 als Ganzes mit mehr als 42 Freiheitsgraden bewegen.
-
Der Controller 12 von 1 kann als ein Server oder eine Trägermaschinen ausgeführt sein, d. h. ein oder mehrere digitale Computer oder Datenverarbeitungseinrichtungen, die jeweils eine oder mehrere zentrale Verarbeitungseinheiten (CPU) 80 und Speicher 90 aufweisen. Ein Algorithmus 100 kann die speziellen Anweisungen verkörpern, die vom Controller 12 beim Berechnen und Ausführen der notwendigen Griffkontakte ausgeführt werden, wie hier offengelegt ist. Der Server oder die Trägermaschine, der bzw. die den Controller 12 verkörpert, empfängt den Satz von Eingabeinformationen (Pfeil 25).
-
Der Satz von Eingabeinformationen (Pfeil 25) enthält die benötigte Griffpose, einen ersten Satz von Informationen, der die Kinematiken des seriellen Roboters beschreibt, und einen zweiten Satz von Informationen, der die Position des Objekts 30 im 3D-Raum beschreibt. Der Controller 12 kann dann in einer 2D-Ebene oder in mehreren parallelen 2D-Ebenen für jeden Finger 14, der bei einem Greifmanöver verwendet wird, einen Satz von Kontaktpunkten zwischen dem seriellen Roboter und einer Oberfläche des Objekts 30 berechnen, der benötigt wird, um die im Eingabesatz (Pfeil 25) befohlene Griffpose zu erreichen. Wie vorstehend angemerkt, kann der Controller 12 außerdem einen oder mehrere benötigte Gelenkwinkel in der bzw. den 2D-Ebenen zwischen dem Paar von Segmenten unter Verwendung des Satzes von Kontaktpunkten berechnen und er kann anschließend eine Steuerungsmaßnahme mit Bezug auf die Bewegung des seriellen Roboters unter Verwendung des bzw. der benötigten Gelenkwinkel ausführen.
-
Obwohl die verschiedenen Elemente des Controllers 12 der Einfachheit und Klarheit halber als eine einzige Vorrichtung gezeigt sind, können sie über so viele verschiedene Hardware- und Softwarekomponenten hinweg verteilt sein, wie notwendig sind, um die Greifaktion des Roboters 11 optimal zu steuern. Der Controller 12 kann genügend Festwertspeicher (ROM), einen digitalen Signalprozessor (DSP), einen Speicher mit wahlfreiem Zugriff (RAM), einen elektrisch löschbaren programmierbaren Festwertspeicher (EEPROM), einen Hochgeschwindigkeits-Taktgeber, Analog/Digital-Schaltungen (A/D-Schaltungen), Digital/Analog-Schaltungen (D/A-Schaltungen) und beliebige benötigte Eingabe/Ausgabe-Schaltungen und Vorrichtungen (E/A) sowie Signalaufbereitungs- und Pufferelektronik enthalten.
-
Mit Bezug auf 2 kann ein beispielhafter Finger 14 einer Roboterhand 24 so ausgestaltet sein, dass er in Struktur und Funktion einem menschlichen Finger in etwa entspricht. Ein gegenüberstellbarer Daumen 140 wird zu Steuerungszwecken hier wie ein Finger 14 behandelt, jedoch mit einem Gelenk weniger. Jeder Finger 14 kann eine Basis 32 enthalten, die mit der Hand 24 wirksam verbunden ist. Der Finger enthält außerdem mehrere starre Segmente oder Glieder, die hier als ein distales Glied 40, ein mediales Glied 42 und ein proximales Glied 44 gezeigt sind. In Abhängigkeit von der bevorzugten Konstruktion können mehr oder weniger Glieder verwendet werden.
-
Das distale Glied 40 ist mit dem medialen Glied 42 derart verbunden, dass das mediale Glied 42 mit Bezug auf das distale Glied 40 um eine Gelenkachse 23 herum selektiv drehbar ist. Das mediale Glied 42 dreht sich mit Bezug auf das proximale Glied 44 um eine Gelenkachse 123. Das proximale Glied 44 dreht sich mit Bezug auf die Basis 32 um eine Gelenkachse 223. Die Gelenkachsen 23, 123 und 223 verlaufen mit Bezug zueinander parallel. Außerdem kann sich das proximale Glied 44 mit Bezug auf die Achse 223 über eine Gelenkachse 27 orthogonal bewegen, um zu ermöglichen, dass sich das proximale Glied 44 und beliebige damit verbundene Glieder zu einer anderen Orientierung in einer Ebene drehen, d. h. der Gierebene. Wie hier nachstehend verwendet, wird die gemeinsame Ebene, innerhalb welcher sich alle Glieder 40, 42 und 44 eines einzelnen Fingers 14 bei Zusammenrollen des Fingers 14 in eine gewünschte Position bewegen, als die Einrollebene bezeichnet, welche eine zweidimensionale Ebene (2D-Ebene) definiert.
-
Mit Bezug auf 3 wird eine 2D-Einrollebene 60 verwendet, um den Bewegungsbereich eines seriellen Roboters, wie etwa des beispielhaften Fingers 14 von 2, d. h. eines seriellen Roboters mit zwei oder mehr Gliedern, über die Gierachse (Z) und die Nickachse (X) graphisch aufzuzeichnen. Die verschiedenen Glieder 40, 42 und 44 können sich durch die 2D-Ebene 60 drehen, indem sie sich mit Bezug auf die Achsen 23, 123 bzw. 223 drehen, wie auch in 2 gezeigt ist. Die Variable a stellt die Länge des angegebenen Glieds dar, wobei aP der Länge des proximalen Glieds 44 und einem Ursprung O entspricht, aM der Länge des medialen Glieds 42 entspricht und aD der Länge des distalen Glieds 40 entspricht. Die in 3 gezeigten speziellen Winkelwerte und Bewegungsbereiche veranschaulichen nur eine mögliche Ausführungsform und sind daher nicht als Beschränkung gedacht.
-
Die Bewegungsbereiche der verschiedenen Glieder 40, 42 und 44 können sich innerhalb der 2D-Einrollebene 60 in einem gewissen Ausmaß überschneiden. Jeweilige proximale, mediale und distale Gelenkwinkel (θP, θM, θD) sind wie gezeigt mit Bezug auf ihr Vorgängerglied definiert. Die 2D-Einrollebene 60 ist somit über die bekannten Kinematiken des speziellen Fingers 14 definiert, welche zum Beispiel über den Satz von Eingabeinformationen (Pfeil 25) von 1 modelliert sind, oder eines anderen seriellen Roboters, der beim Ergreifen des Objekts 30, das in der gleichen Figur gezeigt ist, gesteuert wird.
-
Mit Bezug auf 4 ist ein beispielhaftes Objekt 130 gezeigt, das von einer Roboterhand 24 ergriffen wird. Ein Kontakt mit dem Objekt 130 wird durch die Finger 14 und einen Daumen 140 hergestellt, der hier wie ein weiterer Finger 14 behandelt wird. Da jeder Finger 14 eine entsprechende Breite aufweist, kann jeder der Finger 14 in mehrere parallele Ebenen unterteilt werden. Dies ist in 4 durch die parallelen Einrollebenen 60, 160 und 260 angezeigt. Jeder Finger 14 ist mit ähnlichen parallelen Ebenen gezeigt. Die Ebenen eines gegebenen Fingers 14 sind mit Bezug zueinander für diesen speziellen Finger 14 parallel, und nicht unbedingt mit Bezug auf die anderen Finger 14, wie der Fachmann feststellt.
-
Ein Kontakt mit dem Objekt 130 kann an jeder der parallelen Ebenen 60, 160, 260 eines Fingers 14 hergestellt werden. Wenn daher die Kurvatur des Objekts 130 nicht einheitlich ist (siehe 5), können sich die verschiedenen Kontakte entlang der Oberfläche des Objekts 130 in Abhängigkeit davon verschieben, wie das Objekt 130 optimal ergriffen werden kann. Wenn mit anderen Worten ein Objekt 130 mit einer nicht einheitlichen Oberflächenkurvatur gegeben ist, gibt es mehr als eine Weise zum Ergreifen des Objekts 130. Einige Griffe können optimaler als andere sein. Der Controller 12 von 1 kann dies daher berücksichtigen, wie nachstehend mit Bezug auf 5 und 6 erwähnt wird.
-
Zur Vereinfachung des Steuerungsproblems ist eine Schnittkurve mit dem Objekt
130 und einem Finger
14 eine Kurve auf der orientierten 2D-Einrollebene
60 (siehe
3). Das Steuerungsproblem ist daher ein beispielhaftes System mit drei Freiheitsgraden, zum Beispiel ein Finger
14 mit drei Gelenken, wie bei dem beispielhaften Finger
14 von
2 gezeigt ist, und kann einfach so formuliert werden, dass ein Satz von Gelenkwinkeln gesucht wird, so dass der Finger
14 mit dem Objekt
130 einen Kontakt in einer befohlenen Griffpose herstellen wird. Dieser Satz von Gelenkwinkeln kann wie folgt dargestellt werden:
-
Die Tieferstellungen P, M und D bezeichnen wieder die proximalen, medialen und distalen Gelenke, und θ bezeichnet den Gelenkwinkel für dieses spezielle Gelenk.
-
Mit Bezug auf 5 kann die vorstehend erwähnte 2D-Objektschnittkurve als eine Kurve 70 dargestellt sein. Der Umfang 82 stellt die Kurvatur der Außenoberfläche eines Objekts, z. B. des Objekts 30 von 1, des Objekts 130 von 4 oder eines beliebigen anderen Objekts dar, das von einem seriellen Roboter ergriffen wird. Der in 1 gezeigte Controller 12 kann für einen gegebenen Punkt (xi, zi) auf der Kurve 70 dessen Kurventangente, d. h. θi(xi, zi) bestimmen. Der Controller 12 stellt fest, dass der Punkt (xi, zi) ein Kontaktpunkt mit dem proximalen Glied 44 ist, wenn: θi(xi, zi) gleich θP ist;
0 ≤ xi ≤ aPcosθP + ΔdsinθP; und
0 ≤ zi ≤ aPsinθP + ΔdcosθP.
-
Wenn der Kontaktpunkt mit dem proximalen Glied 44 und dem Objekt 30 aus dem vorherigen Schritt bekannt ist, wobei Δd die Fingerdicke ist, kann der Gelenkwinkel θP durch den Controller 12 leicht berechnet werden. Danach kann der Controller 12 mit dem Auflösen nach dem medialen Glied 42 fortfahren. Der Punkt (xi, zi) ist der Kontaktpunkt mit dem medialen Glied 42, wenn: θi(xi, zi) gleich θP + θM ist;
0 ≤ xi – aPcosθP ≤ aPcos(θP + θM) + Δdsin(θP + θM); und
0 ≤ zi – aPsinθP ≤ aMsin(θP + θM) + Δdcos(θP + θM).
-
Wenn der Kontaktpunkt mit dem medialen Glied 42 aus dem vorherigen Schritt bekannt ist, wird als Nächstes der Gelenkwinkel θM von dem Controller 12 berechnet. Danach kann der Controller 12 mit dem Auflösen nach dem Winkel des distalen Gelenks fortfahren. Der Punkt (xi, zi) ist der Kontaktpunkt mit dem distalen Glied 40, wenn: θi(xi, zi) gleich θP + θM + θD ist;
0 ≤ xi – aPcosθP – aMcos(θP + θM) ≤ aDcos(θP + θM + θD) + Δdsin(θP + θM + θD); und
0 ≤ zi – aPsinθP – aMsin(θP + θM) ≤ aDSin(θP + θM + θD) + Δdcos(θP + θM + θD).
-
Mehrere Sätze der vorstehenden Formeln können gelöst werden, wenn das Objekt 30 eine komplexe/nicht einheitliche Kurvatur aufweist, wie in 5 durch den Innenumfang 182 angezeigt ist. In diesem Falle wird es mehrere Objektschnittkurven geben. Wie in 4 gezeigt ist, heißt das, dass jeder Finger 14 in mehrere parallele Ebenen unterteilt sein kann. Der optimale Kontaktpunkt mit einem gegebenen Finger 14 kann variieren, wie vorstehend erwähnt wurde, weil ein Objekt 30, das eine nicht einheitliche Oberflächenkurvatur aufweist, in einer beliebigen Anzahl von verschiedenen Weisen ergriffen werden kann.
-
Mit Bezug auf 6 ist ein Flussdiagramm gezeigt, das eine beispielhafte Ausführungsform des vorliegenden Verfahrens 100 beschreibt. Beliebige Prozessanweisungen, die zum Ausführen der nachstehend beschriebenen Schritte benötigt werden, können im Speicher 90 (siehe 1) gespeichert sein und von zugehörigen Hardware- und Softwarekomponenten des Controllers 12 ausgeführt werden, um die gewünschte Funktionalität bereitzustellen.
-
Beginnend bei Schritt 102 empfängt der Controller 12 von 1 die befohlene Griffpose und den Satz von Eingabeinformationen (Pfeil 25). Schritt 102 kann umfasst, dass ein erster Satz von Informationen als kinematische Informationen empfangen wird, der beispielsweise die Länge, den Bewegungsbereich und die Anordnung aller Glieder beschreibt, die in einem Finger 14 oder einem anderen seriellen Roboter verwendet werden. Ein zweiter Satz von Informationen kann den Ort im 3D-Raum des Objekts 30 und Informationen enthalten, welche die bekannte Oberflächenkurvatur dieses Objekts 30 beschreiben, z. B. ein Konturenmodell. Das Verfahren 100 geht dann zu Schritt 104 weiter.
-
Bei Schritt 104 kann der Controller 12 von 1 gleichzeitig die Kontaktpunkte und Gelenkwinkel für parallele Ebenen eines jeden Fingers 14 berechnen, d. h. als alternative Kontaktpunkte, z. B., um die komplexe Kurvatur des Umfangs 182 (siehe 5) optimal zu berücksichtigen. Der Controller 12 berechnet Sätze von Kontaktpunkten zwischen dem Finger 14 und einer Oberfläche des Objekts 30, die benötigt werden, damit der Finger 14 die befohlene Griffpose erreicht, d. h. die Pose, die über die Eingabeinformationen (Pfeil 25) übermittelt wurde. Dies wird in der 2D-Einrollebene unter Verwendung der möglichen Bewegung in dieser Ebene berechnet, die durch die Kinematiken von Schritt 102 bestimmt ist. Das Verfahren 100 geht zu Schritt 106 weiter, nachdem der Satz von Kontaktpunkten berechnet und im Speicher 90 aufgezeichnet wurde.
-
Bei Schritt 106 kann der Controller 12 von 1 die Sätze von Kontaktpunkten auf den parallelen Ebenen von Schritt 104 verwenden, um für jede der 2D-Ebenen den benötigten Gelenkwinkel [engl.: joint] zwischen dem Paar von Segmenten zu berechnen. Da die Orientierung der X- und Z-Achsen von 3 bekannt ist, kann der Controller 12 den Winkel zwischen Segmenten leicht bestimmen, wenn die Koordinaten der berechneten Kontaktpunkte gegeben sind.
-
Bei Schritt 108 kann der Controller 12 bestimmen, welcher dieser Sätze von Gelenkwinkeln relativ zu den anderen Sätzen von Gelenkwinkeln optimal ist. Die Kriterien zur Bestimmung, ob ein Satz optimal ist, können kalibriert sein und können derartige Faktoren wie den Kontakt, der die effizienteste Bewegung relativ zum nächsten auszuführenden Schritt in einer Arbeitssequenz bereitstellt, den geringsten Betrag an Betätigungskraft oder Bewegungsbereich, den stetigsten Griff auf das Objekt 30 usw. umfassen. Nachdem ein optimaler Satz bestimmt wurde, geht das Verfahren 100 zu Schritt 110 weiter.
-
Bei Schritt 110 kann eine Steuerungsmaßnahme von dem Controller 12 von 1 mit Bezug auf die Bewegung des Fingers 14 unter Verwendung des bzw. der benötigten Gelenkwinkel, der bzw. die durch die Ausführung der vorherigen Schritte bestimmt wurde(n), ausgeführt werden. Als Beispiel kann Schritt 110 umfassen, dass ein oder mehrere Gelenkmotoren aktiviert werden, um eine Spannung auf eine oder mehrere Sehnen (nicht gezeigt) aufzubringen, wodurch der Finger 14 in die benötigte Position zur Herstellung der berechneten Kontaktpunkte und Gelenkwinkel bewegt wird. Wenn ein separater Controller verwendet wird, um die benötigten Bewegungsbefehle zu berechnen und an den Finger 14 auszugeben, kann Schritt 110 umfassen, dass die erforderliche Weitergabe eines Befehls an diesen zusätzlichen Controller aufgezeichnet wird, der anzeigt, dass die erforderlichen Kontaktpunkte und Gelenkwinkel berechnet worden sind, zum Beispiel ein Merker oder ein Code.
-
Obwohl die besten Arten zum Ausführen der Erfindung im Detail beschrieben wurden, werden Fachleute auf dem Gebiet, das diese Erfindung betrifft, verschiedene alternative Konstruktionen und Ausführungsformen zum Umsetzen der Erfindung in die Praxis im Schutzumfang der beigefügten Ansprüche erkennen.