US20210385523A1 - Method and system of data polling for augmented/mixed reality applications - Google Patents
Method and system of data polling for augmented/mixed reality applications Download PDFInfo
- Publication number
- US20210385523A1 US20210385523A1 US17/412,076 US202117412076A US2021385523A1 US 20210385523 A1 US20210385523 A1 US 20210385523A1 US 202117412076 A US202117412076 A US 202117412076A US 2021385523 A1 US2021385523 A1 US 2021385523A1
- Authority
- US
- United States
- Prior art keywords
- data
- overlay
- networked
- display
- polling
- 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.)
- Abandoned
Links
- 238000000034 method Methods 0.000 title claims abstract description 55
- 230000003190 augmentative effect Effects 0.000 title claims abstract description 16
- 230000002085 persistent effect Effects 0.000 claims abstract description 57
- 238000013500 data storage Methods 0.000 claims abstract description 34
- 238000012545 processing Methods 0.000 claims abstract description 10
- 230000009897 systematic effect Effects 0.000 claims abstract description 8
- 238000004891 communication Methods 0.000 claims description 34
- 238000003860 storage Methods 0.000 claims description 23
- 230000000007 visual effect Effects 0.000 claims description 14
- 238000013515 script Methods 0.000 claims description 11
- 238000013499 data model Methods 0.000 description 13
- 230000008901 benefit Effects 0.000 description 10
- 230000008569 process Effects 0.000 description 9
- 230000004044 response Effects 0.000 description 5
- 230000001413 cellular effect Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 238000011161 development Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000002452 interceptive effect Effects 0.000 description 4
- 230000003993 interaction Effects 0.000 description 3
- BXNJHAXVSOCGBA-UHFFFAOYSA-N Harmine Chemical compound N1=CC=C2C3=CC=C(OC)C=C3NC2=C1C BXNJHAXVSOCGBA-UHFFFAOYSA-N 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 239000007789 gas Substances 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000008447 perception Effects 0.000 description 2
- 230000008439 repair process Effects 0.000 description 2
- UGFAIRIUMAVXCW-UHFFFAOYSA-N Carbon monoxide Chemical compound [O+]#[C-] UGFAIRIUMAVXCW-UHFFFAOYSA-N 0.000 description 1
- CBENFWSGALASAD-UHFFFAOYSA-N Ozone Chemical compound [O-][O+]=O CBENFWSGALASAD-UHFFFAOYSA-N 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 239000000654 additive Substances 0.000 description 1
- 230000000996 additive effect Effects 0.000 description 1
- 238000003915 air pollution Methods 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 229910002091 carbon monoxide Inorganic materials 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 230000001143 conditioned effect Effects 0.000 description 1
- 230000003750 conditioning effect Effects 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000003066 decision tree Methods 0.000 description 1
- 230000001066 destructive effect Effects 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 238000003306 harvesting Methods 0.000 description 1
- 229910052739 hydrogen Inorganic materials 0.000 description 1
- 239000001257 hydrogen Substances 0.000 description 1
- 125000004435 hydrogen atom Chemical class [H]* 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 231100000647 material safety data sheet Toxicity 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000002207 retinal effect Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 239000000523 sample Substances 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- 239000000779 smoke Substances 0.000 description 1
- 230000003238 somatosensory effect Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 230000008093 supporting effect Effects 0.000 description 1
- 239000011885 synergistic combination Substances 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/431—Generation of visual interfaces for content selection or interaction; Content or additional data rendering
- H04N21/4312—Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/22—Handling requests for interconnection or transfer for access to input/output bus using successive scanning, e.g. polling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/0486—Drag-and-drop
-
- 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
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16Y—INFORMATION AND COMMUNICATION TECHNOLOGY SPECIALLY ADAPTED FOR THE INTERNET OF THINGS [IoT]
- G16Y40/00—IoT characterised by the purpose of the information processing
- G16Y40/10—Detection; Monitoring
Definitions
- the present invention relates to data processing systems and methods, specifically to data processing system and methods for use in augmented/mixed reality systems.
- IoT devices are generally understood and being devices having sensors that can transmit data over a network, generally the internet, but not necessarily.
- IoT devices may include wireless sensors, actuators, and even more complicated computing devices (e.g. smart speakers, TVs, wearables, thermostats). They are generally attached to objects, which allows for monitoring and/or control of such objects.
- These devices may be used within one or more networks for plethoric uses, e.g. personal, home, business, industrial, and government.
- the networking, communication and connectivity protocols used with internet-enabled devices largely depend on the specific IoT application deployed. Just as there are many different IoT applications, there are many different connectivity and communications options. Communications protocols include, but are not limited to: CoAP, DTLS and MQTT. Wireless protocols include IPv6, LPWAN, Zigbee, Bluetooth Low Energy, Z-Wave, RFID and NFC. Cellular, satellite, Wi-Fi and Ethernet can also be used. Each option has its tradeoffs in terms of power consumption, range and bandwidth, all of which may be considered when choosing connected devices and protocols for a particular IoT application. To share the sensor data they collect, IoT devices generally connect to an IoT gateway or another edge device where data can either be analyzed locally or sent to the cloud for analysis.
- IoT development is driving application development, including user interface development for various implementations of IoT systems/networks.
- Non-limiting examples include smartphone applications to manage IoT smart home implementations which may include menu driven options for temperature/lighting control, viewing video feed data from cameras, security alerts/alarms pushed to the smartphone of the user, and the like.
- buttons are also user interfaces that are not menu driven, such as but not limited to sound-controlled interfaces (e.g. activated by knocking/clapping), button-controlled interfaces, Augmented Reality/Mixed Reality interfaces (e.g. network connected AR/MR eyewear using software to interpret hand gestures), and in-ear interfaces with accelerometers/gyroscopes that interpret nodding gestures as commands.
- sound-controlled interfaces e.g. activated by knocking/clapping
- Augmented Reality/Mixed Reality interfaces e.g. network connected AR/MR eyewear using software to interpret hand gestures
- in-ear interfaces with accelerometers/gyroscopes that interpret nodding gestures as commands.
- Some IoT implementations are very simple, with relatively few devices connected and control of those few devices is associated with meeting specific needs of individuals, such as in the control of a smart home by the resident(s) thereof to meet their needs of comfort, convenience, and/or safety. Some IoT implementations are much more complex, as in many industrial implementations, wherein teams of users monitor control panels and maintain complex operational protocols with assistance from their IoT network(s).
- Polling is the process where the computer or controlling device waits for an external device to check for its readiness or state, often with low-level hardware. For example, when a printer is connected via a parallel port, the computer waits until the printer has received the next character. These processes can be as minute as only reading one bit. This is sometimes used synonymously with busy-wait polling. In this situation, when an I/O operation is required, the computer does nothing other than check the status of the I/O device until it is ready, at which point the device is accessed. In other words, the computer waits until the device is ready. Polling also refers to the situation where a device is repeatedly checked for readiness, and if it is not, the computer returns to a different task. Although not as wasteful of CPU cycles as busy waiting, this is generally not as efficient as the alternative to polling, interrupt-driven I/O.
- Polling is often intimately involved with very low-level hardware. For example, polling a parallel printer port to check whether it is ready for another character involves examining as little as one bit of a byte. That bit represents, at the time of reading, whether a single wire in the printer cable is at low or high voltage.
- the I/O instruction that reads this byte directly transfers the voltage state of eight real world wires to the eight circuits (flip flops) that make up one byte of a CPU register.
- a polling cycle is the time in which each element is monitored once.
- the optimal polling cycle will vary according to several factors, including the desired speed of response and the overhead (e.g., processor time and bandwidth) of the polling.
- roll call polling the polling device or process queries each element on a list in a fixed sequence. Because it waits for a response from each element, a timing mechanism is necessary to prevent lock-ups caused by non-responding elements. Roll call polling can be inefficient if the overhead for the polling messages is high, there are numerous elements to be polled in each polling cycle and only a few elements are active.
- each element polls the next element in some fixed sequence. This continues until the first element is reached, at which time the polling cycle starts all over again.
- Polling can be employed in various computing contexts in order to control the execution or transmission sequence of the elements involved. For example, in multitasking operating systems, polling can be used to allocate processor time and other resources to the various competing processes.
- polling is used to determine which nodes want to access the network. It is also used by routing protocols to retrieve routing information, as is the case with EGP (exterior gateway protocol).
- interrupts are signals generated by devices or processes to indicate that they need attention, want to communicate, etc.
- polling can be very simple, in many situations (e.g., multitasking operating systems) it is more efficient to use interrupts because it can reduce processor usage and/or bandwidth consumption.
- Polling has the disadvantage that if there are too many devices to check, the time required to poll them can exceed the time available to service the I/O device.
- a method for configuring operation of a display device includes receiving a configuration change from a control device, wherein the configuration change includes one or more changes for presentation of a overlay element for the display device and configuring settings for presentation of a overlay element, wherein the configuration change corresponds to a release of one or more features previously included and inaccessible to settings for presentation of the overlay element by the display device.
- the method also includes presenting an overlay element based on the configuring, wherein the overlay element is presented by the display device as an overlay to displayed image content.
- Overlay elements can include a navigation bar, an animation, a poster display, sticker display, and an application home screen.
- U.S. Pat. No. 8,854,546 issued to Tkachenko, discloses a method of displaying input data content, the input data content comprising video data placed in a video plane and overlay data placed in an overlay plane, said method comprising the steps of: —shifting the video plane compared to the overlay plane so as the overlay plane does not occult the video plane, —mixing the resulting shifted video plane and overlay plane, for generating output data content, and—displaying said output data content.
- U.S. Pat. No. 10,123,073, issued to Cremer et al. discloses wherein a client device accesses a video input stream from an intermediate device for display.
- the client device analyzes the video input stream to determine that the video input stream matches a template indicating a portion of the video input stream that is created by the intermediate device.
- a video output stream generated by the client device is modified to include the portion of the video input stream generated by the intermediate device.
- commercials transmitted from a national content provider to a smart TV via a set-top box may be replaced with targeted commercials.
- informational messages or menus generated by the set-top box may be detected and the replacement video altered by the smart TV to include the messages or menus generated by the set-top box.
- U.S. Patent Application Publication No.: 2019/0281343A1 discloses methods for a marketplace of interactive live streaming multimedia overlays. At least one method includes a user playing video games on a computer, using software to stream all or part of their computer session to one or more streaming services, said software retrieving images from a web-service, some or all of said images having been acquired through an online marketplace, said images being used to create a video overlay, and said overlay being combined with the video of the user's computer session prior being encoded for transmission to one or more streaming services.
- U.S. Patent Application Publication No.: 2019/0313146 discloses a system and methods for interactive filters in live streaming multimedia.
- At least one method includes a user playing video games on a computer, using streaming software to combine all or part of their computer session with their local camera feed, using streaming software to encode and stream the encoded video to one or more streaming services, streaming services displaying the video stream to one or more viewers, said viewers interacting with the video via the streaming service, the user's streaming software retrieving data about viewer interactions, the streaming software using a computer vision algorithm to detect the position of an object in the user's camera feed, such as the user's face or hands, the streaming software retrieving animation code, the streaming software using the detected position of the detected object to generate a graphical image that aligns with and follows the detected object in the local camera feed, the streaming software adding the graphical image to the video stream in direct response to viewer interactions, and said graphical image being inserted into the video stream prior to the video being published for viewers to consume by the streaming service.
- the inventions heretofore known suffer from a number of disadvantages which include having poor network efficiency, failing to improve computational capabilities, not providing fine control over data polling of devices, not being flexible in connected data source devices and user interface devices, failing to create relevancy in user interface devices, wasting data resources, failing to enhance data analysis, having large data storage requirements, having a high network burden per user, and requiring high signal quality for user devices in the field.
- the present invention has been developed in response to the present state of the art, and in particular, in response to the problems and needs in the art that have not yet been fully solved by currently available methods and systems. Accordingly, the present invention has been developed to provide a method and/or system of data polling and/or data processing for AR/MR systems.
- a method of systematic data polling within a networked computing system for augmented/mixed reality display comprising one or more of the steps of: establishing an overlay governed data stream from a persistent data storage system to an augmented/mixed reality (AR/MR) display device; receiving, over a network, pushed metric data from a plurality of remote IoT devices that are associated with networked assets, wherein it may be that the plurality of remote IoT devices are not all having the same push frequency, wherein it may be that location information of the networked assets is known to the networked computing system; storing received pushed metric data within the persistent data storage system; polling the persistent data storage system for data points from the pushed metric data; generating an overlay template; and/or publishing the pushed metric data that has been polled to the AR/MR display device, which may be according to the overlay governed data stream in association with the location data of the remote IoT devices.
- AR/MR augmented/mixed reality
- the step of establishing an overlay governed data stream includes one or more of the steps of: publishing reciprocal requests of streams for assets and asset overlays between the persistent data storage system and an application programming interface; providing an overlay template to the application programming interface; and/or associating all asset data streams identified by the overlay template to a particular AR/MR device.
- the step of generating an overlay template includes one or more of the steps of: selecting a networked asset; selecting an overlay object; associating the selected network asset and selected overlay object together, thereby generating an associated display widget; and/or assigning configuration data to the associated display widget.
- the AR/MR device displays pushed metric data in visual association with the networked assets according to display parameters of an overlay template.
- configuration data includes at least one or more of: display location information, a scripted trigger that activates a display object based on data values from the networked asset, and a polling frequency.
- an augmented/mixed reality data processing system comprising one or more of: a plurality of IoT devices associated with networked assets; a persistent data storage system that may be in functional communication with the plurality of IoT devices such that the persistent data storage system receives and stores pushed metric data from the plurality of IoT devices, the persistent data storage system which may include: a plurality of overlay templates, wherein one, more, or each may including display parameters and/or location information for associated network assets; a data storage device; and/or a body of metric data that may be associated with and sourced from the plurality of IoT devices; an overlay governed stream that may be in functional communication with the persistent storage system, which may include a polling script that may be associated with the body of metric data and/or in functional communication therewith; a body of location data regarding the networked assets; and/or an AR/MR device that may be in functional communication with the persistent data storage system via the overlay governed stream and/or with the
- the plurality of overlay templates include configuration data at least including one or more of: display location information, a scripted trigger that activates a display object based on data values from the networked asset, and a polling frequency.
- the overlay templates include a plurality of drag-and-drop display widgets.
- the plurality of IoT devices do not all have the same push frequency.
- the polling script has a polling frequency that is different from a push frequency of at least one of the IoT devices.
- FIGS. 1 and 2 together, form a network diagram of a data processing system, according to one embodiment of the invention
- FIG. 3 is a sequence diagram of a method of systematic data polling according, to one embodiment of the invention.
- FIGS. 4 and 5 together, form a flow chart of a method of creating an overlay, according to one embodiment of the invention
- FIG. 6 shows a plurality of data models, according to one embodiment of the invention.
- FIGS. 7-9 illustrate prophetic user interface views for an AR/MR device, according to one embodiment of the invention.
- references throughout this specification to an “embodiment,” an “example” or similar language means that a particular feature, structure, characteristic, or combinations thereof described in connection with the embodiment is included in at least one embodiment of the present invention.
- appearances of the phrases an “embodiment,” an “example,” and similar language throughout this specification may, but do not necessarily, all refer to the same embodiment, to different embodiments, or to one or more of the figures.
- reference to the wording “embodiment,” “example” or the like, for two or more features, elements, etc. does not mean that the features are necessarily related, dissimilar, the same, etc.
- FIGS. 1 and 2 together, form a network diagram of a data processing system, according to one embodiment of the invention.
- the illustrated system is augmented/mixed reality data processing system.
- the user of the AR device 20 may view the assets 22 through the AR device 20 with the overlays displayed over the visual interface in association with the assets, the overlays displaying real-time IoT data regarding the assets.
- the illustrated system can be seen as having two main areas, 1) entities inside and 2) outside the composer system.
- Outside the composer system 29 exists the AR device 20 which the AR user views assets.
- the AR device 20 identifies the asset 22 (e.g. using geo-location, automated or manual methods) and sends a request through the communication network to the API server 30 in the composer system.
- Geo-location of the asset 22 uses location information services such as GPS Satellites.
- API server Inside the composer system 29 resides the API server, persistent storage 32 and composer interface. API requests go through the API server 30 and are stored in their appropriate data model in persistent storage. When a stream is registered by the AR device 20 the API server 30 requests data from the persistent storage 32 whenever the IoT device 24 publishes an update.
- the illustrated AR device 20 provide enhanced/overlaid perceptual information (generally visual, but may include others, such as but not limited to haptic, somatosensory and olfactory) contemporaneously with and in association with (generally as a perception overlay) real-world environments.
- the enhanced perceptual information may be constructive, in that it adds information/objects to the experience, and/or may be destructive, in that it masks/removes information/objects from the real-world environment.
- An AR device 20 may also be a mixed reality (MR) device wherein virtual reality elements are included, such as but not limited to registering virtual objects in the real-world space that is being perceived.
- MR mixed reality
- the illustrated AR/MR device 20 is in functional communication with the persistent data storage system via the overlay governed stream 26 and with the body of location data regarding the networked assets 22 such that updated metric data from the plurality of IoT devices 24 is displayed in visual association with real-time visual images of the networked assets
- AR devices generally include a processor, a display, sensors (e.g. accelerometers, gyroscopes, signal strength sensors, GPS devices, cameras, microphones), and input devices along with associated hardware, such as but not limited to memory, data busses, power supplies, video cards, audio cards, network devices, speakers, haptic engines, and the like.
- sensors e.g. accelerometers, gyroscopes, signal strength sensors, GPS devices, cameras, microphones
- input devices e.g. accelerometers, gyroscopes, signal strength sensors, GPS devices, cameras, microphones
- input devices e.g. accelerometers, gyroscopes, signal strength sensors, GPS devices, cameras, microphones
- input devices e.g. accelerometers, gyroscopes, signal strength sensors, GPS devices, cameras, microphones
- input devices e.g. accelerometers, gyroscopes, signal strength sensors, GPS devices, cameras, microphones
- input devices e.g. acceler
- the AR device 20 is capable of identifying/recognizing networked assets 22 via location information of the assets, which may also require location information of the AR device. Accordingly, when the AR user looks towards a networked asset 22 and has a corresponding overlay template or widget that is associated with that networked asset, the AR user sees information about that networked asset 22 in physical registration with that networked asset, as presented by the overlay template/widget.
- the template/widget is programmed to continue displaying the information (e.g. on a border of the display angularly positioned towards the actual location of the networked asset).
- visual markers e.g. QR codes, object recognition software within the AR device
- the illustrated overlay governed stream 26 is in functional communication with the persistent storage 32 system such that updated data from relevant IoT devices 24 is published to the AR/MR device.
- the overlay governed stream 26 may include a polling script associated with the body of metric data that manages polling the persistent storage 32 for the metric data (e.g. type of polling, frequency of polling, data types, data ranges, scripted decision trees/matrices for changes in polling, alert/alarm thresholds).
- the polling script may be an additive compilation of individual polling scripts from the various overlays templates that have been selected/modified by the overlay designer and/or AR user in designing the overlays and/or selection options made when implementing the overlays into a particular AR experience (e.g.
- the polling script may have a polling frequency that is different from a push frequency of at least one of the IoT devices.
- the polling frequency of an overlay template does not need to match up with a push frequency of an associated IoT device.
- the illustrated assets 22 are physical objects and/or locations.
- Non-limiting examples include: sites of interest (e.g. churches, statues, businesses, historical markers), industrial objects (e.g. valves, mixing tanks, boilers, furnaces, storage tanks, pumps, batteries, turbines), vehicles (e.g. trucks, cars, mowers, units within an automated fleet of vehicles, drones), objects of interest (e.g. museum displays, tour waypoints, interactive educational objects), networked devices (e.g. servers, smartphones, cellular phones, pagers, relay stations, hubs), and the like and combinations thereof.
- the illustrated assets 22 include IoT devices 24 that have sensors and publish data updates to the illustrated communication network.
- the assets 22 are networked assets, as they are associated with a network (some assets may be networked assets via association with multiple networks and/or association with the same network in multiple modes).
- Assets 22 have a physical location and that location may include one or more orientations (e.g. direction a car is facing/traveling).
- the asset 22 itself may “know” its location information, such as but not limited to a GPS device within the asset 22 that, via the illustrated GPS satellite, determines the asset's location.
- the location of the asset 22 may be determined by other sensors (e.g. position sensors along a track, motion detectors, accelerometers, signal strength detectors).
- the location of the asset 22 may be fixed and may be registered with one or more components described herein.
- Non-limiting examples of global positioning modules include: a global positioning system described in U.S. Pat. No. 6,002,363, issued to Krasner, which is incorporated for their supported teachings herein; a Garmin e Trex Hiking GPS receiver, manufactured by Garmin International, Inc., 1200 East 151st Street, Olathe, Kans., 66062, USA.
- a collection of networked assets 22 may include a very wide variety of IoT devices 24 that may be from diverse manufacturers, made at different times, installed in different production sessions, using different communication protocols, providing data in different formats, providing data updates at different polling/interrupt (push) cycle frequencies, and etc. Accordingly, the collective IoT devices 24 feed of a collection of networked assets 22 may be very complicated and may be very difficult/complicated to manage. Further, as additional needs are identified and/or as new assets 22 are included over time, the complexity and difficulty may compound over time.
- the illustrated IoT devices 24 include sensors and network communication hardware so that they are able to publish data updates over the communication network. They will also generally include some sort of identifying metadata (e.g. sensor number, registration ID) to differentiate themselves from other IoT devices 24 and that information may be communicated along with the published data.
- sensors include: vibration sensors (e.g. geophone, hydrophone, microphone, seismometer), chemical sensors (e.g. Co2 sensors, carbon monoxide detectors, chemoresistors, hydrogen sensors, optodes, ozone monitors, smoke detectors), electricity sensors (e.g. current sensors, electroscopes, galvanometers, hall probes, magnetometers, voltage detectors), environmental sensors (e.g.
- air pollution sensors moisture sensors, humistors, gas detectors, rain/snow gauges, actinometers
- flow sensors e.g. air flow metes, anemometers, gas meters, mass flow sensors
- navigation sensors e.g. airspeed indicators, altimeters, gyroscopes, GPS sensors, depth gauges, turn coordinators, variometers
- position sensors e.g. auxanometers, capacitive displacement sensors, flex sensors, gravimeters, impact sensors, inclinometers, odometers, tilt sensors
- optical sensors e.g. CMOS sensors, colorimeters, flame detectors, LED light sensors, photodetectors
- pressure sensors e.g.
- Network communication hardware may include network cards, cellular adapters, Bluetooth devices, infrared transmitters/receivers/transponders, and the like and combinations thereof.
- the illustrated network includes any electronic communications means which incorporates both hardware and software components of such. Communication among the parties in accordance with the present invention may be accomplished through any suitable communication channels, such as, for example, a telephone network, an extranet, an intranet, Internet, point of interaction device (point of sale device, personal digital assistant, cellular phone, kiosk, etc.), online communications, off-line communications, wireless communications, transponder communications, local area network (LAN), wide area network (WAN), networked or linked devices and/or the like.
- TCP/AP communications protocols the invention may also be implemented using other protocols, including but not limited to IPX, Appletalk, IP-6, NetBIOS, OSI or any number of existing or future protocols.
- a network card may be a Belkin Gigabit Ethernet Express Card, manufactured by Belkin International Inc., 12045 E. Waterfront Dr., Playa Vista, Ca, 90094.
- the illustrated composer system 29 includes an API server, a persistent storage system 32 , and a composer interface, each in communication with each other as needed to perform their various operations.
- the composer system 29 allows for an overlay designer to design a plurality of overlay templates that the AR user may then use to populate their perception experience with enhancements/overlays, generally in the form of drag-and-drop widgets that the user can incorporate into their AR interface which then automatically provide data updates in association with the networked assets 22 through the field of view of the AR user's AR device.
- the illustrated API server 30 provides control and management over data incoming from the networked assets 22 and their IoT devices 24 as well as providing a portal between the AR devices of the AR users and the persistent storage 32 of the composer system.
- the server will generally include a processer, memory, data busses, network communication hardware and software, along with other hardware/software utilized therewith.
- Non-limiting examples of servers include: a HP MediaSmart Server EX495, manufactured by Hewlett-Packard Company, 3000 Hanover Street, Palo Alto, Calif., 94304, USA; a Intel Server System SR2500ALBKPR, manufactured by Intel Corporation, 2200 Mission College Boulevard, Santa Clara, Calif., 95054, USA.
- the illustrated persistent storage 32 collects and stores data in service of one or more portions of the system, as appropriate to the functions thereof.
- the data storage system is in communication with the various modules and components of the system over a computerized network 28 and stores data transferred there through (e.g. in functional communication with the plurality of IoT devices 24 such that the persistent data storage system receives and stores pushed metric data from the plurality of IoT devices).
- Data storage systems may include databases and/or data files.
- a non-limiting example of a data base is Filemaker Pro 11, manufactured by Filemaker Inc., 5261 Patrick Henry Dr., Santa Clara, Calif., 95054.
- Non-limiting examples of a data storage module may include: a HP Storage Works P2000 G3 Modular Smart Array System, manufactured by Hewlett-Packard Company, 3000 Hanover Street, Palo Alto, Calif., 94304, USA; or a Sony Pocket Bit USB Flash Drive, manufactured by Sony Corporation of America, 550 Madison Avenue, New York, N.Y., 10022.
- the illustrated persistent storage system 32 includes a plurality of overlay templates, one or more data storage devices, asset data points, and IoT data points.
- the overlay templates may each include display parameters and location information for associated network assets.
- the plurality of overlay templates include configuration data, generally at least including one or more of: display location information, a scripted trigger that activates a display object based on data values from the networked asset, and a polling frequency.
- the overlay templates may be embodied as drag-and-drop display widgets.
- the asset data points include meta data regarding the networked assets. Such may include location information (e.g. position, orientation), name/ID, operational data (e.g. tolerances, operating ranges, warning messages, historical information, installation information, repair information, MSDS sheet information). Together, a collection of asset data points form a body of location data regarding the networked assets.
- the IoT data points are a body of metric data associated with and sourced from the plurality of IoT devices.
- the illustrated composer interface 34 allows the overlay designer to create overlay templates/widgets. This interface has access to asset 22 and IoT data models/points. Once saved in persistent storage 32 the overlay data model is pushed to the AR device 20 when a stream is requested for a given asset.
- the API server 30 associates IoT data points with the overlay to create the stream and publish updates according to the polling script of the overlay/widget.
- data sources report tagged data to a server. It may be that the data sources are geo-tagged when they are installed. If the data source is a moving source then the data packets will include position information, which may come from onboard position sensors.
- a server with input from IoT devices that is parsed against an input template and stored in persistent storage.
- overlay templates that determines how often the data within the persistent storage is polled, how the data is conditioned, how it is pre-analyzed (e.g. position and time data turned into velocity/acceleration data), safety ranges (e.g. when to push data and/or push the display of data to AR user devices even if they would not otherwise display it), and how the building blocks are populated to be ready for the widgets, which get sent to the user device for display.
- an AR user interface device with position and orientation sensors.
- the user device includes widgets that are active (e.g. displayed or non-displayed but still active) and that generate queries that are sent to the server to get the blocks of data necessary for the interface to properly display the widgets.
- the illustrated system allows parsing of IoT data sources (e.g. coming in the form of a RESTful API) which may determine the type of data that is available in the data source, the values, and/or the potential rendering of that data in a user interface.
- This information is maintained into blocks/widgets/templates in persistent storage that are prepopulated with the data actually coming from the data source.
- the blocks have properties and the properties allow for the blocks to be positioned onto the screen of an AR device, connected to the data source and rendered in a way that is meaningful for the specific kind of data.
- the data may include relative position and orientation of the data source with respect to the user and the AR device has access to its own position and orientation data.
- metadata e.g.
- the position and orientation data of the user and data sources are incorporated into the display widgets to allow the system to synergistically display information to the user on the display device.
- a user may be viewing a particular data source and see data displayed associated with that data source. There may be an alert on another data source which may have been triggered by un-displayed data being outside of a particular predefined range (e.g.
- the illustrated system synergistically combines a great variety of push/pull interrupt and data polling techniques of a complicated IoT system into an easily managed and operated system.
- the synergistic combination greatly reduces network traffic, especially to remote AR devices; reduces minimum operating performance standards for AR devices; allows for use of legacy devices within the system in combination with state of the art devices without complicated data conditioning systems; reduces the cost and time required to install and implement networked asset AR/MR systems, and reduces power consumption for networked AR/MR devices.
- FIG. 3 is a sequence diagram of a method of systematic data polling according, to one embodiment of the invention. There is shown a method of systematic data polling within a networked computing system for augmented/mixed reality display, wherein an IoT device, and API server, a persistent data store 32 (persistent storage system), and an AR/MR device, each in functional communication as needed to performed the illustrated steps, interoperate to provide systematic data polling.
- an IoT device, and API server a persistent data store 32 (persistent storage system)
- an AR/MR device each in functional communication as needed to performed the illustrated steps, interoperate to provide systematic data polling.
- the method includes establishing an overlay governed data stream from a persistent data storage system to an augmented/mixed reality (AR/MR) display device.
- AR/MR augmented/mixed reality
- This generally begins with publishing reciprocal requests of streams for assets and asset overlays between the persistent data storage system and an application programming interface.
- the illustrated persistent data store requests streams for the networked assets (i.e. the data updates from the IoT devices), which the API server 30 provides via the illustrated [Multiple IoT Devices Push Data] box 36 .
- the illustrated API server 30 requests asset overlays from persistent data store as required for the particular user of the AR device.
- the persistent data store provides the requested overlay template(s) to the API server 30 which the API server 30 then uses to associate all asset data streams identified by the overlay template to a particular AR/MR device, thereby feeding the AR device 20 of the AR user. Such may occur automatically on a particular AR user logging into a particular AR device 20 or type of AR device on the network.
- the overlay templates include configuration data, which may include one or more of: display location information, a scripted trigger that activates a display object based on data values from the networked asset, and a polling frequency.
- the overlay governed stream is established and the API server 30 may then be able to provide that data stream to the AR device.
- the AR/MR device 20 will identify the asset 22 through geo-location, automatic detection, and/or human driven manual detection methods. Once identified the AR device 20 may request a stream of asset related data points which come from the IoT Devices associated with the Asset. Alternatively, the AR device 20 may receive data from the overlay governed stream for all associated overlay templates/widgets, even for those assets those not in view of the AR/MR device.
- the API server 30 returns the IoT data point identifiers and their relative layout positions (e.g. via overlay configuration/template).
- the AR device 20 creates the overlay and displays it for the user, updating the data displayed whenever IoT data point updates are pushed to the stream.
- the API server 30 and/or the persistent data store are receiving, over a network, pushed metric data from a plurality of remote IoT devices that are associated with networked assets. It may be that the plurality of remote IoT devices do not all have the same push frequency. Further, location information of the networked assets is known to the networked computing system (e.g. the API server 30 and/or the persistent data store). IoT devices push metric data to an API server. The API server 30 stores this data into a persistent data store, such as but not limited to a database, or file for future access.
- a persistent data store such as but not limited to a database, or file for future access.
- the API server 30 and/or the AR device 20 may poll the persistent data store and/or the API server 30 for data points from the pushed metric data and thereby publish data (see the [All Registered Streams with Updates] box 38 ) to AR device(s) that registered for streaming data according to the overlay governed data stream in association with the location data of the remote IoT devices.
- the AR/MR device 20 may display pushed metric data in visual association with the networked assets according to display parameters of an overlay template
- Updated IoT data points may be read by the API server 30 and pushed in a stream to the AR Device.
- the AR device 20 will update its display with regards to the overlay configuration as data in persistent storage 32 is polled via the overlay governed stream 26 according to the polling configuration of the overlay governed stream 26 (e.g. the accumulation of polling scripts of the incorporated overlay templates).
- FIGS. 4 and 5 together, form a flow chart of a method of creating an overlay, according to one embodiment of the invention.
- the method begins with a request for a list of assets, proceeds to a sequence wherein an asset is selected and an overlay is created in association with the selected asset, the overlay is configured, saved, and then the process is terminated on closure of the composer.
- the flow of creating an overlay is executed within the device containing the composer interface.
- Such may be, but is not limited to a PC, dumb terminal of a server, laptop, tablet and/or mobile device.
- the user is provided a list of assets as defined in the persistent storage. Once selected, the user can either create a new overlay configuration or update a currently existing overlay.
- the overlay is associated with the asset thereby generating an associated display widget.
- the overlay configuration for the given asset is then loaded into the composer interface. Meta data about the asset is generally displayed to facilitate a complete understanding of overlay to be created.
- a list of real-time data points associated with the Asset are provided to the user.
- the user selects the data point and the destination on the overlay, recording the relative position to the other data points currently displayed.
- the user selects the type of display method for this data point, e.g. Textual Output, Warning Lights, Meter, etc. Any necessary configuration for the display method would be performed here, e.g. setting value ranges to display “green”, “yellow”, “red” lights. Selections may be the user are assigned as configuration data to the associated display widget.
- the user repeats the RT Data assignment process until the overlay design is completed.
- the overlay configuration is saved to persistent storage where it can be later loaded by the AR/MR Device. The process can be repeated with additional assets.
- the Composer Interface can be closed.
- FIG. 6 shows a plurality of data models, according to one embodiment of the invention. There is shown an Asset Data Model 42 (top left), an IoT_Data_Point Model 44 (top right), an Overlay Data Model 46 (middle), and an Overlay_Item Data Model 48 (bottom).
- the illustrated data models illustrate non-limiting exemplary data models for use in a data polling/processing system.
- the Asset Data Model represents the physical asset the AR/MR Device will project an overlay with live streaming data.
- the model contains the geo location and identification metrics to associate the view of the AR device to a physical asset.
- Location contains the geo location information that will be updated as the asset moves.
- Identifiers contains any information used for non-geo location based identification.
- the IoT_Data_Point Data Model represents the physical IoT measurement device attached to an asset.
- the model contains identifiers to associate the data point with the IoT Device, IoTID, as well as the Asset, AssetID.
- the UnitType field defines the type of value being measured, e.g. Speed in mph. Value and LastUpdated contain the latest value and time of update respectively. When new data is pushed from the IoT Device, these fields will be updated.
- the Overlay Data Model represents the Overlay created by the Composer Interface.
- the model will contain an association to an Asset, AssetID.
- the Description provides context to the AR/MR Device user to select the appropriate overlay for the situation, e.g. “Tractor in repair mode” or “Tractor in harvest mode”.
- the AR Device user will see all overlays for the given Asset and will select which to display.
- Overlay_Item Individual data points will be modeled in Overlay_Item.
- the item model contains a reference to the overlay, OverlayID, and the IoT Data Point, IoTDataPointID.
- the position on the overlay is assigned to Position with the method of displaying defined in TypeOfDisplay.
- Data Values can be represented in multiple ways, e.g. text, warning lights, meters, graphs.
- FIGS. 7-9 illustrate prophetic user interface views for an AR/MR device, according to one embodiment of the invention.
- FIG. 7 shows an initial view with a flashing arrow 52 notifying the user of an alert related to a networked asset 54 that is not visible in the current view and notifying the user of a direction of orientation change that will bring that networked asset 54 into view.
- FIGS. 8 and 9 show the networked asset 54 on alert in view.
- FIG. 9 shows an alternative widget configuration for that same networked asset on alert as compared to that shown in FIG. 8 , wherein two widgets 56 , 58 are included for a single networked asset.
- the two illustrated widgets may be different widgets utilizing the same IoT device data or they may be pulling data from two different IoT devices that are associated with the same networked asset.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Graphics (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Computing Systems (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
Description
- This invention claims priority, under 35 U.S.C. § 120, to the U.S. Non-Provisional patent application Ser. No. 16/743,640 by Gentile et al. filed on Jan. 15 2020, and therethrough, to the U.S. Provisional Patent Application No. 62/767,683 by Gentile et al. filed on Nov. 15 2018, which is incorporated by reference herein in its entirety.
- The present invention relates to data processing systems and methods, specifically to data processing system and methods for use in augmented/mixed reality systems.
- Internet of Things (IoT) devices are generally understood and being devices having sensors that can transmit data over a network, generally the internet, but not necessarily. IoT devices may include wireless sensors, actuators, and even more complicated computing devices (e.g. smart speakers, TVs, wearables, thermostats). They are generally attached to objects, which allows for monitoring and/or control of such objects. These devices may be used within one or more networks for plethoric uses, e.g. personal, home, business, industrial, and government.
- The networking, communication and connectivity protocols used with internet-enabled devices largely depend on the specific IoT application deployed. Just as there are many different IoT applications, there are many different connectivity and communications options. Communications protocols include, but are not limited to: CoAP, DTLS and MQTT. Wireless protocols include IPv6, LPWAN, Zigbee, Bluetooth Low Energy, Z-Wave, RFID and NFC. Cellular, satellite, Wi-Fi and Ethernet can also be used. Each option has its tradeoffs in terms of power consumption, range and bandwidth, all of which may be considered when choosing connected devices and protocols for a particular IoT application. To share the sensor data they collect, IoT devices generally connect to an IoT gateway or another edge device where data can either be analyzed locally or sent to the cloud for analysis.
- IoT development is driving application development, including user interface development for various implementations of IoT systems/networks. Non-limiting examples include smartphone applications to manage IoT smart home implementations which may include menu driven options for temperature/lighting control, viewing video feed data from cameras, security alerts/alarms pushed to the smartphone of the user, and the like.
- There are also user interfaces that are not menu driven, such as but not limited to sound-controlled interfaces (e.g. activated by knocking/clapping), button-controlled interfaces, Augmented Reality/Mixed Reality interfaces (e.g. network connected AR/MR eyewear using software to interpret hand gestures), and in-ear interfaces with accelerometers/gyroscopes that interpret nodding gestures as commands.
- Some IoT implementations are very simple, with relatively few devices connected and control of those few devices is associated with meeting specific needs of individuals, such as in the control of a smart home by the resident(s) thereof to meet their needs of comfort, convenience, and/or safety. Some IoT implementations are much more complex, as in many industrial implementations, wherein teams of users monitor control panels and maintain complex operational protocols with assistance from their IoT network(s).
- Polling is the process where the computer or controlling device waits for an external device to check for its readiness or state, often with low-level hardware. For example, when a printer is connected via a parallel port, the computer waits until the printer has received the next character. These processes can be as minute as only reading one bit. This is sometimes used synonymously with busy-wait polling. In this situation, when an I/O operation is required, the computer does nothing other than check the status of the I/O device until it is ready, at which point the device is accessed. In other words, the computer waits until the device is ready. Polling also refers to the situation where a device is repeatedly checked for readiness, and if it is not, the computer returns to a different task. Although not as wasteful of CPU cycles as busy waiting, this is generally not as efficient as the alternative to polling, interrupt-driven I/O.
- In a simple single-purpose system, even busy-wait is perfectly appropriate if no action is possible until the I/O access, but more often than not this was traditionally a consequence of simple hardware or non-multitasking operating systems.
- Polling is often intimately involved with very low-level hardware. For example, polling a parallel printer port to check whether it is ready for another character involves examining as little as one bit of a byte. That bit represents, at the time of reading, whether a single wire in the printer cable is at low or high voltage. The I/O instruction that reads this byte directly transfers the voltage state of eight real world wires to the eight circuits (flip flops) that make up one byte of a CPU register.
- A polling cycle is the time in which each element is monitored once. The optimal polling cycle will vary according to several factors, including the desired speed of response and the overhead (e.g., processor time and bandwidth) of the polling.
- In roll call polling, the polling device or process queries each element on a list in a fixed sequence. Because it waits for a response from each element, a timing mechanism is necessary to prevent lock-ups caused by non-responding elements. Roll call polling can be inefficient if the overhead for the polling messages is high, there are numerous elements to be polled in each polling cycle and only a few elements are active.
- In hub polling, also referred to as token polling, each element polls the next element in some fixed sequence. This continues until the first element is reached, at which time the polling cycle starts all over again.
- Polling can be employed in various computing contexts in order to control the execution or transmission sequence of the elements involved. For example, in multitasking operating systems, polling can be used to allocate processor time and other resources to the various competing processes.
- In networks, polling is used to determine which nodes want to access the network. It is also used by routing protocols to retrieve routing information, as is the case with EGP (exterior gateway protocol).
- An alternative to polling is the use of interrupts, which are signals generated by devices or processes to indicate that they need attention, want to communicate, etc. Although polling can be very simple, in many situations (e.g., multitasking operating systems) it is more efficient to use interrupts because it can reduce processor usage and/or bandwidth consumption. Polling has the disadvantage that if there are too many devices to check, the time required to poll them can exceed the time available to service the I/O device.
- Both IoT and AR/MR systems are in stages of rapid improvement and development along many modes of implementation. Some improvements have been made in the field. Examples of references related to the present invention are described below in their own words, and the supporting teachings of each reference are incorporated by reference herein:
- U.S. Pat. No. 9,871,991, issued to Sirpal et al., discloses electronic devices, processes and systems for configuration of a display device. In one embodiment, a method for configuring operation of a display device includes receiving a configuration change from a control device, wherein the configuration change includes one or more changes for presentation of a overlay element for the display device and configuring settings for presentation of a overlay element, wherein the configuration change corresponds to a release of one or more features previously included and inaccessible to settings for presentation of the overlay element by the display device. The method also includes presenting an overlay element based on the configuring, wherein the overlay element is presented by the display device as an overlay to displayed image content. Overlay elements can include a navigation bar, an animation, a poster display, sticker display, and an application home screen.
- U.S. Pat. No. 8,854,546, issued to Tkachenko, discloses a method of displaying input data content, the input data content comprising video data placed in a video plane and overlay data placed in an overlay plane, said method comprising the steps of: —shifting the video plane compared to the overlay plane so as the overlay plane does not occult the video plane, —mixing the resulting shifted video plane and overlay plane, for generating output data content, and—displaying said output data content.
- U.S. Pat. No. 10,123,073, issued to Cremer et al., discloses wherein a client device accesses a video input stream from an intermediate device for display. The client device analyzes the video input stream to determine that the video input stream matches a template indicating a portion of the video input stream that is created by the intermediate device. Based on the video input stream matching the template, a video output stream generated by the client device is modified to include the portion of the video input stream generated by the intermediate device. For example, commercials transmitted from a national content provider to a smart TV via a set-top box may be replaced with targeted commercials. During the replacement, informational messages or menus generated by the set-top box may be detected and the replacement video altered by the smart TV to include the messages or menus generated by the set-top box.
- U.S. Patent Application Publication No.: 2019/0281343A1, by Hussain et al., discloses methods for a marketplace of interactive live streaming multimedia overlays. At least one method includes a user playing video games on a computer, using software to stream all or part of their computer session to one or more streaming services, said software retrieving images from a web-service, some or all of said images having been acquired through an online marketplace, said images being used to create a video overlay, and said overlay being combined with the video of the user's computer session prior being encoded for transmission to one or more streaming services.
- U.S. Patent Application Publication No.: 2019/0313146, by Kakuschke et al., discloses a system and methods for interactive filters in live streaming multimedia. At least one method includes a user playing video games on a computer, using streaming software to combine all or part of their computer session with their local camera feed, using streaming software to encode and stream the encoded video to one or more streaming services, streaming services displaying the video stream to one or more viewers, said viewers interacting with the video via the streaming service, the user's streaming software retrieving data about viewer interactions, the streaming software using a computer vision algorithm to detect the position of an object in the user's camera feed, such as the user's face or hands, the streaming software retrieving animation code, the streaming software using the detected position of the detected object to generate a graphical image that aligns with and follows the detected object in the local camera feed, the streaming software adding the graphical image to the video stream in direct response to viewer interactions, and said graphical image being inserted into the video stream prior to the video being published for viewers to consume by the streaming service.
- The inventions heretofore known suffer from a number of disadvantages which include having poor network efficiency, failing to improve computational capabilities, not providing fine control over data polling of devices, not being flexible in connected data source devices and user interface devices, failing to create relevancy in user interface devices, wasting data resources, failing to enhance data analysis, having large data storage requirements, having a high network burden per user, and requiring high signal quality for user devices in the field.
- What is needed is a system and/or method that solves one or more of the problems described herein and/or one or more problems that may come to the attention of one skilled in the art upon becoming familiar with this specification.
- The present invention has been developed in response to the present state of the art, and in particular, in response to the problems and needs in the art that have not yet been fully solved by currently available methods and systems. Accordingly, the present invention has been developed to provide a method and/or system of data polling and/or data processing for AR/MR systems.
- According to one non-limiting embodiment, there is a method of systematic data polling within a networked computing system for augmented/mixed reality display, comprising one or more of the steps of: establishing an overlay governed data stream from a persistent data storage system to an augmented/mixed reality (AR/MR) display device; receiving, over a network, pushed metric data from a plurality of remote IoT devices that are associated with networked assets, wherein it may be that the plurality of remote IoT devices are not all having the same push frequency, wherein it may be that location information of the networked assets is known to the networked computing system; storing received pushed metric data within the persistent data storage system; polling the persistent data storage system for data points from the pushed metric data; generating an overlay template; and/or publishing the pushed metric data that has been polled to the AR/MR display device, which may be according to the overlay governed data stream in association with the location data of the remote IoT devices.
- It may be that the step of establishing an overlay governed data stream includes one or more of the steps of: publishing reciprocal requests of streams for assets and asset overlays between the persistent data storage system and an application programming interface; providing an overlay template to the application programming interface; and/or associating all asset data streams identified by the overlay template to a particular AR/MR device.
- It may be that the step of generating an overlay template includes one or more of the steps of: selecting a networked asset; selecting an overlay object; associating the selected network asset and selected overlay object together, thereby generating an associated display widget; and/or assigning configuration data to the associated display widget.
- It may be that the AR/MR device displays pushed metric data in visual association with the networked assets according to display parameters of an overlay template.
- It may be that configuration data includes at least one or more of: display location information, a scripted trigger that activates a display object based on data values from the networked asset, and a polling frequency.
- According to another non-limiting embodiment, there may be an augmented/mixed reality data processing system, comprising one or more of: a plurality of IoT devices associated with networked assets; a persistent data storage system that may be in functional communication with the plurality of IoT devices such that the persistent data storage system receives and stores pushed metric data from the plurality of IoT devices, the persistent data storage system which may include: a plurality of overlay templates, wherein one, more, or each may including display parameters and/or location information for associated network assets; a data storage device; and/or a body of metric data that may be associated with and sourced from the plurality of IoT devices; an overlay governed stream that may be in functional communication with the persistent storage system, which may include a polling script that may be associated with the body of metric data and/or in functional communication therewith; a body of location data regarding the networked assets; and/or an AR/MR device that may be in functional communication with the persistent data storage system via the overlay governed stream and/or with the body of location data regarding the networked assets such that updated metric data from the plurality of IoT devices is displayed in visual association with real-time visual images of the networked assets.
- It may be that the plurality of overlay templates include configuration data at least including one or more of: display location information, a scripted trigger that activates a display object based on data values from the networked asset, and a polling frequency.
- It may be that the overlay templates include a plurality of drag-and-drop display widgets.
- It may be that the plurality of IoT devices do not all have the same push frequency.
- It may be that the polling script has a polling frequency that is different from a push frequency of at least one of the IoT devices.
- Reference throughout this specification to features, advantages, or similar language does not imply that all of the features and advantages that may be realized with the present invention should be or are in any single embodiment of the invention. Rather, language referring to the features and advantages is understood to mean that a specific feature, advantage, or characteristic described in connection with an embodiment is included in at least one embodiment of the present invention. Thus, discussion of the features and advantages, and similar language, throughout this specification may, but do not necessarily, refer to the same embodiment.
- Furthermore, the described features, advantages, and characteristics of the invention may be combined in any suitable manner in one or more embodiments. One skilled in the relevant art will recognize that the invention can be practiced without one or more of the specific features or advantages of a particular embodiment. In other instances, additional features and advantages may be recognized in certain embodiments that may not be present in all embodiments of the invention.
- These features and advantages of the present invention will become more fully apparent from the following description and appended claims, or may be learned by the practice of the invention as set forth hereinafter.
- In order for the advantages of the invention to be readily understood, a more particular description of the invention briefly described above will be rendered by reference to specific embodiments that are illustrated in the appended drawing(s). It is noted that the drawings of the invention are not to scale. The drawings are mere schematics representations, not intended to portray specific parameters of the invention. Understanding that these drawing(s) depict only typical embodiments of the invention and are not, therefore, to be considered to be limiting its scope, the invention will be described and explained with additional specificity and detail through the use of the accompanying drawing(s), in which:
-
FIGS. 1 and 2 , together, form a network diagram of a data processing system, according to one embodiment of the invention; -
FIG. 3 is a sequence diagram of a method of systematic data polling according, to one embodiment of the invention; -
FIGS. 4 and 5 , together, form a flow chart of a method of creating an overlay, according to one embodiment of the invention; -
FIG. 6 shows a plurality of data models, according to one embodiment of the invention; and -
FIGS. 7-9 illustrate prophetic user interface views for an AR/MR device, according to one embodiment of the invention. - For the purposes of promoting an understanding of the principles of the invention, reference will now be made to the exemplary embodiments illustrated in the drawing(s), and specific language will be used to describe the same. It will nevertheless be understood that no limitation of the scope of the invention is thereby intended. Any alterations and further modifications of the inventive features illustrated herein, and any additional applications of the principles of the invention as illustrated herein, which would occur to one skilled in the relevant art and having possession of this disclosure, are to be considered within the scope of the invention.
- Reference throughout this specification to an “embodiment,” an “example” or similar language means that a particular feature, structure, characteristic, or combinations thereof described in connection with the embodiment is included in at least one embodiment of the present invention. Thus, appearances of the phrases an “embodiment,” an “example,” and similar language throughout this specification may, but do not necessarily, all refer to the same embodiment, to different embodiments, or to one or more of the figures. Additionally, reference to the wording “embodiment,” “example” or the like, for two or more features, elements, etc. does not mean that the features are necessarily related, dissimilar, the same, etc.
- Each statement of an embodiment, or example, is to be considered independent of any other statement of an embodiment despite any use of similar or identical language characterizing each embodiment. Therefore, where one embodiment is identified as “another embodiment,” the identified embodiment is independent of any other embodiments characterized by the language “another embodiment.” The features, functions, and the like described herein are considered to be able to be combined in whole or in part one with another as the claims and/or art may direct, either directly or indirectly, implicitly or explicitly.
- As used herein, “comprising,” “including,” “containing,” “is,” “are,” “characterized by,” and grammatical equivalents thereof are inclusive or open-ended terms that do not exclude additional unrecited elements or method steps. “Comprising” is to be interpreted as including the more restrictive terms “consisting of” and “consisting essentially of.”
-
FIGS. 1 and 2 , together, form a network diagram of a data processing system, according to one embodiment of the invention. The illustrated system is augmented/mixed reality data processing system. There is shown anAR device 20 and a plurality ofphysical assets 22 of known locations havingIoT devices 24 associated therewith, each in communication with acomposer system 29 having acomposer interface 34, anAPI server 30, andpersistent storage 32 containing AR interactive overlays over acomputerized network 28, wherein there is an overlay governedstream 26 from thecomposer system 29 to theAR device 20 that feeds theA R device 20 updated data. Accordingly, the user of the AR device 20 (the illustrated AR user) may view theassets 22 through theAR device 20 with the overlays displayed over the visual interface in association with the assets, the overlays displaying real-time IoT data regarding the assets. - The illustrated system can be seen as having two main areas, 1) entities inside and 2) outside the composer system. Outside the
composer system 29 exists theAR device 20 which the AR user views assets. TheAR device 20 identifies the asset 22 (e.g. using geo-location, automated or manual methods) and sends a request through the communication network to theAPI server 30 in the composer system. Geo-location of theasset 22 uses location information services such as GPS Satellites. - The
asset 22 itself contains one or moreIoT devices 24 which gather data and publish it to the API server. The data updates are sent through the communication network to theAPI server 30 which stores the new values in persistent storage. This occurs whenever updates are available/pushed by the IoT devices, regardless of AR registration of the stream. - Inside the
composer system 29 resides the API server,persistent storage 32 and composer interface. API requests go through theAPI server 30 and are stored in their appropriate data model in persistent storage. When a stream is registered by theAR device 20 theAPI server 30 requests data from thepersistent storage 32 whenever theIoT device 24 publishes an update. - The illustrated
AR device 20 provide enhanced/overlaid perceptual information (generally visual, but may include others, such as but not limited to haptic, somatosensory and olfactory) contemporaneously with and in association with (generally as a perception overlay) real-world environments. The enhanced perceptual information may be constructive, in that it adds information/objects to the experience, and/or may be destructive, in that it masks/removes information/objects from the real-world environment. AnAR device 20 may also be a mixed reality (MR) device wherein virtual reality elements are included, such as but not limited to registering virtual objects in the real-world space that is being perceived. The illustrated AR/MR device 20 is in functional communication with the persistent data storage system via the overlay governedstream 26 and with the body of location data regarding thenetworked assets 22 such that updated metric data from the plurality ofIoT devices 24 is displayed in visual association with real-time visual images of the networked assets - AR devices generally include a processor, a display, sensors (e.g. accelerometers, gyroscopes, signal strength sensors, GPS devices, cameras, microphones), and input devices along with associated hardware, such as but not limited to memory, data busses, power supplies, video cards, audio cards, network devices, speakers, haptic engines, and the like. There are various implementations of AR devices, including but not limited to eyeglasses, goggles, contact lenses, HUDs, virtual retinal displays, handheld devices (e.g. smartphone, tablet), and the like and combinations thereof. The following are non-limiting exemplary AR eyeglasses (smartglasses) the MOVERIO BT-300 by Epson of Los Alamitos, Calif.; the Raptor by Everysight of Haifa, Israel; and the Google Glass Enterprise Edition by Google of Mountain View, Calif. The
AR device 20 is capable of identifying/recognizingnetworked assets 22 via location information of the assets, which may also require location information of the AR device. Accordingly, when the AR user looks towards anetworked asset 22 and has a corresponding overlay template or widget that is associated with that networked asset, the AR user sees information about thatnetworked asset 22 in physical registration with that networked asset, as presented by the overlay template/widget. When the AR user looks away, the information is no longer visible, unless the template/widget is programmed to continue displaying the information (e.g. on a border of the display angularly positioned towards the actual location of the networked asset). There may also be visual markers (e.g. QR codes, object recognition software within the AR device) that facilitate in allowing theAR device 20 to recognizenetworked assets 22 and display overlay data properly in association therewith. - The illustrated overlay governed
stream 26 is in functional communication with thepersistent storage 32 system such that updated data fromrelevant IoT devices 24 is published to the AR/MR device. The overlay governedstream 26 may include a polling script associated with the body of metric data that manages polling thepersistent storage 32 for the metric data (e.g. type of polling, frequency of polling, data types, data ranges, scripted decision trees/matrices for changes in polling, alert/alarm thresholds). The polling script may be an additive compilation of individual polling scripts from the various overlays templates that have been selected/modified by the overlay designer and/or AR user in designing the overlays and/or selection options made when implementing the overlays into a particular AR experience (e.g. where to drop the widget when dragging and dropping which may register the widget a particular angular/positional distance from the asset, a display color scheme may be selected via menu when selecting/placing the widget, a range of alarm status triggers may be altered on select/placement/use of a particular widget). The polling script may have a polling frequency that is different from a push frequency of at least one of the IoT devices. There may be a plurality of polling frequencies, as each widget/overlay template may have its own polling script with its own polling type/frequency. The polling frequency of an overlay template does not need to match up with a push frequency of an associated IoT device. - The illustrated
assets 22 are physical objects and/or locations. Non-limiting examples include: sites of interest (e.g. churches, statues, businesses, historical markers), industrial objects (e.g. valves, mixing tanks, boilers, furnaces, storage tanks, pumps, batteries, turbines), vehicles (e.g. trucks, cars, mowers, units within an automated fleet of vehicles, drones), objects of interest (e.g. museum displays, tour waypoints, interactive educational objects), networked devices (e.g. servers, smartphones, cellular phones, pagers, relay stations, hubs), and the like and combinations thereof. The illustratedassets 22 includeIoT devices 24 that have sensors and publish data updates to the illustrated communication network. Accordingly, theassets 22 are networked assets, as they are associated with a network (some assets may be networked assets via association with multiple networks and/or association with the same network in multiple modes).Assets 22 have a physical location and that location may include one or more orientations (e.g. direction a car is facing/traveling). Theasset 22 itself may “know” its location information, such as but not limited to a GPS device within theasset 22 that, via the illustrated GPS satellite, determines the asset's location. The location of theasset 22 may be determined by other sensors (e.g. position sensors along a track, motion detectors, accelerometers, signal strength detectors). The location of theasset 22 may be fixed and may be registered with one or more components described herein. Non-limiting examples of global positioning modules include: a global positioning system described in U.S. Pat. No. 6,002,363, issued to Krasner, which is incorporated for their supported teachings herein; a Garmin e Trex Hiking GPS receiver, manufactured by Garmin International, Inc., 1200 East 151st Street, Olathe, Kans., 66062, USA. - A collection of
networked assets 22 may include a very wide variety ofIoT devices 24 that may be from diverse manufacturers, made at different times, installed in different production sessions, using different communication protocols, providing data in different formats, providing data updates at different polling/interrupt (push) cycle frequencies, and etc. Accordingly, thecollective IoT devices 24 feed of a collection ofnetworked assets 22 may be very complicated and may be very difficult/complicated to manage. Further, as additional needs are identified and/or asnew assets 22 are included over time, the complexity and difficulty may compound over time. - The illustrated
IoT devices 24 include sensors and network communication hardware so that they are able to publish data updates over the communication network. They will also generally include some sort of identifying metadata (e.g. sensor number, registration ID) to differentiate themselves fromother IoT devices 24 and that information may be communicated along with the published data. Non-limiting examples of sensors include: vibration sensors (e.g. geophone, hydrophone, microphone, seismometer), chemical sensors (e.g. Co2 sensors, carbon monoxide detectors, chemoresistors, hydrogen sensors, optodes, ozone monitors, smoke detectors), electricity sensors (e.g. current sensors, electroscopes, galvanometers, hall probes, magnetometers, voltage detectors), environmental sensors (e.g. air pollution sensors, moisture sensors, humistors, gas detectors, rain/snow gauges, actinometers), flow sensors (e.g. air flow metes, anemometers, gas meters, mass flow sensors), navigation sensors (e.g. airspeed indicators, altimeters, gyroscopes, GPS sensors, depth gauges, turn coordinators, variometers), position sensors (e.g. auxanometers, capacitive displacement sensors, flex sensors, gravimeters, impact sensors, inclinometers, odometers, tilt sensors), optical sensors (e.g. CMOS sensors, colorimeters, flame detectors, LED light sensors, photodetectors), pressure sensors (e.g. barograph, boost gauges, piezometers, Pirani gauges), force sensors (e.g. load cells, strain gauges, bhangmeters, torque sensors), thermal sensors (e.g. bolometers, thermometers, radiometers, thermisters) and the like and combinations thereof. Network communication hardware may include network cards, cellular adapters, Bluetooth devices, infrared transmitters/receivers/transponders, and the like and combinations thereof. - The illustrated network includes any electronic communications means which incorporates both hardware and software components of such. Communication among the parties in accordance with the present invention may be accomplished through any suitable communication channels, such as, for example, a telephone network, an extranet, an intranet, Internet, point of interaction device (point of sale device, personal digital assistant, cellular phone, kiosk, etc.), online communications, off-line communications, wireless communications, transponder communications, local area network (LAN), wide area network (WAN), networked or linked devices and/or the like. Moreover, although the invention may be implemented with TCP/AP communications protocols, the invention may also be implemented using other protocols, including but not limited to IPX, Appletalk, IP-6, NetBIOS, OSI or any number of existing or future protocols. If the network is in the nature of a public network, such as the Internet, it may be advantageous to presume the network to be insecure and open to eavesdroppers. Specific information related to the protocols, standards, and application software utilized in connection with the Internet is generally known to those skilled in the art and, as such, need not be detailed herein. See, for example, DILIP NAIK, INTERNET STANDARDS AND PROTOCOLS (1998); JAVA 2 COMPLETE, various authors, (Sybex 1999); DEBORAH RAY AND ERIC RAY, MASTERING HTML 4.0 (1997); and LOSHIN, TCP/IP CLEARLY EXPLAINED (1997), the contents of which are hereby incorporated by reference. A non-limiting example of a network card may be a Belkin Gigabit Ethernet Express Card, manufactured by Belkin International Inc., 12045 E. Waterfront Dr., Playa Vista, Ca, 90094.
- The illustrated
composer system 29 includes an API server, apersistent storage system 32, and a composer interface, each in communication with each other as needed to perform their various operations. Thecomposer system 29 allows for an overlay designer to design a plurality of overlay templates that the AR user may then use to populate their perception experience with enhancements/overlays, generally in the form of drag-and-drop widgets that the user can incorporate into their AR interface which then automatically provide data updates in association with thenetworked assets 22 through the field of view of the AR user's AR device. - The illustrated
API server 30 provides control and management over data incoming from thenetworked assets 22 and theirIoT devices 24 as well as providing a portal between the AR devices of the AR users and thepersistent storage 32 of the composer system. The server will generally include a processer, memory, data busses, network communication hardware and software, along with other hardware/software utilized therewith. Non-limiting examples of servers include: a HP MediaSmart Server EX495, manufactured by Hewlett-Packard Company, 3000 Hanover Street, Palo Alto, Calif., 94304, USA; a Intel Server System SR2500ALBKPR, manufactured by Intel Corporation, 2200 Mission College Blvd, Santa Clara, Calif., 95054, USA. - The illustrated
persistent storage 32 collects and stores data in service of one or more portions of the system, as appropriate to the functions thereof. The data storage system is in communication with the various modules and components of the system over acomputerized network 28 and stores data transferred there through (e.g. in functional communication with the plurality ofIoT devices 24 such that the persistent data storage system receives and stores pushed metric data from the plurality of IoT devices). Data storage systems may include databases and/or data files. There may be one or more hardware memory storage devices, which may be, but are not limited to, hard drives, flash memory, optical discs, RAM, ROM, and/or tapes. A non-limiting example of a data base is Filemaker Pro 11, manufactured by Filemaker Inc., 5261 Patrick Henry Dr., Santa Clara, Calif., 95054. Non-limiting examples of a data storage module may include: a HP Storage Works P2000 G3 Modular Smart Array System, manufactured by Hewlett-Packard Company, 3000 Hanover Street, Palo Alto, Calif., 94304, USA; or a Sony Pocket Bit USB Flash Drive, manufactured by Sony Corporation of America, 550 Madison Avenue, New York, N.Y., 10022. - The illustrated
persistent storage system 32 includes a plurality of overlay templates, one or more data storage devices, asset data points, and IoT data points. - The overlay templates may each include display parameters and location information for associated network assets. The plurality of overlay templates include configuration data, generally at least including one or more of: display location information, a scripted trigger that activates a display object based on data values from the networked asset, and a polling frequency. The overlay templates may be embodied as drag-and-drop display widgets.
- The asset data points include meta data regarding the networked assets. Such may include location information (e.g. position, orientation), name/ID, operational data (e.g. tolerances, operating ranges, warning messages, historical information, installation information, repair information, MSDS sheet information). Together, a collection of asset data points form a body of location data regarding the networked assets.
- The IoT data points are a body of metric data associated with and sourced from the plurality of IoT devices.
- The illustrated
composer interface 34 allows the overlay designer to create overlay templates/widgets. This interface has access toasset 22 and IoT data models/points. Once saved inpersistent storage 32 the overlay data model is pushed to theAR device 20 when a stream is requested for a given asset. TheAPI server 30 associates IoT data points with the overlay to create the stream and publish updates according to the polling script of the overlay/widget. - In one non-limiting embodiment, there is a system wherein data sources report tagged data to a server. It may be that the data sources are geo-tagged when they are installed. If the data source is a moving source then the data packets will include position information, which may come from onboard position sensors.
- In another non-limiting embodiment, there is a server with input from IoT devices that is parsed against an input template and stored in persistent storage. There may be one or more overlay templates that determines how often the data within the persistent storage is polled, how the data is conditioned, how it is pre-analyzed (e.g. position and time data turned into velocity/acceleration data), safety ranges (e.g. when to push data and/or push the display of data to AR user devices even if they would not otherwise display it), and how the building blocks are populated to be ready for the widgets, which get sent to the user device for display.
- In still yet another embodiment, there is an AR user interface device with position and orientation sensors. The user device includes widgets that are active (e.g. displayed or non-displayed but still active) and that generate queries that are sent to the server to get the blocks of data necessary for the interface to properly display the widgets.
- In operation, the illustrated system allows parsing of IoT data sources (e.g. coming in the form of a RESTful API) which may determine the type of data that is available in the data source, the values, and/or the potential rendering of that data in a user interface. This information is maintained into blocks/widgets/templates in persistent storage that are prepopulated with the data actually coming from the data source. The blocks have properties and the properties allow for the blocks to be positioned onto the screen of an AR device, connected to the data source and rendered in a way that is meaningful for the specific kind of data. The data may include relative position and orientation of the data source with respect to the user and the AR device has access to its own position and orientation data. There may be metadata (e.g. describing the
IoT device 24 and/or networked asset) which can be presented to the user along with information such as position and events happening around a user. The position and orientation data of the user and data sources are incorporated into the display widgets to allow the system to synergistically display information to the user on the display device. As a non-limiting example, a user may be viewing a particular data source and see data displayed associated with that data source. There may be an alert on another data source which may have been triggered by un-displayed data being outside of a particular predefined range (e.g. temperature in a mixing tank being too high or rising too fast) cause a flashing red arrow to appear on the screen pointing in the direction that the user needs to look in order to view a second data source and that arrow continues to display until the user changes their view to view the second data source. - Advantageously, the illustrated system (and method described in
FIG. 3 ), synergistically combines a great variety of push/pull interrupt and data polling techniques of a complicated IoT system into an easily managed and operated system. The synergistic combination greatly reduces network traffic, especially to remote AR devices; reduces minimum operating performance standards for AR devices; allows for use of legacy devices within the system in combination with state of the art devices without complicated data conditioning systems; reduces the cost and time required to install and implement networked asset AR/MR systems, and reduces power consumption for networked AR/MR devices. -
FIG. 3 is a sequence diagram of a method of systematic data polling according, to one embodiment of the invention. There is shown a method of systematic data polling within a networked computing system for augmented/mixed reality display, wherein an IoT device, and API server, a persistent data store 32 (persistent storage system), and an AR/MR device, each in functional communication as needed to performed the illustrated steps, interoperate to provide systematic data polling. - Initially, the method includes establishing an overlay governed data stream from a persistent data storage system to an augmented/mixed reality (AR/MR) display device. This generally begins with publishing reciprocal requests of streams for assets and asset overlays between the persistent data storage system and an application programming interface. The illustrated persistent data store requests streams for the networked assets (i.e. the data updates from the IoT devices), which the
API server 30 provides via the illustrated [Multiple IoT Devices Push Data]box 36. The illustratedAPI server 30 requests asset overlays from persistent data store as required for the particular user of the AR device. The persistent data store provides the requested overlay template(s) to theAPI server 30 which theAPI server 30 then uses to associate all asset data streams identified by the overlay template to a particular AR/MR device, thereby feeding theAR device 20 of the AR user. Such may occur automatically on a particular AR user logging into aparticular AR device 20 or type of AR device on the network. The overlay templates include configuration data, which may include one or more of: display location information, a scripted trigger that activates a display object based on data values from the networked asset, and a polling frequency. Accordingly, once the persistent data store is in receipt of data updates from the IoT devices and theAPI server 30 is in receipt of the relevant overlays of a particular AR device/user, the overlay governed stream is established and theAPI server 30 may then be able to provide that data stream to the AR device. - As a user of the AR/
MR device 20 includes aparticular asset 22 within the view of the user, the AR/MR device will identify theasset 22 through geo-location, automatic detection, and/or human driven manual detection methods. Once identified theAR device 20 may request a stream of asset related data points which come from the IoT Devices associated with the Asset. Alternatively, theAR device 20 may receive data from the overlay governed stream for all associated overlay templates/widgets, even for those assets those not in view of the AR/MR device. - The
API server 30 returns the IoT data point identifiers and their relative layout positions (e.g. via overlay configuration/template). TheAR device 20 creates the overlay and displays it for the user, updating the data displayed whenever IoT data point updates are pushed to the stream. - During this same period, the
API server 30 and/or the persistent data store are receiving, over a network, pushed metric data from a plurality of remote IoT devices that are associated with networked assets. It may be that the plurality of remote IoT devices do not all have the same push frequency. Further, location information of the networked assets is known to the networked computing system (e.g. theAPI server 30 and/or the persistent data store). IoT devices push metric data to an API server. TheAPI server 30 stores this data into a persistent data store, such as but not limited to a database, or file for future access. This allows theAPI server 30 and/or theAR device 20 to poll the persistent data store and/or theAPI server 30 for data points from the pushed metric data and thereby publish data (see the [All Registered Streams with Updates] box 38) to AR device(s) that registered for streaming data according to the overlay governed data stream in association with the location data of the remote IoT devices. Thereby the AR/MR device 20 may display pushed metric data in visual association with the networked assets according to display parameters of an overlay template - Updated IoT data points may be read by the
API server 30 and pushed in a stream to the AR Device. TheAR device 20 will update its display with regards to the overlay configuration as data inpersistent storage 32 is polled via the overlay governedstream 26 according to the polling configuration of the overlay governed stream 26 (e.g. the accumulation of polling scripts of the incorporated overlay templates). -
FIGS. 4 and 5 , together, form a flow chart of a method of creating an overlay, according to one embodiment of the invention. The method begins with a request for a list of assets, proceeds to a sequence wherein an asset is selected and an overlay is created in association with the selected asset, the overlay is configured, saved, and then the process is terminated on closure of the composer. - The flow of creating an overlay is executed within the device containing the composer interface. Such may be, but is not limited to a PC, dumb terminal of a server, laptop, tablet and/or mobile device. The user is provided a list of assets as defined in the persistent storage. Once selected, the user can either create a new overlay configuration or update a currently existing overlay. The overlay is associated with the asset thereby generating an associated display widget. The overlay configuration for the given asset is then loaded into the composer interface. Meta data about the asset is generally displayed to facilitate a complete understanding of overlay to be created.
- A list of real-time data points associated with the Asset are provided to the user. The user selects the data point and the destination on the overlay, recording the relative position to the other data points currently displayed. The user selects the type of display method for this data point, e.g. Textual Output, Warning Lights, Meter, etc. Any necessary configuration for the display method would be performed here, e.g. setting value ranges to display “green”, “yellow”, “red” lights. Selections may be the user are assigned as configuration data to the associated display widget.
- The user repeats the RT Data assignment process until the overlay design is completed. The overlay configuration is saved to persistent storage where it can be later loaded by the AR/MR Device. The process can be repeated with additional assets.
- Once the user has created all necessary Overlays, the Composer Interface can be closed.
-
FIG. 6 shows a plurality of data models, according to one embodiment of the invention. There is shown an Asset Data Model 42 (top left), an IoT_Data_Point Model 44 (top right), an Overlay Data Model 46 (middle), and an Overlay_Item Data Model 48 (bottom). The illustrated data models illustrate non-limiting exemplary data models for use in a data polling/processing system. - The Asset Data Model represents the physical asset the AR/MR Device will project an overlay with live streaming data. The model contains the geo location and identification metrics to associate the view of the AR device to a physical asset. Location contains the geo location information that will be updated as the asset moves. Identifiers contains any information used for non-geo location based identification.
- The IoT_Data_Point Data Model represents the physical IoT measurement device attached to an asset. The model contains identifiers to associate the data point with the IoT Device, IoTID, as well as the Asset, AssetID. The UnitType field defines the type of value being measured, e.g. Speed in mph. Value and LastUpdated contain the latest value and time of update respectively. When new data is pushed from the IoT Device, these fields will be updated.
- The Overlay Data Model represents the Overlay created by the Composer Interface. The model will contain an association to an Asset, AssetID. The Description provides context to the AR/MR Device user to select the appropriate overlay for the situation, e.g. “Tractor in repair mode” or “Tractor in harvest mode”. The AR Device user will see all overlays for the given Asset and will select which to display.
- Individual data points will be modeled in Overlay_Item. The item model contains a reference to the overlay, OverlayID, and the IoT Data Point, IoTDataPointID. The position on the overlay is assigned to Position with the method of displaying defined in TypeOfDisplay. Data Values can be represented in multiple ways, e.g. text, warning lights, meters, graphs.
-
FIGS. 7-9 illustrate prophetic user interface views for an AR/MR device, according to one embodiment of the invention. There is shown a plurality of views, as seen by an AR user through an AR/MR device.FIG. 7 shows an initial view with a flashingarrow 52 notifying the user of an alert related to a networked asset 54 that is not visible in the current view and notifying the user of a direction of orientation change that will bring that networked asset 54 into view.FIGS. 8 and 9 show the networked asset 54 on alert in view.FIG. 9 shows an alternative widget configuration for that same networked asset on alert as compared to that shown inFIG. 8 , wherein twowidgets 56, 58 are included for a single networked asset. The two illustrated widgets may be different widgets utilizing the same IoT device data or they may be pulling data from two different IoT devices that are associated with the same networked asset. - It is understood that the above-described embodiments are only illustrative of the application of the principles of the present invention. The present invention may be embodied in other specific forms without departing from its spirit or essential characteristics. The described embodiment is to be considered in all respects only as illustrative and not restrictive. The scope of the invention is, therefore, indicated by the appended claims rather than by the foregoing description. All changes which come within the meaning and range of equivalency of the claims are to be embraced within their scope.
- Thus, while the present invention has been fully described above with particularity and detail in connection with what is presently deemed to be the most practical and preferred embodiment of the invention, it will be apparent to those of ordinary skill in the art that numerous modifications, including, but not limited to, variations in size, materials, shape, form, function and manner of operation, assembly and use may be made, without departing from the principles and concepts of the invention as set forth in the claims. Further, it is contemplated that an embodiment may be limited to consist of or to consist essentially of one or more of the features, functions, structures, methods described herein.
Claims (20)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/412,076 US20210385523A1 (en) | 2018-11-15 | 2021-08-25 | Method and system of data polling for augmented/mixed reality applications |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862767683P | 2018-11-15 | 2018-11-15 | |
US16/743,640 US11134301B2 (en) | 2018-11-15 | 2020-01-15 | Method and system of data polling for augmented/mixed reality applications |
US17/412,076 US20210385523A1 (en) | 2018-11-15 | 2021-08-25 | Method and system of data polling for augmented/mixed reality applications |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/743,640 Continuation US11134301B2 (en) | 2018-11-15 | 2020-01-15 | Method and system of data polling for augmented/mixed reality applications |
Publications (1)
Publication Number | Publication Date |
---|---|
US20210385523A1 true US20210385523A1 (en) | 2021-12-09 |
Family
ID=70726874
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/743,640 Active US11134301B2 (en) | 2018-11-15 | 2020-01-15 | Method and system of data polling for augmented/mixed reality applications |
US17/412,076 Abandoned US20210385523A1 (en) | 2018-11-15 | 2021-08-25 | Method and system of data polling for augmented/mixed reality applications |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/743,640 Active US11134301B2 (en) | 2018-11-15 | 2020-01-15 | Method and system of data polling for augmented/mixed reality applications |
Country Status (1)
Country | Link |
---|---|
US (2) | US11134301B2 (en) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9589000B2 (en) * | 2012-08-30 | 2017-03-07 | Atheer, Inc. | Method and apparatus for content association and history tracking in virtual and augmented reality |
US10692364B1 (en) * | 2019-02-28 | 2020-06-23 | Honeywell International Inc. | Security systems integration |
CN113688145B (en) * | 2020-09-14 | 2024-07-30 | 鼎捷软件股份有限公司 | Electronic device for detecting business system and detection method thereof |
CN112752158B (en) * | 2020-12-29 | 2023-06-20 | 北京达佳互联信息技术有限公司 | Video display method and device, electronic equipment and storage medium |
US11954774B2 (en) | 2021-08-29 | 2024-04-09 | Snap Inc. | Building augmented reality experiences with IoT devices |
US20230063944A1 (en) * | 2021-08-29 | 2023-03-02 | Yu Jiang Tham | Two-way control of iot devices using ar camera |
US11941231B2 (en) | 2021-08-29 | 2024-03-26 | Snap Inc. | Camera interfaces to interact with IoT devices |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110221656A1 (en) * | 2010-02-28 | 2011-09-15 | Osterhout Group, Inc. | Displayed content vision correction with electrically adjustable lens |
US20120116197A1 (en) * | 2006-11-29 | 2012-05-10 | Medtronic Minimed, Inc. | Methods and Apparatuses for Detecting Medical Device Acceleration, Temperature, and Humidity Conditions |
US20140320529A1 (en) * | 2013-04-26 | 2014-10-30 | Palo Alto Research Center Incorporated | View steering in a combined virtual augmented reality system |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1897368B1 (en) | 2005-06-22 | 2018-02-21 | Koninklijke Philips N.V. | A method and apparatus for displaying data content |
US8292733B2 (en) * | 2009-08-31 | 2012-10-23 | Disney Enterprises, Inc. | Entertainment system providing dynamically augmented game surfaces for interactive fun and learning |
US20120185905A1 (en) | 2011-01-13 | 2012-07-19 | Christopher Lee Kelley | Content Overlay System |
US20150088937A1 (en) | 2013-09-20 | 2015-03-26 | Darrin K. Lons | Systems and Methods of Mapping Locales |
US9871991B2 (en) | 2014-03-31 | 2018-01-16 | Jamdeo Canada Ltd. | System and method for display device configuration |
JP6344029B2 (en) * | 2014-04-16 | 2018-06-20 | 富士通株式会社 | Display method, display program, and display device |
US20160275093A1 (en) * | 2015-03-18 | 2016-09-22 | Zmags, Inc. | Creating and deploying dynamic content experiences |
US10136183B2 (en) | 2015-12-16 | 2018-11-20 | Gracenote, Inc. | Dynamic video overlays |
US10666512B2 (en) * | 2017-03-09 | 2020-05-26 | Aerohive Networks, Inc. | Current configuration state specific device configuration |
US20190019090A1 (en) * | 2017-07-12 | 2019-01-17 | Accenture Global Solutions Limited | Field services platform |
US10885446B2 (en) | 2017-07-24 | 2021-01-05 | Sap Se | Big-data driven telematics with AR/VR user interfaces |
US10521961B2 (en) | 2017-12-10 | 2019-12-31 | International Business Machines Corporation | Establishing a region of interest for a graphical user interface for finding and depicting individuals |
US10484736B2 (en) | 2018-03-12 | 2019-11-19 | General Workings Inc. | Systems and methods for a marketplace of interactive live streaming multimedia overlays |
US10924796B2 (en) | 2018-04-10 | 2021-02-16 | Logitech Europe S.A. | System and methods for interactive filters in live streaming media |
-
2020
- 2020-01-15 US US16/743,640 patent/US11134301B2/en active Active
-
2021
- 2021-08-25 US US17/412,076 patent/US20210385523A1/en not_active Abandoned
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120116197A1 (en) * | 2006-11-29 | 2012-05-10 | Medtronic Minimed, Inc. | Methods and Apparatuses for Detecting Medical Device Acceleration, Temperature, and Humidity Conditions |
US20110221656A1 (en) * | 2010-02-28 | 2011-09-15 | Osterhout Group, Inc. | Displayed content vision correction with electrically adjustable lens |
US20140320529A1 (en) * | 2013-04-26 | 2014-10-30 | Palo Alto Research Center Incorporated | View steering in a combined virtual augmented reality system |
Also Published As
Publication number | Publication date |
---|---|
US11134301B2 (en) | 2021-09-28 |
US20200162785A1 (en) | 2020-05-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11134301B2 (en) | Method and system of data polling for augmented/mixed reality applications | |
US11709067B2 (en) | User controlled directional interface processing | |
KR102447438B1 (en) | Alarm device and method for informing location of objects thereof | |
US10922881B2 (en) | Three dimensional/360 degree (3D/360°) real-time full information smart management integrated mapping system (SMIMS) and process of generating the same | |
US20130282154A1 (en) | Remote dynamic message sign systems and methods of control | |
CN110365721A (en) | A kind of method, terminal device and system based on the triggering service of user's scene perception | |
CN102393808A (en) | Camera applications in a handheld device | |
WO2019127229A1 (en) | Method and device for displaying monitored data and unmanned aerial vehicle monitoring system | |
US8937545B2 (en) | System and method for situational awareness | |
CN112129307B (en) | Method and device for generating bus route information, electronic equipment and storage medium | |
CN114241415B (en) | Vehicle position monitoring method, edge computing device, monitoring device and system | |
US9860679B2 (en) | System and method for situational awareness | |
US20170006108A1 (en) | Navigation method, smart terminal device and wearable device | |
US20220234740A1 (en) | Flight information synchronization using ad hoc networking | |
US9921290B2 (en) | System and method for situational awareness | |
CN104038274A (en) | Optical fiber detection and maintenance management system | |
US20200204393A1 (en) | Fleet of home electronic systems | |
CN105657825A (en) | Positioning method, mobile terminal, cloud server and positioning system | |
El-Moursy et al. | Home Automation Using Augmented Reality (HAAR) | |
CN105190575A (en) | Information processing device, information processing method, and information processing system | |
US12019941B2 (en) | Information processing apparatus and information processing method | |
Krukowski et al. | Comprehensive Building Information Management System Approach. | |
KR20240095642A (en) | Apparatus and Method for real-time sharing drone mission information including streaming | |
KR20240095645A (en) | Apparatus and Method for real-time sharing drone mission information including video streaming based on a Remote ID standard | |
CN112002145A (en) | Method and system for reporting illegal flight of unmanned aerial vehicle |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: JUJO, INC., A DELAWARE CORPORATION, COLORADO Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:GENTILE, ANTONIO;KHURSHUDOV, ANDREI;GUTIERREZ, RAFAEL;REEL/FRAME:057290/0437 Effective date: 20200115 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |