DE202014011117U1 - Mobile Agenten zum Manipulieren, Bewegen und/oder Neuausrichten von Komponenten - Google Patents

Mobile Agenten zum Manipulieren, Bewegen und/oder Neuausrichten von Komponenten Download PDF

Info

Publication number
DE202014011117U1
DE202014011117U1 DE202014011117.0U DE202014011117U DE202014011117U1 DE 202014011117 U1 DE202014011117 U1 DE 202014011117U1 DE 202014011117 U DE202014011117 U DE 202014011117U DE 202014011117 U1 DE202014011117 U1 DE 202014011117U1
Authority
DE
Germany
Prior art keywords
component
mobile
agents
agent
mobile agent
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.)
Expired - Lifetime
Application number
DE202014011117.0U
Other languages
English (en)
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.)
Anki Inc
Original Assignee
Anki Inc
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 Anki Inc filed Critical Anki Inc
Publication of DE202014011117U1 publication Critical patent/DE202014011117U1/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63HTOYS, e.g. TOPS, DOLLS, HOOPS OR BUILDING BLOCKS
    • A63H33/00Other toys
    • A63H33/04Building blocks, strips, or similar building parts
    • A63H33/042Mechanical, electrical, optical, pneumatic or hydraulic arrangements; Motors
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63HTOYS, e.g. TOPS, DOLLS, HOOPS OR BUILDING BLOCKS
    • A63H33/00Other toys
    • A63H33/04Building blocks, strips, or similar building parts
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63HTOYS, e.g. TOPS, DOLLS, HOOPS OR BUILDING BLOCKS
    • A63H17/00Toy vehicles, e.g. with self-drive; ; Cranes, winches or the like; Accessories therefor
    • A63H17/26Details; Accessories
    • A63H17/36Steering-mechanisms for toy vehicles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • G06F3/014Hand-worn input/output arrangements, e.g. data gloves
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0346Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of the device orientation or free movement in a 3D space, e.g. 3D mice, 6-DOF [six degrees of freedom] pointers using gyroscopes, accelerometers or tilt-sensors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0362Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of 1D translations or rotations of an operating part of the device, e.g. scroll wheels, sliders, knobs, rollers or belts
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63HTOYS, e.g. TOPS, DOLLS, HOOPS OR BUILDING BLOCKS
    • A63H2200/00Computerized interactive toys, e.g. dolls

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Toys (AREA)
  • User Interface Of Digital Computer (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Manipulator (AREA)

Abstract

System zum Manipulieren von Komponenten, umfassend: eine Arbeitsoberfläche; mindestens eine separate manipulierbare Komponente; und mindestens einen mobilen Agenten, der konfiguriert ist, um mindestens eine Komponente an der Arbeitsoberfläche zu manipulieren, umfassend: einen Prozessor; einen Sensor, kommunikativ an den Prozessor gekoppelt, der konfiguriert ist, um die zumindest eine Komponente zu erkennen; einen Antriebsmechanismus, kommunikativ an den Prozessor gekoppelt, der konfiguriert ist, um dem mobilen Agenten Triebkraft zu verleihen; und zumindest einen Aktuator, kommunikativ an den Prozessor gekoppelt, der konfiguriert ist, um die zumindest eine Komponente als Reaktion auf Anweisungen zu manipulieren.

Description

  • QUERVERWEIS AUF VERWANDTE ANMELDUNGEN
  • Die vorliegende Anmeldung beansprucht die Priorität der vorläufigen US-Anmeldung mit der Seriennummer 61/829,419 für „Mobile Agents for Constructing Generalized Structures“ (Aktenzeichen des Bevollmächtigten ANK003-PROV), eingereicht am 31. Mai 2013, welche per Verweis in dieses Dokument einbezogen ist.
  • Die vorliegende Anmeldung ist mit der US-Gebrauchsmusteranmeldung mit der Seriennummer 13/963,638 für „Integration of a Robotic System with One or More Computing Devices“ (Aktenzeichen des Bevollmächtigten ANK002), eingereicht am 9. August 2013, verwandt, welche per Verweis in dieses Dokument einbezogen ist.
  • Die vorliegende Anmeldung ist mit der US-Gebrauchsmusteranmeldung mit der Seriennummer 12/788,605 für „Distributed System of Autonomously Controlled Toy Vehicles“ (Aktenzeichen des Bevollmächtigten ANK001), eingereicht am 27. Mai 2010 und am 15. Januar 2013 als US-Patent Nr. 8,353,737 veröffentlicht, verwandt, welche per Verweis in dieses Dokument einbezogen ist.
  • TECHNISCHES GEBIET
  • Das vorliegende Dokument bezieht sich auf mobile Agenten, die dazu in der Lage sind, generalisierte Strukturen zu erstellen.
  • HINTERGRUND
  • Blöcke in irgendeiner Form gehören oft zu den ersten Spielsachen, die ein Kind erhält; auf Blöcken basierende Spiele wie Jenga sind weit in das Erwachsenenalter hinein beliebt. Gemein ist sowohl den Blöcken als Produkte, die zur Unterhaltung gedacht sind als auch denjenigen, die zum Erstellen einer Infrastruktur nach menschlichem Maß verwendet werden, die Abhängigkeit von menschlicher Steuerung oder Manipulation in irgendeiner Form, um die an der Erstellung (oder manchmal dem Abbau) beteiligten Aufgaben auszuführen. Anders gesagt sind auf Blöcken basierende Strukturen allgemein nicht dazu in der Lage, sich selbst zu bauen oder abzubauen.
  • Zusätzlich stellen konventionelle Systeme und Bausteinspielsachen keine Techniken bereit, bei denen eine Vielzahl von mobilen Agenten zusammenarbeiten und auf kollaborative Weise interagieren kann, um ein Konstruktionsprojekt fertigzustellen. Außerdem weisen sie keine Mechanismen auf, die emotionale Antworten bereitstellen oder simulieren, die sich auf die Art einer solchen Kollaboration und Interaktion auswirken. Aufgrund solcher Einschränkungen ist das Maß der Bindung und des Interesses an solche(n) Systeme(n) und Spielsachen oft recht begrenzt.
  • KURZDARSTELLUNG
  • Verschiedene Ausführungsformen stellen Mechanismen zum Manipulieren, Bewegen und/oder Neuausrichten von Komponenten wie Blöcken bereit, zum Beispiel, um allgemeine Strukturen zu erstellen. In zumindest einer Ausführungsform sind mobile Agenten (auch als Roboter bezeichnet) auf einer Arbeitsoberfläche tätig, die Markierungen (oder andere maschinenlesbare Codes) trägt, welche die mobilen Agenten beim Aufrechterhalten von aktuellem Wissen über ihre jeweiligen Standorte auf der Arbeitsoberfläche unterstützen. Mobile Agenten identifizieren Komponenten nach Typ und Standort in ihrer Umgebung und verwenden Hardware an Bord, um Komponenten gemäß Anweisungen neu zu platzieren oder neu zu positionieren; solche Anweisungen können von einem Nutzer bereitgestellt werden, oder können auf einer vorprogrammierten oder vorgeplanten Anordnung basieren, oder sie können dynamisch basierend auf aktuellen Bedingungen oder als Antwort auf Handlungen anderer Agenten bestimmt werden. Von mobilen Agenten entweder kooperativ oder individuell ausgeführt, können diese Aufgaben Teil einer größeren, organisierten Sequenz von Zielen sein, die entweder sequenziell oder parallel ausgeführt werden, um Komponenten (wie Blöcke) in Anordnungen zu platzieren. Solche Tätigkeiten können das Erstellen einer Struktur und/oder andere Ziele und/oder Anweisungen zum Ziel haben oder können keine Ziele haben.
  • In zumindest einer Ausführungsform reagieren mobile Agenten auf Veränderungen in der Umgebung, Änderungen laufender Arbeiten und/oder andere Bedingungen. Als Antwort auf solche Veränderungen und Bedingungen können solche Agenten so konfiguriert sein, dass sie Antworten zeigen, die emotionale Reaktionen projektieren oder simulieren; zum Beispiel können die Agenten auf eine Weise reagieren, die mit verschiedenen Ereignissen, sowohl geplant als auch unerwartet, die während der Ausführung ihrer Aufgaben eintreten können, konsistent ist. Verschiedene mobile Agenten können mit verschiedenen Charakterzügen und/oder Temperamenten assoziiert werden, welche statisch oder dynamisch sein können, und welche so konfiguriert sein können, dass sie sich basierend auf Umgebungsbedingungen und/oder dem Verhalten anderer mobiler Agenten verändern. Die mobilen Agenten können weiter so konfiguriert sein, dass sie Umgebungsbedingungen (wie Positionen von Blöcken und anderen Komponenten, Positionen und Bewegungen anderer mobiler Agenten, Temperatur, Terrain, Ziele, Hindernisse, Verhaltensweisen menschlicher Nutzer und/oder ähnliches) unter Verwendung jeder geeigneten Technik erfassen, darunter zum Beispiel visuelle Erfassung, akustische Erfassung, Näherungserfassung, Bewegungserfassung, direkte Kommunikation mit einer Basisstation und/oder mit anderen mobilen Agenten und/oder ähnliches und/oder eine Kombination davon.
  • Durch das Bereitstellen von mobilen Agenten mit einigen oder allen der obigen Merkmale, entweder allein oder in jeder geeigneten Kombination, können die Verhaltensweisen und Interaktionen der verschiedenen mobilen Agenten verbesserte Maße an Interesse und Bindung an Spielsachen und Systeme(n), die gemäß den in diesem Dokument beschriebenen Techniken ausgeführt werden, bereitstellen.
  • Weitere Details und Variationen werden in diesem Dokument beschrieben.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die begleitenden Zeichnungen stellen verschiedene Ausführungsformen dar. Zusammen mit der Beschreibung dienen sie dazu, die Grundsätze und operativen Mechaniken der Ausführungsformen zu erklären. Ein Fachmann erkennt, dass die in den Zeichnungen dargestellten bestimmten Ausführungsformen lediglich beispielhaft sind, und nicht dazu gedacht sind, den Umfang einzuschränken.
  • 1 ist ein Blockdiagramm, das einen mobilen Agenten gemäß einer Ausführungsform darstellt.
  • 2 ist eine Tabelle, die eine Reihe an Antworten und Parametern darstellt, die Handlungen gemäß einem generalisierten Persönlichkeitstyp gemäß einer Ausführungsform anzeigen.
  • 3 ist eine Tabelle, die eine Reihe an emotionalen Charakteristika darstellt, die in Bezug auf Punkte auf einer Skala zwischen gegensätzlichen Charakteristika gemäß einer Ausführungsform definiert werden können.
  • 4 stellt Beispiele für Merkmale dar, die Charakteristika einiger Komponententypen gemäß einer Ausführungsform sein können.
  • 5 stellt ein Beispiel für eine Blockkomponente mit einer rechteckigen Aussparung, die sich zentral auf jeder Seite befindet, und einer kreisförmigen Aussparung, die von jeder Kante abgesetzt ist, gemäß einer Ausführungsform dar.
  • 6 stellt Beispiele für maschinenlesbare Codes dar, die als Markierungen präsentiert werden, die gestaltet sind, um aus verschiedenen Ausrichtungen gemäß verschiedenen Ausführungsformen gelesen zu werden.
  • Die 7A bis 7C stellen Beispiele für Referenzmarken dar, wie sie auf einer Seite einer würfelförmigen Komponente wie einem Block gemäß verschiedenen Ausführungsformen erscheinen können.
  • 8 ist ein Flussdiagramm, das ein Verfahren darstellt, welches mobile Agenten laufend anwenden können, um die Parität zwischen einem virtuellen Zustand und einem physischen Zustand gemäß einer Ausführungsform aufrechtzuerhalten.
  • 9 stellt ein Beispiel gemäß einer Ausführungsform dar, in dem zwei mobile Agenten eine physische Ladung jeweils von einem Ende in Eingriff nehmen und heben und in Abstimmung zu einem vorgesehenen Ort für ihre geteilte Ladung bewegen.
  • 10 ist ein Flussdiagramm, das ein Szenario gemäß einer Ausführungsform darstellt, in dem ein mobiler Agent eine Komponente von einem Nutzer anfordert.
  • 11 ist ein Flussdiagramm, das ein Szenario gemäß einer Ausführungsform darstellt, in dem ein mobiler Agent eine Komponente von einem Nutzer anfordert, wobei der mobile Agent emotionale Zustände zeigen kann.
  • 12 stellt Beispiele gemäß einer Ausführungsform dar, wobei ein mobiler Agent eine Komponente von einem Nutzer anfordert, während er sich in verschiedenen Konstruktionszuständen befindet.
  • 13 ist ein Blockdiagramm, das eine Ausführungsarchitektur gemäß einer Ausführungsform darstellt.
  • 14 stellt ein Beispiel für eine Arbeitsoberfläche mit maschinenlesbaren Codes gemäß einer Ausführungsform dar.
  • 15 stellt Beispiele für maschinenlesbare Codes mit Ausrichtungsindikatoren gemäß verschiedenen Ausführungsformen dar.
  • 16 stellt Beispiele für verschiedene Codezeilen gemäß verschiedenen Ausführungsformen dar.
  • Die 17A und 17B stellen Beispiele für maschinenlesbare Codes gemäß verschiedenen Ausführungsformen dar.
  • 18 stellt ein Beispiel für verschiedene mobile Agenten gemäß einer Ausführungsform dar, die Komponenten auf einer Arbeitsoberfläche manipulieren.
  • 19 stellt ein Beispiel für eine Arbeitsoberfläche mit gemischten Codetypen gemäß einer Ausführungsform dar.
  • 20 stellt zusätzliche Beispiele für Codetypen gemäß verschiedenen Ausführungsformen dar.
  • DETAILLIERTE BESCHREIBUNG
  • Für illustrative Zwecke können sich die in diesem Dokument beschriebenen und dargestellten Systeme und Verfahren auf mobile Agenten für die Erstellung von Strukturen in dem Kontext eines Spielzeuges beziehen, welches als primären Zweck das Ziel der Unterhaltung des Nutzers hat. Ein Fachmann erkennt jedoch, dass die in diesem Dokument beschriebenen Techniken auf viele verschiedene Kontexte und Umgebungen angewandt werden können, wobei es nützlich oder gewünscht sein kann, mobile Agenten bereitzustellen, die Strukturen erstellen, Emotionen zeigen, kooperieren, konkurrieren und/oder andere Handlungen durchführen können. Entsprechend sind die in diesem Dokument beschriebenen Techniken dazu gedacht, auf jede(n) Kontext oder Umgebung angewandt zu werden, und sind nicht dazu gedacht, auf die in diesem Dokument vorgestellten spezifischen Ausführungsformen begrenzt zu sein.
  • Außerdem legt die folgende Beschreibung viele verschiedene Konzepte, Merkmale und Mechanismen dar, die einzeln oder in verschiedenen Kombinationen ausgeführt werden können. Ein Fachmann erkennt, dass verschiedene Ausführungsformen unter Verwendung eines oder mehrerer solcher Konzepte, Merkmale und Mechanismen unter Verwendung jeder geeigneten Kombination ausgeführt werden können.
  • Zum Zwecke der folgenden Beschreibung soll der Begriff „Komponente“ für jeden aus einer Anzahl von verschiedenen Typen an individuellen Blöcken und/oder anderen Elementen gelten. Wie nachfolgend detaillierter beschrieben, können Komponenten als zu einem von drei Typen gehörig klassifiziert werden: passiv, semi-aktiv und aktiv. Außerdem sollte die Verwendung des Begriffes „Block“ oder „Komponente“ nicht als einschränkend betrachtet werden, und erfordert insbesondere nicht, dass die Komponente in einer Form auftauchen sollte, die mit der Geometrie oder Zusammensetzung, die mit konventionellen Vorstellungen eines Blocks übereinstimmt, konsistent ist. Obwohl es zum Beispiel unwahrscheinlich ist, dass die Arbeitsoberfläche in Bezug auf Rolle und Funktion einer konventionellen Blockform ähnelt, passt sie in die Kategorie der passiven Komponententypen, wie nachfolgend besprochen wird. Außerdem können mobile Agenten wie nachfolgend beschrieben als Komponententyp betrachtet werden.
  • In Bezug auf die Klassifizierung bietet das Einteilen der Komponenten in drei Komponententypen eine praktische Ordnung und Referenz beim Besprechen der Konsistenzen innerhalb und Unterscheidungen zwischen den Klassen; jedoch sind solche Klassifizierungen optional und sollten nicht als den Umfang einschränkend betrachtet werden. Wie nachfolgend detaillierter beschrieben, weisen die verschiedenen Klassifikationen an Komponenten bestimmte Charakteristika und Unterschiede auf, die dabei nützlich sein können, ihre Rollen in Bezug zueinander und im Gesamtsystem sowie die Natur des Systems als Ganzes zu verstehen.
  • Verschiedene Elemente des Systems können in einem vereinheitlichten Rahmen betrachtet werden, der innerhalb des Konstrukts eines einzelnen Systems tätig ist. In zumindest einer Ausführungsform kann das System Komponenten von verschiedenen Typen und Graden an Autonomie und Funktionalität beinhalten, die damit beauftragt werden können, selbst eine Struktur zu erstellen. Ein oder mehrere Nutzer können an dieser Aktivität teilnehmen, indem sie eine gewünschte fertiggestellte Gestaltung bereitstellen, und/oder indem sie hochrangige Anweisungen zum Lenken von mobilen Agenten, die dazu in der Lage sind, Komponenten (wie zum Beispiel Blöcke) zu transportieren und zu platzieren, bereitstellen, und/oder indem sie die separaten Handlungen individueller Agenten direkt steuern.
  • In verschiedenen Ausführungsformen kann/können (ein) Nutzer mit dem System und/oder mit individuellen Agenten unter Verwendung eines geeigneten Kommunikationsmechanismus und/oder Nutzerschnittstellenmechanismus interagieren. In zumindest einer Ausführungsform unterstützt das System eine robuste Schnittstelle zwischen Nutzern und mobilen Agenten über ein geeignetes Gerät (oder mehr als ein Gerät) wie zum Beispiel einem Tabletcomputer, einem Smartphone und/oder einem anderen mobilen Computergerät. In zumindest einer Ausführungsform wird eine berührungsbasierte Bildschirmschnittstelle oder andere Schnittstelle zur direkten Manipulation unterstützt, obwohl jeder andere Typ an Nutzerschnittstelle verwendet werden kann. In alternativen Ausführungsformen können andere Typen an Schnittstellenmechanismen unterstützt werden, wie zum Beispiel Spracheingabe, textbasierte Eingabe, mausbasierte Eingabe, Joystick-Eingabe und/oder ähnliches. Jeder solche Eingabemechanismus, zusammen mit (einem) geeigneten Ausgabemechanismus/Ausgabemechanismen und/oder Feedback kann verwendet werden, um eine graphische (oder nichtgraphische) Schnittstelle bereitzustellen. Die Agenten des Systems können mit jedem geeigneten und gewünschten Grad an Autonomie und/oder jedem geeigneten und gewünschten Maß an Nutzersteuerung arbeiten.
  • In zumindest einer Ausführungsform beinhaltet das System eine Arbeitsoberfläche wie zum Beispiel eine Platte. Die Platte kann maschinenlesbare Codes 601, oder Markierungen, tragen, die standortbezogene Informationen codieren, die von den mobilen Agenten nutzbar sind, um ihre Positionen über Sensoren (wie optischen Sensoren) an den mobilen Agenten zu bestimmen.
  • Jetzt Bezug nehmend auf 18 wird ein Beispiel gezeigt, in dem verschiedene mobile Agenten 104 dabei sind, verschiedene Komponenten 402 (als Blöcke gezeigt) auf einer Arbeitsoberfläche 407 gemäß einer Ausführungsform zu manipulieren. Wie aus dem Beispiel ersichtlich ist, können die verschiedenen mobilen Agenten 104 zusammenarbeiten; alternativ können sie separat voneinander arbeiten oder können sich sogar gegenseitig behindern und/oder miteinander konkurrieren. Die Manipulation der Komponenten 402 kann die Erstellung von Strukturen sowie Zerstörung oder eine andere geeignete Manipulation beinhalten. Die Komponenten 402 können viele verschiedene Formen annehmen, wie nachfolgend detaillierter besprochen, und müssen keine Blöcke sein.
  • 18 stellt verschiedene Beispiele für Interaktionen und Verhaltensweisen der Agenten 104 in Bezug auf die Oberfläche 407 und Komponenten 402 dar, wobei viele davon in diesem Dokument detaillierter beschrieben werden. In dem Beispiel aus 18 werden einige Komponenten 402 in einem Blocklieferungsbereich 1801 gehalten, von dem die Agenten 104 Komponenten 402 wie für Konstruktionsprojekte benötigt entnehmen können. Der Agent 104G ist gerade dabei, die Komponente 402N vom Lieferungsbereich 1801 zu einem Baubereich 1803 zu transportieren, wo ein Konstruktionsprojekt im Gange ist. In zumindest einer Ausführungsform kann die Oberfläche 407 Markierungen oder Codes enthalten, die separate Zonen für den Transit und zum Bauen definieren, sodass ein solcher Agent 104G möglicherweise einen Transitkorridor nutzt, wenn er eine Komponente wie 402N auf diese Weise transportiert.
  • Als ein weiteres Beispiel stellt 18 den Agenten 104J dar, der eine Scherenhebebühne 104H verwendet (die selbst ein Werkzeug sein kann, das vom Agenten 104J betrieben wird, oder selbst ein Agent sein kann), um die Komponente 402P auf einer Reihe zu platzieren, die ansonsten aufgrund ihrer zu hohen Höhe nicht erreicht werden könnte. 18 stellt weiter eine aktive Komponente 402G dar (aktive Komponenten werden nachfolgend detaillierter beschrieben), die als eine Funktionstür umgesetzt ist. In diesem Beispiel kann sich die Tür der aktiven Komponente 402G öffnen, wenn sie eine aktive Signalkomponente 402H empfängt, die als Abstandssensor umgesetzt wird, der ein Signal sendet, wenn ein Objekt (wie ein Agent 104 oder eine andere Komponente 402) innerhalb eines Schwellenabstands erfasst wird. Es kann jeder geeignete Mechanismus zur Näherungs- oder Bewegungserfassung verwendet werden, wie zum Beispiel reflektiertes Licht, Ultraschalltöne, Bluetooth-Nähe und/oder ähnliches. In diesem Beispiel aktivieren die Agenten 104L, 104M, die kooperieren, um die Komponente 402M zu tragen, den Abstandssensor der Komponente 402H, was bewirkt, dass die Komponente 402H ein Signal abgibt, das die Erfassung eines Objektes angibt. Die Tür der Komponente 402G antwortet durch Öffnen, was den Agenten 104L, 104M ermöglicht, in die Struktur vorzurücken.
  • 18 zeigt auch den Agenten 104N, der einen Einsturz 1802 der Komponenten 402 überblickt, was zu einer Inkonsistenz zwischen der physischen Umgebung und dem virtuellen Modell davon führen kann. Wie nachfolgend detaillierter beschrieben, kann das System auf solche erkannten Inkonsistenzen reagieren, indem es zum Beispiel die virtuelle Umgebung basierend auf dem erfassten Zustand der physischen Umgebung anpasst oder indem es physische Anpassungen vornimmt (zum Beispiel durch Bewegen der Agenten 104 und/oder Komponenten 402), um zu bewirken, dass die physische Umgebung mit der virtuellen Umgebung übereinstimmt.
  • In zumindest einer Ausführungsform können die mobilen Agenten 104 miteinander kommunizieren, um ihre jeweiligen Standorte in Bezug aufeinander und/oder in Bezug auf die Oberfläche 407 zu prüfen. In zumindest einer Ausführungsform wird die Oberfläche 407 als eine rollbare oder klappbare Platte ausgeführt, um ein praktisches Aufbewahren und Auspacken zu ermöglichen; alternativ kann die Oberfläche 407 steif sein oder kann eine Anzahl an ineinandergreifenden Teilen aufweisen.
  • Die Arbeitsoberfläche 407 soll den Bereich bereitstellen, an dem die Komponenten 402 (wie zum Beispiel Blöcke) manipuliert und aufgebaut werden können. In zumindest einer Ausführungsform stellt die Arbeitsoberfläche 407, sobald sie eingesetzt wird, einen im Wesentlichen flachen Bereich zum Aufbau der Komponenten 402 bereit. Jedoch muss in zumindest einer Ausführungsform keine spezielle Oberfläche bereitgestellt werden, und die Komponenten 402 können auf einem Boden, Tisch oder einer anderen verfügbaren konventionellen Oberfläche manipuliert und aufgebaut werden. Außerdem erleichtert das System in zumindest einer Ausführungsform die Komponentenfunktionalität über die Grenzen der Arbeitsoberfläche 407 hinaus. In anderen Ausführungsformen können die Komponentenkonfigurationen eine variable Oberfläche beherbergen; zum Beispiel kann die Arbeitsoberfläche 407 miteinander verbundene separate flache (und/oder nichtflache) Bereiche in verschiedenen Höhen umspannen.
  • Zu Illustrationszwecken wird die Arbeitsoberfläche 407 in 18 als eine flache rechteckige Oberfläche ohne Markierungen gezeigt. Jedoch kann die Arbeitsoberfläche 407 in zumindest einer Ausführungsform maschinenlesbare Codes und/oder andere Markierungen beinhalten. Jetzt Bezug nehmend auf 14 wird ein Beispiel für eine Arbeitsoberfläche 407 mit maschinenlesbaren Codes 601 gezeigt. In diesem Beispiel beinhaltet die Oberfläche 407 ein hexagonales Gitter; jedoch erkennt ein Fachmann, dass eine andere Anordnung möglich ist, darunter andere Arten an Gittern oder gar kein Gitter. Außerdem können die Codes 601 jede geeignete Form annehmen, und müssen nicht den bestimmten in 14 gezeigten Codes 601 ähneln.
  • Passive Komponenten 402
  • Jetzt Bezug nehmend auf 4 werden einige Beispiele für passive Komponenten 402A bis 402D auf einer Arbeitsoberfläche 407 gezeigt, die als Blöcke ausgeführt sind und beispielhafte Merkmale aufweisen, die für einige Komponententypen gemäß mindestens einer Ausführungsform charakteristisch sein können. 4 stellt auch ein Beispiel für einen mobilen Agenten 104 dar, der mit einem gabelartigen Hebezeug 403 ausgestattet ist.
  • Die passiven Komponenten 402 beinhalten Elemente, die funktional inert sind. Ein Beispiel für solche Komponenten sind inerte Blöcke, die Würfel, rechteckige Quader oder eine andere geeignete Form sein können. Diese Elemente können Markierungen aufweisen, die sie für andere Elemente im System nützlich machen, und/oder sie können eine strukturelle Rolle haben. Allgemein sind passive Komponenten nicht zu einer Zustandsänderung in der Lage.
  • In verschiedenen Ausführungsformen können relevante Daten, die eine passive Komponente 402 betreffen, auf jede geeignete Weise gespeichert und/oder codiert werden, darunter jede Form an maschinenlesbaren Codes, die an der Komponente 402 angebracht, darauf aufgedruckt oder daneben angeordnet sind; ein solcher Code kann eines oder alle von optisch oder magnetisch lesbaren Markierungen, RFID-Tags und/oder ähnlichem beinhalten. Jetzt Bezug nehmend auf 17 werden Beispiele für maschinenlesbare Codes 601 gemäß verschiedenen Ausführungsformen gezeigt; jedoch können maschinenlesbare Codes in anderen Ausführungsformen jede geeignete Form annehmen. Das Speichern und/oder Codieren solcher relevanten Daten unter Verwendung eines geeigneten Mittels ermöglicht das Lesen oder Decodieren solcher Daten durch mobile Agenten 104, die mit der Komponente 402 arbeiten, die Komponente 402 manipulieren und/oder in der Umgebung um die Komponente 402 herum tätig sind. Solche Ausführungsformen unterstützen die Funktion eines externen Agenten oder einer anderen Einheit, während die Komponente 402 ein passives Element bleibt. Ähnlich ist diese Rolle, obwohl in einigen Ausführungsformen passive Komponenten 402 zum Bauen verwendet werden können und in verschiedenen Positionen oder Ausrichtungen platziert und/oder in Anordnungen mit gleichrangigen Komponenten 402 ähnlicher oder anderer Klassen gestapelt werden können, eine passive und solche Komponenten 402 würden immer noch als passiv klassifiziert werden.
  • Die passiven Komponenten 402 können in Bezug auf das Aufweisen von Schnittstellenelementen, die die Ausrichtung während der Platzierung vereinfachen können und einen gewissen Grad an Unveränderlichkeit oder passivem Ineinandergreifen (z. B. Schwerkraftpassung) in angrenzende Komponenten 402 bereitstellen, semi-aktiven oder aktiven Komponenten 402 ähneln; allgemein fehlt passiven Komponenten 402 jedoch funktionale Elektronik oder betätigbare Mechanismen (oder falls sie solche Elemente enthalten, sind die Elemente nichtfunktional oder führen Tätigkeiten durch, die sich nicht auf die in diesem Dokument beschriebenen Tätigkeiten beziehen).
  • Die Komponente 402B ist ein Beispiel für eine Komponente 402 mit Oberflächengeometrie. In diesem Fall ist die Oberflächengeometrie so konfiguriert, dass sie die Gabeln des Hebezeugs 403 beherbergt, unabhängig davon, welche der Seiten der Komponente 402B nach unten orientiert ist oder welche Kante orthogonal in Richtung der Gabeln gerichtet ist. Die Komponente 402B ist ein weiteres Beispiel, mit einem erhöhten geometrischen Merkmal 404, das sich von ihrer oberen Oberfläche erstreckt, das zu der Inversion dieser Form auf ihrer Basis passen würde (wodurch den Komponenten dieser Gestaltung eine Stapelung mit einem Ineinandergreifen möglich wäre). Die Komponente 402D, die ein erhöhtes geometrisches Merkmal 405 aufweist, das dem Merkmal 404 der Komponente 402C ähnelt, ist noch ein weiteres Beispiel, mit zusätzlichen geschlitzten Öffnungen 406 an der Basis des geometrischen Merkmals 405, was das Heben der Komponente 402 von oben vereinfacht.
  • In Bezug auf die Leistung in der bevorzugten Ausführungsform kann die Arbeitsoberfläche 407 auch als passive Komponente 402 betrachtet werden. Die Arbeitsoberfläche 407 kann Markierungen, maschinenlesbare Codes, RFID-Tags und/oder andere geeignete Elemente beinhalten, die die Navigation der mobilen Agenten 104 und Platzierung der Komponenten 402 auf der Oberfläche 407 vereinfachen.
  • Semi-aktive Komponenten
  • Die semi-aktiven Komponenten 402 beinhalten eine Reihe an potenziellen Komponententypen. Zu Zwecken der Beschreibung in diesem Dokument kann eine semi-aktive Komponente 402 ähnliche Grundeigenschaften wie die passiven Komponenten 402 aufweisen, kann aber auch Funktionalität besitzen, die von Nutzern und/oder mobilen Agenten 104 gesteuert werden kann. Zum Beispiel kann eine semi-aktive Komponente 402 dazu in der Lage sein, sich einer mechanischen oder anderen Zustandsänderung zu unterziehen. Ein Beispiel für eine solche Komponente 402 ist eine, die ein mechanisches System aufweist, das das Ineinandergreifen in eine andere Komponente 402 ermöglicht. In solch einem Szenario kann ein mobiler Agent 104 mit einem Manipulator konfiguriert sein, der angeordnet ist, um die semi-aktive Komponente 402 zu betätigen. Zum Beispiel kann ein drehbarer Verlängerungsstab in eine Buchse an der Komponente 402 gesteckt werden; durch Drehen der Buchse kann der mobile Agent 104 ineinandergreifende Teile in Eingriff nehmen, die in ein Oberflächenmerkmal an einer oder mehreren benachbarten Komponenten 402 einklinken. Ein ähnliches Ergebnis kann mit Magneten erzielt werden, die die Bindungskraft zwischen den Komponenten 402 bereitstellen; in diesem Fall können die mobilen Agenten 104, die mit dem Manipulieren der Komponenten 402 beauftragt sind, eine Magnetspule mit einem Ferritkern am Ende eines Manipulators alternativ einsetzen, um einem in der Komponente 402 enthaltenen Magneten zu ermöglichen, sich an den Arm zu binden oder um den Magneten freizugeben, indem Strom durch die Spule gesendet wird. Es sind andere Konfigurationen möglich, wobei eine oder mehrere semi-aktive Komponenten 402 ein oder mehrere Element(e) enthält/enthalten, die zu einer Zustandsänderung in der Lage sind.
  • Jetzt Bezug nehmend auf 5 wird ein Beispiel für eine Blockkomponente 402E mit einer rechteckigen oder quadratischen Aussparung 501, die sich zentral an jeder Seite 503 befindet, und einer kreisförmigen Aussparung 502, die von jeder Kante versetzt ist, gezeigt. Eine eisenhaltige Platte (nicht gezeigt) kann innerhalb jeder Aussparung 501 befestigt werden, sodass alle Identifizierungsmarkierungen oder Merkmale, die an der Seite der Aussparung 501 potenziell vorhanden sind, weniger anfällig für Kratzer oder Abrieb durch benachbarte Oberflächen sind, wenn sie bündig angebracht wären.
  • 5 stellt auch ein Manipulationswerkzeug oder einen Manipulator 504 dar, der vermutlich von einem mobilen Agenten (nicht gezeigt) angebracht oder anderweitig gesteuert wird, der mit der Positionierung von Komponenten wie der Blockkomponente 402E beauftragt ist. In diesem Fall trägt der Manipulator 504 Vorsprünge 505 von entsprechender Größe und Beabstandung, um sich mit den kreisförmigen Aussparungen 502 an der Seite 503 der Komponente 402E zu verbinden. Im Zentrum des Manipulators 504 ist ein Ringelement 506, das ein Permanentmagnet oder eisenhaltiges Material sein kann, das so konfiguriert ist, dass es als Elektromagnet agiert, aus seiner Anbringungsoberfläche 507 herausragend, um den Kontakt mit der Aussparung 501 der Komponente 402E zu sichern. Wenn der Manipulator 504 auf die Komponente 402E angewandt wird, erzeugt die durch die magnetische Anziehung zwischen dem Ringelement 506 und der Aussparung 501 erzeugte Anziehungskraft einen Grad an Unveränderlichkeit zwischen den beiden und ermöglicht dadurch einem mobilen Agenten das Steuern des Manipulators 504, um die Komponente 402E zu bewegen, zu heben oder anderweitig zu manipulieren. Die zueinander passenden Geometrien zwischen den Aussparungen 502 und Vorsprüngen 505 stellen eine Sicherung der Konsistenz und Vorhersehbarkeit in Bezug auf die Position und Ausrichtung der Komponente 402E in Bezug auf den Manipulator 504 bereit, wenn sie ineinandergreifen. Ein Fachmann erkennt, dass die Wichtigkeit des Aufrechterhaltens der Genauigkeit beim Bewegen und Platzieren einer Komponente 402 wie der Komponente 402E im Raum auf eine Kenntnis der relativen Position der Komponente 402 in Bezug auf eine bekannte Position wie derjenigen des Manipulators 504 angewiesen ist. Jedoch können zum Sicherstellen einer solchen Genauigkeit andere Techniken angewandt werden.
  • Es kann auch angemerkt werden, dass es abhängig von Faktoren wie der Komponentengröße, den Geometrien und der Position von zueinander passenden Merkmalen und den Einschränkungen in Bezug auf ein ausreichendes Wissen über die Position des Manipulators 504 und der damit verbundenen Bewegungskontrolle schwierig werden kann, den Manipulator 504 auf eine Fläche 503 der Komponente 402E auf eine Weise, die das Ineinandergreifen der zueinander passenden Merkmale sicherstellt, erfolgreich anzuwenden. Es kann jede beliebige aus einer Anzahl von Techniken verwendet werden, um das Positionieren des Manipulators 504 in Bezug auf die Komponente 402E zu vereinfachen. Zum Beispiel kann sich in zumindest einer Ausführungsform eine Kamera 507 oder ein ähnliches Bildgebungsgerät bei der zentralen Achse des Manipulators 504 befinden. In solch einer Ausführungsform kann jede geeignete Markierung(en) (nicht gezeigt) an oder in der Nähe von ausgesparten Bereichen 501 der Komponente 402E auf eine Weise konfiguriert sein, die die unkomplizierte Identifizierung eines Mittelpunktes oder eines anderen bekannten Punktes ermöglicht, sodass das Ausrichten des Manipulators 504 entlang eines Vektors senkrecht zur Mitte der Platte mit einer Rotationsausrichtung, die zu derjenigen der Platte passt, sicherstellen würde, dass die zueinander passenden Merkmale wie beabsichtigt ineinandergreifen würden. Sobald die Komponente 402E in Eingriff genommen ist und ihre Position oder Ausrichtung wie beabsichtigt geändert ist, kann die magnetische Kraft, die die Haftung zwischen dem Manipulator 504 und der Komponente 402E aufrechterhält, entweder durch Anhalten des elektrischen Stromes, der einen Elektromagneten, der die zwei Körper zusammenhält, versorgt, oder durch Anwenden eines elektrischen Stroms auf einen Elektromagneten in einer Anordnung, in der ein solcher Magnet, die Kraft eines Permanentmagneten negieren würde, der möglicherweise die Komponente 402E an dem Manipulator 504 befestigt, gebrochen werden.
  • Das lokale Negieren der natürlichen Anziehung von Magneten auf ähnliche Weise ist auch ein Mittel, durch das ein mobiler Agent durch magnetische Kräfte gebundene Komponenten 402 trennen kann.
  • Ein Fachmann erkennt, dass die oben beschriebene Magnetkupplung nur ein Beispiel dafür ist, wie ein mobiler Agent Komponenten 402 wie die Komponente 402E manipulieren kann. Wie beschrieben können Zustandsänderungen von semi-aktiven Komponenten 402 wie der Komponente 402E eine solche Manipulation vereinfachen. Wie auch immer solche Zustandsänderungen ausgeführt werden, kann das funktionsfähige Ineinandergreifen zwischen dem Manipulator 504 und der Komponente 402E eines sein, das der mobile Agent in Eingriff nehmen und manipulieren kann.
  • In zumindest einer Ausführungsform verwendet ein mobiler Agent Komponenten 402 wie die Komponente 402E, um eine Anordnung an Komponenten 402 zu bauen, die davon profitieren, dass sie mechanisch miteinander verbunden sind. Ein potenzieller Vorteil für mechanische oder andere Mittel von Komponenten 402, sich aneinanderzuhängen, liegt in der Verbesserung der Stärke oder Stabilität von Strukturen, die die mobilen Agenten möglicherweise erstellen, egal, ob es sich dabei um Anordnungen ähnlicher Komponenten 402, wie eine konventionelle Wand, oder unähnliche Komponententypen wie einen Block, der sich in einen darauf angebrachten Turmblock einklinkt, handelt.
  • In dem beschriebenen Beispiel kann der Mechanismus auf einen externen Bediener angewiesen sein oder nicht, der die Energie bereitstellt, um den Status den Einklinkmechanismus zu ändern (z. B. nicht verriegelt oder verriegelt). In zumindest einer Ausführungsform kann eine semi-aktive Komponente 402 (wie die Komponente 402E) ihre eigene interne Stromversorgung (nicht gezeigt) haben, um ihren funktionellen Betrieb zu unterstützen.
  • Ein Fachmann erkennt, dass viele andere Typen an semi-aktiven Komponenten 402 verwendet werden können. Andere Beispiele für semi-aktive Komponenten 402 können diejenigen, die mit LEDs zur Beleuchtung oder Statusmeldung ausgestattet sind, Komponenten 402 mit integrierten Türöffnungen oder Komponenten 402 mit LCD-Anzeigen sein, wobei alle davon basierend auf einer potenziell breiten Spanne an Mitteln wie einem mechanischen Schalter an der Oberfläche der Komponente 402, der die Position ändert, oder dem Empfang eines Drahtlossignals, das die Anweisung bereitstellt, den Zustand ändern können. Semi-aktive Komponenten 402 können auch Formen annehmen, die möglicherweise nicht strukturellen Elementen (Blöcken) per se ähneln und erfüllen eine solche Rolle möglicherweise nicht als ihre primäre Funktion. Beispiele für semi-aktive Komponenten 402 dieser Sorte beinhalten Komponenten 402, die das Ausführen der Aufgaben von mobilen Agenten vereinfachen oder besser ermöglichen. Ein Beispiel ist ein fahrbares Chassis, das mit einer Scherenhebebühne angebracht ist, die dazu in der Lage ist, eine Plattform von einer niedrigen Höhe vom Boden auf eine höhere Höhe zu heben. Eine solche Komponente 402 unterscheidet sich zwar wahrscheinlich wesentlich von einer typischen strukturellen Blockform, kann aber so gestaltet sein, dass sie die Bedienung durch einen mobilen Agenten 104 ermöglicht, um sie entweder in eine Position zu bewegen, in der eine Hubplattform beim Bauen größerer Strukturen oder Heben und Senken der Plattform helfen würde. Auf diese Weise können semi-aktive Komponenten 402 dieser Art die funktionale Rolle von Werkzeug erfüllen (in diesem Fall als eine Art von Bauausrüstung).
  • Das Beispiel der fahrbaren Plattform als eine semi-aktive Komponente 402 stellt dar, was gewöhnliche Züge dieses Komponententyps sein können. Es kann angemerkt werden, dass die Komponente 402 für den Betrieb durch einen einzelnen mobilen Agenten 104 oder mehrere mobile Agenten 104, die in Zusammenarbeit tätig sind, gestaltet sein kann (z. B. bewegt ein mobiler Agent 104 die fahrbare Plattform an Orte, an denen passive Komponenten 402 platziert werden sollen, während ein anderer mobiler Agent 104 auf der Plattform positioniert ist, um die Komponenten 402 in den bestimmten Positionen zu platzieren). Alternativ kann die Plattform auch mit Hardware ausgestattet sein, die derjenigen eines mobilen Agenten ähnlich ist, um Komponenten 402 zu greifen und zu manipulieren. Auf diese Weise dient die semi-aktive Komponente 402 in diesem Beispiel dazu, die Manipulations- und Platzierungsfähigkeit eines mobilen Agenten 104 zu erweitern.
  • Aktive Komponenten 402
  • Aktive Komponenten 402 zeichnen sich primär durch ihre Fähigkeit aus, autonom zu handeln oder anderweitig Funktionen ohne direkte mechanische oder elektrische Eingabe oder Anweisung von einem mobilen Agenten 104 durchzuführen. Diese Kategorie an Komponenten 402 bietet die breitesten Typen an Funktionalität sowie die größte Versatilität und Autonomie. Sie können ansonsten in Bezug auf Funktionalität semi-aktiven Komponenten 402 ähneln, sind aber dazu in der Lage, in einem beträchtlichen Maß an Unabhängigkeit zu handeln. Diese Komponenten 402 können zum Beispiel Sensoren enthalten, die Prozesse auslösen, die zu einer Handlung führen, und/oder sie können einer programmierten Routine folgen.
  • Jede Anzahl an spezialisierten Komponenten 402 kann in diese Kategorie passen. Einige dieser Komponenten 402 können die gleiche äußerliche Geometrie wie passive oder semi-aktive Komponenten 402 aufweisen, was zum Beispiel die Stapelung in aus passiven und/oder semi-aktiven Komponenten 402 gebauten Strukturen ermöglicht. Jedoch können aktive Komponenten 402 auch eine zusätzliche Funktion über die physische Unterstützung hinaus erfüllen. Ein Beispiel ist eine Komponente 402, die mit einem Sensor an ihrer Seite ausgestattet ist, um in ihrer Nähe Bewegung zu erfassen. Eine solche Komponente 402 kann zum Beispiel programmiert sein, um ein Drahtlossignal an eine andere aktive Komponente 402 zu senden, die eine batteriebetriebene motorisierte Tür enthält. Wenn die zweite Komponente 402 das Signal von der ersten empfängt, betätigt sie den Türmechanismus und ermöglicht so den Durchlass durch die Komponente 402.
  • In einem anderen Beispiel kann eine aktive Komponente 402 ein Zeitschema anwenden, das einem Straßenlicht ähnlich ist, und den Verkehrsfluss durch Anheben und Senken einer Zugbrücke steuern. Durch die Kombination von funktionaler Hardware, einem Kommunikationsmittel und vielleicht einem gewissen Maß an Programmierbarkeit (falls die Komponente 402 nicht direkt durch ein unabhängiges Host-Gerät gesteuert wird) besteht eine breite Reihe an Möglichkeiten für die Rollen von aktiven Komponenten 402 beim Erschaffen einer interaktiven Bauumgebung. Aktive Komponenten 402 können daher verschiedenartig mit einem geeigneten Element ausgestattet sein, wie zum Beispiel Tongeräten, digitalen Anzeigebildschirmen, Lichtern und/oder Mechanismen, die direkt auf die Aktivitäten von mobilen Agenten 104, die auf der Arbeitsoberfläche 407 tätig sind, antworten und/oder sich auf diese auswirken, und/oder eine Kombination davon. Auf die gleiche Weise, wie die Beschreibung von semi-aktiven Komponenten 402 Werkzeug oder betätigbare Komponenten 402 beinhaltete, die keine strukturelle Rolle erfüllten, können mobile Agenten 104 selbst, sowohl funktional als auch mit einem hohen Maß an Autonomie handelnd, als ein Typ an aktiver Komponente 402 angesehen werden. Zum Zwecke der Klarheit bezieht sich die folgende Beschreibung mit mobilen Agenten 104 weiter auf diese als solche, obwohl solche Agenten 104 auch als ein Typ an aktiver Komponente 402 im in diesem Dokument beschriebenen Kontext betrachtet werden können. Daher sind in dem Beispiel der 18 die Komponenten 402 wahrscheinlich passiv und/oder semi-aktiv, aber die Agenten 104 können als ein Typ an aktiver Komponente 402 betrachtet werden.
  • Ein bestimmter Typ an aktiver Komponente 402 ist ein mobiler Agent 104 mit einem gewissen Maß an autonomer Mobilität. Mobile Agenten 104 können vollständig autonom handeln, und/oder sie können über eine zentrale Steuereinheit oder individuell von einem Nutzer gesteuert werden. Alternativ können mobile Agenten 104 als von autonomen Steuerungsmechanismen in einer zentralen Steuerungseinheit gelenkt operieren. In zumindest einer Ausführungsform können mobile Agenten 104 und andere aktive Komponenten 402 so funktionieren, dass sie versuchen, hohe Ziele zu erreichen, die von einem Nutzer oder einer Steuerungseinheit spezifiziert werden können, während sie autonom auf niedriger Ebene funktionieren, um solche Ziele zu erreichen.
  • Jetzt Bezug nehmend auf 1 wird ein Blockdiagram gezeigt, das eine konzeptuelle Architektur eines mobilen Agenten 104 gemäß einer Ausführungsform darstellt, darunter Leistungs-, Fühl-, Verarbeitungs- und Kommunikationselemente, sowie Aktuatoren und (optional) Ausgabegerät(e). Ein Fachmann erkennt, dass die verschiedenen in 1 gezeigten Elemente, wie sie in dem mobilen Agenten 104 enthalten sind, lediglich beispielhaft sind, und dass einige der Elemente optional sein können. Außerdem können in alternativen Ausführungsformen andere Elemente, die in 1 nicht gezeigt werden, im mobilen Agenten 104 enthalten sein. Außerdem können verschiedene Typen an mobilen Agenten 104 mit verschiedenen Konfigurationen von Elementen enthalten sein.
  • Das Leistungselement 102 stellt dem mobilen Agenten 104 Leistung bereit. Leistung kann von jeder geeigneten Quelle bereitgestellt werden, wie zum Beispiel einer Batterie, Solarzelle und/oder ähnlichem.
  • Fühlelement(e) 103 (oder Sensoren) können jede(s) geeignete Element oder Kombination an Elementen beinhalten, wie zum Beispiel optische, beschleunigende, gyroskopische, akustische, codierende Anordnungen (z. B. Magnetrad-Encoder), und/oder Druck-/Kraft- und Abstandssensoren (z. B. infrarot- oder ultraschallbasierend). Gemäß verschiedenen Ausführungsformen können die Sensoren 103 den mobilen Agenten 104 bei einer Vielzahl von Funktionen wie dem Bestimmen und Überwachen der Position (Lokalisierung), Identifizieren anderer Komponenten 402, Manipulieren der Komponenten 402 und ähnlichem unterstützen. Die Sensoren 103 können beim Durchführen sämtlicher Aktivitäten, die an der Ausführung der verfügbaren Aufgaben eines mobilen Agenten 104 beteiligt sind, verwendet werden. Außerdem können in einigen Ausführungsformen einige Sensoren 103 in Richtung der Überwachung der internen Zustände eines Agenten 104 gerichtet sein, wie zum Beispiel Rad-Encoder, die Informationen in Bezug auf Rotationsraten oder einen spezifischen Rotationswinkel, da sich dieser auf die Position bezieht, bereitstellen. Nach außen gerichtete Sensoren 103 können fortschrittliche Komponenten wie 2D-Bildgeber sowie einfachere wie Ultraschallabstandssensoren enthalten. In zumindest einer Ausführungsform können nach außen gerichtete Sensoren 103 dazu dienen, den Zustand der Umgebung eines mobilen Agenten 104 zu überwachen und können Änderungen innerhalb dieser erfassen, darunter Informationen, die sich auf die Manipulation des Agenten 104 oder den Transport anderer Komponenten 402 beziehen.
  • Der Agent 104 kann auch jeden geeigneten Typ an Prozessor(en) 105 an Bord enthalten, wie zum Beispiel eine Mikrosteuerung und alle damit verbundenen Speichermodule, und/oder anderen geeigneten Elemente.
  • Der Agent 104 kann auch jeden geeigneten Typ an Kommunikationsmodul(en) 107 enthalten, welcher gemäß einer beliebigen bekannten Technologie ausgeführt werden und sich auf jeden geeigneten Standard stützen kann. Beispiele beinhalten alle geeigneten verdrahteten und/oder drahtlosen Technologien wie Bluetooth, Wi-Fi und/oder diejenigen, die Radiofrequenz oder Infrarotlicht verwenden, und/oder ähnliche. Die Kommunikationsmodul(e) 107 können über jedes geeignete Kommunikationsnetzwerk kommunizieren.
  • Der Agent 104 kann auch jeden geeigneten Typ an Aktuator(en) 106 enthalten, welcher tätig sein kann, um direkt (oder indirekt) eine Veränderung von Aspekten des mobilen Agenten 104 und/oder seiner Umgebung zu bewirken. Solche Veränderungen können zum Beispiel das Bewegen und oder Neuausrichten des Agenten 104 und/oder Interagieren mit Komponenten und/oder anderen Agenten 104 (zum Beispiel zum Hochheben und Bewegen von Blöcken oder anderen Komponenten) beinhalten. Die Aktuatoren 106 können Elemente beinhalten, die eine Veränderung in einem mechanischen Sinn bewirken, wie einen Antriebsmechanismus, Motoren, Schwingspulen, Arme und ähnliches.
  • Der Agent 104 kann auch Ausgabegerät(e) 107 beinhalten, obwohl solche Geräte optional sind. Solche Ausgabegerät(e) 107 können sämtliche Elemente enthalten, die für die Bereitstellung von einer von Nutzern wahrnehmbaren Ausgabe geeignet sind; Beispiele beinhalten Lautsprecher, LEDs und/oder LCD-Anzeigen. Die Ausgabe kann visuell, akustisch, haptisch und/oder eine Kombination davon sein. In zumindest einer Ausführungsform können Ausgabegerät(e) 107 über ihre(n) Sensor(en) 103 eine Ausgabe generieren, die signalisierende andere Agenten 104 sein können (oder den Anschein signalisierender anderer Agenten 104 haben); zum Beispiel kann ein Agent 104 auf eine von einem anderen Agenten 104 generierte Ausgabe reagieren. Eine solche von einem Agenten 104 generierte Ausgabe kann von Menschen wahrnehmbar sein oder nicht, auch wenn sie von anderen Agenten 104 wahrnehmbar ist. Ausgabegerät(e) 107, wenn enthalten, können als ein Typ eines Aktuators 106 betrachtet werden.
  • Beispiele für eine von Gerät(en) 112 generierte Ausgabe beinhalten die Benachrichtigung an den Nutzer, dass der mobile Agent 104 eine Anfrage hat, die erfüllt werden muss; einen Hinweis auf eine emotionale Reaktion; Feedback; die detaillierte Artikulation einer Anforderung (entweder als eine Alternative zur Ausführung über eine bestimmte Nutzerschnittstelle an einem Gerät oder als eine Ergänzung dazu); und/oder ähnliches.
  • In zumindest einer Ausführungsform kann ein mobiler Agent 104 mehrere Kopien einiger oder aller der in 1 identifizierten Elemente enthalten. Umgekehrt ist es nicht notwendig, dass ein mobiler Agent 104 alle Elemente enthält, die in 1 identifiziert werden. Da mobile Agenten 104 eine Vielzahl von Formen annehmen können, können die Hardwarekonfigurationen gemäß den bestimmten funktionalen Fähigkeiten eines Agenten 104 variieren.
  • In zumindest einer Ausführungsform erkennen und erhalten die mobilen Agenten 104 Daten in Bezug auf ihren Standort und ihre Ausrichtung in Bezug zur Arbeitsumgebung. In zumindest einer Ausführungsform stellt die Arbeitsoberfläche 407, auf der die Agenten 104 tätig sind, eine Ebene bereit, die verbessert werden kann, um die Agentenlokalisierung zu unterstützen. Es ist nicht notwendig, dass die Betriebsoberfläche flach ist; stattdessen kann sie in zumindest einer Ausführungsform Krümmungen, Unterbrechungen und/oder Unregelmäßigkeiten aufweisen.
  • Lokalisierung
  • In zumindest einer Ausführungsform verfügen die mobilen Agenten 104 über ausreichende Kenntnisse über ihre aktuelle Position und Ausrichtung im Raum, um die optimale Ausführung von Aufgaben, die Manipulation und Koordination involvieren, zu ermöglichen und zu unterstützen, und um zu kooperieren, zu konkurrieren und anderweitig miteinander zu interagieren. Prozesse auf höherer Ebene wie die Pfadplanung, Objektmanipulation und Koordination der Anstrengung unter den mehreren Agenten 104 werden durch die Bereitstellung der anhaltenden Überwachung der Position und Ausrichtung oder individueller Agenten 104 ausgeführt. Die Agenten 104 können auf Standorte anderer Agenten 104 aufmerksam gemacht werden, um verschiedene Typen von Interaktion zwischen den Agenten 104 zu vereinfachen.
  • In zumindest einer Ausführungsform hält das System ein virtuelles Modell der Positionen der Agenten 104 innerhalb der Umgebung aufrecht. Solch ein virtuelles Modell kann zentral und/oder auf verteilte Weise gespeichert werden, und kann individuellen Agenten 104 zur Verfügung gestellt werden, sodass sie auf ihre jeweiligen Positionen in Bezug auf andere Agenten 104 und in Bezug auf die Arbeitsoberfläche 407, Komponenten 402 und/oder andere Umgebungselemente aufmerksam gemacht werden können. In zumindest einer Ausführungsform halten das System und Verfahren die Parität zwischen den tatsächlichen physischen Standorten der Agenten 104 innerhalb der physischen Umgebung und den entsprechenden Standorten virtueller Repräsentationen solcher Agenten 104 in der virtuellen Umgebung aufrecht. Wie in der verwandten US-Gebrauchsmusteranmeldung mit der Seriennummer 13/963,638 für „Integration of a Robotic System with One or More Computing Devices“ (Aktenzeichen des Bevollmächtigten ANK002), eingereicht am 9. August 2013, beschrieben, kann das Aufrechterhalten der Parität das Erfassen physischer und virtueller Standorte und das entsprechende Anpassen des einen oder anderen beinhalten. Es kann der physischen Umgebung Priorität gegeben werden, wobei in diesem Fall die virtuellen Positionen basierend auf der Erfassung der physischen Positionen angepasst werden. Alternativ kann der virtuellen Umgebung Priorität gegeben werden, wobei in diesem Fall die Agenten 104 angewiesen werden, sich selbst und/oder die Komponenten 402 zu bewegen, um mit den Positionen der entsprechenden Elemente in der virtuellen Umgebung übereinzustimmen.
  • Das Aufrechterhalten der Parität zwischen der virtuellen und physischen Umgebung kann aus mehreren Gründen vorteilhaft sein. In zumindest einer Ausführungsform planen die Agenten 104 Handlungen und reagieren auf Ereignisse basierend auf der virtuellen Repräsentation der Umgebung; daher können Unterschiede zwischen der physischen Umgebung und dem virtuellen Modell davon die erfolgreiche Ausführung von Handlungen verkomplizieren. Daher kann das Aufrechterhalten der Parität den Agenten 104 dabei helfen, ihre geplanten Handlungen genauer durchzuführen, indem dabei geholfen wird, Inkonsistenzen zu erkennen und sie zu beseitigen.
  • Außerdem können unbeabsichtigte Ereignisse oder diejenigen außerhalb eines geplanten Handlungsablaufes einen oder mehrere mit einer Aufgabe beschäftigten Agenten 104 stören. Wenn zum Beispiel eine Struktur an Blöcken einstürzt, egal, ob durch absichtliche Sabotage durch einen menschlichen Betrachter oder aus einem anderen Grund, stellt das System in zumindest einer Ausführungsform einen Mechanismus bereit, durch den Agenten 104 erkennen können, dass die physische Umgebung wesentlich von dem virtuellen Modell davon abgewichen ist. Die Agenten 104 können weiter erkennen, dass ein solches Abweichen das Fortführen mit einem aktuellen Satz an Handlungen, die um einen Zustand des virtuellen Modells herum geplant worden sind, der teilweise oder vollständig irrelevant sein kann, ausschließen kann.
  • Entsprechend hält das System in zumindest einer Ausführungsform die Parität zwischen der virtuellen und physischen Umgebung durch Erhalten von Informationen wie dem Standort, der Position und/oder Ausrichtung der Agenten 104 und Komponenten 402 wie durch verfügbare Mittel zur Erfassung bestimmt, das Vergleichen dieser Informationen mit dem entsprechenden Raum in dem virtuellen Modell und das entsprechende Anpassen der physischen und/oder virtuellen Umgebung aufrecht. In zumindest einer Ausführungsform ist es am wünschenswertesten, jegliche Differenzen zu minimieren, die zwischen der physischen Umgebung und der virtuellen Repräsentation davon auftreten können, in Bezug sowohl auf die Größe jeglicher Differenz und die Dauer, während der sie vorhanden ist. Es ist jedoch anzumerken, dass in anderen Ausführungsformen, insbesondere denjenigen, in denen sich Elemente der Persönlichkeit den Betrieb der Agenten 104 wie in diesem Dokument beschrieben auswirken, Verzögerungen zwischen der Zeit, in der die Parität zwischen dem Physischen und Virtuellen verloren geht und der Zeit, in der ein Agent 104 seine Handlungen als Reaktion anpasst, eine Verstärkung der Persönlichkeitszüge, die von einem Agenten 104 demonstriert werden sollen, oder des Gesamteindrucks der von einem Agenten 104 ausgestrahlten Kenntnis bereitstellen können. Wenn zum Beispiel ein Agent ein Persönlichkeitsprofil aufweist, das dazu gedacht ist, seine Handlungen so anzuordnen, dass sie konventionellen Vorstellungen eines geringen Bewusstseins ähneln, kann eine längere Verzögerungszeit zwischen der Zeit, in der ein Ereignis auftritt, welches einen wesentlichen Unterschied zwischen der physischen Umgebung und dem virtuellen Modell erzeugt und der Reaktion des Agenten 104 auf ein solches Ereignis eingeführt werden. In dieser Hinsicht können, während Prozesse, die das Aufrechterhalten der Parität zwischen dem Physischen und Virtuellen anstreben, einen Unterschied erkennen können, Algorithmen, die sich auf das Präsentieren eines Agenten 104 mit Persönlichkeitselementen beziehen, die Identifizierung des Unterschiedes und der Antwort darauf durch einen Agenten künstlich verzögern. Wie in diesem Dokument besprochen kann eine solche Verzögerungszeit auch eine Unterhaltungsquelle für menschliche Beobachter bereitstellen.
  • Ungeplante Ereignisse, die zu einer Abweichung zwischen der physischen Umgebung und der virtuellen Repräsentation führen, wie das oben genannte Beispiel eines Einsturzes einer physischen Struktur, können auch als Auslöser für eine oder mehrere Handlungen dienen, die mit einer emotionalen Reaktion assoziiert werden, die Teil eines Persönlichkeitsprofils eines Agenten 104 sein kann. Als Rückschlag für einen Baufortschritt wäre zum Beispiel eine auseinanderfallende Struktur wahrscheinlich ein demoralisierendes oder frustrierendes Ereignis für einen menschlichen Teilnehmer bei einem Bauprojekt. Entsprechend kann im Kontext des vorliegenden Systems ein Agent 104 Frustrationsindikatoren projizieren, wie zum Beispiel ein Agent 104, der mit hoher Geschwindigkeit im Kreis fährt oder eine Veränderung des Aussehens einer Anzeige, die anthropomorphe Eigenschaften vermittelt (z. B. eine LCD-Anzeige, die normalerweise Bilder darstellt, die dazu gedacht sind, Augen und Augenbrauen zu repräsentieren, die die Bilder animieren, um ein Blinzeln vorzugeben, nach unten gehende Brauen und eine rot werdende Augenfarbe, hörbare Geräusche oder eine Stimme, die Ärger ausdrückt und/oder ähnliches). Allgemein kann das System Spuren von physischer oder digitaler Animation verwenden, die sich auf eine breite soziale Sprache der Körpersprache stützen können, um emotionale Reaktionen auf Ereignisse zu vermitteln.
  • Sobald eine Abweichung erkannt ist, kann das System in zumindest einigen Ausführungsformen die Agenten 104 einberufen, das Ausmaß und die Art der Abweichung zu überwachen, um die Parität zwischen der physischen Umgebung und der virtuellen Repräsentation davon aufrechtzuhalten. Im Falle eines Zusammenbruchs einer Struktur mit vielen Komponenten 402 (wie Blöcken) ist anzumerken, dass der Prozess des Wiederherstellens der Parität zwischen dem Physischen und Virtuellen etwas Zeit in Anspruch nehmen kann und möglicherweise eine Anzahl von Agenten 104 beinhaltet, die um verstreute Komponenten 402 herum navigieren, um Daten in Bezug auf ihre neue Positionen und Standorte bereitzustellen. In solchen Fällen kann das System bewirken, dass eine solche Erkundung der Landschaft vor dem Formulieren einer Antwort abgeschlossen ist, insbesondere wenn die Prozesse, die die Handlungen eines Agenten 104 leiten, den Versuch des Wiederaufbaus der Struktur diktieren würden. In einigen Fällen kann die Erkundung der Umgebung nach einer Abweichung wie einem unkontrollierten Einsturz einer Struktur zu einer unvollständigen Kartierung aller Komponenten 402 führen, entweder, weil einige Komponenten 402 durch andere vor allen den Agenten 104 verfügbaren Mitteln und Positionen der Beobachtung verdeckt werden, oder weil die Komponenten 402 sich nicht mehr in der formalen Umgebung befinden (z. B. waren die Agenten 104 auf einem Tisch tätig und eine oder mehrere Komponenten 402 sind auf den Boden gefallen). Die in einer solchen Situation eingeführte Unsicherheit kann sich in die für die Agenten 104 formulierten Handlungen einbeziehen, insbesondere wie in dem Beispiel einer Unfähigkeit, alle zuvor in einer Struktur vorhandenen Komponenten 402 nachzuweisen, in Bezug auf die Wiederherstellung der Konfiguration und Komponenten im physischen Raum vor der Abweichung. Einige Ausführungsformen können auch Agenten 104 beinhalten, die an einem Erhebungsprozess teilhaben, der das Sortieren und Organisieren der Komponenten 402 beinhaltet, um einen Bereich für den Wiederaufbau aufzuräumen und/oder um zu bewerten, welche Komponenten 402 am Einsturz beteiligt waren, und welche Komponenten 402 darunter nicht mehr berücksichtigt wurden (z. B. wenn sie aus den Bereichen gefallen sind, die Agenten zugänglich sind). Ist dies abgeschlossen, können die Agenten 104 einen Handlungsverlauf bestimmen, entweder den Wiederaufbau unter Verwendung der Komponenten 402 und das Ersetzen der fehlenden durch andere, die woanders verfügbar sind, falls notwendig, das Informieren eines Nutzers darüber, dass eine weitere Anweisung erforderlich ist, oder das Durchführen einer anderen Handlung als Reaktion.
  • Die Lokalisierung kann unter Verwendung jedes geeigneten Mittels durchgeführt werden. In zumindest einer Ausführungsform wird ein aktives Verfahren angewandt, wie zum Beispiel durch Abgeben von Signalen und Bestimmen des Standortes basierend auf dem Empfang der Signalabbildung. Diese beinhalten ultraschallbasierte oder lichtbasierte Messtechniken. Dieser Ansatztyp kann durch Elemente verbessert werden, die bewusst in dem Bereich der Arbeitsumgebung platziert werden, wie zum Beispiel Reflektoren oder Lichtsignale, die ausgelöst werden können, um gemäß dem abgegebenen Signal zu reagieren. Es gibt auch passivere Verfahren, darunter diejenigen, die auf den Erwerb von Bildern von einer Kamera oder anderen optisch basierten Mitteln der Datensammlung in Bezug auf die physische (räumliche) Umgebung basieren. Passive Verfahren können auch Markierungen oder andere Elemente nutzen, die dazu gedacht sind, eine Umgebung zur einfacheren Lokalisierung durch Systeme, die zum Erkennen solcher Markierungen entwickelt wurden, zu strukturieren. Für nichtoptische passive Systeme wie diejenigen, die sich auf die Magnetfelderfassung stützen, kann eine Verteilung von Markierungen im Bereich des Raumes, der für die Agententätigkeit verfügbar ist, verwendet werden.
  • In zumindest einer Ausführungsform kann die Arbeitsoberfläche 407 (oder Platte), auf der die mobilen Agenten 104 tätig sind, Lokalisierungsinformationen gemäß lesbaren Codes bereitstellen (z. B. optische, RFID- und/oder magnetische Codes), die auf der Oberfläche 407 vorhanden sind. In zumindest einer Ausführungsform kann ein Agent 104 Markierungen auf der Oberfläche 407 optisch erkennen und decodieren, um Bestimmungen in Bezug auf die Umgebung des Agenten 104 und seinen Standort innerhalb dieser Umgebung zu treffen, wie in der verwandten US-Gebrauchsmusteranmeldung mit der Seriennummer 12/788,605 für „Distributed Systems of Autonomously Controlled Toy Vehicles“ (Aktenzeichen des Bevollmächtigten ANK001), eingereicht am 27. Mai 2010 und veröffentlicht am 15. Januar 2013 als US-Patent Nr. 8,353,737 , beschrieben. In anderen Ausführungsformen kann die Arbeitsoberfläche 407 jedoch weggelassen werden und/oder stellt möglicherweise keine Lokalisierungsinformationen bereit; stattdessen können die mobilen Agenten 104 andere Mechanismen verwenden, um sich selbst zu lokalisieren, darunter zum Beispiel die Triangulation mit Objekten oder Signalen in der Umgebung, optische Erkennung anderer Agenten 104 und/oder Referenzmerkmale und/oder ähnliches oder eine Kombination davon.
  • Es kann eine beliebige Anzahl an Ansätzen verwendet werden, um eine Umgebung mit Informationen oder Referenzpunkten zu strukturieren, die die Bestimmung der Position oder Ausrichtung basierend auf der lokalen Beobachtung und/oder dem Lesen von Codes vereinfachen. Zum Beispiel verwenden die mobilen Agenten 104 in zumindest einer Ausführungsform ein optisches Beobachtungssystem, in dem eine Kamera an dem Agenten 104 Bilder von einem Teil der Arbeitsoberfläche 407 sammelt, die einen optischen Code enthält. Der optische Code kann jede(s) geeignete Muster oder ähnlich strukturierte Markierung enthalten. Andere Systeme mit nichtoptischen Codes (wie RFID- und/oder magnetische Codes) können ebenfalls verwendet werden.
  • Zum Beispiel kann die Arbeitsoberfläche 407, wie im oben genannten verwandten US-Patent Nr. 8,353,737 , ein optisch lesbares Codierschema enthalten, das mit (einem) bevorzugten Reisepfad oder Reisepfaden kolinear ist. Auf diese Weise können die Codes Informationen in Bezug auf den Standort entlang eines Spurensegments für die mobilen Agenten 104 bereitstellen. Solch ein Verfahren stellt damit einem von vielen bestimmten Referenzpunkten ein Mittel der Lokalisierung bereit und ist dafür geeignet, eine relative Position zwischen solchen Punkten abzuleiten, indem die Regularität in der Codestruktur ausgenutzt wird. Jetzt Bezug nehmend auf 16 werden Beispiele für die Codes 601A, 601B gezeigt, die gemäß einer solchen Struktur angeordnet sind.
  • In zumindest einer Ausführungsform, wie in den Beispielen der 16 gezeigt, ist eine Messlinie enthalten, die aus einer Linie aus sich wiederholenden Häkchen oder ähnlichen Indikatoren besteht, die nah aneinander verteilt sind und sich kolinear mit dem/den bevorzugten Reisepfad oder Reisepfaden befinden. Wird eine Messlinie auf diese Weise als Referenz verwendet, kann die Präzision, in der die relative Positionierung basierend auf einer absoluten Position, die von einem Referenzpunkt eines Codes begründet wurde, berechnet werden kann, durch die Frequenz der die Messlinie bestimmenden Häkchen oder Striche entlang einer gegebenen Länge definiert werden. Andere Ansätze können die Messung direkt in eine als Führungspfad bereitgestellte Linie einbeziehen. Zum Beispiel können in den Codes 601, die ein Gitter bilden, wie das hexagonale Gitter der 6 und 14, Häkchen oder andere Indikator(en) in Grenzen zwischen Zellen des Gitters enthalten sein.
  • Wie in dem Beispielcode 601A der 16 gezeigt, verwendet das System in zumindest einer Ausführungsform anstelle der Verwendung einer Linie von einheitlicher Breite eine Linie, deren Breite sich in regelmäßigen Schritten zwischen einem dickeren Abschnitt und einem schmaleren abwechselt. Während der Pfad durchgehend bleibt, erzeugt das regelmäßige Intervall an Schrittänderungen ein Aussehen, das demjenigen einer symmetrischen Rechteckwelle ähnlich ist; dies kann für die Überwachung von Reiseabständen zwischen anderen Positionsinformationsmarkierungen nützlich sein.
  • In noch einer anderen Ausführungsform, wie im Beispielcode 601B gezeigt, kann sich die Breite eines Reiseweges linear in regelmäßigen Intervallen ändern, sodass sie sich in einem Erscheinen erweitert und zusammenzieht, das mit einer Sägezahnform konsistenter ist. Solch ein Ansatz vereinfacht die Bestimmung der relativen Position zwischen den Erweiterungs- und Zusammenziehungspunkten entlang des Pfades gemäß der Breite der Linie an jedem bestimmten Punkt in Bezug zu den maximalen und minimalen Breiten.
  • In zumindest einer Ausführungsform wird ein Schema eines codierenden Standortes angenommen, wobei die mobilen Agenten 104 bevorzugte Reisepfade innerhalb der Arbeitsumgebung haben können (zum Beispiel entlang eines Spurensegmentes wie oben und/oder in dem oben genannten verwandten Patent beschrieben). Es kann jedoch von Vorteil sein, wenn ein codierendes Schema die Lokalisierung ohne Assoziation mit (einem) bestimmten Reisepfad oder Reisepfaden unterstützt. Zum Beispiel kann das Codieren von Referenzinformationen das Erkennen aus möglichen Ausrichtungen der Beobachtung weg von der Oberfläche unterstützen. Dies kann zum Beispiel durch Analysieren von Daten, die während der Beobachtung gesammelt wurden, erreicht werden, sodass Beobachtungsdaten angepasst werden, um die korrekte Ausrichtung zu finden, falls es eine bevorzugte oder sogar eine notwendige Ausrichtung zur Beobachtung einer Markierung oder Markierungen gibt, um die erfolgreiche Erkennung zu ermöglichen. Ein Beispiel für ein solches Szenario kann Bilder beinhalten, die von einem Muster oder einem Teil eines Musters mit codierten Informationen auf der Arbeitsoberfläche gesammelt wurden. Falls das Muster eine bevorzugte Ausrichtung zur Analyse aufweist, kann durch die Verarbeitung ein Bild der Oberfläche angepasst werden, um die bevorzugte Ausrichtung zu finden. In diesem Beispiel können die Markierungen die Positionsbestimmung ermöglichen. Die Prozesse, die die Beobachtungsausrichtung weg von der bevorzugten Ausrichtung der Markierung korrigieren, können auch die Ausrichtung des Agenten 104 in Bezug auf die Arbeitsoberfläche bereitstellen.
  • In zumindest einer Ausführungsform werden Codes als Markierungen präsentiert, die gestaltet sind, um von mehreren Ausrichtungen aus gelesen zu werden. Jetzt Bezug nehmend auf 6 werden Beispiele für solche maschinenlesbaren Codes 601 gezeigt, die von mehreren Ausrichtungen aus gelesen werden können. Die Codes 601 können zum Beispiel in Verbindung mit einer der oben beschriebenen Anordnungen und Methodologien verwendet werden und können zum Beispiel über die Arbeitsoberfläche 407 verwendet werden, um die Lokalisierung eines Agenten 104, der auf einer Oberfläche 407 tätig ist, gemäß einer Ausführungsform zu unterstützen.
  • Wie in 6 gezeigt, werden in zumindest einer Ausführungsform Daten in konzentrischen Hexagonen und Kreisen von variierender Liniendicke, die effektiv eine Reihe an radialen Barcodes darstellen, codiert. Ein Fachmann erkennt jedoch, dass jeder andere Typ an maschinenlesbaren Codes 601 verwendet werden kann, und dass solche Codes 601 jede(s) geeignete Form und Aussehen annehmen können; sie können für das menschliche Auge sichtbar sein oder nicht. In zumindest einer Ausführungsform können die codierten Daten lokale Positionsinformationen enthalten (z. B. ordinale Abstände zu einem Referenzursprung). Da aber die Codes 601 dazu gedacht sind, das Lesen von mehreren Richtungen aus zu unterstützen, kann das Ableiten einer Ausrichtung des Beobachters in Bezug auf die Codes 601 schwieriger werden. Als Abhilfe dafür kann eine ergänzende Markierung die Codes 601 durch Angabe einer Ausrichtung verbessern. Ein Beispiel für einen praktischen Ansatz für die Bereitstellung dieser Verbesserung ist es, die Mitte einer konzentrisch organisierten Markierung für die Angabe der Ausrichtung mit einem Pfeil oder einem Punkt, der eine Referenzausrichtung oder eine bevorzugte kardinale Richtung angibt, zu reservieren. Der Indikator kann jedoch die bekannte Konvention der Gestaltung eines magnetischen Kompasses verwenden oder nicht, da er jede Form annehmen kann, die eine Referenzausrichtung begründet. Jetzt Bezug nehmend auf 15 werden Beispiele für maschinenlesbare Codes 601 gezeigt, die Ausrichtungsindikatoren 1501 von verschiedenen Typen enthalten. Ein Fachmann erkennt jedoch, dass Ausrichtungsindikatoren jede(s) gewünschte Auftreten oder Form annehmen können.
  • In einer anderen Ausführungsform können die Informationen in maschinenlesbaren Codes codiert sein, die eine bevorzugte Ausrichtung haben, wie Quick Response-(QR)-Codes oder ähnliches. Ein Vorteil der Nutzung eines Markierungsschemas basierend auf QR-Codes (oder ähnlichem) ist, dass die Geometrie für die Anordnung in einem Gittermuster geeignet ist und das Schema für das Codieren einer relativ großen Menge an Informationen in einem kompakten Raum geeignet ist. QR-Codes enthalten Referenzmarkierungen, die eine bevorzugte Ausrichtung sowie Skala angeben. In zumindest einer Ausführungsform stellt das System eine Arbeitsoberfläche 407 bereit, die ein Gitter an Markierungen in der Form von QR-Codes (oder ähnlichem) enthält. Wie bei den zuvor in Verbindung mit 6 beschriebenen radialen oder hexagonalen Codes 601, können die QR-Codes eine Vielzahl von Informationen wie eindeutige Identifizierungscodes, Material-IDs und/oder ähnliches enthalten. Benachbarte Codes auf einer Oberfläche können sich voneinander unterscheidende Informationen bereitstellen.
  • Jetzt Bezug nehmend auf 20 werden weitere Beispiele für Codetypen gemäß verschiedenen Ausführungsformen gezeigt, wobei jeder ein konzentrisches Codeschema verwendet. In jedem Beispiel der Codes 601C, 601D, 601E, 601F, 601G werden Daten in der Sequenz von Liniengewichten, radial von der Mitte jeder Zelle 2001 angeordnet, codiert. In zumindest einer Ausführungsform kann der leere Raum 2002 in der Mitte jeder Zelle 2001 mit einer Markierung oder anderen Kennung gefüllt werden, zum Beispiel, um eine spezifische räumliche Referenz, eine Referenz zu einer ordinalen Richtung und/oder einer Bereichsbezeichnung (um zum Beispiel einen Baubereich gegenüber einem anderen anzugeben) anzugeben. In einigen dieser Beispiele stellt eine Messlinie, die jede Zelle 2001 begrenzt, eine Referenz für die Lokalisierung in Übergängen durch die Zellen 2001 bereit. Alternativ können die Zellen 2001, wie in Code 601E gezeigt, voneinander beabstandet sein, um Grenzen zu begründen.
  • In zumindest einer Ausführungsform können Liniengewichte den Wert eines spezifischen Codeelements angeben (wie eine Zelle 2001), sodass eine Sequenz an geschlossenen Linien, die radial um die Mitte einer Zelle angeordnet sind, gemäß den Liniengewichten jeder Radialen gelesen werden kann, um die codierten Informationen zu erhalten. In zumindest einer Ausführungsform sind die Zellen 2001 von einer konstanten Größe und in einer regelmäßigen Formation angeordnet, um eine Fähigkeit zur Ableitung von Informationen über die relative Position bereitzustellen und in Fällen, in denen die codierten Informationen räumliche Standorte enthalten und/oder die Zelle 2001 einen Referenzpunkt enthält, der entweder innerhalb der Zelle 2001 als ein graphisches Element oder als lesbare Daten markiert ist, kann die globale Position von der relativen Position weg von einem Punkt eines bekannten räumlichen Standortes bestimmt werden.
  • In einigen Kontexten kann es nützlich sein, verschiedene Typen an codierten Daten auf einer bestimmten Oberfläche 407 bereitzustellen. Zum Beispiel kann in Ausführungsformen, in denen mehrere Arbeitsoberflächen 407 möglicherweise simultan in Gebrauch sind, jede Oberfläche 407 eingestreute Codes 601 enthalten, die die bestimmte Oberfläche 407 eindeutig identifizieren. Alternativ kann jeder der in diesem Dokument beschriebenen Codes 601 auch Informationen enthalten, die die bestimmte Oberfläche 407, die in Gebrauch ist, identifizieren. Eine solche Technik kann helfen, potenzielle durch die Verwendung von mehreren Oberflächen 407, die ansonsten miteinander vertauscht würden, eingeführte Unsicherheiten zu vermeiden.
  • Jetzt Bezug nehmend auf 19 wird ein Beispiel für eine Arbeitsoberfläche 407 mit einer gemischten Verwendung von Codetypen gezeigt. Hexagonale Codes 601A erleichtern das Lesen von mehreren Richtungen aus; eng voneinander beabstandete Codelinien erleichtern die Präzision bei der Lokalisierung in Bereichen der Oberfläche 407, die zum Bauen bestimmt sind. Solche Codes 601A sind daher gut für die verallgemeinerte Platzierung von Komponenten 402 wie Blöcken geeignet.
  • Der Code 601B befindet sich in einem Bereich der Oberfläche 407, der für den Transit bestimmt ist, und ist daher in Richtung einem geraden Linienverlauf in einer höheren Geschwindigkeit als die langsamere Bewegung, die typischerweise für die Manipulation und Platzierung der Komponente 402 verwendet wird, angeordnet. Entsprechend sind Markierungen im Code 601B länger und sind weiter voneinander beabstandet. In zumindest einer Ausführungsform, wie in dem Beispiel der 19 gezeigt, enthält der Code 601B weiße Quadratfuß-Messbalken, die jede Seite begrenzen, um die Erkennung des Übergangs von einer Codezone in die andere zu unterstützen. In einigen Fällen kann etwas Unsicherheit in Bezug auf die Zeit, zwischen der ein Agent 104 eine bekannte Position in einer Codebasis verlässt, bis zum Ergründen einer neuen Referenzposition in der anderen Codebasis vorhanden sein.
  • In Bezug auf die Lokalisierung kann ein Teil der Daten einen ordinalen Abstand vom geometrischen Zentrum des Codes oder einem anderen Punkt innerhalb des Codes zu einem Referenzursprung für den Arbeitsraum aufweisen (wie im Falle einer Platte oder anderen Arbeitsoberfläche 407 eine bestimmte Ecke). Zusätzliche Informationen können die Dimensionen des Codes selbst beinhalten; alternativ können die Codedimensionen spezifiziert und dem Agenten 104 oder seinem bestimmenden Steuerungssystem im Voraus bekannt sein; zum Beispiel kann der Agent 104 als Referenz Informationen nachschlagen, die die Lokalisierung zu einem Punkt innerhalb der Kontur des Codes erlauben, wenn sie an die ordinalen Abstände des Referenzpunktes des Codes gekoppelt sind. Während QR-Codes eine bevorzugte Ausrichtung haben, können die Codes in zumindest einer Ausführungsform in jeder Ausrichtung gelesen werden, und Referenzpunkte innerhalb der Codes können es dem Agenten 104 ermöglichen, eine bevorzugte Ausrichtung zu bestimmen; davon ausgehend kann die relative Ausrichtung der Beobachtung in Bezug auf den Code (und dadurch die Arbeitsoberfläche 407) bestimmt werden.
  • Im Falle der Verwendung eines radial gestalteten Codierschemas oder eines Codierverfahrens mit einer bevorzugten Ausrichtung wie QR-Codes ist es nicht notwendig, eine Einheitlichkeit der Größe unter den Codemarkierungen aufrechtzuerhalten. In zumindest einer Ausführungsform können einige Teile der Arbeitsoberfläche 407 Bereiche aufweisen, in denen präzise Bewegungen der mobilen Agenten wichtiger sein können als in anderen Bereichen. Ein Beispiel kann Teile der Arbeitsoberfläche 407 beinhalten, die dazu gedacht sind, als eine Transportstrecke verwendet zu werden und daher frei von Strukturen gehalten werden, wodurch weniger Bedarf an Lokalisierung in sehr enger Präzision erforderlich ist, sondern stattdessen ein schnelles Navigieren durch solche Bereiche bevorzugt wird. In diesem Fall können größere Codes, die der Referenz förderlicher sind, während sie sich in schnellerer Geschwindigkeit bewegen, eine bessere Wahl für diese Bereiche sein, während in Zonen der Arbeitsfläche 407, die dazu gedacht sind, von mobilen Agenten 104 aufgebaute Strukturen zu unterstützen, von einer kleineren Größe an Codes profitieren können, um den Agenten besser zu ermöglichen, ihre Positionierung und Platzierung der Komponente 402 in kleineren Toleranzen zu steuern.
  • In zumindest einer Ausführungsform muss nicht der gesamte Code erfasst werden, um die Daten zu decodieren. Dies kann insbesondere dann anwendbar sein, wenn eine radiale Codiertechnik verwendet wird. Einer der Vorteile eines solchen Schemas ist, dass die omnidirektionale Präsentation von Daten von einem Mittelpunkt das Lesen der kompletten codierten Daten aus der Sichtbarkeit eines einzelnen radialen Vektors ermöglicht. Entsprechend kann die radiale Codierung eine höhere Wahrscheinlichkeit des vollständigen Lesens der codierten Daten bieten, wenn nur ein Teil eines Codes 601 sichtbar ist oder erfasst ist, im Gegensatz zu einem Codierschema, bei dem ein vollständiges Erfassen eines Bildes des Codes 601 zur Interpretation erforderlich ist.
  • Die bisher besprochenen Lokalisierungsverfahren stellen Techniken zum Codieren von Standortdaten in einem Code, der aus einem Muster an Markierungen besteht, bereit. In anderen Ausführungsformen werden jedoch andere Verfahren für einen mobilen Agenten 104 verwendet, um die Position und Ausrichtung von der Interpretation eines oder mehrerer Codes auf einer Arbeitsoberfläche 407 abzuleiten. In einer Ausführungsform, die nicht vom Decodieren von Daten, die in lokalen Codes gespeichert sind, abhängig ist, kann die Gestaltung des gesamten Musters an Markierungen an der Arbeitsoberfläche 407 im Voraus bekannt sein, sodass die Bestimmung des Standortes auf dem Zuordnen der bei der lokalen Beobachtung erfassten Codes zu entsprechenden Standort(en) innerhalb des größeren Musters basiert. In diesem Szenario ist der Ansatz analog zum Finden eines Standortes auf einer Karte basierend auf dem Identifizieren einer Untermenge an lokalen Merkmalen innerhalb eines größeren räumlichen Merkmalssatzes.
  • Zum Beispiel kann ein Muster aus Markierungen, das die Arbeitsoberfläche 407 bedeckt, oder diejenigen Teile der Oberfläche 407, die für den Agentenbetrieb vorgesehen sind, aus Pixeln in einem sich nicht wiederholenden Muster bestehen, sodass die lokale Beobachtung des Musters nicht zu mehreren potenziellen Standorten führt. In solch einer Ausführungsform wird innerhalb einer Beobachtung eine Mindestanzahl an Pixeln erfasst, um das Zuordnen der lokalen Merkmale innerhalb des größeren Satzes, der das Gesamtmuster konstituiert, zu erlauben. Beim Zuordnen der lokalen Merkmale ist es möglich, dass die Ausrichtung der Beobachtung ein lokales Muster ergibt, das eine gewisse Art von Neuausrichtung erfordert, um zur Ausrichtung des globalen Referenzmusters wie als Teil des Lokalisierungsprozesses gespeichert zu passen. Es kann eine Umwandlung angewandt werden, um das Muster neu zu orientieren; eine solche Umwandlung ergibt auch Informationen in Bezug auf die Ausrichtung der Beobachtung in Bezug auf die Arbeitsoberfläche 407.
  • Systemarchitektur
  • In zumindest einer Ausführungsform wird das System unter Verwendung verschiedener Komponenten, die unter Einsatz jedes geeigneten Mittels miteinander kommunizieren können ausgeführt. In zumindest einer Ausführungsform kann das System unter Verwendung einer Reihe von mobilen Agenten 104, in der die Steuerung zwischen den Agenten 104 aufgeteilt ist, und einem drahtlos angeschlossenen Zentralgerät ausgeführt werden oder weiter unter dem mobilen Agenten 104, einem Zentralgerät, das die Parität zwischen dem physischen Zustand der Betriebsumgebung und einem virtuellen aktiv aufrechterhält, und einem Gerät, das gedacht ist, einem Nutzer die direkte Steuerung der Bewegung und Handlungen des mobilen Agenten 104 bereitzustellen, aufgeteilt werden, wie in der verwandten US-Gebrauchsmusteranmeldung mit der Seriennummer 13/963,638 für „Integration of a Robotic System with One or More Computing Devices“ (Aktenzeichen des Bevollmächtigten ANK002), eingereicht am 9. August 2013, beschrieben.
  • Jetzt Bezug nehmend auf 13 wird eine Ausführungsarchitektur gemäß einer Ausführungsform gezeigt. Wie in 13 dargestellt, wird das System 1300 in zumindest einer Ausführungsform von einem Host-Gerät 108 gehostet, welches an jedem geeigneten Computergerät ausgeführt werden kann, ob mobil oder stationär, wie zum Beispiel ein Smartphone, Tablet, Laptop-Computer oder ähnliches und/oder eine Kombination davon. In zumindest einer Ausführungsform unterstützt und betreibt das Host-Gerät 108 verschiedene in Software enthaltene Algorithmen, welche Handlungen des Gesamtsystems ausführen. Das Host-Gerät 108 und assoziierte Software werden in diesem Dokument kollektiv als eine Basisstation oder zentrale Steuerungseinheit bezeichnet. Obwohl 13 die gesamte Kommunikation darstellt, die das Host-Gerät 108 durchläuft, können die Agenten 104 in alternativen Ausführungsformen direkt miteinander kommunizieren, und das Host-Gerät 108 kann sogar vollständig weggelassen werden.
  • Jedes aus einer Vielzahl von verschiedenen Geräten kann als Host-Gerät 108 dienen; Beispiele beinhalten Smartphones, Tablet-Computer, Laptop-Computer, Desktop-Computer, Videospielkonsolen und/oder jedes andere Computergerät, das dazu in der Lage ist, die Steuerungssoftware für das System zu unterstützen. In zumindest einer Ausführungsform kann ein solches Gerät jedes geeignete Betriebssystem verwenden, darunter zum Beispiel und ohne Einschränkung: iOS oder MacOS, erhältlich von Apple Inc. aus Cupertino, Kalifornien; Android, erhältlich von Google, Inc. aus Mountain View, Kalifornien; oder Windows, erhältlich von der Microsoft Corporation aus Redmond, Washington. In zumindest einer Ausführungsform ist das Host-Gerät 108 ein iPhone oder iPad, erhältlich von Apple Inc. aus Cupertino, Kalifornien, das eine geeignete Software-Anwendung („App“) ausführt. In zumindest einer Ausführungsform kann die Software zur Steuerung des Host-Gerätes 108 über ein geeignetes Mittel zur Verfügung gestellt werden, wie eine herunterladbare Anwendung („App“), die die angemessene Funktionalität und Spielstruktur beinhaltet, um die Agenten 104 im physischen Raum zu bedienen und um Interaktionen unter den Agenten 104 zu planen, zu koordinieren und auszuführen, darunter Spiel, Bau, Kooperation, Konflikt und/oder ähnliches; diese Interaktionen können gemäß Regeln und unter der Leitung von Nutzereingabe, künstlicher Intelligenz oder einer Mischung davon stattfinden. In zumindest einer Ausführungsform hält das Host-Gerät 108 den Zustand der Agenten 104 aufrecht, und sendet und empfängt Befehle an die und von den Agenten 104. Das Host-Gerät 108 kann auch eine geeignete Nutzerschnittstelle zur Vereinfachung der Nutzerinteraktion mit dem System enthalten.
  • Zum Zwecke der in diesem Dokument bereitgestellten Beschreibung werden die Agenten 104 als mobile Agenten 104 bezeichnet, obwohl einige oder alle solcher Agenten 104 stationär sein können. Wie oben beschrieben können die Agenten 104 ein Typ an Komponente 402 innerhalb eines architektonischen Rahmens sein, der andere Komponenten und Elemente enthält, darunter passiv, semi-aktiv und aktiv. In zumindest einer Ausführungsform sind die Agenten 104 Fahrzeuge wie Spielzeugbaufahrzeuge, obwohl sie andere Objekte oder Komponenten sein können.
  • In zumindest einer Ausführungsform ist das Host-Gerät 108 der zentrale Knoten für alle an die Agenten 104 gesendeten Handlungs- und Steuerungsbefehle, unabhängig davon, ob die Befehle von Algorithmen stammen, die auf dem Host-Gerät 108 laufen, oder durch das Host-Gerät 108 geleitet werden, aber von den Steuerungsgeräten 101D bis 101K stammen, die von den Nutzern 109D bis 109K kontrolliert werden, die physisch präsent sind oder sich remote befinden. In anderen Ausführungsformen kann eine stärker verteilte Architektur ausgeführt werden, wobei das Host-Gerät 108 nicht der zentrale Knoten für alle Handlungs- und Steuerungsbefehle sein muss.
  • Das in 13 gezeigte Beispiel beinhaltet eine spezifische Anzahl an Steuerungen 101D bis 101K, Agenten 104 und AI-gesteuerten Agenten 104J. Ein Fachmann erkennt, dass die bestimmten Mengen der in 13 dargestellten und in diesem Dokument beschriebenen Elemente lediglich beispielhaft sind, und dass das System unter Verwendung jeder anderen Menge und/oder mit Auslassung einiger der Elemente, falls angemessen, ausgeführt werden kann. Außerdem werden die Agenten 104 in 13 als Fahrzeuge dargestellt, obwohl sie jede geeignete Form annehmen können.
  • In der Architektur der 13 wird das System 1300 auf zentralisierte Weise ausgeführt, wobei die Steuerungen 101D bis 101K und Agenten 104, zusammen mit anderen Elementen, mit dem Host-Gerät 108 kommunizieren. Wie dargestellt, können in zumindest einer Ausführungsform mehrere Nutzer 109 (oder Spieler) mehrere Agenten 104 steuern, während andere Agenten 104J mittels künstlicher Intelligenz gesteuert werden können.
  • Wie in 13 dargestellt, kann jede Anzahl an externen Geräten über jedes geeignete Kommunikationsprotokoll, wie zum Beispiel einer mobilen/Internetverbindung 111, an das Host-Gerät 108 angeschlossen werden. Die verschiedenen externen Geräte können mit dem Host-Gerät 108 identisch sein oder nicht. Einige oder alle der externen Geräte dienen als Steuerungen. 13 stellt verschiedene Beispiele für Geräte dar, die als Steuerungen verwendet werden können, darunter: Spielkonsole 101B mit einer beliebigen Anzahl an Steuerungen 101J, 101K (jeweils gesteuert von Nutzern 109J, 109K), Laptopcomputer 101D (gesteuert von Nutzer 109D); eigenständige Steuerung 101E (gesteuert von Nutzer 109E); und Smartphones 101F, 101G und 101H (jeweils gesteuert von Nutzern 109F, 109G und 109H). In zumindest einer Ausführungsform können eine oder alle der Steuerungen 101 ein iPhone oder iPad sein, erhältlich von Apple Inc. aus Cupertino, Kalifornien, eine geeignete Softwareanwendung („App“) ausführend. Die Steuerungen 101J, 101K, 101E können von jedem geeigneten Typ sein, darunter zum Beispiel Steuerungen, die häufig mit Konsolenspielgeräten verwendet werden.
  • In zumindest einer Ausführungsform ist ein Spiel oder eine Spielumgebung am Host-Gerät 108 untergebracht. Das Host-Gerät 108 unterstützt das Spielen und/oder andere Manipulation der Agenten 101, Komponenten 402 und/oder anderer Elemente im physischen Raum in einer physischen Umgebung (wie auf der Oberfläche 407) sowie in einer virtuellen Umgebung unter der Leitung von Software; der Zustand der virtuellen Umgebung wird im Speicher am Host-Gerät 108 und/oder woanders aufrechterhalten.
  • Wie in der verwandten US-Gebrauchsmusteranmeldung mit der Seriennummer 13/963,638 für „Integration of a Robotic System with One or More Computing Devices“ (Aktenzeichen des Bevollmächtigten ANK002), eingereicht am 9. August 2013, beschrieben, hält die Basisstationssoftware, die auf dem Host-Gerät 108 ausgeführt wird, in zumindest einer Ausführungsform ein virtuelles Modell der Umgebung aufrecht, darunter die Positionen der Agenten 104 und Komponenten 402, und kann Vorgänge durchführen, um ein solches virtuelles Modell mit erfassten Standorten von Agenten 104 und Komponenten 402 im physischen Raum in Einklang zu bringen. Auf diese Weise hält das Host-Gerät 108 die Parität mit Ereignissen in der physischen Umgebung durch Aktualisieren gespeicherter Informationen in Bezug auf Position, Richtung, Geschwindigkeit und andere Aspekte der Agenten 104 und/oder Komponenten 402 durchgehend aufrecht. In zumindest einer Ausführungsform stellt das Host-Gerät 108 sicher, dass die Zustände der physischen Umgebung und der virtuellen Umgebung zu jedem Zeitpunkt identisch (oder im Wesentlichen identisch) sind, oder dass zumindest der Zustand der virtuellen Umgebung in zumindest einem ausreichenden Maß an Genauigkeit für Spielzwecke eine Repräsentation des physischen Zustandes ist. In zumindest einer Ausführungsform ermöglicht das System eine bidirektionale Beeinflussung zwischen den Zuständen, sodass Ereignisse, die im virtuellen Raum stattfinden, den physischen Zustand beeinflussen können und umgekehrt. Priorität kann entweder dem virtuellen oder physischen Zustand gegeben werden, wie in diesem Dokument und in der verwandten Patentanmeldung beschrieben.
  • In zumindest einer Ausführungsform wird auf dem Host-Gerät 108 Software zu künstlicher Intelligenz ausgeführt und gibt (über drahtlose Kommunikationsmechanismen oder andere Mechanismen) Befehle aus, um einen oder mehrere Agenten 104J zu steuern. In anderen Ausführungsformen kann sich die Software für die Steuerung der Agenten 104J woanders befinden, und/oder kann auf den Agenten 104J selbst ausgeführt werden.
  • In zumindest einer Ausführungsform kann das Host-Gerät 108 simultan als eine Steuerungseinheit für einen menschlichen Nutzer 109A, der einen Agenten 104 steuert, dienen. Eine solche Funktionalität kann auf dem Host-Gerät 108 bereitgestellt werden, während das Host-Gerät 108 auch als Leitung und Interpretierer für Steuerungsbefehle dient, die von anderen Geräten 101D bis 101K eingehen, die andere Fahrzeuge 104 steuern. In einer anderen Ausführungsform dient das Host-Gerät 108 nicht als Steuerungseinheit für einen menschlichen Nutzer 109, sondern ist stattdessen als eine bestimmte zentrale Steuerungseinheit tätig.
  • Die Spielersteuerungen 101D bis 101K können direkt mit dem Host-Gerät 108 kommunizieren oder sie können über zwischengeschaltete Geräte kommunizieren. Zum Beispiel kommunizieren die Steuerungen 101J und 101K in 1 über die Spielkonsole 101B mit dem Host-Gerät 108. Ähnlich kann jede Anzahl an Verbindungsebenenzwischen den Spielersteuerungen 101D bis 101K und dem Host-Gerät 108 konfiguriert sein, wie zum Beispiel ein oder mehrere Smartphones, die über eine Folge von Geräten, die zurück zum Host-Gerät 108 vernetzt sind, mit dem Host-Gerät 108 verbinden sind.
  • Ein Fachmann kann erkennen, dass sich mit Erhöhung der Anzahl an Nutzern 109 und der Anzahl an AI-gesteuerten Gegnern die Leistungsanforderungen an das Host-Gerät 108 ebenso erhöhen. Abhängig von der Anzahl an Agenten 104 und der Kapazität des Host-Gerätes 108 können sich die Erhöhungen der rechnerischen Anforderungen zum Beispiel auf die Leistung auswirken. In zumindest einer Ausführungsform wird das System in einer verteilten Umgebung ausgeführt, wobei zum Beispiel das Host-Gerät 108 die Fähigkeit aufweist, Teile seiner Logik auf eine beliebige Anzahl an Geräten, mit denen es verbunden ist und die dazu in der Lage sind, die Durchführung dieser Logik zu unterstützen, zu verteilen. Beispiele dafür beinhalten Smartphones, Tabletcomputer, Laptops, Spielkonsolen und/oder ähnliches, können aber auch alle geeigneten Geräte sein, die dazu in der Lage sind, die notwendige Unterstützung bereitzustellen, um die ihnen zugewiesene Logik auszuführen. In zumindest einer Ausführungsform können zum Beispiel einige der mit dem Betriebssystem 1300 assoziierten Verarbeitungsaufgaben auf eine oder mehrere Steuerungen 101D bis 101H verteilt sein.
  • Es ist nicht notwendig, dass die Verteilung lokal bleibt; in zumindest einer Ausführungsform kann die Logik zum Beispiel auf einen oder mehrere sich remote befindliche Server (nicht gezeigt) verteilt werden. Eine modulare Gestaltung der Struktur des Host-Gerätes 108 kann sich für die praktische Verteilung der Logik eignen, und der Typ an Logikprozessen, die vom Host-Gerät 108 abgeladen werden, muss kein bestimmter Typ an Funktion oder Prozess sein. In zumindest einer Ausführungsform kann die Verteilung der Logik zum Beispiel gemäß rechnerischer und Speicheranforderung priorisiert werden, sodass diejenigen, die die Ressourcen des Host-Gerätes 108 am meisten in Anspruch nehmen, diejenigen sind, die zuerst woanders zugewiesen werden.
  • Es ist nicht notwendig, dass die drahtlose Schnittstelle, die eingesetzt wird, um mit und/oder unter den Steuerungen 101D bis 101H zu kommunizieren, mit derjenigen identisch ist, die verwendet wird, um die Agenten 104 unter der Steuerung des Nutzers 109 zu verbinden. Es ist zum Beispiel möglich, dass das Host-Gerät 108 mit den Steuerungen 101D bis 101H über Wi-Fi kommuniziert, während das Host-Gerät 108 mit den Agenten 104 über Bluetooth kommuniziert. In einem solchen Fall kann das Host-Gerät 108 als eine Brücke zwischen einem leistungsstarken Protokoll (wie Wi-Fi) und einem leistungsschwachen Protokoll (wie Bluetooth) dienen. Der Vorteil eines solchen Ansatzes kann in Fällen erkannt werden, in denen von Nutzern 109 über das Host-Gerät 108 gesteuerte oder direkt vom Host-Gerät 108 gesteuerte Agenten 104 (im Falle von Agenten 104J unter AI-Steuerung) über begrenzte Leistungsbudgets verfügen.
  • Wie oben beschrieben können die Steuerungen 101D bis 101H unter Verwendung jedes geeigneten Gerätes ausgeführt werden. Erneut können weniger fortschrittliche Steuerungen 101J, 101K verwendet werden wie drahtlose Gamepads oder Joysticks. In Fällen, in denen ein Gamepad oder Joystick 101J, 101K verwendet wird, das/der nicht mit einem drahtlosen Kommunikationsmodul ausgestattet ist, das die direkte Kommunikation mit dem Host-Gerät 108 unterstützt, kann die Verbindung mit dem Host-Gerät 108 durch eine Spielkonsole 101B oder einen anderen Mittler, oder durch die Verwendung eines Dongles (nicht gezeigt) erreicht werden, der in einen geeigneten Port am Host-Gerät 108 gesteckt wird. Solch ein Dongle verbindet sich drahtlos mit der Steuerung 101 und leitet Kommunikation durch den Port, in den er gesteckt ist. Alternative Ausführungsformen des Dongles können Einheiten beinhalten, die eine Brücke zwischen einem drahtlosen Protokoll, das mit der Steuerung 101 kompatibel ist, und einem drahtlosen Protokoll, das mit dem Host-Gerät 108 kompatibel ist, ausführen.
  • Zusätzlich zum Leiten der Befehle des Nutzers 109 durch das Host-Gerät 108 an die Fahrzeuge 104B bis 104F können die Steuerungen 101D bis 101H auch Aktualisierungen vom Host-Gerät 108 erhalten, die den aktuellen Status des Spiels wiedergeben. In zumindest einer Ausführungsform können einige oder alle Steuerungen 101D bis 101H mit einem oder mehreren Ausgabegeräten (wie einer Anzeige, einem Lautsprecher, haptischen Ausgabemechanismen und/oder ähnlichem) ausgestattet sein, um dazu in der Lage zu sein, das Spielerlebnis basierend auf solchen erhaltenen Statusinformationen zu verbessern. Solche Verbesserungen können zum Beispiel Wiedergaben, haptische Ausgabe (z. B. Vibration) und/oder Akustik, die eine Handlung auf der Spielbahn repräsentiert und/oder eine solche Handlung erhöht, um das Realitätsgefühl zu erhöhen oder Details bereitzustellen, die für einen Nutzer 109 ansonsten nicht sichtbar wären, beinhalten.
  • In zumindest einer Ausführungsform können die visuellen, haptischen und/oder akustischen Informationen, die den Nutzern 109 durch einige oder alle Steuerungen 101D bis 101H präsentiert werden, für jedes Gerät einzigartig sein. Verschiedene Agenten 104 können sich zu einem beliebigen gegebenen Zeitpunkt in verschiedenen Zuständen befinden (zum Beispiel in Bezug auf Position, Geschwindigkeit, Status, Handlung und ähnliches); außerdem können sich im Fall von mehreren Nutzern 109, die einen einzelnen Agenten 104 steuern, die Nutzerrollen oder Steuerung unterscheiden. Daher können die verschiedenen Hinweise und Daten, die jedem Nutzer 109 präsentiert werden, auf den aktuellen Zustand des Agenten 104 und die bestimmte Rolle des Nutzers 109 zugeschnitten sein.
  • In verschiedenen Ausführungsformen können Nutzer der Steuerungen 101D bis 101H physisch anwesend sein, sodass die Steuerungen 101D bis 101H direkt (über ein Drahtlosprotokoll wie Bluetooth) mit dem Host-Gerät 108 kommunizieren. Alternativ können sich die Nutzer der Steuerungen 101D bis 101H remote befinden und über ein Host-Netzwerk (wie das Netzwerk 111) verbunden sein. Die Steuerungen 101D bis 101H können auf Informationen in Bezug auf den Spielstatus basieren, die zurück vom Host-Gerät 108 gemeldet werden.
  • Wie oben erwähnt können in zumindest einer Ausführungsform mehrere Nutzer 109 einen einzelnen Agenten 104 in einem Spiel steuern. Zum Beispiel können drei Nutzer 109 einen einzelnen Agenten 104 steuern, wobei ein Nutzer 109 Richtungs- und Geschwindigkeitssteuerung bereitstellt, ein anderer Nutzer 109 Arme oder einen Gabelstapler am Agenten 104 steuern kann und ein dritter Nutzer 109 ein zusätzliches manipulierendes Element steuern kann. In solch einem Szenario stellen die Steuerungen 101 Informationen bereit, die auf die von jedem Nutzer 109 eingenommene Rolle zugeschnitten sind.
  • In zumindest einer Ausführungsform wird das System unter Verwendung einer Architektur ausgeführt, die die Teilung einer solchen Steuerung bereitstellt, sodass Funktionen auf hoher Ebene, wie die Zuweisung der gesamten Bauaufgabe, von einem Steuerungsgerät übernommen werden, dass sich extern zu den mobilen Agenten 104 befindet, und Befehle auf niedriger Ebene, wie die Manipulation individueller Komponenten 402, an Board jedes mobilen Agenten 104 verwaltet werden. Eine solche Architektur kann zum Beispiel unter Verwendung der in den oben zitierten verwandten Anwendungen beschriebenen Techniken ausgeführt werden. In anderen Ausführungsformen kann jede andere geeignete Architektur verwendet werden, darunter zum Beispiel diejenigen, die nicht notwendigerweise auf dem Abladen von rechnerisch intensiveren Prozessen auf gleichrangige Geräte basieren.
  • In zumindest einer Ausführungsform kann ein solches Gerät immer noch bereitgestellt werden, um einem Nutzer zu ermöglichen, einem oder mehreren mobilen Agenten 104 Anweisungen bereitzustellen, auch wenn sich die mobilen Agenten 104 in Bezug auf die Verarbeitung oder andere Funktionalität auf hoher oder niedriger Ebene nicht auf gleichrangige Geräte verlassen müssen.
  • Erkennung der Komponente 402
  • In zumindest einer Ausführungsform können Komponenten 402 von sich unterscheidenden Typen simultan auf der Arbeitsoberfläche 407 in Verwendung sein; diese Komponenten 402 können mobile Agenten 104 und/oder andere Komponenten 402 beinhalten. Tatsächlich kann die Arbeitsoberfläche 407 selbst als ein Typ an passiver Komponente 402 betrachtet werden. Wie angemerkt, können die Komponenten 402 als passiv, semi-aktiv oder aktiv kategorisiert werden, und wie beschrieben können sich die Komponenten 402 in ihrer Größe, Form, Masse und/oder in anderen Aspekten ihrer physischen Eigenschaften unterscheiden. Damit das System optimal funktioniert, erkennt das System, das die mobilen Agenten 104 steuert, in zumindest einer Ausführungsform die Komponenten 402 und bestimmt den Typ jeder individuellen Komponente 402.
  • Die Komponenten 402 können auch andere Attribute aufweisen, die sie in Bezug auf eine bestimmte Funktion unterscheiden; solche Unterschiede können bei visueller Inspektion sichtbar sein oder nicht. In zumindest einer Ausführungsform haben die mobilen Agenten 104, die auf der Arbeitsoberfläche tätig sind, die Kapazität, Komponenten 402 (darunter andere mobile Agenten 104) genau und zuverlässig zu identifizieren sowie die Position und Ausrichtung der Komponenten 402 auf der Arbeitsoberfläche 407 und/oder in Bezug auf einen Referenzpunkt zu bestimmen, um die Komponenten 402 erfolgreich und zuverlässig zu bewegen und zu manipulieren.
  • Jedes aus einer Anzahl an Verfahren kann zur Erkennung des Komponententyps und zur Erkennung der Position/ Ausrichtung der Komponente 402 angewandt werden. In zumindest einer Ausführungsform kann ein optisch basierter Ansatz verwendet werden, bei dem mindestens eines des Folgenden eingesetzt wird: 1) maschinenlesbare Codes, 2) reine Bildverarbeitung und 3) strukturiertes Licht. Diese Methoden können einzeln oder in jeder geeigneten Kombination untereinander angewandt werden.
  • Zum Beispiel kann ein strukturierter Lichtansatz verwendet werden, entweder allein oder als Ergänzung zu einer oder beiden der anderen Verfahren. Ein strukturierter Lichtscanner kann in einem oder mehreren Agenten 104 enthalten sein. Ein Beispiel für die Anwendung von strukturiertem Licht beinhaltet die Projektion eines bekannten Musters an Pixeln, wie einem Gitter, auf eine Szene, und Beobachten der Weise, auf die das bekannte Muster sich deformiert, wenn es auf Oberflächen trifft. Daher erzielt strukturiertes Licht eine geometrische Diskretisierung des Raumes. Da strukturiertes Licht Informationen in Bezug auf Farbe oder Textur auslassen kann, sind Unterschiede zwischen den Komponenten 402, die basierend auf Farbe erfassbar sind, möglicherweise anhand von strukturierten Lichtverfahren nicht leicht unterscheidbar. Außerdem können Unterscheidungen basierend auf Unterschiede der Oberflächenmerkmale, die in Bezug auf die Auflösung eines strukturierten Lichtschemas bescheiden sind, auch schwierig zu erfassen sein. Daher kann es in zumindest einer Ausführungsform nützlich sein, strukturiertes Licht durch eine oder mehrere ergänzende Erkennungsverfahren zu ergänzen.
  • In einer Ausführungsform mit Verwendung von maschinenlesbaren Codes können bestimmte Aspekte der zuvor beschriebenen Verfahren zur Vereinfachung der Lokalisierung auf der Arbeitsoberfläche 407 sich auf ähnliche Weise für die Erkennung der Komponente 402 eignen. Spezifisch die Verwendung von geometrischen Mustern und/oder codierten Daten wie QR-Codes können beim Erkennen des Komponententyps, der Fläche 503 und/oder der Ausrichtung helfen. In zumindest einer Ausführungsform kann die Verwendung eines 2D-Codierschemas wie einem QR-Code (zum Markieren der Fläche 503 einer Komponente 402) eine bevorzugte Ausrichtung der Komponente 402 bei einer beliebigen Beobachtung des maschinenlesbaren Codes implizieren. Zusätzliche Informationen, die beim Identifizieren wichtiger Charakteristika der Komponente 402 hilfreich sein können, wie der Komponententyp, die Dimensionen der Komponente 402 oder die spezifische Fläche 503 einer Komponente 402 (auf der die Markierung angewandt wird), können innerhalb des maschinenlesbaren Codes codiert werden.
  • In zumindest einer Ausführungsform wird ein Codierschema zum Vereinfachen der Erkennung eines mobilen Agenten 104 einer Komponente 402 bereitgestellt; dieses Schema kann zum Beispiel die codierten Daten in eine geeignete Struktur wie einer geordneten Sequenz organisieren. Ein Beispiel für eine solche Sequenz ist ein dreistelliger Code, in dem die ersten beiden Ziffern den Komponententyp identifizieren und die letzte Ziffer die spezifische Fläche 503 der Komponente 402 angibt (z. B. hätte eine Komponente 402 in der Form eines Würfels sechs mögliche spezifische Seiten: Nord, Ost, Süd, West, oben und unten). Solch ein Ansatz ermöglicht mobilen Agenten 104, Informationen in Bezug auf die Geometrien der Komponente 402 verfügbar zu haben, die einem bestimmten ID-Code eines Komponententyps entsprechen. Solche Informationen können im Speicher am mobilen Agenten 104 gespeichert werden oder können heruntergeladen oder wie benötigt aufgerufen werden. Ein Fachmann erkennt, dass ein solches Codierschema lediglich beispielhaft ist, und dass andere Schemata verwendet werden können.
  • In einer anderen Ausführungsform werden Bilddaten und/oder ein ID-Code zur Verarbeitung an ein anderes Gerät weitergeleitet. Ein solcher Ansatz kann zum Beispiel in Ausführungsformen angewandt werden, in denen die mobilen Agenten 104 zentral gesteuert werden oder von einem einzelnen Gerät wie einem Host-Gerät 108 überwacht werden. Bilddaten und/oder ein ID-Code können daher am Host-Gerät 108 verarbeitet werden, wobei die interpretierten Ergebnisse an den mobilen Agenten 104 gesendet werden, oder mit Anweisungen basierend auf solchen Ergebnissen an den mobilen Agenten 104 gesendet werden.
  • In noch einer anderen Ausführungsform können Informationen zur Komponente 402 in den codierten Daten selbst integriert werden, wie den orthogonalen Dimensionen der Fläche 503 der Komponente 402 oder Daten, die die Form der Komponente 402 angeben und nachfolgende Informationen, die die Flächendimensionen oder andere definierende Charakteristika festhalten. Ein Fachmann erkennt, dass das beschriebene ID-Codierschema in einigen Situationen möglicherweise nicht so gut angeordnet ist, um die Komponenten 402 mit Geometrien zu charakterisieren, die komplexer als eine konventionelle Würfelform sind oder davon abweichen (z. B. Komponenten 402 mit Geometrien, die sich aus Flächen von einer Größe oder Proportion zusammensetzen, die unzureichend ist, um Codes wie bisher besprochen in einer nützlichen Größe zu versetzen). In solchen Fällen können alternative Codierformate betrachtet werden, die besser zu einer breiteren Reihe an Formen passen, während der Grundansatz des Bereitstellens von Daten zu Größe, Typ und Ausrichtung in einer codierten Markierung auf der Fläche 503 einer Komponente 402 dennoch beibehalten bleibt.
  • Wie das Aussehen eines maschinenlesbaren Codes (auch als „Markierung“ bezeichnet), der einen Verweis auf eine bevorzugte Ausrichtung bereitstellt, die verwendet werden kann, um die relative Rotationsausrichtung der markierten Oberfläche senkrecht zum Beobachter zu bestimmen, stellt die Weise, auf die die Form des beobachteten maschinenlesbaren Codes sich im Aussehen von seinem Aussehen bei Betrachtung senkrecht zu seiner Oberfläche unterscheidet, Informationen über die relative Position und Ausrichtung der Komponente 402 im Raum in Bezug auf einen Beobachtungspunkt bereit. Spezifisch in Situationen, in denen ein Codierschema für graphische Daten angewandt wird, das sich an ein standardmäßiges geometrisches Format hält, können Abweichungen des beobachteten maschinenlesbaren Codes von dem standardmäßigen Format verwendet werden, um Position und Ausrichtung der Komponente 402 in Bezug auf eine Kamera oder einen Scanner am Agenten 104 zu bestimmen.
  • Zum Beispiel ist für einen QR-Code die angenommene Form quadratisch. Wenn ein solcher Code außerhalb eines Vektors senkrecht zur Mitte des Codes betrachtet wird, verzerrt die Ansichtsperspektive die Form auf vorhersehbare Weisen. Basierend auf einem Verständnis davon, wie Geometrien durch Perspektive transformiert werden, kann das System die relative Position und Ausrichtung der Fläche, die den Code trägt, in Bezug auf den Beobachter ableiten. Daher verarbeitet das System in zumindest einer Ausführungsform das beobachtete Aussehen des Codes, um die relative Distanz und Ausrichtung unter Verwendung des Wissens des/der normalen Aussehens und Größe des Codes zu erzielen, wobei beides entweder durch vorheriges Wissen oder durch Lesen des Codes oder durch eine Kombination aus beidem zur Verfügung gestellt werden kann.
  • In einigen Fällen können die Bildauflösung, der Beobachtungsabstand und/oder andere Faktoren die Genauigkeit des Systems beim Bestimmen der relativen Position und Ausrichtung einer codierten Fläche einschränken. Folglich werden in zumindest einer Ausführungsform andere Verfahren angewandt, um die durch die Analyse des Aussehens der codierten Markierung bereitgestellten Informationen zu ergänzen. Zum Beispiel können auf einer Komponente 402 an einem oder mehreren Standorten zusätzliche Markierungen bereitgestellt werden. Für Komponentenformen mit flachen Oberflächen können Eckpunkte markiert werden, um Referenzen herzustellen, die mit leicht identifizierbaren Punkten auf der Geometrie einer Komponente 402 übereinstimmen. Zum Beispiel können für eine Komponente 402, die ein würfelförmiger Block ist, Referenzmarkierungen an den acht Ecken des Würfels platziert werden, wobei vier Markierungen neben einer bestimmten Fläche des würfelförmigen Blockes platziert werden. In Fällen, in denen die Fläche 503 einer Komponente 402 größer als die sich darauf befindliche Codemarkierung ist, stellen Referenzmarkierungen, die sich an den Flächenenden (d. h. den Ecken) befinden, eine verbesserte Perspektive bereit, die dabei helfen kann, die Position und Ausrichtung einer bestimmten Fläche in Bezug auf einen Beobachtungspunkt zu identifizieren.
  • In verschiedenen Ausführungsformen können solche Referenzmarkierungen jede aus einer Anzahl an Formen annehmen. In zumindest einer Ausführungsform wird ein Schema angenommen, das dazu dient, die Zuverlässigkeit der Erkennung sowohl der Markierung als auch ihrer Beziehung zur Fläche 503 der Komponente 402 zu verbessern.
  • Jetzt Bezug nehmend auf die 7A bis 7C werden einige Beispiele für Referenzmarkierungen 701, wie sie auf einer Fläche 503 einer würfelförmigen Komponente 402 wie einem Block erscheinen können, gezeigt. Wie in 7A gezeigt, können bekannte Abstände zwischen den Referenzmarkierungen 701 verwendet werden, um die relative Position und Ausrichtung der Komponente 402 von einer Kamera oder einem Scanner (nicht gezeigt) zu bestimmen. Solche Referenzmarkierungen 701 können auf Flächen 503 zusätzlich zu maschinenlesbaren Codes 601 wie oben beschrieben platziert werden; jedoch werden solche maschinenlesbaren Codes 601 in den 7A bis 7C deutlichkeitshalber weggelassen.
  • Wie in 7B gezeigt, kann die an jeder Ecke der Fläche 503 positionierte Markierung 701 in zumindest einer Ausführungsform so geformt und orientiert werden, dass sie in ihre verwandte geometrische Ecke zeigt. Ein solcher Ansatz kann die Auflösung von separaten, individuellen Flächen 503 vereinfachen, wenn eine Beobachtung mehrere Flächen oder eine unvollständige Ansicht einer oder mehrerer Flächen 503 und/oder Codes beinhalten kann. In solchen Fällen kann die Erschaffung einer Punktwolke an Datenpunkten von den Referenzmarkierungen 701, wobei jede Markierung 701 einen assoziierten geometrischen Punkt repräsentiert, einen Satz an Punkten erzielen, deren korrekte Auflösung in separate Flächen 503 herausfordernd sein kann. Ein Grund dafür ist, dass der räumliche Festpunkt, der einen Eckstandort angibt, nicht notwendigerweise angibt, wie die Oberflächen, die ihn definieren, konvergieren. In mathematische Begriffe gesetzt, bestehen die gültigen Positionen für jede der drei Flächen 503, deren Schnittpunkt den Eckpunkt definiert, falls jemand nur Kenntnis von einem einzelnem Eckpunkt für einen dreidimensionalen Würfel hat, aus dem vollen Spektrum an möglichen Positionslösungen des in allen drei Dimensionen um den Eckpunkt rotierten Würfels. Entsprechend kann die Verwendung der Referenzmarkierungen 701 zum Bereitstellen der Angabe einer Erweiterungsrichtung einer Fläche 503 relativ zum markierten Punkt die Auflösung der Flächen 503 von einer Punktwolke an Referenzpunkten vereinfachen.
  • In einigen Fällen können sich die Referenzmarkierungen 701 auf separaten Flächen 503 in enger Nachbarschaft befinden, sodass die Beobachtung von bestimmten Blickwinkeln aus zu einer Schwierigkeit der Identifizierung einer Markierung 701 oder Ambiguitäten über den Referenzpunkt führen kann. Wenn zum Beispiel ein Referenzmarkierungsschema die Markierungen 701 an Eckstandorten an jeder Fläche 503 eines Würfels verwendet, dann zeigt die Ausrichtung des Würfels zu einem Beobachtungspunkt, der eine Ecke mit mehr als einer seiner definierenden Flächen 503 sichtbar darstellt, ebenfalls mehrere Referenzmarkierungen 701. Falls sich die Referenzmarkierungen 701 vollständig zu den lokalen Kanten des Würfels erstrecken, dann kann es schwierig werden, die resultierende aggregierte Form in separate Referenzmarkierungen 701 aufzulösen. Aus diesem Grund kann es vorteilhaft sein, die Referenzmarkierungen 701 weg von der Kante jeder Fläche 503 zu versetzen (wie in den 7A bis 7C gezeigt), sodass Beobachtungen, die mehrere Referenzmarkierungen 701, die denselben Punkt angeben, beinhalten können, einfacher als solche identifiziert werden können.
  • Die oben beschriebenen Techniken zur Markierung von Eckpunkten als ein Mittel der Bestimmung von räumlichen Charakteristika der Flächen 503 ist lediglich ein Beispiel für einen Ansatz, der in Verbindung mit dem vorliegenden System und Verfahren verwendet werden kann. Es können andere Techniken verwendet werden. Zum Beispiel stellen Kanten eine Basis für die geometrische Beschreibung in einer Weise, die Eckpunkten ähnlich ist, bereit, und die Linien- oder Kantenerfassung stellt ein alternatives Mittel bereit, das separat oder als Ergänzung zu einem Eckmarkierungsschema verfolgt werden kann. Die Kantenerfassung ist im Fach der Bildverarbeitung hinreichend bekannt und kann insbesondere im Kontext des vorliegenden Systems und Verfahrens nützlich sein, insbesondere, wenn die potenziellen Komponentengeometrien möglicherweise im Voraus bekannt sind oder (durch Mittel wie einem Komponenten-ID-Code) erhalten werden können. In einigen Fällen können Kanten gegenüber Ecken aufgrund ihrer Definition als eine Kurve oder ein Vektor anstelle eines Punktes Vorteile bieten. Daher können in zumindest einer Ausführungsform Markierungsschemata in Richtung der Hervorhebung von Kanten zusätzlich zu Ecken oder als eine Alternative zu einem Eckmarkierungsansatz gerichtet sein.
  • Jede geeignete Form kann zum Markieren von Oberflächen mit maschinenlesbaren Codes 601 und/oder Referenzmarkierungen 701 verwendet werden. In zumindest einer Ausführungsform kann Farbe verwendet werden, um weiter bei der Identifizierung bestimmter Komponententypen oder Aspekten davon zu helfen. In zumindest einer Ausführungsform kann das Markieren durch das Anwenden von Tinte (oder jeder geeigneten Farbe oder Kombination an Farben) und/oder durch Texturieren oder Relief und/oder durch etwas Materialvariation erreicht werden. In zumindest einer Ausführungsform werden mit einer Tinte, die im sichtbaren Spektrum transparent ist, aber auf Lichtwellenlängen außerhalb des sichtbaren Bereichs sichtbar ist, wie Ultraviolett- oder Infrarotfrequenzen, Markierungen auf Oberflächen aufgetragen. Der Vorteil von diesem Ansatz ist, dass die Markierungen vor Nutzern verborgen sind und daher nicht von dem Aussehen der Komponenten 402 ablenken oder diesem schaden.
  • Da die Komponenten 402 potenziell komplexe Oberflächen und/oder mechanische oder andere Funktionalität aufweisen können, ist es möglich, dass einige Komponenten 402 Flächen 503 haben können, denen ausreichend oder geeigneter Raum fehlt, auf dem sich ein maschinenlesbarer Code 601 oder Referenzmarkierung(en) 701 befinden kann. In diesen Fällen kann es immer noch wünschenswert sein, dass eine Komponente 402 einen Mechanismus zum Validieren des Vorhandenseins einer Oberfläche, wie einer Fläche 503, trotz einer Unfähigkeit, alle oder einen Teil der Identifizierungsmarkierungen (maschinenlesbarer Code 601 oder Referenzmarkierung(en) 701) zu unterstützen, die ansonsten vorhanden wären, enthält. In zumindest einer Ausführungsform wird eine Angabe (zusätzlich zu oder als Teil eines maschinenlesbaren Codes 601 oder Referenzmarkierung(en) 701) bereitgestellt, dass der Code 601 und/oder die Referenzmarkierung(en) unvollständig ist/sind. Ein solcher Ansatz kann dazu dienen, wiederholte Beobachtungen der Oberfläche im Versuch, einen vollständigen maschinenlesbaren Code 601 zu erfassen, zu verkürzen.
  • Daher kann in zumindest einer Ausführungsform ein Muster über den gesamten verfügbaren Raum auf einer bestimmten Fläche 503 angewandt werden, wobei ein solches Muster sich von dem Typ an Markierungen (maschinenlesbarer Code 601 oder Referenzmarkierung(en) 701) unterscheidet, der beim Codieren der Komponentenfläche 503 angewandt wird; ein solches Muster gibt eine(n) unvollständige(n) maschinenlesbaren Code 601 oder Referenzmarkierung(en) 701 an. Ein Beispiel ist ein Streifenmuster, dessen Ausrichtung um 45° von der vorherrschenden Kante der Fläche 503 versetzt ist. Eine Beobachtung, die dieses Muster erfasst, kann bestimmen, dass die Komponentenfläche 503 unvollständig ist/sind oder keine codierten Daten präsentiert/präsentieren, während sie möglicherweise auch einen Teil der geometrischen Grenzen der Fläche 503 beschreiben kann. Auf diese Weise kann das System immer noch Informationen erhalten, die für das Entwickeln eines umfassenden Verständnisses der gesamten räumlichen Positionierung und Ausrichtung der Komponente 402 (sowie ihrer Beziehung zu anderen Komponenten 402 und zur Oberfläche 407 relevant sein können.
  • Unter Verwendung der in diesem Dokument beschriebenen Techniken stellen das System und Verfahren daher eine Umgebung bereit, die die Lokalisierung der mobilen Agenten 104, die auf einer Arbeitsoberfläche 407 tätig sind, unterstützt, und die die Interaktion solcher mobilen Agenten 104 mit den Komponenten 402 wie zum Beispiel Blöcken vereinfachen. Die in diesem Dokument beschriebenen Techniken können verwendet werden, um den mobilen Agenten 104 zu ermöglichen, Position und/oder Ausrichtung solcher Komponenten 402 in Bezug auf die mobilen Agenten 104, andere Komponenten 402 und/oder die Arbeitsoberfläche 407 (die selbst als Komponente 402 betrachtet werden kann) zu bestimmen.
  • In zumindest einer Ausführungsform hat jeder mobile Agent 104 ein Verständnis von den Grenzen der Betriebsumgebung und/oder seiner Position innerhalb dieser Umgebung; daher ist jeder Agent 104 durch die Prozesse der Identifizierung und Erkennung der Komponenten 402 und ihrer räumlichen Disposition relativ zu der bekannten Position und Ausrichtung des Agenten 104 dazu in der Lage, die räumliche Disposition der Komponenten 402 im Kontext der Grenzen der Betriebsumgebung und/oder eines globalen Referenzpunktes (welcher zum Beispiel ein gemeinsamer Ursprungspunkt auf der Arbeitsoberfläche 407 sein kann) zu verstehen.
  • Folglich stellen sowohl die Arbeitsoberfläche 407 als auch die anderen Komponenten 402 eine strukturierte Umgebung dar, die zusammen oder separat die Lokalisierung durch mobile Agenten 104 unterstützen können.
  • In verschiedenen Ausführungsformen kann das System eines oder beide der Arbeitsoberfläche 407 und des aktuellen Wissens über die Komponentenanordnung verwenden, und/oder kann von einem zum anderen schalten. In einem Beispiel, wobei ein mobiler Agent 104 mit dem Bewegen einer bestimmten Komponente 402 an einen bekannten Standort in einigem Abstand zu ihrer aktuellen Position beauftragt ist, kann das System einen Weg planen, der den Agenten 104 zum Standort der Komponente 402 bringt, bevorzugt auf eine Weise, die den Agenten 104 dazu veranlasst, die Komponente 402 auf bequeme Weise zu heben, greifen oder anderweitig ihre Position zu ergreifen. Während der mobile Agent 104 entweder zum Standort der Komponente 402 reist oder sich mit der Komponente 402 zu ihrem vorgesehenen nächsten Standort bewegt, kann der Agent 104 codierte oder anderweitig zur Referenz auf der Arbeitsoberfläche 407 (oder mit Bezug auf eine globale Position) markierte Informationen nutzen. Sobald der mobile Agent 104 ausreichend nah an der Komponente 402 ist, kann jedoch die Position und Ausrichtung des Agenten 104 in Bezug auf die Komponente 402 relevanter für die unmittelbare Aufgabe des Erfassens oder Manipulierens der Komponente 402 als die absolute Position des mobilen Agenten 104 auf der Arbeitsoberfläche 407 werden. Der Übergang von einer Betonung auf dem Beobachten einer globalen Position und Ausrichtung über die Arbeitsoberfläche zu einer, die stattdessen auf das Lokalisieren mit Bezug auf die zum Erfassen oder Manipulieren identifizierte Komponente 402 gerichtet ist, kann zum Beispiel auf dem Erkennen des potenziellen Fehlers, der in dem kartierten Standort der anvisierten Komponente 402 vorhanden ist, basieren. Vertrauend auf Kartendaten zum Lenken des mobilen Agenten 104 zu einem nahen Standort der Komponente 402 stellt ein Mittel für den Mobilen Agenten 104 bereit, die Komponenten 402 effizient und zuverlässig ohne Sichtlinie zu erreichen. Sobald sich der mobile Agent 104 in nahem Abstand zu der Komponente 402 befindet, sodass das Bestimmen der Position und Ausrichtung der Komponente 402 in Bezug auf den Agenten 104 über durch die Sensoren an Bord des Agenten 104 bereitgestellte Verarbeitungsdaten möglich wird, kann es vorzuziehen sein, zu diesem Ansatz zu wechseln, bis die Komponente 402 vom Agenten 104 erfasst ist. An einem solchen Punkt kann der mobile Agent 104 zum Lokalisieren in Bezug auf die Arbeitsoberfläche 407 (oder in Bezug auf die globale Position des Agenten 104) zurückkehren.
  • Ähnlich kann die Platzierung der Komponente 402 in ihrer beabsichtigten Position und Ausrichtung ebenfalls einen Schalter zum bevorzugten Lokalisieren in Bezug auf andere Komponenten 402 beinhalten, die potenziell an die beabsichtigte finale Position und Ausrichtung der vom mobilen Agenten 104 getragenen Komponente 402 angrenzen. In solch einem Fall können die räumlichen Daten der Komponente 402 mit Genauigkeit zu der Grenze derjenigen, die durch das Lokalisierungsschema der Arbeitsoberfläche 407 unterstützt wird, aufgestellt werden, zum Beispiel durch eine nach unten gerichtete Kamera, die an dem mobilen Agenten installiert ist, und Nutzen der bekannten Geometrien der Geometrien des mobilen Agenten 104 sowie derjenigen der Komponente 402 und allen anderen Komponenten 402, die für die finale Position der platzierten Komponente 402 relevant sind (z. B. unterhalb des Standortes der platzierten Komponente 402 gestapelte Komponenten 402).
  • In zumindest einer Ausführungsform können mehrere mobile Agenten 104 simultan auf der Arbeitsoberfläche 407 tätig sein, mit separaten Aufgaben beschäftigt sein oder kooperativ arbeiten (oder konkurrierend, oder in Konflikt untereinander, entweder simuliert oder tatsächlich). Unabhängig davon, ob die mobilen Agenten 104 aktiv miteinander kooperieren, können durch separate Beobachtungen der Arbeitsoberfläche 407 abgeleitete Informationen zu einem einzelnen, globalen Modell der Umgebung der Arbeitsoberfläche 407 kombiniert werden. Eine solche Aggregation an Daten kann eine umfassendere oder vollständigere Übersicht über alle Komponenten 402, die sich in dem relevanten Raum der Arbeitsoberfläche 407 befinden, sowie genauere Informationen in Bezug auf die jeweilige Position und Ausrichtung der Komponenten 402 erzielen. Vermutlich kann, falls das System eine Architektur anwendet, in der sich ein virtuelles Modell des physischen Raumes, in dem die mobilen Agenten 104 tätig sind, in einem zentralen Knoten wie dem Host-Gerät 108 aufhält, ein solches Modell alle relevanten Informationen integrieren, die sich auf alle Komponententypen, Positionen und Ausrichtungen beziehen, die separat über mobile Agenten 104 und/oder andere Typen an Komponenten 402 erhalten werden, die ausgestattet sein können, um solche Daten vollständig oder teilweise zur Verfügung zu stellen. Auf diese Weise kann eine umfassende Repräsentation der Komponenten 402 in der relevanten Nachbarschaft der Arbeitsoberfläche 407 erstellt werden. Eine solche umfassende Repräsentation kann dann beim Bauen und/oder Aufrechterhalten einer virtuellen Repräsentation der Komponenten 402, Arbeitsoberfläche 407, und/oder mobilen Agenten 104 sowie für die Abstimmung physischer Positionen und Ausrichtungen der Komponenten 402, Arbeitsoberfläche 407 und/oder mobilen Agenten 104 mit entsprechenden virtuellen Repräsentationen verwendet werden, wie in der verwandten US-Gebrauchsmusteranmeldung mit der Seriennummer 13/963,638 für „Integration of a Robotic System with One or More Computing Devices“ (Aktenzeichen des Bevollmächtigten ANK002), eingereicht am 9. August 2013, beschrieben.
  • Aufgrund der Möglichkeit, dass von separaten mobilen Agenten 104 abgeleitete Informationen in Bezug auf den Komponententyp, die Position und/oder den Standort möglicherweise nicht genau übereinstimmen, kann in zumindest einer Ausführungsform ein Mechanismus zum Abstimmen von Unterschieden beim Bauen und Aufrechterhalten einer einzelnen Repräsentation der Betriebsumgebung ausgeführt werden. Daten können gemäß potenziellem Fehler priorisiert werden, sodass Daten mit dem niedrigsten Fehler ein höheres Gewicht beim Aggregieren von Informationen von separaten Quellen als Daten mit dem größeren Fehler tragen.
  • Es wird zum Beispiel angenommen, dass zwei mobile Agenten 104 die gleiche Komponente 402 von separaten Standorten auf der Arbeitsoberfläche 407 aus beobachten, einer von einem Blickwinkel in der Nähe der Komponente 402 und der andere von einem weiter entfernten Standort. Falls die mobilen Agenten 104 ihre eigenen Positions- und Ausrichtungsinformationen von der Arbeitsoberfläche 407 mit dem gleichen Maß an Genauigkeit ableiten und beide die gleiche Kamerabildgebungstechnologie anwenden, um die Komponente 402 zu beobachten, dann wird erwartet, dass der näher an der Komponente 402 positionierte mobile Agent 104 in den meisten Fällen zuverlässigere Informationen in Bezug auf die räumliche Anordnung der gemeinsam betrachteten Komponente 402 bereitstellen wird als der weiter entfernt positionierte Agent 104. Verschiedene Faktoren können die Qualität der Daten in einem solchen Beispiel beeinflussen, wie Unterschiede des Betrachtungswinkels oder ob ein mobiler Agent 104 die Komponente 402 während der Bewegung beobachtet, oder ob einer eine teilweise behinderte Sicht hat. Andere Unterschiede bei den Beobachtungsbedingungen können ebenfalls vorhanden sein. In zumindest einer Ausführungsform können einige oder alle solcher Faktoren beim Priorisieren der Daten von den zwei Quellen berücksichtigt werden.
  • Ein Fachmann erkennt, dass zum Priorisieren inkonsistenter Daten, die von verschiedenen Quellen empfangen werden, andere Schemata verwendet werden können.
  • In zumindest einer Ausführungsform greifen die mobilen Agenten 104 (und/oder andere Komponenten 402) in das anhaltende Beobachten und/oder die Erkundung ein, um eine genaue virtuelle Repräsentation des physischen Zustandes der Umgebung einschließlich der Arbeitsoberfläche zu bauen und aufrechtzuerhalten. In zumindest einer Ausführungsform kann erwartet werden, dass die mobilen Agenten 104 einem Raum vorgestellt werden, der bereits mit Komponenten 402 bevölkert ist. Auch können sich in einigen Situationen die Konfigurationen der Komponente 402 auf Arten ändern, die schwierig vorherzusagen sind, wie zum Beispiel, wenn eine Anordnung versehentlich zusammenbricht oder absichtlich abgebaut wird. In jedem Fall können die Agenten 104 so konfiguriert sein, dass sie Diskrepanzen zwischen dem physischen Zustand und der virtuellen Repräsentation, die erschaffen worden ist, erkennen.
  • Wie in diesem Dokument besprochen, können in Fällen des Konfliktes zwischen der virtuellen Repräsentation und den physischen Positionen der Agenten 104 und/oder Komponenten 402 angemessene Anpassungen an einem oder beidem der physischen Positionen und/oder der virtuellen Repräsentation vorgenommen werden. Priorität kann wie angemessen einem des virtuellen oder physischen gegeben werden.
  • Jetzt Bezug nehmend auf 8 wird ein Flussdiagramm gezeigt, das einen Prozess beschreibt, den die mobilen Agenten 104 auf einer laufenden Basis anwenden können, um die Parität zwischen dem virtuellen Zustand und dem physischen Zustand aufrechtzuerhalten. In 8 dargestellte Schritte und Funktionen können die einzelne, getrennte Aufgabe eines Agenten 104 sein oder sie können mit anderen Aktivitäten kombiniert werden und können sogar gleichzeitig mit solchen anderen Aktivitäten ausgeführt werden. Zusätzliche Techniken für eine solche Abstimmung sind zum Beispiel in der verwandten US-Gebrauchsmusteranmeldung mit der Seriennummer 13/963,638 für „Integration of a Robotic System with One or More Computing Devices“ (Aktenzeichen des Bevollmächtigten ANK002), eingereicht am 9. August 2013, beschrieben, welche per Verweis in dieses Dokument einbezogen ist.
  • Das Verfahren fängt an 800. Anfangs befindet sich der mobile Agent 104 in einem Zustand BEOBACHTEN & VERFOLGEN 801, welcher als eine Servicefunktion ausgeführt werden kann, die zusammen mit anderen Aufgaben durchgeführt werden kann. Während er in diesem Zustand ist, ist der Agent 104 dazu in der Lage, Ereignisse zu erfassen und/oder Informationen von externen Quellen zu empfangen, entweder von anderen mobilen Agenten 104 oder durch alternative Formen der Ereignisbenachrichtigung empfangen. Zum Beispiel kann der mobile Agent 104 einen Ton erfassen, der mit fallenden Komponenten 402 oder Vibrationen in der Arbeitsoberfläche, die von einem Beschleunigungsaufnehmer aufgenommen wurden, konsistent ist.
  • In zumindest einer Ausführungsform bestimmt 803 der Agent 104, falls in Schritt 802 kein Ereignis erfasst wird, ob alle Bereiche der Arbeitsoberfläche 407 erkundet worden sind; falls dies der Fall ist, kehrt das Verfahren zum Zustand BEOBACHTEN & VERFOLGEN 801 zurück. Falls Bereiche noch nicht erkundet sind, kann in zumindest einer Ausführungsform eine weitere Erkundung durchgeführt werden, zum Beispiel durch Vornehmen bestimmter Anpassungen 804 wie Verlagern der Position auf der Arbeitsoberfläche 407, Ändern der Ausrichtung, und/oder Durchführen anderer Tätigkeiten. Das Verfahren kehrt dann zum Zustand BEOBACHTEN & VERFOLGEN 801 zurück.
  • Als Antwort auf die Erfassung 802 eines Ereignisses, zum Beispiel das Erfassen des Vorhandenseins einer Komponente 402 durch den mobilen Agenten 104, beginnt der Schritt 805 der Komponentenerkennung. Hier versucht ein mobiler Agent 104, die Komponente 402 zu erkennen, deren Zustand sich geändert hat. Falls eine Komponente 402 erfolgreich erkannt wird, führt der mobile Agent 104 einen Schritt BERICHTEN & AKTUALISIEREN 808 durch, wobei sich ergebende Informationen in Bezug auf den Komponententyp, die Position und Ausrichtung in der virtuellen Repräsentation des physischen Raumes aktualisiert werden. Sobald das Ereignis gemeldet und die virtuelle Umgebung entsprechend aktualisiert wurde 808, kehrt das Verfahren in den Zustand BEOBACHTEN & VERFOLGEN 801 zurück.
  • Die Erfassung 802 und Erkennung 805 kann als Antwort auf kleinere Vorkommnisse, wie zum Beispiel, wenn die Position einer Komponente 402 als Antwort auf überlegene Beobachtungsdaten leicht verändert wird, oder auf größere Vorkommnisse durchgeführt werden, wie zum Beispiel, wenn eine Komponente 402 entlang einer langen Strecke bewegt wird, oder wenn eine Streuung an heruntergefallenen Komponenten 402 plötzlich auf der Arbeitsoberfläche 407 erfasst wird, oder wenn eine gestapelte Anordnung der Komponenten 402 plötzlich als Folge eines Zusammenbruchs oder unerwarteten Entfernens von ihrem vorherigen Standort verschwindet.
  • Falls die erfasste Komponente 402 in Schritt 805 nicht erfolgreich erkannt wird, kann der mobile Agent 104 in zumindest einer Ausführungsform bestimmen 806, ob ein alternativer Aussichtspunkt möglich ist; falls dies der Fall ist, versucht der Agent 104, seinen Aussichtspunkt anzupassen 807, während sein Fokus auf die nicht erkannte Komponente 402 aufrechterhalten bleibt, bis er die Komponente 402 entweder identifiziert hat oder verfügbare Aussichtspunkte, die dafür verwendet werden können ausgeschöpft hat. Nach dem Anpassen 807 kehrt das Verfahren zu Schritt 801 zurück, sodass die Erfassung 802 und Erkennung 805 erneut versucht werden kann.
  • In zumindest einer Ausführungsform kann der mobile Agent 104 bestimmen 809, ob Nutzerunterstützung verfügbar sein kann, falls keine alternativen Aussichtspunkte in Schritt 806 möglich sind, und falls dies der Fall ist, Unterstützung 811 von einem Nutzer (oder einer anderen Quelle) anfordern. In zumindest einer Ausführungsform kann eine solche Anforderung durchgeführt werden, indem dem Nutzer mitgeteilt wird, dass es Aspekte des physischen Zustandes gibt, die das System oder seine mobilen Agenten 104 nicht erkennen können. Als Reaktion auf eine solche Mitteilung kann der Nutzer dazu in der Lage sein, eine angemessene Lösung bereitzustellen, zum Beispiel durch Zerlegen eines durcheinander gewürfelten Stapels an Blöcken, die andernfalls erkennbar wären und/oder durch Entfernen von Nicht-Block-Komponenten 402, die auf der Arbeitsoberfläche 407 vorhanden sein können (d. h. Objekte, die dem Ökosystem der Komponenten 402, die als Blöcke erkennbar sind, fremd sind).
  • Falls in Schritt 809 Nutzerunterstützung nicht verfügbar ist, kann der mobile Agent 104 versuchen, den zuvor beschriebenen Zerlegungs- und Entfernungsprozess selbst durchzuführen. Zum Beispiel kann der mobile Agent 104 jede geeignete Technik verwenden, um zu bestimmen, wann Versuche der Identifizierung einer Komponente 402 oder eines anderen Objektes zu stoppen sind und stattdessen versucht, sie/ihn von der Arbeitsoberfläche 407 zu entfernen (zum Beispiel, indem sie/es weggeschubst wird); eine solche Entscheidung kann automatisch vom mobilen Agenten 104 oder Host-Gerät 108 oder einer anderen Komponente basierend zum Beispiel auf dem Erreichen einer zuvor festgelegten Anzahl an gescheiterten Versuchen der Identifizierung der Komponente 402 und/oder anderen Kriterien gefällt werden.
  • Es ist anzumerken, dass in zumindest einer Ausführungsform der in 8 gezeigte Prozessfluss keine Fertigstellung angibt, sondern stattdessen eine Schleife, die zum Schritt BEOBACHTEN & VERFOLGEN 801 zurückkehrt, obwohl der Vorgang zu jedem geeigneten Zeitpunkt basierend auf einem auslösenden Ereignis, Befehl oder anderem Zustand enden kann.
  • In zumindest einer Ausführungsform kann jede geeignete Anzahl an mobilen Agenten 104 simultan Prozessflüsse ausführen, die dem in 8 dargestellten ähnlich sind; ein solcher paralleler Vorgang kann schneller zu einer genaueren Repräsentation des physischen Raumes in der Umgebung der Arbeitsoberfläche 407 führen, als sie von einem einzelnen Agenten 104 führen würde. Die Verwendung mehrerer Agenten 104 kann Möglichkeiten für einen verbesserten Prozessfluss bereitstellen. Zum Beispiel können in Fällen eines anfänglichen Scheiterns des Erkennens eines Objektes mehrere Agenten 104 Beobachtungsdaten simultan sammeln und teilen, was die Wahrscheinlichkeit der erfolgreichen Erkennung einer Komponente 402 oder eines anderen Objektes erhöht. Ähnlich können die Agenten 104 kooperieren, um die verbesserte Effizienz beim Zerlegen der Komponenten 402 oder anderer Objekte zu vereinfachen.
  • Das Bereitstellen von mobilen Agenten 104 mit der Fähigkeit, Änderungen des physischen Zustandes der Umgebung um die Arbeitsoberfläche 407 herum zu erfassen, ermöglicht dem System und Verfahren, Kohärenz zwischen dem physischen Zustand und der virtuellen Repräsentation davon, die als eine Basis für das Planen und Ausführen von Handlungen verwendet wird, aufrechtzuerhalten. Obwohl eine robuste Kapazität in dieser Hinsicht eine günstige Reaktionsfähigkeit auf Änderungen erzielen kann, muss eine Verzögerung beim Erfassen einer Änderung nicht notwendigerweise das Maß an Engagement reduzieren, das das System bei einem Nutzer hervorruft. Tatsächlich kann die Zeit, die benötigt wird, damit ein mobiler Agent 104 eine unerwartete oder ungeplante Veränderung in seiner Umgebung erfasst, eine Unterhaltungsquelle für Nutzer sein. Man kann sich vorstellen, dass einige Nutzer die Konfiguration oder Platzierung der Komponente 402 in einem Moment ändern, in dem ein mobiler Agent 104 nicht gut angeordnet ist, um das Veränderungsereignis zu erfassen, und dann warten, um zu sehen, wie lange der mobile Agent 104 braucht, um den Unterschied zu erfassen, die Änderung zu erkennen, und als Folge zu bestimmen, welche Handlung er gegebenenfalls als Antwort durchführt.
  • Der Betrieb mehrerer mobiler Agenten 104, die auf einer geteilten Repräsentation der Arbeitsfläche basieren, eignet sich für die Organisation der Kooperation unter mobilen Agenten 104 zur Durchführung von Aufgaben. Entsprechend kann in zumindest einer Ausführungsform eine Vielzahl von mobilen Agenten 104 individuell zu einem gemeinsamen Ziel beitragen, oder kann eine Aufgabe teilen. Zum Beispiel können zwei mobile Agenten 104 eine einzelne Komponente 402 oder eine Anordnung von Komponenten 402 tragen, die selbst zu sperrig oder zu schwer oder anderweitig zu unhandlich sein kann, um von einem einzelnen mobilen Agenten 104 verwaltet zu werden.
  • Jetzt Bezug nehmend auf 9 wird ein Beispiel gezeigt, in dem zwei mobile Agenten 104 eine physische Ladung (Komponente 402F) in Eingriff nehmen und heben, jeweils von einem Ende der Komponente 402F. Die Agenten 104 bewegen sich dann in Abstimmung zu dem vorgesehenen Standort für ihre geteilte Ladung. Eine solche Aufgabe erfordert sowohl Planung als auch Bewegungskontrolle, sowie Mechanismen, die eine solche Zusammenarbeit ermöglichen. Wie auf der rechten Seite der 9 gezeigt, erfordert um Beispiel das Bewegen der Komponente 402F entlang des Bogens 901 das Koordinieren von Lenkbetätigungen zwischen den zwei Agenten 104, wie nachfolgend detaillierter beschrieben.
  • In verschiedenen Ausführungsformen kann das in den mobilen Agenten 104 gestalteten Fortbewegungsmittel eine beliebige aus mehreren Formen annehmen, darunter zum Beispiel beinige Systeme, Rollsysteme wie Spuren oder Räder und/oder ähnliches. Die bestimmten in diesem Dokument beschriebenen und dargestellten Fortbewegungstechniken sind lediglich beispielhaft. In zumindest einer Ausführungsform können verschiedene Agenten 104 verschiedene Fortbewegungsmittel aufweisen; in zumindest einer Ausführungsform können das System und Verfahren die Art des Fortbewegungsmittels für verschiedene mobile Agenten 104 (und ihre jeweiligen Fähigkeiten und/oder Einschränkungen) beim Planen und Durchführen von Handlungen, darunter kooperativen Handlungen, berücksichtigen.
  • In dem aktuellen Beispiel aus 9 kann es als wichtig angesehen werden, dass die mobilen Agenten entweder eine Fähigkeit, sich ohne Rotieren beliebig in jedem Vektor innerhalb der horizontalen Ebene parallel zu der Arbeitsoberfläche zu bewegen (wie eine Beinanordnung mit Freiheitsgraden analog einer Katze) oder die Fähigkeit, ihre Fortbewegungssysteme in Bezug auf ihre Hardware, die zum Heben und Steuern der Komponenten 402 verwendet wird, zu rotieren, aufweisen. Daher berücksichtigt das System in zumindest einer Ausführungsform eine solche Flexibilität beim Überlegen, wie sich zwei mobile Agenten, die eine gemeinsame Ladung transportieren, drehen würden, wie im Beispiel der 9 gezeigt.
  • Spezifisch stellt 9 wie oben beschrieben zwei mobile Agenten 104 dar, die beim Transportieren der Komponente 402F kooperieren. Die linke Seite der 9 zeigt eine Anordnung für den Transport in einer geraden Linie, während die rechte Seite die Wichtigkeit eines mechanischen Systems darstellt, das die Rotation des Mobilitätssystems jedes Agenten 104 unabhängig von seinem Hebe- und Beförderungssystem ermöglicht, wenn der Reiseweg von einer geraden Linie abweicht (wie entlang des Bogens 901). Universalbeine 902 ermöglichen ihre Rotation als eine einzelne kohäsive Einheit, während eine bewegliche Plattform 903, die über ein Drehgelenk mit einem Hebesystem verbunden ist, Agenten 104 mit Spuren oder Rädern ermöglicht, als Gelenkpunkte beim Transport von geteilter Ladung zu dienen (wie der Komponente 402F). Das in diesem Dokument beschriebene bestimmte System stellt einzigartige Vorteile beim Ansprechen der Komplexität bereit, die am koordinierten Transport der Komponenten 402 beteiligt ist; durch Verwendung einer um eine zentralisierende Steuerung in einem gleichrangigen Gerät basierten Netzwerkarchitektur sind das System und Verfahren dazu in der Lage, eine solche Arbeit einfacher unter einer Anzahl von mobilen Agenten 104 zu koordinieren.
  • In einigen Fällen können räumliche Einschränkungen beim Bauen von Komponentenanordnungen die günstige Platzierung einer Komponente 402 an ihrer finalen Position ausschließen. Wenn zum Beispiel beabsichtigt ist, eine von zwei mobilen Agenten 104 getragene Komponente 402 in einen engen Raum zwischen zwei bereits vorhandenen Komponenten 402 zu schieben, dann ist es abhängig von der mechanischen Gestaltung und räumlichen Konfiguration den Agenten 104 eventuell nicht möglich, die getragene Komponente 402 direkt in ihrer finalen Position zu platzieren. In solchen Fällen kann das Planungssystem oder -verfahren, das die Bewegung der zwei mobilen Agenten 104 koordiniert, die mobilen Agenten 104 zum Beispiel dazu bewegen, die Anordnung an einem praktischen Standort in der Nähe der finalen Position zu platzieren und die Anordnung im Anschluss über einige alternative Mittel (wie einzelnes oder koordiniertes Drücken in die gewünschte Position) zu positionieren.
  • Emotion
  • In zumindest einer Ausführungsform stellt das System eine robuste Plattform von Situationsbewusstsein bereit, die Lernen, fortschrittliche Interaktionen unter mobilen Agenten 104 sowie bedeutende Ausdrücke an Emotion im Verlauf der Durchführung ihrer Aufgaben unterstützen kann. Solch ein Reaktionssystem kann viele Formen annehmen. In einigen Fällen können die Emotionen eine zusätzliche Ebene an Reichtum für das Erlebnis bereitstellen, ohne die zugrunde liegende Durchführung der von den mobilen Agenten 104 durchgeführten Aufgaben wesentlich zu verändern. In anderen Fällen können emotionale Reaktionen auf Ereignisse Konsequenzen für die Sequenz oder Durchführung von Aufgaben, ob im Gange oder geplant, haben.
  • Jetzt Bezug nehmend auf 10 wird ein Prozessflussdiagramm gezeigt, in dem ein Szenario gemäß einer Ausführungsform dargestellt wird, in dem ein mobiler Agent 104 eine Komponente 402 von einem Nutzer anfordert. Anfangs wird Unterstützung vom Nutzer angefordert 1001, wobei der Nutzer spezifisch gebeten wird, einen Block an einem bestimmten Standort in der Nähe des mobilen Agenten 104 zu platzieren. Sobald die Anforderung durchgeführt wurde, beginnt 1002 ein Wartezeitraum, in dem der Agent 104 Ereignisse verfolgt, die auf der Arbeitsoberfläche 407 stattfinden, entweder durch Beobachtung oder von anderen mobilen Agenten 104 mitgeteilt oder eine Kombination davon. Ereignisse werden im Vergleich mit der Anforderung des Agenten 104 geprüft, um zu bestimmen, ob es eine Übereinstimmung gibt, die die Erfüllung der Anforderung bedeutet. Falls ein relevantes Ereignis erfasst oder gemeldet 1003 und erkannt 1005 und bestimmt 1006, das zur Anforderung passt, dann nimmt der mobile Agent 104 die Aufgabe wieder auf 1007, die die Anforderung von Unterstützung zu Beginn des Prozesses ausgelöst hat, und das Verfahren endet 1009.
  • Falls das Ereignis in Schritt 1005 nicht erkannt wird oder in Schritt 1006 bestimmt wird, dass das Ereignis nicht zur Anforderung passt, dann kehrt das Verfahren zu Schritt 1002 zurück.
  • Während dieses Prozesses und bis ein Ereignis auftritt, das zur Anforderung passt, wird die vergangene Zeit gegenüber einer Begrenzung, ta, überwacht, das Überschreiten der Begrenzung führt zu einer Rückkehr zu Schritt 1001, wobei der Benutzer erneut um Unterstützung gebeten wird.
  • Jetzt Bezug nehmend auf 11 wird ein Prozess gezeigt, der die gleichen Ergebnisse wie in 10 unterstützt, aber emotionale Überlegungen als zusätzliche Ergebnisse und/oder Zustände enthält. Die Einführung dieser potenziellen emotionalen Reaktionen und/oder Zustände ermöglicht eine komplexere Interaktion in diesem Beispiel. In einigen Fällen sind diese neuen Ergebnisse nicht die gleichen wie das erwartete Ergebnis, das bei Abwesenheit eines emotionalen Zustandes (wie oben in Verbindung mit 10 beschrieben) eintreten würde. Im Genre der Unterhaltungsprodukte können solche unerwarteten Ergebnisse aufgrund der Überraschung und Vielfältigkeit, die sie darstellen können, geschätzt werden.
  • In dem vorliegenden Beispiel werden die emotionalen Zustände, die in Verbindung mit der Aufgabe bereitgestellt werden können, unter breiten Kategorien identifiziert (positiv, negativ, mäßigend und verwirrt), obwohl diese lediglich als Beispiele präsentiert werden. Es ist anzumerken, dass die bestimmten Zustände, die präsentiert werden können, und wie sie ausgeführt werden, variieren können.
  • Zusätzlich können solche emotionalen Überlegungen in zumindest einer Ausführungsform Parameter beeinflussen, zum Beispiel, wie lange ein Agent 104 bereit ist, zu warten (ta), oder wie oft eine Anforderung wiederholt wird (Ar). Da Emotionen sich auf viele verschiedene Arten manifestieren können, können andere Ausführungsformen andere emotionale Antworten bereitstellen und ausführen, darunter Persönlichkeitssimulationen.
  • Jetzt auch auf 2 Bezug nehmend, wird eine Tabelle 201 gezeigt, die einen Satz an Antworten und Parametern darstellt, die Handlungen in verschiedenen Schritten im Prozess gemäß einem generalisierten Persönlichkeitstyp informieren. Zum Beispiel weist ein mobiler Agent 104, der zum „extrovertierten positiven“ Persönlichkeitstyp passt, emotionale Antworten auf, die ein höheres Maß an Geduld, freundlicheres Engagement aufweisen und eher das gewünschte Ergebnis erzielt als ein mobiler Agent, dessen Persönlichkeitsprofil „sensibel negativ“ ist.
  • Solche Reaktionen können direkt auf das vorstehend in Verbindung mit 11 dargestellte Verfahren anwendbar sein. Falls kein Ereignis erfasst 1003 wird, während sich der mobile Agent im WARTEN-Zustand befindet, prüft 1004 das Verfahren, ob vergangene Zeit eine zuvor festgelegte Dauer ta erreicht hat; sobald ta erreicht ist, bestimmt 1102 das Verfahren, ob die Anzahl der an den Nutzer gestellten Hilfeanfragen eine zuvor festgelegte Menge Ar überschreitet. Falls die Anzahl an Hilfeanfragen Ar noch nicht überschritten hat, dann kehrt das Verfahren zu Schritt 1001 zurück, um die Anfrage zu wiederholen. Falls in Schritt 1102 die Anzahl an Hilfeanfragen Ar überschritten hat, dann weist der Agent 104 eine(n) negative(n) emotionale(n) Ausdruck und/oder physische Handlung auf 1103, und das Verfahren endet 1199. Beispiele für einen negativen emotionalen Ausdruck und/oder physische Handlungen für die verschiedenen Persönlichkeitstypen werden in Tabelle 201 der 2 gezeigt.
  • Wie in der Tabelle der 2 gezeigt, können ta und Ar abhängig vom Persönlichkeitstyp des mobilen Agenten 014 variieren. Auf diese Weise kann die Dauer, während der ein extrovertierter positiver mobiler Agent 104 wartet, bevor er die ursprüngliche Anforderung wiederholt, länger gemacht werden als die Dauer, die ein sensibler negativer mobiler Agent 104 wartet, und keiner wartet so lange wie ein reservierter positiver mobiler Agent 104 wartet. Ähnlich wiederholt ein sensibler negativer mobiler Agent 104 nicht die ursprüngliche Anforderung (Ar = 1), nachdem ta erreicht ist und antwortet stattdessen auf die unbefriedigte Anforderung mit einem negativen emotionalen Ausdruck und/oder einer negativen physischen Handlung 1103.
  • 11 enthält auch andere Fälle, in denen ein emotionaler Ausdruck und/oder eine physische Handlung gezeigt werden können. Wenn zum Beispiel ein Ereignis erfasst oder gemeldet 1003 wird, das Ereignis aber nicht erkannt 1005 wird, kann der Agent 104 eine(n) verwirrte(n) emotionale(n) Ausdruck und/oder physische Handlung zeigen, bevor er zu Schritt 1001 zurückkehrt. Als ein anderes Beispiel wird, falls ein Ereignis erfasst 1003, erkannt 1005 und die Übereinstimmung mit der Anforderung bestimmt 1006 wird, bestimmt 1104, ob die vergangene Zeit t oder die Anzahl an Hilfeanforderungen A zuvor den jeweiligen Schwellenwert ta und Ar überschritten hat. Falls dies der Fall ist, zeigt 1105 der Agent 104 in zumindest einer Ausführungsform eine(n) mäßigende(n) emotionale(n) Ausdruck und/oder physische Handlung und zeigt 1106 dann eine(n) positive(n) emotionale(n) Ausdruck und/oder physische Handlung, bevor er seine Aufgabe wieder aufnimmt 1107. Falls die vergangene Zeit t oder die Anzahl an Hilfeanfragen A zuvor den jeweiligen Schwellenwert ta und Ar nicht überschritten hat, zeigt 1105 der Agent 104 nicht den/die mäßigende(n) emotionale(n) Ausdruck und/oder physische Handlung, sondern macht lediglich direkt mit dem/der positiven emotionalen Ausdruck und/oder physischen Handlung weiter, bevor er seine Aufgabe wieder aufnimmt 1107. Es sind andere Variationen möglich, abhängig von bestimmten Charakteristika und Ereignissen.
  • 2 beschreibt, welche Handlungen verschiedene Typen an Antworten für verschiedene Persönlichkeitstypen von mobilen Agenten 104 darstellen. Allgemein können die in der Tabelle porträtierten Persönlichkeitstypen als stichwortartige Bezeichnung für die mit jedem assoziierten Antworten und Parameter dienen.
  • Die Tabelle in 2 soll als Beispiel dienen; ein Fachmann erkennt, dass viele verschiedene Ansätze verwendet werden können, wenn Persönlichkeiten definiert und ihnen Tendenzen oder Eigenschaften gemäß der in diesem Dokument beschriebenen Techniken zugewiesen werden. In dem Beispiel aus 2 stellt eine Tabelle festgelegte Antworten entsprechend bestimmten Schritten oder Zuständen in einem Prozessfluss bereit. Es sind jedoch andere Repräsentationen möglich; zum Beispiel können in einer anderen Ausführungsform Persönlichkeitsparameter in Form von Punkten auf einer Skala zwischen gegensätzlichen Charakteristika definiert werden. Jetzt Bezug nehmend auf 3 wird eine Tabelle 301 gezeigt, in der eine Reihe an Beispielen für Charakteristika festgelegt wird, die in einem solchen Schema angewandt werden können. Ein solcher Ansatz kann einen vielfältigeren Satz an Persönlichkeiten erzielen, die generell unter Verwendung einzelner Typen definiert werden können.
  • Beim Definieren der Dimensionen der Persönlichkeit kann jede Anzahl an Charakteristika verwendet werden. Während eine große Anzahl an Parametern, die einen Persönlichkeitstyp definieren, Feinheiten ergeben kann, die möglicherweise einem kürzeren Satz an Parametern entgehen, kann die Fähigkeit, zu verstehen, wie Eigenschaften sich möglicherweise zu einer globalen Verhaltensart kombinieren, schwieriger zu greifen sein. In zumindest einer Ausführungsform kann das System der Anzahl an Eigenschaften oder Korrelationen, die einem bestimmten Agenten 104 zugewiesen werden können, Einschränkungen auferlegen, um sicherzustellen, dass sich ergebende Verhaltensweisen zumindest etwas kohärent sind (um zum Beispiel das Definieren einer Persönlichkeit zu vermeiden, die einmal vollständig diszipliniert und vollständig rücksichtslos ist, oder eine, die sowohl vollständig teilnahmslos als auch vollständig extrovertiert ist).
  • Die Destillation von Verhaltenseigenschaften zu einer Form, die zu mathematischen Modellen passt, die Handlungen vorhersagen, war Gegenstand einer nennenswerten Forschung in bestimmten Segmenten des Gebietes der Psychologie. Modellierungstechniken für Verhalten und Entscheidungen sind auch auf dem Gebiet der künstlichen Intelligenz bekannt. In zumindest einer Ausführungsform verwendet das System ein System zum Bestimmen der emotionalen Disposition und emotionalen Reaktion eines mobilen Agenten 104 auf Ereignisse, die um ihn herum stattfinden. Das System dient dazu, ein dynamisches System an Emotionen mit Ereignissen zu verbinden, die in der physischen Umgebung stattfinden, und verbindet weiter die Auswirkung des Systems auf Ereignisse, die in der physischen Umgebung stattfinden.
  • In zumindest einer Ausführungsform können emotionale Antworten eine wesentliche Rolle beim Betrieb des in diesem Dokument beschriebenen Systems spielen. Das System kann nicht nur den mobilen Agenten 104, die physische Aufgaben durchführen, emotionale Fähigkeit vermitteln, sondern es kann auch weitere Funktionalität bereitstellen, die mit den von solchen mobilen Agenten 104 erschaffenen Baustrukturen assoziiert wird.
  • In zumindest einer Ausführungsform kann Emotion auf nichtfunktionale Weisen in Verhaltensweisen von mobilen Agenten 104 integriert werden, zum Beispiel, um Töne, Gesten oder andere Handlungen und/oder Ausgaben vorzustellen, die die Aufgaben, die von den Agenten 104 durchgeführt werden, nicht wesentlich beeinflussen. In anderen Ausführungsformen können Emotionen (zum Beispiel durch das Persönlichkeitsprofil eines mobilen Agenten 104 definiert) jedoch den funktionalen Betrieb eines mobilen Agenten 104 beeinflussen. Durch Kopplung des Systems des Ausdrucks von Emotionen, die für eine gegebene Situation angemessen sind, an die Fähigkeit eines mobilen Agenten 104, Aufgaben durchzuführen, ist das System dazu in der Lage, eine noch verlockendere Projektion der Kenntnis und Persönlichkeit zu erschaffen. In zumindest einer Ausführungsform können Persönlichkeitsparameter als Eingaben in ein Modell dienen, das potenzielle Aktionen beinhaltet, die einem mobilen Agenten 104 zur Verfügung stehen, um Verhaltensweisen eines mobilen Agenten 104 auf funktionale und substantivische Weisen zu beeinflussen, was dazu führt, dass die Ergebnisse wesentlich von dem abweichen, was mit einem System möglich ist, das über keine emotionale Komponente verfügt.
  • Jetzt Bezug nehmend auf 12 wird ein Beispiel gezeigt, in dem ein mobiler Agent 104 eine Komponente 402 von einem Nutzer anfordert. Wie in der Figur gezeigt, gibt es sechs Zustände 1202 an konstruierten Komponenten 402, jede mit zwei separaten Komponentenanordnungen 1201Y, 1201Z. In diesem Szenario ist jede Komponentenanordnung 1201Y, 1201Z das Ergebnis der anhaltenden Arbeit eines anderen mobilen Agenten 104, und die Anordnung 1201Y auf der linken Seite befindet sich im Bau durch einen Roboter, der eine Komponente 402 von einem Nutzer anfordert. Jeder der sechs Zustände 1202 porträtiert verschiedene Baumomente. Die linke Spalte an Zuständen 1202A1, 1202A2, 1202A3 ist eine progressive Sequenz an Baustufen, in denen Emotionen keinen Einfluss auf den Verlauf der von mobilen Agenten durchgeführten Aufgaben haben. Die rechte Spalte an Zuständen 1202B1, 1202B2, 1202B3 ist eine ähnliche Abfolge, aber eine, in der mobile Agenten 104 Emotionen zeigen (oder modellieren), die ihren Handlungsverlauf potenziell beeinflussen.
  • Die Zustände 1202A1 und 1202B1 sind identisch und geben einen übereinstimmenden Startpunkt für dieses Beispiel an. In beiden Szenarien signalisiert ein mobiler Agent 104, der die Komponentenanordnung 1201Y auf der linken Seite erbaut eine Anforderung an einen Nutzer nach zwei Komponenten 402, um diese seiner Anordnung 1201Y hinzuzufügen; in beiden Szenarien antwortet der Nutzer nicht innerhalb der Frist, die diktiert, wie lange der mobile Agent wartet, bevor er die Anforderung wiederholt (wie oben in Verbindung mit 11 beschrieben).
  • Auf der linken Seite der 12 ist die Konsequenz der Verzögerung offensichtlich durch die Abwesenheit einer neuen Konstruktion von Zustand 1202A1 zu Zustand 1202A2. Der mobile Agent 104 wiederholt seine Anforderung (durch das Verfahren der 11) und wartet weiter.
  • Auf der rechten Seite der 12 wird jedoch der Handlungsverlauf des mobilen Agenten 104 von seiner emotionalen Reaktion auf die lange Wartezeit beeinflusst. Zum Zwecke der Veranschaulichung ist es günstig für ein Bild, dass die Charakteristika, die das Persönlichkeitsprofil eines mobilen Agenten 104 definieren, Skalierungszüge wie „diszipliniert“ an einem Ende der Skala und „kapriziös“ als gegenüberliegendes Ende, oder „emphatisch“ und „gleichgültig“ als gegenüberliegende Enden beinhalten. In dem dargestellten Beispiel wird der mobile Agent, der die Komponente 402 anfordert, durch eine parametrische Einstellung definiert, die wesentlich näher an kapriziös als an diszipliniert und ebenso näher an abgehoben als an emphatisch ist, sowie Tendenzen aufweist, die näher an „rebellisch“ als an gehorsam“ sind.
    Entsprechend ist wahrscheinlich, dass diese Kombination an Einstellungen eine Persönlichkeit definiert, die mehr dazu tendiert, den ordentlichen Verlauf bei der Durchführung seiner primären Aufgabe zu missachten.
  • In diesem Beispiel ermöglicht das System emotionale Reaktionen zur Beeinflussung von Handlungen, die in der physischen Umgebung vorgenommen werden. Daher ist es ausgehend vom ursprünglichen Zustand 1202B1 weniger wahrscheinlich, dass der mobile Agent 104, der die oben beschriebenen Charakteristika aufweist, eine lange Wartezeit erduldet, bis der Nutzer die angeforderte(n) Komponente(n) 402 bereitstellt. Der mobile Agent 104 erkennt möglicherweise, dass die benachbarte Anordnung 1201Z die Komponenten 402 enthält, die zu denjenigen passen, die er von dem Nutzer angefordert hat. Aufgrund seiner emotionalen Disposition und eines Steuerungssystems, das seinen Persönlichkeitszügen (d. h. rebellisch, gleichgültig und kapriziös) erlaubt, seine Entscheidungen zu beeinflussen, kann der mobile Agent 104 geneigt sein, die Komponenten 402 von der benachbarten Anordnung 1201Z zu stellen, um sie in seiner eigenen Anordnung 1201Y zu platzieren. Der Zustand 1202B2 gibt das Ergebnis einer solchen Handlung an, in der zwei Komponenten 402 der Anordnung 1201Z in der Anordnung 1201Y platziert wurden. Die Konsequenz einer solchen Handlung zeigt, wie ein System, das ermöglicht, dass eine emotionale Reaktion die Planung und Durchführung einer physischen Handlung beeinflusst, den Verlauf an gemäß nicht emotionalen Überlegungen (z. B. Effizienz) geplanten Ereignissen wesentlich beeinflussen kann.
  • Es ist anzumerken, dass die emotionalen Einflüsse in dem beschriebenen Beispiel durch die Sequenz aller nachfolgenden Ereignisse hindurch bestehen bleiben können. Wenn zum Beispiel der mobile Agent 104, der an der Bauanordnung 1201Z (von der Komponente(n) 402) gestohlen wurden) beteiligt ist, ein Persönlichkeitsprofil von hitzigem Temperament und Willkür aufweist, kann der Agent 104 die Handlung des Diebstahls (geboten durch die Verfolgung aller Ereignisse und von mobilen Agenten ergriffenen Handlungen durch das größere System) erkennen und kann sich rächen. Entsprechend wurde im Zustand 1202B3 die Anordnung 1201Y abgebaut oder zerstört, ein potenzielles Ergebnis, wenn ein Nachbaragent 104 mit hitzigem Temperament physisch und rachsüchtig auf einen mobilen Agenten 104 reagiert, der Komponenten 402 von seiner Anordnung 1201Z zur Verwendung in der Anordnung 1201Y gestohlen hat.
  • Ein Vergleich der Zustände 1202A3 und 1202B3 zeigt, wie die Einführung eines emotionalen Systems, das auf physische Ereignisse auf die Planungs- und Durchführungsaktivitäten von mobilen Agenten 104 reagiert, den Verlauf der Ereignisse in der physischen Umgebung ändern kann. Der Zustand 1202A3 ist der Endzustand eines Systems, das sich an Prozesse hält, die ausschließlich auf das Erreichen eines geplanten Endzustands fokussiert sind. Der Zustand 1202B3 zeigt einen Fall, in dem die emotionalen Dispositionen, die den mobilen Agenten 104 zugeschrieben werden, ihre individuelle Planung und Durchführung von Aufgaben beeinflussen dürfen. Im Zustand 1202A3 würde eine Verzögerung eines Nutzers beim Befriedigen der Anforderung eines mobilen Agenten 104 von Komponenten 402 wahrscheinlich lediglich die Durchführung der vom mobilen Agenten 104 beabsichtigten Verwendung für die Komponenten 402 verzögern. Im Gegensatz dazu zeigt im Zustand 1202B3 ein mobiler Agent 104 emotionale Charakteristika wie Ungeduld und ein schwaches Maß an Disziplin und Empathie; dies hat Ereignisse veranlasst, die zu einem Zustand 1202B3 führten, der von dem in Zustand 1202A3 erreichten Ziel weiter weg ist.
  • In zumindest einer Ausführungsform können die mobilen Agenten 104 viele verschiedene Formen annehmen und können auch spezialisierte Rollen annehmen; zum Beispiel kann ein mobiler Agent 104 eine primäre Rolle der Überwachung haben. In einer Kapazität kann eine solche Überwachung für die Koordination zahlreicher mobiler Agenten 104, die an einer Aufgabe beteiligt sind, die in Bezug auf die Fähigkeit der individuellen Agenten 104 besonders komplex ist, nützlich sein. In zumindest einer Ausführungsform können mobile Agenten 104, die eine überwachende Rolle ausführen, einen unterdrückenden oder behebenden Effekt auf mobile Agenten 104 bereitstellen, die möglicherweise in Bezug auf die Handlungen eines oder beider in Streit geraten sind, eine potenziell wichtige Rolle, falls einer oder mehrere der Agenten 104 Persönlichkeitsprofile aufweisen, die volatile Tendenzen erzielen würden.
  • Ein Agent 104 kann anhand jedes geeigneten Mittels eine überwachende Rolle ausführen; er kann zum Beispiel das Verhalten anderer Agenten 104 basierend auf physischer Nähe und/oder Blickrichtung zu einem Team an Agenten 104, die zusammen oder innerhalb des gleichen Raumes arbeiten, beobachten. Wie oben besprochen hält das System in zumindest einer Ausführungsform ein virtuelles Modell aufrecht, das den Standort der Agenten 104 im Raum verfolgt; entsprechend kann das System ein solches Modell verwenden, um zu bestimmen, ob sich ein überwachender Agent 104 innerhalb eines kritischen Schwellenabstandes von einer potenziell volatilen Gruppe an Agenten 104 befindet. Es können auch andere Techniken verwendet werden, zum Beispiel, indem der Effizienz eines überwachenden Agenten 104 eine Wahrscheinlichkeit zugeschrieben wird, die mit dem Abstand variiert, oder indem der Abstand mit der Blickrichtung kombiniert wird, sodass die Fähigkeit eines überwachenden Agenten 104, unter anderen und potenziell aufsässigen oder sich widersprechenden Agenten 104 Ordnung aufrechtzuerhalten, sowohl von der Nähe und davon, ob der überwachende Agent die Agenten innerhalb seines Blickfeldes überwacht, abhängt. Probabilistische Bestimmungen können auch zusätzliche Elemente berücksichtigen, wie das Temperament eines Agenten 104, der möglicherweise dazu neigt, auszuagieren; zum Beispiel neigen Agenten 104, die sich in volatileren Zuständen befinden können, möglicherweise eher dazu, auszuagieren, trotz der relativen Nähe eines überwachenden Agenten 104. Auf diese Weise werden die Ähnlichkeiten mit Stereotypen von Menschen, die sich schlecht benehmen, offensichtlich: ein Agent 104 neigt möglicherweise eher dazu, negative Verhaltensweisen zu zeigen oder gegen einen anderen Agenten 104 zu handeln, wenn der überwachende Agent 104 weit genug entfernt ist oder anderweitig nicht dazu in der Lage ist, effektiv zu überwachen (wenn er sich zum Beispiel in angemessener Nähe befindet, aber der Fokus seiner Aufmerksamkeit (z. B. Kamera oder Bildgeber oder allgemeine Ausrichtung des Agenten) auf etwas anderes gerichtet ist).
  • In den in diesem Dokument bereitgestellten Beschreibungen umfasst der Begriff „Emotion“ eine Vielzahl von Facetten, die sich auf die Ausdrücke und Handlungen eines mobilen Agenten 104 beziehen, die wahrscheinlich kein wesentlicher Teil seiner beabsichtigten Aufgabe sind. Diese können zum Beispiel Hinweise auf Zufriedenheit oder Entmutigung beinhalten, oder sie können sich auf eine Weise manifestieren, die direkte physische Konsequenzen für den Ablauf der geplanten Ereignisse hat. Zum Beispiel können, wie vorstehend in Verbindung mit 12 beschrieben, ungünstige Reaktionen den Verlauf einer beabsichtigten Aufgabe oder einer Reihe an Aufgaben stören. Entsprechend kann das System in zumindest einer Ausführungsform die Durchführung bestimmter Aufgaben (wie den Bau einer Komponentenanordnung) weniger vorhersehbar und damit überraschender und interessanter machen, insbesondere, wenn mehrere mobile Agenten 104 mit verschiedenen Persönlichkeiten an der Durchführung der Aufgabe beteiligt sind.
  • Wie vorstehend beschrieben können in einigen Situationen Persönlichkeitskonflikte den Fortschritt in Richtung eines gewünschten Ziels verwechseln. In anderen Situationen können nichtkonfrontative Szenarios auftreten, in denen die Interaktionen unter den Agenten 104 mit Persönlichkeiten nützlich oder schädlich sein können. Zum Beispiel können mobilen Agenten 104, denen starke Charakteristika an Ungeduld und Fahrlässigkeit zugewiesen werden, Komponenten 402 mit höherer Geschwindigkeit transportieren und sie weniger sorgfältig platzieren. Das Ergebnis kann eine schnellere Fertigstellung einer Struktur oder eine langsamere Konstruktion aufgrund von Einsturzereignissen (oder anderen destruktiven Ereignissen) sein, die sich aufgrund von exzessiver Hast und Fahrlässigkeit ergeben, wodurch Teile neu gebaut werden müssen.
  • Außerdem können auch Umstände berücksichtigt werden, die riskante Möglichkeiten darstellen, wie ein Anordnungseinsturz, der dazu führt, dass eine Komponente 402 über die Außenkante der Arbeitsoberfläche hinaus fällt. Wie zuvor besprochen, können die mobilen Agenten 104 die Komponentenflächen 503 als Ausrichtungspunkte verwenden, um die Lokalisierung basierend auf der Arbeitsoberfläche 407 zu ergänzen. In diesem Fall kann ein mobiler Agent 104 möglicherweise die Grenzen der Arbeitsoberfläche 407 beim Verfolgen einer fehlgeleiteten Komponente 402 verlassen, sich zur Navigation auf die Komponentenfläche 503 und ebenso auf die Komponenten 402 auf der Arbeitsoberfläche für die Navigation auf dem Rückweg verlassen. Jedoch stellt das Verlassen der Arbeitsoberfläche ein wesentliches Risiko dar, da dem mobilen Agenten 104 die Art der navigierbaren Oberfläche unbekannt ist. Entsprechend kann ein „verwegener“ mobiler Agent 104 (wie einer, der eine starke Kombination an rücksichtslosen, undisziplinierten und kapriziösen Zügen aufweist) sich abseits der Arbeitsoberfläche 407 bewegen und entweder erfolgreich zurückkehren oder im Verlauf verloren gehen. Gehorsamere und vorsichtigere mobile Agenten 104 fordern möglicherweise für das Zurückholen der Komponente 402 Hilfe vom Nutzer an oder erklären die Komponente 402 als unerreichbar, anstatt die Arbeitsoberfläche 407 zu verlassen.
  • In zumindest einer Ausführungsform können mobile Agenten 104 Assoziationen zu ihren „Erfahrungen“ erlernen oder entwickeln und können solche Assoziationen in Kombination mit Planung und emotionalen Reaktionen auf ihre nachfolgenden Handlungen anwenden. Auf diese Weise ergänzt ein solches Erlernen die oben beschriebenen Fähigkeiten der Lokalisierung der Komponente 402 und Kommunikation unter Systemkomponenten 402. Eine ausreichende Kenntnis aller Komponenten 402 an der Arbeitsoberfläche 407 sowie Funktionen, die die emotionale Reaktion diktieren, sind in Kombination eine solide Basis für das Bauen eines funktionalen Systems zum Lernen auf bedeutende Weise. In dieser Hinsicht kann das Lernen den Kontext von Fähigkeiten annehmen.
  • Zum Beispiel können in zumindest einer Ausführungsform zum ersten Mal eingesetzte mobile Agenten 104 eine Kapazität zum Manipulieren und Transportieren von Komponenten 402 aufweisen, die bewusst eingeschränkt ist. Nach einem gewissen Zeitraum können die Agenten 104 Erfahrung erlangen, die dazu führt, dass sich ihr Satz an Fähigkeiten erhöht, zum Beispiel basierend auf kumulativer Betriebszeit oder darauf, wie oft einfache Handlungen wiederholt werden. In zumindest einer Ausführungsform kann die Geschwindigkeit, in der der Satz an Fähigkeiten eines mobilen Agenten 104 expandiert, direkt daran gebunden sein, wie sehr ein Nutzer die Grenzen der Fähigkeiten des Agenten 104 beim Entwickeln von Baudesigns für sie ausreizt.
  • In zumindest einer Ausführungsform kann zukünftiges Verhalten an spezifische Ereignisse in der Vergangenheit von mobilen Agenten 104 gebunden sein. Zum Beispiel kann ein mobiler Agent 104 mit größerer Vorsicht in einem Bauschritt fortfahren, der in einem vergangenen Erlebnis zu einem ungünstigen Ereignis wie einem Einsturz geführt hat. In zumindest einer Ausführungsform kann ein Agent 104 aus früherer Erfahrung lernen, indem er zum Beispiel seine Tendenz zum Eingehen von Risiken basierend auf dem Maß, in dem mutigere Handlungen in der Vergangenheit zu günstigen oder ungünstigen Ergebnissen geführt haben, anpasst.
  • In zumindest einer Ausführungsform können die Agenten 104 Affinitäten füreinander oder Beziehungen untereinander haben, sodass Erfahrungen eines ersten Agenten 104 das zukünftige Verhalten von anderen Agent(en) 104 beeinflussen können, wie denjenigen Agent(en), für die/mit denen der erste Agent 104 eine Affinität oder Beziehung hat.
  • Das Lernen kann auch angewandt werden, um mobile Agenten 104 zu informieren oder deren zukünftiges Verhalten im Rahmen einer emotionalen Reaktion zu beeinflussen. Zurückkehrend zu dem in 12 gezeigten Beispiel, in dem ein mobiler Agent 104 Komponenten 402 aus der Anordnung eines zweiten mobilen Agenten 104 gestohlen hat: Sobald der erste mobile Agent 104 die Reaktion des zweiten mobilen Agenten 104 sieht (Niederschlagen der Anordnung des ersten mobilen Agenten 104), kann der erste mobile Agent 104 bei späteren Begegnungen sein Verhalten in der Gegenwart des zweiten mobilen Agenten 104 ändern. Tatsächlich können beide mobile Agenten 104 ihr zukünftiges Verhalten in Bezug aufeinander basierend auf der vorherigen Interaktion ändern, zum Beispiel, um eine Zurückhaltung, miteinander zu kooperieren oder sogar ein Maß an Animosität oder Ressentiment gegen den anderen zu simulieren.
  • In zumindest einer Ausführungsform kann das Maß, in dem sich solche Verhaltensänderungen manifestieren, von Charakteristika abhängen, die den Persönlichkeiten und Funktionen der Agenten 104 zugerechnet werden, die die Reaktion basierend auf diesen Charakteristika bestimmen. Zum Beispiel ändert ein mobiler Agent 104 mit einem hohen Maß an Geduld möglicherweise in einer nachfolgenden Begegnung mit einem mobilen Agenten 104, der zuvor seinen Betrieb gestört hatte, sein Verhalten wenn überhaupt nur sehr gering. Ein weniger geduldiger Agent 104 kann schneller auf eine von einem anderen Agenten 104 vorgenommene negative Handlung reagieren. Außerdem können in zumindest einer Ausführungsform neue Erlebnisse Dispositionen verschieben und die Auswirkungen eines einzelnen Ereignisses können ohne Verstärkung durch Wiederholung mit der Zeit an Bedeutung verlieren.
  • Die vorstehende Beschreibung und referenzierten Zeichnungen setzen bestimmte Details in Bezug auf mögliche Ausführungsformen fest. Ein Fachmann erkennt, dass andere Ausführungsformen möglich sind. Erstens ist/sind die bestimmte Benennung der Komponenten, Großschreibung von Begriffen, die Attribute, Datenstrukturen oder jeder andere Programmier- oder Strukturierungsaspekt nicht verpflichtend oder wesentlich, und die in diesem Dokument beschriebenen Mechanismen können verschiedene Namen, Formate oder Protokolle haben. Weiter kann das System über eine Kombination an Hardware und Software, oder vollständig in Hardwareelementen, oder vollständig in Softwareelementen ausgeführt werden. Auch ist die in diesem Dokument beschriebene bestimmte Teilung der Funktionalität zwischen den verschiedenen Systemkomponenten lediglich beispielhaft, und nicht verpflichtend; von einer einzelnen Systemkomponente durchgeführte Funktionen können stattdessen von mehreren Komponenten durchgeführt werden, und von mehreren Komponenten durchgeführte Funktionen können stattdessen von einer einzelnen Komponente durchgeführt werden.
  • Verweise in der Patentschrift auf „eine Ausführungsform“ bedeuten, dass ein(e) bestimmte(s) Merkmal, Struktur oder Charakteristikum, das/die in Verbindung mit den Ausführungsformen beschrieben wird, in zumindest einer Ausführungsform enthalten ist. Das Auftreten der Formulierungen „in einer Ausführungsform“ oder „in zumindest einer Ausführungsform“ an verschiedenen Stellen in der Patentschrift beziehen sich nicht notwendigerweise alle auf dieselbe Ausführungsform.
  • Einige Ausführungsformen können ein System oder ein Verfahren zur Durchführung der oben beschriebenen Techniken beinhalten, entweder einzeln oder in einer beliebigen Kombination. Andere Ausführungsformen können ein Computerprogrammprodukt beinhalten, das ein nicht vorübergehendes computerlesbares Speichermedium und einen computerlesbaren Code, auf dem Medium codiert, umfasst, um zu bewirken, dass ein Prozessor in einem Computergerät oder anderem elektronischen Gerät die oben beschriebenen Techniken durchführt.
  • Einige Teile des Obigen werden in Bezug auf Algorithmen und symbolische Repräsentationen von Tätigkeiten von Datenbits in einem Speicher eines Computergerätes präsentiert. Diese algorithmischen Beschreibungen und Repräsentationen sind die Mittel, die von einem Fachmann auf dem Gebiet der Datenverarbeitung verwendet werden, um die Substanz ihrer Arbeit einem anderen Fachmann am effektivsten zu vermitteln. Ein Algorithmus wird hier und allgemein als selbstkonsistente Sequenz an Schritten (Anweisungen) angesehen, die zu einem gewünschten Ergebnis führen. Die Schritte sind diejenigen, die physische Manipulationen physischer Mengen erfordern. In der Regel, jedoch nicht notwendigerweise, nehmen diese Mengen die Form elektrischer, magnetischer oder optischer Signale an, die dazu in der Lage sind, gespeichert, übertragen, kombiniert, verglichen und anderweitig manipuliert zu werden. Manchmal ist es hauptsächlich aus Gründen der allgemeinen Verwendung praktisch, diese Signale als Bits, Werte, Elemente, Symbole, Zeichen, Begriffe, Zahlen oder ähnliches zu bezeichnen. Außerdem ist es manchmal auch praktisch, bestimmte Anordnungen an Schritten, die physische Manipulationen physischer Mengen erfordern, als Module oder Code-Geräte zu bezeichnen, ohne die Allgemeingültigkeit zu begrenzen.
  • Es sollte jedoch berücksichtigt werden, dass all diese und ähnliche Begriffe mit den angemessenen physischen Mengen zu assoziieren sind und lediglich praktische Etiketten sind, die auf diese Mengen angewandt werden. Sofern nicht spezifisch etwas anderes als das aus der nachfolgenden Diskussion Ersichtliche angegeben ist, wird darauf hingewiesen, dass sich in der gesamten Beschreibung Diskussionen, in denen Begriffe wie „verarbeitend“ oder „errechnend“ oder „kalkulierend“ oder „anzeigend“ oder „bestimmend“ oder ähnliches verwendet werden, auf die Handlung und Prozesse eines Computersystems oder ähnlichen elektronischen Computermoduls und/oder Gerätes beziehen, das als physische (elektronische) Mengen dargestellte Daten innerhalb der Computersystemspeicher oder Register oder anderer solcher Informationsspeicher, Übertragungs- oder Anzeigegeräte manipuliert und umwandelt.
  • Bestimmte Aspekte beinhalten Prozessschritte und Anweisungen, die in diesem Dokument in der Form eines Algorithmus beschrieben werden. Es ist anzumerken, dass die Prozessschritte und Anweisungen in Software, Firmware und/oder Hardware ausgeführt werden können, und wenn sie in Software ausgeführt werden, heruntergeladen werden können, damit sie sich auf verschiedenen Plattformen befinden und von diesen aus bedient werden können, die von einer Vielzahl von Betriebssystemen genutzt werden.
  • Einige Ausführungsformen beziehen sich auf eine Vorrichtung zur Durchführung der Vorgänge in diesem Dokument. Diese Vorrichtung kann speziell für die erforderlichen Zwecke konstruiert sein, oder sie kann ein Mehrzweckcomputergerät umfassen, das von einem in dem Computergerät gespeicherten Computerprogramm selektiv aktiviert oder neu konfiguriert wird. Ein solches Computerprogramm kann in einem computerlesbaren Speichermedium gespeichert sein, wie zum Beispiel unter anderem einem beliebigen Typ an Platten, darunter Floppy Disks, optische Platten, CD-ROMs, DVD-ROMs, magnetoptische Platten, Festspeicher (ROMs), Direktzugriffsspeicher (RAMs), EPROMs, EEPROMs, Flash-Speicher, Festkörperlaufwerke, magnetische oder optische Karten, anwendungsspezifische integrierte Schaltkreise (ASICs), oder jeden Typ an Medien, der zum Speichern von elektronischen Anweisungen geeignet ist, und jeder an einen Computersystembus gekoppelte. Weiter können die Computergeräte, auf die in diesem Dokument verwiesen wird, einen einzelnen Prozessor beinhalten oder können Architekturen sein, die Multiprozessordesigns anwenden, um eine erhöhte Rechenkapazität zu erhalten.
  • Die in diesem Dokument präsentierten Algorithmen und Anzeigen beziehen sich nicht inhärent auf ein bestimmtes Computergerät, virtualisiertes System oder eine andere Vorrichtung. Verschiedene Mehrzwecksysteme können auch mit Programmen in Übereinstimmung mit den Lehren aus diesem Dokument verwendet werden, oder es kann sich als praktisch erweisen, stärker spezialisierte Vorrichtungen zu bauen, die die erforderlichen Verfahrensschritte durchführen. Die erforderliche Struktur für eine Vielzahl von Systemen wird aus der in diesem Dokument bereitgestellten Beschreibung ersichtlich. Außerdem werden das in diesem Dokument festgelegte System und Verfahren nicht mit Verweis auf eine bestimmte Programmiersprache beschrieben. Es ist anzumerken, dass eine Vielzahl von Programmiersprachen verwendet werden kann, um die in diesem Dokument beschriebenen Lehren auszuführen, und jeder obige Verweis auf spezifische Sprachen wird lediglich für illustrative Zwecke bereitgestellt.
  • Entsprechend können verschiedene Ausführungsformen Software, Hardware und/oder andere Elemente zur Steuerung eines Computersystems, Computergeräts oder anderen elektronischen Geräts oder einer Kombination oder Vielzahl davon beinhalten. Ein solches elektronisches Gerät kann zum Beispiel einen Prozessor, ein Eingabegerät (wie zum Beispiel eine Tastatur, eine Maus, ein Touchpad, ein Trackpad, einen Joystick, einen Trackball, ein Mikrophon und/oder eine Kombination davon), ein Ausgabegerät (wie zum Beispiel einen magnetischen Speicher, optischen Speicher und/oder ähnliches) und/oder eine Netzwerkverbindung gemäß Techniken, die im Fach hinreichend bekannt sind, beinhalten. Ein solches elektronisches Gerät kann tragbar oder nicht tragbar sein. Beispiele für elektronische Geräte, die verwendet werden können, beinhalten: Mobiltelefon, persönlicher digitaler Assistent, Smartphone, Kiosk, Servercomputer, Unternehmenscomputergerät, Desktopcomputer, Laptopcomputer, Tabletcomputer, Verbraucherelektronikgerät oder ähnliches. Ein elektronisches Gerät zur Ausführung des in diesem Dokument beschriebenen Systems oder Verfahrens kann ein beliebiges Betriebssystem verwenden, wie zum Beispiel und ohne Einschränkung: Linux; Microsoft Windows, erhältlich von der Microsoft Corporation aus Redmond, Washington; Mac OS X, erhältlich von Apple Inc. aus Cupertino, Kalifornien; iOS, erhältlich von Apple Inc. aus Cupertino, Kalifornien; Android, erhältlich von Google, Inc. aus Mountain View, Kalifornien, und/oder jedes andere Betriebssystem, das zur Verwendung auf dem Gerät angepasst ist.
  • Während in diesem Dokument eine begrenzte Anzahl an Ausführungsformen beschrieben worden ist, erkennt ein Fachmann, der den Vorteil der obigen Beschreibung hat, dass andere Ausführungsformen entwickelt werden können, die nicht vom Umfang der Patentansprüche abweichen. Außerdem ist anzumerken, dass die in der Patentschrift verwendete Sprache vorwiegend zum Zwecke der Leserlichkeit und für Anweisungszwecke ausgewählt worden ist, und möglicherweise nicht ausgewählt worden ist, um den Gegenstand der Erfindung zu beschreiben oder umschreiben. Entsprechend ist diese Offenbarung illustrativ, aber nicht einschränkend.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 8535737 [0003]
    • US 8353737 [0084, 0086]

