DE102016116582A1 - Method and apparatus for displaying augmented reality - Google Patents
Method and apparatus for displaying augmented reality Download PDFInfo
- Publication number
- DE102016116582A1 DE102016116582A1 DE102016116582.4A DE102016116582A DE102016116582A1 DE 102016116582 A1 DE102016116582 A1 DE 102016116582A1 DE 102016116582 A DE102016116582 A DE 102016116582A DE 102016116582 A1 DE102016116582 A1 DE 102016116582A1
- Authority
- DE
- Germany
- Prior art keywords
- virtual
- target
- scene
- information
- image
- 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.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/006—Mixed reality
Abstract
Bereitgestellt wird demnach ein Computer-implementiertes Verfahren zum Darstellen von erweiterter Realität auf der Basis von Bildern einer realen dreidimensionalen Szene, wobei, durch ein erstes AR-Gerät, auf der Basis eines Bildes ein Ausschnitt des Bildes als ein Target definiert wird und von dem Ausschnitt des Bildes Informationen abgeleitet werden, welche für das Target beschreibend sind, und wobei zumindest ein virtuelles dreidimensionales Container-Objekt initialisiert und mit einer Lageangabe versehen wird, wobei die Lageangabe eine geometrische Relation zu dem Target aufweist und wobei die für das Target beschreibende Informationen, eine Informationen, die für das zumindest eine virtuelle Container-Objekt bezeichnend sind, und die Lageangabe zur AR-mäßigen Anzeige des Container-Objektes durch das erste AR-Gerät bereitgestellt wird und, über eine Kommunikationsverbindung, zur AR-mäßigen Anzeige des Container-Objektes für zumindest ein zweites AR-Gerät bereitgestellt wird.Thus, there is provided a computer-implemented method of presenting augmented reality based on images of a real three-dimensional scene, wherein, by a first AR device, based on an image, a section of the image is defined as a target and of the section deriving information that is descriptive of the target, and wherein at least one virtual three-dimensional container object is initialized and provided with a position indication, wherein the position statement has a geometric relation to the target and wherein the information describing the target, a Information indicative of the at least one virtual container object and the location indication for the AR-like display of the container object is provided by the first AR device and, via a communication link, for the AR display of the container object for provided at least a second AR device becomes.
Description
Die Technik der erweiterten Realität ("Augmented Reality") gibt einem Nutzer die technische Möglichkeit, auf einem Anzeigegerät (Smartphone, Tablet, ...) virtuelle Objekte in reale Bilder einzublenden, so dass in der visuellen Vorstellung des Betrachters ein gemischtes Bild von virtuellen und realen Elementen, virtuelle oder AR-Szene genannt, entsteht. Man kann auch sagen, dass die virtuellen Objekte wie eine Art Hologramm wirken, die nur durch ein bestimmtes "Fenster" (in diesem Fall das Display z.B. eines Smartphones) betrachtet werden können. Aus dem Stand der Technik sind ähnliche bzw. verwandte Anwendungen bereits bekannt und es gibt bereits verschiedene Ansätze. Meist wird dafür ein bereits zuvor im realen Bild definiertes Target verwendet, das besonders gut maschinell erkennbare visuelle Merkmale enthält (z.B. ein QR-Code). Auf diesem Target werden dann virtuelle Objekte "platziert". Das Target dient also als Anhaltspunkt für die virtuellen Objekte innerhalb der virtuellen Szene.The Augmented Reality technique gives a user the technical possibility of displaying virtual objects in real images on a display device (smartphone, tablet, ...) so that a mixed image of virtual reality can be seen in the visual perception of the viewer and real elements, called virtual or AR scene arises. It can also be said that the virtual objects act as a kind of hologram, which can only be viewed through a specific "window" (in this case the display of, for example, a smartphone). From the prior art similar or related applications are already known and there are already various approaches. In most cases, a target previously defined in the real image is used for this, which contains particularly well machine-recognizable visual features (for example a QR code). Virtual objects are then "placed" on this target. The target thus serves as a reference point for the virtual objects within the virtual scene.
Außerdem gibt es bereits die Möglichkeit, den Nutzer ein eigenes Target je nach aktueller Umgebung definieren zu lassen. Dafür macht er ein Foto von einem physisch existierenden Objekt, das er als Target nutzen möchte, und nimmt das Target dann direkt als Fixpunkt für seine virtuellen Objekte. Je nach verwendetem Framework wird diese Technik als “User-Defined-Target” (UDT) oder auch “Target On The Fly” bezeichnet. Dieser Ansatz wird in der vorliegenden Erfindung aufgegriffen. In addition, there is already the possibility to let the user define his own target according to the current environment. He takes a photo of a physically existing object that he wants to use as a target and then takes the target directly as a fixed point for his virtual objects. Depending on the framework used, this technique is referred to as a "user defined target" (UDT) or "target on the fly". This approach is taken up in the present invention.
Die virtuellen Objekte sind in bekannten Anwendungen meistens irgendwelche statischen Objekte, die die Umwelt erweitern, z.B. für ergänzende Informationen oder Veranschaulichungen.The virtual objects in known applications are mostly any static objects that enhance the environment, e.g. for additional information or illustrations.
Als Multi-User- bzw. Multiplayer-AR-Anwendungen gibt es Spiele wie z.B. Schnitzeljagden (z.B. "Pokémon Go") durch Städte, bei denen die Spielteilnehmer bestimmte Orte finden müssen, diese mit der Kamera des Smartphones fokussieren und dann z.B. Schätze in Form virtueller Objekte angezeigt bekommen. Oftmals werden die virtuellen Objekte dafür einfach nur über das aktuelle Kamerabild gelegt, sobald der Spieler einen bestimmten geographischen Standort erreicht hat. As multi-user or multiplayer AR applications, there are games like e.g. Scavenger hunts (e.g., "Pokémon Go") through cities where game participants must find certain locations, focus them with the camera of the smartphone and then, e.g. Treasures get displayed in the form of virtual objects. Often the virtual objects are simply placed over the current camera image as soon as the player has reached a certain geographic location.
Anstatt eines Smartphones kann auch jedes weitere Gerät genutzt werden, das ein Display, eine Kamera und eine Datenkommunikationsschnittstelle besitzt (z.B. Tablets oder Wearables wie z.B. die "Google Glass"-Brille oder das Project Tango). Im Folgenden werden all diese Geräte allgemein als “AR-Geräte” bezeichnet.Instead of a smartphone, any other device may be used that has a display, a camera, and a data communication interface (e.g., tablets or wearables such as the "Google Glass" goggle or the Project Tango). In the following, all these devices are commonly referred to as "AR devices".
Mit den bisherigen AR-Anwendungen können Nutzer allerdings nicht interaktiv mit auf andere Nutzer bezogenen virtuellen Objekten (Spieler-Objekt) in der AR-Szene kommunizieren bzw. interagieren. Jedem Nutzer wird nur bezogen auf seine aktuelle Position (per GPS ermittelt) ein Bild angezeigt, das von seiner Position und Perspektive aus Sinn macht.However, with previous AR applications, users can not communicate interactively with virtual user-related objects (player object) in the AR scene. Each user is only shown in relation to his current position (determined by GPS) an image that makes sense from its position and perspective.
Andere Nutzer sehen auch nur das virtuelle Objekt jeweils eingeblendet in ihr Kamerabild. Wenn sich aber z.B. das virtuelle Objekt zu einem Spieler hin dreht oder anderweitig bewegt, hat das keine direkte Auswirkung auf das, was die anderen Nutzer auf ihren AR-Devices angezeigt bekommen.Other users also see only the virtual object displayed in their camera image. However, if, for example, turning the virtual object toward a player or otherwise moving it has no direct effect on what the other users see on their AR devices.
Auch die "virtuelle Physik" ist auf jedem Gerät etwas unterschiedlich, falls z.B. virtuelles Licht (oder auch Wind o.ä.) für die virtuelle Szene genutzt wird.Also, the "virtual physics" is slightly different on each device, if e.g. virtual light (or wind or similar) is used for the virtual scene.
Auch werden dort nicht die aktuellen Umweltbedingungen (wie Tageszeit, Wetter, ...) und Lichtverhältnisse beachtet.Also, the current environmental conditions (such as time of day, weather, ...) and lighting conditions are not considered there.
Es ist insgesamt gesehen also nicht möglich, die Elemente in der erweiterten Realität durch einen Nutzer auf seinem AR-Gerät so zu beeinflussen, dass auch andere Nutzer sie direkt (in Echtzeit) auf ihren AR-Geräten sehen können. Thus, on the whole, it is not possible to influence the elements in augmented reality by a user on their AR device so that other users can see them directly (in real time) on their AR devices.
Aufgabe ist es also, Verfahren und Vorrichtungen bereitzustellen, welche diese Nachteile zumindest teilweise beheben.The object is thus to provide methods and devices which at least partially overcome these disadvantages.
Diese Aufgabe wird durch das Verfahren und die Vorrichtung gemäß den unabhängigen Ansprüchen gelöst. Vorteilhafte Weiterbildungen sind in den abhängigen Ansprüchen definiert.This object is achieved by the method and apparatus according to the independent claims. Advantageous developments are defined in the dependent claims.
Bereitgestellt wird demnach ein Computer-implementiertes Verfahren zum Darstellen von erweiterter Realität auf der Basis von Bildern einer realen dreidimensionalen Szene, wobei, durch ein erstes AR-Gerät, auf der Basis eines Bildes ein Ausschnitt des Bildes als ein Target definiert wird und von dem Ausschnitt des Bildes Informationen abgeleitet werden, welche für das Target beschreibend sind, und wobei zumindest ein virtuelles dreidimensionales Container-Objekt initialisiert und mit einer Lageangabe versehen wird, wobei die Lageangabe eine geometrische Relation zu dem Target aufweist und wobei die für das Target beschreibende Informationen, eine Informationen, die für das zumindest eine virtuelle Container-Objekt bezeichnend sind, und die Lageangabe zur AR-mäßigen Anzeige des Container-Objektes durch das erste AR-Gerät bereitgestellt wird und, über eine Kommunikationsverbindung, zur AR-mäßigen Anzeige des Container-Objektes für zumindest ein zweites AR-Gerät bereitgestellt wird. Accordingly, what is provided is a computer-implemented method for presenting augmented reality based on images of a real three-dimensional scene, wherein, defined by a first AR device, on the basis of an image, a section of the image as a target and derived from the section of the image information that is descriptive of the target, and wherein at least one virtual three-dimensional Container object is initialized and provided with a location specification, wherein the location statement has a geometric relation to the target and wherein the information describing the target, information indicative of the at least one virtual container object, and the location indication to the AR The container device is provided by the first AR device and is provided, via a communication link, for the AR display of the container object for at least one second AR device.
Ebenfalls bereitgestellt wird ein Computer-implementiertes Verfahren zum Darstellen von erweiterter Realität auf der Basis von Bildern einer realen dreidimensionalen Szene, wobei, durch ein zweites AR-Gerat, Informationen, welche für ein Target beschreibend sind, und Informationen, die für zumindest ein mit einer Lageangabe versehenes virtuelles Container-Objekt bezeichnend sind, wobei die Lageangabe eine geometrische Relation zu dem Target aufweist, über eine Kommunikationsverbindung von einem ersten AR-Gerät kommend empfangen werden und auf der Basis der empfangenen Informationen das Target in Bildern, aufgenommen durch das zweite AR-Gerät, fokussiert wird und das virtuelle Container-Objekt entsprechend der Relation AR-mäßig angezeigt wird. Vorteilhafte Weiterbildungen der Erfindung können folgende Merkmale umfassen.Also provided is a computer-implemented method of presenting augmented reality based on images of a real three-dimensional scene, wherein, by a second AR-device, information that is descriptive of a target, and information that is suitable for at least one The position statement has a geometric relation to the target, is received via a communication connection coming from a first AR device and, based on the received information, the target in images, recorded by the second AR. Device, is focused and the virtual container object according to the relation AR-moderately displayed. Advantageous developments of the invention may include the following features.
Durch ein AR-Gerät kann zumindest ein virtuelles dreidimensionales Nutzer-Objekt initialisiert werden und mit einer Lageangabe versehen werden, wobei die Lageangabe eine geometrische Relation zu der Lageangabe des Container-Objekts aufweist, wobei das zumindest eine dreidimensionale Nutzer-Objekt durch das AR-Gerät gesteuert wird und Informationen, die für das zumindest eine virtuelle Nutzer-Objekt bezeichnend sind, und die Lageangabe zur AR-mäßigen Anzeige durch das AR-Gerät bereitgestellt wird und zur Anzeige des Nutzer-Objektes für zumindest ein weiteres AR-Gerät bereitgestellt werden.By means of an AR device, at least one virtual three-dimensional user object can be initialized and provided with a position specification, the position specification having a geometric relation to the position specification of the container object, wherein the at least one three-dimensional user object is detected by the AR device is controlled and information indicative of the at least one virtual user object, and the location indication for AR-moderate display is provided by the AR device and provided for displaying the user object for at least one further AR device.
Vorteilhaft ist, wenn die Bereitstellung in Echtzeit erfolgt. It is advantageous if the provision is made in real time.
Vorteilhaft ist ferner, wenn das Container-Objekt mit einer Wurzel-Eigenschaft einer vorbestimmten hierarchischen Relation versehen wird und zumindest ein virtuelles Objekt mit der vorbestimmten hierarchischen Relation zu einem weiteren virtuellen Objekt versehen wird, wobei die Wurzel auf höchster Hierarchieebene angeordnet ist, derart, dass die mit einer hierarchischen Relation versehenen virtuellen Objekte zusammen mit dem Wurzel-Objekt eine hierarchische Baumstruktur repräsentieren.It is also advantageous if the container object is provided with a root property of a predetermined hierarchical relation and at least one virtual object is provided with the predetermined hierarchical relation to another virtual object, wherein the root is arranged at the highest hierarchical level such that the virtual objects provided with a hierarchical relation together with the root object represent a hierarchical tree structure.
Die vorbestimmte hierarchische Relation kann "ist untergeordnet" umfassen.The predetermined hierarchical relation may include "is subordinate".
Jede Lageangabe kann zumindest eines von Ortsangabe, Orientierung und Skalierung des Objekts in der Szene umfassen, besonders vorteilhafterweise alle drei.Each location indication may include at least one of location, orientation, and scale of the object in the scene, most preferably all three.
Das dreidimensionale Objekt kann eine Beschreibung zur Darstellung des Gegenstandes durch ein AR-Gerät enthalten.The three-dimensional object may include a description for representing the article by an AR device.
Die AR-Darstellung kann durch optische Überlagerung der mittels einer virtuellen Kamerafunktion dargestellten virtuellen Objekte und dem mittels einer realen Kamerafunktion erfassten Bild der Szene gewonnen werden, wobei die virtuelle Kamerafunktion der realen Kamerafunktion hinsichtlich Brennweite und Perspektive gleicht.The AR representation can be obtained by optical superimposition of the virtual objects represented by a virtual camera function and the image of the scene acquired by means of a real camera function, the virtual camera function being similar to the real camera function in terms of focal length and perspective.
Vorteilhaft ist ferner, wenn, durch ein zweites AR-Gerät, das Target auf Basis der bereitgestellten Target-Informationen in einem Bild identifiziert und mit der realen Kamerafunktion fokussiert wird.It is also advantageous if, by means of a second AR device, the target is identified on the basis of the provided target information in an image and focused with the real camera function.
Jedes virtuelle Objekt in der Szene kann (in der AR-Szene) durch Änderung der Lageangabe mittels eines AR-Gerätes bewegt werden.Each virtual object in the scene can be moved (in the AR scene) by changing the position indication by means of an AR device.
Vorteilhafterweise kann nicht nur die Bewegung sondern auch jede andere Interaktion (z.B. Farbänderung eines Objekts) mittels des AR-Gerätes bewirkt werden.Advantageously, not only the movement but also any other interaction (e.g., color change of an object) may be effected by the AR device.
Hierbei kann sowohl das Nutzer-bezogene Objekt als auch das gemeinsam genutzte Objekt gesteuert werden.In this case, both the user-related object and the shared object can be controlled.
Besonders vorteilhaft ist, dass bei einer Bewegung eines virtuellen Objektes jedes Objekt mitbewegt wird, das in der hierarchischen Struktur von der Wurzel aus betrachtet hinter/unter dem bewegten Objekt angeordnet ist.It is particularly advantageous that during a movement of a virtual object each object is moved, which is arranged in the hierarchical structure from the root behind / below the moving object.
Vorteilhaft ist, wenn, durch das erste AR-Gerät, ein erster Server initialisiert wird, der definiert, für wie viele AR-Geräte die Szene abrufbar bereitgehalten wird, Netzwerk-Information sowie Informationen bereitstellt, welche beschreibend für ein Spiel sind, für das die Objekte bereitgestellt werden. It is advantageous if, by the first AR device, a first server is initialized which defines for how many AR devices the scene is retrievably kept available, provides network information as well as information which is descriptive of a game for which the Objects are provided.
Der erste Server kann Informationen zum Synchronisieren der Positionen und/oder weiterer Anwendungs-relevanter Informationen aller Objekte der Szene zum, Abruf durch zumindest ein AR-Gerät bereitstellen.The first server may provide information for synchronizing the locations and / or other application-relevant information of all objects of the scene for retrieval by at least one AR device.
Vorteilhaft ist auch, dass durch das erste AR-Gerät ein zweiter Server initialisiert wird, der die für das Target beschreibende Informationen, die Information, die für das zumindest eine virtuelle Container-Objekt bezeichnend ist, und die Lageangabe zur AR-mäßigen Anzeige des Container-Objektes für zumindest ein AR-Gerät zum Abruf durch zumindest ein AR-Gerät bereitstellt. Vorteilhafterweise kann der zweite Server auf dem ersten AR-Gerät laufen.It is also advantageous that a second server is initialized by the first AR device, which describes the information describing the target, the information that is indicative of the at least one virtual container object, and the position indication for the AR-moderate display of the container Object for at least one AR device for retrieval by at least one AR device. Advantageously, the second server can run on the first AR device.
Vorteilhaft ist, wenn Lageunterschiede und/oder Änderungen weiterer Spiel- bzw. Anwendungs-relevanter Informationen in Echtzeit bereitgestellt werden.It is advantageous if positional differences and / or changes of further game or application-relevant information are provided in real time.
Vorteilhaft ist auch, wenn, durch das zumindest eine weitere AR-Gerät, zunächst Broadcast-Daten empfangen werden, welche Informationen enthalten, um das erste AR-Gerät im Netzwerk zu finden, und um das AR-Gerät mit den Servern zu verbinden.It is also advantageous if, by the at least one further AR device, first broadcast data are received, which contain information to find the first AR device in the network, and to connect the AR device with the servers.
Vorteilhaft ist ferner, wenn durch das erste AR-Gerät ein dritter Server initialisiert wird, der Broadcastdaten aussendet. It is also advantageous if a third server, which broadcasts broadcast data, is initialized by the first AR device.
Wenn die Server auf einem und demselben AR-Gerät (also z.B. auf dem ersten Gerät), können sie gemeinsam während eines Spieles/während des Betriebs auf ein weiteres AR-Gerät im Netzwerk übertragen werden, sollte das eine Gerät ausfallen oder der Nutzer aus dem Spiel ausscheiden wollen. If the servers on one and the same AR device (eg on the first device), they can be transferred together during a game / during operation on another AR device on the network, the one device should fail or the user from the Want to retire.
Vorteilhaft ist, wenn durch das zumindest eine weitere AR-Gerät, die Target-Informationen abgerufen werden und basierend hierauf das Target-Objekt angezeigt wird.It is advantageous if the target information is retrieved by the at least one further AR device and the target object is displayed based thereon.
Vorteilhaft ist ferner, wenn ein Container erstellt, Spiele-Objekte erzeugt, weitere Objekte lokal erzeugt und in der lokalen Szene angezeigt werden und mit dem Server synchronisiert werden.It is also advantageous if a container is created, game objects are generated, further objects are generated locally and displayed in the local scene and synchronized with the server.
Bei einer besonders vorteilhaften Ausführungsform ist vorgesehen, dass, wenn das Target im Bild optisch aus dem Fokus eines AR-Gerätes gerät, zwecks Unsichtbarmachung des dem AR-Gerät zugeordneten Spielerobjekts dieses Spielerobjekt durch das AR-Gerät eine Lageangabe zugewiesen erhält, welche einer für alle übrigen AR-Geräte unsichtbaren Position in der Szene entspricht.In a particularly advantageous embodiment it is provided that, if the target in the image optically out of focus of an AR device, for the purpose of invisible the player assigned to the AR device player object this player object assigned by the AR device assigned a location indication, which one for all remaining AR devices corresponds to invisible position in the scene.
Ebenfalls vorgesehen ist, dass, wenn das Target im Bild optisch aus dem Fokus eines AR-Gerätes gerät, auf dem AR-Gerät das Container-Objekt eine Lageangabe zugewiesen erhält, die einer für das AR-Gerät unsichtbaren Position in der Szene entspricht.It is also provided that when the target in the image optically out of focus of an AR device, the container object receives a position indication assigned on the AR device, which corresponds to an invisible to the AR device position in the scene.
Vorteilhaft ist auch, wenn, insbesondere während des Aufzeichnens des Bildes, das Target mittels einer Lichtquelle aufgehellt wird.It is also advantageous if, in particular during the recording of the image, the target is brightened by means of a light source.
Die Erfindung umfasst auch ein Programm, insbesondere App, das, wenn von einer elektronischen Verarbeitungseinrichtung ausgeführt, die elektronische Verarbeitungseinrichtung so steuert, dass sie das Verfahren gemäß der Erfindung wie oben beschrieben ausführt.The invention also includes a program, in particular an app, which, when executed by an electronic processing device, controls the electronic processing device to carry out the method according to the invention as described above.
Ebenfalls umfasst ist ein Datenträger oder Signal, welche Anweisungen enthalten, die, wenn in eine elektronische Verarbeitungseinrichtung geladen, die Verarbeitungseinrichtung so steuern, dass sie das Verfahren gemäß der Erfindung wie oben beschrieben ausführt.Also included is a data carrier or signal containing instructions that, when loaded into an electronic processing device, control the processing device to execute the method according to the invention as described above.
Die Erfindung umfasst auch ein AR-Gerät, insbesondere Smartphone oder Tablet-Computer, Wearable Device, welches programmiert ist, das Verfahren gemäß der Erfindung wie oben beschrieben auszuführen.The invention also includes an AR device, in particular a smartphone or tablet computer, wearable device, which is programmed to carry out the method according to the invention as described above.
Die Kommunikationsverbindung zwischen den AR-Geräten kann kabelgebunden oder drahtlos, insbesondere via Infrastruktur-WLAN, AdHoc-WLAN des ersten AR-Geräts oder eines zweiten AR-Geräts, Bluetooth, Mobilfunk abgewickelt werden. The communication connection between the AR devices can be wired or wireless, in particular via infrastructure WLAN, AdHoc WLAN of the first AR device or a second AR device, Bluetooth, mobile, are handled.
Die Informationen und Daten können als Datensätze z.B. in XML, JSON, Bytes zwischen den Geräten kommuniziert werden.The information and data may be used as records e.g. in XML, JSON, bytes are communicated between devices.
Auch die Interaktion bzw. Steuerung des gemeinsam genutzten Container-Objekts durch mehrere AR-Geräte ist möglich.The interaction or control of the shared container object by several AR devices is also possible.
Bewegungen des Targets in der realen Welt können auch auf allen Geräten in Echtzeit durch die Bewegung des dem Target zugeordneten Containers wahrgenommen werden. Movement of the target in the real world can also be detected on all devices in real time by the movement of the container associated with the target.
Die vorliegende Erfindung ermöglicht es also, ein Target in der Augmented Reality zeitgleich aus mehreren verschiedenen Perspektiven auf verschiedenen AR-Geräten zu nutzen. Zu nutzen bedeutet, das Target in einer AR-Szene durch das jeweilige AR-Gerät anzeigen lassen, betrachten und zusätzlich auch noch mit diesem Objekt und ggf. weiteren virtuellen Objekten in der AR-Szene mittels virtueller Objekte interagieren zu können. Es versteht sich hierbei von selbst, dass die verschiedenen AR-Geräte aus voneinander verschiedenen Positionen und Perspektiven die AR-Szene anzeigen bzw. darstellen. Diese Positionen und Perspektiven entsprechen den Positionen und Perspektiven der den jeweiligen AR-Geräten zugeordneten Nutzer.The present invention thus makes it possible to use a target in augmented reality at the same time from several different perspectives on different AR devices. To use means to have the target displayed in an AR scene by the respective AR device, to be able to view and also additionally to be able to interact with this object and possibly other virtual objects in the AR scene by means of virtual objects. It goes without saying that the various AR devices display or display the AR scene from different positions and perspectives. These positions and perspectives correspond to the positions and perspectives of the users associated with the respective AR devices.
Dazu wird erfindungsgemäß von einem ersten Nutzer, mittels seines AR-Geräts, eine virtuelle Szene aufgebaut, welche die übrigen Nutzer (zweite Nutzer genannt), z.B. mit Techniken der Multiplayer-Programmierung (z.B. Server-Client-Ansatz), nutzen können. Diese virtuelle Szene enthält ein “Wurzel-Objekt”, in dem weitere virtuelle Objekte als “Child-Elemente” platziert werden. Dieses Wurzel-Objekt wird im Folgenden auch (virtuelles) "Container-Objekt" genannt. Die virtuelle Szene wird von einem AR-Gerät auf ein vom ersten Nutzer definiertes Target abgebildet und befindet sich dann sozusagen in der realen Szene, also “in” der (“echten”) Realität. Dieses Produkt wird hier als eine AR- oder virtuelle Szene bezeichnet. Außerdem initialisiert der erste Nutzer einen oder mehrere Server, mit denen sich weitere Nutzer verbinden können, um in der AR-Szene zu interagieren.For this purpose, according to the invention, a virtual user is set up by a first user, by means of his AR device, to identify the remaining users (called second users), e.g. with techniques of multiplayer programming (e.g., server-client approach). This virtual scene contains a "root object" in which further virtual objects are placed as "child elements". This root object is also called (virtual) "container object" in the following. The virtual scene is imaged by an AR device onto a target defined by the first user and is then, as it were, in the real scene, ie "in" the ("real") reality. This product is referred to herein as an AR or virtual scene. In addition, the first user initializes one or more servers to which additional users can connect to interact in the AR scene.
Wenn sich ein zweiter Nutzer mit dem Server des ersten Nutzers verbindet, bekommt er von dem Server die Informationen zum aktuellen Target auf sein AR-Gerät übertragen und kann sich so, ohne weiteres Zutun seinerseits, in die (bereits existierende) AR-Szene “einklinken” und mit dem ersten Nutzer oder den weiteren Nutzern in der AR-Szene interagieren.When a second user connects to the server of the first user, he gets transferred from the server, the information on the current target on his AR device and can thus, without further action on his part, in the (already existing) AR scene "latch "And with the first Users or other users in the AR scene.
Dieser Ansatz ist prinzipiell für beliebig viele Nutzer erweiterbar.This approach is in principle expandable for any number of users.
Die vorliegende Erfindung ist also eine Technik, wie man im Bereich der erweiterten Realität ein vom Nutzer selbst definiertes und real physikalisch existierendes Objekt (im Folgenden “Target” genannt) als gemeinsamen Ursprung oder Bezugspunkt für Mehrfach-Nutzer-Anwendungen nutzen kann, wenn sich alle Nutzer mit ihren AR-Geräten, physisch gesehen, am selben Ort befinden. Zusätzlich kann jeder Nutzer (virtuelle) Objekte direkt steuern bzw. mit ihnen interagieren oder sie manipulieren, und diese Manipulationen und Interaktionen können in Echtzeit auf allen beteiligten AR-Geräten aus den jeweiligen unterschiedlichen Perspektiven wahrgenommen werden. Des Weiteren kann der Nutzer nicht nur das virtuelle Objekt kontrollieren, sondern auch das physische. Thus, the present invention is a technique of using, in the realm of augmented reality, a user-defined and physically existing object (hereafter referred to as "target") as the common origin or reference point for multiple-user applications, if all Users are physically in the same location with their AR devices. In addition, each user can directly control, interact, or manipulate (virtual) objects, and these manipulations and interactions can be perceived in real time on all participating AR devices from different perspectives. Furthermore, the user can control not only the virtual object but also the physical one.
Wenn er das Target z.B. physisch mit den Händen bewegt, ist diese (reale) Bewegung auch auf den anderen AR-Geräten sichtbar.If he has the target e.g. physically moved with the hands, this (real) movement is also visible on the other AR devices.
Im Gegensatz zu anderen Lösungen ist man völlig frei von fest vorgegebenen Targets, und die Lösung lässt sich vollkommen mobil, und zwar auch ohne Kommunikationsinfrastruktur, nutzen. Benötigt wird lediglich ein Gegenstand in der echten Welt (als Target) und die App, in der das erfindungsgemäße Verfahren implementiert ist, für die jeweiligen AR-Geräte. Unlike other solutions, you are completely free of fixed targets, and the solution can be used completely mobile, even without a communication infrastructure. What is needed is only an object in the real world (as a target) and the app implementing the inventive method for the respective AR devices.
Die Erfindung wird anhand von Ausführungsbeispielen und der Zeichnung näher beschrieben. In der Zeichnung zeigt The invention will be described in more detail with reference to embodiments and the drawing. In the drawing shows
Die in der
Im ersten Schritt wird, mittels der Kamerafunktion des AR-Geräts des ersten Nutzers, ein Bild eines physischen Objekts erstellt, welches als Target
Möglichkeiten für (gute) Targets
- • Buch/Zeitschrift/Prospekt
- • Geldschein/Kreditkarte
- • Handy-Display (eingeschaltet)
- • Bierdeckel/Zigarettenschachtel
- • eigene Zeichnung/Skizze
- • Book / Magazine / Brochure
- • Bank note / credit card
- • Mobile phone display (switched on)
- • Beer coaster / cigarette box
- • own drawing / sketch
Für das Erstellen des Bildes wird das (erste) AR-Gerät (z.B. Smartphone oder Tablet)
In einer im Hintergrund (vorteilhafterweise auf dem ersten AR-Gerät) laufenden Anwendung wird dieses Bild auf bestimmte besonders hervorstechende oder auffallende Merkmale untersucht (optional) und ein Datensatz berechnet. Sobald dies berechnet wurde, wird, durch das erste AR-Gerät des ersten Nutzers, ein Server initialisiert und gestartet und die virtuelle Szene, also ein Koordinatensystem dafür, auf das Target bezogen. Dieses ist ab jetzt das “Container”-Objekt
- • Ein Spielfeld (z.B. für Brettspiele oder eine virtuelle Arena/Stadion);
- • eine Autorennbahn;
- • eine Bühne;
- • ein Haus, z.B. für Architekten, ein Auto, z.B. für Autohäuser.
- • A playing field (eg for board games or a virtual arena / stadium);
- • a racecourse;
- • a stage;
- • a house, eg for architects, a car, eg for car dealerships.
Zusätzlich kann der Nutzer nun ein eigenes, von ihm kontrolliertes virtuelles Objekt
Das von ihm kontrollierte virtuelle Nutzer-Objekt kann seine Spielperson sein. Dieses virtuelle Nutzer-Objekt, wie alle weiteren virtuellen Objekte auch, wird ebenfalls mit einer Lageangabe versehen, wobei die Lageangabe eine geometrische Relation zu der Lageangabe des Container-Objektes aufweist. Das virtuelle Nutzer-Objekt wird hierdurch dem Container-Objekt untergeordnet. Die Informationen, die für das Nutzer-Objekt bezeichnend sind, sowie die Lageangabe werden ebenfalls zur AR-mäßigen Anzeige für das betreffende AR-Gerät und zumindest ein weiteres AR-Gerät bereitgestellt. The virtual user object controlled by him can be his play person. This virtual user object, like all other virtual objects also, is also provided with a position specification, the position specification having a geometric relation to the position specification of the container object. The virtual user object is thereby subordinated to the container object. The information indicative of the user object as well as the location indication are also provided for the AR-based display for the relevant AR device and at least one further AR device.
Der zweite Nutzer (der sich physisch am selben Ort befindet wie der erste Nutzer, aber nicht in derselben Position) muss jetzt nichts weiter tun, als sich über sein AR-Device
Es gibt verschiedene Möglichkeiten zur Übertragung: ein extra (paralleler) Server, Bluetooth, WLAN, usw., und auch die zu übertragenden Daten unterscheiden sich je nach benutztem AR-Framework:
- • Möglichkeit 1: Das Bild des Target selbst wird übertragen, so dass es auf dem Client auch wieder berechnet werden kann.
- • Möglichkeit 2: Das fertig berechnete bzw. analysierte Target (also ein Datensatz bzw. das Bild mit Metadaten) wird an den zweiten Spieler (Client) übertragen.
- • Option 1: The image of the target itself is transmitted so that it can be calculated again on the client.
- • Option 2: The finished calculated or analyzed target (ie a data set or the image with metadata) is transmitted to the second player (client).
Es wird also in jedem Fall ein Datensatz übertragen, der die Informationen über das Target enthält, die vom Client genutzt werden können.In any case, a record is transferred that contains the information about the target that can be used by the client.
Jeder Spieler bekommt auf sein AR-Gerät
Eine zweite Möglichkeit, mit den virtuellen Objekten
Allgemeiner gesagt, können sowohl alle Techniken, die in bisherigen AR-Anwendungen genutzt werden, hiermit so verbessert werden, dass sie auch in Multi-User-Anwendungen funktionieren. Und auf der anderen Seite können auch übliche Techniken, die in Multi-User-Anwendungen oder Multi-Player-Spielen genutzt werden, in die Augmented Reality übertragen werden und diese dadurch erweitern bzw. verbessern.More generally, all techniques used in previous AR applications can be improved to work in multi-user applications as well. And on the other hand, common techniques used in multi-user applications or multi-player games can also be augmented to augment reality.
Eine weitere optionale Funktion ist, dass ein Nutzer auf allen anderen AR-Geräten
Ein weiterer Vorteil ist, dass das Target nicht an die restliche Umgebung in der realen Szene gebunden ist. Wenn das Target z.B. ein Buch ist, das auf einem Tisch liegt, kann man das Buch anschließend frei auf dem Tisch (real) bewegen, und der darauf platzierte Container bewegt sich in der AR-Szene mit. Man kann das Buch sogar mit an einen ganz anderen Ort nehmen. Das Target an sich ist somit leicht transportierbar, nicht an einen Ort gebunden und es sind sogar mobile/bewegliche Targets, die sich also ständig bewegen, möglich. Dies funktioniert deshalb, weil die Lageangabe des Containers eine geometrische Relation zu dem Target aufweist, also auf das Target bezogen ist. Another advantage is that the target is not bound to the rest of the real scene environment. If the target is e.g. If a book is on a table, then you can move the book freely on the table (real), and the container placed on it moves in the AR scene. You can even take the book to a very different location. The target itself is thus easily transportable, not tied to a location and even mobile / mobile targets, which are thus constantly moving, are possible. This works because the position specification of the container has a geometric relation to the target, that is, related to the target.
Ein anderer Ansatz, nämlich dass die Spieler jeweils eigene, unterschiedliche Targets definieren oder sich sogar an unterschiedlichen Orten befinden, wird durch die erfindungsgemäße Technik ebenfalls unterstützt. In diesem Fall lässt man einfach jeden Client sein Target selbst erstellen, wenn er sich mit dem Spiele-Server verbindet.Another approach, namely that the players each define their own, different targets or even located in different locations, is also supported by the inventive technique. In this case, you simply let each client create their own target when connecting to the game server.
Bei schlechter Sicht, wenn es z.B. in der Szene dunkel ist oder der Nutzer Schatten wirft, kann ein Nutzer – optional – ein Licht (z.B. den Blitz der Kamerafunktion oder eine externe Lichtquelle) dynamisch einschalten und auf das Target richten, um wirklich nur das Target und nicht die Schatten zu tracken. Dieses Licht kann man sogar in der Szene/ im Spiel selbst dynamisch je nach Bedarf ein- und ausschalten. Hierzu lässt sich die Lichtquelle des AR-Geräts (z.B. des Smartphone) direkt ansprechen.In poor visibility, when e.g. When the scene is dark or the user casts shadows, a user may optionally turn on a light (e.g., the camera function flash or an external light source) dynamically and aim at the target to really only track the target, not the shadows. This light can be turned on and off dynamically, even in the scene / game itself as needed. For this purpose, the light source of the AR device (for example, the smartphone) can be addressed directly.
Die Anwendungen sind für Multiplayer konzipiert. Allerdings kann man die Anwendungen, die diese Technik nutzen, auch ohne Probleme im Singleplayer-Modus nutzen und z.B. gegen eine KI (System der Künstlichen Intelligenz) spielen.The applications are designed for multiplayer. However, you can use the applications that use this technique, even without problems in single-player mode and, for example. play against an AI (Artificial Intelligence System).
Ein weiteres optionales Merkmal der Erfindung ist, dass man vom virtuellen Objekt Sound aussenden lässt und diesen durch ein virtuelles Mikrofon (in Unity z.B. AudioListener gennant) dem exakten Punkt in der Realität nur durch Hören zuordnen lässt. Hierzu sollte ein entsprechendes Audio-Ausgabesystem am AR-Gerät angeschlossen sein, z.B. ein Surround-Kopfhörer.Another optional feature of the invention is that one can send sound from the virtual object and associate it with a virtual microphone (called in Unity, for example, AudioListener) to the exact point in reality only by listening. For this purpose, a corresponding audio output system should be connected to the AR device, e.g. a surround headphone.
Die erfindungsgemäße Technik kann z.B. als App oder mobiles Spiel entwickelt bzw. implementiert werden und ist somit plattformunabhängig auf vielen Geräten verwendbar.The technique of the invention may e.g. be developed or implemented as an app or mobile game and is thus platform-independent on many devices usable.
Im Folgenden werden einzelne Komponenten beispielshalber beschrieben.In the following, individual components are described by way of example.
Beteiligte Komponenten: (siehe auch Fig. 6)Involved components: (see also Fig. 6)
Erstes AR-Gerät (“Haupt”-Gerät)
Zweite(s) AR-Gerät(e) ("Client-Device(s)")
Verbindung: Alle AR-Geräte
Im Folgenden werden beispielhalber einige Implementierungsdetails beschrieben In the following, some implementation details are described by way of example
In der Beispiel-Implementierung sind die Spiele-Engine Unity3D und die Programmiersprache C# sowie das AR-Framework EasyAR als Basis genommen. Die Erfindung ist aber genauso gut auch mit anderen Spiele-Engines oder auch komplett ohne Engine, in allen möglichen Programmiersprachen und mit anderen AR-Frameworks (wie z.B. Vuforia, Metaio oder ARToolkit) umsetzbar.In the example implementation the game engine Unity3D and the programming language C # as well as the AR framework EasyAR are taken as basis. However, the invention can also be implemented with other game engines or completely without an engine, in all possible programming languages and with other AR frameworks (such as Vuforia, Metaio or ARToolkit).
Dazu sei angemerkt, dass diese Engines normalerweise so aufgebaut sind, dass es einen 3D-Raum (eine sogenannte "Szene") gibt, in der 3D-Elemente platziert werden. Im Speicher werden diese als (aus Informatik-Sicht) Baum mit n Kindern abgebildet. Hierbei "erben" die Kinder bestimmte Eigenschaften der Eltern. Elemente, die direkt und in beliebiger Position in der 3D-Szene positioniert werden, sind dabei die ersten Elemente eines Baumes, also die Root-Elemente (hier als „Wurzel-Elemente“ bezeichnet). Objekte, die als Kinder, und somit in einer relativen Position zu ihrem Parent-Objekt platziert werden, nennt man Child-Objekte. Jedes Objekt hat immer eine bestimmte Lage (= Transform (Position, Rotation, Scale)) im Raum. Außerdem kann es durch verschiedene sogenannte Components mit allen möglichen weiteren Informationen ausgestattet werden. Diese können in Unity z.B. in C# geschrieben werden und sind somit beliebig komplex, also von einer einzelnen Variable bis hin zu einem kompletten Computerprogramm. In der Beispiel-Implementation werden die Komponenten z.B. genutzt, um den User mit den Objekten interagieren zu lassen oder um synchrone Objekte (GameObjects) in allen Szenen zu haben. Dies wird weiter unten beschrieben werden. It should be noted that these engines are usually constructed so that there is a 3D space (a so-called "scene") in which 3D elements are placed. In the memory these are mapped as (from a computer science point of view) tree with n children. Here, the children "inherit" certain characteristics of the parents. Elements that are positioned directly and in any position in the 3D scene are the first elements of a tree, ie the root elements (referred to here as "root elements"). Objects that are placed as children, and thus in a relative position to their parent object, are called child objects. Each object always has a certain position (= transform (position, rotation, scale)) in space. In addition, it can be equipped by various so-called components with all sorts of other information. These may be in Unity e.g. are written in C # and are therefore arbitrarily complex, ie from a single variable to a complete computer program. In the example implementation, the components are e.g. used to let the user interact with the objects or to have synchronous objects (GameObjects) in all scenes. This will be described below.
Das erfindungsgemäße virtuelle Container-Objekt
Somit wird die VR-Szene sozusagen über die reale Welt "gelegt"/"gestülpt", so dass das Target in der realen Welt (solange es nicht bewegt wird) als Fixpunkt immer genau an der gleichen Stelle (also dem Container) in der virtuellen Welt liegt. Und alle Punkte/Objekte in beiden "Welten" haben jeweils die exakt gleiche relative Position zum Fixpunkt/Target wie beim Erstellen und Platzieren des Container-Objekts
Die verschiedenen Nutzer können nun durch die Multiplayer-Unterstützung von Unity miteinander interagieren. Dabei übernimmt der Server das "Management" und die Spiellogik und verwaltet die Szene und Interaktionen (wie z.B. Kollisionen) einzelner GameObjects. Der Client hat die exakt gleiche 3D-Szene auf seinem AR-Gerät und synchronisiert seine AR-Szene laufend (um die Ansicht flüssig zu halten, je nach Anwendungsfall bis zu 20–30 Mal pro Sekunde) mit der Szene des Servers. Wie das im Detail funktioniert, ist dem Fachmann bekannt und kann im Spezialfall Unity3D hier unter (
Macht man nun mit einem AR-Gerät
Für EasyAR auf einem Android-Gerät ist es zum Beispiel in den tmp-Daten im User-Context der App als jpg abgespeichert.For EasyAR on an Android device, for example, it is stored in the tmp data in the user context of the app as a jpg.
Neben diesem Spiele-Server läuft ein weiterer Server auf dem ersten AR-Gerät
Somit hat man das exakt gleiche Bild (bzw. den gleichen Datensatz) unter den gleichen Bedingungen (z.B. Lichtverhältnissen) und dadurch den exakt gleichen Fixpunkt in der realen Welt.Thus one has the exact same picture (or the same data set) under the same conditions (for example light conditions) and thereby the exact same fixed point in the real world.
Auf Basis von diesem Bild/Datensatz wird nun in der Unity-Szene ebenfalls das Container-GameObject auf dem Client erstellt und auf dem Target in der realen Welt platziert. On the basis of this image / data set, the container GameObject is now also created on the client in the Unity scene and placed on the target in the real world.
Der visuelle Eindruck der verschiedenen Perspektiven ergibt sich dadurch, dass jeder Spieler (Nutzer) seine (virtuelle) Kamerafunktion, durch die er die virtuelle (und die erweiterte) Realität sieht, so bewegt, wie er die (reale) Kamera seines AR-Geräts in Relation zum Target bewegt. Da jeder Spieler nun auf seinem AR-Gerät
Die Beispiel-Implementierung hat einen extra Broadcast-Server, damit sich die Spieler auch finden können (bzw. die Clients ein offenes Spiel finden). Auch dieser ist in C# programmiert (als angepasste Version der NetworkDiscovery-Klasse aus der Unity-API) und wird gestartet, sobald ein Spiel offen ist.The example implementation has an extra broadcast server so players can find each other (or the clients find an open game). Again, this is programmed in C # (as a customized version of the NetworkDiscovery class from the Unity API) and will be launched as soon as a game is open.
Die folgenden funktionalen Schritte sind zusätzlich zum hier beschreibenden Text auch im Ablaufdiagramm der
Auf dem ersten AR-Gerät (zugleich Server-Gerät)
Target auswählen: Select target:
Der Nutzer startet die in die App integrierte Funktion, um ein Bild zu erstellen. Auf dieser ist ein Ausschnitt markiert, auf dem später der Container platziert werden soll. Er hält nun die Kamera parallel zum Target, schaut, dass der Bereich, auf dem der Container platziert sein soll, möglichst im markierten Bereich ist und wartet, bis die Kamera diesen Punkt fokussiert hat. Dies wird üblicherweise Software-seitig durch alle Kameras gemacht. Sobald die Kamera diesen Punkt fokussiert hat, kann der Nutzer auf einen Auslöse-Button klicken und das Bild wird erstellt.The user launches the built into the app function to create an image. On this a section is marked on which the container is to be placed later. He now holds the camera parallel to the target, sees that the area on which the container should be placed is as far as possible in the marked area and waits until the camera has focused this point. This is usually done on the software side by all cameras. Once the camera has focused on this point, the user can click on a trigger button and the image is created.
Eine optionale Zusatzfunktion ist das Zuschalten einer Lichtquelle. Sollte der Nutzer in der realen Szene einen Schatten werfen, der das Target verdeckt, kann er hier direkt das in die AR-Gerät-Kamera integrierte Blitzlicht als "Taschenlampe" zuschalten. Dies ist nicht immer günstig aus AR-Aspekten, da dann die Lichtverhältnisse verändert werden. Es ist aber im praktischen Einsatz oftmals sinnvoll, dann sollte das Licht aber auch während des ganzen Spiels angeschaltet bleiben. An optional additional feature is the activation of a light source. If the user in the real scene cast a shadow that obscures the target, he can directly connect the integrated into the AR device camera flash as a "flashlight". This is not always favorable from AR aspects, because then the lighting conditions are changed. However, it is often useful in practical use, but then the light should remain switched on throughout the game.
Bild erstellen: Nun wird ein Foto erstellt und in ein bestimmtes Bild-Format konvertiert (hier jpg) und im Speicher abgelegt.Create image: Now a photo is created and converted into a certain image format (here jpg) and stored in memory.
Bild auswerten und als Datensatz abspeichern: Das Bild wird auf markante Punkte/Merkmale (besonderer Kontrast/Farbe usw.) untersucht. Diese Punkte/Merkmale werden als Datensatz über das Target (die das Target beschreibende Informationen) abgespeichert, damit sie später genutzt werden können. Evaluate the image and save it as a dataset: The image is examined for distinctive points / features (special contrast / color, etc.). These points / features are stored as a record about the target (the information describing the target) so that they can be used later.
Target-Server
Spiele-Server
Zunächst werden elementare Informationen, (wie z.B. die Raumgröße, wie viele Nutzer-Clients sich maximal mit der Szene verbinden können), netzwerkspezifische Details (wie z.B. mit welcher Frequenz kommuniziert werden soll oder Definition der IP-Adresse und Ports) und Spiele-spezifische Vorkehrungen (z.B. Initialisierung verschiedener Variablen und Objekte und Erstellung der GUI) eingestellt und getroffen.First of all, elementary information (such as the size of the room, how many user clients can connect to the scene at most), network-specific details (such as which frequency to communicate with or definition of the IP address and ports) and game-specific precautions (eg initialization of various variables and objects and creation of the GUI) set and made.
Dieser Server ist später auch verantwortlich, dass alle verbundenen Nutzer-Clients eine konsistente Ansicht auf Objekte in der Szene haben, also dass z.B. Spieler bewegt werden können und die neue Position mit allen Nutzern synchronisiert wird. Dies macht er, indem er immer das Delta zur aktuellen Position per TCP/IP Verbindung an alle verbundenen Geräte schickt, wodurch eine Veränderung der Spiele-Objekte in Echtzeit gegeben ist. Außerdem verwaltet er auch mögliche kollidierende Zugriffe von mehreren Clients gleichzeitig auf das selbe (gemeinsam genutzte) virtuelle Objekt. (siehe auch weiter unten)Later, this server is also responsible for ensuring that all connected user clients have a consistent view of objects in the scene, such as allowing players to be moved and synchronizing the new location with all users. He does this by always sending the delta to the current position via TCP / IP connection to all connected devices, which gives a change of the game objects in real time. Furthermore It also manages possible colliding accesses from multiple clients to the same (shared) virtual object simultaneously. (see below)
Erstellen des virtuellen Containers
Dieser Container
Broadcast-Server
Üblicherweise laufen alle drei (Software-)Server auf unterschiedlichen Ports parallel oder werden dynamisch gestartet, wenn sie gebraucht werden. Typically, all three (software) servers run in parallel on different ports or are started dynamically when needed.
Auf den Nutzer-Client-Devices, also den AR-Geräten
Die folgenden Schritte laufen fast genau so auch auf dem "Server"-Device
Allerdings wird es hier direkt nach dem Erstellen der Szene gemacht, dieser Client braucht daher keine Broadcast-Daten zu empfangen und die spezifischen Target-Details nicht per "Netzwerk" abzurufen, sondern diese kann er als Client einfach am gleichen Speicherort wie der Server adressieren.However, it is done here right after creating the scene, so this client does not need to receive broadcast data and retrieve the specific target details via "network", but it can simply address it as a client in the same location as the server.
Empfang der Broadcast-Daten: Die per UDP-Broadcast versendeten Pakete vom Server werden abgefangen. Diese Pakete enthalten den Namen des Servers und seine IP-Adresse sowie die Ports und eventuelle Metainformationen (z.B. ob der "Raum" schon gefüllt ist, also die maximale Client-Zahl (die vom Server je nach Einsatzgebiet definiert werden kann) bereits erreicht wurde. In dem Fall würde ihm dieser Raum einfach nicht angezeigt werden, und er könnte sich dann auch nicht verbinden).Receipt of broadcast data: The packets sent via UDP broadcast are intercepted by the server. These packages contain the name of the server and its IP address as well as the ports and possible meta-information (eg if the "room" is already filled, ie the maximum client number (which can be defined by the server depending on the area of use) has already been reached. In that case, this room would simply not be displayed to him and he would not be able to connect).
Verbindung mit dem Spiele-Server: Nun wird auf Basis der empfangenen Informationen eine (TCP/IP-)Verbindung mit dem Server aufgebaut. Eine UDP/IP Verbindung wäre aber auch möglich. Außerdem wird auch hier nun ein(e) Spiel(-szene) aufgebaut/erstellt/gestartet und z.B. verschiedene Variablen und Objekte initialisiert, damit im Spiel später definiert ist, dass dieser User z.B. ein Client und kein Server ist. Er hat dadurch weniger Rechte; z.B. kann er nur seine Objekte beeinflussen und nicht die von anderen Spielern. Dies wird auch Autorität über ein Objekt genannt. Außerdem wird z.B. auch eine auf den jeweiligen User angepasste GUI (z.B. farblich oder durch individuelle Eingaben wie z.B. Anzeige des Namens) erstellt und angezeigt. Connection to the game server: Now a (TCP / IP) connection to the server is established on the basis of the received information. A UDP / IP connection would also be possible. In addition, here too a game is set up / created / started and e.g. Initialized various variables and objects, so that later defined in the game that this user, for example, a client and not a server. He has fewer rights as a result; e.g. he can only influence his objects and not those of other players. This is also called authority over an object. In addition, e.g. Also, a customized GUI (e.g., in color or by individual inputs such as displaying the name) is created and displayed.
Automatisches Abrufen der spezifischen Target-Details (Informationen, die für das Target beschreibend sind) vom TargetServer (
Die Beispiel-Implementierung nutzt zur drahtlosen Kommunikation das WLAN/Wifi. Weitere Varianten der Technik könnten das Byte-Array (bzw. den für die Übertragung genutzten Datensatz) aber ebenso z.B. auch per Bluetooth oder über andere (kabellose) Kanäle übertragen.The example implementation uses WLAN / Wifi for wireless communication. Other variants of the technique could use the byte array (or the record used for transmission) but also e.g. via Bluetooth or other (wireless) channels.
Erstellen des virtuellen Containers (
Platzieren des/der persönlichen GameObjects (hierarchisch mehrere pro Nutzer zugeordnet) im Container
Interaktion und Race-Conditions (bzw. kollidierender Zugriff): Interaction and race conditions (or conflicting access):
Will nun ein Nutzer sein GameObject (also das von ihm kontrollierte virtuelle Objekt) bewegen, so bewegt er sein GameObject in seiner lokalen AR-Szene, die eine gespiegelte/synchronisierte Version der AR-Szene auf dem Server ist. Dadurch bekommt er Interaktionen, die er selbst ausführt, direkt ohne Delay auch in der eigenen Szene angezeigt. Nun werden alle Änderungen, die „multiplayer-mäßig“ relevant sind (also z.B. Position, Rotation, Skalierung, Art der Darstellung (z.B. geänderte Farbe), spielbezogene Informationen (z.B. Leben verloren, Tor geschossen, Schuss abgefeuert, bestimmtes Item gekauft) – also alles, was auch für die anderen Nutzer sowie die Verwaltung der Spiellogik relevant ist), dieses GameObjects auf den Server übertragen, welcher wiederum die neue Position (und alle weiteren zu synchronisierenden Daten) mit allen anderen Nutzern synchronisiert. Dies geschieht so schnell, dass für die Nutzer mit "menschlicher Auffassungsgabe" zu keinem Zeitpunkt ein Unterschied der Szenen auf den einzelnen Devices zu erkennen wäre. In der Beispiel-Implementierung z.B. 1/30 s + WLAN-Latenz = max. 7ms. If a user wants to move his GameObject (ie the virtual object he controls), he moves his GameObject into his local AR scene, which is a mirrored / synchronized version of the AR scene on the server. As a result, he gets interactions that he himself executes, displayed directly in the scene without delay. Now all changes that are "multiplayer-moderately" relevant (eg position, rotation, scaling, type of representation (eg changed color), game-related information (eg lost life, scored goal, shot fired, purchased item) - ie everything that is also relevant for the other users as well as the management of the game logic), this GameObjects transferred to the server, which in turn synchronizes the new position (and all other data to be synchronized) with all other users. This happens so fast that for the users with "human comprehension" no difference of the scenes on the individual devices would be recognizable. In the example implementation e.g. 1/30 s + WLAN latency = max. 7 ms.
Will der Nutzer allerdings mit einem mit anderen Nutzern gemeinsam genutzten Objekt interagieren, muss er sich zunächst vom Server für diese Aktion autorisieren lassen. Nach der Aktion wird ihm diese dann wieder entzogen. Dadurch ist sichergestellt, dass nicht mehrere Nutzer gleichzeitig mit demselben Objekt interagieren können.However, if the user wants to interact with an object shared with other users, he must first have the server authorize the action. After the action, it is then withdrawn. This ensures that multiple users can not interact with the same object at the same time.
Eine weitere Besonderheit, die in der Beispiel-Implementierung umgesetzt wurde, ist die Möglichkeit, auf allen Clients anzuzeigen, wenn ein bestimmter Nutzer den Fokus auf das Target verliert. D.h. er bewegt entweder die Kamera weg oder das Kamerabild wird kurzfristig unscharf, was immer wieder vorkommen kann. Um hier nicht z.B. in Spielen den "noch anwesenden" Nutzern einen unfairen Vorteil zu verschaffen, wird der fehlende Nutzer "ausgeblendet", damit die anderen nicht trotzdem mit ihm interagieren können oder auch durch ihn evtl. abgelenkt sind. Hierfür wird, durch das AR-Gerät des zugehörigen Nutzers, ein neues Wurzel-Objekt im virtuellen Raum an einer weit entfernten (und somit "unsichtbaren") Stelle erstellt und das zugehörige Nutzer-Objekt darin als Child platziert. Dadurch erbt dieses Child die weit entfernte Position des neuen Wurzel-Objekts und der zugehörige Nutzer ist für keinen anderen Nutzer mehr sichtbar, er befindet sich aber immer noch in der Szene, so dass der zugehörige Nutzer noch interagieren kann, z.B. kann er ein nutzerbezogenes Menü aufrufen. Another feature implemented in the sample implementation is the ability to show on all clients when a particular user loses focus on the target. That he either moves the camera away or the camera image is blurred at short notice, which can happen again and again. To avoid here, for example In games to give the "still present" users an unfair advantage, the missing user is "hidden" so that the others can not interact with him anyway or may be distracted by him. For this purpose, a new root object is created in virtual space at a far-away (and hence "invisible") point by the AR device of the associated user and the associated user object is placed therein as a child. As a result, this child inherits the distant location of the new root object and the associated user is no longer visible to any other user, but is still in the scene so that the associated user can still interact, e.g. he can call a user-related menu.
Es gibt natürlich auch die Möglichkeit, den Nutzer nur z.B. eine bestimmte "Ich-bin-offline"-Pose einnehmen zu lassen oder ihn z.B. mit einem "Disconnected"-Icon o.ä. (z.B. über dem Kopf schwebend) zu markieren. Dies bleibt dem jeweiligen Entwickler überlassen.Of course, there is also the possibility to inform the user only e.g. to take a certain "I am offline" pose, or take it e.g. with a "disconnected" icon or similar (hovering over the head, for example). This is left to the respective developer.
Anstatt ein vorhandenes Infrastruktur-WLAN zu nutzen, ist es auch möglich, vom Server-Device ein Ad-Hoc-Netzwerk erstellen und alle Clients damit verbinden zu lassen. Dann ist man unabhängig vom physischen Standort, da das komplette Spiel bzw. die Kommunikation untereinander und die AR-Erstellung usw. komplett ohne Infrastruktur und auch ohne Internet-Zugriff funktioniert. Instead of using an existing infrastructure WLAN, it is also possible to create an ad hoc network from the server device and to let all clients connect to it. Then one is independent of the physical location, since the complete game or the communication between each other and the AR-creation etc. completely without infrastructure and also without Internet access works.
Man kann ein (Multiplayer-)Spiel somit auch an Orten spielen, an denen man kein mobiles Internet und kein Infrastruktur-WLAN hat, was mit anderen Lösungen nicht funktioniert, da man dort immer entweder ein vordefiniertes Target auf einem Server (im Internet) liegen hat oder die Interaktion mit Elementen über einen solchen abläuft.You can play a (multiplayer) game thus also in places, where one does not have a mobile Internet and infrastructure WLAN, which does not work with other solutions, since one always there either a predefined target on a server (on the Internet) has or interacts with elements over one.
Somit lassen sich mobile AR-Geräte (z.B. Smartphones) vollkommen unabhängig von jeder Infrastruktur nutzen, also z.B. überall in der freien Natur. Zusammen mit der Möglichkeit, ein Target frei und für jede Spielsession neu wählen zu können, ergibt sich eine größere Freiheit in der Auswahl der Spielumgebung und somit ein erweitertes Erlebnis. Thus, mobile AR devices (e.g., smartphones) can be used completely independently of any infrastructure, e.g. everywhere in the great outdoors. Together with the ability to choose a target freely and for each game session, there is a greater freedom in the selection of the game environment and thus an extended experience.
Nachfolgend ist zunächst eine kurze Beispiel-Anwendung anhand eines einfachen Spieles dargestellt. Sie wird unter Bezugnahme auf die
Zwei Nutzer (Spieler) mit AR-Gerät
Anschließend kann ein Spiel gestartet werden, bei dem sich beide Spieler gegenseitig z.B. einen (virtuellen) Ball (virtuelles Objekt
Auf seinem AR-Gerät hätte dann jeder der beiden Spieler etwa folgende Ansicht (vgl.
Ein anderes Beispiel ist: Ein Architekt führt seinen Kunden sein gestaltetes Haus vor. Er platziert es auf der “Spielfläche” (Grundstück) und im Anschluss können alle Kunden das Haus aus ihrer Perspektive betrachten. Der Architekt kann nun z.B. abwechselnd verschiedene Teile seines Hauses markieren, die auch auf allen Kunden-Geräten sichtbar sind, um die z.B. auf einen spezifischen Teil des Hauses aufmerksam zu machen. Oder er kann dynamisch bestimmte Elemente (Dach, Möbel, usw.) des Hauses ein- bzw. ausblenden.Another example is: An architect shows his customers his designed house. He places it on the "playing surface" (land) and then all customers can see the house from their perspective. The architect can now, for example, alternately mark different parts of his house, which are also visible on all customer equipment, in order to see the e.g. to draw attention to a specific part of the house. Or he can dynamically show or hide certain elements (roof, furniture, etc.) of the house.
Weitere Beispiele sind virtuelle Brettspiele; eine virtuelle Autorennbahn; eine virtuelle Band, die auf einer virtuellen Bühne spielt; eine Produktpräsentation (z.B. ein neues Spielzeug oder ein Auto); ein Möbelstück soll vor der Einrichtung darauf überprüft werden, ob es auch in die echte Umgebung passt (und mehrere Menschen können es so gleichzeitig betrachten und haben dadurch eine bessere Diskussionsgrundlage); ein virtuelles Theater; viele andere Anwendungen sind damit denkbar.Other examples are virtual board games; a virtual racecourse; a virtual band playing on a virtual stage; a product presentation (e.g., a new toy or a car); a piece of furniture should be checked before installation to see if it also fits into the real environment (and several people can look at it at the same time and thus have a better basis for discussion); a virtual theater; many other applications are conceivable.
BezugszeichenlisteLIST OF REFERENCE NUMBERS
- 1 1
-
AR-Gerät von Nutzer
1 AR device of user1 - 2 2
-
AR-Gerät von Nutzer
2 AR device ofuser 2 - 3 3
-
Sichtbereich von Nutzer
1 Visibility range of users1 - 4 4
-
Sichtbereich von Nutzer
2 Visibility range ofusers 2 - 5 5
-
Virtuelles Objekt von Nutzer
1 Virtual object of users1 - 6 6
-
Virtuelles Objekt von Nutzer
2 Virtual object ofusers 2 - 77
- Target (Ziel) Target
- 8 8th
- Virtueller Container (Container-Objekt)Virtual container (container object)
- 9 9
- AR-RaumAR space
- 10 10
- Oberflächesurface
- 11A 11A
- 1. Mit dem Server verbinden1. Connect to the server
- 11B 11B
- 2. Informationen zum Ziel bekommen2. Get information about the goal
- 12 12
- Verbindung (z.B. WLAN)Connection (e.g., WLAN)
- 13 13
- "Haupt"-Gerät"Main" device
- 14 14
- "Client"-Gerät"Client" device
- 15 15
- Display/ScreenDisplay / Screen
- 16 16
- Kameracamera
- 17 17
- AR-Anwendung/-AppAR application / app
- 18 18
- Anwendungs-/Spiele-ServerApplication / game server
- 19 19
- Server zum Austausch der Target-Informationen / Target-ServerServer for exchanging the target information / target server
- 20 20
- Broadcast-ServerBroadcast server
- 21 21
- Anwendungs-/Spiele-ClientApplication / Game Client
- 22 22
- gemeinsam genutztes virtuelles Objekt (hier ein Ball)shared virtual object (here a ball)
- 23 23
- Left-ButtonLeft button
- 24 24
- Shoot-ButtonShoot button
- 25 25
- Right-ButtonRight button
ZITATE ENTHALTEN IN DER BESCHREIBUNG QUOTES INCLUDE IN THE DESCRIPTION
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.This list of the documents listed by the applicant has been generated automatically and is included solely for the better information of the reader. The list is not part of the German patent or utility model application. The DPMA assumes no liability for any errors or omissions.
Zitierte Nicht-PatentliteraturCited non-patent literature
- https://docs.unity3d.com/Manual/UNet.html [0093] https://docs.unity3d.com/Manual/UNet.html [0093]
Claims (17)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102016116582.4A DE102016116582A1 (en) | 2016-09-05 | 2016-09-05 | Method and apparatus for displaying augmented reality |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102016116582.4A DE102016116582A1 (en) | 2016-09-05 | 2016-09-05 | Method and apparatus for displaying augmented reality |
Publications (1)
Publication Number | Publication Date |
---|---|
DE102016116582A1 true DE102016116582A1 (en) | 2018-03-08 |
Family
ID=61198167
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE102016116582.4A Withdrawn DE102016116582A1 (en) | 2016-09-05 | 2016-09-05 | Method and apparatus for displaying augmented reality |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE102016116582A1 (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111665947A (en) * | 2020-06-10 | 2020-09-15 | 浙江商汤科技开发有限公司 | Treasure box display method and device, electronic equipment and storage medium |
CN112330819A (en) * | 2020-11-04 | 2021-02-05 | 腾讯科技(深圳)有限公司 | Interaction method and device based on virtual article and storage medium |
CN114219924A (en) * | 2021-10-18 | 2022-03-22 | 腾讯科技(深圳)有限公司 | Method, apparatus, device, medium, and program product for adaptive display of virtual scene |
CN114489342A (en) * | 2022-01-29 | 2022-05-13 | 联想(北京)有限公司 | Image processing method and device and electronic equipment |
-
2016
- 2016-09-05 DE DE102016116582.4A patent/DE102016116582A1/en not_active Withdrawn
Non-Patent Citations (3)
Title |
---|
https://docs.unity3d.com/Manual/UNet.html |
IRAWATI, Sylvia, et al. Varu framework: Enabling rapid prototyping of VR, AR and ubiquitous applications. In: Virtual Reality Conference, 2008. VR'08. IEEE. IEEE, 2008. S. 201-208. doi: 10.1109/VR.2008.4480774 |
WAGNER, Daniel, et al. Towards massively multi-user augmented reality on handheld devices. In: International Conference on Pervasive Computing. Springer Berlin Heidelberg, 2005. S. 208-219. doi: 10.1007/11428572_13 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111665947A (en) * | 2020-06-10 | 2020-09-15 | 浙江商汤科技开发有限公司 | Treasure box display method and device, electronic equipment and storage medium |
CN112330819A (en) * | 2020-11-04 | 2021-02-05 | 腾讯科技(深圳)有限公司 | Interaction method and device based on virtual article and storage medium |
CN112330819B (en) * | 2020-11-04 | 2024-02-06 | 腾讯科技(深圳)有限公司 | Interaction method and device based on virtual article and storage medium |
CN114219924A (en) * | 2021-10-18 | 2022-03-22 | 腾讯科技(深圳)有限公司 | Method, apparatus, device, medium, and program product for adaptive display of virtual scene |
CN114219924B (en) * | 2021-10-18 | 2023-06-13 | 腾讯科技(深圳)有限公司 | Adaptive display method, device, equipment, medium and program product for virtual scene |
CN114489342A (en) * | 2022-01-29 | 2022-05-13 | 联想(北京)有限公司 | Image processing method and device and electronic equipment |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE102015100911B4 (en) | Improved communication between remote participants using advanced and virtual reality | |
DE69934972T2 (en) | IMAGING DEVICE AND IMAGING METHOD | |
DE102018207088A1 (en) | PICTURE ANALYSIS WITHOUT MARKERS FOR AUGMENTED REALITY | |
CN110494196A (en) | System and method for using virtual reality to study in coordination | |
DE102020107913A1 (en) | USING GAME STYLE PATTERNS TO CREATE VIRTUAL REPRESENTATIONS OF PLAYERS | |
DE69937468T2 (en) | System for film recording and editing | |
DE102016116582A1 (en) | Method and apparatus for displaying augmented reality | |
EP3595789B1 (en) | Virtual reality system using an actor and director model | |
US11100695B1 (en) | Methods and systems for creating an immersive character interaction experience | |
KR101327995B1 (en) | Apparatus and method for processing performance on stage using digital character | |
DE112018006666T5 (en) | INFORMATION PROCESSING DEVICE, INFORMATION PROCESSING METHOD AND PROGRAM | |
DE102016113060A1 (en) | Method for controlling an object | |
CN110365666A (en) | Multiterminal fusion collaboration command system of the military field based on augmented reality | |
DE112013005689T5 (en) | Portable game console | |
WO2014140125A2 (en) | New uses of smartphones and comparable mobile digital terminal devices | |
WO2021227864A1 (en) | Virtual scene display method and apparatus, storage medium, and electronic device | |
CN112711458B (en) | Method and device for displaying prop resources in virtual scene | |
DE112011105982T5 (en) | Reinforcement of stored content with local sensors and AR communication | |
DE102018217898A1 (en) | Different perspectives from a common virtual environment | |
DE102020108752A1 (en) | JOIN OR REPEAT AN INSTANCE OF A GAME TRANSFER | |
CN112306321B (en) | Information display method, device and equipment and computer readable storage medium | |
Sourin | Nanyang Technological University virtual campus [virtual reality project] | |
CN113559510A (en) | Virtual skill control method, device, equipment and computer readable storage medium | |
DE112020000725T5 (en) | OBJECT POSITIONING AND MOVEMENT IN THREE-DIMENSIONAL CONTENT | |
Hoppe | Urban art as countervisuality? |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R082 | Change of representative |
Representative=s name: 2S-IP SCHRAMM SCHNEIDER BERTAGNOLL PATENT- UND, DE |
|
R012 | Request for examination validly filed | ||
R016 | Response to examination communication | ||
R119 | Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee |