-
Die vorliegende Erfindung betrifft ein Verfahren, eine Vorrichtung und ein computerlesbares Speichermedium mit Instruktionen zum Erstellen einer Virtual-Reality-Anwendung.
-
Mit der stetigen Weiterentwicklung von Virtual- und Augmented-Reality-Technologien und -Anwendungen halten diese inzwischen auch Einzug in die virtuelle Planung von Fabriken und werden für die Mitarbeiterqualifizierung eingesetzt. Bei Augmented Reality (AR), auf Deutsch „erweiterte Realität“, handelt es sich um die Anreicherung der realen Welt durch virtuelle Elemente, die im dreidimensionalen Raum ortskorrekt registriert sind und eine Echtzeitinteraktion erlauben. Bei Virtual Reality (VR), auf Deutsch „virtuelle Realität“, wird eine vollständig virtuelle Umgebung generiert. In der Fachwelt haben sich im deutschsprachigen Raum die Ausdrücke „Augmented Reality“ und „Virtual Reality“ gegenüber den Ausdrücken „erweiterte Realität“ und „virtuelle Realität“ durchgesetzt. Im Folgenden werden daher die englischsprachigen Ausdrücke benutzt. Synonym zu „Augmented Reality“ wird auch der Ausdruck „Mixed Reality“ verwendet.
-
Vor diesem Hintergrund beschreibt die
DE 198 32 974 A1 ein Verfahren zur Erstellung eines virtuellen Anlagenmodells als Abbild einer realen Anlage. Ausgangsbasis für die Erstellung des virtuellen Anlagenmodells sind zwei Datenquellen. Die erste Datenquelle enthält Bilddaten von der realen Anlage, während die zweite Datenquelle vordefinierte Anlagenkomponenten enthält, die beim Aufbau der Anlage verwendet worden sind. Das virtuelle Anlagenmodell wird aus den Bilddaten der realen Anlage dadurch erzeugt, dass die Anlagenkomponenten der Komponentenbibliothek mit den Bilddaten der realen Anlage verglichen werden und bei Übereinstimmung eine jeweils erkannte Anlagenkomponente zum virtuellen Anlagenmodell hinzugefügt wird.
-
Die
DE 199 00 884 A1 beschreibt ein Verfahren zum Bedienen und Beobachten eines realen Prozesses einer realen Anlage. Aus virtuellen Anlagemodellen als Abbild der realen Anlagenkomponenten wird ein Mensch-Maschine-Interface gebildet. Die virtuellen Anlagenmodelle werden dem Anwender mit Hilfe einer Anzeigevorrichtung visualisiert. Dabei werden die realen Anlagenkomponenten, d. h. die realen Prozesse einschließlich der aktuellen Prozessdaten, bei der Visualisierung der virtuellen Anlagenmodelle eingebunden. Darüber hinaus sind in der Anzeigevorrichtung bestimmte Bildschirmbereiche als Interaktionsmittel vorgesehen, über die eine Bedienung des realen Prozesses ermöglicht wird.
-
Virtual-Reality-Technologien erlauben eine realitätsnahe und greifbare Darstellung komplexer Sachverhalte. Dennoch liegt zwischen der Idee und der Umsetzung ein spürbares Hindernis, so dass der Einsatz von Virtual Reality oftmals nicht über den reinen Zweck einer Demonstration hinausgeht. Der Respekt vor dieser anspruchsvollen Technologie erschwert eine tiefergehende Auseinandersetzung mit der Thematik. Komplexe Aufgaben und Anforderungen werden ausgelagert und beauftragt. Die klassische Entwicklung von Virtual-Reality-Anwendungen durch externe Entwickler ist allerdings langwierig und teuer. Je nach Komplexität der Anwendung kann sich die Entwicklungszeit über mehrere Monate erstrecken, während derer externe sowie interne Personalkapazitäten gebunden werden. Dieser enorme personelle, zeitliche und finanzielle Aufwand schmälert die Chancen einer flächendeckenden Einführung von Virtual-Reality-Technologien innerhalb eines Konzerns.
-
Es ist eine Aufgabe der Erfindung, Lösungen für das Erstellen einer Virtual-Reality-Anwendung aufzuzeigen, die eine Reduzierung des Entwicklungsaufwands ermöglichen.
-
Diese Aufgabe wird durch ein Verfahren mit den Merkmalen des Anspruchs 1, durch ein computerlesbares Speichermedium mit Instruktionen gemäß Anspruch 10 und durch eine Vorrichtung mit den Merkmalen des Anspruchs 11 gelöst. Bevorzugte Ausgestaltungen der Erfindung sind Gegenstand der abhängigen Ansprüche.
-
Gemäß einem ersten Aspekt der Erfindung umfasst ein Verfahren zum Erstellen einer Virtual-Reality-Anwendung die Schritte:
- - Bereitstellen einer Virtual-Reality-Umgebung für einen Nutzer;
- - Bereitstellen eines Objektkataloges in der Virtual-Reality-Umgebung;
- - Erfassen einer Nutzereingabe zur Auswahl eines Objektes aus dem Objektkatalog;
- - Erfassen einer Nutzereingabe zur Positionierung des ausgewählten Objektes in der Virtual-Reality-Umgebung; und
- - Generieren eines Quellcodes für die Virtual-Reality-Anwendung auf Basis der Nutzereingaben.
-
Gemäß einem weiteren Aspekt der Erfindung enthält ein computerlesbares Speichermedium Instruktionen, die bei Ausführung durch einen Computer den Computer zur Ausführung der folgenden Schritte zum Erstellen einer Virtual-Reality-Anwendung veranlassen:
- - Bereitstellen einer Virtual-Reality-Umgebung für einen Nutzer;
- - Bereitstellen eines Objektkataloges in der Virtual-Reality-Umgebung;
- - Erfassen einer Nutzereingabe zur Auswahl eines Objektes aus dem Objektkatalog;
- - Erfassen einer Nutzereingabe zur Positionierung des ausgewählten Objektes in der Virtual-Reality-Umgebung; und
- - Generieren eines Quellcodes für die Virtual-Reality-Anwendung auf Basis der Nutzereingaben.
-
Der Begriff Computer ist dabei breit zu verstehen. Insbesondere umfasst er auch Workstations und andere prozessorbasierte Datenverarbeitungsvorrichtungen.
-
Gemäß einem weiteren Aspekt der Erfindung weist eine Vorrichtung zum Erstellen einer Virtual-Reality-Anwendung auf:
- - einen Grafikgenerator zum Bereitstellen einer Virtual-Reality-Umgebung für einen Nutzer und zum Bereitstellen eines Objektkataloges in der Virtual-Reality-Umgebung;
- - einem Steuerungsmodul zum Erfassen einer Nutzereingabe zur Auswahl eines Objektes aus dem Objektkatalog und zum Erfassen einer Nutzereingabe zur Positionierung des ausgewählten Objektes in der Virtual-Reality-Umgebung; und
- - einen Codegenerator zum Generieren eines Quellcodes für die Virtual-Reality-Anwendung auf Basis der Nutzereingaben.
-
Bei den beschriebenen Lösungen, die beispielsweise in Form eines Softwareeditors umgesetzt werden können, werden das Erstellen von Virtual-Reality-Anwendungen und das Einbinden neuer Objekte, z.B. 3D Modelle, per „drag&drop“ („Ziehen und Ablegen“) ermöglicht. Beliebige Objekte können zur Laufzeit in die 3D-Umgebung eingebunden und dort positioniert werden. Der eigentliche Quellcode wird im Hintergrund automatisch erzeugt. Dies führt dazu, dass für das Erstellen der Anwendungen keine Programmierkenntnisse mehr erforderlich sind und jeder interne Mitarbeiter, der die Prozesse in seinem Bereich am besten kennt, selber in der Lage zur Erstellung von Virtual-Reality-Anwendungen ist. Dies verkürzt die Entwicklungszeit von einigen Wochen oder Monaten auf wenige Stunden oder Tage. Die Virtual-Reality-Umgebung wird dem Nutzer beim Erstellen der Virtual-Reality-Anwendung vorzugsweise durch ein Virtual-Reality-Gerät vermittelt.
-
Gemäß einem Aspekt der Erfindung wird eine virtuelle Tastatur zum Benennen eines Objektes in der Virtual-Reality-Umgebung bereitgestellt. Das Benennen von Objekten kann genutzt werden, um zwischen relevanten und nicht-relevanten Objekten zu unterscheiden. Nicht-relevante Objekte bekommen keine Bezeichnung und können beispielsweise während einer späteren Festlegung von Prozessen ausgeblendet werden, so dass nur prozessrelevante Objekte angezeigt werden. Diese vereinfacht das Erstellen von Prozessen durch den Nutzer.
-
Gemäß einem Aspekt der Erfindung wird eine Nutzereingabe zur Festlegung eines Zielortes eines Objektes erfasst. Das Festlegen von Zielorten ist sinnvoll, um Positionen zu definieren, an die ein Objekt transportiert werden soll oder an denen sich ein Objekt befinden muss, damit ein Schritt eines Prozesses ablaufen kann.
-
Gemäß einem Aspekt der Erfindung weist das Verfahren zusätzlich die folgenden Schritte auf:
- - Bereitstellen eines Funktionskataloges für ein Objekt in der Virtual-Reality-Umgebung; und
- - Erfassen einer Nutzereingabe zur Auswahl einer Funktion für das Objekt aus dem Funktionskatalog.
-
Die Objekte können per „drag&drop“ mit zusätzlichen Funktionalitäten angereichert werden. Hier wird vorzugsweise ein modularer Ansatz gewählt, der das Ankoppeln von beliebigen Funktionen an jedes Objekt ermöglicht. Die Funktionsbausteine sind mit Funktionsbeschreibungen in einer Datenbank verknüpft. Die Datenbank kann zur Laufzeit beliebig um zusätzliche Funktionsbeschreibungen erweitert werden. Für die Funktionsbausteine wird vorzugsweise eine standardisierte Form der Funktionsbeschreibungen genutzt.
-
Gemäß einem Aspekt der Erfindung werden Nutzereingaben zum Verknüpfen von Objekten zu einer Prozesskette erfasst. Prinzipiell lässt sich jedes Objekt mit einem anderen beliebig verknüpfen. Auf diese Weise lassen sich beliebig komplexe parallele Strukturen realisieren.
-
Gemäß einem Aspekt der Erfindung können zwei oder mehr Kopien eines Objektes in die Prozesskette aufgenommen werden. Optische Kopien der prozessrelevanten Objekte dienen dann als Repräsentanten eines Prozessschritts. Die Repräsentanten lassen sich über Prozesspfeile direkt miteinander verknüpfen. Da jedes Objekt prinzipiell beliebig oft in einem Prozess vorkommen kann, verringert die Verwendung von Repräsentanten den Aufwand für das Erstellen der Virtual-Reality-Umgebung.
-
Gemäß einem Aspekt der Erfindung werden beim Verknüpfen von Objekten zu einer Prozesskette die folgenden Schritte ausgeführt:
- - Bereitstellen eines Übergangskataloges für einen Prozessschritt in der Virtual-Reality-Umgebung, wobei der Übergangskatalog Funktionen und Übergangsbedingungen für einen Übergang zwischen zwei verknüpften Objekten umfasst; und
- - Erfassen einer Nutzereingabe zur Auswahl eines Übergangs für den Prozessschritt aus dem Übergangskatalog.
-
Bei der Verknüpfung zweier Objekte wird eine Aktion oder Übergangsbedingung gewählt, die den nächsten Prozessschritt auslöst. Die gesamte Programmierung erfolgt somit nur noch durch einfaches Verknüpfen von Objekten. Die Menge an möglichen Übergangsbedingungen kann abhängig von der Wahl der Funktionsbausteine sein, die den Objekten zuvor zugeordnet wurden. Ein Funktionsbaustein definiert weitere Übergangsbedingungen, die dem Übergangskatalog hinzugefügt werden, sobald der Funktionsbaustein an das Objekt gekoppelt wurde.
-
Gemäß einem Aspekt der Erfindung werden die Nutzereingaben durch einen Virtual-Reality-Controller des Nutzers generiert. Derartige Virtual-Reality-Controller sind bereits für die Arbeit in Virtual-Reality-Umgebungen bzw. Virtual-Reality-Anwendungen etabliert, so dass seitens eines Nutzers keine oder nur eine geringfügige Einarbeitung in die Handhabung erforderlich ist.
-
Durch eine zusätzliche Parametrierung weiterer Parameter, Datentypen etc. kann die Zahl der Freiheitsgrade für den Entwickler erhöht werden. Dadurch kann eine deutlich komplexere und umfangreichere Verknüpfung der Objekte zu einem lauffähigen Programm erfolgen.
-
Mittels eines Makromodus können zudem zur Erstellung eines Ablaufs die durchgeführten Aktionen in der Virtual-Reality-Umgebung aufzeichnet und daraus ein Prozessablauf hergeleitet werden. Zwar lassen sich mit einem Makromodus verzweigte Entscheidungsbäume und parallel ablaufende Vorgänge nur unzureichend abbilden, im Gegenzug wird aber die Erstellung gradliniger Abläufe weiter vereinfacht.
-
Weitere Merkmale der vorliegenden Erfindung werden aus der nachfolgenden Beschreibung und den angehängten Ansprüchen in Verbindung mit den Figuren ersichtlich.
- 1 zeigt schematisch ein Verfahren zum Erstellen einer Virtual-Reality-Anwendung;
- 2 zeigt eine erste Ausführungsform einer Vorrichtung zum Erstellen einer Virtual-Reality-Anwendung;
- 3 zeigt eine zweite Ausführungsform einer Vorrichtung zum Erstellen einer Virtual-Reality-Anwendung;
- 4 zeigt eine Virtual-Reality-Umgebung eines Objekteditors mit Objekten und einem Objektkatalog;
- 5 illustriert eine Grobpositionierung eines Objektes in der Virtual-Reality-Umgebung des Objekteditors;
- 6 illustriert eine Feinpositionierung eines Objektes in der Virtual-Reality-Umgebung des Objekteditors;
- 7 illustriert die Benennung eines Objektes in der Virtual-Reality-Umgebung des Objekteditors mittels einer virtuellen Tatstatur;
- 8 illustriert die Zuordnung eines Zielortes zu einem Objekt in der Virtual-Reality-Umgebung des Objekteditors;
- 9 illustriert die Zuordnung einer Funktion aus einem Funktionskatalog zu einem Objekt in der Virtual-Reality-Umgebung des Objekteditors;
- 10 illustriert das Einbinden von prozessrelevanten Objekten in eine Szene in einer Virtual-Reality-Umgebung eines Prozesseditors;
- 11 illustriert das Verknüpfen von Objekten zu einer Prozesskette in der Virtual-Reality-Umgebung des Prozesseditors;
- 12 illustriert die Auswahl einer Funktion und Übergangsbedingung für einen Prozessschritt aus einem Übergangskatalog in der Virtual-Reality-Umgebung des Prozesseditors;
- 13 illustriert einen Prozess mit einer komplexen parallelen Struktur in der Virtual-Reality-Umgebung des Prozesseditors;
- 14 zeigt ein beispielhaftes Szenario, das mit dem Prozesseditor umgesetzt werden kann;
- 15 zeigt den Prozessablauf für das Szenario aus 14;
- 16 erläutert die Verwendung von Repräsentanten von Objekten; und
- 17 illustriert die Überprüfung von Bedingungen für mehrere Repräsentanten eines Objektes.
-
Zum besseren Verständnis der Prinzipien der vorliegenden Erfindung werden nachfolgend Ausführungsformen der Erfindung anhand der Figuren detaillierter erläutert. Es versteht sich, dass sich die Erfindung nicht auf diese Ausführungsformen beschränkt und dass die beschriebenen Merkmale auch kombiniert oder modifiziert werden können, ohne den Schutzbereich der Erfindung zu verlassen, wie er in den angehängten Ansprüchen definiert ist.
-
1 zeigt schematisch ein Verfahren zum Erstellen einer Virtual-Reality-Anwendung. In einem ersten Schritt 1 wird eine Virtual-Reality-Umgebung für einen Nutzer bereitgestellt. Die Virtual-Reality-Umgebung kann dem Nutzer insbesondere durch ein Virtual-Reality-Gerät vermittelt werden. Zudem wird ein Objektkatalog in der Virtual-Reality-Umgebung bereitgestellt 2. Dies kann beispielsweise in Reaktion auf eine Betätigung einer Taste eines Virtual-Reality-Controllers durch den Nutzer erfolgen. Zum Einfügen eines Objektes in die Virtual-Reality-Umgebung wird zunächst eine Nutzereingabe zur Auswahl eines Objektes aus dem Objektkatalog erfasst 3. Nach erfolgter Auswahl des Objektes wird eine Nutzereingabe zur Positionierung des ausgewählten Objektes in der Virtual-Reality-Umgebung erfasst 4. Dabei kann zunächst eine Grobpositionierung erfolgen, an die sich dann eine Feinpositionierung anschließt. Vorzugsweise wird dem Nutzer eine virtuelle Tastatur zum Benennen des Objektes in der Virtual-Reality-Umgebung bereitgestellt. Zusätzlich kann eine Nutzereingabe zur Festlegung eines Zielortes eines Objektes erfasst werden 5. Dazu kann der Nutzer beispielsweise ein Objekt in die Virtual-Reality-Umgebung mit Hilfe des Virtual-Reality-Controllers auswählen, ein zugehöriges Menü aufrufen und dort die Festlegung eines Zielortes für das Objekt initiieren. Der gewünschte Zielort kann dann mit dem Virtual-Reality-Controller ausgewählt werden. Unter einem Zielort ist z.B. eine Position in der Virtual-Reality-Umgebung zu verstehen, in die ein Objekt im Rahmen eines Prozesses gebracht werden soll. Objekten in der Virtual-Reality-Umgebung können zudem Funktionen zugewiesen werden. Dazu wird zunächst ein Funktionskatalog für ein Objekt in der Virtual-Reality-Umgebung bereitgestellt 6. Das Zuweisen einer Funktion zu einem Objekt erfolgt dann durch das Erfassen 7 einer Nutzereingabe zur Auswahl einer Funktion für das Objekt aus dem Funktionskatalog. Zur Abbildung von Prozessen in der Virtual-Reality-Umgebung können Nutzereingaben zum Verknüpfen von Objekten zu einer Prozesskette erfasst werden 8. Dabei können zwei oder mehr Kopien eines Objektes in die Prozesskette aufgenommen werden. Vorzugsweise wird in diesem Kontext ein Übergangskatalog für einen Prozessschritt in der Virtual-Reality-Umgebung bereitgestellt 9. Der Übergangskatalog umfasst Funktionen und Übergangsbedingungen für einen Übergang zwischen zwei verknüpften Objekten. Zur Auswahl eines Übergangs für den Prozessschritt aus dem Übergangskatalog wird wiederum eine entsprechende Nutzereingabe erfasst 10. Nach Abschluss aller Nutzereingaben wird schließlich ein Quellcode für die Virtual-Reality-Anwendung auf Basis der Nutzereingaben generiert 11.
-
2 zeigt eine vereinfachte schematische Darstellung einer ersten Ausführungsform einer Vorrichtung 20 zum Erstellen einer Virtual-Reality-Anwendung. Die Vorrichtung 20 hat eine Schnittstelle 21, über die Grafikdaten an ein Virtual-Reality-Gerät übermittelt werden können und über die Steuerbefehle zumindest eines Virtual-Reality-Controllers empfangen werden können. Ein Grafikgenerator 22 stellt eine Virtual-Reality-Umgebung für einen Nutzer bereit. Zudem kann der Grafikgenerator 22 weitere Elemente in der Virtual-Reality-Umgebung bereitstellen, beispielsweise einen Objektkatalog, eine virtuelle Tastatur, einen Funktionskatalog oder einen Übergangskatalog für einen Prozessschritt. Dazu können Informationen genutzt werden, die in einer Datenbank 23 abgelegt sind. Ein Steuerungsmodul 24 erfasst und verarbeitet Nutzereingaben, beispielsweise zur Auswahl eines Objektes aus dem Objektkatalog, zur Positionierung des ausgewählten Objektes in der Virtual-Reality-Umgebung, zur Benennung eines Objektes, zur Festlegung eines Zielortes eines Objektes, zur Auswahl einer Funktion, zum Verknüpfen von Objekten zu einer Prozesskette oder zur Auswahl eines Übergangs für einen Prozessschritt. Ein Codegenerator 25 generiert schließlich auf Basis der Nutzereingaben einen Quellcode für die Virtual-Reality-Anwendung. Über einen Ausgang 29 der Vorrichtung 20 wird der generierte Quellcode ausgegeben.
-
Der Grafikgenerator 22, die Datenbank 23, das Steuerungsmodul 24 und der Codegenerator 25 können von einer Kontrolleinheit 26 gesteuert werden. Über eine Benutzerschnittstelle 28 können gegebenenfalls Einstellungen des Grafikgenerators 22, der Datenbank 23, des Steuerungsmoduls 24, des Codegenerators 25 oder der Kontrolleinheit 26 geändert werden. Die in der Vorrichtung 20 anfallenden Daten können bei Bedarf in einem Speicher 27 der Vorrichtung 20 abgelegt werden, beispielsweise für eine spätere Auswertung oder für eine Nutzung durch die Komponenten der Vorrichtung 20. Der Grafikgenerator 22, das Steuerungsmodul 24, der Codegenerator 25 sowie die Kontrolleinheit 26 können als dedizierte Hardware realisiert sein, beispielsweise als integrierte Schaltungen. Natürlich können sie aber auch teilweise oder vollständig kombiniert oder als Software implementiert werden, die auf einem geeigneten Prozessor läuft, beispielsweise auf einer GPU oder einer CPU. Die Schnittstelle 21 und der Ausgang 29 können als getrennte Schnittstellen oder als eine kombinierte bidirektionale Schnittstelle implementiert sein.
-
3 zeigt eine vereinfachte schematische Darstellung einer zweiten Ausführungsform einer Vorrichtung 30 zum Erstellen einer Virtual-Reality-Anwendung. Die Vorrichtung 30 weist einen Prozessor 32 und einen Speicher 31 auf. Beispielsweise handelt es sich bei der Vorrichtung 30 um einen Computer oder ein Steuergerät. Im Speicher 31 sind Instruktionen abgelegt, die die Vorrichtung 30 bei Ausführung durch den Prozessor 32 veranlassen, die Schritte gemäß einem der beschriebenen Verfahren auszuführen. Die im Speicher 31 abgelegten Instruktionen verkörpern somit ein durch den Prozessor 32 ausführbares Programm, welches das erfindungsgemäße Verfahren realisiert. Die Vorrichtung 30 hat einen Eingang 33 zum Empfangen von Informationen, beispielsweise von Nutzereingaben oder von extern erstellten 3D-Modellen. Vom Prozessor 32 generierte Daten werden über einen Ausgang 34 bereitgestellt. Darüber hinaus können sie im Speicher 31 abgelegt werden. Der Eingang 33 und der Ausgang 34 können zu einer bidirektionalen Schnittstelle zusammengefasst sein.
-
Der Prozessor 32 kann eine oder mehrere Prozessoreinheiten umfassen, beispielsweise Mikroprozessoren, digitale Signalprozessoren oder Kombinationen daraus.
-
Die Speicher 27, 31 der beschriebenen Ausführungsformen können sowohl volatile als auch nichtvolatile Speicherbereiche aufweisen und unterschiedlichste Speichergeräte und Speichermedien umfassen, beispielsweise Festplatten, optische Speichermedien oder Halbleiterspeicher.
-
Nachfolgend sollen Details der Erfindung beispielshaft anhand der 4 bis 17 beschrieben werden. Dabei zeigen die 4 bis 13 Screenshots einer Virtual-Reality-Umgebung eines Softwareeditors. Im Beispiel stellt der Softwareeditor zwei Module bereit, einen Objekteditor und einen Prozesseditor. Diese Trennung ist praktisch, aber nicht zwingend.
-
4 zeigt eine Virtual-Reality-Umgebung 40 eines Objekteditors mit Objekten 44 und einem Objektkatalog 43. Von den Objekten 44 ausgehende Linien verknüpfen die Objekte 44 mit zugehörigen Textfeldern 45, in denen beispielsweise eine Objektbezeichnung wiedergegeben wird. Ebenfalls zu sehen ist ein Abbild eines Virtual-Reality-Controllers 41. Die Bedienung erfolgt vorzugsweise durch zwei derartige Virtual-Reality-Controller 41, wobei je einer mit der rechten und mit der linken Hand bedient wird. Der Aufruf des Objektkataloges 43 oder auch anderer Menüs erfolgt durch einen Tastendruck an einem der Virtual-Reality-Controller 41. Das Menü wird daraufhin an diesen Virtual-Reality-Controller 41 gekoppelt, d.h. es ist relativ zum Virtual-Reality-Controller 41 fest positioniert. Die Interaktion mit einem Menü erfolgt dann mit dem jeweils anderen Virtual-Reality-Controller 41. Dazu ist ein Pointer 42 vorgesehen, der von diesem Virtual-Reality-Controller 41 ausgeht und eine Position in der Virtual-Reality-Umgebung 40 markiert. Üblicherweise markiert der Pointer 42 den Auftreffpunkt einer vom Virtual-Reality-Controller 41 ausgehenden Linie auf ein Objekt in der Virtual-Reality-Umgebung 40. In 4 markiert der Pointer 42 den Eintrag „Handscanner“ im Objektkatalog 43. Die Auswahl dieses Eintrages erfolgt durch einen Tastendruck. Die Einträge im Objektkatalog 43 sind mit 3D-Modellen in einer Datenbank verknüpft. Die Datenbank kann zur Laufzeit um weitere 3D-Modelle ergänzt werden. Der Objektkatalog 43 kann Unterkataloge für verschiedene Typen von Objekten aufweisen, die zunächst über ein übergeordnetes Menü aufgerufen werden müssen. Auf diese Weise kann die Menge der Einträge im Objektkatalog 43, aus denen der Nutzer eine Auswahl treffen muss, beschränkt werden. Beispielsweise kann eine Unterteilung in Mobiliar, Transporteinrichtungen, Werkzeuge, Erfassungseinrichtungen, etc. erfolgen. Sofern nicht alle Einträge angezeigt werden können, sind weitere Einträge beispielsweise über Rollbalken oder Pfeiltasten erreichbar.
-
5 illustriert eine Grobpositionierung eines Objektes 44 in der Virtual-Reality-Umgebung 40 des Objekteditors. Im Beispiel hat der Nutzer aus dem Objektkatalog 43 einen Transportwagen ausgewählt, der nun am durch den Pointer 42 markierten Punkt in der Virtual-Reality-Umgebung 40 erscheint, hier auf einem virtuellen Fußboden. Das Objekt 44 kann in der Virtual-Reality-Umgebung 40 bewegt werden, bis die Position durch einen Tastendruck am Virtual-Reality-Controller 41 bestätigt wird. Im Anschluss kann eine Feinpositionierung des Objektes 44 erfolgen.
-
6 illustriert eine Feinpositionierung eines Objektes 44 in der Virtual-Reality-Umgebung 40 des Objekteditors. Der Nutzer hat im Beispiel mittels des Pointers 42 einen Taster markiert und ausgewählt. Diesen kann er nun mittels einer Drehung des Virtual-Reality-Controllers 41 rotieren bzw. durch Bewegen des Virtual-Reality-Controllers 41 entlang der Raumachsen genauer positionieren. Die Feinpositionierung eines Objektes 44 wird vorzugsweise dadurch aufgerufen, dass nach dem Auswählen des Objektes 44 eine Auswahltaste gedrückt gehalten wird.
-
7 illustriert die Benennung eines Objektes 44 in der Virtual-Reality-Umgebung 40 des Objekteditors mittels einer virtuellen Tatstatur 46. Neu in die Virtual-Reality-Umgebung 40 eingebrachte Objekte haben vorzugsweise zunächst keine Bezeichnung, was in der Figur durch den Text „TBD“ (TBD: to be defined; noch nicht festgelegt) im zugehörigen Textfeld 45 symbolisiert wird. Um ein Objekt 44 zu benennen, wird die virtuelle Tastatur 46 über ein Objektmenü eines markierten Objektes 44 oder durch Auswahl des Textfeldes 45 aufgerufen. Über die Tasten der virtuellen Tastatur 46 kann dann mittels des Virtual-Reality-Controllers eine Objektbezeichnung vergeben werden. Die Vergabe von Bezeichnungen kann genutzt werden, um zwischen relevanten und nicht-relevanten Objekten 44 zu unterscheiden. Nicht-relevante Objekte bekommen keine Bezeichnung und können im Prozesseditor ausgeblendet werden, so dass nur prozessrelevante Objekte im Prozesseditor angezeigt werden. Diese vereinfacht die Abbildung von Prozessen durch den Nutzer.
-
8 illustriert die Zuordnung eines Zielortes 48 zu einem Objekt in der Virtual-Reality-Umgebung 40 des Objekteditors. Mittels des Virtual-Reality-Controllers 41 wählt der Nutzer ein Objekt und initiiert über ein Objektmenü das Festlegen eines Zielortes 48. Am vom Pointer 42 markierten Punkt erscheint daraufhin ein Geisterbild 47 des Objektes, das nun wie gehabt in der Virtual-Reality-Umgebung 40 positioniert werden kann.
-
9 illustriert die Zuordnung einer Funktion aus einem Funktionskatalog 49 zu einem Objekt 44 in der Virtual-Reality-Umgebung 40 des Objekteditors. Im Beispiel hat der Nutzer einen Transportwagen aufgerufen, dem er nun nach Aufrufen des Funktionskataloges 49 über ein Objektmenü eine Testfunktion zuweist. Die Funktionen sind im Funktionskatalog 49 vorzugsweise nach einer objektbezogenen Prioritätenliste sortiert. Dabei können grundsätzlich alle verfügbaren Funktionen im Funktionskatalog 49 auswählbar sein, auch wenn eine Funktion durch ein konkretes Objekt nicht umsetzbar ist. Alternativ werden nur die für ein Objekt relevanten Funktionen angezeigt bzw. sind nur diese Funktionen auswählbar. Mögliche Funktionen eines Handscanners wären beispielsweise das Scannen eines Barcodes, das Scannen eines Matrixcodes oder gegebenenfalls das Ausdrucken eines Scanbeleges. Die Einträge im Funktionskatalog 49 sind mit Funktionsbeschreibungen in einer Datenbank verknüpft. Die Datenbank kann zur Laufzeit um weitere Funktionsbeschreibungen ergänzt werden.
-
10 illustriert das Einbinden von prozessrelevanten Objekten 44 in eine Szene in einer Virtual-Reality-Umgebung 40 eines Prozesseditors. Im Prozesseditor werden nur diejenigen Objekte 44 angezeigt, die zuvor im Objekteditor eine Bezeichnung erhalten haben. Allerdings können auch im Prozesseditor mittels des Objektkataloges 43 noch weitere Objekte 44 hinzugefügt werden, so dass nicht zwingend wieder in den Objekteditor gewechselt werden muss.
-
11 illustriert das Verknüpfen von Objekten 44 zu einer Prozesskette in der Virtual-Reality-Umgebung 40 des Prozesseditors. Der Start eines Prozesses wird durch ein Startobjekt 50 symbolisiert. Die verschiedenen Prozessschritte werden durch Prozesspfeile 51 repräsentiert. Im Beispiel hat der Nutzer bereits vier Objekte 44 zu einer Prozesskette verknüpft. Der Pointer 42 markiert bereits ein weiteres Objekt 44, das der Prozesskette hinzugefügt werden soll. Die räumliche Anordnung der Objekte 44 in der Virtual-Reality-Umgebung 40 ist für die Verknüpfung ohne Relevanz.
-
12 illustriert die Auswahl einer Funktion und Übergangsbedingung für einen Prozessschritt aus einem Übergangskatalog 52 in der Virtual-Reality-Umgebung 40 des Prozesseditors. Beim Verknüpfen zweier Objekte 44 erfolgt automatisch eine Einblendung eines Übergangskataloges 52 mit Funktionen und Übergangsbedingungen für einen Übergang zwischen zwei verknüpften Objekten 44. Dabei kann es sich z.B. um Bedingungen handeln, die zu einem zunächst noch unbekannten Zeitpunkt eintreten werden. In der Figur sind dies die Einträge „TOUCH“, „GRAB“ und „PUT“. Der zugehörige Prozessschritt wird dabei erst dann ausgeführt, wenn die Bedingung erfüllt ist, z.B. ein Objekt abgelegt oder aufgenommen wurde oder ein Schalter betätigt wurde. Ebenso kann es sich um Funktionen handeln, die automatisch ausgeführt werden, wenn der Prozess diesen Prozessschritt erreicht. In der Figur sind dies die Einträge „{MOVE}“ und „{MOVECOND}“. Wie zuvor wählt der Nutzer mittels des Virtual-Reality-Controllers 41 einen Eintrag aus dem Übergangskatalog 52 aus, der dem Prozessschritt zugeordnet werden soll.
-
13 illustriert beispielhaft einen Ausschnitt eines Prozesses mit einer komplexen parallelen Struktur in der Virtual-Reality-Umgebung 40 des Prozesseditors. Wie anhand der Prozesspfeile 51 gut zu sehen ist sind In diesem Prozess einzelne Objekte 44 mit mehreren anderen Objekten 44 verknüpft. Auf diese Weise lassen sich beliebig komplexe parallele Strukturen realisieren. Innerhalb der Virtual-Reality-Umgebung 40 ist dabei ein sofortiger Test nebst Validierung der Struktur möglich.
-
14 zeigt ein beispielhaftes Szenario, das mit dem Prozesseditor umgesetzt werden kann. Gefordert ist ein Szenario, in dem der Anwender ein Paket aus einem Regal entnehmen soll, es dann auf einem Förderband abstellt und die Ablage mit einem Scanner quittiert. Daraufhin transportiert das Förderband das Paket an eine Arbeitsstation. Dies kann der Anwender an zwei Förderbändern gleichzeitig machen. Dementsprechend werden eine Reihe von Objekten benötigt, ein erstes und ein zweites Regal, ein erstes und ein zweites Förderband sowie eine erste und eine zweite Arbeitsstation. Für jedes Regal ist ein zugehöriges Paket erforderlich, für jedes Förderband eine Ablage für das Paket. Für den Scanvorgang benötigt jedes der Pakete einen Barcode. Da beide Förderbänder von einem Anwender bedient werden, wird nur ein einzelner Scanner genutzt.
-
15 zeigt den Prozessablauf für das Szenario aus 14. Bei den dort abgebildeten Repräsentanten handelt es sich um visuelle Kopien der Objekte, wie weiter unten anhand von 16 erläutert werden wird. Zu jedem der Förderbänder wird ausgehend vom Start eine eigene Prozesskette gebildet. Sind die Verknüpfungen hergestellt, ist das Szenario fertig und kann getestet werden. In der Prozesskette sind die Repräsentanten der Objekte durch Prozessschritte miteinander verknüpft. Den Prozessschritten sind entsprechende Übergangsbedingungen und Funktionen zugewiesen. Die Prozesskette beginnt mit dem Greifen des Paketes und dem nachfolgenden Ablegen des Paketes auf der Ablage des Förderbandes. Mittels des Scanners erfolgt ein Scannen des Barcodes. Mit Beendigung des Scanvorgangs wird das Paket vom Förderband zur Arbeitsstation transportiert.
-
16 erläutert die Verwendung von Repräsentanten von Objekten. Im Objekteditor werden die drei Objekte „Objekt A“, „Objekt B“ und „Objekt C“ in die Virtual-Reality-Umgebung 40 eingebunden. Da jedes Objekt prinzipiell beliebig oft in einem Prozess vorkommen kann, werden im Prozesseditor teilweise mehrere visuelle Kopien bzw. Repräsentanten dieser Objekte erzeugt, was durch die Linienverbindungen zwischen den Objekten im Objekteditor und den Repräsentanten im Prozesseditor angedeutet ist. Von „Objekt A“ werden konkret die beiden Repräsentanten „A(1)“ und „A(2)“ erzeugt, von „Objekt C“ die drei Repräsentanten „C(1)“, „C(2)“ und „C(3)“. Lediglich im Falle von „Objekt B“ bleibt es bei einem einzigen Repräsentanten „B(1)“. Ein Beispiel für die Verwendung von Repräsentanten sind die Scanner auf dem Tisch in 4.
-
17 illustriert die Überprüfung von Bedingungen für mehrere Repräsentanten eines Objektes. In dem Virtual-Reality-Szenario gibt es das eigentliche Objekt nur einmal. Ihm sind dennoch alle Repräsentanten im Prozessablauf bekannt. Wird mit „Objekt C“ eine Aktion oder ein Ereignis ausgeführt, informiert dieses alle seine im Prozess aktiven Repräsentanten. Dort wird dann geprüft, ob das gewünschte Ereignis eingetreten ist. Wenn ja, dann geht der Prozess weiter. Dies ist in 17 nur beim Repräsentanten „C(2)“ der Fall. Welche Repräsentanten bei Auftreten eines Ereignisses aktiv sind, hängt davon ab, in welchem Prozessschritt sich der Anwender gerade befindet.
-
Bezugszeichenliste
-
- 1
- Bereitstellen einer Virtual-Reality-Umgebung
- 2
- Bereitstellen eines Objektkataloges
- 3
- Erfassen einer Nutzereingabe zur Auswahl eines Objektes
- 4
- Erfassen einer Nutzereingabe zur Positionierung des Objektes
- 5
- Erfassen einer Nutzereingabe zu einem Zielort eines Objektes
- 6
- Bereitstellen eines Funktionskataloges
- 7
- Erfassen einer Nutzereingabe zur Auswahl einer Funktion
- 8
- Erfassen von Nutzereingaben zum Verknüpfen von Objekten
- 9
- Bereitstellen eines Übergangskataloges
- 10
- Erfassen einer Nutzereingabe zur Auswahl eines Übergangs
- 11
- Generieren eines Quellcodes für die Virtual-Reality-Anwendung
- 20
- Vorrichtung
- 21
- Schnittstelle
- 22
- Grafikgenerator
- 23
- Datenbank
- 24
- Steuerungsmodul
- 25
- Codegenerator
- 26
- Kontrolleinheit
- 27
- Speicher
- 28
- Benutzerschnittstelle
- 29
- Ausgang
- 30
- Vorrichtung
- 31
- Speicher
- 32
- Prozessor
- 33
- Eingang
- 34
- Ausgang
- 40
- Virtual-Reality-Umgebung
- 41
- Virtual-Reality-Controller
- 42
- Pointer
- 43
- Objektkatalog
- 44
- Objekt
- 45
- Textfeld
- 46
- Virtuelle Tastatur
- 47
- Geisterbild
- 48
- Zielort
- 49
- Funktionskatalog
- 50
- Startobjekt
- 51
- Prozesspfeil
- 52
- Übergangskatalog
-
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
-
- DE 19832974 A1 [0003]
- DE 19900884 A1 [0004]