Claims (16)

  1. System zum Manipulieren von Komponenten, umfassend: eine Arbeitsoberfläche; mindestens eine separate manipulierbare Komponente; und mindestens einen mobilen Agenten, der konfiguriert ist, um mindestens eine Komponente an der Arbeitsoberfläche zu manipulieren, umfassend: einen Prozessor; einen Sensor, kommunikativ an den Prozessor gekoppelt, der konfiguriert ist, um die zumindest eine Komponente zu erkennen; einen Antriebsmechanismus, kommunikativ an den Prozessor gekoppelt, der konfiguriert ist, um dem mobilen Agenten Triebkraft zu verleihen; und zumindest einen Aktuator, kommunikativ an den Prozessor gekoppelt, der konfiguriert ist, um die zumindest eine Komponente als Reaktion auf Anweisungen zu manipulieren.
  2. System nach Anspruch 1, wobei der mobile Agent weiter konfiguriert ist, um zumindest einen Persönlichkeitszug aufzuweisen.
  3. System nach Anspruch 2, wobei der mobile Agent weiter konfiguriert ist, um zumindest einen aufgewiesenen Charakterzug basierend auf zumindest einem von Erfahrung und Erlernen zu ändern.
  4. System nach Anspruch 1, wobei der zumindest eine mobile Agent eine Vielzahl von mobilen Agenten umfasst, und wobei zumindest einer aus der Vielzahl von mobilen Agenten konfiguriert ist, um bei der Durchführung einer Aufgabe mit zumindest einem anderen aus der Vielzahl von mobilen Agenten zu kooperieren.
  5. System nach Anspruch 4, wobei der zumindest eine mobile Agent eine Vielzahl von mobilen Agenten umfasst, und wobei zumindest einer aus der Vielzahl von mobilen Agenten konfiguriert ist, um auf Verhalten von zumindest einem anderen aus der Vielzahl von mobilen Agenten zu reagieren.
  6. System nach Anspruch 1, wobei der zumindest eine mobile Agent konfiguriert ist, um eine Aufgabe durchzuführen, und wobei die Anweisungen in Richtung der Fertigstellung der Aufgabe gerichtet sind.
  7. System nach Anspruch 6, wobei zumindest eine separate manipulierbare Komponente ein Konstruktionselement umfasst, und wobei die Aufgabe eine Konstruktionsaufgabe umfasst.
  8. System nach Anspruch 1, wobei der Sensor konfiguriert ist, um die zumindest eine Komponente zu erkennen und eine Position und Ausrichtung der zumindest einen Komponente zu identifizieren.
  9. System nach Anspruch 8, wobei zumindest ein maschinenlesbarer Code auf der zumindest einen Komponente erscheint, und wobei der zumindest eine mobile Agent konfiguriert ist, um die zumindest eine Komponente durch Lesen des zumindest einen maschinenlesbaren Codes zu erkennen.
  10. System nach Anspruch 1, wobei der zumindest eine mobile Agent konfiguriert ist, um seine Position in Bezug auf die Arbeitsoberfläche automatisch zu bestimmen.
  11. System nach Anspruch 10, wobei die Arbeitsoberfläche zumindest einen maschinenlesbaren Code umfasst, und wobei der zumindest eine mobile Agent konfiguriert ist, um seine Position automatisch durch Lesen des zumindest einen maschinenlesbaren Codes zu bestimmen.
  12. System nach Anspruch 1, weiter umfassend: eine Basisstation; und wobei der zumindest eine mobile Agent weiter ein Kommunikationsmodul umfasst, kommunikativ an den Prozessor gekoppelt, das konfiguriert ist, um mit der Basisstation zu kommunizieren.
  13. System nach Anspruch 12, wobei die Basisstation konfiguriert ist, um eine virtuelle Repräsentation der relativen Positionen des zumindest einen mobilen Agenten und der zumindest einen Komponente aufrechtzuerhalten.
  14. System nach Anspruch 12, wobei die Basisstation konfiguriert ist, um Parität zwischen der virtuellen Repräsentation und den erfassten physischen Positionen des zumindest einen mobilen Agenten und der zumindest einen Komponente durch Anpassen der virtuellen Repräsentation als Reaktion auf erfasste physische Positionen aufrechtzuerhalten.
  15. System nach Anspruch 12, wobei die Basisstation konfiguriert ist, um Parität zwischen der virtuellen Repräsentation und den erfassten physischen Positionen des zumindest einen mobilen Agenten und der zumindest einen Komponente durch Übertragen von Signalen an zumindest einen mobilen Agenten, um zu bewirken, dass der zumindest eine mobile Agent seine physische Position anpasst, um mit der virtuellen Repräsentation übereinzustimmen, aufrechtzuerhalten.
  16. System nach Anspruch 1, weiter umfassend ein Modul zur künstlichen Intelligenz, wobei die Anweisungen auf einer Ausgabe des Moduls zur künstlichen Intelligenz basieren.
