DE102010045529B4 - Interaktives Robotersteuerungssystem und Verwendungsverfahren - Google Patents

Interaktives Robotersteuerungssystem und Verwendungsverfahren Download PDF

Info

Publication number
DE102010045529B4
DE102010045529B4 DE102010045529.6A DE102010045529A DE102010045529B4 DE 102010045529 B4 DE102010045529 B4 DE 102010045529B4 DE 102010045529 A DE102010045529 A DE 102010045529A DE 102010045529 B4 DE102010045529 B4 DE 102010045529B4
Authority
DE
Germany
Prior art keywords
robot
control
controller
data
user interface
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE102010045529.6A
Other languages
English (en)
Other versions
DE102010045529A1 (de
Inventor
Adam M. Sanders
Matthew J. Reiland
Muhammad E. Abdallah
Douglas Martin Linn
Robert Platt
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
GM Global Technology Operations LLC
National Aeronautics and Space Administration NASA
Original Assignee
GM Global Technology Operations LLC
National Aeronautics and Space Administration NASA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by GM Global Technology Operations LLC, National Aeronautics and Space Administration NASA filed Critical GM Global Technology Operations LLC
Publication of DE102010045529A1 publication Critical patent/DE102010045529A1/de
Application granted granted Critical
Publication of DE102010045529B4 publication Critical patent/DE102010045529B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1661Programme controls characterised by programming, planning systems for manipulators characterised by task planning, object-oriented languages
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/36Nc in input of data, input key till input tape
    • G05B2219/36056Modify program, machining order in real time, during operation, dynamically
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/36Nc in input of data, input key till input tape
    • G05B2219/36425Move manually, touch surface, record position
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39376Hierarchical, learning, recognition and skill level and adaptation servo level
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40099Graphical user interface for robotics, visual robot user interface

Abstract

Robotersystem, das umfasst: einen Roboter (10) mit einer Vielzahl integrierter Systemkomponenten, die eine Vielzahl von Robotergelenken (A, B, C, D, E, F) umfassen, die jeweils unter Verwendung mindestens eines einer Vielzahl von Stellgliedern (38) bewegbar sind, wobei der Roboter (10) eine Vielzahl von Sensoren (32, 34, 36, 40) umfasst, die ausgelegt sind, um Rückkopplungsdaten an einer entsprechenden der integrierten Systemkomponenten zu messen; und einen verteilten Controller (24), der zum Steuern der integrierten Systemkomponenten durch ein Übermitteln von Steuerungsdaten über mehrere Hochgeschwindigkeitskommunikationsnetzwerke (26, 33) ausgelegt ist, wobei der verteilte Controller (24) umfasst: einen Controller (25) zur sequentiellen Steuerung auf Befehlsebene, der zum Übertragen eines Steuerungssignals dient, das eine Ausführung einer automatisierten Aufgabe durch den Roboter (10) befiehlt; mehrere eingebettete Controller (29) auf niedriger Ebene, die jeweils zur direkten Steuerung einer jeweiligen der integrierten Systemkomponenten ausgelegt sind; einen Controller (27) auf Gelenkkoordinationsebene, der zum Koordinieren der Steuerung der integrierten Systemkomponenten in Ansprechen auf das Steuerungssignal ausgelegt ist; eine zentrale Datenbibliothek (CDL) (35), die zur Zentralisierung aller Steuerungsdaten und Rückkopplungsdaten ausgelegt ist; eine Anwenderschnittstelle (22) in elektrischer Kommunikation mit der CDL (35), die ausgelegt ist, um einen Status aller Robotergelenke (A, B, C, D, E, F), Stellglieder (38) und Sensoren (32, 34, 36, 40) unter Verwendung von Informationen aus der CDL (35) graphisch anzuzeigen; wobei der verteilte Controller (24) mit Hilfe der Anwenderschnittstelle (22) eine parametrierte Aktionssequenz anzeigt, die eine Hierarchie von gekoppelten Ereignissen aufweist, und wobei es die Anwenderschnittstelle (22) dem Anwender ermöglicht, die parametrierte Aktionssequenz mit Hilfe der Anwenderschnittstelle (22) zu modifizieren, um die Steuerungsdaten in Echtzeit zu verändern.

Description

  • Diese Erfindung wurde mit Regierungsunterstützung unter dem NASA Space Act Agreement mit der Nummer SAA-AT-07-003 durchgeführt. Die Regierung kann einige Rechte an der Erfindung besitzen.
  • TECHNISCHES GEBIET
  • Die vorliegende Erfindung betrifft eine Bewegungssteuerung eines Roboters und insbesondere ein flexibles und interaktives Programmiergerüst, das mit einem Roboter interagiert und diesen in Echtzeit steuert.
  • HINTERGRUND DER ERFINDUNG
  • Roboter sind automatisierte Einrichtungen, die in der Lage sind, Objekte unter Verwendung einer Reihe mechanischer Glieder zu manipulieren, welche wiederum über Gelenkverbindungen oder durch motor/stellgliedgetriebene Robotergelenke miteinander verbunden sind. Jedes Gelenk in einem typischen Roboter stellt eine unabhängige Steuervariable dar, die auch als ein Freiheitsgrad (DOF) bezeichnet wird. Greiforgane sind die speziellen Glieder, die zum Ausführen einer anstehenden Aufgabe verwendet werden, z. B. zum Ergreifen eines Werkzeugs oder eines Objekts. Eine präzise Steuerung eines Roboters kann daher durch die Ebene der Aufgabenbeschreibung gegliedert sein: eine Steuerung auf Objektebene, d. h. die Fähigkeit zur Steuerung des Verhaltens eines Objekts, das in einem Einzelgriff oder einem zusammenwirkenden Griff eines Roboters gehalten wird, eine Greiforgansteuerung und eine Steuerung auf Gelenkebene. Die verschiedenen Steuerungsebenen arbeiten zusammen, um gemeinsam die benötigte Mobilität, Geschicklichkeit und arbeitsaufgabenbezogene Funktionalität des Roboters zu erreichen.
  • Humanoide Roboter sind insbesondere Roboter, die eine annähernd menschliche Gestalt oder ein annähernd menschliches Erscheinungsbild aufweisen, sei es ein vollständiger Körper, ein Torso und/oder eine Gliedmaße, wobei die strukturelle Komplexität des humanoiden Roboters zu einem großen Teil vom Wesen der Arbeitsaufgabe abhängt, die ausgeführt wird. Die Verwendung humanoider Roboter kann dort bevorzugt sein, wo eine direkte Interaktion mit Einrichtungen oder Systemen erforderlich ist, die speziell für den menschlichen Gebrauch hergestellt sind. Aufgrund des breiten Spektrums von Arbeitsaufgaben, die von einem humanoiden Roboter möglicherweise erwartet werden, kann es sein, dass unterschiedliche Steuermodi gleichzeitig benötigt werden. Zum Beispiel muss eine präzise Steuerung in den verschiedenen oben angegebenen Räumen sowie eine Kontrolle über das angewendete Drehmoment oder die angewendete Kraft, die Bewegung und die verschiedenen Grifftypen angewendet werden.
  • Die Komplexität der Steuerung eines humanoiden oder eines anderen Robotersystems, das eine hohe Anzahl von Freiheitsgraden aufweist, steigt stark an, wenn zusätzliche Freiheitsgrade hinzugefügt werden, und daher kann es für einen Bediener außerordentlich schwierig sein, die unterlegten Steuerungsprozesse vollständig zu verstehen und effizient zu verwenden. Zu den Schwierigkeiten trägt das gegenwärtige Fehlen von kommerziell verfügbaren Programmier- und Steuerungslösungen für eine einsatzbereite Verwendung mit humanoiden Robotern, die eine erhebliche Anzahl von Freiheitsgraden aufweisen, bei. Gleichermaßen fehlen integrierte Steuerungsarchitekturen, die ein flexibles und skalierbares Gerüst bereitstellen, das ermöglicht, dass zusätzliche Technologien und Roboterfähigkeiten leicht in das Robotersystem integriert werden können.
  • US 2006/0 033 462 A1 offenbart ein verteiltes Steuerungssystem zur Steuerung eines Roboters mit einem Controller auf Befehlsebene und mehreren eingebetteten Controllern auf niedriger Ebene, wobei das verteilte Steuerungssystem Sensorinformationen zur internen Behandlung abnormaler Zustände bei einem Steuerabschnitt für abnormale Zustände sammelt.
  • In EP 0 923 011 A2 ist ein modulares Robotersystem offenbart, bei dem die einzelnen Module eingebettete Controller auf niedriger Ebene aufweisen, die von einem zentralen Controller auf Befehlsebene gesteuert werden.
  • DE 11 2006 003 044 T5 offenbart ein vielseitiges Robotersteuermodul zur Steuerung eines autonomen Betriebs eines Kraftfahrzeugs mit einem Controller auf Befehlsebene, einem eingebetteten Controller auf niedriger Ebene und einem Netzwerkanschluss. Bei einer Ausführungsform wird eine Datenbank mit Bild-, Karten- oder Wegpunktdaten verwendet.
  • In US 2004/0 164 697 A1 ist ein verteiltes Steuerungssystem zur Steuerung eines Roboters mit einem Controller auf Befehlsebene und mehreren eingebetteten Controllern auf niedriger Ebene offenbart, bei dem externe Sensoren über nahegelegene eingebettete Controller angeschlossen werden.
  • US 2006/0 214 621 A1 offenbart ein verteiltes Steuerungssystem zur Steuerung eines Roboters mit einem Controller auf Befehlsebene und mehreren eingebetteten Controller auf niedriger Ebene, die Störungsinformationen in einen Speicher des Controllers auf Befehlsebene übertragen.
  • In DE 11 2004 002 219 T5 ist ein Verfahren zum Steuern eines Roboters offenbart, bei dem Steuerbefehle und zugehörige Bilddaten in einer Roboterdatenbank gespeichert werden. Anhand der Bilddaten, die beispielsweise Handstellungen oder Handgesten entsprechen, kann der Roboter anschließend gesteuert werden.
  • Die Aufgabe der Erfindung besteht darin, eine flexible, skalierbare und leicht erweiterbare Steuerungsarchitektur für Roboter sowie ein Steuerungsverfahren bereitzustellen, welche die Steuerung und Programmierung von Robotern erleichtern.
  • Diese Aufgabe wird durch die Gegenstände der unabhängigen Ansprüche gelöst.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Entsprechend wird hier ein Gerüst bereitgestellt, das es einem Bediener oder Anwender ermöglicht, mit einem humanoiden oder einem anderen Typ von Roboter, der mehrere Freiheitsgrade aufweist, z. B. über 42 Freiheitsgrade eines speziellen humanoiden Roboters, wie er hier beschrieben ist, zu interagieren und diesen präzise zu steuern. Im Umfang der Erfindung weist das Gerüst mindestens vier Schlüsselkomponenten auf: ein Echtzeit-Steuerungssystem, das auf einzigartige Weise zu einer unabhängigen Aktion mit Bezug auf den gesteuerten Roboter in der Lage ist, eine konfigurierbare und sich selbst verwaltende Kommunikationsarchitektur, eine Echtzeitsteuerung und -rückkopplung eines Systemstatus zur Anzeige durch eine graphische Anwenderschnittstelle (GUI) und eine interaktive Programmierung.
  • Im weitesten Sinn abstrahiert das Gerüst die Steuerungskomplexität auf niedriger Ebene oder Gelenkebene und es kann in seinem Kern hochkomplexe Steuerungsalgorithmen für die Bewegung, die Kraft, die Impedanz und für andere Systeme aufweisen, so dass ein Anwender des Robotersystems über eine intuitive Schnittstelle, d. h. die GUI, mit dem Roboter auf effiziente Weise arbeiten kann. Es wird auch eine interaktive Systementwicklung bereitgestellt, welche die riesige Menge an Sensor- und Systemrückkopplungsdaten abmildert und diese graphisch darstellt, wodurch eine Steuerung des Roboters durch Menschen optimiert wird. Das Gerüst ist insofern hochgradig flexibel, als es zukünftige technologische Aktualisierungen oder modulare Erweiterungen leicht unterbringen kann.
  • Insbesondere wird ein Robotersystem bereitgestellt, das einen Roboter und einen verteilten Controller enthält. Der Roboter enthält viele Robotergelenke, von denen jedes unter Verwendung mindestens eines Stellglieds bewegbar ist, und er enthält auch Drehmoment-, Positions- und/oder andere Sensoren, die zum Messen von Rückkopplungsdaten an einem zugehörigen Robotergelenk ausgelegt sind. Der Controller ist ausgelegt, um eine Bewegung der Robotergelenke durch ein Weiterleiten von Steuerungsdaten über mehrere Hochgeschwindigkeitskommunikationsnetzwerke zu steuern, und er enthält einen Controller auf Befehlsebene, um ein Steuerungssignal zu übertragen, das ein Ausführen einer automatisierten Aufgabe durch den Roboter befiehlt, mehrere eingebettete Controller auf Gelenkebene, von denen jeder die Bewegung eines jeweiligen der Robotergelenke direkt steuert, und einen Controller auf Gelenkkoordinationsebene, um eine Bewegung der Robotergelenke in Ansprechen auf das Steuerungssignal zu koordinieren. Der Roboter kann eine Vielzahl von Sensoren und Rückkopplungseinrichtungen enthalten, wie etwa Positions-, Sicht-, haptische, Näherungs-, Strom-, Spannungs- und Temperatursensoren, die gemeinsam die benötigten Daten und Informationen über den Zustand des Roboters und seiner Arbeitsumgebung an den Controller liefern. Der Controller verarbeitet diese Informationen als Teil der Gesamtsteuerung des Roboters.
  • Der Controller enthält auch eine zentrale Datenbibliothek (CDL) und eine Anwenderschnittstelle. Wie der Name impliziert, zentralisiert die CDL alle Steuerungs- und Rückkopplungsdaten an einer Stelle. Die Anwenderschnittstelle steht in elektrischer Verbindung mit der CDL und zeigt einen Status aller Robotergelenke, Stellglieder und Sensoren unter Verwendung von Informationen von der CDL an. Über die Anwenderschnittstelle zeigt der verteilte Controller eine parametrierte Aktionssequenz an, die eine priorisierte Hierarchie von gekoppelten Ereignissen aufweist, wie hier beschrieben wird, und die Anwenderschnittstelle ermöglicht es einem Anwender, die Steuerungsdaten in Echtzeit zu modifizieren, d. h. während der Laufzeit und ohne dass es erforderlich ist, dass ein Programmiercode auf Maschinenebene manuell geschrieben und kompiliert wird.
  • Das Robotersystem ist zum Lernen ausgelegt und der verteilte Controller ist ausgelegt, um eine neue parametrierte Aktionssequenz in der CDL zu bauen oder zu dieser hinzuzufügen, indem er eine Reihe von Punkten im kartesischen oder Gelenkraum als eine Reihe von gekoppelten Befehlsblöcken aufzeichnet, z. B. unter Verwendung eines graphischen Ablaufplanalgorithmus, wenn die Robotergelenke manuell und sequentiell durch die Reihe von Punkten bewegt werden. In diese sequentiellen Aktionen können zusätzliche Befehle eingestreut werden, um eine Vielfalt von Aktivitäten auszuführen, etwa ein Aktivieren von Hilfskomponenten, ein Anwenden einer Referenzkraft auf ein Objekt, ein Neustarten des Steuerungssystems oder einen beliebigen anderen Prozess, der für das Robotersystem verfügbar ist.
  • Die vorstehenden Merkmale und Vorteile und andere Merkmale und Vorteile der vorliegenden Erfindung ergeben sich leicht aus der folgenden genauen Beschreibung der besten Modi zum Ausführen der Erfindung, wenn sie in Verbindung mit den beiliegenden Zeichnungen gelesen wird.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • 1 ist eine schematische Veranschaulichung eines Robotersystems, das einen Roboter und ein verteiltes Steuerungssystem mit einer interaktiven Programmierfunktionalität gemäß der vorliegenden Erfindung umfasst;
  • 2 ist ein schematischer Ablaufplan, der einen Informationsfluss in dem in 1 gezeigten verteilten Steuerungssystem beschreibt;
  • 3 ist ein schematischer Ablaufplan, der einen Informationsaustausch zwischen Abschnitten des Robotersystems von 2 beschreibt;
  • 4 ist eine schematische Veranschaulichung einer graphischen Anwenderschnittstelle (GUI), die als Teil des Robotersystems von 1 verwendet werden kann; und
  • 5 ist eine schematische Veranschaulichung einer graphischen Programmiersprache, die mit dem Robotersystem von 1 verwendet werden kann.
  • BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORM
  • Mit Bezug auf die Zeichnungen, in denen gleiche Bezugszeichen in den verschiedenen Ansichten gleiche oder ähnliche Komponenten bezeichnen, zeigt 1 ein Robotersystem mit einem Roboter 10, der hier als ein geschickter Humanoide gezeigt ist und der über ein verteiltes Steuerungssystem oder einen Controller (C) 24 gesteuert wird. Der Roboter 10 ist ausgelegt, um eine oder mehrere automatisierte Aufgaben mit mehreren Freiheitsgraden (DOF) auszuführen, und um andere interaktive Aufgaben auszuführen oder andere integrierte Systemkomponenten zu steuern, z. B. Einspannen, Beleuchten, Relais usw. Gemäß einer Ausführungsform ist der Roboter 10 mit einer Vielzahl von unabhängig und voneinander abhängig bewegbaren Robotergelenken ausgestaltet, etwa mit einem Schultergelenk, dessen Position allgemein durch Pfeil A angezeigt ist, einem Ellenbogengelenk, das allgemein (Pfeil B) ist, einem Handgelenk (Pfeil C), einem Nackengelenk (Pfeil D) und einem Taillengelenk (Pfeil E) sowie den verschiedenen Fingergelenken (Pfeil F), die zwischen den Fingergliedern jedes Roboterfingers 19 positioniert sind, ist aber nicht darauf beschränkt.
  • Jedes Robotergelenk kann einen oder mehrere Freiheitsgrade aufweisen. Zum Beispiel können einige nachgiebige Gelenke, wie etwa das Schultergelenk (Pfeil A) und das Ellenbogengelenk (Pfeil B) mindestens zwei Freiheitsgrade in der Form von Nicken und Rollen aufweisen. Gleichermaßen kann das Nackengelenk (Pfeil D) mindestens drei Freiheitsgrade aufweisen, während die Taille und das Handgelenk (Pfeil E bzw. C) einen oder mehrere Freiheitsgrade aufweisen können. In Abhängigkeit von der Aufgabenkomplexität kann sich der Roboter 10 mit über 42 Freiheitsgraden bewegen. Jedes Robotergelenk enthält ein oder mehrere Stellglieder und wird von diesen intern angetrieben, z. B. Gelenkmotoren, lineare Stellglieder, rotatorische Stellglieder und dergleichen.
  • Der Roboter 10 kann einen Kopf 12, einen Torso 14, eine Taille 15, Arme 16, Hände 18, Finger 19 und Daumen 21 umfassen, wobei die verschiedenen oben angegebenen Gelenke darin oder dazwischen angeordnet sind. Der Roboter 10 kann in Abhängigkeit von der speziellen Anwendung oder der beabsichtigten Verwendung des Roboters auch eine für die Aufgabe geeignete Halterung oder Basis (nicht gezeigt) umfassen, wie etwa Beine, Laufflächen oder eine andere bewegliche oder starre Basis. Eine Leistungsversorgung 13 kann einstückig am Roboter 10 montiert sein, z. B. ein wiederaufladbarer Batteriestapel, der an der Rückseite des Torsos 14 mitgeführt oder getragen wird, oder eine andere geeignete Energieversorgung, oder sie kann durch ein Verbindungskabel abgesetzt angebracht sein, um ausreichend elektrische Energie für die verschiedenen Gelenke zur Bewegung derselben bereitzustellen.
  • Der verteilte Controller 24 stellt eine präzise Bewegungssteuerung des Roboters 10 bereit, die eine Steuerung über die feinen und groben Bewegungen umfasst, die zum Manipulieren eines Objekts 20 gebraucht werden, das von den Fingern 19 und dem Daumen 21 von einer oder mehreren Händen 18 ergriffen werden kann. Der Controller 24 ist in der Lage, jedes Robotergelenk und andere integrierte Systemkomponenten isoliert von den anderen Gelenken und Systemkomponenten unabhängig zu steuern sowie eine Anzahl der Gelenke voneinander abhängig zu steuern, um die Aktionen der mehreren Gelenke bei der Ausführung einer relativ komplexen Arbeitsaufgabe vollständig zu koordinieren.
  • Der Controller 24 kann mehrere digitale Computer oder Datenverarbeitungseinrichtungen umfassen, die jeweils einen oder mehrere Mikroprozessoren oder zentrale Verarbeitungseinheiten (CPU), einen Festwertspeicher (ROM), einen Speicher mit wahlfreiem Zugriff (RAM), einen löschbaren elektrisch programmierbaren Festwertspeicher (EEPROM), einen Hochgeschwindigkeitstaktgeber, Analog/Digital-Schaltungen (A/D-Schaltungen), Digital/Analog-Schaltungen (D/A-Schaltungen) und beliebige benötigte Eingabe/Ausgabe-Schaltungen und Einrichtungen (E/A-Schaltungen) sowie Signalaufbereitungs- und Pufferelektronik aufweisen. Individuelle Steuerungsalgorithmen, die im Controller 24 vorhanden sind oder für diesen leicht zugänglich sind, können im ROM gespeichert sein und auf einer oder mehreren verschiedenen Steuerungsebenen automatisch ausgeführt werden, um die jeweilige Steuerungsfunktionalität bereitzustellen.
  • Der Controller 24 kommuniziert über mehrere Kommunikationsknoten oder Verbindungspunkte und über mehrere Hochgeschwindigkeitskommunikationsnetzwerke, z. B. Ethernet, Mehrpunkt-Niederspannungsbusse mit differentieller Signalisierung (M-LVDS), Busleiterplatten und dergleichen. Die Knoten können als verschiedene Modems, Hubs, Bridges, Computer, Datenrouter oder -vermittlungsknoten, Arbeitsstationen, Server, usw. ausgeführt sein, die den Informationsfluss im Robotersystem steuern.
  • Immer noch mit Bezug auf 1 ist der Controller 24 insofern verteilt, als eine Steuerung auf Befehlsebene auf einer Makroebene bereitgestellt wird und eine Gelenkkoordination auf einer Zwischenebene bereitgestellt wird. Die Zwischenebene wiederum steuert jedes Gelenk oder jede andere integrierte Systemkomponente, z. B. Relais, Beleuchtungssysteme usw., die in die Steuerung einer speziellen Aufgabe oder Bewegung involviert ist, durch eine direkte Kommunikation mit mehreren Controllern auf niedriger Ebene. Der Controller 24 kann daher einen Controller auf Befehlsebene, der hier als ein Systembefehlshaber 25 bezeichnet wird, und einen Gelenkkoordinationscontroller in Echtzeit umfassen, der hier nachstehend als der Hirnstamm 27 bezeichnet wird. Der Controller 24 umfasst auch mehrere eingebettete Controller 29 auf Gelenkebene, die, wie die Beschreibung impliziert, jeweils in die Struktur des Roboters 10 nahe bei dem Gelenk eingebettet sind, das durch diese gesteuert wird. Zusätzliche (nicht gezeigte) Controller können auf dieser niedrigen Ebene gekoppelt sein, um eine Kontrolle über integrierte Systemkomponenten bereitzustellen, wie etwa eine Leistungsverwaltung und/oder andere Hilfseinrichtungen. Steuerungsdaten und die Rückkopplungs- und Steuerungsdaten 11 können zwischen dem Roboter 10 und den verschiedenen Ebenen des Controllers 24 ausgetauscht werden, um eine präzise komplexe Bewegungssteuerung des Roboters sicherzustellen.
  • Der Controller 24 ist auch mit einer Anwenderschnittstelle 22 ausgestaltet, z. B. einem Bediengerät, einem Anzeigeschirm und/oder einer anderen Mensch-Maschine-Schnittstelleneinrichtung (HMI-Einrichtung). Die Schnittstelle 22 kann ausgestaltet sein, um einen nur bestimmten Gruppen zugänglichen Zugriff auf den Roboter 10 auf der Betriebs- und Programmierebene separat zu ermöglichen. Zu diesem Zweck kann die Schnittstelle 22 eine graphische Anwenderschnittstelle (GUI) 51 enthalten, die auch in 4 gezeigt ist, welche einem Bediener einen intuitiven oder menügesteuerten Satz von funktionalen Optionen für eine begrenzte Steuerung des Roboters 10 bereitstellt.
  • Die Schnittstelle 22 kann auch eine nicht beschränkte Schnittstelle enthalten, die für Entwickler, Programmierer oder anderes ausgewähltes Personal, das über die Berechtigung zum Verändern des Kernsteuerungscodes des Roboters verfügt, einen vollen Zugriff auf den Roboter 10 bereitstellt. Wie nun mit Bezug auf 25 erläutert wird, arbeitet die Schnittstelle 22 wie eine interaktive Programmierschnittstelle, um einem Programmierer, Bediener oder einem anderen Anwender des Roboters 10 eine intuitive und graphische Programmierschicht zu präsentieren, wodurch die erhebliche Steuerungskomplexität in ausreichendem Maß verborgen wird, um eine effiziente Programmierung und Verwendung des Roboters 10 zu erleichtern.
  • Immer noch mit Bezug auf 1 ist der Controller 24 über mehrere Hochgeschwindigkeitsnetzwerke verteilt, um eine präzise Steuerung über die koordinierte Bewegung der verschiedenen Gelenke im Roboter 10 bereitzustellen. Das heißt, dass der Systembefehlshaber 25 mit Hilfe der Schnittstelle 22 über eine Hochgeschwindigkeitskommunikationskopplung beauftragt werden kann, dem Hirnstamm 27 eine allgemeine Kontrolle auf hoher Ebene über den Roboter 10 bereitzustellen. Beispielsweise kann der Systembefehlshaber 25 einen aufgabenbasierten Befehl ausgeben, wie etwa ”Nimm ein Objekt auf”, etwa das Objekt 20, und ”Bewege das Objekt in drei Sekunden an den Punkt X, Y, Z”. Diese Befehle können über ein Hochgeschwindigkeitsnetzwerk, das bei einer Ausführungsform eine Ethernetverbindung oder ein anderes geeignetes Hochgeschwindigkeitsnetzwerk sein kann, an eine Steuerungseinrichtung auf mittlerer Ebene, d. h. den Hirnstamm 27, übertragen oder weitergeleitet werden.
  • Die Steuerungseinrichtung auf mittlerer Ebene oder der Hirnstamm 27 empfängt den Befehl vom Systembefehlshaber 25 und verarbeitet diesen Befehl. Die Verarbeitung auf der Ebene des Hirnstamms 27 kann umfassen, dass das oder die spezifischen Gelenke des Roboters 10, der in 1 gezeigt ist, identifiziert werden, welche zusammen mit beliebigen notwendigen Hilfseinrichtungen gesteuert werden müssen, um die angeforderte Aufgabe auf die effizienteste Weise auszuführen, sowie dass die benötigten Aktivierungsbefehle an den Motor oder die Stellglieder ausgegeben werden, welche den einen oder die mehreren Freiheitsgrade jedes Gelenks steuern. Beispielsweise kann der Hirnstamm 27 ein Signal an ein spezielles Gelenk weiterleiten, das befiehlt, dass sich das Gelenk mit einer speziellen Geschwindigkeit um 10 Grad bewegen soll. Dieses Signal wird über ein anderes Hochgeschwindigkeitsnetzwerk an jeden eingebetteten Gelenkcontroller 29 übertragen, z. B. eine Busleiterplatte, die in den Hirnstamm 27 eingebaut ist und verschiedene gelenk- und/oder aufgabenspezifische Befehlsmodule (nicht gezeigt) durch den M-LVDS-Bus verbindet.
  • Zusätzlich zu den vorstehenden Einrichtungen kann der Controller 24 eine Sammlung von Netzwerkkommunikationsmanagern (NCM) (nicht gezeigt) enthalten, die ausgestaltet sind, um die Kommunikation zwischen einem gegebenen Netzwerk und einer Einrichtung zu priorisieren. Wie der Fachmann versteht, kann ein NCM Software enthalten, die eine Programmierschnittstelle für die spezielle Hardwareeinrichtung bereitstellt, die versucht, sich mit einem Netzwerk zu verbinden, welche sicherstellt, dass sich die Einrichtung in Übereinstimmung mit dem speziellen Kommunikationsprotokoll, das von dem Netzwerk verwendet wird, korrekt verbinden kann.
  • Der Controller 24 kann auch noch ein weiteres Hochgeschwindigkeitsnetzwerk oder eine weitere Software enthalten, das bzw. die verwendet werden kann, um eine Verbindung mit mehreren Anwendungsmodulen 30 herzustellen (siehe auch 2). Bei einer Ausführungsform können mehrere Anwendungsmodule 30 bereitgestellt sein, wobei jedes für eine dedizierte Steuerung einer bestimmten peripheren sensorischen Anwendung ausgelegt ist, z. B. eine haptische oder berührungsbasierte Erfassung, eine Sichterfassung, eine geräusch- oder stimmbasierte Erfassung, usw. Eine derartige Fähigkeit zur Umgebungserfassung oder eine andere Steuerungsfunktionalität, welche die Fähigkeiten des Roboters 10 erweitert, kann über die mehreren vorstehend beschriebenen Hochgeschwindigkeitsnetzwerke an die Gelenkebene des Roboters weitergeleitet werden.
  • Wie vorstehend angegeben wurde, verteilt der Controller 24 die Steuerungsfunktionalität mit Hilfe des Systembefehlshabers 25, des Hirnstamms 27 und der mehreren eingebetteten Controller 29 auf Gelenkebene auf mehrere Steuerungsebenen. Das heißt, dass das Gerüst des Controllers 24 ein Sequenzieren von vordefinierten. Aktionen auf hoher Ebene durch den Systembefehlshaber 25, eine Steuerung und Koordination der verschiedenen Gelenke in Echtzeit mit Hilfe des Hirnstamms 27 und eine Verarbeitung und Stellgliedsteuerung auf Gelenkebene mit Hilfe der Controller 29 umfasst. Hinsichtlich der Controller 29 können diese Einrichtungen als eine oder mehrere gedruckte Leiterplattenanordnungen (PCBA) ausgestaltet sein, die eine Erfassungs-, Signalverarbeitungs-, Stellgliedsteuerungs- und/oder eine andere Funktionalität bereitstellen. Diese PCBA's können in die Struktur des Roboters 10 direkt eingebettet sein, z. B. in die Arme 16 nahe bei einem speziellen Gelenk, das gesteuert wird. Mit Hilfe der Steuerungsmodule 30, die vorstehend angegeben und in 2 gezeigt sind, kann eine Wahrnehmungsverarbeitung außerhalb des Controllers bereitgestellt werden.
  • Mit Bezug auf 2 umfasst der vorstehend beschriebene verteilte Controller 24 die Schnittstelle 22 und den Hirnstamm 27, die zusammenarbeiten, um zu ermöglichen, dass der Roboter 10 über parametrierte Aktionssequenzen gesteuert wird. Die durch den Hirnstamm 27 bereitgestellten Steuerungen in Echtzeit koordinieren sequentielle Aktionen der verschiedenen Gelenke auf der Grundlage der Bewegung, der Kraft, der Position, der Impedanz usw. auf eine komplexe Weise, die nicht in den beabsichtigen Umfang der vorliegenden Erfindung fällt. Wie vorstehend angemerkt wurde, stellt der Controller 24 mit Hilfe des Systembefehlshabers 25 eine sequentielle Steuerung auf hoher Ebene bereit, welcher über mehrere Hochgeschwindigkeitsnetzwerke 26 mit dem Echtzeit-Steuerungssystem oder Hirnstamm 27 und verschiedenen Wahrnehmungsdatenprozessoren oder Befehlsmodulen 30 kommuniziert.
  • Die Befehlsmodule 30 können als Arbeitsstationen oder Prozessoren ausgeführt sein, die zur Unterstützung der Bearbeitung von Aufgaben, welche die Detektion und Verarbeitung von Wahrnehmungsdaten benötigen, und zum Weiterleiten der verarbeiteten Informationen an die verschiedenen Steuerungsebenen des Roboters 10 ausgelegt sind. Zwei Wahrnehmungs- oder Erfassungsaufgaben, die von dem Controller 24 mit Hilfe der Befehlsmodule 30 ausgeführt werden können, umfassen eine visuelle Wahrnehmung und eine haptische Wahrnehmung.
  • Bei der Verwendung hierin bezeichnet der Begriff visuelle Wahrnehmung die Fähigkeit des Roboters, eine Vielzahl von Merkmalen und/oder Objekten in seinem Gesichtsfeld automatisch zu finden, zu verfolgen und zu messen, unter Verwendung eines Sensorfelds, z. B. von Kameras, Lasern, Radar, Infraroteinrichtungen oder anderen geeigneten Sensoren. Die haptische Wahrnehmung bezeichnet die Fähigkeit des Roboters, Informationen zu detektieren und zu verarbeiten, welche einen Kontakt zwischen einer Oberfläche des Roboters 10, etwa einer Oberfläche einer Hand 18 oder eines Fingers 19, und einem Objekt beschreiben. Ein Kontakt kann, wie er hier verwendet wird, beispielsweise jede Berührung, Kraft, Einwirkung, Vibration oder eine andere berührungsbasierte, taktile oder schlupfbasierte Erfassung bezeichnen.
  • Wie Fachleute auf dem Gebiet der haptischen Wahrnehmung verstehen, kann eine berührungsbasierte Erfassung die Detektion und Messung einer Kontaktkraft an einem definierten Punkt umfassen. Eine taktile Erfassung kann eine Detektion und Messung der räumlichen Verteilung von Kräften rechtwinklig zu einem Erfassungsgebiet des Roboters und eine Verarbeitung/Interpretation einer derartigen räumlichen Information umfassen. Ein taktiles Erfassungsfeld kann verwendet werden, um eine Gruppe oder eine Reihe von Berührungssensoren zu koordinieren. Eine Schlupferfassung kann die Messung und Detektion einer beliebigen Relativbewegung eines Objekts relativ zu einem Sensor umfassen, z. B. eine Bewegung des Objekts 20 von 1 relativ zu der Hand 18 des Roboters 10.
  • Zu diesem Zweck ist ein elektromechanisches System 31 im Gerüst des in 1 gezeigten Robotersystems, d. h. des Roboters 10 und des Controllers 24, bereitgestellt. Bei einem Roboter 10, der sowohl eine haptische als auch eine visuelle Wahrnehmungsfähigkeit wie vorstehend beschrieben aufweist, kann das System 31 haptische Sensoren 32 und Sichtsensoren 34 umfassen. Zum Beispiel können die haptischen Sensoren 32 einzelne oder als Feld angeordnete Berührungs- oder taktile Sensoren umfassen, die eine mechanische und/oder elektrische Konstruktion aufweisen können. Beispielhafte mechanische Sensoren umfassen binäre Berührungssensoren, Potentiometer, Verschiebungsmessgeber und dergleichen. Elektrische Sensoren können beliebige elektrisch betätigte Sensoren oder elektrisch abgeleitete Werte, z. B. resistive, kapazitive, oder Sensoren für ein magnetisches/elektrisches Feld umfassen. Wie auch immer die Sensoren 32, 34 ausgestaltet sind, sie stehen über ein weiteres Hochgeschwindigkeitsnetzwerk in Verbindung mit einem zugehörigen Befehlsmodul 30.
  • Das elektromechanische System 31 kann auch mindestens einen Gelenkmotor 38 oder alternativ eine rotatorische oder lineare Stellgliedeinrichtung je Robotergelenk umfassen. Der Gelenkmotor 38 kann auf der Gelenkebene gesteuert werden, d. h. durch die verschiedenen eingebetteten Controller 29 auf Gelenkebene (siehe 1), unter Verwendung von Kraft- und Positionssensoren 36 bzw. 40. Eine Kommunikation zwischen dem Hirnstamm 27 und den eingebetteten Controllern 29 findet über ein weiteres Hochgeschwindigkeitsnetzwerk 33 statt, wobei eine Verarbeitung von Signalen von den jeweiligen Kraft- und Positionssensoren 36, 40 gemäß einer Ausführungsform auf der Gelenkebene getrennt vom Hirnstamm 27 ausgeführt wird, um eine Echtzeitsteuerung und -koordination der verschiedenen Gelenke des in 1 gezeigten Roboters 10 zu ermöglichen.
  • Mit Bezug auf 3 stellt ein Kommunikationsablaufplan 45 in vereinfachter Form den Fluss von meldungsbasierten Programmierinformationen zwischen dem Roboter 10, dem Systembefehlshaber 25 und den jeweiligen haptischen und Sichtsensoren 32, 34 von 2 dar, welche in 3 als eine Kamera 34A und eine Hand 18 mit einem Satz taktiler oder haptischer Sensoren 32A dargestellt sind. Im Robotersystem von 1 ist ein adaptives Gerüst bereitgestellt, d. h. im Roboter 10 und dem Controller 24 von 1 mit allen dazugehörigen Komponenten und Untersystemen derselben. Das Gerüst ermöglicht, dass auf die verschiedenen Kommunikationsknoten zur Laufzeit zugegriffen werden kann oder diese modifiziert werden können. Das hier bereitgestellte Gerüst umfasst (a) ein auftragsdateiorientiertes Kommunikationsmodell, (b) automatisierte Kommunikationsknotenverbindungen, (c) Mehrpunktknotenverbindungen und (d) eine zentralisierte Datenverwaltung über eine zentrale Datenbibliothek (CDL) 35. Jeder Begriff wird nun nacheinander beschrieben.
  • Das auftragsdateiorientierte Kommunikationsmodell ermöglicht, dass der Inhalt einiger vom Anwender erzeugter Meldungen zur Laufzeit hinzugefügt oder modifiziert werden kann, ohne dass eine Kompilierung auf die typische Weise notwendig ist. Das heißt, ein Anwender kann ein Informationspaket erstellen, indem er eine spezielle Anzahl von Datenobjekten und die Bedeutung jedes Datenobjekts unter Verwendung eines graphischen Editors 37 definiert. Der Editor 37 wiederum erzeugt eine Meldung in der Gestalt einer Auftragsdatei 44. Die Auftragsdatei 44 kann gemäß einer speziellen Ausführungsform an einer beliebigen Stelle im Robotersystem von 1 in einem Speicher als eine API-Markup-Sprachdatei (AML) gespeichert werden.
  • Wie in 3 gezeigt, kann auf die Auftragsdatei 44 von allen Kommunikationsknoten im System automatisch zugegriffen werden. Automatisierte Verbindungen zwischen Knoten, z. B. zwischen dem Systembefehlshaber 25 und einem Sichtsystemmodul mit der Kamera 34A werden auch über ein automatisiertes ”Handshaking” zwischen den verschiedenen Knoten, so wie dieser Begriff in der Technik verstanden wird, sowie eine Meldungs-Authentifizierung und eine Störungskommunikation/Behebung für alle Kommunikationsknoten ermöglicht. Mit Bezug auf die Störungsbehebung insbesondere dann, wenn ein Knoten aufhört, mit den anderen zu kommunizieren, kann die Verwendung zentralisierter Daten, die in der CDL 35 untergebracht sind, dem Controller 24 ermöglichen, eine unmittelbare Steuerungsaktion auf einer geeigneten Steuerungsebene zu ergreifen.
  • Bei der Verwendung hierin bezeichnet der Begriff ”zentralisierte Verwaltung” die automatische Weiterleitung und Aufzeichnung aller Leistungs-, Sensor- und Stellgliedrückmeldungen und Steuerungsdaten 11 von 1, die zwischen Knoten im Robotersystem übertragen werden, an einer einzigen tatsächlichen oder virtuellen/kollektiven Stelle. Diese Daten können sich in der CDL 35 befinden, die bei einer Ausführungsform eine physikalische Speicherstelle des Systembefehlshabers 25 sein kann, obwohl auch andere Speicherstellen oder mehrere als Feld angeordnete oder verteilte Stellen verwendet werden können, ohne den beabsichtigen Umfang der vorliegenden Erfindung zu verlassen.
  • Somit ist ein leicht erweiterbares Gerüst zur nahtlosen Integration externer Wahrnehmungs- und Steuerungssoftware, z. B. der Sichterfassungssoftware 46, der taktilen oder einer anderen haptischen Erfassungssoftware 48, einer Fernbediensoftware 50 usw. und/oder anderer Befehlsmodule und Software, in die verteilten Steuerungsebenen des Controllers 24 bereitgestellt. Sobald beispielsweise neue Daten zu dem System hinzugefügt werden, werden die Daten in einer Auftragsdatei 44 definiert. Sobald die Auftragsdatei 44 definiert ist, wird sie in die CDL 35 integriert. Einer Hand 18 könnte befohlen werden, ”sich auf das Niveau des anderen Arms plus 10 Grad zu heben”, ohne zu definieren, wo sich der andere Arm befindet. Die benötigte Information ist bereits über die CDL 35 verfügbar.
  • Um eine Steuerung und eine intuitive Rückmeldung des Systemstatus an einen Anwender oder Bediener in Echtzeit zu ermöglichen, enthält die Schnittstelle 22 von 1 mit Bezug auf 4 ein graphisches Bediengerät oder eine Anwenderschnittstelle (GUI) 51 zum intuitiven oder interaktiven Zugriff auf die Daten, die in der CDL 35 gesammelt sind, welche vorstehend mit Bezug auf die 3 beschrieben ist. Die GUI 51 kann ausgestaltet sein, um eine Steuerung/einen Systemstatus in Echtzeit, graphische Steuerungsoptionen und eine Steuerungs/Systemdatenvisualisierungsfähigkeit bereitzustellen. Durch das Abstrahieren der großen Menge von komplexen Steuerungsvariablen und zugehörigen Daten in eine anwenderfreundliche Schnittstelleneinrichtung können der Programmierzugriff und die Betriebseffizienz des Robotersystems von 1 optimiert werden, was eine praktische Verwendung einer hohen Anzahl von Freiheitsgraden, etwa der 42+ Freiheitsgrade des vorstehend beschriebenen Roboters 10 ermöglicht.
  • Mit Bezug auf den Echtzeitstatus kann die GUI 51 eine Systemstatusanzeige 52 und eine Bediengerätanzeige 54 enthalten, die es einem Anwender ermöglicht, Betriebsmodi des Roboters zu verändern, die Systemleistung zu steuern und verschiedene andere Aktionen mit Hilfe von Tastern 55 und/oder anderen geläufigen Steuerungseingabeelementen auszuführen. Die Statusanzeige 52 kann Statusicons oder Symbole enthalten, die eine Aktivierung des gesamten Robotersystems sowie von einzelnen Gelenkpositionen, Drehmomenten und/oder Sicherheitszuständen der verschiedenen Gelenke oder Gliedmaßen des Roboters 10 anzeigen, d. h. des linken Arms (LA), des rechten Arms (RA), des Nackens (NK), der linken Hand (LH), der rechten Hand (RH), der Taille (WA), usw. Die Bediengerätanzeige 54 kann Steuerungsicons enthalten, die es einem Anwender ermöglichen, Eingänge an verschiedene Robotersysteme zu wählen, wie etwa die verschiedenen in 4 gezeigten Leistungssystemoptionen, z. B. Logik ein/aus, Busspannungsverfügbarkeit, Motorleistungsverfügbarkeit, usw.
  • Der Status einzelner Befehlsmodule, etwa der Fernbediensoftware 50 von 3, kann auch über einen Befehlsanzeigebereich 56 angezeigt werden. Eine Systemmodusanzeige 58 kann eine entsprechende Liste von Robotergelenken oder Gliedmaßen darstellen, mit Optionen zum Deaktivieren, Parken, Aktivieren einer Servosteuerung oder Ändern des Betriebsmodus der verschiedenen Gelenke oder Gliedmaßen. Über Reiter 57 können mehrere Steuerungsmenüs gewählt werden, um auf verschiedene Informationstypen oder Informationsebenen zuzugreifen, z. B. eine Roboterdatenvisualisierung, Testeingabedaten oder andere Eingabebildschirme, die es einem Anwender ermöglichen, die Laufzeitdatenbibliothek oder CDL 35, die vorstehend beschrieben ist, visuell zu untersuchen und falls gewünscht zu modifizieren, oder um auf alle Robotersteuerungs-, Sensor- und externen Daten zuzugreifen, die im System verfügbar sind. Aktualisierungen in der CDL 35 werden auf der GUI 51 mit Hilfe eines entsprechenden Bildschirms automatisch angezeigt.
  • Mit Bezug auf 5 kann die Anwenderschnittstelle 22 von 1 oder eine separate Einrichtung auch einen Zugriff auf ein interaktives Programmiergerüst zur graphischen Programmierung und Ausführung verschiedener parametrierter Aufgabensequenzen bereitstellen. Dieser Zugriff kann über eine Programmierschnittstelle erleichtert werden. Die Programmierschnittstelle 60 ermöglicht einem Anwender, den Roboter 10 zu programmieren/zu trainieren und zu betreiben. Mehrere Entwurfsfaktoren tragen zum Erreichen derartiger interaktiver Programmierfähigkeiten bei, welche umfassen: (a) die Integration der Stellgliedsteuerung, (b) die Verwendung einer graphischen Programmiersprache im Ablaufplanstil, (c) die kontinuierlich ausgewertete Sequenzierung hierarchischer Aufgaben, (d) die Bewertung und Modifikation von Ausdrücken zur Laufzeit und (e) ein zweistufiger Programmiersprachenentwurf. Jedes Konzept wird nun mit Bezug auf den in 5 gezeigten beispielhaften Ablaufplan 60 erläutert.
  • Mit Bezug auf die Integration einer seriellen elastischen Steuerung kann das System von 1 verwendet werden, um den Roboter 10 für die Ausführung einer neuen Sequenz zu trainieren. Der Roboter 10 kann mindestens zehn nachgiebige Robotergelenke im Nacken, den Armen, der Taille und den Händen enthalten, wobei eine parametrierte Steifigkeit mit Hilfe einer Impedanzsteuerung erreicht wird. Bei einer Ausführungsform kann ein Anwender in der Lage sein, mit Hilfe der GUI 51 niedrige, mittlere und hohe Steifigkeitsniveaus zu wählen. Dann kann ein Anwender die Gelenke des Roboters 10 physikalisch zwischen verschiedenen kartesischen Punkten bewegen, d. h. X-, Y- und Z-Punkten im dreidimensionalen Raum. Bei jedem Punkt kann der Anwender den Ablaufplan 60 von 5 unter Verwendung einer graphischen Ablaufplansoftware konstruieren, um Blöcke 62 zu schaffen.
  • Die Blöcke 62 können eingeteilt werden in Befehlsblöcke 64A–K, Sequenzblöcke 66A–E und ereignisbasierte Kopplungen 68A–I. 5 stellt ein veranschaulichendes Beispiel dar. Nach der Initialisierung kann der Block 64A verwendet werden, um zu symbolisieren, dass das System in einen Gelenktrainingsmodus versetzt wird. Sobald dies abgeschlossen ist, d. h. die ereignisbasierte Kopplung 68A, kann ein Anwender die Dämpfung und Steifigkeit bei jeweiligen Blöcken 68B und 68C erhöhen und eine Servosteuerung von beispielsweise einem Arm und dem Nacken des Roboters 10 bei Block 64D aktivieren. Die Startposition oder die X-, Y- oder Z-Koordinate des Gelenks wird bei Block 64E gemessen und aufgezeichnet und die Geschwindigkeit der Gelenkbewegung kann bei Block 64F eingestellt werden. Die Blöcke 64G und 64H können verwendet werden, um einen Ellenbogen um eine gewisse Distanz anzuheben oder um die Taille 15 um einen gewissen Grad zu drehen.
  • Die mit den Befehlsblöcken 64A–K verwendeten Sequenzblöcke 66A–E beschreiben parametrierte Aufgabensequenzen und als Sequenzen enthalten sie notwendigerweise mehrere Schritte. Das Klicken auf einen dreieckigen Sequenzblock kann automatisch ein weiteres Fenster mit noch einem weiteren graphischen Ablaufplan öffnen, der die verschiedenen befehls-, sequenz- und ereignisbasierten Kopplungen beschreibt, die für diese spezielle Sequenz benötigt werden. In 5 ist beispielsweise der Sequenzblock 66A als ”Aufnehmen” [engl: Pick] beschriftet, was sich darauf bezieht, dass der Roboter 10 ein Objekt 20 aufnimmt. Eine derartige Aktion kann einen Einzelgriff oder einen zusammenwirkenden Griff benötigen und wird daher über eine Reihe oder Sequenz einzelner Gelenksteuerungsaktionen gesteuert.
  • Andere Blöcke in 5 vervollständigen die veranschaulichte parametrierte Sequenz, wie etwa das Drehen der Taille bei Block 64I, das Ausführen einer hohen Armbeuge [engl: high arm cur1] bei Block 66D usw. Der tatsächliche Ablaufplan kann aufwendiger oder weniger aufwendig als der in 5 gezeigte sein. Unabhängig von der Komplexität werden, sobald die Aufgabe aufgenommen worden ist oder der Roboter 10 auf diese Weise trainiert worden ist, alle parametrierten sequentiellen Daten automatisch in der CDL 35 von 3 gesammelt, wie vorstehend beschrieben ist. Die Sequenz kann dann nach Bedarf von anderen Anwendern des Roboters 10 verwendet oder modifiziert werden. Dieses Dienstprogramm vereinfacht die Erzeugung von sehr komplexen Serien von Roboteraktionen in großem Maß und stellt eine einzigartige und effiziente Schnittstelle bereit, welche die Erzeugung von Robotersteuerungsprogrammen vereinfacht.
  • Mit Bezug auf die Programmierung nach Art eines Ablaufplans und mit Bezug auf 5 kann das gesamte Steuerungssystem für den Roboter 10 von 1 abstrahiert werden, indem Befehlsblöcke 62 auf einem Bildschirm der Programmierschnittstelle 60 dargestellt werden. Diese Blöcke 62 können durch Pfeile 64 graphisch verbunden werden, um die gewünschte sequentielle Abfolge darzustellen. Die Blöcke 60 können in anderen Blöcken verschachtelt sein, um Unterroutinen zu bilden. Diese Unterroutinen können mit anderen Befehlsblöcken gekoppelt sein oder in anderen Unterroutinen verschachtelt sein. Unterroutinen können willkürlich verschachtelt sein und können unabhängig gespeichert sein. Diese gespeicherten Sequenzen können dann in andere Ablaufpläne eingefügt werden und beseitigen kostspielige Umprogrammierungsaufwände. Die Blöcke können spezialisiert sein, um eine beliebige Komponente oder Kombination der Steuerungsdaten darzustellen, die für den Roboter 10 von 1 verfügbar sind, wodurch die Programmierpraxis für den Anwender vereinfacht wird. Zusätzliche Programmblöcke ermöglichen es dem System, spezielle Aktionen auszuführen, wie etwa Abspielen eines Geräusches, Auffordern des Anwenders, Starten und Stoppen eines Zeitgebers oder andere nützliche Aktivitäten.
  • Das System ermöglicht die Schaffung von Programmvariablen, die über verschiedene Programme hinweg gemeinsam genutzt werden können. Der Wert dieser Variablen kann aus einem Programm heraus gesetzt und abgerufen werden und kann über einen Zugriff auf die gesamte Bibliothek der verfügbaren Daten verfügen. Spezialisierte Blöcke werden verwendet, um die Fähigkeiten des Systems zu erweitern, was ermöglicht, dass es Maßnahmen wie etwa das Aussenden einer Reihe von Befehlen oder das Zurücksetzen des Kommunikationssystems ausführt. Das System stellt auch eine zusätzliche Interaktion zur Laufzeit bereit. Ein Anwender kann ein Programm durch Interaktion mit der GUI 51 starten, stoppen oder anhalten.
  • Zudem stellt das System die Fähigkeit zum Setzen von Haltepunkten bei der Programmausführung bereit, die bei vordefinierten Punkten automatisch angehalten und wieder aufgenommen werden kann. Haltepunkte 67 werden bei dem jeweiligen Block visuell angezeigt. Der Anwender verfügt auch über die Möglichkeit, die sequentielle Abfolge zu modifizieren, indem er mit der Schnittstelle direkt interagiert und die Verbindungen, die Reihenfolge und andere Parameter zur Laufzeit verändert. Die aktuelle Programmposition wird angezeigt und die Anwenderansicht wird während der Ausführung über einen Ausführungscursor 69 in die korrekte Position verschoben.
  • Mit Bezug auf die kontinuierlich ausgewertete sequentielle Ausführung stützt sich die Programmiersprache auf das Konzept der Abschlussbedingungen [engl: completion conditions], um die Priorität und Reihenfolge der sequentiellen Ausführung zu bestimmen. Abschlussbedingungen sind vollständig erweiterbar und können eine Vielfalt verschiedener Ereignisse und Kombinationen darstellen. Die sequentielle Ausführung einer Aufgabe kann auf einer verstrichenen Zeit, Positionsdaten, Sensordaten, zur Laufzeit ausgewerteten Ausdrücken, Anwenderinteraktionen oder einer anderen externen Steuerung beruhen. Beispielsweise kann ein Gelenk des Roboters 10 eine eingestellte Zeitspanne lang in einer abwechselnden Rückwärts- und Vorwärtsstrecke arbeiten und die Schleife verlassen, wenn die Zeitspannenbedingung erfüllt ist. Die Abschlussbedingungen werden kontinuierlich ausgewertet, um eine dynamische Umkonfiguration der Sequenz zu ermöglichen, wodurch die interaktiven Fähigkeiten des Systems weiter verbessert werden. Das heißt, dass Bedingungen zur Laufzeit verändert werden können, um eine Schleife zu verlassen, oder um die zeitliche Steuerung oder die Sequenz der Schleife zu modifizieren. Abschlussbedingungen sind vollständig verschachtelbar und können verwendet werden, um komplexe Bedingungshierarchien zu schaffen, die eine Fehlerbehandlung erleichtern können, oder die als Austrittsbedingungen für andere Sequenzen und/oder abhängige Bewegungen des Roboters 10 implementiert werden können.
  • Mit Bezug auf die Auswertung von Ausdrücken zur Laufzeit können alle Aspekte der Programmiersprache ausgestaltet sein, um eine dynamische Laufzeitumgebung zu unterstützen. Befehle und Aufgabensequenzen sind in die Kommunikationsarchitektur integriert, in der CDL 35 zentralisiert und durch die CDL wird ein voller Zugriff auf alle Sensor- und Befehlsdaten bereitgestellt. Programmdateien können erzeugt werden, indem die Ausdrücke gespeichert oder modifiziert werden, die zur Laufzeit ausgewertet werden. Zum Beispiel kann mit Hilfe der GUI 51 ein Gleichungseditorfenster geöffnet werden, um ein Editieren und/oder Betrachten der verschiedenen Gleichungen auf Befehlsebene zu ermöglichen.
  • Mit Bezug auf die zweistufige Programmiersprache erzeugt das System Roboterbefehle auf niedriger Ebene oder Maschinencode auf automatische Weise mit Hilfe der vorstehend beschriebenen Schnittstellenfähigkeiten auf oberster Ebene. Das System ist so konstruiert, dass es Flexibilität und Skalierbarkeit bereitstellt. Bei der Verwendung hierin bezeichnet Skalierbarkeit die einzigartige Fähigkeit, zu den verschiedenen Befehlsmodulen 30 im Betrieb Fähigkeiten hinzuzufügen, ohne den Bedarf, einen Code auf Maschinenebene zu schreiben und zu kompilieren. Als Folge kann die vorstehend beschriebene graphische Programmiersprache auf hoher Ebene vollständig durch andere Ansätze ersetzt werden, etwa durch text- oder menügesteuerte Schnittstellen, ohne den Programmiercode auf niedriger Ebene zu verändern. Ein derartiger Ansatz kann in einigen Aspekten mit der Weise vergleichbar sein, in der C++ und andere Programmiersprachen auf hoher Ebene zu Maschinenanweisungen auf niederer Ebene oder einem Assemblercode kompiliert werden.
  • Obwohl die besten Arten zum Ausführen der Erfindung im Detail beschrieben wurden, werden Fachleute auf dem Gebiet, das diese Erfindung betrifft, verschiedene alternative Entwürfe und Ausführungsformen zum Umsetzen der Erfindung in die Praxis im Umfang der beigefügten Ansprüche erkennen.

Claims (10)

  1. Robotersystem, das umfasst: einen Roboter (10) mit einer Vielzahl integrierter Systemkomponenten, die eine Vielzahl von Robotergelenken (A, B, C, D, E, F) umfassen, die jeweils unter Verwendung mindestens eines einer Vielzahl von Stellgliedern (38) bewegbar sind, wobei der Roboter (10) eine Vielzahl von Sensoren (32, 34, 36, 40) umfasst, die ausgelegt sind, um Rückkopplungsdaten an einer entsprechenden der integrierten Systemkomponenten zu messen; und einen verteilten Controller (24), der zum Steuern der integrierten Systemkomponenten durch ein Übermitteln von Steuerungsdaten über mehrere Hochgeschwindigkeitskommunikationsnetzwerke (26, 33) ausgelegt ist, wobei der verteilte Controller (24) umfasst: einen Controller (25) zur sequentiellen Steuerung auf Befehlsebene, der zum Übertragen eines Steuerungssignals dient, das eine Ausführung einer automatisierten Aufgabe durch den Roboter (10) befiehlt; mehrere eingebettete Controller (29) auf niedriger Ebene, die jeweils zur direkten Steuerung einer jeweiligen der integrierten Systemkomponenten ausgelegt sind; einen Controller (27) auf Gelenkkoordinationsebene, der zum Koordinieren der Steuerung der integrierten Systemkomponenten in Ansprechen auf das Steuerungssignal ausgelegt ist; eine zentrale Datenbibliothek (CDL) (35), die zur Zentralisierung aller Steuerungsdaten und Rückkopplungsdaten ausgelegt ist; eine Anwenderschnittstelle (22) in elektrischer Kommunikation mit der CDL (35), die ausgelegt ist, um einen Status aller Robotergelenke (A, B, C, D, E, F), Stellglieder (38) und Sensoren (32, 34, 36, 40) unter Verwendung von Informationen aus der CDL (35) graphisch anzuzeigen; wobei der verteilte Controller (24) mit Hilfe der Anwenderschnittstelle (22) eine parametrierte Aktionssequenz anzeigt, die eine Hierarchie von gekoppelten Ereignissen aufweist, und wobei es die Anwenderschnittstelle (22) dem Anwender ermöglicht, die parametrierte Aktionssequenz mit Hilfe der Anwenderschnittstelle (22) zu modifizieren, um die Steuerungsdaten in Echtzeit zu verändern.
  2. Robotersystem nach Anspruch 1, das ferner eine graphische Editoreinrichtung (37) zum Erzeugen von Steuerungsmeldungen zum Speichern in der CDL (35) umfasst, wobei die Anwenderschnittstelle (22) ermöglicht, dass der Inhalt einer Steuerungsmeldung vom Anwender zur Laufzeit direkt modifiziert wird.
  3. Robotersystem nach Anspruch 1, das ferner mehrere Kommunikationsknoten umfasst, die mit den mehreren Hochgeschwindigkeitskommunikationsnetzwerken (26, 33) verbunden sind, wobei das Robotersystem ausgestaltet ist, um ein automatisiertes Handshaking zwischen den Kommunikationsknoten und/oder eine Authentifizierung von Meldungen, die zwischen den Kommunikationsknoten übertragen werden und/oder eine Fehlerbehebung für jeden der Kommunikationsknoten bereitzustellen.
  4. Robotersystem nach Anspruch 1, wobei der Controller (24) einen graphischen Ablaufplanalgorithmus umfasst, und wobei die parametrierten Aktionssequenzen als eine Serie von gekoppelten Befehlsblöcken graphisch angezeigt werden, welche unter Verwendung des Algorithmus erzeugt wurden.
  5. Verteilter Controller (24), der zum Steuern der Bewegung eines Roboters (10) über Steuerungsdaten ausgelegt ist, wobei der Controller (24) eine Vielzahl von Robotergelenken (A, B, C, D, E, F), Stellgliedern (38) und eine Vielzahl von Sensoren (32, 34, 36, 40) aufweist, die zum Bestimmen von Rückkopplungsdaten an einem entsprechenden der Robotergelenke (A, B, C, D, E, F) ausgelegt sind, und der umfasst: eine Vielzahl von Hochgeschwindigkeitskommunikationsnetzwerken (26, 33); eine Vielzahl von Controllern (29) auf Gelenkebene, die jeweils in den Roboter (10) in der Nähe eines zugehörigen der Robotergelenke (A, B, C, D, E, F), die dadurch gesteuert werden, eingebettet sind und jeweils ausgelegt sind, um die Rückkopplungsdaten von einem entsprechenden der Robotergelenke (A, B, C, D, E, F) zu verarbeiten; einen Controller (27) auf Gelenkkoordinationsebene, der zum Koordinieren der Bewegung der Robotergelenke (A, B, C, D, E, F) über eine direkte Kommunikation mit jedem der Controller (29) auf Gelenkebene ausgelegt ist; einen Controller (25) zur sequentiellen Steuerung auf Befehlsebene, der zum Übertragen eines Signals ausgelegt ist, welches das Ausführen der Aufgabe an den Controller (27) auf Gelenkkoordinationsebene befiehlt; eine zentrale Datenbibliothek (CDL) (35), die zum Zentralisieren aller Steuerungsdaten und der Rückkopplungsdaten ausgelegt ist; und eine Anwenderschnittstelle (22) in elektrischer Kommunikation mit der CDL (35), die ausgelegt ist, um einen Status aller Robotergelenke (A, B, C, D, E, F), Stellglieder (38) und Sensoren (32, 34, 36, 40) unter Verwendung von Informationen aus der CDL (35) graphisch anzuzeigen; wobei der verteilte Controller (24) mit Hilfe der Anwenderschnittstelle (22) eine parametrierte Aktionssequenz anzeigt, die eine Hierarchie von gekoppelten Ereignissen aufweist, und wobei es die Anwenderschnittstelle (22) dem Anwender ermöglicht, die parametrierte Aktionssequenz mit Hilfe der Anwenderschnittstelle (22) zu modifizieren, um die Steuerungsdaten in Echtzeit zu verändern.
  6. Verteilter Controller (24) nach Anspruch 5, der ferner eine graphische Editoreinrichtung (37) umfasst, um Steuerungsmeldungen zum Speichern in der CDL (35) zu erzeugen, wobei die Anwenderschnittstelle (22) ermöglicht, dass der Inhalt der Steuerungsmeldungen durch den Anwender zur Laufzeit direkt modifiziert wird.
  7. Verteiler Controller (24) nach Anspruch 5, der ferner mehrere Kommunikationsknoten umfasst, die mit den mehreren Hochgeschwindigkeitskommunikationsnetzwerken (26, 33) verbunden sind, wobei das Robotersystem ausgestaltet ist, um ein automatisiertes Handshaking zwischen den Kommunikationsknoten und/oder eine Authentifizierung von Meldungen, die zwischen den Kommunikationsknoten übertragen werden, und/oder eine Fehlerbehebung für jeden der Kommunikationsknoten bereitzustellen.
  8. Verteilter Controller (24) nach Anspruch 5, wobei das Robotersystem mehrere Kommunikationsknoten umfasst und ein vorbestimmtes Gerüst verwendet, um es den Kommunikationsknoten zu ermöglichen, Daten von mehreren Punkten an den Hochgeschwindigkeitsnetzwerken (26, 33) zu senden und zu empfangen.
  9. Verfahren zum Steuern eines Roboters (10) unter Verwendung eines verteilten Controllers (24), wobei das Verfahren umfasst, dass: Steuerungsdaten durch unterschiedliche Steuerungsebenen des verteilten Controllers (24) übertragen werden, um eine Bewegung einer Vielzahl von Robotergelenken (A, B, C, D, E, F) des Roboters (10) zu steuern, wobei die Steuerungsebenen umfassen: einen Controller (25) zur sequentiellen Steuerung auf Befehlsebene, der zum Übertragen eines Steuerungssignals ausgelegt ist, das die Ausführung einer automatisierten Aufgabe durch den Roboter (10) befiehlt, einen Controller (27) auf Gelenkkoordinationsebene, der zum Empfangen des Steuerungssignals und zum Koordinieren einer Bewegung von zumindest einigen der Gelenke (A, B, C, D, E, F) in Ansprechen darauf ausgelegt ist, und eine Vielzahl von eingebetteten Controller (29) auf Gelenkebene, die jeweils zum Verarbeiten der Rückkopplungsdaten von einem zugehörigen der Robotergelenke (A, B, C, D, E, F) ausgelegt sind; alle Steuerungs- und Rückkopplungsdaten von einer Vielzahl von Robotergelenken (A, B, C, D, E, F), Stellgliedern (38) und Sensoren (32, 34, 36, 40) automatisch an eine zentralisierte Datenbibliothek (CDL) (35) weitergeleitet werden; graphische Informationen in Echtzeit angezeigt werden, welche den Status und den Betrieb der Robotergelenke (A, B, C, D, E, F), der Stellglieder (38) und der Sensoren (32, 34, 36, 40) unter Verwendung von Informationen aus der CDL (35) beschreiben; eine parametrierte Aktionssequenz zur Ausführung durch den Roboter (10) erzeugt wird; eine Hierarchie von gekoppelten Ereignissen in der parametrierten Aktionssequenz erzeugt wird; und die parametrierte Aktionssequenz mit Hilfe einer Anwenderschnittstelle (22) ausgeführt wird, die eine Interaktion mit dem Anwender durch eine visuelle Aufforderung und/oder hörbare Aufforderungen ermöglicht.
  10. Verfahren nach Anspruch 9, wobei das Erzeugen der parametrierten Aktionssequenz umfasst, dass die parametrierte Aktionssequenz unter Verwendung eines graphischen Ablaufplanalgorithmus automatisch als eine Reihe von gekoppelten Befehlsblöcken abstrahiert wird.
DE102010045529.6A 2009-09-22 2010-09-15 Interaktives Robotersteuerungssystem und Verwendungsverfahren Active DE102010045529B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/564,096 US8260460B2 (en) 2009-09-22 2009-09-22 Interactive robot control system and method of use
US12/564,096 2009-09-22

Publications (2)

Publication Number Publication Date
DE102010045529A1 DE102010045529A1 (de) 2011-06-16
DE102010045529B4 true DE102010045529B4 (de) 2014-07-31

Family

ID=43757333

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102010045529.6A Active DE102010045529B4 (de) 2009-09-22 2010-09-15 Interaktives Robotersteuerungssystem und Verwendungsverfahren

Country Status (3)

Country Link
US (1) US8260460B2 (de)
JP (1) JP5944096B2 (de)
DE (1) DE102010045529B4 (de)

Families Citing this family (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090248200A1 (en) * 2007-10-22 2009-10-01 North End Technologies Method & apparatus for remotely operating a robotic device linked to a communications network
US8364314B2 (en) * 2009-04-30 2013-01-29 GM Global Technology Operations LLC Method and apparatus for automatic control of a humanoid robot
DE102010012598A1 (de) * 2010-02-26 2011-09-01 Kuka Laboratories Gmbh Prozessmodulbibliothek und Programmierumgebung zur Programmierung eines Manipulatorprozesses
JP5854337B2 (ja) 2010-05-28 2016-02-09 ソーラーシティ コーポレーション ヘリオスタット再配置システムおよび方法
US20120012101A1 (en) * 2010-07-15 2012-01-19 Salomon Trujillo Robotic heliostat system and method of operation
US8442790B2 (en) 2010-12-03 2013-05-14 Qbotix, Inc. Robotic heliostat calibration system and method
US8386078B1 (en) * 2011-05-06 2013-02-26 Google Inc. Methods and systems for providing a data library for robotic devices
US8639644B1 (en) * 2011-05-06 2014-01-28 Google Inc. Shared robot knowledge base for use with cloud computing system
US9615888B2 (en) * 2011-05-31 2017-04-11 Intuitive Surgical Operations, Inc. Surgical instrument with motor
US9566710B2 (en) 2011-06-02 2017-02-14 Brain Corporation Apparatus and methods for operating robotic devices using selective state space training
US9552056B1 (en) 2011-08-27 2017-01-24 Fellow Robots, Inc. Gesture enabled telepresence robot and system
US10649948B2 (en) * 2011-10-05 2020-05-12 Analog Devices, Inc. Two-wire communication systems and applications
US10311010B2 (en) * 2011-10-05 2019-06-04 Analog Devices, Inc. Two-wire communication systems and applications
KR20130037977A (ko) * 2011-10-07 2013-04-17 한국전자통신연구원 로봇 컴포넌트 관리 장치 및 방법
US20130096719A1 (en) * 2011-10-13 2013-04-18 The U.S.A. As Represented By The Administrator Of The National Aeronautics And Space Administration Method for dynamic optimization of a robot control interface
CN102581850B (zh) * 2012-02-10 2014-12-10 广州数控设备有限公司 基于GSK-Link总线的模块化机器人控制装置及控制方法
US10054933B2 (en) * 2012-03-27 2018-08-21 Sirqul, Inc. Controlling distributed device operations
US9191237B1 (en) * 2012-05-24 2015-11-17 Dan Barry, Inc. Wireless communication systems and methods
FR2991222B1 (fr) * 2012-06-01 2015-02-27 Aldebaran Robotics Systeme et procede pour generer des comportements contextuels d'un robot mobile executes en temps reel
JP5702811B2 (ja) * 2013-01-30 2015-04-15 ファナック株式会社 動作プログラム作成装置
US8868241B2 (en) 2013-03-14 2014-10-21 GM Global Technology Operations LLC Robot task commander with extensible programming environment
US9764468B2 (en) 2013-03-15 2017-09-19 Brain Corporation Adaptive predictor apparatus and methods
JP5862611B2 (ja) * 2013-04-02 2016-02-16 トヨタ自動車株式会社 作業変更装置、作業変更方法、及び作業変更プログラム
US9242372B2 (en) 2013-05-31 2016-01-26 Brain Corporation Adaptive robotic interface apparatus and methods
US9792546B2 (en) 2013-06-14 2017-10-17 Brain Corporation Hierarchical robotic controller apparatus and methods
US9314924B1 (en) 2013-06-14 2016-04-19 Brain Corporation Predictive robotic controller apparatus and methods
US9579789B2 (en) 2013-09-27 2017-02-28 Brain Corporation Apparatus and methods for training of robotic control arbitration
US9597797B2 (en) 2013-11-01 2017-03-21 Brain Corporation Apparatus and methods for haptic training of robots
US9463571B2 (en) 2013-11-01 2016-10-11 Brian Corporation Apparatus and methods for online training of robots
WO2015116271A2 (en) * 2013-11-01 2015-08-06 Brain Corporation Apparatus and methods for operating robotic devices using selective state space training
US9358685B2 (en) 2014-02-03 2016-06-07 Brain Corporation Apparatus and methods for control of robot actions based on corrective user inputs
US9346167B2 (en) 2014-04-29 2016-05-24 Brain Corporation Trainable convolutional network apparatus and methods for operating a robotic vehicle
US9050723B1 (en) * 2014-07-11 2015-06-09 inVia Robotics, LLC Human and robotic distributed operating system (HaRD-OS)
US9272418B1 (en) 2014-09-02 2016-03-01 The Johns Hopkins University System and method for flexible human-machine collaboration
US9630318B2 (en) 2014-10-02 2017-04-25 Brain Corporation Feature detection apparatus and methods for training of robotic navigation
USD761094S1 (en) 2014-10-21 2016-07-12 Timothy C. Hooten Swivel device for attaching a cable to a robot
US10311400B2 (en) 2014-10-24 2019-06-04 Fellow, Inc. Intelligent service robot and related systems and methods
US10373116B2 (en) 2014-10-24 2019-08-06 Fellow, Inc. Intelligent inventory management and related systems and methods
US9796093B2 (en) 2014-10-24 2017-10-24 Fellow, Inc. Customer service robot and related systems and methods
US9717387B1 (en) 2015-02-26 2017-08-01 Brain Corporation Apparatus and methods for programming and training of robotic household appliances
CN106154869A (zh) * 2015-03-27 2016-11-23 上海慧流云计算科技有限公司 一种远程临场智能机器人、远程临场交互系统及其方法
US9707680B1 (en) * 2015-05-28 2017-07-18 X Development Llc Suggesting, selecting, and applying task-level movement parameters to implementation of robot motion primitives
US9844877B1 (en) 2015-07-14 2017-12-19 X Development Llc Generating a parameter for a movement characteristic for a waypoint trained path of a robot
EP3371666B1 (de) 2015-11-02 2021-08-18 The Johns Hopkins University Erzeugung einer robotischen benutzerschnittstelle als antwort auf einen anschluss von peripheriegeräten an roboter
CN105666526A (zh) * 2016-03-22 2016-06-15 北京百度网讯科技有限公司 基于人工智能的机器人调试系统
WO2017197018A2 (en) 2016-05-10 2017-11-16 Trustees Of Tufts College Systems and methods enabling online one-shot learning and generalization by intelligent systems of task-relevant features and transfer to a cohort of intelligent systems
KR102645817B1 (ko) * 2016-12-06 2024-03-08 한화로보틱스 주식회사 로봇의 비헤이비어 관리 방법 및 장치
WO2018151317A1 (ja) * 2017-02-20 2018-08-23 友樹 橋本 多関節ロボットにおける動作教示・再現駆動システム及び動作教示・再現駆動方法
CN107139177A (zh) * 2017-07-03 2017-09-08 北京康力优蓝机器人科技有限公司 一种具备抓取功能的机器人智能末端执行器及控制系统
US11751966B2 (en) 2017-07-27 2023-09-12 Intuitive Surgical Operations, Inc. Medical device handle
JP7069971B2 (ja) * 2018-03-30 2022-05-18 セイコーエプソン株式会社 制御装置、ロボット、およびロボットシステム
US11787050B1 (en) 2019-01-01 2023-10-17 Sanctuary Cognitive Systems Corporation Artificial intelligence-actuated robot
US11312012B2 (en) 2019-01-01 2022-04-26 Giant Ai, Inc. Software compensated robotics
JP6717401B1 (ja) * 2019-04-01 2020-07-01 株式会社安川電機 プログラミング支援装置、ロボットシステム及びプログラミング支援方法
US10586082B1 (en) 2019-05-29 2020-03-10 Fellow, Inc. Advanced micro-location of RFID tags in spatial environments
WO2021003338A1 (en) * 2019-07-02 2021-01-07 Brain Corporation Systems and methods for detection of features within data collected by a plurality of robots by a centralized server
CN111015649B (zh) * 2019-10-12 2020-12-25 深圳先进技术研究院 一种驱控一体化控制系统
CN110977983B (zh) * 2019-12-20 2022-11-01 艾力机器人科技(苏州)有限公司 用于机械臂控制的人机界面系统
JP2021137932A (ja) * 2020-03-09 2021-09-16 株式会社日立製作所 ロボット用モジュールシステム
US11132598B1 (en) 2021-02-23 2021-09-28 Neuraville, Llc System and method for humanoid robot control and cognitive self-improvement without programming
US20220347844A1 (en) * 2021-04-30 2022-11-03 Intrinsic Innovation Llc Real-time robotics control framework
US20220347846A1 (en) * 2021-04-30 2022-11-03 Intrinsic Innovation Llc Real-time robotics control framework
US20220347841A1 (en) * 2021-04-30 2022-11-03 Intrinsic Innovation Llc Real-time robotics control framework

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0923011A2 (de) * 1997-11-30 1999-06-16 Sony Corporation Roboter System und Methode zum Antreiben eines Roboters
US20040164697A1 (en) * 2002-12-11 2004-08-26 Sony Corporation Legged mobile robot and actuator device applicable to join shaft of the robot
US20060033462A1 (en) * 2004-08-11 2006-02-16 Tomohisa Moridaira Device and method of controlling operation of robot apparatus
US20060214621A1 (en) * 2003-02-14 2006-09-28 Honda Giken Kogyo Kabushike Kaisha Abnormality detector of moving robot
DE112004002219T5 (de) * 2003-11-13 2006-11-23 Japan Science And Technology Agency, Kawaguchi Verfahren zum Antreiben eines Roboters
DE112006003044T5 (de) * 2005-10-21 2008-10-23 Deere & Company, Moline Vielseitiges Robotersteuermodul

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2742928B2 (ja) * 1990-12-17 1998-04-22 日本電信電話株式会社 半自律行動ロボット遠隔操縦方法
US5341459A (en) * 1991-05-09 1994-08-23 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Generalized compliant motion primitive
JP3443077B2 (ja) * 1999-09-20 2003-09-02 ソニー株式会社 ロボットの運動パターン生成装置及び運動パターン生成方法、並びにロボット
JP4472165B2 (ja) * 1999-12-24 2010-06-02 本田技研工業株式会社 移動ロボットの制御装置
JP2001353678A (ja) * 2000-06-12 2001-12-25 Sony Corp オーサリング・システム及びオーサリング方法、並びに記憶媒体
US6442451B1 (en) * 2000-12-28 2002-08-27 Robotic Workspace Technologies, Inc. Versatile robot control system
WO2003045639A2 (en) * 2001-11-28 2003-06-05 Evolution Robotics, Inc. Sensor and actuator abstraction and aggregation in a hardware abstraction layer for a robot
JP2004001195A (ja) * 2002-03-27 2004-01-08 Sony Corp ロボット装置
JP2004167666A (ja) * 2002-08-30 2004-06-17 Sony Corp ロボット装置及びその動作制御方法
JP4612280B2 (ja) * 2003-02-25 2011-01-12 本田技研工業株式会社 自動作業装置及び自動作業装置制御プログラム
JP2004338056A (ja) * 2003-05-16 2004-12-02 Sony Corp ロボット装置及びその制御方法
JP4661074B2 (ja) * 2004-04-07 2011-03-30 ソニー株式会社 情報処理システム、情報処理方法、並びにロボット装置
JP4671628B2 (ja) * 2004-06-16 2011-04-20 ソニー株式会社 ロボット装置の制御システム及び制御方法
JP4534015B2 (ja) * 2005-02-04 2010-09-01 独立行政法人産業技術総合研究所 マスタ・スレーブ式ロボット制御情報確定方法
JP2006285898A (ja) * 2005-04-05 2006-10-19 Sony Corp 制御装置および方法、並びにプログラム
JP5033994B2 (ja) * 2006-01-19 2012-09-26 株式会社国際電気通信基礎技術研究所 コミュニケーションロボット
JP5162852B2 (ja) * 2006-07-18 2013-03-13 株式会社国際電気通信基礎技術研究所 アンドロイド制御システム
JP2009131914A (ja) * 2007-11-29 2009-06-18 Advanced Telecommunication Research Institute International ロボット制御システム
JP4577422B2 (ja) * 2008-07-14 2010-11-10 ソニー株式会社 情報処理システム及び情報処理方法、ロボットの制御システム及び制御方法、並びコンピュータ・プログラム

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0923011A2 (de) * 1997-11-30 1999-06-16 Sony Corporation Roboter System und Methode zum Antreiben eines Roboters
US20040164697A1 (en) * 2002-12-11 2004-08-26 Sony Corporation Legged mobile robot and actuator device applicable to join shaft of the robot
US20060214621A1 (en) * 2003-02-14 2006-09-28 Honda Giken Kogyo Kabushike Kaisha Abnormality detector of moving robot
DE112004002219T5 (de) * 2003-11-13 2006-11-23 Japan Science And Technology Agency, Kawaguchi Verfahren zum Antreiben eines Roboters
US20060033462A1 (en) * 2004-08-11 2006-02-16 Tomohisa Moridaira Device and method of controlling operation of robot apparatus
DE112006003044T5 (de) * 2005-10-21 2008-10-23 Deere & Company, Moline Vielseitiges Robotersteuermodul

Also Published As

Publication number Publication date
US8260460B2 (en) 2012-09-04
JP2011067943A (ja) 2011-04-07
DE102010045529A1 (de) 2011-06-16
JP5944096B2 (ja) 2016-07-05
US20110071676A1 (en) 2011-03-24

Similar Documents

Publication Publication Date Title
DE102010045529B4 (de) Interaktives Robotersteuerungssystem und Verwendungsverfahren
DE102010045528B4 (de) Gerüst und Verfahren zum Steuern eines Robotersystems unter Verwendung eines verteilten Rechnernetzwerks
DE102014103738B3 (de) Visuelle fehlersuche bei roboteraufgaben
DE102010045345B4 (de) Eingebettetes System und Verfahren zur Diagnose, Prognose und zum Gesundheitsmanagement für einen humanoiden Roboter
DE102019009313B4 (de) Robotersteuerung, Verfahren und Computerprogramm unter Verwendung von erweiterter Realität und gemischter Realität
DE102019002898B4 (de) Robotersimulationsvorrichtung
DE102012218297B4 (de) Verfahren zur dynamischen Optimierung einer Robotersteuerschnittstelle
DE102014108287B4 (de) Schnelles Erlernen durch Nachahmung von Kraftdrehmoment-Aufgaben durch Roboter
DE102013113370B4 (de) Roboteraufgabensteuerungskomponente mit erweiterbarer programmierumgebung
DE102011113590B4 (de) Planen simultaner Pfade mit einem oder mehreren humanoiden Robotern
DE112010000775B4 (de) Industrierobotersystem
DE112018002565B4 (de) System und Verfahren zum direkten Anlernen eines Roboters
DE102010045554B4 (de) Integriertes Hochgeschwindigkeitsdrehmomentregelsystem für ein Robotergelenk
WO2021069129A1 (de) Vorrichtung und verfahren zum steuern einer robotervorrichtung
EP2260357A1 (de) Vorrichtung zur steuerung einer anlage und verfahren zur einrichtung und bedienung der steuerung einer anlage
EP1402325B1 (de) Verfahren und system zur unterstützung der projektierung von fertigungsanlagen
DE102012213188B4 (de) Verfahren und System zum Steuern einer Ausführungssequenz eines geschickten Roboters unter Verwendung einer Zustandsklassifizierung
DE102020212658A1 (de) Vorrichtung und Verfahren zum Steuern einer Robotervorrichtung
EP3760390A1 (de) Durchführen einer vorgegebenen aufgabe mithilfe wenigstens eines roboters
DE102019205651B3 (de) Verfahren und System zum Ausführen von Roboterapplikationen
EP3710900B1 (de) Verfahren und system zum vorgeben bzw. lernen eines roboterbefehls
EP3629108A1 (de) Projektierung eines automatisierungssystems
DE102020200165B4 (de) Robotersteuereinrichtung und Verfahren zum Steuern eines Roboters
DE102019128583B4 (de) Optimierungsmodi für Steuerprogramme eines Robotermanipulators
DE102017201949A1 (de) System zur Steuerung mindestens eines Betriebsmittels zur Herstellung und/oder Montage von Werkstücken

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final