Embodiments presented herein relate to a method, a control device, a computer program, and a computer program product for providing a complementary virtual keyboard of a virtual input device in a virtual environment.
Virtual input devices, such as optical virtual keyboards allow input of characters without the need for physical keys. The human interaction with the virtual keyboard occurs mostly via a touchscreen interface, but can also take place in a different form in virtual or augmented reality. In this respect, optical virtual input devices are configured to optically detect and analyze human hand and finger motions and interpret them as operations on a physically non-existent input device, such as like a surface with painted or projected keys on a virtual keyboard. In that way optical virtual devices can emulate unlimited types of manually operated input devices (such as a mouse, keyboard, and other devices). Further, a projection keyboard is a form of optical virtual input device whereby the image of a virtual keyboard is projected onto a surface. When a user touches the surface covered by an image of a key, the input device records the corresponding keystroke. Further, some optical virtual input devices are based on combinations of laser and tactile sensors where finger-on-projected-area in combination with micro-vibration detection are considered. For example, a projected finger tap detected simultaneously with a tap-rendered vibration is indicative of a key stroke. Mechanical input units can thereby be replaced by such virtual input devices, potentially optimized for a specific application and for the user's physiology, maintaining speed, simplicity and unambiguity of manual data input.
Further, using the example of a virtual keyboard as virtual input device, some virtual keyboards have a rather limited size. A consequence of this is that the virtual keyboard might only have a limited amount of virtual keys. Otherwise, the virtual keys might become so small that user interaction, for example in the form of a user typing on the virtual keys of the virtual keyboard becomes difficult. In this respect, there might be a risk that it cannot be determined which virtual key the user intends to touch, or otherwise interact with, when the virtual keys become too small. One way to solve this is to either have some virtual keys representing one or more symbols, or allowing the user to change between virtual keyboards with different sets of virtual keys.
In the first example it could be cumbersome for the user to select the intended symbol of the virtual key when at least some of the virtual keys at the same time represent two or more symbols. In the second example it could be cumbersome for the user to select symbols that are not displayed on the virtual keyboard 120.
An object of embodiments herein is to address the above issues and to provide techniques that quickly and accurately can reveal a complementary virtual keyboard.
According to a first aspect there is presented a method for providing a complementary virtual keyboard of a virtual input device in a virtual environment. The virtual input device is a virtual keyboard comprising virtual keys. The method is performed by a control device. The method comprises identifying user interaction with the virtual input device. The user interaction comprises at least one hand of the user interacting with the virtual input device in the virtual environment. The method comprises calculating a virtual representation of the user interaction with the virtual input device. The method comprises identifying, from the virtual representation, that the user interaction comprises the hand of the user is turned so that a palm side of the hand faces away from the virtual keyboard. The method comprises, in response thereto, revealing the complementary virtual keyboard for receiving user input from the user in the virtual environment.
According to a second aspect there is presented a control device for providing a complementary virtual keyboard of a virtual input device in a virtual environment. The virtual input device is a virtual keyboard comprising virtual keys. The control device comprises processing circuitry. The processing circuitry is configured to cause the control device to identify user interaction with the virtual input device. The user interaction comprises at least one hand of the user interacting with the virtual input device in the virtual environment. The processing circuitry is configured to cause the control device to calculate a virtual representation of the user interaction with the virtual input device. The processing circuitry is configured to cause the control device to identify, from the virtual representation, that the user interaction comprises the hand of the user is turned so that a palm side of the hand faces away from the virtual keyboard. The processing circuitry is configured to cause the control device to, in response thereto, reveal the complementary virtual keyboard for receiving user input from the user in the virtual environment.
According to a third aspect there is presented a control device for providing a complementary virtual keyboard of a virtual input device in a virtual environment. The virtual input device is a virtual keyboard comprising virtual keys. The control device comprises processing circuitry. The control device comprises an identify module configured to identify user interaction with the virtual input device. The user interaction comprises at least one hand of the user interacting with the virtual input device in the virtual environment. The control device comprises a calculate module configured to calculate a virtual representation of the user interaction with the virtual input device. The control device comprises an identify module configured to identify, from the virtual representation, that the user interaction comprises the hand of the user is turned so that a palm side of the hand faces away from the virtual keyboard. The control device comprises a reveal module configured to, in response thereto, reveal the complementary virtual keyboard for receiving user input from the user in the virtual environment.
According to a fourth aspect there is presented a communication device. The communication device comprises a control device according to the third or fourth aspect.
According to a fifth aspect there is presented a system. The system comprises a control device according to the third or fourth aspect. The system further comprises user interface device. The user interface device comprises a projection module for making the virtual input device visible on a surface, and a sensor for sensing the user interaction of the user with the virtual input device.
According to a sixth aspect there is presented a computer program for providing a complementary virtual keyboard of a virtual input device in a virtual environment, the computer program comprising computer program code which, when run on a control device, causes the control device to perform a method according to the first aspect.
According to a seventh aspect there is presented a computer program product comprising a computer program according to the sixth aspect and a computer readable storage medium on which the computer program is stored. The computer readable storage medium could be a non-transitory computer readable storage medium.
Advantageously, these aspects enable the reception of accurate user input for revealing the complementary virtual keyboard to be simplified.
Advantageously, these aspects enable the complementary virtual keyboard to be intuitively, quickly, accurately, and dynamically revealed.
Advantageously, these aspects enable the complementary virtual keyboard to be revealed without the user needing to move the hand used for interacting with the complementary virtual keyboard.
Advantageously, these aspects do not require the need for the user to remember any keyboard shortcuts, or so-called “hot keys”, for the complementary virtual keyboard to be revealed.
Advantageously, these aspects do not require the need for having one or more physical buttons on a physical input device for revealing the complementary virtual keyboard.
In some embodiments, the complementary virtual keyboard is revealed by being rendered at a palm of the hand that is turned.
In some embodiments, the complementary virtual keyboard comprises complementary virtual keys, and the method further comprises: determining, from the virtual representation, a size of the palm of the hand that is turned; and determining a size of the complementary virtual keys as a function of the size of the palm of the hand that is turned.
In some embodiments, rendering of the virtual keyboard is continued whilst the complementary virtual keyboard is rendered.
In some embodiments, the complementary virtual keyboard is revealed by being rendered where the virtual keyboard is rendered, or next to where the virtual keyboard is rendered.
In some embodiments, rendering of the virtual keyboard is terminated whilst the complementary virtual keyboard is rendered.
In some embodiments, the method further comprises: identifying, from the virtual representation, further user interaction that comprises fingers of the hand that is turned performing a first predetermined motion; and in response thereto: altering rendering of the complementary virtual keyboard according to a predetermined rule.
In some embodiments, the method further comprises: identifying, from the virtual representation, further user interaction that comprises fingers of the hand that is turned performing a second predetermined motion being a reverse motion of the first predetermined motion; and in response thereto: reverting said altering rendering of the complementary virtual keyboard.
In some embodiments, the method further comprises: identifying, from the virtual representation, further user interaction that comprises the hand of the user being turned so that the palm side of the hand faces away from the complementary virtual keyboard; and in response thereto: terminating rendering of the complementary virtual keyboard.
In some embodiments, the complementary virtual keyboard defines any of: a numerical keyboard, functional keys, application-specific short keys.
In some embodiments, the virtual keyboard defines a first numerical keyboard and the complementary virtual keyboard defines a second numerical keyboard, and wherein the second numerical keyboard is an extension of the first numerical keyboard.
In some embodiments, the user interaction with the virtual input device is performed whilst a software application is run in the virtual environment, and the method further comprises: identifying, according to a predefined criterion, that the complementary virtual keyboard corresponds to the software application; and in response thereto: providing, in the virtual environment, an indication to the user that the complementary virtual keyboard is available and/or an indication of a manoeuvre needed to be made by the user for the complementary virtual keyboard to be revealed.
In some embodiments, the user interaction is identified from information obtained from at least one sensor configured to track hand and finger movement of the user in relation to the virtual input device in the virtual environment.
In some embodiments, the virtual environment is an extended reality virtual environment.
In some embodiments, the virtual environment is either an augmented reality virtual environment, a virtual reality virtual environment, or a mixed reality virtual environment.
In some embodiments, the control device is part of, or integrated with, a communication device.
Other objectives, features and advantages of the enclosed embodiments will be apparent from the following detailed disclosure, from the attached dependent claims as well as from the drawings.
Generally, all terms used in the claims are to be interpreted according to their ordinary meaning in the technical field, unless explicitly defined otherwise herein. All references to “a/an/the element, apparatus, component, means, module, step, etc.” are to be interpreted openly as referring to at least one instance of the element, apparatus, component, means, module, step, etc., unless explicitly stated otherwise. The steps of any method disclosed herein do not have to be performed in the exact order disclosed, unless explicitly stated.
Moreover, the term “comprising” followed by statements of technical features or method steps should be understood as not excluding the presence of other technical features of method steps not stated in appended claims.
The inventive concept is now described, by way of example, with reference to the accompanying drawings, in which:
The inventive concept will now be described more fully hereinafter with reference to the accompanying drawings, in which certain embodiments of the inventive concept are shown. This inventive concept may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein; rather, these embodiments are provided by way of example so that this disclosure will be thorough and complete, and will fully convey the scope of the inventive concept to those skilled in the art. Like numbers refer to like elements throughout the description. Any step or feature illustrated by dashed lines should be regarded as optional.
The embodiments disclosed herein relate to mechanisms for providing a complementary virtual keyboard of a virtual input device in a virtual environment. In order to obtain such mechanisms there is provided a control device, a method performed by the control device, a computer program product comprising code, for example in the form of a computer program, that when run on a control device, causes the control device to perform the method.
The user interface device 110 comprises a projection module 114 for making a virtual input device visible on a surface. The virtual input device is a virtual keyboard 120 that comprises virtual keys 122a, 122b, 124a, 124b (as in
In
Parallel reference will next be made to
S102: The control device 700 identifies user interaction with the virtual input device. The user interaction comprises at least one hand 130a of the user interacting with the virtual input device in the virtual environment. This user interaction with the virtual input device is schematically illustrated in the top parts of
S108: The control device 700 calculates a virtual representation of the user interaction with the virtual input device. Examples of how the virtual representation can be calculated will be disclosed below.
S110: The control device 700 identifies, from the virtual representation, that the user interaction comprises the hand 130a of the user being turned so that a palm side of the hand 130a faces away from the virtual keyboard 120. This turning of the hand 130a is in
S116: The control device 700, in response thereto (i.e., in response to S110 and as schematically indicated by arrow 420 and arrow 520), reveals the complementary virtual keyboard 430, 530 for receiving user input from the user in the virtual environment. This is shown in the bottom parts of
Embodiments relating to further details of providing a complementary virtual keyboard 430, 530 of a virtual input device in a virtual environment as performed by the control device 700 will now be disclosed.
In some aspects, an indication is provided to the user that rendering of the complementary virtual keyboard 430, 530 is possible. In particular, in some embodiments, the user interaction with the virtual input device is performed whilst a software application is run in the virtual environment, and the control device 700 is configured to perform (optional) steps S104 and S106: S104: The control device 700 identifies, according to a predefined criterion, that the complementary virtual keyboard 430, 530 corresponds to the software application.
There could be different such predefined criteria. For example, one predefined criterion (e.g., when the software application is associated with input of numerical symbols) could be that the user is frequently touching, or otherwise interacting with, virtual keys representing numerical symbols on the (original) virtual keyboard 120 dedicated to common text input and there is a complementary virtual keyboard 430, 530 available that is a dedicated numerical keyboard. For example, one predefined criterion could be that the user is frequently touching, or otherwise interacting with, virtual keys representing certain functional keys on the (original) virtual keyboard 120 dedicated to common text input and there is a complementary virtual keyboard 430, 530 available that is dedicated to such functional keys. For example, one predefined criterion could be that the user is frequently touching, or otherwise interacting with, virtual keys representing application-specific short keys on the (original) virtual keyboard 120 dedicated to common text input and there is a complementary virtual keyboard 430, 530 available that is dedicated to such application-specific short keys.
S106: The control device 700, in response thereto (i.e., in response to S104), provides, in the virtual environment, an indication to the user that the complementary virtual keyboard 430, 530 is available and/or an indication of a manoeuvre needed to be made by the user for the complementary virtual keyboard 430, 530 to be revealed.
There could be different such indications that are provided to the user. Non-limiting examples thereof are movie clips or graphical overlays illustrating how the user is enabled to cause the complementary virtual keyboard 430, 530 to be revealed.
There could be different ways to identify that the user interaction comprises the hand 130a of the user being turned so that a palm side of the hand 130a faces away from the virtual keyboard 120 in S110. In some aspects, sensors 112 are configured to track the virtual representation of the user. In particular, in some embodiments, the user interaction is identified from information obtained from at least one sensor 112 configured to track hand and finger movement of the user in relation to the virtual input device in the virtual environment.
There may be different ways for the control device 700 to reveal the complementary virtual keyboard 430, 530 in S116. Different embodiments relating thereto will now be described in turn.
In some aspects, the complementary virtual keyboard 430, 530 is rendered in the palm of the hand 130a that is turned. Particularly, in some embodiments, the complementary virtual keyboard 430, 530 is revealed by being rendered at a palm of the hand 130a that is turned. This is shown in
In some aspects, the size of the complementary virtual keyboard 430, 530 is matched to the size of the palm of the hand 130a that is turned. In particular, in some embodiments, the complementary virtual keyboard 430, 530 comprises complementary virtual keys 432, 532, and the control device 700 is configured to perform (optional) steps S112 and S114: S112: The control device 700 determines, from the virtual representation, the size of the palm of the hand 130a that is turned.
S114: The control device 700 determines the size of the complementary virtual keys 432, 532 as a function of the size of the palm of the hand 130a that is turned.
In some aspects, the (original) virtual keyboard 120 is kept as is under the hand 130b that is not turned.
Particularly, in some embodiments, rendering of the virtual keyboard 120 is continued whilst the complementary virtual keyboard 430, 530 is rendered. This is shown in
In some aspects, the complementary virtual keyboard 430, 530 is rendered under the other hand 130b.
Particularly, in some embodiments, the complementary virtual keyboard 430, 530 is revealed by being rendered where the virtual keyboard 120 is rendered, or next to where the virtual keyboard 120 is rendered. This is shown in
In some aspects, the complementary virtual keyboard 430, 530 replaces the (original) virtual keyboard 120 under the hand 130b that is not turned. Particularly, in some embodiments, rendering of the virtual keyboard 120 is terminated whilst the complementary virtual keyboard 430, 530 is rendered. This is shown in
There might be different actions, operations, or steps, performed by the control device 700 upon having revealed the complementary virtual keyboard 430, 530 for receiving user input from the user in the virtual environment in S116.
In some aspects, the control device 700 is configured to cause an alternation of the complementary virtual keyboard 430, 530 to be revealed upon the user having performed a second motion (e.g. closing the fingers together). In particular, in some embodiments, the control device 700 is configured to perform (optional) steps S118 and S120: S118: The control device 700 identifies, from the virtual representation, further user interaction. This further user interaction comprises fingers of the hand 130a that is turned performing a first predetermined motion.
S120: The control device 700, in response thereto (i.e., in response to S118), alters rendering of the complementary virtual keyboard 430, 530 according to a predetermined rule (e.g., closing the fingers together).
In some aspects, the control device 700 is configured to a reversion back to the complementary virtual keyboard 430, 530 upon the user having performed the reverse of the second motion (e.g. again spreading the fingers). In particular, in some embodiments, the control device 700 is configured to perform (optional) steps S122 and S124: S122: The control device 700 identifies, from the virtual representation, further user interaction. This further user interaction comprises fingers of the hand 130a that is turned performing a second predetermined motion being a reverse motion of the first predetermined motion (e.g., again spreading the fingers).
S124: The control device 700, in response thereto (i.e., in response to S122), reverts the altered rendering of the complementary virtual keyboard 430, 530.
As is understood, S118-S124 provide only some examples of further user interaction, and there might be additional, or alternative further user interaction to those further user interactions disclosed in S118-S124.
Hence, the control device 700 might be configured to reveal a respective complementary virtual keyboard in set of complementary virtual keyboards, where each of these complementary virtual keyboards might be associated with its own further user interaction, or where each of these complementary virtual keyboards are cyclically and in turn revealed.
In some aspects, the control device 700 is configured to cause a reversion back to the (original) virtual keyboard 120 upon the user having performed the reverse of the first motion i.e., turns the hand 130a such that the palm-side again is down-facing. In particular, in some embodiments, the control device 700 is configured to perform (optional) steps S126 and S128: S126: The control device 700 identifies, from the virtual representation, further user interaction. This further user interaction comprises the hand 130a of the user being turned so that the palm side of the hand 130a faces away from the complementary virtual keyboard 430, 530.
S128: The control device 700, in response thereto (i.e., in response to S126), terminates rendering of the complementary virtual keyboard 430, 530.
There might be different examples of complementary virtual keyboards 430, 530. In some non-limiting examples, complementary virtual keyboard 430, 530 defines any of: a numerical keyboard (as in
S201: The control device 700 detects that the user intends to start a session with the virtual input device.
S202: The control device 700 instructs the user interface device 110 to make the virtual keyboard 120 visible.
S203: The control device 700 obtains information from the sensor 112 that enables the control device 700 to track movement of the hands 130a, 130b and fingers of the user. The control device 700 thereby obtains information about user input defining a user interaction with the virtual keyboard 120 in the virtual environment and calculates a virtual representation of the user interaction with the virtual keyboard 120.
S204: The control device 700 identifies, from the virtual representation, whether the user interaction comprises one hand 130a of the user being turned so that a palm side of the hand 130a faces away from the virtual keyboard 120.
S205: The control device 700 reveals the complementary virtual keyboard 430, 530 for receiving user input from the user in the virtual environment, e.g., as in
S206: The control device 700 obtains information from the sensor 112 that enables the control device 700 to continue tracking the movement of the hands 130a, 130b and fingers of the user. The control device 700 thereby obtains information about user input defining a user interaction with the complementary virtual keyboard 430, 530 and updates the virtual representation of the user interaction.
S207: The control device 700 identifies, from the virtual representation, whether the user interaction comprises the hand 130a of the user being turned so that the palm side of the hand 130a faces away from the complementary virtual keyboard 430, 530.
S208: The control device 700 terminates the rendering of the complementary virtual keyboard 430, 530.
Particularly, the processing circuitry 210 is configured to cause the control device 700 to perform a set of operations, or steps, as disclosed above. For example, the storage medium 230 may store the set of operations, and the processing circuitry 210 may be configured to retrieve the set of operations from the storage medium 230 to cause the control device 700 to perform the set of operations. The set of operations may be provided as a set of executable instructions.
Thus the processing circuitry 210 is thereby arranged to execute methods as herein disclosed. The storage medium 230 may also comprise persistent storage, which, for example, can be any single one or combination of magnetic memory, optical memory, solid state memory or even remotely mounted memory. The control device 700 may further comprise a communications interface 220 at least configured for communications with other entities, functions, nodes, and devices. As such the communications interface 220 may comprise one or more transmitters and receivers, comprising analogue and digital components. The processing circuitry 210 controls the general operation of the control device 700 e.g. by sending data and control signals to the communications interface 220 and the storage medium 230, by receiving data and reports from the communications interface 220, and by retrieving data and instructions from the storage medium 230. Other components, as well as the related functionality, of the control device 700 are omitted in order not to obscure the concepts presented herein.
In general terms, each functional module 810:836 may in one embodiment be implemented only in hardware and in another embodiment with the help of software, i.e., the latter embodiment having computer program instructions stored on the storage medium 230 which when run on the processing circuitry makes the control device 700 perform the corresponding steps mentioned above in conjunction with
A first portion of the instructions performed by the control device 700 may be executed in a first device, and a second portion of the of the instructions performed by the control device 700 may be executed in a second device; the herein disclosed embodiments are not limited to any particular number of devices on which the instructions performed by the control device 700 may be executed. Hence, the methods according to the herein disclosed embodiments are suitable to be performed by a control device 700 residing in a cloud computational environment. Therefore, although a single processing circuitry 210 is illustrated in
The same applies to the functional modules 810:836 of
In the example of
The inventive concept has mainly been described above with reference to a few embodiments. However, as is readily appreciated by a person skilled in the art, other embodiments than the ones disclosed above are equally possible within the scope of the inventive concept, as defined by the appended patent claims.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/EP2021/084482 | 12/7/2021 | WO |