DE202014011117.0U 2013-05-31 2014-05-30 Mobile Agenten zum Manipulieren, Bewegen und/oder Neuausrichten von Komponenten Expired - Lifetime DE202014011117U1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201361829419P 2013-05-31 2013-05-31
US61/829,419 2013-05-31

Publications (1)

Publication Number Publication Date
DE202014011117U1 true DE202014011117U1 (de) 2018-02-27

Family

ID=51989422

Family Applications (2)

Application Number Title Priority Date Filing Date
DE112014002621.2T Ceased DE112014002621T5 (de) 2013-05-31 2014-05-30 Mobile Agenten zum Manipulieren, Bewegen und/oder Neuausrichten von Komponenten
DE202014011117.0U Expired - Lifetime DE202014011117U1 (de) 2013-05-31 2014-05-30 Mobile Agenten zum Manipulieren, Bewegen und/oder Neuausrichten von Komponenten

Family Applications Before (1)

Application Number Title Priority Date Filing Date
DE112014002621.2T Ceased DE112014002621T5 (de) 2013-05-31 2014-05-30 Mobile Agenten zum Manipulieren, Bewegen und/oder Neuausrichten von Komponenten

Country Status (10)

Country Link
EP (1) EP3003521B1 (de)
JP (3) JP6069589B2 (de)
KR (1) KR101640179B1 (de)
CN (1) CN105228712B (de)
AU (3) AU2014273979A1 (de)
CA (1) CA2913747C (de)
DE (2) DE112014002621T5 (de)
GB (1) GB2527471A (de)
HK (1) HK1218271A1 (de)
WO (1) WO2014194191A1 (de)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102019217568B4 (de) * 2018-11-29 2021-01-14 Hitachi, Ltd. System von autonomen einrichtungen und steuerungsverfahren davon
DE102019215642A1 (de) * 2019-10-11 2021-04-15 Schäfer Werkzeug- und Sondermaschinenbau GmbH Kennzeichnungselement, Verarbeitungssystem sowie Verfahren
DE102020204388A1 (de) 2020-04-03 2021-10-07 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren und Vorrichtung zum Ansteuern eines Agenten
DE102020114737A1 (de) 2020-06-03 2021-12-09 Bayerische Motoren Werke Aktiengesellschaft Verfahren, System sowie Computerprogramm zum Betreiben eines oder mehrerer Roboter, eines Robotersystems und/oder eines Roboterschwarms
DE102020114738A1 (de) 2020-06-03 2021-12-09 Bayerische Motoren Werke Aktiengesellschaft Verfahren, System sowie Computerprogramm zum Betreiben eines oder mehrerer Roboter, eines Robotersystems und/oder eines Roboterschwarms

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8882560B2 (en) 2009-05-28 2014-11-11 Anki, Inc. Integration of a robotic system with one or more mobile computing devices
US9155961B2 (en) 2009-05-28 2015-10-13 Anki, Inc. Mobile agents for manipulating, moving, and/or reorienting components
GB2482119B (en) 2010-07-19 2013-01-23 China Ind Ltd Racing vehicle game
CN106886732B (zh) * 2015-12-16 2020-01-14 施政 判断多个实物块的空间关系的系统
EP3563568A4 (de) * 2017-01-02 2020-11-11 Merge Labs, Inc. Benutzerschnittstellenfunktionen eines dreidimensionalen objekts der erweiterten realität
CN109968017A (zh) * 2017-12-28 2019-07-05 中国科学院沈阳自动化研究所 一种乐高积木自动装配机组
TWI639458B (zh) * 2018-01-25 2018-11-01 智高實業股份有限公司 Multifunctional building block wheel set
WO2019216449A1 (ko) * 2018-05-09 2019-11-14 주식회사 알고리고 전력수요 데이터와 이종데이터의 시공간적 융합을 통한 시계열 인공신경망 전기차 전력수요예측 방법 및 장치
GB201809020D0 (en) * 2018-06-01 2018-07-18 Ocado Innovation Ltd Control device and method for item verification
WO2020066850A1 (ja) * 2018-09-27 2020-04-02 パナソニックIpマネジメント株式会社 搬送システム、搬送装置の制御方法及びプログラム
CN111359233A (zh) * 2018-12-26 2020-07-03 深圳市优必选科技有限公司 积木组装方法以及积木
JP6591098B1 (ja) * 2019-01-11 2019-10-16 ダブル技研株式会社 空中搬送装置及び空中搬送方法
US20220118375A1 (en) * 2019-01-31 2022-04-21 Lego A/S A modular toy system with electronic toy modules
EP3993959A1 (de) * 2019-07-01 2022-05-11 KUKA Deutschland GmbH Durchführen einer applikation mithilfe wenigstens eines roboters
CN112621752A (zh) * 2019-08-20 2021-04-09 广东博智林机器人有限公司 机器人施工的方法、装置和工控机
US20230351661A1 (en) * 2022-04-28 2023-11-02 Theai, Inc. Artificial intelligence character models with goal-oriented behavior
JP2024032276A (ja) 2022-08-29 2024-03-12 トヨタ自動車株式会社 制御装置、制御システム、制御方法及びプログラム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8353737B2 (en) 2009-05-28 2013-01-15 Anki, Inc. Distributed system of autonomously controlled toy vehicles
US8535737B2 (en) 2011-10-19 2013-09-17 Huu Tieu Composition with extracts from olive leaf, yarrow and rosemary for treating human diseases and conditions

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61284282A (ja) * 1985-06-07 1986-12-15 アツプリカ葛西株式会社 組立おもちや
JP3024406B2 (ja) * 1992-12-09 2000-03-21 セイコーエプソン株式会社 マイクロロボット
JPH07163765A (ja) * 1993-12-16 1995-06-27 B I:Kk リモ−トコントロ−ル玩具
US5989096A (en) * 1997-02-11 1999-11-23 Rokenbok Toy Company Toy fork lift vehicle with improved steering
US6695668B2 (en) * 2001-01-29 2004-02-24 Kevin Gerard Donahue Toy vehicle and method of controlling a toy vehicle from a printed track
US6491566B2 (en) * 2001-03-26 2002-12-10 Intel Corporation Sets of toy robots adapted to act in concert, software and methods of playing with the same
WO2004003680A2 (en) * 2002-04-22 2004-01-08 Neal Solomon System, method and apparatus for automated collective mobile robotic vehicles used in remote sensing surveillance
JP4319815B2 (ja) * 2002-08-23 2009-08-26 株式会社コナミデジタルエンタテインメント 外力を動力源とする移動玩具
US20040102132A1 (en) * 2002-11-25 2004-05-27 Stephanie Miller Construction toy formed of connectable components
JP3960937B2 (ja) * 2003-03-31 2007-08-15 有限会社擬人機工藝 携帯型端末装置を利用したゲームシステム。
JP4411900B2 (ja) * 2003-08-08 2010-02-10 ソニー株式会社 電子機器間の相互成長システム、電子機器及びロボット装置
GB2427371B (en) * 2005-06-23 2008-07-09 Hisao Sato Component for a constructional toy
EP2205333A1 (de) 2007-09-21 2010-07-14 Robonica (Proprietary) Limited System zur steuerung von halbautonomen robotern in interaktiven roboterspielen
JP5215740B2 (ja) * 2008-06-09 2013-06-19 株式会社日立製作所 移動ロボットシステム
US8882560B2 (en) 2009-05-28 2014-11-11 Anki, Inc. Integration of a robotic system with one or more mobile computing devices

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8353737B2 (en) 2009-05-28 2013-01-15 Anki, Inc. Distributed system of autonomously controlled toy vehicles
US8535737B2 (en) 2011-10-19 2013-09-17 Huu Tieu Composition with extracts from olive leaf, yarrow and rosemary for treating human diseases and conditions

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102019217568B4 (de) * 2018-11-29 2021-01-14 Hitachi, Ltd. System von autonomen einrichtungen und steuerungsverfahren davon
US11340611B2 (en) 2018-11-29 2022-05-24 Hitachi, Ltd. Autonomous body system and control method thereof
DE102019215642A1 (de) * 2019-10-11 2021-04-15 Schäfer Werkzeug- und Sondermaschinenbau GmbH Kennzeichnungselement, Verarbeitungssystem sowie Verfahren
DE102020204388A1 (de) 2020-04-03 2021-10-07 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren und Vorrichtung zum Ansteuern eines Agenten
DE102020114737A1 (de) 2020-06-03 2021-12-09 Bayerische Motoren Werke Aktiengesellschaft Verfahren, System sowie Computerprogramm zum Betreiben eines oder mehrerer Roboter, eines Robotersystems und/oder eines Roboterschwarms
DE102020114738A1 (de) 2020-06-03 2021-12-09 Bayerische Motoren Werke Aktiengesellschaft Verfahren, System sowie Computerprogramm zum Betreiben eines oder mehrerer Roboter, eines Robotersystems und/oder eines Roboterschwarms

Also Published As

Publication number Publication date
EP3003521B1 (de) 2021-03-31
JP2018167031A (ja) 2018-11-01
HK1218271A1 (zh) 2017-02-10
CA2913747A1 (en) 2014-12-04
WO2014194191A1 (en) 2014-12-04
KR20150140857A (ko) 2015-12-16
EP3003521A1 (de) 2016-04-13
JP2016523124A (ja) 2016-08-08
EP3003521A4 (de) 2017-01-04
AU2017204322A1 (en) 2017-07-13
KR101640179B1 (ko) 2016-07-15
CN105228712B (zh) 2017-04-12
CN105228712A (zh) 2016-01-06
GB201518648D0 (en) 2015-12-02
CA2913747C (en) 2016-09-06
GB2527471A (en) 2015-12-23
AU2019204462A1 (en) 2019-07-11
AU2014273979A1 (en) 2015-12-17
JP6069589B2 (ja) 2017-02-01
JP2017094122A (ja) 2017-06-01
DE112014002621T5 (de) 2016-03-10

Similar Documents

Publication Publication Date Title
DE202014011117U1 (de) Mobile Agenten zum Manipulieren, Bewegen und/oder Neuausrichten von Komponenten
US11027213B2 (en) Mobile agents for manipulating, moving, and/or reorienting components
Hamann Swarm robotics: A formal approach
CN110352393B (zh) 多地形考察机器人装置及其配置及引导方法
Balakirsky et al. Towards heterogeneous robot teams for disaster mitigation: Results and performance metrics from robocup rescue
Dudenhoeffer et al. A formation behavior for large-scale micro-robot force deployment
EP3974934A1 (de) Verfahren zur steuerung eines autonomen, mobilen roboters
Roucek et al. System for multi-robotic exploration of underground environments ctu-cras-norlab in the darpa subterranean challenge
DE112011104644T5 (de) Mobiles Roboter-System
Casini et al. A remote lab for experiments with a team of mobile robots
DE102019201313A1 (de) Träger, Träger mit Empfangsfähigkeit, Trägersystem, Host-System, Verfahren zum Steuern des Trägers und Programm
Omidshafiei et al. Measurable augmented reality for prototyping cyberphysical systems: A robotics platform to aid the hardware prototyping and performance testing of algorithms
Halder et al. Real-time and remote construction progress monitoring with a quadruped robot using augmented reality
Chen et al. Cognitive map-based model: Toward a developmental framework for self-driving cars
Rodríguez Lera et al. Augmented reality to improve teleoperation of mobile robots
Blum et al. SegVisRL: development of a robot's neural visuomotor and planning system for lunar exploration
Barja Peláez Study, design, simulation and implementation of terrain detection algorithm for the navigation task of the European Rover Challenge
Mann et al. Opportunities for enhanced robot control along the adjustable autonomy scale
Smart et al. Place recognition and topological map learning in a virtual cognitive robot
Graber et al. RoboCupRescue 2012-Robot League Team
Boroujeni Visual Data Analytic and Robotics for Automated Construction Performance Monitoring
Sun et al. Crowd navigation in an unknown and complex environment based on deep reinforcement learning
Stoeter Vision-based control of miniature jumping Scout robots
Račinský Aplikace algoritmu RRT-path v úloze autonomního dohledu skupinou helikoptér
Cai et al. Primitive Learning

Legal Events

Date Code Title Description
R207 Utility model specification
R150 Utility model maintained after payment of first maintenance fee after three years
R157 Lapse of ip right after 6 years