-
QUERVERWEIS AUF VERWANDTE ANMELDUNGEN
-
Diese Anmeldung beansprucht die Priorität der vorläufigen US-Anmeldung mit der Nummer 61/503,696, die am 1. Juli 2011 eingereicht wurde und die in ihrer Gesamtheit durch Bezugnahme hier aufgenommen ist.
-
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 für Zwecke der US-Regierung (d. h. nicht kommerzielle Zwecke) von der oder für die US-Regierung hergestellt und verwendet werden, ohne dass darauf oder dafür Gebühren zu entrichten sind.
-
TECHNISCHES GEBIET
-
Die vorliegende Erfindung betrifft allgemein ein Fernsteuerungssystem und -verfahren eines fingerfertigen Roboters eines lokalen Systems, wobei durch Telepräsenz einem entfernten menschlichen Bediener das Gefühl vermittelt wird, dass er direkt mit der Umgebung des Roboters interagiert, wobei das Fernsteuerungssystem bzw. -verfahren ein Kommunikationssystem bzw. -verfahren zur Übermittlung von Daten über ein Netzwerk mit hoher Latenzzeit und geringer Bandbreite umfasst.
-
HINTERGRUND
-
Bei Netzwerken mit hoher Latenzzeit und geringer Bandbreite, wie sie etwa eingesetzt werden können, wenn mit einem extraterrestrischen Objekt mittels Funkkommunikation über hunderte oder tausende von Kilometern hinweg kommuniziert wird, kann es schwierig oder kostspielig sein, große Informationsmengen auf zuverlässige Weise zu übermitteln. Jeder Datenstrom, der übertragen wird, kann Fehlerkorrektur-, Redundanz- oder andere die Bandbreite belastende Techniken benötigen, um sicherzustellen, dass die empfangenen Informationen mit den gesendeten Informationen übereinstimmen. Dies kann oft zu einer Gesamtreduktion der übermittelten Informationen führen, wobei der Bedeutung der zugrunde liegenden Daten wenig Beachtung geschenkt wird.
-
Die
US 7 839 890 B1 offenbart die Übertragung einer Sammlung von Daten durch eine Kommunikationskopplung, die ein großes Verzögerungs-Bandbreiten-Produkt aufweist, wobei die Sammlung von Daten in eine Vielzahl von Datenströmen unterteilt wird und jedem Datenstrom anhand seiner Kritikalität eine Priorität zugewiesen wird. Entsprechend der Priorität wird ein Kommunikationsparameter von mindestens einem der Datenströme modifiziert.
-
In der
US 2008/0 084 819 A1 sind Systeme und Verfahren für Funknetzkopplungen offenbart, um einen strömungsbasierten Lastausgleich für die Funknetzkopplungen zu ermöglichen. Dabei können Zuordnungen zwischen Strömen und Funknetzkopplungen auf Eigenschaften der Ströme und Eigenschaften der Funknetzkopplungen beruhen.
-
Die
US 2007/0 097 907 A1 offenbart ein Verfahren zur Optimierung der Kanalbindung von paketorientierten Warteschleifen über mehrere Kanäle eines Kommunikationsmanagementsystems hinweg. Dabei kann zur Datenkompression eine MPEG-Technik verwendet werden.
-
In Talluri, Raj; Oehler, Karen; Bannon, Thomas; Courtney, Jonathan D.; Das, Arnab; Liao, Judy: ”A Robust, Scalable, Object-Based Video Compression Technique for Very Low Bit-Rate Coding” in: IEEE Transactions on Circuits and Systems for Video Technology, Vol. 7. No. 1, February 1997, Seiten 221 bis 233 ist ein Videokompressionsverfahren offenbart, das eine Bandbreiteneinspartechnik verwendet, bei der ein Datenstrom in eine Vielzahl von Objekten zergliedert wird und jedes Objekt mit einer vorherigen Version des Objekts verglichen wird, um eine Veränderung zu detektieren. Das Objekt wird nur dann übertragen, wenn die Veränderung zu der zuvor aufgezeichneten Version des Objekts einen Schwellenwert überschreitet.
-
Die
EP 1 630 744 A1 offenbart ein Verfahren und eine Vorrichtung zur Codierung von Videosignalen, wobei eine Bandbreiteneinspartechnik verwendet wird, die einen Videodatenstrom in eine Vielzahl von Objekten zergliedert und jedes Objekt mit einer vorherigen Version des Objekts vergleicht, um eine Veränderung zu detektieren. Das Objekt wird nur dann übertragen, wenn die Veränderung zu der zuvor aufgezeichneten Version des Objekts einen Schwellenwert überschreitet
-
ZUSAMMENFASSUNG
-
Es wird ein Fernsteuerungssystem eines fingerfertigen Roboters eines lokalen Systems bereitgestellt, wobei das Fernsteuerungssystem durch Telepräsenz einem entfernten menschlichen Bediener das Gefühl vermittelt, dass er direkt mit der Umgebung des Roboters interagiert, umfasst ein Kommunikationssystem zur Übermittlung von Daten über ein Netzwerk mit hoher Latenzzeit und geringer Bandbreite, wobei das Kommunikationssystem einen Kommunikationsprozessor, der ausgestaltet ist, um eine Sammlung von Daten von einem lokalen System zu empfangen, und einen Sender/Empfänger in Verbindung mit dem Kommunikationsprozessor enthält.
-
Der Sender/Empfänger ist ausgestaltet, um Daten über ein Netzwerk gemäß einer Vielzahl von Kommunikationsparametern zu senden und zu empfangen. Der Kommunikationsprozessor ist ausgestaltet, um die Sammlung von Daten in eine Vielzahl von Datenströmen zu unterteilen; um jedem der jeweiligen Datenströme eine Priorität zuzuweisen, wobei die Priorität die Kritikalität des jeweiligen Datenstroms widerspiegelt; und um einen Kommunikationsparameter von mindestens einem der Vielzahl von Datenströmen gemäß der Priorität des mindestens einen Datenstroms zu modifizieren. Bei einer Ausgestaltung kann die Vielzahl von Kommunikationsparametern ein Kommunikationsprotokoll, eine Sendepriorität, ein Übertragungsverfahren, ein Sendeformat, eine Sendefrequenz, eine Aktualisierungsfrequenz, ein Redundanzniveau und/oder ein Fehlerprüfungsniveau umfassen.
-
Der Kommunikationsprozessor enthält erfindungsgemäß ferner ein Verarbeitungsmodul, das ausgestaltet ist, um einen Datenstrom zu empfangen und um eine Bandbreiteneinspartechnik auszuführen, um die Menge an redundanten Informationen innerhalb des gesendeten Datenstroms zu minimieren. Eine derartigen Bandbreiteneinspartechnik umfasst, dass: ein Datenstrom in eine Vielzahl von Objekten zergliedert wird; ein Objekt mit einer vorherigen Version des Objekts verglichen wird, um eine Veränderung bei dem Objekt zu detektieren; und das Objekt nur dann gesendet wird, wenn die Veränderung zu der zuvor aufgezeichneten Version des Objekts einen Schwellenwert überschreitet.
-
Bei einer Ausgestaltung kann das lokale System in Robotersystem sein, das einen fingerfertigen Roboter und einen Controller enthält. Zugleich kann der fingerfertige Roboter 42 Freiheitsgrade enthalten. Auf diese Weise kann die Vielzahl von Datenströmen einen visuellen Datenstrom, einen Betriebsstatus-Datenstrom und einen Befehls- und Steuerdatenstrom enthalten.
-
Zudem kann ein Fernsteuerungsverfahren eines fingerfertigen Roboters eines lokalen Systems, wobei das Fernsteuerungsverfahren durch Telepräsenz einem entfernten menschlichen Bediener das Gefühl vermittelt, dass er direkt mit der Umgebung des Roboters interagiert, umfassen ein Verfahren zum Übermitteln von Daten über ein Netzwerk mit hoher Latenzzeit und geringer Bandbreite, durch das die Daten in eine Vielzahl von Datenströmen unterteilt werden, wobei jeder Datenstrom ausgestaltet ist, um jeweils über ein Netzwerk gemäß einer Vielzahl von Kommunikationsparametern gesendet zu werden; jedem jeweiligen Datenstrom eine Priorität zugewiesen wird, wobei die Priorität die Kritikalität des jeweiligen Datenstroms widerspiegelt; ein Kommunikationsparameter für mindestens einen der Vielzahl von Datenströmen angepasst wird, um die Priorität des mindestens einen Datenstroms widerzuspiegeln; und die Vielzahl von Datenströmen unter Verwendung der Kommunikationsparameter gesendet wird. Dabei wird mindestens ein Datenstrom mit Hilfe einer Bandbreiteneinspartechnik optimiert, um die Menge an redundanten Informationen darin zu minimieren, indem ein Datenstrom in eine Vielzahl von Objekten zergliedert wird; ein Objekt mit einer vorherigen Version des Objekts verglichen wird, um eine Veränderung bei dem Objekt zu detektieren; und das Objekt nur dann gesendet wird, wenn die Veränderung zu der zuvor aufgezeichneten Version des Objekts einen Schwellenwert überschreitet.
-
Die vorstehenden Merkmale und Vorteile und andere Merkmale und Vorteile der vorliegenden 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.
-
KUZRBESCHREIBUNG DER ZEICHNUNGEN
-
1 ist eine schematische perspektivische Ansicht eines Robotersystems.
-
2 ist eine schematische Zeichnung eines Robotersystems, das über ein Netzwerk mit einem entfernten Steuerendgerät gekoppelt ist.
-
3 ist eine schematische Zeichnung eines Kommunikationsprozessors.
-
4 ist eine schematische Zeichnung eines Visualisierungsverarbeitungsmoduls.
-
5 ist ein Flussdiagramm eines Kommunikationsverfahrens zur Verwendung mit einem Datennetzwerk mit hoher Latenzzeit und geringer Bandbreite.
-
GENAUE BESCHREIBUNG
-
Mit Bezug auf die Zeichnungen, bei denen gleiche Bezugszeichen gleiche oder ähnliche Komponenten in den verschiedenen Ansichten bezeichnen, und mit 1 beginnend, ist ein Robotersystem 10 gezeigt, das einen fingerfertigen Roboter 11 und einen Controller 12 enthält. Der Roboter 11 kann verschiedene Manipulatoren enthalten, die eine Vielzahl von sehnengetriebenen Fingern 14 enthalten. Der Controller 12 kann als ein Prozessor oder eine andere geeignete Steuervorrichtung ausgeführt sein, die in elektrischer Verbindung mit dem Roboter 11 stehen kann. Der Controller 12 kann ein oder mehrere Steuersysteme enthalten oder ausführen, die jeweils eine oder mehrere Steuerroutinen ausführen können.
-
Der Controller 12 kann so betrieben werden, dass er eines oder mehrere robotisch betätigte Gelenke des Roboters 11 (z. B. ein Schultergelenk 13, ein Ellenbogengelenk 15, ein Handgelenk 17, ein Nackengelenk 19, ein Taillengelenk 21 oder Gelenke 23 der Finger 14) in einer koordinierten Weise, die eine Aufgabe durchführen kann, manipuliert. Beim Ergreifen eines Objekts 29 beispielsweise kann der Controller die Finger 14 des fingerfertigen Roboters 11 manipulieren, etwa indem er dynamisch die Spannung variiert, die durch eine oder mehrere (nicht gezeigte) Sehnen aufgebracht wird. Der Controller 12 kann als Beispiel und ohne Einschränkung eine kraftbasierte Steuerung und/oder eine positionsbasierte Steuerung verwenden, um die Spannung zu regeln, die innerhalb der Sehnen aufrechterhalten wird. Derartige Steuertechniken können auf einer Kraft- und/oder Positionsrückmeldung in einem geschlossenen Kreis beruhen, der die Steuerbarkeit verfeinern kann. Innerhalb des Controllers 12 kann das spezielle Steuergesetz, das gerade angewendet wird, d. h. Kraft oder Position, auf der Grundlage der Art der Betätigung und der Verfügbarkeit einer Rückmeldung von Sensoren, die in der Nähe der Bewegung angeordnet sind, gewählt werden.
-
Der in 1 gezeigte Roboter 11 kann mit einem menschenähnlichen Erscheinungsbild und mit menschenähnlichen Geschicklichkeitsniveaus in dem Ausmaß ausgestaltet sein, das zum Erfüllen einer gegebenen Arbeitsaufgabe notwendig ist. Daher kann der Roboter 11 ausgestaltet sein, um die Bewegungen eines entfernten menschlichen Bedieners/Anwenders nachzuahmen, und dem Anwender das Gefühl vermitteln, dass er direkt mit der Umgebung des Roboters 11 interagiert – speziell, wenn die Bewegung des Roboters so programmiert ist, dass sie sich der Bewegung des Anwenders eng annähert. Durch diese telerobotische Anwesenheit kann ein Anwender über den Roboter 11 Aufgaben in Umgebungen bewerkstelligen, die für die routinemäßige menschliche Anwesenheit zu rau oder zu gefährlich sein können.
-
Der Roboter 11 kann eine Vielzahl von voneinander unabhängig und voneinander abhängig bewegbaren stellgliedgetriebenen Robotergelenken aufweisen, die jeweils einen oder mehrere Freiheitsgrade (degrees of freedom, DOF) aufweisen können. Daher kann der Roboter 11 zu einer redundanten Bewegung in der Lage sein, wobei bestimmte Gelenke einander überschneidende Bewegungsbereiche aufweisen können. Zum Beispiel können bestimmte nachgiebige Gelenke wie etwa das Schultergelenk 13 und das Ellenbogengelenk 15 mindestens zwei Freiheitsgrade in der Form von Kippen und Rollen aufweisen. Auf ähnliche Weise kann das Nackengelenk 19 mindestens drei Freiheitsgrade aufweisen, während die Taille und das Handgelenk 21 bzw. 17 einen oder mehrere Freiheitsgrade aufweisen können. In Abhängigkeit von der Komplexität der Aufgabe kann sich der Roboter 11 mit über 42 Freiheitsgraden bewegen. Jedes Robotergelenk kann intern von einem oder mehreren Stellgliedern, etwa Motoren, linearen Stellglieder, rotatorischen Stellgliedern und dergleichen angetrieben sein.
-
Bei einer Ausführungsform kann der Roboter 11 nur eine Unterarmanordnung 25 enthalten. Bei einer anderen Ausführungsform kann der Roboter 11 zusätzliche menschenähnliche Komponenten enthalten, wie etwa einen Kopf 16, einen Torso 18, eine Taille 20, Arme 22, Hände 24, Finger 14 und diesen gegenüberstellbare Daumen 26, wobei die verschiedenen vorstehend erwähnten Gelenke innerhalb oder zwischen diesen Komponenten angeordnet sind. Wie bei einem Menschen können beide Arme 22 und andere Komponenten Bewegungsbereiche aufweisen, die sich in einem gewissen Grad überschneiden. 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 starre Basis in Abhängigkeit von der speziellen Anwendung oder der beabsichtigten Verwendung des Roboters. Eine Stromversorgung 28 kann am Roboter 11 einstückig montiert sein, z. B. ein wiederaufladbarer Batteriestapel, der auf dem Rücken des Torsos 18 getragen oder mitgeführt wird, oder eine andere geeignete Energieversorgung, oder sie kann durch ein Spannkabel entfernt angebracht sein, um genügend elektrische Energie für die verschiedenen Gelenke zur Bewegung derselben bereitzustellen.
-
Der Controller 12 kann als ein Server oder eine Hostmaschine ausgeführt sein, d. h. ein oder mehrere digitale Computer oder Datenverarbeitungsvorrichtungen, die jeweils einen oder mehrere Mikroprozessoren oder zentrale Verarbeitungseinheiten (CPU), einen Festwertspeicher (ROM), einen Speicher mit wahlfreiem Zugriff (RAM), einen elektrisch löschbaren 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 Vorrichtungen (I/O) sowie Signalaufbereitungs- und Pufferelektronik aufweisen.
-
Obwohl es in 1 der Einfachheit und Klarheit halber als eine einzige Vorrichtung gezeigt ist, können die verschiedenen Elemente des Steuersystems 12 über so viele verschiedene Hardware- und Softwarekomponenten verteilt sein, wie es zur optimalen Steuerung des Roboters 11 notwendig ist. Die einzelnen Steuerroutinen/Steuersysteme, die im Controller 12 vorhanden sind oder für diesen leicht zugänglich sind, können im ROM oder in einer anderen geeigneten konkreten Speicherstelle und/oder Speichervorrichtung gespeichert sein und von zugehörigen Hardwarekomponenten des Steuersystems automatisch ausgeführt werden, um die jeweilige Steuerfunktionalität bereitzustellen.
-
2 stellt ein Kommunikationssystem 30 dar, das beispielsweise ermöglichen kann, dass ein entferntes Steuerendgerät 32 das Verhalten und den Betrieb des fingerfertigen Roboters 11 über ein Netzwerk 34 mit hoher Latenzzeit und geringer Bandbreite steuert. Das System 30 kann gleichermaßen auf andere Systeme angewendet werden, die mehrere Arten von Daten über eine Netzwerkverbindung übertragen. Wie gezeigt kann das Kommunikationssystem 30 mindestens einen Kommunikationsprozessor 36 und einen Sender/Empfänger 38 enthalten, die lokal für den Roboter 11 sein können. Zudem wird in Betracht gezogen, dass ein ähnliches Kommunikationssystem (nicht gezeigt) in der Nähe der entfernten Steuerstation 32 angeordnet (oder damit zusammengebaut) sein kann, um eine bidirektionale Kommunikation zu ermöglichen. Ähnlich wie der Controller 12 kann der Kommunikationsprozessor 36 als ein oder mehrere digitale Computer oder Datenverarbeitungsvorrichtungen ausgeführt sein, die jeweils einen oder mehrere Mikroprozessoren oder zentrale Verarbeitungseinheiten (CPU), einen Festwertspeicher (ROM), einen Speicher mit wahlfreiem Zugriff (RAM), einen elektrisch löschbaren 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 Vorrichtungen (I/O) sowie Signalaufbereitungs- und Pufferelektronik aufweisen.
-
Der Sender/Empfänger 38 kann ein drahtloser bzw. Funk- oder ein drahtgebundener Sender/Empfänger sein, der unter Verwendung beliebiger bekannter oder hier nachstehend entwickelter Datenübertragungsprotokolle betrieben werden kann. Der Sender/Empfänger 38 kann beliebige oder alle notwendigen Schaltungen enthalten, um es dem Kommunikationssystem 30 zu ermöglichen, ein Datensignal über eine Distanz zu senden und/oder zu empfangen. Der Sender/Empfänger 38 kann beispielsweise einen oder mehrere Mikroprozessoren, einen Festwertspeicher (ROM), einen Speicher mit wahlfreiem Zugriff (RAM), einen elektrisch löschbaren programmierbaren Festwertspeicher (EEPROM), Hochgeschwindigkeitstaktgeber, Signalpuffer, Sendeantennen, Empfangsantennen, Signalverstärker, Signalzwischenverstärker oder andere zugehörige I/O-Komponenten verwenden. Bei einer Ausführungsform kann der Sender/Empfänger 38 ausgelegt sein, um eine bidirektionale Datenkommunikation in einer extraterrestrischen Umgebung zu ermöglichen, bei der es notwendig sein kann, die Daten über mehrere tausend oder mehrere millionen Kilometer hinweg zu übertragen.
-
Wenn der fingerfertige Roboter 11 in einer extraterrestrischen Umgebung arbeitet, etwa an Bord der Internationalen Raumstation, kann das Netzwerk 34 beispielweise einen oder mehrere Relais-Satelliten 40 umfassen, die in einer bidirektionalen Kommunikation mit dem lokalen Kommunikationssystem 30 stehen können. Zudem kann das Netzwerk 34 eine oder mehrere terrestrische Kommunikationsantennen 42 umfassen, die in einer bidirektionalen Kommunikation mit dem einen oder den mehreren Relais-Satelliten 40 stehen können. Das Netzwerk 34 kann außerdem beliebige Relais, Schalter, Sender/Empfänger, Hostcomputer oder Kommunikationsschaltungen enthalten, die erforderlich sein können, um die bidirektionale Übertragung von Daten zu ermöglichen. Bei einer Ausführungsform kann das Kommunikationsbindeglied 44, das die verschiedenen Komponenten des Netzwerks 34 verbindet, ein mehrkanaliges Datenbindeglied sein (das in 2 schematisch als ein dickerer Übertragungspfeil gezeigt ist), bei dem jeder Datenkanal seine eigene jeweilige Bandbreite, Frequenz und/oder Sendepriorität auf dem Netzwerk 34 aufweisen kann. Bei einer Ausführungsform, in der das Netzwerk 34 physiklisch hunderte oder tausende von Kilometern überspannt, kann die Gesamtbandbreite des Netzwerks oder die Bandbreite jedes Kanals aufgrund der Kosten des Sendens eines Hochleistungssignals zusammen mit der Notwendigkeit, eine signifikante Fehlerprüfung, Rauschfilterung und/oder Redundanz einzuführen, um die Wahrscheinlichkeit von Signalfehlern und/oder fehlerhaften Daten zu verringern, signifikant eingeschränkt sein.
-
Das entfernte Steuerendgerät 32 kann es einem Anwender ermöglichen, das Verhalten und den Betrieb des fingerfertigen Roboters 11 zu steuern, während es für den Anwender außerdem durch visuelle und funktionale Rückmeldungen, die durch den Roboter 11 beschafft werden, eine Telepräsenz in Echtzeit bereitstellt. Das entfernte Steuerendgerät 32 kann beispielsweise eine Mensch-Maschine-Schnittstelle (HMI), etwa einen Joystick, eine Maus, mit Sensoren versehene Handschuhe (die ermöglichen, dass das System die Hand/Armbewegungen des Anwenders aufzeichnet) oder eine beliebige andere ähnliche Art zur Erfassung der von einem Anwender beabsichtigten Bewegungen enthalten. Außerdem kann das entfernte Steuerendgerät 32 eine oder mehrere visuelle Anzeigen, wie etwa Computermonitore oder stereoskopische Vollsichtbrillen enthalten, die für den Anwender eine visuelle und funktionale Rückmeldung bereitstellen können. Die visuelle Rückmeldung kann beispielsweise von stereoskopischen Kameras erfasst werden, die im Kopf 16 des Roboters 11 positioniert sind, und kann dem Anwender das Gefühl der tatsächlichen Anwesenheit liefern. Die funktionale Rückmeldung kann eine informelle Rückmeldung auf Systemebene sein, die vom Controller 12 erzeugt werden kann und die funktionale Disposition des Roboters 11 oder den Betriebsstatus der verschiedenen Steuersysteme/Routinen betreffen kann, welche das Verhalten des Roboters direkt steuern können.
-
Das Kommunikationssystem 30 kann außerdem eine Eingabe von einem lokalen Steuerendgerät 46 akzeptieren, das in Funktion und Arbeitsweise dem entfernten Steuerendgerät 32 ähneln kann. Die Begriffe ”lokal” und ”entfernt” sind relativ zu der physikalischen Position des Roboters 11 angeben. Daher kann sich das lokale Steuerendgerät 46 in relativ großer Nähe zu dem gesteuerten Roboter 11 befinden (d. h. ein paar Meter bis ein paar hundert Meter), wohingegen das entfernte Steuerendgerät 32 vom Roboter 11 um eine viel größere Distanz getrennt sein kann und und/oder mit dem Roboter 11 nur über das Netzwerk 34 in Verbindung stehen kann. Das entfernte und das lokale Steuerendgerät 32, 46 können in einer gespiegelten Anordnung konfiguriert sein oder sie können als eine zusammenarbeitende Anordnung zum Teilen von Arbeiten/Aufgaben konfiguriert sein.
-
Bei einer gespiegelten Anordnung kann der Kommunikationsprozessor 36 die Befehlssignale von den Steuerendgeräten 32, 46 gemäß einem vorbestimmten Schema priorisieren. Das lokale Steuerendgerät 46 kann beispielsweise mit einer Überschreibfähigkeit ausgestaltet sein, die es einem lokalen Anwender ermöglichen kann, sich der Steuerung des Roboters 11 vom entfernten Steuerendgerät 32 zu bemächtigen. Diese gespiegelte Konfiguration kann ermöglichen, dass der lokale Anwender die Operation fortsetzt, zum Beispiel, wenn das Kommunikationsbindeglied 44 unterbrochen ist. Im Gegensatz dazu kann bei einer zusammenarbeitenden Anordnung jedes Steuerendgerät 32, 46 für bestimmte Aspekte der Robotersteuerung verantwortlich sein und sie können im Gespann arbeiten, um ein gemeinsames Ziel zu bewerkstelligen.
-
Um sich an relativ geringe feste Bandbreite des Kommunikationsbindeglieds 44 anzupassen, kann der Kommunikationsprozessor 36 ausgestaltet sein, um die Visualisierung, den Betriebsstatus und/oder die Robotersteuerung in verschiedene Datenströme (z. B. die Datenströme 50, 52 bzw. 54) zu unterteilen, die mithilfe des Senders/Empfängers jeweils über das Netzwerk 34 in Übereinstimmung mit verschiedenen Kommunikationsparametern übermittelt werden können (z. B. einem Kommunikationsprotokoll, einer Sendepriorität, einem Übertragungsverfahren, einem Sendeformat, einer Sendefrequenz, einer Aktualisierungsfrequenz und/oder einem Niveau der Redundanz/Fehlerprüfung). Bei einer Ausführungsform können sich die Art und/oder die Priorität der Datenübermittlung auf der Grundlage der Kritikalität und/oder der Bedeutung der Daten, die übertragen werden, unterscheiden. Zum Beispiel können Daten, die als kritisch angesehen werden, auf einen Datenkanal übertragen werden, der eine höhere Bandbreite und/oder Übertragungsgeschwindigkeit aufweist, und sie können einem schnelleren erneuten Sendeaufruf oder einer umfangreicheren Fehlerüberprüfung unterliegen als Daten, die als weniger kritisch angesehen werden.
-
3 stellt auf schematische Weise eine Ausführungsform des Kommunikationsprozessors 36 dar und zeigt insbesondere, dass der Prozessor 36 einen Datenmanager 60 aufweist, der ausgestaltet ist, um eine Sammlung von Daten 61 an das lokale System (z. B. den Roboter 11 und den Controller 12) zu senden und von dort zu empfangen. Der Datenmanager 60 kann die Sammlung von Daten 61 in eine Vielzahl von Datenströmen unterteilen (oder empfangene Daten konsolidieren) und jeden Datenstrom mit verschiedenen Verarbeitungsmodulen übermitteln (z. B. einem Visualisierungsverarbeitungsmodul 62, einem Betriebsstatusverarbeitungsmodul 64 und einem Steuerungsverarbeitungsmodul 66). Es versteht sich, dass auf der Grundlage des Wesens des entfernten Systems und der Arten von Informationen, die möglicherweise über das Netzwerk übertragen werden müssen, mehr oder weniger Verarbeitungsmodule enthalten sein können. Jedes Verarbeitungsmodul 62, 64, 66 kann beispielsweise ausgestaltet sein, um einen Datenstrom vom Datenmanager 60 zu empfangen, um festzustellen, welche Arten von Informationen übertragen werden müssen (z. B. alle Daten, nur Daten, die neu sind oder sich vor kurzem verändert haben und/oder nur Daten, die speziell angefordert worden sind), und/oder um das geeignete Niveau an Kompression oder Redundanz für die Daten festzustellen und anzuwenden.
-
Ein Netzwerkschnittstellenmodul 68, 70, 72 kann mit jedem der jeweiligen Verarbeitungsmodule 62, 64, 66 in Verbindung stehen und kann ausgestaltet sein, um die Netzwerkverbindung über das Netzwerk 34 (mithilfe des Senders/Empfängers 38) zu ermöglichen. Die Netzwerkschnittstellenmodule 62, 64, 66 können jeweils zu einer bidirektionalen oder unidirektionalen Kommunikation in der Lage sein und können als Sender, als Empfänger oder als Sender/Empfänger vorgesehen sein. Zum Beispiel können die Sendenetzwerkmodule 68, 70 ausgestaltet sein, um visuelle Daten 50 und Betriebsdaten 52 über das Netzwerk 34 an das entfernte Steuerendgerät 32 zu senden. Die Sendenetzwerkmodule 68, 70 können die von den jeweils verbundenen Verarbeitungsmodulen 62, 64 empfangenen Daten paketieren und können die Frequenz steuern, mit der neue Daten gesendet werden (z. B. Push-Übertragung, periodische Push-Übertragung, Publish/Subscribe oder auf Anforderung basierte Übertragung). Im Gegensatz dazu kann das Empfangsnetzwerkmodul 72 beispielsweise ausgestaltet sein, um Steuerdaten 54 vom Netzwerk 34 zu empfangen, um die Daten 54 zu verifizieren/auf Fehler zu prüfen und/oder um dem Sender mit geeigneten Prüfsummenwerten oder ähnlichen Empfangsbestätigungen zu antworten. Das Empfangsnetzwerkmodul 72 kann dann beliebige empfangene Daten an das Steuerungsverarbeitungsmodul 66 liefern, wo sie entkomprimiert, mit lokalen Steuersignalen 74 priorisiert und über den Datenmanager 60 für den Controller 12 verfügbar gemacht werden.
-
Bei einer Ausführungsform, bei der ein fingerfertiger Roboter 11 mithilfe eines entfernten Steuerendgeräts 32 gesteuert wird, kann jedem der drei jeweiligen Datenströme: d. h. einem visuellen Datenstrom 50, einem Betriebsstatusdatenstrom 52 und einem Befehls- und Steuerungsdatenstrom 54 auf der Grundlage der Kritikalität der Daten eine eigene Priorität zugewiesen werden (z. B. eine ”hohe”, ”mittlere” und/oder ”niedrige” Priorität). Zum Beispiel kann dem Befehls- und Steuerungsdatenstrom 54 wegen seiner direkten Beziehung zu der Bewegung und Steuerung des Roboters 11 eine ”hohe” Priorität zugewiesen werden. Dem visuellen Datenstrom 50 kann eine ”mittlere” Priorität zugewiesen werden, da die visuelle Rückmeldung vom Anwender in hohem Maß geschätzt werden kann, sie jedoch weniger kritisch als die Befehlsdaten sein kann. Schließlich kann dem Betriebsstatusdatenstrom 52 eine ”niedrige” Priorität zugewiesen werden, da er nur zur Information dienen kann und keine direkte Auswirkung auf die Steuerung des Roboters 11 aufweisen kann.
-
Die zugewiesene Priorität der zugrunde liegenden Daten kann die Kommunikationsparameter vorschreiben, die jedem Datenstrom 50, 52, 54 zugewiesen oder auf diesen angewendet werden. Besonders wichtig ist, dass die Kommunikationsparameter die Art des Netzwerkkommunikationskanals, der für die Datenübertragung verwendet wird, und die Frequenz und die Weise, mit der die Daten aktualisiert werden, angeben können. Zudem können die Kommunikationsparameter das Kommunikationsprotokoll, die Sendepriorität, das Sendeformat und/oder das Niveau an Redundanz/Fehlerprüfung angeben, die verwendet werden können. Zum Beispiel kann der Befehls- und Steuerungsdatenstrom 54 mit ”hoher” Priorität ununterbrochen in einem konstanten Datenstrom unter Verwendung eines Bindeglieds mit hoher Zuverlässigkeit, einer relativ umfangreichen Fehlerkorrektur und/oder Redundanz, eines Handshakes und/oder von Prüfsummen übertragen werden. Der Betriebsstatusdatenstrom 52 mit ”mittlerer” Priorität kann unter Verwendung einer Publish/Subscribe-Methodik mit periodischer Aktualisierung übertragen werden, kann aber weniger Fehlerprüfung/Validierung als die Befehls- und Steuerungsdaten enthalten oder kann unter Verwendung eines Netzwerkkanals mit einer vergleichsweise niedrigeren Leistung als der Kanal, der zur Übermittlung der Befehls- und Steuerungsdaten verwendet wird, übertragen werden. Schließlich kann der visuelle Datenstrom 50 mit ”niedriger” Priorität auf einem noch schmaleren Übertragungskanal unter Verwendung eines konstanten Datenstroms übertragen werden, wobei nur Best-Effort-Aktualisierungen verwendet werden.
-
Um weiter Bandbreite einzusparen, können die verschiedenen Datenströme 50, 52, 54 hochgradig komprimiert werden und/oder sie können verschiedene andere Bandbreiteneinspartechniken verwenden. Beispielsweise kann das Visualisierungsverarbeitungsmodul 62, wie in 4 allgemein dargestellt ist, eine Bildzerlegungsvorrichtung bzw. einen Bildparser 80 enthalten, der eine Videoeinspeisung 82 (die aus mehreren sequentiellen Videobildern besteht) in getrennte Elemente, Regionen oder Schichten (die allgemein als ”visuelle Objekte” bezeichnet werden) unterteilen kann. Zum Beispiel kann die Videoeinspeisung 82 in ein oder mehrere Vordergrundelemente, die auf einer oder mehreren Hintergrundschichten angeordnet sind, unterteilt werden. Alternativ kann die Videoeinspeisung 82 in eine Vielzahl von Regionen (z. B. Quadranten) unterteilt werden oder sie kann unter Verwendung eines anderen geeigneten Unterteilungsmittels zerlegt werden.
-
Jedes visuelle Objekt kann vom Bildparser 80 an einen eigenen Bildprozessor (z. B. die Bildprozessoren 84a–84d) weitergeleitet werden, bei dem das jeweilige visuelle Objekt auf eine beliebige detektierbare Bewegung hin analysiert werden kann. Zum Beispiel kann der Bildprozessor eine aktuelle Darstellung des visuellen Objekts mit einer Darstellung des gleichen Objekts von einem zuvor beschafften Videobild vergleichen. Wenn es keine Veränderung gibt, kann der jeweilige Bildprozessor beispielsweise einen Null-Satz oder eine andere Kennung ausgeben, die keine Veränderung anzeigen kann. Wenn es jedoch eine wahrgenommene Bewegung gibt, kann der Bildprozessor das aktualisierte visuelle Objekt an einen Kompressionsprozessor 86 ausgeben, wo es komprimiert und zur Übertragung über das Netzwerk 34 vorbereitet werden kann. Eine beliebige detektierte visuelle Veränderung im Objekt kann als eine ”Bewegung” betrachtet werden, zum Beispiel, wenn die Größe der visuellen Veränderung zu einem vorherigen Videobild einen vordefinierten Schwellenwert überschreitet. Zudem kann das Rohbild im Zeitbereich oder Frequenzbereich gefiltert werden, um zu verhindern, dass beliebige Bildartefakte (z. B. Artefakte, die primär auf die Bilderfassungsvorrichtung, die Videokompression und/oder die Datenübertragung zurückzuführen sind) als eine detektierbare Bewegung des Objekts aufgefasst werden.
-
Ähnlich wie die Visualisierungsverarbeitungstechniken können der Befehls- und Steuerungsdatenstrom 54 und der Betriebsstatusdatenstrom 52 ausgestaltet sein, um Bandbreite einzusparen, indem sie nur Daten übermitteln, wenn sich die Daten zu einer vorherigen Übertragung verändert haben. Eine derartige Technik kann die Übertragung redundanter Datenpakte minimieren, wenn bestimmte Aspekte des Systems relativ statisch sind.
-
Obwohl das vorliegende Kommunikationssystem 30 mit Bezug auf einen fingerfertigen Roboter 11 beschrieben wird, versteht es sich, dass die hier beschriebenen Kommunikationstechniken gleichermaßen auf beliebige andere Systeme oder Netzwerkkonfigurationen zutreffen können. Obwohl diese Kommunikationsmethodik für Anwendungen mit hoher Latenzzeit und geringer Bandbreite besonders geeignet sein kann, etwa wenn mit entfernt angeordneten extraterrestrischen Vorrichtungen kommuniziert wird, kann sie in rein terrestrischen Anwendungen genauso nützlich sein, bei denen die Bandbreite beschränkt ist oder bei denen die Datenübertragung vorzugsweise minimiert ist. Bei einer Konfiguration können die vorliegenden Kommunikationstechniken für Master-Slave-Netzwerkroboteranwendungen besonders geeignet sein, oder für eine andere Kommunikation auf Systemebene.
-
Wie allgemein in 5 dargestellt ist, können die vorliegenden Kommunikationstechniken allgemein durch ein Kommunikationsverfahren 100 dargestellt werden. Dieses Verfahren 100 kann umfassen, dass eine Sammlung von Daten in eine Vielzahl von Datenströmen unterteilt wird, 110, wobei jeder Datenstrom ausgestaltet ist, um über ein Netzwerk gemäß einer Vielzahl von Kommunikationsparametern übertragen zu werden (z. B. ein Kommunikationsprotokoll, eine Sendepriorität, ein Übertragungsverfahren, ein Sendeformat, eine Sendefrequenz und/oder ein Niveau an Redundanz/Fehlerprüfung). Nach der Unterteilung kann jedem Datenstrom eine jeweilige Priorität zugewiesen werden, welche die Kritikalität des Datenstroms widerspiegelt, 112. Das Verfahren 100 kann ferner umfassen, dass ein Kommunikationsparameter für mindestens einen der Vielzahl von Datenströmen angepasst wird, um die Priorität des Datenstroms widerzuspiegeln, 114, und dass die Vielzahl von Datenströmen gemäß der angepassten Kommunikationsparameter übertragen werden, 118.
-
Um festgelegte Beschränkungen der Bandbreite weiter zu berücksichtigen, kann das Verfahren 100 umfassen, dass Bandbreiteneinspartechniken verwendet werden, 116, um die Menge an redundanten oder statischen Informationen im übertragenen Datenstrom zu minimieren. Derartige Bandbreiteneinspartechniken können umfassen, dass die Daten in eine Vielzahl von Objekten 120 zerlegt werden, dass ein Objekt mit einer zuvor aufgezeichneten Version des Objekts verglichen wird, 122, um eine Veränderung im Objekt zu detektieren, und dass das Objekt nur übertragen wird, wenn die Veränderung zu der zuvor aufgezeichneten Version des Objekts einen Schwellenwert überschreitet, 124.
-
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 Schutzumfang der beigefügten Ansprüche erkennen. Es ist beabsichtigt, dass alle Gegenstände, die in der vorstehenden Beschreibung enthalten sind oder in den beiliegenden Zeichnungen gezeigt sind, nur als Veranschaulichung und nicht als Einschränkung interpretiert werden sollen.