The present disclosure relates generally to an augmented reality device and, more particularly, to methods and systems for representing and interacting with augmented reality content using the augmented reality device.
Technology advances have enabled mobile personal computing devices to become more capable and ubiquitous. In many cases, these devices will have both a display as well as a combination of sensors. For example, the devices may include GPS, accelerometers, gyroscopes, cameras, light meters, and compasses or some combination thereof. These devices may include mobile computing devices as well as head mounted displays.
Additionally, these mobile personal computing devices are increasingly capable of both displaying information for the user as well as supplying contextual information to other systems and applications on the device. Such contextual information can be used to determine the location, orientation and movement of the user interface display of the device.
Embodiments consistent with the present disclosure provide an apparatus and methods for representing and interacting with augmented reality content.
Consistent with a disclosed embodiment, a wearable device provides a virtual menu to a user. The wearable device may include a display; at least one sensor configured to provide an output indicative of an orientation of a head of the user; and at least one processing device. The at least one processing device may be configured to monitor an orientation of the head of the user based on the output of the at least one sensor, determine based on the monitored orientation of the head whether the user is looking upward or downward with respect to a predetermined horizontal threshold; and cause the virtual menu to be shown on the display if the user is determined to be looking upward or downward with respect to the predetermined horizontal threshold.
Consistent with another disclosed embodiment, a method provides a virtual menu to a user of a wearable device. The method may include monitoring, based on output of at least one sensor, an orientation of a head of the user; determining based on the monitored orientation of the head whether the user is looking upward or downward with respect to a predetermined horizontal threshold; and causing the virtual menu to be shown on a display of the wearable device if the user is determined to be looking upward or downward with respect to the predetermined horizontal threshold.
Consistent with another disclosed embodiment, a wearable device provides a virtual menu to a user. The wearable device may include a display; at least one sensor configured to provide an output indicative of a viewing direction of the user, and at least one processing device. The at least one processing device may be configured to cause a virtual menu to be shown on the display, the virtual menu including at least one selectable element; monitor a viewing direction of the user based on the output of the at least one sensor; determine, based on the monitored viewing direction, whether the user is looking in a direction of the at least one selectable element of the virtual menu; determine an amount of time that the user looks in the direction of the at least one selectable element of the virtual menu; and cause at least one action associated with the at least one selectable element of the virtual menu if the amount of time exceeds a predetermined dwell time threshold.
Consistent with another disclosed embodiment, a method provides a virtual menu to a user of a wearable device. The method may include causing a virtual menu to be shown on a display of the wearable device, wherein the virtual menu includes at least one selectable element; monitoring, based on output of at least one sensor, a viewing direction of the user; determining, based on the monitored viewing direction, whether the user is looking in a direction of the at least one selectable element of the virtual menu; determining an amount of time that the user looks in the direction of the at least one selectable element of the virtual menu; and causing at least one action associated with the at least one selectable element of the virtual menu if the amount of time exceeds a predetermined dwell time threshold.
Consistent with another disclosed embodiment, a wearable device provides a virtual menu to a user. The wearable device may include a display; at least one sensor configured to provide an output indicative of a viewing direction of the user, and at least one processing device. The at least one processing device may be configured to monitor a viewing direction of the user based on the output of the at least one sensor; provide a menu on the display; determine, based on the monitored viewing direction, whether the user is looking in a direction of the location of the menu on the display; and expand the menu if the user is determined to be looking in the direction of the location of the menu on the display.
Consistent with another disclosed embodiment, a method provides a virtual menu to a user of a wearable device. The method may include monitoring, based on output of at least one sensor, a viewing direction of the user, providing a menu on a display of the wearable device; determining, based on the monitored viewing direction, whether the user is looking in a direction of the location of the menu on the display; and expanding the menu if the user is determined to be looking in the direction of the location of the menu on the display.
Consistent with a disclosed embodiment, a wearable device establishes a communication path with a user of the wearable device and at least one individual. The wearable device includes a display; at least one sensor configured to provide an output indicative of a viewing direction of the user; and at least one processing device. The at least one processing device is configured to monitor the viewing direction of the user based on the output of the at least one sensor; determine, based on the monitored viewing direction, whether the user is looking in the direction of the at least one individual; and establish the communication path between the user and the at least one individual if the user is determined to be looking in the direction of the at least one individual.
Consistent with another disclosed embodiment, a method establishes a communication path with a user of a wearable device and at least one individual. The method includes monitoring, based on an output of at least one sensor, a viewing direction of the user; determining, based on the monitored viewing direction, whether the user is looking in the direction of the at least one individual; and establishing the communication path between the user and the at least one individual if the user is determined to be looking in the direction of the at least one individual.
Consistent with a disclosed embodiment, a lockable, wearable device is provided. The wearable device comprise a display, at least one sensor configured to provide an output indicative of a viewing direction of a user, and at least one processing device. The at least one processing device is configured to track a pattern of the viewing direction of the user; and unlock the lockable, wearable device to provide the user with access to information on the display of the device when the tracked pattern of movement matches a predetermined pattern of movement.
Consistent with another disclosed embodiment, a lockable, wearable device is provided. The wearable device comprise a display; at least one sensor configured to provide an output indicative of a viewing direction of a user; and at least one processing device. The at least one processing device is configured to cause an array of graphical objects to be shown on the display of the wearable device; detect selection by the user of at least two graphical objects from among the array of graphical objects based on the output indicative of the viewing direction of the user; and unlock the lockable, wearable device to provide the user with access to information on the display of the device based on whether the detected selection of the at least two graphical objects matches a predetermined object selection sequence.
Consistent with another disclosed embodiment, a method unlocks a wearable device. The method includes tracking, using at least one sensor of the wearable device, a viewing direction of a user of the wearable device; and unlocking the wearable device to provide the user with access to information on a display of the wearable device when the tracked viewing direction matches a predetermined pattern of movement.
Consistent with another disclosed embodiment, a method unlocks a wearable device. The method includes causing an array of graphical objects to be shown on a display of the wearable device; detecting selection by the user of at least two graphical objects from among the array of graphical objects based on an output of at least one sensor of the wearable device, wherein the output is indicative of a viewing direction of a user of the wearable device; and unlocking the wearable device to provide the user with access to information of a display of the device based on whether the detected selection of the at least two graphical objects matches a predetermined object selection sequence.
Consistent with another disclosed embodiment, a wearable device provides task-based instructions to a user. The wearable device may include a display; a network interface; a data input device configured to capture information relating to progress of a task; and at least one processing device. The at least one processing device may be configured to provide to a server system, via the network interface, the captured information relating to progress of the task; receive from the server system, via the network interface, information relating to a next step in the task; and cause the information relating to the next step in the task to be shown on the display.
Consistent with another disclosed embodiment, a method provides task-based instructions to a user of a wearable device. The method may include capturing, via a data input device of the wearable device, information relating to progress of a task; providing to a server system, via a network interface, the captured information relating to progress of the task; receiving from the server system, via the network interface, information relating to a next step in the task; and causing the information relating to the next step in the task to be shown on a display of the wearable device.
Consistent with another disclosed embodiment, a wearable device controls operation of an on-board component. The wearable device may include a display; at least one sensor configured to provide an output indicative of a viewing direction of a user; and at least one processing device. The at least one processing device may be configured to cause at least one graphical icon associated with a control of at least one aspect of the on-board component to be shown on the display such that the user perceives the location of the at least one graphical icon as fixed relative to real world coordinates; determine, based on the output of the at least one sensor, whether the user is looking in a direction of the at least one graphical icon; and initiate the control of the at least one aspect of the on-board component when the user is determined to be looking in the direction of the at least one graphical icon.
Consistent with another disclosed embodiment, a method controls operation of an on-board component of a wearable device. The method may include causing at least one graphical icon associated with a control of at least one aspect of the on-board component to be shown on a display of the wearable device such that the user perceives the location of the at least one graphical icon as fixed relative to real world coordinates; determining, based on an output of at least one sensor of the wearable device configured to provide an output indicative of a viewing direction of the user of the wearable device, whether the user is looking in a direction of the at least one graphical icon; and initiating the control of the at least one aspect of the on-board component when the user is determined to be looking in the direction of the at least one graphical icon.
Consistent with another disclosed embodiment, a system interacts with and shares information between a plurality of users of a corresponding plurality of wearable devices. The system may include a network interface; and at least one processing device. The at least one processing device may be configured to receive, via the network interface, information from a first wearable device; select from the plurality of wearable devices one or more designated wearable devices to receive the information; and send, via the network interface, the information to the one or more designated wearable devices.
Consistent with another disclosed embodiment, a method interacts with and shares information between a plurality of users of a corresponding plurality of wearable devices. The method may include receiving, via a network interface, information from a first wearable device; selecting from the plurality of wearable devices one or more designated wearable devices to receive the information; and sending, via the network interface, the information to the one or more designated wearable devices.
Consistent with other disclosed embodiments, non-transitory computer-readable storage media may store program instructions, which are executed by at least one processor and perform any of the methods described herein.
The foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the claims.
The accompanying drawings, which are incorporated in and constitute a part of this disclosure, illustrate various disclosed embodiments. In the drawings:
Mobile personal computing devices may include one or more portable displays used to overlay virtual objects with real world objects. Virtual content that relates to one or more real world objects (e.g., places, things, people, etc.) and that may be provided on a display may be referred to as Augmented Reality (AR) content. Such AR content may be provided on a display together with the real world objects to which the AR content relates. Further, the views of the real world objects on a display may correspond to computer-generated representations of those objects or, in some embodiments (e.g., where at least a portion of the display passes or channels light), may correspond to actual, non-computer-generated views of the objects.
In some embodiments, a device may provide various menus from which a user may select. For example, in one embodiment, a wearable augmented reality device may provide a menu that appears to hover over a user's head and outside of the user's field of view when the user is looking at the horizon. To access the menu, the user looks up toward the spot where the user perceives the menu to be located. For example, in one embodiment, the wearable augmented reality device may provide a user interface that enables a user to select a menu item by looking at the menu item. In another embodiment, the wearable augmented reality device may provide a nested menu system that enables the user to look toward a menu shown on a display, select the menu, and expand the menu upon selection. In another embodiment, a system may provide the capability to monitor the progress of a task assigned to a particular user of a wearable augmented reality device. As steps in the task are completed, information relating to the next steps is passed to the user.
Users of AR systems may wish to control other devices. For example, in another embodiment, a wearable augmented reality device may provide an interface for controlling the operation of a camera without relying upon voice or button activated controls.
Users of AR systems may also wish to communication with other users. Accordingly, in another embodiment, a system may allow a user of a wearable augmented reality device to establish a communication connection with another individual or group of individuals using wearable augmented reality devices by looking in the direction of those individuals or group. In another embodiment, a one-to-many system may enable sharing of information between multiple wearable augmented reality device users. For example, information available to a particular user can be made available to multiple other users by showing that information on the displays of the multiple users.
Users of such devices may also wish for their content to be secure from being accessed by unauthorized users. Accordingly, in another embodiment, a wearable augmented reality device may provide a technique for locking and unlocking the device such that information stored on the device or conveyed to and from the device remains protected and accessible only by the intended/authorized user.
Server system 110 may be a system configured to provide and/or manage services associated with providing AR content to users. Consistent with the disclosure, server system 110 may provide AR content to user system 120 based on information received from user system 120. For example, server system 110 may provide AR content to user system 120 based on a detected position, detected position change, or detected/determined context of user system 120. Such AR content may also be provided to user system 120 based upon requests received from user system 120 or based on a detected and/or recognized object within a field of view of an imaging device associated with user system 120. In general, any type of AR content, including any desired form of information, can be provided from server system 110 to user system 120 based on the requirements of a particular application. Further, any suitable trigger may be used to initiate transfer and/or updating of AR content provided to user system 120 by server system 110.
Server system 110 may include one or more components that perform processes consistent with the disclosed embodiments. For example, server system 110 may include one or more computers, e.g., processor device 111, a CPU, and/or other hardware-based applications processing devices, configured to execute software instructions programmed to perform aspects of the disclosed embodiments. Such software instructions may be stored, for example, in database 113 and when implemented may create and/or maintain a global coordinate system, provide AR objects to user systems for display, transmit information associated with the AR objects to user system 120, or any other relevant function. In one aspect, database 113 may be co-located with server system 110. Alternatively, database 113 may be located remotely from the server system 110. Database 113 may include computing components (e.g., database management system, database server, etc.) configured to receive and process requests for data stored in memory devices of database(s) 113 and to provide data from database 113.
User system 120 may include a system associated with a user (e.g., a consumer, field technician, equipment operator, or any other individual that may benefit from received AR content) that is configured to perform one or more operations consistent with the disclosed embodiments. In one embodiment, a user may operate user system 120 to perform one or more such operations. User system 120 may include a communication interface 121, a processor device 123, a memory 124, a sensor array 125, a display 122, and/or any other components that may facilitate the display of AR content to the user. The processor device 123 may be configured to execute software instructions to perform aspects of the disclosed embodiments. User system 120 may be configured in the form of an AR device, such as a head mounted display (HMD). Although in the present disclosure user system 120 is described in connection with a HMD, user system 120 may include tablet devices, mobile phone(s), laptop computers, a wearable device, such as a smart watch, and any other computing device(s) known to those skilled in the art.
Communication interface 121 may include one or more communication components, such as cellular, WiFi, Bluetooth transceivers, or any other wireless transceivers or communication equipment. Communication interface 121 may package and send user commands or input across network 130 to server system 110. Based on these commands and/or input, server system may return additional or updated AR content to be displayed to the user by user system 120. This additional or updated AR content, or instructions for providing the additional or updated AR content, may be received from server system 110 via communication interface 121. Processor device 123 may access and use information received via communication interface 121.
Display 122 may include any suitable display for providing AR content to a user. For example, in some embodiments, display 122 may include one or more translucent, transparent, or semi-transparent components configured to pass at least some light from a scene to the eyes of a user. Display 122 may also include opaque lenses or components, e.g., where the images seen by the user are computer-generated, constitute light-guided projections of real world objects, or include images captured by one or more cameras (or other image acquisition devices) associated with user system 120. In such embodiments, generated, captured, and/or light-guided images of real world objects may be projected onto opaque or semi-opaque components associated with display 122. Display 122 may also project information using holographic images.
Sensor array 125 may include any type of sensor configured to provide an output signal useful in providing AR content to a user. In some embodiments, sensor array 125 may include one or more GPS sensors, cameras, barometric sensors, proximity sensors, physiological monitoring sensors, chemical sensors, magnetometers, gyroscopes, accelerometers, bar code scanners, motion detectors, image sensors, depth sensors, eye tracking sensors, etc.
Processor devices 111 and 123 may include one or more suitable hardware-based processing devices, such as a microprocessor, controller, central processing unit, etc. that can execute software-based instructions. In some embodiments, processor devices 111 and/or 123 may include a microprocessor from the OMAP family manufactured by Texas Instruments, the Snapdragon™ family manufactured by Qualcomm™, or any of various types of processor devices manufactured by other microprocessor manufacturers.
Consistent with disclosed embodiments, one or more components of system 100, including server system 110 and user system 120, may also include one or more memory devices (such as memories 112 and 124) as shown in exemplary form in
In certain embodiments, the memory devices may include database systems, such as database storage devices, including one or more database processing devices configured to receive instructions to access, process, and send information stored in the storage devices. By way of example, database systems may include Oracle™ databases, Sybase™ databases, or other relational databases or non-relational databases, such as Hadoop sequence files, HBase, or Cassandra.
In some embodiments, server system 110 and user system 120 may also include one or more additional components (not shown) that provide communications with other components of system environment 100, such as through network 130, or any other suitable communications infrastructure.
Network 130 may be any type of network that facilitates communications and data transfer between components of system environment 100, such as, for example, server system 110 and user system 120. Network 130 may be a Local Area Network (LAN), a Wide Area Network (WAN), such as the Internet, and may include a single network or a combination of networks. Further, network 130 may include a single type of network or a combination of different types of networks, such as the Internet and public exchange networks for wireline and/or wireless communications. Network 130 may utilize cloud computing technologies that are familiar in the marketplace. Network 130 is not limited to the above examples, and system 100 may implement any type of network that allows the entities (and others not shown) included in
As shown in
AR device 200 may also include a Global Positioning System (GPS) unit 202. GPS units receive signals transmitted by a plurality of geosynchronous earth orbiting satellites in order to triangulate the location of the GPS unit. In more sophisticated systems, the GPS unit may repeatedly forward a location signal to an IMU to supplement the IMUs ability to compute position and velocity, thereby improving the accuracy of the IMU. In the present case, AR device 200 may employ GPS to identify a location of AR device 200. In some embodiments, AR device 200 may determine the user's presence and/or location using other devices in an environment of the user of AR device 200 (e.g., AR device 200 may communicate with, for example, Bluetooth low energy beacons).
As mentioned above, AR device 200 may include a number of features relating to sensory input and sensory output. AR device 200 may include at least a front facing camera 203 to provide visual (e.g., video) input, a display (e.g., a translucent or a stereoscopic translucent display) 204 to provide a medium for displaying computer-generated information to the user, a microphone 205 to provide sound input and audio buds/speakers 206 to provide sound output. In some embodiments, the visually conveyed digital data may be received by AR device 200 through the front facing camera 203. In some embodiments, AR device 200 may include one or more eye tracking sensors that may be configured to monitor and/or track a viewing direction of a user based on the position of one or both of the user's eyes, and provide an output relating to the viewing direction of the user (e.g., a direction of the user's gaze).
AR device 200 may also have communication capabilities, similar to other mobile devices, through the use of a cellular, WiFi, Bluetooth or tethered Ethernet connection. AR device 200 may also include an on-board microprocessor 208. The on-board microprocessor 208 may control the aforementioned and other features associated with AR device 200.
In one exemplary embodiment, AR device 200 may include a see-through display and sensor systems that provide the device's location, orientation, and bearing (for example, latitude, longitude, altitude, pitch, roll or degree tilt from horizontal and vertical axes, and compass heading). AR device 200 could be configured as glasses that can be worn by a person. Further, one or more elements of the sensor system may be located on peripheral devices physically separate from the display.
Additionally, in this embodiment, AR device 200 may rely on a computer software application to instruct the glasses to render virtual objects on the display field of view. Virtual objects include, but are not limited to, text, images, models, icons. The user may view or interact with virtual objects using the hardware and software application associated with the AR glasses 200.
The middle layer is referred to as the augmented reality shell 364. The augmented reality shell 364, as shown, includes a number of components including a command processor 366, an environmental processor 368, a rendering services module 370, and a network interaction services module 372. It should be understood that each of the functional modules and/or components may be hardware, software, firmware or a combination thereof.
Environmental processor 368, in general, monitors the surrounding, real world environment of the AR device (e.g., AR device 200) based on input signals received and processed by the AR device (e.g., from sensor array 125). Environmental processor 368 may be implemented, as shown in
Environmental processor 368, in turn, may also include several processing modules: a visual processing module 374, a geolocational processing module 376, and a positional processing module 378. Visual processing module 374 is primarily responsible for processing the received video, detecting and decoding the frames and processing the digital data included with the video that was visually conveyed to the AR device.
Geolocational module 376 may receive and process signals relating to the location of the AR device. The signals may, for example, relate to GPS coordinates, the location of a WiFi hotspot, the proximity to one or more local cell towers, or the proximity to one or more other devices (e.g., one or more Bluetooth low energy beacons).
Positional module 378 may receive and process signals relating to the position, velocity, acceleration, direction and orientation of the AR device. Positional module 378 may receive these signals from an IMU (e.g., IMU 201). Positional processing module 378 may, alternatively or additionally, receive signals from a GPS receiver, where it is understood that the GPS receiver can only approximate position (and therefore velocity and acceleration) and where positional processing module 378 can then provide a level of detail or accuracy based on the GPS approximated position. Thus, for example, the GPS receiver may be able to provide the general GPS coordinates of a movie theater, but positional processing module 378 may be able to provide the user's orientation within the movie theater. Positional processing module 380 may be employed in conjunction with visual processing module 374 to synchronize user head movements with viewing experiences (e.g., what rendering services module 370 will render on the display and, therefore, what the user sees).
Command processor 366 may process messaging between the modules and/or components. For example, after visual processing module 374 processes the digital data that was visually received through the video, visual processing module 374 communicates with the command processor 366 which, in turn, generates one or more commands to rendering services module 370 to produce the computer generated data (e.g., text, graphics, additional video, sound) that will be used to supplement the video and enhance the user's viewing experience.
Rendering services module 370 may process the content of the digital data that was visually received and, based on instructions provided through command processor 366, generate and present (e.g., display) data in the form of sound, graphics/animation, text, additional video and the like. The user can thus view the video and, in addition, experience the computer-generated information to supplement the video and enhance the viewing experience.
In some embodiments, the software applications associated with the AR device may create and maintain coordinate systems that correspond to the position and orientation of the AR device, the field of view of the AR device, and the virtual content. These coordinate systems may correspond to locations in the real physical world or may be referenced with respect to the AR device or to any other suitable reference. The maintained coordinate systems may include a two dimensional Cartesian coordinate system, a three dimensional Cartesian coordinate system, a two dimensional Spherical coordinate system, a three dimensional Spherical coordinate system, or any other suitable coordinate system.
AR content, including virtual objects or information, may be rendered at positions on the display of the AR device defined by the software application. These positions may be relative to the user. For example, the initial position for display may be in the center of the user's field of view or at any other desired location with the user's field of view. The AR content may also be rendered such that the user perceives the AR content as associated with a particular location or object in the real world. For example, the virtual content may be rendered on the display to appear to the user as located at coordinate positions corresponding to a location in the real-world, for example, referring to a specific geographic coordinate, or to the current coordinate location of another person or object. User movements relative to the specific geographic coordinate, person, object, etc. may prompt the system to update the display of the AR content such that it appears snapped to the specific geographic coordinate, person, object, etc.
If the user desires to move or “snap” the virtual content to a new position, the user may select a virtual object, or group of objects, using an input method supported by the hardware and software application associated with the AR device. For illustration purposes, one method could be to move a selection device, such as a mouse or pointer device. Another method would be to use gesture inputs (pointing of a finger, etc.), a push button device, touch sensitive surface, or voice commands to augment selection. Another exemplary method would be to use a reticle rendered on the display that would allow head-movements made by the user to indicate the direction or location of the virtual object to be selected. Following the selection, the user may define a new position for the virtual object relative to the display of the AR device.
For example, a user of user system 120/AR device 200 may include a field technician, and the AR content to be displayed may include a service manual for a particular type of equipment. Initially, and by operation of a voice command, input device, etc., the technician may request display of AR content in the form of the service manual. In some embodiments, this information may be retrieved from server system 110 or may be retrieved from a local memory 124 and may be displayed in display 122. Initially, the AR content may be displayed in the center of the user's field of view. Such positioning would enable natural access and viewing of the desired content. AR content in the center of the user's field of view, however, may be distracting or may impede the view of the real world objects with which the technician needs to interact. Therefore, system 120 may be configured to re-position the AR content to another location on display 122 or even to another location in virtual space (maintained in memory) relative to the user (e.g., relative to the user's head position).
Furthermore, the repositioned AR content can be accessed by the user. For example, the user may turn his head in the direction of the repositioned AR content and, based on the sensed motion of the head, the rendering of the AR content may be updated relative to the motion of the user's head. As another example, one or more eye tracking sensors may be configured to track a viewing direction of the user, such as the user's gaze direction, and the rendering of the AR content may be updated relative to changes in the user's gaze direction. In some embodiments, the rendered AR content may appear to the user as fixed at the repositioned location, and the user may turn his head in the direction of the repositioned location in order to bring the AR content toward and into the center of the field of view of display 122. Subsequent turning of the head away from the repositioned location will cause the rendered AR content on the display to move away from the center of the field of view. In this way, the user (e.g., the technician) may move the desired AR content to a virtual location that does not impede viewing of objects in the center of the field of view, but that still allows access to the desired AR content, for example, by turning toward the virtual position of that content.
The user may define the new position of the virtual object by using an input device or method supported by the hardware and software associated with AR device. For example, one method would be to “drag and drop” by first selecting the content to be moved, moving it by dragging it to the desired new location and deselecting it to drop it in the new, repositioned location. Establishing a new position of the virtual object may create a new coordinate or change an existing coordinate associated with the virtual object in the software application of the AR device.
The user (or routines in the software) may define additional snapping properties or rules associated with the virtual objects or new coordinates. These properties may include parameters, tags, or instructions for the software application of the AR device. For example, a property of the “snapped” virtual AR content may be to share the new coordinates for the object with other users of system 100. Another example may be to delete the new coordinates of the virtual objects after a period of time and then revert to the previous position. Yet another example would be to lock the virtual object from being moved to another coordinate by a different user of the AR device.
When the user initiates the steps to “snap” a virtual object to a new position, the software application of the AR device may use information from sensor systems to define a first coordinate system for the AR device and a second coordinate system for the virtual object that is selected by the user, which may be referred to as cardinal snapping herein.
As will be appreciated by a person skilled in the art having the benefit of this disclosure, numerous variations and/or modifications may be made to the foregoing disclosed embodiments. For example, not all components are essential for the operation of AR device 200. Further, any component may be located in any appropriate part of AR device 200 and the components may be rearranged into a variety of configurations while providing the functionality of the disclosed embodiments. Therefore, the foregoing configurations are examples and, regardless of the configurations discussed above, AR device 200 can provide various features that allow a user to interact and/or control AR device 200. Further details regarding various features provided by AR device 200 are discussed below in further detail.
Virtual Overhead Menu
In one embodiment, a menu is provided for a wearable augmented reality device. The menu may appear to hover over a user's head and potentially just outside of the user's field of view when the user is looking at the horizon. To access the menu, the user may simply look up or down toward a spot where the user perceives the menu to be located.
This menu system may avoid the difficulties associated with menus provided at the sides of a user's field of view. For example, when positioning a menu to the side of a user's field of view, it may be difficult to determine whether a user turned his or her head to the side to access a menu or whether the user merely wished to look in that direction without accessing the menu.
For example, consistent with an embodiment, a wearable device that provides a virtual menu to a user may include a display and at least one sensor configured to provide an output indicative of an orientation of a head of the user. The wearable device may further include at least one processing device configured to monitor an orientation of the head of the user based on the output of the at least one sensor. Based on the monitored orientation of the head, the at least one processing device may be further configured to determine whether the user is looking upward or downward with respect to a predetermined horizontal threshold. If the user is determined to be looking upward or downward with respect to the predetermined horizontal threshold, the at least one processing device may further be configured to cause the virtual menu to be shown on the display.
In some embodiments, positional processing module 378 shown in
For example, in order to access a virtual menu, user 401 may move his or her head upward or downward, forming an angle α with respect to the horizontal plane. The one or more sensors included in AR device 200 may be configured to detect a viewing direction of the user. The sensors may then output the detected viewing direction (e.g., the orientation of the user and/or the user's gaze direction) to a processor device, such as microprocessor 208 provided in
In some embodiments, the one or more sensors may be configured to detect the orientation of the head of user 401 periodically. For example, the one or more sensors may be configured to detect the origination of the head of user 401 at any suitable time interval (e.g., every second, multiple times per second (2, 4, 6, 10 or more times per second), or once over the course of multiple seconds, etc.). Further, the one or more sensors may be configured to output the detected angle of AR device 200 with respect to the horizontal plane to a processing device (e.g., microprocessor 208). Alternatively, the one or more sensors may be configured to output the detected coordinates of one or more predetermined reference points of AR device 200 with reference to a predetermined coordinate system. For example, the one or more sensors may be configured to detect coordinates of multiple points of display 204 in a predetermined three-dimensional coordinate system having an origin set as the central point of AR device 200.
The processing device (e.g., microprocessor 208) of AR device 200 may be configured to monitor the orientation of the head of user 401 based on the output of the one or more sensors. For example, the processing device may be configured to determine the orientation of the head of user 401 based on received coordinates of points of the device from the one or more sensors. In some embodiments, the processing device may be configured to monitor both the orientation of the head of user 401 and the time duration that the head of user 401 stays in that orientation based on output received from the sensor. For example, if the time duration that the head of user 401 stays in a detected orientation is less than a predetermined time threshold, the processing device may determine that user 401 does not intend the detected orientation to cause AR device 200 to take an action. On the other hand, if the time duration that the head of user 401 stays in a detected orientation is greater than or equal to the predetermined time threshold, the processing device may determine that user 401 intends the detected orientation to cause AR device 200 to take an action.
The processing device may be further configured to determine whether user 401 is looking upward or downward with respect to a predetermined horizontal threshold based on the detected orientation of the head of user 401. For example, the processing device may be further configured to compare the detected orientation of the head of user 401 with the predetermined horizontal threshold. If the detected orientation of the head of user 401 is greater than or equal to the predetermined horizontal threshold, the processing device may be configured to determine that the user is looking upward. On the other hand, if the detected orientation of the head of user 401 is less than the predetermined horizontal threshold, the processing device may be configured to determine that the user is not looking upward.
The predetermined horizontal threshold may be pre-configured by user 401 through a user interface of AR device 200 or be pre-set based on a default setting of AR device 200. For example, display 204 may display a menu with different values of the predetermined horizontal threshold to enable user 401 to make a selection. As another example, display 204 may display a field that enables user 401 to input a desirable value of the predetermined horizontal threshold. The predetermined horizontal threshold may be set in units of degrees, radians, or any other units of angular measurement. As an example, the predetermined horizontal threshold may be set as 20, 30, or 60 degrees or more according to a preference of user 401.
As discussed above, in some embodiments, alternative or in addition to monitoring an orientation of the user's head, the processing device of AR device 200 may be configured to monitor a user's gaze direction based on output received from one or more eye tracking sensors. For example, the processing device may be configured to determine whether user 401 is looking upward or downward with respect to a predetermined horizontal threshold based on the direction of the user's gaze.
If the processing device determines that user 401 is looking upward or downward with respect to the predetermined horizontal threshold, the processing device may cause a virtual menu to be shown on a display (e.g., display 204) of AR device 200. The virtual menu may be shown at a predetermined position on display 204, such as a central location of display 204 or at any other suitable location on display 204.
AR device 200 may be configured to display the menu either continuously or in response to a predetermined trigger. For example, in some embodiments, AR device 200 may display a virtual menu on display 204 such that the menu is always visible within the field of view of the user (e.g., at a location in an upper portion of the user's field of view). In other embodiments, the menu may be displayed in response to a trigger, which may include, for example, a determination that the user is looking upward relative to a horizontal plane. In such embodiments, the menu may be caused to appear on the display in response to a determination that the user is looking upward relative to a horizontal plane by an angle of 20 degrees, 30 degrees, 60 degrees, or more. Thus, regardless of the user's side to side head orientation, when the user is determined to be looking in an upward direction, the menu may be shown on the display. In some cases the user may be looking to the right and then look upward to access the menu. In other cases, the user may be looking to the left and then look upward to access the menu. In still other cases, the user may be looking forward and then look upward to access the menu.
Once the menu is provided on the display, it can remain in a fixed location relative to the display or may move relative to the display. For example, in some embodiments, the virtual menu may be locked in the user's field of view, such as in a locked mode, while user 401 moves his or her head to a new position. That is, once the menu has been provided on the display, the menu may be locked to a particular location relative to the display such that subsequent movements of the head of the user do not cause movement of the menu relative to the display.
In other embodiments, the virtual menu may be provided at a fixed, perceived location relative to the user. For example, the user may perceive that the virtual menu hovers above the user's head at a particular angle relative to a horizontal looking direction. Thus, while the user looks left, right, or forward along a horizontal plane (or below a horizontal plane), the virtual menu may not appear on the display. To access the menu, however, the user may simply look upward above the predetermined angular threshold (regardless of left-right head orientation), and the menu will be shown on the display. This may provide the user with the perception that the menu “hovers” at a location above and forward of the user's forehead, for example. Once the menu is displayed, the menu location on the display may be unaffected by subsequent left-right movement of the user's head. On the other hand, once the menu is shown on the display, subsequent changes in vertical orientation of the user's head (e.g., looking upward or downward, for example) may cause changes in the location of the menu on the display. For example, once the menu is shown on the display, subsequent head movements further in the upward direction may cause the location of the menu to move downward on the display. Similarly, subsequent head movements in a downward direct may cause the location of the menu to move upward on the display. Such behavior may be consistent with a user perception that the menu “hovers” above the user's head at a fixed vertical angle, regardless of horizontal angle. In this mode (e.g., unlocked mode), once the head of user 401 is moved downward away from the perceived location of the menu, the virtual menu may disappear from display 204, and the virtual menu may reappear when the head of user 401 is moved upward again. Of course, the processor device may be configured to also cause changes in the left-right position of the virtual menu relative to the display in response to detected horizontal movements of the user's head (e.g., right-left changes in the looking direction of the user's head).
In some embodiments, AR device 200 may provide an interface for user 401 to select the menu positioning mode of the virtual menu. For example, a button may be placed on AR device 200 for user 401 to switch between the locked and unlocked modes. As another example, selectable options for the locked and unlocked modes may be displayed on display 204, and user 401 may select a desirable mode to display the virtual menu.
Virtual menu 502 may include one or more selectable elements each associated with one or more actions that may be taken by AR device 200 upon selection by user 401. For example, virtual menu 502 may present options for user 401 to save AR content, share it with other users, rotate the display of the AR content, initiate a phone call, change settings associated with a camera on AR device 200, and any other options or tasks that the user may select to provide input, request information, or initiate a task associated with AR device 200.
As noted, virtual menu 502 may be displayed on display 204 such that the user perceives the virtual menu to be located at a predetermined, fixed angle of rise above the predetermined horizontal threshold. Additionally, initiation of the display of the virtual menu may occur based on certain timing constraints. For example, in some embodiments, virtual menu 502 may be shown on display 204 after user 401 is determined to be looking upward with respect to a predetermined horizontal threshold for a time period that exceeds a predetermined time threshold (e.g., 0.25 seconds, 0.5 seconds, 1 second, 2 seconds, or any other suitable time). Accordingly, if user 401 looks upward with respect to the predetermined horizontal threshold for less than the predetermined time threshold, the processing device may be configured to not display virtual menu 502.
In some embodiments, the processing device of AR device 200 may be further configured to determine whether user 401 is looking in a direction intersecting any of the selectable items of virtual menu 502 and cause a selection of a particular item if the user looks in the direction of the particular item for a time that exceeds a predetermined time threshold. For example, with reference to
The selection of the menu item or sub-menu item may be caused by user 401 looking in the direction of the sub-menu item, touching the particular menu item on the display, moving a selector to the position of the particular menu item, intersecting a reticle with the menu item, generating a voice command, or the like. For example, user 401 may move a selector to the position of the particular menu item on the display to make a selection by moving or rotating the position of the user's head. As another example, user 401 may touch the part of display 204 at which the menu item is shown to make a selection of the item. In another example, user 401 may generate a voice command corresponding to the menu item to make a selection. In some embodiments, the selection of the menu item or sub-menu item may be caused by user 401 looking in a direction intersecting the particular item for a time period that exceeds a predetermined threshold. For example, a sensor of AR device 200 may sense that user 401 is looking in a direction intersecting a particular menu item, and the processing device may in turn cause a selection of the item based on output received from the sensor. For example, the processing device of AR device 200 may cause the selection of a menu item “zoom in” of the virtual menu 502 if user 401 looks in a direction intersecting the item “zoom in” for a time period that exceeds the predetermined threshold. As another example, the processing device of AR device 200 may cause the selection of sub-menu item “2×” of the sub-menu 503 if user 401 looks in a direction intersecting the item “2×” for a time period that exceeds the predetermined threshold. In some embodiments, the function of selecting an item by sight may be turned on or off by user 401. For example, a button may be placed on the AR device for user 401 to turn on or turn off the function of sight selection. As another example, a selectable option may be displayed on display 204 of AR device 200 for user 401 to turn on or off the function of selecting an item by sight.
At step 610, AR device 200 may monitor an orientation of the head of user 401 based on output of at least one sensor associated with the AR device. For example, the processing device (e.g., microprocessor 208) of AR device 200 may execute instructions of positional processing module 378, discussed above in relation to
At step 620, AR device 200 may determine, based on the monitored orientation of the head of user 401, whether user 401 is looking upward or downward with respect to a predetermined horizontal threshold. For example, the processing device of AR device 200 may execute instructions of positional processing module 378 to perform this step. The predetermined horizontal threshold may be configured by the positional processing module 378 or preconfigured by the user via a user interface. The predetermined horizontal threshold may be set in units of degrees, radians, or another other units for measurement of angles.
At step 630, AR device 200 may cause a virtual menu to be shown on display 204 if user 401 is determined to be looking upward or downward with respect to the predetermined horizontal threshold. For example, the processing device of AR device 200 may execute instructions of rendering services module 370 to perform this step.
The virtual menu displayed in step 630 may be displayed such that the user perceives the virtual menu as located at a predetermined, fixed angle of rise above the predetermined horizontal threshold. Further, the virtual menu may be semi-transparent and displayed on the lens. In some embodiments, AR device 200 may change a location at which the virtual menu is shown on display 204 in response to a sensed change in orientation of the user's head.
The virtual menu displayed in step 630 may include one or more selectable elements and/or the virtual menu may be a nested menu. After receiving a selection of one or more of the elements, AR device 200 may take other actions. For example, AR device 204 may determine whether user 401 is looking in a direction intersecting any of the selectable menu items, and cause a selection of a particular item if user 401 looks in a direction of the particular item for a time period that exceeds a predetermined threshold.
In some embodiments, a user interface that is displayed by a wearable augmented reality device may include a menu item that is selectable based on a user looking at the menu item. The AR device may recognize selection of the menu item by monitoring a viewing direction of the user (e.g., the orientation of the user's head and/or the orientation of the user's gaze) to determine the direction in which the user is looking. In addition, the AR device may determine whether the user dwells on the menu item longer than a predetermined dwell threshold (e.g., 0.25 seconds, 0.5 seconds, one second, three seconds, five seconds, within a range of 0.25 seconds to 2.0 seconds, etc.). If the user dwells on the menu item for the predetermined dwell threshold, the menu item may be selected.
For example, consistent with some embodiments, a wearable device provides a virtual menu to a user. The device comprises a display and at least one sensor configured to provide an output indicative of a viewing direction of the user. The device further comprises at least one processing device configured to cause a virtual menu to be shown on the display. The virtual menu includes at least one selectable element. The at least processing device is further configured to monitor a viewing direction of the user based on the output of the at least one sensor, determine based on the monitored viewing direction whether the user is looking in a direction of the at least one selectable element of the virtual menu; determine an amount of time that the user looks in the direction of the at least one selectable element of the virtual menu; and cause at least action associated with the at least one selectable element of the virtual menu if the amount of time exceeds a predetermined dwell time threshold.
Referring to
As described above in connection with
In some embodiments, the processing device may be configured to determine the direction of the user's sight line based on the detected orientation of the user's head and/or the detected orientation of the user's gaze. For example, the processing device may determine or assume that the direction of the user's sight line is coincident with a certain head orientation reference line (e.g., a line extending through and perpendicular to a horizontal and/or vertical midpoint of the display, or any other suitable reference). As another example, the processing device may derive the direction of the user's sight line by applying one or more correction operations relative to a determined head orientation reference. For example, for some users, a sight line may be above, below, leftward, or rightward of a standard head orientation reference, as determined by any combination of the onboard head orientation sensors.
In some embodiments, the processing device of AR device 200 may be configured to determine, based on the monitored orientation of the head or the monitored orientation of the user's gaze, whether the user is looking in a direction of a selectable element of the virtual menu. For example, positional processing module 378 shown in
For example, the processing device may detect that the direction of the user's sight line intersects with a particular selectable element of the virtual menu, and as a result, determine that the user is looking in the direction of the particular selectable element. In some embodiments, the processing device may be configured to divide the area of the virtual menu shown on display 204 into a number of sections, each of which may contain one or more selectable menu items. If the direction of the user's sight intersects with any of the sections, the processing device may determine that the user is looking in the direction of the one or more menu items contained in the section.
In some embodiments, the processing device of AR device 200 may be configured to determine an amount of time that user 401 looks in the direction of particular menu item of the virtual menu. In some embodiments, positional processing module 378 shown in
For example, the sensors of the AR device 200 may periodically detect the viewing direction of the user (e.g., the orientation of the user's head and/or the orientation of the user's gaze) at a predetermined time interval and provide an output to the processing device. The processing device may determine the viewing direction periodically based on the periodical output received from the sensors. The predetermined time interval may be set as every second, multiple times per second (2, 4, 6, 10 or more times per second), once over the course of multiple seconds, or any other suitable time interval. This setting may be a default setting or a user adjustable setting.
If the currently detected orientation of the user's viewing direction stays unchanged from the previously detected orientation (e.g., at the last time interval), the processing device may determine whether user 401 has looked in the same direction long enough to trigger an action (e.g., selecting a menu item). However, if the currently detected orientation of the user's viewing direction has changed from the previously detected orientation, the processing device may determine that user 401 changed the direction of his or her sight line and may set the amount of elapsed time that the user has looked in the new direction to zero.
In some embodiments, the processing device may allow a small amount of difference between the currently detected orientation of the user's viewing direction and the previously detected orientation and still consider the user to have not changed his or her sight line. This may account for slight movements of the user's eyes and/or head such that the user does not need to remain perfectly still in order to cause an action. For example, if the currently detected orientation of the user's viewing direction changes from the previously detected orientation for less than a predetermined threshold, the processing device may determine that the direction of user's sight line remains unchanged. On the other hand, if the currently detected orientation of the user's viewing direction changes from the previously detected orientation equal to or more than the predetermined threshold, the processing device may determine that the direction of the user's sight line has changed.
If it is determined that user 401 looks in the direction of a particular item of the virtual menu for an amount of time that exceeds a predetermined dwell time threshold, the processing device of AR device 200 may cause an action associated with the particular item to be performed. For example, if it is determined that user 401 looks in the direction of a camera icon of the virtual menu for an amount of time that exceeds the predetermined dwell time threshold, the processing device of AR device 200 may activate an onboard camera and/or may cause a picture of the user's field of view to be taken (e.g., after a predetermined delay period), among other actions. As another example, if it is determined that user 401 looks in the direction of a text command of the virtual menu for an amount of time that exceeds the predetermined dwell time threshold, the processing device of AR device 200 may cause an audio output of the text to be provided to the user.
The predetermined dwell time threshold may be set as 0.1 seconds, 0.25 seconds, 0.5 seconds, 1 second, or multiple seconds, such as a value of 3, 5, or 10 seconds, or any other suitable value. In some embodiments, the dwell time threshold may fall within a range of about 0.1 second to about 5 seconds. In other embodiments, the dwell time threshold may fall without a range of about 0.25 seconds to about 2 seconds. The predetermined dwell time threshold may be pre-configured by user 401 through a user interface of AR device 200 or be pre-set based on a default setting of AR device 200. For example, display 204 may display a menu with different values of the predetermined dwell time threshold to enable user 401 to make a selection. As another example, display 204 may display a field that enables user 401 to input a desirable value of the predetermined dwell time threshold. In some embodiments, display 204 may also display options of different actions and allow user 401 to configure the specific action to perform in response to looking at the direction of a menu item for an amount of time that exceeds the predetermined dwell time threshold. For example, display 204 may display options such as opening an application, providing audio output of text, and/or moving the menu item to the center of the display. Accordingly, user 401 may configure the types of actions that are to be taken by AR device 200 when the user looks in the direction of an item for a predetermined period of time.
In some embodiments, as discussed above, alternative or in addition to monitoring an orientation of the user's head, the processing device of AR device 200 may be configured to monitor a user's gaze direction based on output received from one or more eye tracking sensors.
As shown in
In some embodiments, when user 401 looks at a menu item for a prolonged period of time (e.g., an amount of time that exceeds a predetermined dwell time threshold), the processing device of AR device 200 may cause an action associated with the menu item to be performed. As illustrated in
In some embodiments, the processing device of AR device 200 may be configured to divide the area of virtual menu 702 into multiple sections, such as sections 704-707 illustrated in
As shown in
In some embodiments, if the processing device of AR device 200 determines that the user is looking in a direction intersecting the selectable menu item (or the area of the section containing the menu item) for a predetermined time period (e.g., an amount of time that exceeds a predetermined dwell time threshold), the processing device may cause an application associated with the menu item to be opened. For example, referring to
In some embodiments, if the processing device of AR device 200 determines that the user is looking in a direction intersecting the selectable menu item (or the area of the section containing the menu item) for a prolonged time period (e.g., an amount of time that exceeds a predetermined dwell time threshold), the processing device may cause an audible output associated with the menu item to be provided. For example, referring to
In some embodiments, the processing device of AR device 200 may be configured to divide the area of the virtual menu 708 into multiple sections, such as sections 710-713 illustrated in
The sub-menu 714 may include one more selectable sub-menu items. If the processing device of AR device 200 determines that user 401 looking in the direction of a sub-menu item for a predetermined period of time (e.g., any of the times or time ranges associated with the predetermined dwell time threshold), the processing device may cause an action associated with the sub-menu item to be performed, such as opening an application associated with the sub-menu item, providing an audible output of the sub-menu item, performing a task associated with the sub-menu item, etc. For example, the processing device may cause the clockwise rotation of the current display if user 401 looks in a direction intersecting the clockwise rotation icon 715 in the sub-menu for a time period that exceeds a predetermined threshold. In some embodiments, the processing device may cause a sub-menu item to be highlighted on the display if user 401 looks in a direction intersecting the sub-menu item. For example, the processing device may cause the clockwise rotation icon 715 to be highlighted on the display if it determines that user 401 is looking in a direction intersecting the icon.
At step 810, AR device 200 may cause a virtual menu to be shown on display 204. For example, the processing device of AR device 200 may execute instructions of rendering services module 370 to perform this step. The virtual menu displayed in step 810 may include one or more selectable elements and/or the virtual menu may be a nested menu. The selectable element of the virtual menu may include an icon, a check-box, and/or text. Further, the virtual menu may be semi-transparent and displayed on the lens. The transparency of the virtual menu may be adjustable based on an input received by the processing device from user 401.
At step 820, AR device 200 may monitor a viewing direction of user 401 based on output of at least one sensor associated with the AR device. For example, the processing device (e.g., microprocessor 208) of AR device 200 may execute instructions of positional processing module 378, discussed above in relation to
At step 830, AR device 200 may determine, based on the monitored viewing direction of user 401, whether user 401 is looking in a direction of a selectable element of the virtual menu. For example, the processing device of AR device 200 may execute instructions of positional processing module 378 to perform this step. For example, the processing device may determine the direction of the user's sight based on the orientation of the head of user 401 and/or based on the orientation of the gaze of the user's eyes. The processing device may further use coordinates of multiple references points of AR device 200 received from the sensors to determine the direction of the user's sight line.
At step 840, AR device 200 may determine an amount of time that the user looks in the direction of the selectable element of the virtual menu. For example, the processing device of AR device 200 may execute instructions of positional processing module 378 to perform this step. AR device 200 may determine the amount of time that the user looks in the direction of the selectable element based on periodical output received from the sensors at a predetermined time interval.
At step 850, AR device 200 may cause at least one action associated with the selectable element of the virtual menu if the amount of time determined in step 840 exceeds a predetermined dwell time threshold. For example, the processing device of AR device 200 may execute instructions of rendering services module 370, command processor 366, and/or third party applications 362 to perform this step. The predetermined dwell time threshold may be set as 3, 5, 10 seconds, or any other suitable time value. Further, the predetermined dwell time threshold may be configured by the positional processing module 378 or selected by the user via a user interface.
The at least one action associated with the selectable element may include expanding the selectable element, opening an application associated with the selectable element, providing an audible output of the text of the selectable element, performing a command of the selectable element, and so on. AR device 200 may include a speaker and the audible output of the text of the selectable element may be provided to the user via the speaker. For example, the speaker may be included in an earbud configured for placement inside the user's ear.
Nested Menu
Some embodiments may include a nested menu system that enables the user to look toward a menu shown on a display, select the menu, and expand the menu upon selection. The menu may appear to the user at a fixed location relative to real world coordinates. In some embodiments, the device may use eye tracking to control scrolling through a menu item.
For example, consistent with an embodiment, a wearable device provides a virtual menu to a user. The device comprises a display and at least one sensor configured to provide an output indicative of a viewing direction of a user (e.g., an orientation of a head of the user and/or an orientation of a gaze of the user's eyes). The device further comprises at least one processing device configured to monitor a viewing direction of the user based on the output of the at least one sensor. The at least one processing device is further configured to provide a menu on the display and determine based on the monitored viewing direction whether the user is looking in a direction of the location of the menu on the display. The at least one processing device is further configured to expand the menu if the user is determined to be looking in the direction of the location of the menu on the display.
Referring to
As described above in connection with
For example, the processing device may determine the direction of the user's sight line based on the monitored viewing direction of user 401. The processing device may identify a region on display 204 that includes the virtual menu. The identified region may be the same as or slightly larger than the area the virtual menu occupies. If the direction of the user's sight falls into the identified region, the processing device may determine that user 401 is looking in the direction of the location of the menu. On the other hand, if the direction of the user's sight falls outside the identified region, the processing device may determine that user 401 is not looking in the direction of the location of the menu.
In some embodiments, the processing device may be configured to determine the time duration that user 401 looks in a direction of the location of the menu based on output received from the sensor. For example, the sensors of AR device 200 may sense the viewing direction of the user at a predetermined time interval (e.g., 2, 4, 6, 10 or more times per second) and provide an output to the processing device. The processing device may determine the time duration that user 401 looks in a direction of the location of the menu based on whether the sensed orientation of the user's head changes from the previously detected orientation. For example, if the currently detected viewing direction of the user stays unchanged from the previously detected viewing direction (e.g., at the last time interval), the processing device may increase the amount of time that the user looks in the location of the menu by the predetermined time interval. If the currently detected viewing direction changes from the previously detected viewing direction, the processing device may determine that the user moves the direction of his or her sight line away from the location of the menu and may reset the amount of elapsed time that the user has looked in the location of the menu to zero. If the time duration that the user 401 looks in a direction of the location of the menu is less than a predetermined time threshold, the processing device may determine that user 401 does not intend to access the nested menu and may not take any action. On the other hand, if the time duration that the head of user 401 stays in a detected viewing direction is greater than or equal to the predetermined time threshold, the processing device may determine that user 401 intends to access the nested menu and may cause the menu to be expanded on display 204.
In some embodiments, the processing device may allow a small amount of difference between the currently detected viewing direction of the user and the previously detected viewing direction and still consider the user to have not changed his or her sight line. This may account for slight movements of the user's head and/or eyes such that the user does not need to remain perfectly still in order to cause a nested menu to be expanded. For example, if the currently detected viewing direction of the user changes from the previously detected orientation for less than a predetermined orientation threshold, the processing device may determine that the user is looking into the direction of the location of the nested menu and cause the menu to be expanded. On the other hand, if the detected viewing direction of the user changes from the previously detected orientation for equal to or more than the predetermined orientation threshold, the processing device may determine that the user is not looking into the direction of the location of the nested menu anymore and may not cause the menu to be expanded.
In some embodiments, a discussed above, alternative or in addition to monitoring an orientation of the user's head, the processing device of AR device 200 may be configured to monitor a user's gaze direction based on output received from one or more eye tracking sensors. For example, as discussed above, the processing device may be configured to determine whether user 401 is looking in a direction of the location of the menu on the display based on the direction of the user's gaze.
As shown in
In some embodiments, sub-menu 903 may be displayed at a predetermined location on display 204, such as the center of display 204, an upper portion of display 204, or any other suitable location. The predetermined location for sub-menu 903 to be displayed may be pre-configured by user 401 through a user interface of AR device 200. For example, display 204 may allow user 401 to select a location of display 204 at which sub-menu 903 should display. In some embodiments, after sub-menu 903 is displayed at a pre-set location, user 401 may be allowed to drag sub-menu 903 to another location on display 204 that is preferred by user 401. The processing device of AR device 200 may set the new location as a default location for displaying sub-menu 903, and display sub-menu 903 at the new location subsequently when the processing device determines to expand nested menu 902 in future instances. In other embodiments, the location of sub-menu 903 may be locked to a predetermined position of display 204 such that user 401 cannot reposition the sub-menu.
In some embodiments, the processing device of AR device 200 may cause nested menu 902 to be highlighted on display 204 if the processing device detects that the user is looking in the direction of the location of nested menu 902. Nested menu 902 may remain highlighted during the time period that the user is looking in the direction of the location of nested menu 902 until sub-menu 903 is displayed on display 204. If the direction of the user's sight line is moved away from the location of nested menu 902 before a sub-menu is being displayed, the processing device may stop highlighting nested menu 902 and not display the sub-menu to the user. In other embodiments, nested menu 902 may be highlighted for a predetermined time period, such as one second or multiple seconds, if the processing device determines that user 401 is looking in the direction of the location of nested menu 902.
Once a nested menu is provided on display 204, AR device 200 may be configured to display the nested menu in a fixed location relative to the display, such as in a locked mode. For example, nested menu 902 may be locked in the user's field of view while user 401 moves his or her head to a new position. That is, once nested menu 902 has been provided on the display, nested menu 902 may be locked to a particular location relative to display 204 such that subsequent movements of the head of the user do not cause movement of nested menu 902 relative to display 204.
In other embodiments, nested menu 902 may be provided at a fixed, perceived location relative to the user, such as in an unlocked mode. For example, nested menu 902 may appear on the display whenever the head of user 401 is moved to a particular orientation, e.g., rotated a certain degree to the right, to the left, or vertically. Once the nested menu is displayed in such an unlocked mode, the location of the nested menu may be changed as the user rotates the head toward the perceived location of the menu (as described in more detail above). For example, once nested menu 902 is shown on the display, subsequent head movements and/or eye movements further in the upward direction may cause the location of nested menu 902 to move downward on the display. Similarly, subsequent head movements and/or eye movements in a downward direction may cause the location of nested menu 902 to move upward on the display. Additionally, the processing device may be configured to also cause changes in the left-right position of the nested menu relative to the display in response to detected horizontal movements of the user's head and/or eyes (e.g., right-left changes in the looking direction of the user's head and/or eyes).
In other embodiments, the nested menu may be provided at a fixed location relative to real world coordinates, where the fixed location remains constant irrespective of user movements. In such embodiments, display of the nested menu may depend on whether the user's head orientation and/or gaze direction of the user's eyes are determined, by the processing device, to cause the fixed, virtual position of the menu to be within the user's field of view. When the menu's location is determined to be within the user's field of view, it is provided to the display. When the menu's location is determined to be outside of the user's field of view, the menu is not displayed. For example, the user may perceive that the nested menu occurs at a particular location of particular coordinates in the real world, and when the user moves or looks away from that particular location, the nested menu may not appear on the display. That is, the display of the nested menu may depend not only on the specific viewing direction of the user, but also the physical location/orientation of the user or user's head and/or eyes relative to real world coordinates. Even if the orientation of the head and/or eyes of the user remains the same, if the physical location of the user changes, the nested menu may disappear from the display. The nested menu may reappear on the display when the user looks again at the particular location in the real world designated as the perceived location of the menu in real world coordinates.
The above described methods of moving nested menu 902 on the display can be applied similarly to sub-menu 903, items shown on sub-menu 903, and the like. It should be understood that one method may be applied to move the location of nested menu 902 on the display, such as the locked mode, while another method may be applied to move the location of sub-menu 903, such as the unlocked mode.
In some embodiments, sub-menu 903 may contain multiple items, and it may not be desirable to display the complete list of menu items on display 204. The processing device of AR device 200 may be configured to show a partial list of menu items when nested menu 902 is expanded into sub-menu 903. For example, the processing device may display a punctuation mark, such as an ellipsis, on the bottom of sub-menu 903, indicating to the user that additional menu items are available and not being currently displayed. As illustrated in
In some embodiments, user 401 may be able to configure the speed the menu is scrolled through. For example, AR device 200 may display an interface for user 401 to configure the time period that the menu will scroll through one line. For example, user 401 may select 0.5, 1, or 2 seconds, or any other suitable time interval that before a menu to scroll up or down for a single line. Thus, if user 401 looks at a direction downward to the location of sub-menu 903 for 2 seconds, sub-menu 903 may be scrolled down for 4 lines, 2 lines, or 1 line depending on the user's selection of the time interval for the menu to be scrolled through for a single line.
In some embodiments, the processing device of AR device 200 may be configured to display a scrolling mark on the sub-menu, such as an ellipsis, an arrow, or a scrolling bar. If it is determined that the user is looking in a direction of the scrolling mark, the processing device may cause the sub-menu to be scrolled up or down in the corresponding direction. For example, if the processing device determines that the user is looking in a direction of a scrolling mark placed in the upper region of the sub-menu, the processing device may cause the sub-menu to be scrolled up. If the processing device determines that the user is looking in a direction of a scrolling mark placed in the lower region of the sub-menu, the processing device may cause the sub-menu to be scrolled down.
In some embodiments, the processing device of AR device 200 may be configured to identify a region above or below the menu such that if it is determined that the user's gaze falls into the region, the processing device may cause the menu to be scrolled up or down. For example, the processing device may identify a rectangular region on display 204 that is located directly above sub-menu 904 such that if it is determined that a direction of the user's gaze falls into the region, the processing device may cause sub-menu 904 to be scrolled up. Similarly, the processing device may identify a rectangular region on display 204 that is located directly below sub-menu 904 such that if it is determined that a direction of the user's gaze falls into the region, the processing device may cause sub-menu 904 to be scrolled down.
In some embodiments, reticle 1001 may be fixed relative to display 204 (e.g., may be physical inscribed or otherwise marked on display 204 or any other suitable component of AR device 200) such that reticle 1001 moves with changes in the user's head orientation. In such embodiments, reticle 1001 may be used, e.g., to selectively overlap with and select portions of a nested menu that remains unlocked relative to display 204 and fixed relative to real world coordinates.
In some embodiments, reticle 1001 may be turned on or off on display 204 by user input. For example, if user 401 presses the portion of display 204 at which reticle 1001 is shown for a certain period of time, the processing device may be configured to remove reticle 1001 from display 204. As another example, one or more buttons may be placed on AR device 200 for user 401 to turn on or turn off reticle 1001 on display 204. Display of reticle 1001 and/or selection of any menu components may also be facilitated by recognized voice commands or recognized hand gestures (or any other suitable triggers) made by the user.
In some embodiments, reticle 1001 may be shown at the center of display 204 when it is initially turned on, and may be moved to other locations in response to user input. For example, user 401 may drag reticle 1001 from one position to another position on display 204 by touching display 204. Alternatively or additionally, the processing device may be configured to move the position of reticle 1001 in response to sensed changes in the user's gaze direction (as discussed above). Further, as discussed above, the position of reticle 1001 relative to any displayed menu items may be changed by tracking the user's head orientation and updating the position on display 204 at which the menu items are displayed as the user's head orientation changes. The processing device may move the position of the menu items in the opposite direction as the detected direction of the movement of the head of user 401, such that reticle 1001 intercepts any of the displayed menu items. Regardless of the configuration of reticle 1001 (e.g., whether fixed relative to display 204 or floating relative to display 204), if the processing device determines that the position of reticle 1001 is moved to intercept a portion of the nested menu 1002, the processing device may expand the nested menu 1002 to sub-menu 1003 or make a selection of any portion of nested menu 1002 or sub-menu 1003.
As shown in
After nested menu 1002 is expanded into sub-menu 1003, user 401 may further move the position of reticle 1001 to the position of certain item of sub-menu 1003 to cause further actions to be performed by AR device 200. For example, user 401 may move the position of reticle 1001 to intercept the sub-menu item “share” on sub-menu 1003, and correspondingly, the processing device may proceed to perform the action of sharing the user's current field of view with other users.
At step 1110, AR device 200 may monitor a viewing direction of the user (e.g., an orientation of the head of the user and/or an orientation of the gaze direction of the user's eyes) based on the output of the at least one sensor associated with the AR device. For example, the processing device (e.g., microprocessor 208) of AR device 200 may execute instructions of positional processing module 378, discussed above in relation to
At step 1120, AR device 200 may provide a menu on display 204. For example, the processing device of AR device 200 may execute instructions of rendering services module 370 to perform this step. The processing device may show the menu on display 204 such that the user perceives the menu location as fixed relative to real world coordinates and variable relative to display coordinates. In some embodiments, the processing device may be configured to change a location of the menu relative to the display when the user rotates the head toward the menu.
At step 1130, AR device 200 may determine, based on the monitored viewing direction of user 401, whether user 401 is looking in a direction of the location of the menu on the display. For example, the processing device of AR device 200 may execute instructions of positional processing module 378 to perform this step. For example, the processing device may determine the direction of the user's sight line based on the orientation of the head of user 401 and/or the orientation of the gaze direction of the eyes of user 401. The processing device may further use coordinates of multiple references points of AR device 200 received from the sensors to determine the direction of the user's sight line.
At step 1140, AR device 200 may expand the menu if the user is determined to be looking in the direction of the location of the menu on the display. For example, the processing device of AR device 200 may execute instructions of rendering services module 370 to perform this step. Expanding the menu may include showing to the user at least one menu element not shown upon initial display of the menu. Expanding the menu may also include exploding the menu into a plurality of new menu items shown on the display, and the plurality of new menu items may be arranged around an originally displayed menu item. In some embodiments, the processing device may be configured to display a reticle on the display and expand the menu if the user moves a position of the reticle to intercept at least a portion of the menu.
Look-Initiated Communication
In some embodiments, a wearable AR device may be configured to initiate and maintain a communication link with another device, such as another AR device, a smartphone, a tablet, or other computing device. That is, in one example, a wearable AR device may initiate a communication link that allows a user of the device to communicate with another individual, such as another user of a wearable AR device. The communication link may include any electronic pathway through which two or more individuals may communicate (e.g., by speaking, sharing information, etc.) with each other.
A wearable AR device that is configured to allow a user to communicate with another individual presents an opportunity for an enhanced and/or improved communication experience. For example, such AR devices may allow individuals to communicate with each other in situations in which alternative forms of communication may be difficult or impossible. Such communication may include, for example, private or secretive communication, remote communication, communication in environments that are too loud or too quiet for speaking at natural volume, etc. Further, such a device may enhance convenience and reduce effort when it comes to communicating (e.g., directly speaking) with another person.
A wearable AR device according to the present disclosure may include features that allow for initiation of a communication link through a process that incorporates aspects of natural communication experiences and minimizes the steps necessary to open the communication link. These features may enhance the user's augmented reality experience, allowing for increased and efficient communication abilities between individuals while providing a natural and easy-to-use experience.
In an exemplary embodiment, a wearable AR device may initiate a communication link based on an orientation of the device. For example, in an embodiment in which a wearable AR device is worn on a head of a user, the device may initiate a communication link based on a head orientation of the user. In one example, a wearable AR device may be configured for communication by a user orientating a head-worn AR device towards a person of interest, resulting in the wearable AR device opening a communication link between the user and the person of interest. In some embodiments, alternative or in addition to monitoring an orientation of the user's head, the processing device of AR device 200 may be configured to monitor a user's gaze direction based on output received from the one or more eye tracking sensors. For example, the processing device may be configured to initiate a communication link based on the direction of the user's gaze.
In some embodiments, a memory of AR device 200 (e.g., positional processing module 378) may be configured to store instructions that when executed by a processing device (e.g., microprocessor 208) of AR device 200, determine the viewing direction of user 1201 (e.g., the orientation of the head of user 1201 and/or the gaze direction of the eyes of user 1201) based on output from the one or more sensors. The processing device may be further configured to execute instructions to initiate a communication link between AR device 200 and another device (e.g., another AR device), based on the determined viewing direction of user 1201.
In one embodiment, AR device 200 may be oriented toward a direction that corresponds to a user view v1. For example, in an embodiment in which AR device 200 is wearable as glasses, AR device 200 may be oriented in a direction that user 1201 is looking. In this way, a head orientation determined by the sensors associated with AR device 200 may correspond to a direction that user 1201 is looking.
In an exemplary embodiment, AR device 200 may be configured to initiate a communication link with a device 200A based on a determination that AR device 200 is oriented towards a device 200A and/or a user associated with device 200A. For example, as shown in
Based on at least the determination that AR device 200 is oriented toward user 1202 (and/or device 200A), AR device 200 may be configured to initiate a communication link 1203 that allows user 1201 to communicate with user 1202 and, in some embodiments, vice versa. For example, in some embodiments, as user 1201's AR device 200 rotates in the environment and its field of view changes, different people of interest and/or representations (e.g., an image, text, icon, etc.) of people of interest may be displayed on the display of AR device 200 when its field of view overlaps with the location of each person of interest. Then looking at a person of interest or an icon representing them may establish a communication link, even if the person is using a different type of device (e.g., a smartphone).
AR device 200 may be configured to identify people of interest and display them and/or representations of them based on information received by AR device 200. For example, AR device 200 may populate a list of people of interest from a list of contacts received by AR device 200. In some embodiments, AR device 200 may designate any individual possessing a device, to which AR device 200 may establish a communication link, as a person of interest. It should be understood that AR device 200 may define people of interest in advance of user 1201 using AR device 200. In some embodiments, server system 110 may automatically define people of interest. For example, certain groups (e.g., corporations, military units, etc.) may register associated individuals with server system 110 and allow any AR device connected to server system 110 to use the registered individuals as a list of people of interest. AR device 200 may receive location information associated with people of interest and display representations of these people to user 1201 (e.g., when they are within a certain distance of AR device 200).
As shown in
In the embodiment of
It should be understood that communication link 1305 may be configured such that various types of group communication may be possible. In some instances, communication link 1305 may operate like a conference call, where all individuals connected through communication link 1305 can hear and can talk to all others. In other instances, communication link 1305 may be one way communication where members of the group (e.g., users 1302, 1303, 1304) can hear a communication leader (e.g., user 1301) and can talk with the communication leader but cannot hear or talk with others in the group. AR device 200 may be configured such that a user can select the type of group communication to be used.
At step 1410, AR device 200 may monitor a viewing direction user 1201 (e.g., an orientation of the head of user 1201 and/or a gaze direction of the eyes of user 1201) based on output of at least one sensor associated with AR device 200. For example, a processing device (e.g., microprocessor 208) of AR device 200 may execute instructions of positional processing module 378, discussed above in relation to
At step 1420, AR device 200 may determine whether the user is looking in a direction of an individual. For example, AR device 200 may compare a viewing direction of user 1201 with additional information to determine that user 1201 is looking in a direction of user 1202. The additional information may include, for example, a location of user 1202. The location of user 1202 may be determined, for example, through input from a sensor (e.g., a camera) associated with AR device 200 and/or through location data determined by device 200A and sent to AR device 200 (e.g., over a wireless network). Further, as discussed above, AR device 200 may locate any suitable device (e.g., a smartphone, tablet, computer, etc.) and provide information to AR device 200 regarding devices that are available for communication.
At step 1430, AR device 200 may establish a communication link between the user and the individual. For example, AR device 200 may establish a communication link 1203 between user 1201 and user 1202, via AR device 200 and device 200A. The established communication link may be a pathway through with user 1201 may communicate (e.g., speaking, sharing information, etc.) with user 1202. As described herein, the communication link may be two-way (e.g., user 1202 can reciprocally communicate with user 1201), although not necessarily.
In some embodiments, the communication link may be established when user 1201 speaks into AR device 200. For example, AR device 200 may determine that the speech is intended for user 1202 (since user 1201 is looking at user 1202) and transmit audio data to device 200A. In some embodiments, AR device 200 may determine whether user 1202 is oriented toward user 1201 before a communication link is established. It should be understood, however, that, in at least some embodiments, user 1202 need not be looking at user 1201 in order for AR device 200 to determine that user 1201 is looking in a direction of an individual (and/or establish a communication link). Similarly, AR device 200 may determine whether another individual is a recognized person. For example, AR device 200 may process image data from a sensor (e.g., camera) and determine that at least a portion of an individual is in the image data. AR device 200 may compare image data with stored image data, to determine whether the at least one individual is a recognized person. In some embodiments, AR device 200 may establish a communication path between the user and the at least one individual if the at least one individual is a recognized person.
Once the communication link is established, users 1201 and 1202 may continue to communicate with each other until the communication link is deactivated. In an exemplary embodiment, the communication link may remain active even if user 1201 stops looking at user 1202 (e.g., moves their head around). AR device 200 may include a feature to allow the communication link to be deactivated. For example, AR device 200 may deactivate the communication link when AR device 200 determines that user 1201 is no longer looking at user 1202 (e.g., for a threshold period of time). In other embodiments, user 1201 may cause the communication link to be deactivated by pressing a button, using a voice command, looking in a certain direction (e.g., up) or in a certain pattern, selecting a hang up icon on the display with eye tracking or by moving a reticle to a hang up icon.
It should be understood that AR device 200 may perform a process similar to process 1400 to communicate with a group of individuals. For example, as described with respect to
In some embodiments, AR device 200 may be configured to establish a communication link between a user and another individual who is physically separated from the user by a wall, building, and/or geographic distance which would prevent the user and the other individual from seeing each other. For example, AR device 200 may present an indication (e.g., text, an icon, an image of a person's face, etc.) in the view of the user through a display associated with AR device 200. The indication may identify other individuals that the user is facing, even though the use cannot see them. AR device 200 may determine the existence of these individuals based on an orientation of AR device 200 and location information associated with the other individuals.
As described above, AR device 200 may display representations of individuals in a manner consistent with their relative location with respect to AR device 200. For example, in some embodiments, a representation (e.g., an image, text, icon, etc.) representing a person of interest may be displayed in a user's field of view, if that user's location is or would be in the field of view. A user may select the representation to establish a communication link.
The user may select the representation by, for example, orienting a reticle with the representation. For example, AR device 200 may display a reticle on its display and allow head-movements made by the user to indicate the direction or location of the representation to be selected by lining up the reticle with the representation. In some embodiments, a particular representation may be selected if the time that the user looks in the direction of the representation on the display exceeds a predetermined dwell time threshold (e.g., 1 second, 2 seconds, 3 seconds, 5 seconds, 10 seconds, etc.). It should be understood, however, that other selection mechanisms are possible (e.g., pressing a button, speaking an audible command, etc.). After the user has selected the representation, a communication link may be established between the user's AR device and the other user's device.
In the above embodiment, by rotating or changing head orientation and/or eye orientation and, therefore, the associated field of view, a user may see the individuals that are located in a position that is or would be in the user's field of view (e.g., are located in a position that is generally aligned with a direction that the user is looking). Further it should be understood that AR device 200 may present information associated with the location of individuals in a convenient manner. For example, representations shown in AR device 200's display may vary based on a relative distance to user 1201. For example, for individuals that are close by, AR device 200 may display individual pictures, text, icons, etc. For individuals that are far away, AR device 200 may display a nested icon that can be expanded upon selection, allowing selection of a particular individual included in the nested icon. In addition, AR device 200 may be configured to filter information associated with other individuals such that only certain individuals and/or representations are displayed at a given time. For example, AR device 200 may use a filter that shows only people that are within a certain distance range from the user, or show only people within a particular azimuth range. In another embodiment, AR device 200 may show only certain user-selected people (e.g., “favorites” specific to the user of AR device 200.).
In some embodiments, AR device 200 may be configured to be used to communicate with people within certain radiuses of the user. For example, AR device 200 may display a representation only for people within 100 m, 500 m, 1 km, etc. of the user. AR device 200 may also show representations for people at farther distances, such as one mile, several miles, or even hundreds or thousands of miles, if desired. For example, user 1202 may look in a general direction and AR device 200 may display a representation of a person in that direction or virtual location, even though the associated person is in a different city or country. User 1202 may nonetheless select the representation, and AR device 200 may establish a communication link between user 1202 and the person in the different city or country.
Consistent with disclosed embodiments, a device, such as an AR device, may establish a communication link with another device based on an orientation of a user of the AR device, such as an orientation that includes the user looking at another individual. This feature may align naturally with the normal interaction of human communication, where users look at each other while talking. The ability to communicate through an AR device based on looking at another person may allow for improved and efficient communication in a simple and natural manner, allowing people to more easily communicate in instances when it may otherwise be difficult. For example, AR device 200 may allow for communication between users that can see each other but are too far away to talk at a normal or acceptable speaking volume, users that wish to speak privately or secretly even though others are present in a room, users that are relatively nearby but cannot see each other, and the like).
Unlocking a Wearable Device
In some embodiments, a wearable augmented reality device may be configured to secure digital data associated with the device with password protection or similar security features. Wearable AR devices, in some cases, may not include typical input devices familiar to users of personal computing devices, such as a mouse and a keyboard. Accordingly, wearable AR devices consistent with disclosed embodiments may be configured to allow a user to enter user credentials and passwords using other inputs and methods that, in some embodiments may allow for hands-free interaction. For example, in some cases including a head mounted wearable AR device, user credentials and passwords may be entered based on the detected orientation of the user's head and/or the detected gaze direction of the user's eyes, among other techniques.
This system of credential entry may avoid challenges and security risks typically associated with attempting to enter passwords on a user device. Entering long strings of letters, numbers, and/or characters requires memorization of these strings, which may be difficult. Entry of passwords on touch screen devices leaves smudges or other visual indicia that can be used to steal those passwords. And entering letters, numbers, and characters without external input devices may be difficult and time-consuming.
For example, consistent with some embodiments, a wearable device may include a display and at least one sensor configured to provide an output indicative of a viewing direction of a user (e.g., an orientation of the head of a user and/or a gaze direction of the eyes of a user). The wearable device may further include at least one processing device configured to monitor a viewing direction of the user based on the output of the at least one sensor. On the display, the user may be presented with a visual depiction of a series of points. In operational scenarios where entry of passwords or other credentials is required, the user may “dwell” or orient a depiction of a cursor (or reticle) over specific points for specified periods of time. The “password” may thus represented by a predetermined pattern of the displayed points. To enter the password, the user may follow the predetermined pattern, dwelling on the first point, then the next, etc. until the pattern is completed. Based on the monitored viewing direction, the at least one processing device may be further configured to determine whether the user has successfully “entered” the password.
As discussed above, in some embodiments, alternative in addition to monitoring an orientation of the user's head, the processing device of AR device 200 may be configured to monitor a user's gaze direction based on output received from one or more eye tracking sensors. For example, the processing device may be configured to determine whether the user has successfully “entered” the password based on the direction of the user's gaze.
In some embodiments, positional processing module 378 shown in
For example, in order to perform various tasks and/or access various features, such as locking and unlocking AR device 200, user 1501 may move his or her head and/or eyes to various orientations within a three-dimensional coordinate system. As described above, one or more sensors included in AR device 200 may be configured to detect the viewing direction of user 1501. The sensors may then output information indicative of the viewing direction to a processor device, such as microprocessor 208 shown in
In some embodiments, the one or more sensors may be configured to detect the viewing direction of user 1501 periodically. For example, the one or more sensors may be configured to detect the viewing direction of user 1501 at any suitable time interval (e.g. every second, multiple times per second (2, 4, 6, 10 or more times per second), or once over the course of multiple seconds, etc.). Further, the one or more sensors may be configured to output a detected angle of AR device 200 with respect to the horizontal plane (or other suitable reference plane) to a processing device (e.g., microprocessor 208). Alternatively, the one or more sensors may be configured to output the detected coordinates of one or more predetermined reference points of AR device 200 with reference to a predetermined coordinate system. For example, the one or more sensors may be configured to detect coordinates of multiple points of display 204 in a predetermined three-dimensional coordinate system having an origin set as the central point of AR device 200.
The processing device (e.g., microprocessor 208) of AR device 200 may be configured to monitor the viewing direction of user 1501 based on the output of the one or more sensors. For example, the processing device may be configured to determine the viewing direction of user 1501 based on received coordinates of points of the device from the one or more sensors. In some embodiments, the processing device may be configured to monitor both the viewing direction of user 1501 and the time duration (or “dwell time”) that the head and/or eyes of user 1501 stays in the viewing direction based on output received from the sensor. For example, if the time duration that the head and/or eyes of user 1501 stays in a detected viewing direction is less than a predetermined time threshold, the processing device may determine that user 1501 does not intend the detected viewing direction to cause AR device 200 to take an action. On the other hand, if the time duration that the head of user 1501 stays in a detected viewing direction is greater than or equal to the predetermined time threshold, the processing device may determine that user 1501 intends the detected viewing direction to cause AR device 200 to take an action.
In the example illustrated in
AR device 200 may be configured to enter an unlocked state upon receiving a predetermined input from a user, such as a password. This process will be described in further detail below in association with
Upon receiving input of the password from the user AR device 200, via processor device 123 and memory 124, may verify that the correct password has been entered. If the correct password has been received, AR device 200 may be configured to enter an “unlocked” state to provide the user with access to information on display 204 of AR device 200.
In
Virtual menu 1606 may include one or more selectable elements each associated with one or more actions that may be taken by AR device 200 upon selection by a user, such as user 1501, when AR device 200 is in an unlocked state. For example, virtual menu 160 may present options for user 1501 to save AR content, share it with other users, rotate the display of the AR content, zoom the display in or out, initiate a phone call, change settings associated with a camera on AR device 200, or any other options or tasks that user 1501 may select to provide input, request information, or initiate a task associated with AR device 200.
In some embodiments, AR device 200 may receive an indication that user 1501 seeks to unlock the device. The indication may be a verbal indication from user 1501. In other embodiments, the indication may include a tactile indication, or may be received based on positional changes detected by IMU 201, such as a shake or nod of the head of user 1501. After receiving the indication, rendering services module 370 may present a graphical display to user 1501 on display 204. Any graphical display is contemplated that comprises some array of at least two graphical objects. In some embodiments, the rendered graphical array may comprise a plurality of points. The points may be arranged in any pattern and in a manner such that there is sufficient distance between any two points to allow them to be distinguishable.
For security purposes, the total number of points displayed may exceed the number of inputs needed to enter the password or user credential. For instance, if the password to unlock AR device 200 consists of three characters, at least four points may be presented on display 204. This configuration may increase security, as it reduces the likelihood that a second person could steal the password sequence simply by watching the movements of user 1501 as they enter the sequence. In alternative embodiments, the total number of points displayed may exactly equal the number of inputs needed to enter the password or user credential, and additional security may be provided by assigning various “dwell times,” or specific periods of time that the user must orient a cursor, reticle, or other selection device over a given point to select it as an input. In some embodiments, each point to be selected within a password sequence may be assigned a different dwell time to increase security.
In
In
The input value, such as the dwell time, may be represented graphically to user 1501 within graphical displays such as graphical display 1700b via rendering services module 370. A graphical display associated with the point may be changed by rendering services module 370 to represent the increasing input value. For example, the graphical display could display a sequence of numbers from 1 to 10 as the cursor dwells on the particular point for specific time periods. Alternatively, the displayed sequence of numbers could progress downwards from 10 to 1. In other embodiments, colors could be used instead of numbers; for example, the graphical display associated with the particular point could cycle through the colors of the rainbow from red to violet. In still further embodiments, the graphical display could cycle progressively through letters of an alphabet, for example the English language Latin alphabet, a Cyrillic alphabet, or characters of Chinese, Japanese, or Korean languages. These examples are not intended to be limiting, and any graphical display may be used to indicate increasing input values for a particular point.
In the examples of
In
Each input value is specific for its assigned point. For example, in the illustration of
In some embodiments, after the correct number of points have been triggered by user 1501 for the appropriate amounts of time, rendering services module 370 may generate a button or new point that allows user 1501 to enter or submit the password for verification. Alternatively, the password may be automatically entered after successful input of the correct input values at the correct input points. Either successful sequence may lead to
As another example, in process 1800, a sensor of AR device 200 may detect a gaze direction of the eyes of user 1501 and provide a corresponding output to a processing device of AR device 200. User 1501 may move his or her eyes in order to correspondingly move a cursor or reticle within the display for purposes of entering a password or other user credential to unlock AR device 200. The processing device of AR device 200 may track the pattern of movement of the user, and unlock the device if the pattern matches a predetermined pattern used as the password.
At step 1810, AR device 200 may monitor a viewing direction of user 1501 (e.g., an orientation of the head of user 1501 and/or a gaze direction of the eyes of user 1501) based on output of at least one sensor associated with the AR device. For example, the processing device (e.g., microprocessor 208) of AR device 200 may execute instructions of positional processing module 378, discussed above in relation to
User 1501 may be presented with a series of interactive graphical displays, such as displays 1700a-1700k described above in association with
In some embodiments, the pattern of movement may include two or more movements along different directions as user 1501 maneuvers the graphical display array to select the particular objects associated with the password. In some embodiments, the two or more movements along different directions may comprise a leftward movement and a rightward movement. In other embodiments, the two or more movements along different directions may include an upward movement and a downward movement.
The “tracking” of user 1501's movement in step 1810 may include tracking the position of a cursor or reticle on the display 204, which is movable by user 1501 in concert with the orientation of his or her head and/or eyes. This cursor may be similar to the cursor 1702 depicted in
At step 1820, AR device 200 may determine that the tracked pattern of movement for user 1501's head and/or eyes matches a predetermined pattern of movement—namely, the preset password configured for purposes of unlocking a lockable AR device. As discussed above in association with
The detection process associated with step 1820 may be modified to provide additional security features. In some embodiments, in order to minimize the opportunities for an outside entity to decipher the password by watching the head movement and/or eyes of the user the position of the plurality of points can be altered. For example, the positioning of the entire array may be shifted within the interactive graphical display each time the points are displayed. In other embodiments, the position of individual points within the array may be shifted. This may create some additional ambiguity in the motion of AR device 200.
In other embodiments, AR device 200 may ignore the required order of entry of the individual points within the password sequence pattern, permitting user 1501 to enter the individual inputs in any order, and in a different order each time if desired. In these embodiments, the ability of an outside observer to detect repeated, similar head movements and/or eye movements may be substantially reduced. Alternatively, the required order may cycle in a random order each time the device is unlocked. As an additional feature, password inputs may overlay on one another at a single point; in other words, user 1501 could enter input at a particular point within the array, then return to that same point later in the sequence entry to enter a second input.
Additional security measures may be included. In some embodiments, specific zones or travel paths may be configured for correct password entry. For example, user 1501 may be required to pass cursor 1702 through certain points or between certain regions of the screen while moving between the input-required points. In these embodiments, if AR device 200 does not detect that cursor 1702 passes through the additionally configured positions, then the inputs, even if correct, would not constitute an acceptable password. These configured “paths” may or may not be visible to the user on display 204 while entry is in progress.
In still other embodiments, rendering services module 370 may configure icons to be used as the objects within the array instead of discrete, identical points. Input value could then be indicated as described above by cycling numbers on top of each icon as a function of dwell length. The icons may be shuffled around each time the device is unlocked, increasing security. For example, the display may be configured to display icons representing animals as the points comprising the password. The password may then comprise, e.g., “chicken for 5 (dwell time),” “dog for 3,” and “horse for 6.” This password could therefore be entered no matter where those particular icons were displayed within the graphical array of objects. Alternatively, the display may be configured in a manner where the icons move on the screen, and password entry may be configured such that user 1501 is to dwell on a particular location until the desired, correct icon reaches that position (or any other particular position).
In some embodiments, AR device 200 may be equipped with additional input devices, such as a pointer, stylus, mouse device, etc. The additional input devices may provide input to AR device 200 via, for example, communications interface 121. In these embodiments, user 1501 may use a combination of dwell time and the input device(s) to select an icon or point. In some embodiments, the selection of the points or icons may be accomplished via movement of the head of user 1501 and/or via movement of the eyes of user 1501, and confirmation of the entry may be effected by use of a second input device (e.g., a fingerprint recognition device). For example, AR device may be equipped with a fingerprint recognition device that can recognize one or more fingerprints (e.g., a thumbprint of a user). In some embodiments, the fingerprint recognition device may be used to facilitate the unlocking of AR device 200 without the need of monitoring the orientation of the head of the user. In other embodiments, the fingerprint recognition device may be used in connection with entry of a password via tracking the orientation of the head of the user of AR device 200, as described above. Thus, the fingerprint recognition device may serve as a second factor in a two factor authentication process. In addition, in some embodiments, as an alternative (or in addition) to monitoring the orientation of the head of the user of AR device 200, AR device 200 may include an eye tracker device, which may monitor an eye of the user of AR device 200 in order to detect a password entered when the user looks at certain locations.
At step 1830, AR device 200 may transition from a locked state to an unlocked state to provide user 1501 with access to information on display 204 of the device. This process is illustrated above in association with
After transitioning to an unlocked state, user 1501 may gain access to any or all subset of features, functions, and programs stored within AR device 200. As an example, after being unlocked, AR device 200 may display a virtual menu such as virtual menu 1606 of
Providing Task-Based Instructions
In one embodiment, the progress of a task assigned to a particular user of a wearable device may be monitored. As steps in the task are completed, information relating to the next steps may also be passed to the user. The information relating to the task and next steps in the task may be received by the wearable device over or a network and/or retrieved from a memory of the wearable device.
For example, consistent with some embodiments, a wearable device provides a user of the device with task-based instructions. The device comprises a display, a network interface, and a data input device configured to capture information relating to progress of a task. The device further comprises at least one processing device configured to provide to a server system, via the network interface, the captured information relating to progress of the task; receive from the server system, via the network interface, information relating to a next step in the task; and cause the information relating to the next step in the task to be shown on the display.
Referring to
In some embodiments, server system 110 may provide data to AR device 200 via network 130 according to a store-and-forward data model. In such an implementation, AR device 200 may not need to maintain connectivity with network 130. For example, AR device 200 may download tasks and workflows prior to the commencement of the work. AR device 200 may then provide instructions (e.g., images, video, text, audio, etc.) for one or more steps of the tasks and store the result or results of the task while AR device 200 is offline and not available and/or not in communication with network 130. The stored data may be stored in an encrypted format. Further, after AR device 200 resumes connectivity with network 140, AR device 200 may send the result or results of the task to server system 110.
As shown in
In some embodiments, server system 110 may identify the required hardware and/or software configurations of an AR device in order to perform the task and determine whether the AR device has the capability to perform the task. For example, server system 110 may store the hardware and/or software configurations of AR device 200 in database 113 and may retrieve the configurations of AR device 200 based on the received identifier of AR device 200. As another example, AR device 200 may send its hardware and/or software configurations to server system 110 during the initial stage of performing the task such that server system 110 may determine whether AR device 200 is capable of performing the task. If server system 110 determines that AR device 200 is not capable of performing the task, server system 110 may send a message to AR device 200 indicating that the device is not capable of performing the task and instructing the device to stop the task. On the other hand, if server system 110 determines that AR device 200 is capable of performing the task, server system 110 may proceed and provide the task-related information to AR device 200.
In some embodiments, server system 110 may identify that additional information related to AR device 200 is required in order to provide the task-related information to the device. For example, server system 110 may identify that information related to hardware and/or software configurations of AR device 200 is required in order to determine whether the requested task can be performed by the device. In this situation, server system 110 may send a message to AR device 200 requesting the additional required information via network 130. When additional information is received from AR device 200, server system 110 may store the received information in database 113 such that server system 110 may retrieve the information directly for future tasks. In some embodiments, server system 110 may require the user of AR device 200 to input a passcode in order to authenticate the identity of the user. For example, server system 110 may send a message to AR device 200 requesting an input of the passcode, and if an incorrect passcode is received from AR device 200, server system 110 may send a message to AR device 200 informing the device that the passcode is incorrect and requires AR device 200 to resend the passcode. After a number of unsuccessful attempts, server system 110 may instruct AR device 200 to stop the task. If the correct passcode is received from AR device 200, server system 110 may proceed to provide the task-related information to AR device 200.
At step 1902, server system 110 may provide information relating to a next step in the task to AR device 200. After receiving the information relating to the next step in the task, the processing device of AR device 200 may cause the information to be shown on display 204. As illustrated in
Task-assist information 1905 may be shown at a predetermined position on display 204, such as the center of display 204, an upper portion of display 204, or any other suitable location. The predetermined location for displaying task-assist information 1905 may be pre-configured by user 401 through a user interface of AR device 200. For example, display 204 may allow user 401 to select a location of display 204 at which task-assist instruction 1905 will be displayed. In some embodiments, after task-assist information 1905 is displayed at a pre-set location, user 401 may be allowed to drag task-assist information 1905 to another location on display 204 that is preferred by user 401. For example, the processing device of AR device 200 may set the new location as a default location for displaying task-assist information 1905, and display task-assist information 1905 at the new location when AR device 200 receives information relating to a next step in a task. In other embodiments, the location of task-assist information 1905 may be locked to a predetermined position of display 204 such that user 401 cannot reposition the task-assist information.
In response to the displayed information relating the next step in the task, the user of AR device 200 may perform actions to continue execution of the task based on the displayed information. For example, the user may take an image of the current field of view according to task-assist information 1905. In some embodiments, the processing device of AR device 200 may cause an action interface, such as a command or icon, to be displayed on display 204 subsequent to or concurrently with the display of task-assist information 1905. The command or icon may be associated with actions of the next step in the task indicated in the task-assist information in order to facilitate the user to take the next step. For example, a camera icon 1906 may be displayed on display 204, and the user of AR device 200 may perform the next step in the task (e.g., taking a picture) by simply selecting the icon. In some embodiments, the information relating to the next step in the task may include more than one option that the user may take to continue the task, and more than one command or icon may be displayed on display 204. For example, the information relating to the next step in the task may indicate that the user may either take an image of the current field of view or input the current location of the user. Accordingly, an input field may be displayed along with a camera icon on display 204, and the user may either select the camera icon or input the user's current location in the displayed input field to proceed. In other embodiments, the processing device of AR device 200 may not cause an action interface to be shown on the display and may require the user to initiate the next step in the task by opening a menu or pressing a button of the AR device to perform the action in the next step.
In some embodiments, the user of AR device 200 may confirm completion of a step of the task by taking certain actions associated with a data input device of AR device 200. For example, the data input device (e.g., microphone 205) may include a voice recognition module configured to determine whether the user has audibly confirmed completion of a task step. In such an embodiment, the user may issue a voice command to confirm completion of the task step when the step is completed. As another example, the user may press a button on AR device 200 to confirm completion of a task step. In another example, a text command, icon, or check-box may be displayed on display 204 for the user to select and confirm completion of a task step. In other embodiments, the processing device may determine completion of a task step by detecting that the step provided by server system 110 has been performed, and thus would not require confirmation by the user of the completion of a task step.
After the next step in the task is performed, the data input device of AR device 200 may be configured to capture information relating to the progress of the task. For example, the data input device may cause the progress of the task to be updated when a certain step is completed. Referring to
At step 1903, the processing device of AR device 200 may send the updated information relating to the progress of the task, such as the completion of the next step provided in step 1902, to server system 110 via network 130. The processing device may also send the captured data in performing the step in the task, e.g., the captured image file, to server system 110 if server system requires the captured data to proceed in the task. For example, after receiving the updated information relating to the progress of the task, server system 110 may send a message to AR device 200 requesting for the captured data in performing the step in the task, and AR device 200 may send the captured data to server system 110 via network 130.
After receiving the updated information relating to the progress of the task, server system 110 may determine whether the task is completed or additional steps of the task remain incomplete. In some embodiments, server system 110 may determine the required steps by accessing database 113, compare the required steps and the completed steps, and determine whether the task is completed. In other embodiments, server system 110 may forward the information related to the progress of the task to a remote server that may determine whether the task is completed. For example, the remote server may provide server system 110 with additional steps to be taken by AR device 200, or send a confirmation message to server system 110 indicating that the task is completed.
If additional steps are required, server system 110 may provide information relating to the next step in the task to AR device 200, similar to step 1902. AR device 200 may display information relating to the next step in the task. After the next step is completed, AR device 200 may send updated information relating to the progress of the task to server system 110, similar to step 1903. In other words, steps 1902 and 1903 may be repeated until all the steps of the task are completed. In some embodiments, server system 110 may provide information including multiple steps (e.g., a list of the required steps) to perform a task in one or more messages transmitted to AR device 200. AR device 200 may correspondingly display the required steps on display 204. After the steps in the task are completed, AR device 200 may send updated information relating to the progress of the task to server system 110, indicating that the steps have been completed.
At step 1904, when the steps of the task are completed, server system 110 may send an indication to AR device 200 indicating that the task is completed. In some embodiments, server system 110 may provide automatic confirmation of step and/or task completion (e.g., based on images, text, and/or video transmitted to server system 110). For example, server system 110 may analyze information received from AR device 200 after a step has been completed and determine whether the step was completed correctly. If so, server system 110 may automatically confirm completion and my send the next task instruction to AR device 200 based on this determination. If the step was not completed correctly, server system 110 may provide an instruction to clarify and/or correct the prior step and transmit that information to AR device 200.
In addition, in some embodiments, an operator of a workstation (e.g., computer, smartphone, tablet, etc.) may receive data over network 130 from server system 110 regarding a completed step, and the operator may determine whether the step was completed correctly. For example, the operator may review text, images, and/or video transmitted from AR device 200 regarding a step performed by the user of AR device 200. If the step was completed correctly, the operator may confirm the correct completion, and the operator may then select and send the next instruction AR device 200. If the step was not completed correctly, the operator may send supplemental information to AR device 200 to clarify and/or correct the step.
After receiving an indication indicating that a task has been completed, AR device 200 may display a message 1907 on display 204 informing the user that the task has been completed. In some embodiments, a progress bar may be shown on display 204 informing the user of the progress of the task. The percentage of the task being completed may be increased in the progress bar each time a step of the task is completed. After the task has been completed, the processing device of AR device 200 may cause the progress bar to show that 100 percent of the task is completed.
In some embodiments, an operator may modify and/or select the information that is transmitted to AR device 200 relating to a step in a task. For example, a workstation (e.g., computer, smartphone, tablet, etc.) may receive data over network 130 from server system 110. An operator of the workstation may monitor information (e.g., text, images, and/or video) received by server system 110 from AR device 200. The operator may then determine whether a task is complete and/or send the next instruction. For example, via a user interface of the workstation, the operator may send one or more auxiliary instructions to supplement and/or modify instructions being sent to AR device 200. The operator may send these auxiliary instructions to, for example, correct errors that may have been made and/or to address unexpected events.
In addition, in some embodiments, the operator may annotate information provided to display 204 of AR device 200. The operator may access a workstation (e.g., computer, smartphone, tablet, etc.) and use a user interface to draw annotations that are transmitted to display 204 of AR device 200. For example, the operator may highlight areas of interest associated with a workplace, the user's environment, and/or an object in the user's environment. As another example, the operator may circle a part to be worked on (e.g., point to a fastener), or identify problems by circling or pointing to objects in the user's field of view. Server system 110 may receive these annotations from the workstation over network 130 and then transit the annotations with or supplemental to information being transmitted to AR device 200. Accordingly, AR device 200 may display the annotations received from the operator of the workstation when displaying any of the instructions to complete a task on display 204 of AR device 200.
At step 2001, AR device 200 may send the captured information relating to progress of a task (e.g., a request for providing task-based instructions relating to the task) to server system 110. For example, AR device 200 may send a request to initiate the task to server system 110. AR device 200 may also send an identifier of the specific task that is requested, an identifier of the AR device, and/or a current location of the AR device, to server system 110.
At step 2002, server system 110 may provide a video instruction for performing a next step in the task to AR device 200. Alternatively, AR device 200 may retrieve a video instruction for performing a next step in the task from a memory included in AR device 200. The video instruction may include a video presentation of how the next step in the task should be conducted. After receiving the video instruction for performing the next step in the task, the processing device of AR device 200 may cause a video icon 2004 to be shown on display 204, indicating to the user of AR device 200 that a video instruction for performing the next step in the task is available. Video icon 2004 may be shown at a predetermined position on display 204, such as the center of display 204, an upper portion of display 204, or any other suitable location. In some embodiments, a text notification may be displayed in place of or in addition to the video icon to inform the user that a video instruction is available. In some embodiments, an audio notification, such as a ring tone, may alert the user that a video instruction is available. It should be understood that while a video instruction is used in this example, the information relating to the next step in the task may be presented in other forms, such as an audio instruction, a text instruction, a graphic instruction, or a combination thereof, without departing from the spirit of the present disclosure.
The user of AR device 200 may select video icon 2004 to play the video instruction. In some embodiments, the video instruction may include multiple steps in the task or all of the steps in the task. When the next step in the task is completed, the processing device of AR device 200 may cause a text message 2005 shown in the display, indicating completion of the task step. In some embodiments, text message 2005 may be selectable, and the user of AR device 200 may select text message 2005 to confirm that the task step is completed (e.g., by looking in the direction of text message 2005 for a certain period of time, touching the portion of the display that text message 2005 is shown, moving a reticle to intercept with text message 2005, pressing a button on AR device 200, or the like). If the video instruction includes multiple steps in the task, the selectable text message may be displayed after all the steps provided in the instruction are completed, and the user of AR device 200 may select text message 2005 to confirm that all the steps provided in the instruction are completed by performing the operations described above.
At step 2003, AR device 200 may send an indication to server system 110 that the provided task step is completed. AR device 200 may send the indication when AR device 200 is in communication with server 110. After receiving the indication, server system 110 may determine whether there are additional steps in the task to be performed by AR device 200. Alternatively, AR device 200 may retrieve a video instruction for performing a next step in the task from a memory included in AR device 200. If there are additional steps in the task, steps 2002 and 2003 may be repeated until all the steps in the task have been performed. If server system 110 determines that all the steps in the task have been performed, server system 110 may provide an indication to AR device 200 indicating that the task is completed. Alternatively, AR device 200 may determine whether the task is completed based on data stored in a memory of AR device 200.
At step 2110, AR device 200 may capture information relating to progress of a task. For example, a data input device (e.g., camera 203, microphone 205, display 204) of AR device 200 may capture information relating to progress of a task and provide the information to a processing device of AR device 200. For example, the data input device may include an image capture device configured to acquire image data during performance of steps in the task.
At step 2120, AR device 200 may provide to a server system, via a network interface, the captured information relating to progress of the task. For example, the processing device of AR device 200 may execute instructions of network interaction services 372 to perform this step. The network interface may include one or more of an Internet connection, a cellular connection, a WAN connection, or a LAN connection, or any other type of network connection. In some embodiments, AR device 200 may also provide an identifier of AR device 200 to the server system. In some embodiments, the server system may include an enterprise resource planning system.
At step 2130, AR device 200 may receive from the server system, via the network interface, information relating to a next step in the task. For example, the processing device of AR device 200 may execute instructions of network interaction services 372 to perform this step. Alternatively, AR device 200 may retrieve a video instruction for performing a next step in the task from a memory included in AR device 200. The information received from the server may include a video instruction, a text-based instruction, a graphical-based instruction, or an audible instruction for performing the next step in the task. At step 2140, AR device 200 may cause the information relating to the next step in the task to be shown on the display. For example, the processing device of AR device 200 may execute instructions of rendering services module 370 to perform this step. The information relating to the next step in the task may be shown at a predetermined location on the display. A user of AR device 200 may subsequently follow the information and cause the next step in the task to be performed. In some embodiments, the data input device may include a voice recognition module configured to determine that the user has audibly confirmed completion of a task step. In some embodiments, the data input device may include a button for the user to press to confirm completion of a task step. In some embodiments, the processing device of AR device 200 may cause an indication to be sent to the server system after completion of the task step.
Controlling an on-Board Component
In one embodiment, an interface is disclosed for controlling an on-board component without relying upon voice or button activated controls.
For example, consistent with an embodiment, a wearable device may control one or more operations of an on-board component. The device may comprise a display and at least one sensor configured to provide an output indicative of a viewing direction of a user (e.g., an orientation of a head of a user and/or a gaze direction of the eyes of a user). The device may further comprise at least one processing device configured to cause at least one graphical icon associated with a control of at least one aspect of the on-board component to be shown on the display such that the user perceives the location of the at least one graphical icon as fixed relative to real world coordinates; determine, based on the output of the at least one sensor, whether the user is looking in a direction of the at least one graphical icon; and initiate the control of the at least one aspect of the on-board component when the user is determined to be looking in the direction of the at least one graphical icon.
As discussed above, AR device 200 may include sensor array 125, which may include one or more sensors configured to detect a viewing direction of user 2201. For example, the processing device of AR device 200 may be configured to determine whether user 2201 is looking in a direction of the graphical icon based on the monitored orientation of the head and/or eyes of user 2201. In some embodiments, positional processing module 378 shown in
For example, the processing device may determine the direction of the user's sight line based on the monitored orientation of the head of user 2201 and/or the gaze direction of the eyes of user 2201. The processing device may identify a region on display 204 that includes the graphical icon associated with controlling the on-board component. The identified region may be the same as or slightly larger than the area the graphical icon occupies. If the direction of the user's sight line falls into the identified region, the processing device may determine that user 2201 is looking in the direction of the graphical icon and initiate operation of the on-board component. On the other hand, if the direction of the user's sight falls outside the identified region, the processing device may determine that user 2201 is not looking in the direction of the graphical icon associated with control of the on-board component, and thus, may not initiate control of the on-board component.
In some embodiments, the processing device may be configured to determine a time duration that user 2201 looks in a direction of the location of the graphical icon associated with controlling the on-board component based on output received from the sensor. For example, the sensors of AR device 200 may sense the orientation of the user's head and/or gaze direction of the user at a predetermined time interval (e.g., 2, 4, 6, 10 or more times per second) and provide an output to the processing device.
The processing device may determine the time duration that user 2201 looks in a direction of the graphical icon based on whether the sensed viewing direction of the user's head and/or gaze direction changes from the previously detected viewing direction. For example, if the currently detected viewing direction stays unchanged from the previously detected viewing direction (e.g., at the last time interval), the processing device may increase the amount of time that the user has looked in the direction of the graphical icon by the predetermined time interval. If the currently detected viewing direction changes from the previously detected orientation, the processing device may determine that the user has moved the direction of his or her sight line away from the graphical icon and may reset the amount of elapsed time that the user has looked in the graphical icon to zero. If the time duration that the user 2201 looks in a direction of the graphical icon is less than a predetermined time threshold, the processing device may determine that user 2201 does not intend to initiate control of the on-board component and may not take any action. On the other hand, if the time duration that the viewing direction of user 2201 stays in a detected viewing direction is greater than or equal to the predetermined time threshold, the processing device may determine that user 2201 intends to control operation of the on-board component and may initiate the control of the on-board component.
In some embodiments, as discussed above, alternative or in addition to monitoring an orientation of the user's head, the processing device of AR device 200 may be configured to monitor a user's gaze direction based on output received from one or more eye tracking sensors. For example, the processing device may be configured to determine whether user 2201 is looking in a direction of the graphical icon based on the detected gaze direction of user 2201.
As shown in
Graphical icon 2301 may be shown at a predetermined position on display 204, such as the center of display 204, an upper portion of display 204, or any other suitable location. The predetermined location for displaying graphical icon 2301 may be pre-configured by user 2201 through a user interface of AR device 200. For example, display 204 may allow user 2201 to select a location of display 204 at which graphical icon 2301 will be displayed. In some embodiments, after graphical icon 2301 is displayed at a pre-set location, user 2201 may be allowed to drag graphical icon 2301 to another location on display 204 that is preferred by user 2201. For example, the processing device of AR device 200 may set the new location as a default location for displaying graphical icon 2301, and display graphical icon 2301 at the new location when AR device 200 receives user input to display the graphical icon associated with control of the on-board component. In other embodiments, the location of graphical icon 2301 may be locked to a predetermined position of display 204 such that user 2201 cannot reposition the graphical icon.
After graphical icon 2301 associated with control of the on-board component is provided on display 204, AR device 200 may be configured to display graphical icon 2301 in a fixed location relative to real world coordinates. For example, the user may perceive that graphical icon 2301 is located at a particular location in the real world, and when the user moves or looks away from that particular location, graphical icon 2301 may not appear on the display. That is, the display of graphical icon 2301 may depend not only on the specific viewing direction of the user, but also the physical location of the user. Even if the viewing direction of the user remains the same, if the physical location of the user changes, graphical icon 2301 may disappear from the display. Graphical icon 2301 may reappear on the display when the user looks again at the particular location in the real world.
In other embodiments, graphical icon 2301 may be provided at a fixed, perceived location relative to the user, such as in an unlocked mode. For example, graphical icon 2301 may appear on the display whenever the head and/or eyes of user 2201 is moved to a particular viewing direction (e.g., a certain degree to the right direction, regardless the physical location of the user in the real world). Once graphical icon 2301 is displayed, the location of graphical icon 2301 may be changed as the user rotates his or her head and/or eyes toward the icon. For example, once graphical icon 2301 is shown on the display, subsequent head and/or eye movements further in the upward direction may cause the location of graphical icon 2301 to move downward on the display. Similarly, subsequent head and/or eye movements in a downward direction may cause the location of graphical icon 2301 to move upward on the display. Additionally, the processing device may be configured to also cause changes in the left-right position of the graphical icon relative to the display in response to detected horizontal movements of the user's head and/or eyes (e.g., right-left changes in the looking direction of the user's head and/or eyes).
Reticle 2302 may constitute a virtual reticle shown on display 204 whose position on display 204 may be changed in response to user input. For example, one or more eye tracking sensors, as described above, may enable tracking of a user's gaze direction, and the position of reticle 2304 on display 204 may be changed with determined changes in the user's gaze direction.
In some embodiments, reticle 2302 may be fixed relative to display 204 (e.g., may be physical inscribed or otherwise marked on display 204 or any other suitable component of AR device 200) such that reticle 2302 moves with changes in the user's head orientation and/or direction of the user's gaze. In such embodiments, reticle 1001 may be used, e.g., to selectively overlap with and select portions of graphical icon 2301 that remains unlocked relative to display 204 and fixed relative to real world coordinates.
For example, if the processing device determines that the position of reticle 2302 is moved to intercept a portion of graphical icon 2301, the processing device may cause graphical icon 2301 to be highlighted on display 204. By highlighting graphical icon 2301, the processing device of AR device 200 may provide an indication to user 2201 that graphical icon 2301 may be selected if the user continues looking in the direction of graphical icon 2301 for a certain period of time. In some embodiments, if the processing device determines that the position of reticle 2302 is moved to intercept a portion of graphical icon 2301, the processing device may cause aspects of the reticle to be changed to provide an indication to user 2201 that graphical icon 2301 may be selected by further user actions, such as looking in the direction of graphical icon 2301 for a certain period of time. For example, the color of reticle 2302 may be changed when the position of reticle 2302 is moved to intercept a portion of the graphical icon 2301.
In some embodiments, reticle 2302 may be shown at the center of display 204 when it is initially turned on, and may be moved to other locations in response to user input. For example, user 401 may drag reticle 2302 from one position to another position on display 204 by touching display 204. Alternatively or additionally, the processing device may be configured to move the position of reticle 2302 in response to sensed changes in the user's gaze direction (e.g. using eye tracking, as discussed above). Further, as discussed above, the position of reticle 2302 relative to graphical icon 2301 may be changed by tracking the user's viewing direction (e.g., head orientation and/or gaze direction0 and updating the position on display 204 at which graphical icon 2301 is displayed as the user's viewing direction changes. The processing device may move the position of graphical icon 2301 the opposite direction as the detected direction of the movement of the head and/or eyes of user 401, such that reticle 2302 intercepts graphical icon 2301.
Once reticle 2302 is moved into a position that intercepts a portion of graphical icon 2301, the processing device of AR device 200 may cause graphical icon 2301 to be highlighted on display 204. Subsequently, user 2201 may cause graphical icon 2301 to be selected by looking in the direction of graphical icon 2301. Alternatively, user 2201 may cause graphical icon 2301 to be selected by pressing the portion of the display at which reticle 2302 is located for a certain period of time. In some embodiments, user 2201 may cause graphical icon 2301 to be selected by pressing a physical button that is placed on AR device 200.
If the processing device of AR device 200 detects that graphical icon 2301 is selected (e.g., by determining that user 2201 is looking in a direction of the graphical icon), the processing device may initiate control of certain aspect of an on-board component. For example, the on-board component may include an on-board camera, and the processing device may cause the on-board camera to be powered on in response to the detected selection of graphical icon 2301. As another example, the processing device may cause the image capture function of the on-board camera to be turned on in response to the detected selection of graphical icon 2301. In another example, the processing device may cause an image to be captured by the on-board camera on in response to the detected selection of graphical icon 2301.
In some embodiments, the on-board component may include an on-board microphone, and a graphical icon associated with operations of the microphone may be displayed on display 204. For example, the processing device of AR device 200 may cause the on-board microphone to be powered on in response to the detected selection of graphical icon. As another example, the processing device may cause the audio recording function of the on-board microphone to be turned on in response to the detected selection of the graphical icon.
In some embodiments, in response to a detected selection of a graphical icon that is associated with control of an on-board component, the processing device of AR device 200 may cause a menu of control icons to be shown on the display. The menu of control icons may include operations associated with different aspects of the on-board component, thereby allowing the user to control a particular aspect of the on-board component as desired.
As shown in
After camera control menu 2303 is displayed, the processing device of AR device 200 may cause a particular aspect of the on-board camera to be controlled if the processing device determines that user 2201 is looking in a direction intersecting a particular item shown on camera control menu 2303. For example, if the processing device determines that user 2201 is looking in a direction intersecting menu item “flash” on camera control menu 2303, the processing device may cause the flash function of the on-board camera to be turned on. As another example, if the processing device determines that user 2201 is looking in a direction intersecting menu item “flash” on camera control menu 2303 and the flash function of the camera is currently turned on, the processing device may cause the flash function of the on-board camera to be turned off. In some embodiments, user 2201 may cause a particular item shown on camera control menu 2303 to be selected by moving a reticle to the location of the particular item, touching the portion of the display where the item is shown, pressing a physical button of the device, or the like.
At step 2410, AR device 200 may cause a graphical icon associated with controlling an aspect of an on-board component to be shown on display 204. For example, the processing device of AR device 200 may execute instructions of rendering services module 370 to perform this step. The on-board component of AR device 200 may include a camera. The graphical icon may be associated with a power-on function of the on-board camera, an image capture function of the on-board camera, or any other functions of the on-board camera.
The graphical icon may be displayed in a manner such that the user perceives the location of the graphical icon as fixed relative to real world coordinates. In some embodiments, the processing device may be configured to update a position at which the graphical icon is shown on the display based on the output of the sensor. For example, the location of the graphical icon shown on the display may be changed by a detected movement in the orientation of the head of the user and/or by a detected movement in the gaze of the user's eyes.
At step 2420, AR device 200 may determine, based on the output of the sensor, whether user 2201 is looking in a direction of a selectable element of the graphical icon. For example, the sensor may be configured to provide an output indicative of the viewing direction of the user by tracking a pattern of movement of an orientation of the head of the user. As another example, the sensor may be configured to provide an output indicative of the viewing direction of the user by tracking a gaze of the user's eyes. For example, the processing device of AR device 200 may execute instructions of positional processing module 378 to perform this step. The processing device may determine the direction of the user's sight line based on the viewing direction of user 2201. The processing device may further use coordinates of multiple references points of AR device 200 received from the sensors to determine the direction of the user's sight line.
At step 2430, AR device 200 may control an aspect of the on-board component when user 2201 is determined to be looking in the direction of the graphical icon. Further, in some embodiments, AR device 200 may initiate control of an aspect of the on-board component after the user has looked in the direction of the graphical icon for a predetermined period of time (e.g., 1 second, 2 second, 3 seconds, 5 seconds, 10 seconds, etc.) The processing device of AR device 200 may execute instructions of rendering services module 370, command processor 366, and/or third party applications 362 to perform this step. The on-board component may include an on-board camera, and the control of the aspect of the on-board component may include powering on the on-board camera, capturing an image using the on-board camera, and so on. In some embodiments, a menu of camera control icons may be shown on the display when user 2201 is determined to be looking in the direction of graphical icon. The menu of camera control icons may include icons associated with one or more of shutter speed, aperture, ISO, flash, and so on.
Sharing Information Between Users of AR Devices
In some embodiments, a one-to-many system may enable sharing of information between multiple wearable devices. For example, information available to a particular wearable device user may be made available to multiple other users by showing that information on the displays of the multiple users.
For example, consistent with an embodiment, a system may interact with and share information among a plurality of users of a corresponding plurality of wearable devices. The system may comprise a network interface and at least one processing device associated with the system. The at least one processing device may be configured to receive, via the network interface, information from a first wearable device; select from the plurality of wearable devices one or more designated wearable devices to receive the information; and send, via the network interface, the information to the one or more designated wearable devices.
Server system 110 may include a network interface for communicating with the AR devices via network 130. For example, server system 110 may include an Internet connection, a cellular connection, a WAN connection, a LAN connection, and/or any other types of network connections that can be used for communication. Server system 110 may receive information from one or more AR devices and send information to one or more AR devices via the network interface.
In some embodiments, when the same information is to be sent to multiple AR devices, server system 110 may be configured to send the information to the AR devices simultaneously through broadcasting or multicasting mechanisms. For example, server system 110 may broadcast certain information on a given time and/or frequency resource such that AR devices 2505-2510 may receive the information at a substantially same time. As another example, server system 110 may multicast certain information to a particular set of AR devices on a given time and/or frequency resource such that the particular set of AR devices may receive the information at a substantially same time, while other AR devices may not receive the information. In other embodiments, server system 110 may be configured to send the information to each of AR devices 2505-2510 individually at a different time and/or using different frequency resources.
Server system 110 may include one or more processing devices configured to execute software instructions programmed to facilitate information sharing between users 2501-2505. For example, the processing devices may execute software instructions to identify a group of users that shares one or more common user attributes, such as a geographic location, an affiliation with certain organization, a hobby, etc. The processing devices may include one or more suitable hardware-based processing devices, such as a microprocessor, controller, central processing unit, etc. that can execute software-based instructions. Such software instructions may be stored, for example, in memory devices (e.g., memory 112). In some embodiments, the software instructions for performing information sharing between users of AR devices may be stored in a computer-readable storage medium, and/or in a database co-located with or remotely located from server system 110.
In some embodiments, server system 110 may include one or more databases (e.g., database 113) for storing information of users of AR devices. For example, server system 110 may include databases for storing profiles of users of AR devices. The user profiles may include information of users such as name, age, location, profession, interests, contacts, and so on. The user profiles may also include user preferences related to information sharing. For example, user 2501 of AR device 2506 may set certain information to be public and accessible to other users. On the other hand, user 2501 may set other information to be private and only accessible to a group of designated users, such as users in a contact list of user 2501. In some embodiments, the user profiles may include user activity data, for example, a history of user activity, such as interactions with other users of AR devices, information retrieved by the user from the server system, locations that the user went to, days and/or times during which the AR device was used by the user, or the like, collected over a certain period of time (e.g., the past week, month, three months, or any other suitable time period).
As shown in
In some embodiments, user 2501 may request that AR device 2506 share certain information before the particular information is acquired by the AR device. For example, user 2501 may request that AR device 2506 share an image of the user's current field of view before the image is captured. User 2501 may select a graphical icon or text command on the display of AR device 2506, indicating a request to share an image of the user's current field of view with other users. In response, AR device 2506 may cause the image to be captured and then send the captured image to server system 110 for sharing with other users without requiring further input from user 2501.
In some embodiments, user 2501 may designate one or more users for sharing the information with, and AR device 2506 may send information from the designated users to server system 110 along with the information to be shared. For example, user 2501 may select one or more users from the contact list to receive the shared information, and AR device 2506 may send identifiers of the selected users to server system 110 along with the information to be shared. As another example, AR device 2506 may retrieve identifiers of the AR devices corresponding to the selected users, and send identifiers of the AR devices to server system 110 along with the information to be shared. As another example, user 2501 may input names of the users to receive the shared information. In response, AR device 2506 may retrieve identifiers of the users corresponding to the names, and send the user identifiers to server system 110 along with the information to be shared.
After receiving the shared information from AR device 2506, server system 110 may select one or more designated AR devices to receive the shared information. For example, if user identifiers are provided by AR device 2506 along with the shared information, server system 110 may retrieve, from the database, information of the corresponding AR devices based on the received user identifiers, and send the shared information to the corresponding AR devices. As another example, if identifiers of the AR devices for receiving the shared information are provided by AR device 2506, server system 110 may send the shared information to the corresponding AR devices without having to look up the information of the AR devices in the database. In another example, if the shared information is marked as public and may be shared with all users of AR devices or all users of AR devices belonging to, for example, a particular user group, server system 110 may retrieve, from the database, information of the users and the corresponding AR devices that have subscribed to receive information from user 2501, and send the shared information to the corresponding AR devices.
In some embodiments, if user 2501 does not designate any users to receive the shared information, a default setting may be applied for selecting the users to receive the shared information. For example, if user 2501 does not designate any users to receive the shared information, server system 110 may determine that the information may be publicly shared, and thus, any users of AR devices may receive the information. As another example, if user 2501 does not designate any users to receive the shared information, server system 110 may determine that the information may be shared among users who are listed as contacts of user 2501, and thus, only users that are contacts of user 2501 may receive the information. Alternatively, if user 2501 does not designate any users to receive the shared information, server system 110 may share the information among the users that were previously designated by user 2501 as users to share information with in a previous request by user 2501. In some embodiments, if user 2501 does not designate any users to receive the shared information, server system 110 may send a message to AR device 2506 requiring information of the designated users to receive the shared information. AR device 2506 may then display a message on the display, prompting user 2501 to provide input as to the users to receive the shared information.
In some embodiments, if user 2501 does not designate any users to receive the shared information, server system 110 may analyze the user profile of user 2501 and other users of AR devices, and select the users to receive the shared information based on the user profiles. For example, server system 110 may identify a commonality between user 2501 and other users, and send the shared information to the users that have the commonality. The commonality may be a location, an affiliation, a profession, an interest, and/or any other attributes that can be identified based on profiles of the users. In some embodiments, in addition to sending the shared information to the users that have a commonality with user 2501, server system 110 may also send a message to user 2501 including information of the users that receive the shared information, such as name and/or location of the users, and the identified commonality between user 2501 and the users that receive the shared information.
In some embodiments, a combination of commonalities may be used to select users to receive the shared information. For example, server system 110 may identify users that share both the same location and same interest as that of user 2501 and send the received information to these users. Referring to
After receiving the shared information, each of the AR devices may cause the information to be shown on a display such that the shared information can be accessible by the users of the AR devices. For example, the shared information may be displayed at a predetermined location on the display of the AR devices. The predetermined location at which the shared information is displayed may be pre-configured by the users of the AR devices. In some embodiments, the shared information may be shown on a portion of the display of the AR device so that the shared information does not block the view of the user. In other embodiments, AR device may display the shared information on the display such that the shared information is semi-transparent and the user can view his or her environment behind the shared information. When the shared information includes an audio recording, each of the AR devices may cause the audio recording to be played by the AR devices. In other embodiments, real time video from one user may be streamed to a portion of the display of the AR devices of one or more other users.
In some embodiments, a notification may be first displayed on the display of the AR device prior to the display of the shared information, notifying the user receipt of the shared information. The notification may also indicate an identity of the sending user. In some embodiments, the notification may indicate certain features of the shared information, such as the type of the shared information, the size of the shared information, the time at which the shared information was received, or the like. In some embodiments, along with the notification, the display of the AR device may also show operations associated with the shared information that the user may select to perform. For example, an option may be shown on the display allowing the user to access the shared information. As another example, an option may be shown on the display allowing the user to access the shared information at a later time. In another example, an option may be shown on the display allowing the user to delete the shared information without viewing the information. It should be understood that the AR devices that receive the shared information may have different hardware and/or software configurations, and the shared information and/or the notification may be displayed in a same or different manner in each of the AR devices.
In some embodiments, another user may respond to the shared information with audio and/or images related to the shared information. For example, a user of an AR device may send an image (e.g., an image of an engine) to another person using anther device (e.g., a similar or different AR device, or another computing device, such as a smartphone, tablet, etc.) who is located elsewhere and who may respond with screen annotations and/or audible instructions to help guide the user. The screen annotations and/or audible instructions may assist the user (e.g., providing instructions to the user related to the engine).
In some embodiments, a user of the AR device may also request to access information associated with another user via server system 110 and network 130. For example, user 2501 may wish to access an image of the current field of view of user 2502, and user 2501 may request user 2502 to share the image via server system 110 and network 130. In response to a user input from user 2501, AR device 2506 may send a request to server system 110, requesting user 2502 to share an image of the user's current field of view. Server system 110 may forward the request to AR device 2507 and inquire whether user 2502 will accept the request to share the image. After receiving the request, AR device 2507 may cause a message to be shown on the display, indicating to user 2502 that a request to share the image is received from user 2501 and inquiring whether user 2502 will accept the request. If user 2502 provides an input rejecting the request, AR device 2507 may send a response to server system 110, indicating that the request was rejected, and server system 110 may subsequently forward the response to AR device 2506. If user 2502 provides an input accepting the request, AR device 2507 may capture an image of the current field of view of user 2502 and send the image to server system 110. Server system 110 may subsequently forward the image to AR device 2506, which may in turn cause the image to be shown on the display of AR device 2506.
In some embodiments, a user of the AR device may set a degree of sharing with respect to certain information stored on the AR device. For example, user 2501 may select a picture folder on the AR device to be shared with a designated group of users, e.g., user 2502 and user 2503. As a result, when a new picture is added to the picture folder, AR device 2506 may automatically send the picture to server system 110 and request the picture to be shared with user 2502 and user 2503. Server system 110 may then send the picture to AR devices 2507 and 2508 according to the received request from AR device 2506. Similarly, when an existing picture in the picture folder is changed or updated, AR device 2506 may automatically send the updated picture to server system 110 and request the updated picture to be shared with user 2502 and user 2503. Server system 110 may then send the updated picture to AR devices 2507 and 2508 according to the received request from AR device 2506.
As another example, user 2501 may select a picture folder on the AR device to be shared with users that have the same location and interest with user 2501. When a new picture is added to the picture folder, AR device 2506 may automatically send the picture to server system 110 and request the picture to be shared with users that have the same location and interest with user 2501. Server system 110 may then identify the users of AR devices that have the same location and share one or more interests with user 2501 based on the user profiles, and send the picture to the corresponding AR devices. Similarly, when an existing picture in the picture folder is changed or updated, AR device 2506 may automatically send the updated picture to server system 110 and request the updated picture to be shared with users that have the same location and one or more shared interests with user 2501. Server system 110 may then identify the users of AR devices that have the same location and shared interests with user 2501, and send the updated picture to the corresponding AR devices. It should be understood that while in this example location and interest are used as target user attributes in selecting users to receive the shared information, any other attributes associated with the users may be used for the selection of users.
In some embodiments, shared information from multiple users may be organized on the display of an AR device. For example, shared information may be shown on the display of an AR device in a hierarchy (e.g., a scrollable list of selectable images, videos, and/or audio icons). The hierarchy of available information may be shown, for example, on a side of the display or along a top of the display of the AR device.
At step 2610, server system 110 may receive, via a network interface, information from a first wearable device, such as AR device 200. The network interface may include one or more of an Internet connection, a cellular connection, a WAN connection, a LAN connection, and/or any other types of network connections. The information may include image data retrieved from an image capture device associated with the first wearable device, audio data retrieved from an audio device associated with the first wearable device, text messages retrieved from an input device associated with the first wearable device, and/or a combination thereof.
At step 2620, server system 110 may select from a plurality of wearable devices one or more designated wearable devices to receive the information. For example, the processing device of server system 110 may be configured to select the one or more designated wearable devices based on a predetermined setting retrieved over the network interface. As another example, the processing device may select the one or more designated wearable devices based on an analysis of user profiles of the corresponding plurality of users of the plurality of wearable devices. In some embodiments, the analysis of user profiles may include identifying a commonality of the plurality of users based on the user profiles.
At step 2630, server system 110 may send, via the network interface, the information to the one or more designated wearable devices. In some embodiments, the processing device of server system 110 may further cause the information sent to the designated devices to be shown on a display associated with each of the designated devices.
At step 2710, server system 110 may receive user profiles of a plurality of users of corresponding AR devices. For example, the processing device of server system 110 may receive the user profiles from each of the corresponding AR devices via the network interface. As another example, the processing device of server system 110 may receive the user profiles from a database that is co-located with or remotely located from server system 110. In another example, the processing device of server system 110 may receive the user profiles from a third-party system that stores information of the user profiles.
At step 2720, server system 110 may identify a commonality of the plurality of users based on user profiles. For example, the processing device of server system 110 may identify a common user attribute, such as a location, an affiliation, a profession, an interest, and/or any other attributes that can be identified based on the user profiles, among the plurality of users. In some embodiments, the processing device may identify more than one commonality among the plurality of users. For example, the processing device may identify both a location and an interest as commonalities shared by a subset of the plurality of users based on the user profiles.
At step 2730, server system 110 may select one or more designated devices to send information to based on the commonality. For example, the processing device of server system 110 may select the devices corresponding to users that share a certain commonality with a particular user (e.g., the user of the sending device that provides the information) as the receiving devices to send information to. As another example, the processing device may select the devices corresponding to users that share a combination of commonalities with a particular user (e.g., the user of the sending device that provided the information). In some embodiments, the required commonality may be indicated by the sending device that provides the information, and the processing device of server system 110 may select the devices corresponding to users who share the required commonality.
The foregoing description has been presented for purposes of illustration. It is not exhaustive and is not limited to the precise forms or embodiments disclosed. Modifications and adaptations will be apparent to those skilled in the art from consideration of the specification and practice of the disclosed embodiments. Additionally, although aspects of the disclosed embodiments are described as being stored in memory, one skilled in the art will appreciate that these aspects can also be stored on other types of computer readable media, such as secondary storage devices, for example, hard disks, floppy disks, or CD ROM, or other forms of RAM or ROM, USB media, DVD, Blu-ray or other optical drive media.
Computer programs based on the written description and disclosed methods are within the skill of an experienced developer. The various programs or program modules can be created using any of the techniques known to one skilled in the art or can be designed in connection with existing software. For example, program sections or program modules can be designed in or by means of .Net Framework, .Net Compact Framework (and related languages, such as Visual Basic, C, etc.), Java, C++, Objective-C, HTML, HTML/AJAX combinations, XML, or HTML with included Java applets. One or more of such software sections or modules can be integrated into a computer system or existing e-mail or browser software.
Moreover, while illustrative embodiments have been described herein, the scope of any and all embodiments having equivalent elements, modifications, omissions, combinations (e.g., of aspects across various embodiments), adaptations and/or alterations as would be appreciated by those skilled in the art based on the present disclosure. The limitations in the claims are to be interpreted broadly based on the language employed in the claims and not limited to examples described in the present specification or during the prosecution of the application. The examples are to be construed as non-exclusive. Furthermore, the steps of the disclosed methods may be modified in any manner, including by reordering steps and/or inserting or deleting steps. It is intended, therefore, that the specification and examples be considered as illustrative only, with a true scope and spirit being indicated by the following claims and their full scope of equivalents.
This application claims the benefit of priority of U.S. Provisional Patent Application No. 61/910,419, filed on Dec. 1, 2013, U.S. Provisional Patent Application No. 61/910,425, filed on Dec. 1, 2013, and U.S. Provisional Patent Application No. 62/043,759, filed on Aug. 29, 2014, all of which are incorporated herein by reference in their entirety.
Number | Date | Country | |
---|---|---|---|
61910419 | Dec 2013 | US | |
61910425 | Dec 2013 | US | |
62043759 | Aug 2014 | US |