WO2021176861A1 - 情報処理装置及び情報処理方法、コンピュータプログラム、並びに拡張現実感システム - Google Patents

情報処理装置及び情報処理方法、コンピュータプログラム、並びに拡張現実感システム Download PDF

Info

Publication number
WO2021176861A1
WO2021176861A1 PCT/JP2021/001542 JP2021001542W WO2021176861A1 WO 2021176861 A1 WO2021176861 A1 WO 2021176861A1 JP 2021001542 W JP2021001542 W JP 2021001542W WO 2021176861 A1 WO2021176861 A1 WO 2021176861A1
Authority
WO
WIPO (PCT)
Prior art keywords
virtual object
hand
user
behavior
interaction
Prior art date
Application number
PCT/JP2021/001542
Other languages
English (en)
French (fr)
Inventor
純輝 井上
木村 淳
真 城間
石川 毅
京二郎 永野
田島 大輔
山野 郁男
Original Assignee
ソニーグループ株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ソニーグループ株式会社 filed Critical ソニーグループ株式会社
Priority to EP21765144.7A priority Critical patent/EP4116939A4/en
Priority to US17/905,194 priority patent/US20230341936A1/en
Priority to JP2022505009A priority patent/JPWO2021176861A1/ja
Publication of WO2021176861A1 publication Critical patent/WO2021176861A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/1613Constructional details or arrangements for portable computers
    • G06F1/163Wearable computers, e.g. on a belt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/1613Constructional details or arrangements for portable computers
    • G06F1/1633Constructional details or arrangements of portable computers not specific to the type of enclosures covered by groups G06F1/1615 - G06F1/1626
    • G06F1/1684Constructional details or arrangements related to integrated I/O peripherals not covered by groups G06F1/1635 - G06F1/1675
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/1613Constructional details or arrangements for portable computers
    • G06F1/1633Constructional details or arrangements of portable computers not specific to the type of enclosures covered by groups G06F1/1615 - G06F1/1626
    • G06F1/1684Constructional details or arrangements related to integrated I/O peripherals not covered by groups G06F1/1635 - G06F1/1675
    • G06F1/1686Constructional details or arrangements related to integrated I/O peripherals not covered by groups G06F1/1635 - G06F1/1675 the I/O peripheral being an integrated camera
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/1613Constructional details or arrangements for portable computers
    • G06F1/1633Constructional details or arrangements of portable computers not specific to the type of enclosures covered by groups G06F1/1615 - G06F1/1626
    • G06F1/1684Constructional details or arrangements related to integrated I/O peripherals not covered by groups G06F1/1635 - G06F1/1675
    • G06F1/169Constructional details or arrangements related to integrated I/O peripherals not covered by groups G06F1/1635 - G06F1/1675 the I/O peripheral being an integrated pointing device, e.g. trackball in the palm rest area, mini-joystick integrated between keyboard keys, touch pads or touch stripes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • G06F3/012Head tracking input arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • G06F3/014Hand-worn input/output arrangements, e.g. data gloves
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/016Input arrangements with force or tactile feedback as computer generated output to the user
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/017Gesture based interaction, e.g. based on a set of recognized hand gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/0304Detection arrangements using opto-electronic means
    • G06F3/0325Detection arrangements using opto-electronic means using a plurality of light emitters or reflectors or a plurality of detectors forming a reference frame from which to derive the orientation of the object, e.g. by triangulation or on the basis of reference deformation in the picked up image

Definitions

  • the technology disclosed in this specification (hereinafter referred to as "the present disclosure") relates to an information processing device and an information processing method for processing information related to augmented reality, a computer program, and an augmented reality feeling system.
  • VR virtual reality
  • AR augmented reality
  • MR Magnetic Reality
  • VR is a technology that allows virtual space to be perceived as reality.
  • AR is a technology for expanding the real space seen by the user by adding, emphasizing, attenuating, or deleting information to the real environment surrounding the user.
  • MR is a technology for displaying a virtual object (hereinafter, also referred to as “virtual object”) that replaces an object in real space, and interlacing the real and the virtual.
  • AR and MR are realized by using, for example, a see-through type head-mounted display (hereinafter, also referred to as “AR glass”).
  • virtual objects are superimposed and displayed on the real space landscape that the user observes through AR glasses, specific real objects are emphasized or attenuated, and specific real objects are deleted as if they do not exist. You can make it look like. Further, a proposal has been made for an information processing device that presents a contact between a real object (such as a user's finger) and a virtual object to the user (see, for example, Patent Document 1).
  • An object of the present disclosure is to provide an information processing device and an information processing method for processing information related to augmented reality, a computer program, and an augmented reality feeling system.
  • the first aspect of the disclosure is An acquisition unit that acquires the position of the user's hand and the posture of the fingers, A control unit that controls the display operation of a display device that superimposes and displays virtual objects in real space, Equipped with The control unit determines the hand interaction that the user intends to perform and the virtual object that is the target of the hand interaction based on the position of the hand and the posture of the fingers acquired by the acquisition unit, and is set as the virtual object. Control the behavior of virtual objects according to hand interaction based on attributes, It is an information processing device.
  • hand interactions are defined, and the attributes including the possibility of each hand interaction are set in advance for each virtual object. Then, the control unit controls the behavior of the virtual object with respect to the user's hand interaction set to be possible by the attribute.
  • the control unit determines the hand interaction that the user intends to perform based on the position of the hand and the posture of the fingers acquired by the acquisition unit from among a plurality of types of predefined hand interactions. For example, the control unit determines which of the precision gripping operation of pinching with the thumb and index finger or the grip strength gripping using three or more fingers, and further determines the angle of change in the position of the hand with respect to the virtual object. Based on the speed of change of the position of the finger with respect to the virtual object, the hand interaction such as "push”, “crush”, “hit”, and “touch” is determined, and the behavior of the virtual object with respect to various hand interactions is controlled.
  • the second aspect of the present disclosure is The acquisition step to acquire the position of the user's hand and the posture of the fingers, A control step that controls the display operation of a display device that superimposes and displays virtual objects in real space, Have, In the control step, based on the position of the hand and the posture of the fingers acquired in the acquisition step, the hand interaction that the user intends to perform and the virtual object that is the target of the hand interaction are determined and set as the virtual object. Control the behavior of virtual objects according to hand interaction based on attributes, It is an information processing method.
  • the third aspect of the present disclosure is Acquisition unit that acquires the position of the user's hand and the posture of the fingers, A control unit that controls the display operation of a display device that superimposes and displays virtual objects in real space.
  • the control unit determines the hand interaction that the user intends to perform and the virtual object that is the target of the hand interaction based on the position of the hand and the posture of the fingers acquired by the acquisition unit, and is set as the virtual object. Control the behavior of virtual objects according to hand interaction based on attributes, It is a computer program.
  • the computer program according to the third aspect of the present disclosure defines a computer program written in a computer-readable format so as to realize a predetermined process on the computer.
  • a collaborative action is exhibited on the computer, and the same action effect as that of the information processing device according to the first aspect of the present disclosure is obtained. be able to.
  • the fourth aspect of the present disclosure is A display device that superimposes and displays virtual objects in real space
  • a control unit that controls the display operation of a display device that superimposes and displays virtual objects in real space
  • the control unit determines the hand interaction that the user intends to perform and the virtual object that is the target of the hand interaction based on the position of the hand and the posture of the fingers acquired by the acquisition unit, and is set as the virtual object.
  • system here means a logical assembly of a plurality of devices (or functional modules that realize a specific function), and each device or functional module is in a single housing. It does not matter whether or not it is.
  • an information processing device and an information processing method, a computer program, and an augmented reality system that realize hand interaction with a virtual object by a user's hand or finger.
  • FIG. 1 is a diagram showing the back of a user's hand on which the controller 10 is installed using the belt 11.
  • FIG. 2 is a diagram showing the palm of a user on which the controller 10 is installed using the belt 11.
  • FIG. 3 is a view showing a side surface of a user's hand on which the controller 10 is installed using the belt 11.
  • FIG. 4 is a diagram showing a user wearing the AR glass 41 on the head and the controllers 42 and 43 on both hands, respectively.
  • FIG. 5 is a diagram showing a functional configuration example of the AR system 100.
  • FIG. 6 is a diagram showing a state in which AR glasses are attached to the user's head.
  • FIG. 7 is a diagram showing a configuration example of an AR system 700 including an AR glass 701 and a controller 702.
  • FIG. 7 is a diagram showing a configuration example of an AR system 700 including an AR glass 701 and a controller 702.
  • FIG. 8 is a diagram showing a configuration example of an AR system 800 including an AR glass 801, a controller 802, and an information terminal 803.
  • FIG. 9 is a diagram showing a specific configuration example of the controller 110.
  • FIG. 10 is a diagram showing a specific configuration example of the controller 110.
  • FIG. 11 is a diagram showing a specific configuration example of the controller 110.
  • FIG. 12 is a diagram showing a specific configuration example of the controller 110.
  • FIG. 13 is a diagram showing a specific configuration example of the controller 110.
  • FIG. 14 is a diagram showing an example of a functional configuration included in the control unit 140.
  • FIG. 15 is a diagram showing how virtual objects are arranged around the user.
  • FIG. 10 is a diagram showing a specific configuration example of the controller 110.
  • FIG. 11 is a diagram showing a specific configuration example of the controller 110.
  • FIG. 12 is a diagram showing a specific configuration example of the controller 110.
  • FIG. 13 is a diagram showing a specific configuration example of
  • FIG. 16 is a diagram for explaining a mechanism for displaying a virtual object so that the AR glass follows the movement of the user's head.
  • FIG. 17 is a diagram showing a method of precisely gripping an object.
  • FIG. 18 is a diagram showing a method of gripping an object by grip strength.
  • FIG. 19 is a diagram showing a state of picking a sword.
  • FIG. 20 is a diagram showing a state of grasping a sword.
  • FIG. 21 is a diagram showing an example in which attributes related to whether or not each gripping operation is possible are set for each virtual object.
  • FIG. 22 is a diagram showing the behavior of the virtual space according to the gripping operation of the user in the area where the virtual object does not exist.
  • FIG. 22 is a diagram showing the behavior of the virtual space according to the gripping operation of the user in the area where the virtual object does not exist.
  • FIG. 23 is a diagram showing the behavior of the virtual space according to the gripping operation of the user in the area where the virtual object does not exist.
  • FIG. 24 is a flowchart showing a processing procedure for realizing the behavior of the virtual object with respect to the gripping operation by the user.
  • FIG. 25 is a diagram showing a configuration example of the remote control system 2500.
  • FIG. 26 is a diagram showing an operator approaching a virtual object with his / her hand on the master device 2510 side.
  • FIG. 27 is a diagram showing a state in which the robot 2521 is approaching an object so as to follow the movement of the operator's hand on the slave device 2520 side.
  • FIG. 28 is a flowchart showing a processing procedure for the operator to grip and operate a remote object in the remote control system 2500.
  • FIG. 29 is a diagram showing an example in which an attribute is set for each virtual object (an example including an attribute of whether or not the suction process (process associated with the gripping operation) is possible).
  • FIG. 30 is a diagram showing an operation example of the adsorption process.
  • FIG. 31 is a diagram showing an example in which an attribute is set for each virtual object (an example including an attribute of a grippable area for each gripping operation).
  • FIG. 32 is a diagram showing a state according to the distance between the user's hand and the virtual object.
  • FIG. 33 is a diagram showing a gesture of a finger trying to pick a virtual object.
  • FIG. 34 is a diagram showing a gesture of a finger trying to grab a virtual object.
  • FIG. 35 is a diagram showing a gesture of a finger not trying to grasp a virtual object.
  • FIG. 36 is a diagram showing the UI behavior of the virtual object according to the position and posture of the user's hand.
  • FIG. 37 is a diagram showing the UI behavior of the virtual object according to the position and posture of the user's hand.
  • FIG. 38 is a diagram showing the UI behavior of the virtual object according to the position and posture of the user's hand.
  • FIG. 39 is a diagram showing the UI behavior of the virtual object according to the position and posture of the user's hand.
  • FIG. 40 is a diagram showing the UI behavior of the virtual object according to the position and posture of the user's hand.
  • FIG. 41 is a diagram showing the UI behavior of the virtual object according to the position and posture of the user's hand.
  • FIG. 42 is a diagram showing the UI behavior of the virtual object according to the position and posture of the user's hand.
  • FIG. 43 is a diagram showing the UI behavior of the virtual object according to the position and posture of the user's hand.
  • FIG. 44 is a flowchart showing a processing procedure (a processing procedure including a change in the UI behavior of the grippable area of the virtual object) for realizing the behavior of the virtual object with respect to the gripping operation by the user.
  • FIG. 45 is a diagram showing a hand interaction that pushes a virtual object.
  • FIG. 46 is a diagram showing a hand interaction that crushes a virtual object.
  • FIG. 47 is a diagram showing an example in which attributes related to the possibility of each hand interaction (push, crush) are set for each virtual object.
  • FIG. 48 is a diagram showing a hand interaction in which a virtual object is struck.
  • FIG. 49 is a diagram showing a hand interaction of touching a virtual object.
  • FIG. 50 is a diagram showing an example in which attributes related to the possibility of each hand interaction (striking, touching) are set for each virtual object.
  • FIG. 51 is a diagram showing the characteristics of each hand interaction with the virtual object.
  • FIG. 52 is a flowchart showing a processing procedure for realizing the behavior of the virtual object with respect to the hand interaction by the user.
  • an object can be grasped by a method such as pinching or grasping, and the shape of the object is changed by the force applied from the pinching or grasping hand.
  • a method such as pinching or grasping
  • the shape of the object is changed by the force applied from the pinching or grasping hand.
  • the hand slips through the object, and the object cannot be grasped in the same manner as in the real space.
  • an augmented reality system that provides a user interface (UI) in which a finger is thrust into an object in virtual space and picked with a fingertip, or a frame provided on the outer circumference of the object is picked is also conceivable.
  • UI user interface
  • the method of grasping an object through the UI in the virtual space has a large deviation from the method of grasping the object in the real space, and the reality is greatly impaired.
  • the object in the virtual space does not actually exist, when the object is grasped by the method of picking or grasping, the hand slips through the object, and the user cannot obtain a realistic tactile sensation.
  • an exoskeleton type force sense presenting device is attached to a hand and an object in virtual space is grasped, the movement of the hand is locked so that the hand does not slip through the object, and the object is grasped in real space.
  • a method of realizing a method of virtual space similar to the method is also conceivable. However, it can be used only by a limited number of users and environments because the purchase cost of the force sense presentation device is high and a place where the force sense presentation device is installed is required.
  • a large-scale device is attached to the hand or finger, the wearing feeling becomes a burden on the user, which may hinder the immersive feeling and reality.
  • A. System configuration In fields such as VR and AR, an input method is known in which a user who wears a head-mounted display and searches for a virtual space operates by holding a controller in his hand. However, it is preferable that the user can perform daily life in the real space such as walking and grasping an object (including a real object and a virtual object) while looking over the real space through the AR glass. Therefore, it is preferable that the input method is such that the fingers are not restrained by gripping the controller and the fingers can be freely used.
  • an input method that does not restrain the user's finger there is a method of detecting the movement of the user's hand from the image taken by the camera.
  • the bones of the user's fingers are extracted by an RGB camera or a ToF (Time Of Flight) camera attached to the AR glass outward, and the position and posture of the fingers and the gestures of the fingers are recognized.
  • the method of detecting the user's hand from the image of the camera has a problem of occlusion and a problem that it cannot be detected outside the angle of view of the camera.
  • controllers used for hand position detection, finger posture recognition, finger gesture recognition, etc. are installed on the user's hands and fingers, and an AR system is configured so that the fingers can be used freely. I made it. Further, in order to grasp a real object or a virtual object by using the hand or finger on which the controller is installed, or to place the virtual object on the palm, it is preferable to keep the palm free. Therefore, it is preferable to install the controller on the back of the hand.
  • FIGS. 1 to 3 show an example in which the controller 10 is attached to the left hand of the user, the controller 10 having a symmetrical shape can also be attached to the right hand.
  • FIG. 4 shows how the user wears the AR glass 41 on the head and the controllers 42 and 43 on both hands, respectively.
  • each of the controllers 42 and 43 has the functions of hand position detection, finger posture recognition, and finger gesture recognition.
  • the AR glass 41 has a function of superimposing and displaying a virtual object in the real space.
  • the AR glass 41 can recognize the positions of the left and right hands, the postures of the fingers, and the gestures of the fingers through the controllers 42 and 43. Further, the AR glass 41 has a function of detecting the position and posture of the user's head. Therefore, the AR glass 41 can detect the relative positions of the user's head and the controllers 42 and 43, in other words, the relative positions of the user's left and right hands. Further, since the coordinate position of the virtual object displayed by the AR glass 41 in the real space is grasped, the relative position between the user's left and right hands and the virtual object can be detected.
  • FIG. 5 shows an example of the functional configuration of the AR system 100 including the AR glass and the controller installed on the back of the user's hand.
  • the illustrated AR system 100 comprehensively controls the operation of the controller 110 installed on the back of the user's hand, the head sensor unit 120, the display unit 131 for displaying virtual objects on the AR glass, and the entire AR system 100. It includes a control unit 140.
  • the controller 110 includes a hand position detection unit 111, a finger posture recognition unit 112, a finger gesture recognition unit 113, and a tactile feedback unit 114.
  • the head sensor unit 120 which is mounted on the AR glass, includes an outward camera 121, an inward camera 122, a microphone 123, a gyro sensor 124, an acceleration sensor 125, and a directional sensor 126.
  • an outward camera 121 an inward camera 122
  • a microphone 123 a microphone 123
  • a gyro sensor 124 an acceleration sensor 125
  • a directional sensor 126 a directional sensor 126.
  • FIG. 5 only one controller 110 is drawn for simplification of the drawing, but when the controller 110 is installed in each of the left and right hands of the user, the AR system 100 includes two controllers 110. ..
  • the AR system 100 may further include a speaker 132 that outputs an audio signal such as a voice related to a virtual object, and a communication unit 133 for the AR system 100 to communicate with the outside.
  • the control unit 140 may be equipped with a large-scale storage unit 150 including an SSD (Solid State Drive) or the like.
  • the AR glass body is generally a spectacle-type or goggle-type device, which is used by the user by wearing it on the head, superimposing digital information on the visual field of the user's eyes or one eye, or emphasizing a specific real object. It can be degraded or attenuated, or a particular real object can be deleted to make it appear as if it does not exist.
  • FIG. 6 shows a state in which AR glasses are attached to the user's head.
  • a display unit 131 for the left eye and a display unit 131 for the right eye are arranged in front of the left and right eyes of the user, respectively.
  • the display unit 131 is transparent or translucent, and displays a virtual object superimposed on a predetermined position in the real space, emphasizes or attenuates a specific real object, or deletes the specific real object so that it does not exist as if it does not exist. I show it to you.
  • the left and right display units 131 may be independently displayed and driven, for example, to display a parallax image, that is, a virtual object in 3D.
  • an outward camera 121 directed toward the user's line of sight is arranged substantially in the center of the AR glass.
  • the AR system 100 can be composed of two devices, for example, an AR glass worn on the head of the user and a controller worn on the back of the user's hand. However, when the controllers are installed on the backs of the left and right hands of the user, the AR system 100 is composed of three devices, an AR glass and two controllers.
  • FIG. 7 shows a configuration example of an AR system 700 including an AR glass 701 and a controller 110.
  • the AR glass 701 includes a control unit 140, a storage unit 150, a head sensor unit 120, a display unit 131, a speaker 132, and a communication unit 133.
  • the controller 110 includes a hand position detection unit 111, a finger posture recognition unit 112, a finger gesture recognition unit 113, and a tactile feedback unit 114.
  • the AR system 100 is composed of three devices: an AR glass worn by the user on the head, a controller worn on the back of the user's hand, and an information terminal such as a smartphone or tablet.
  • FIG. 8 shows a configuration example of an AR system 800 including an AR glass 801, a controller 110, and an information terminal 803.
  • the AR glass 801 includes a display unit 131, a speaker 132, and a head sensor unit 120.
  • the controller 110 includes a hand position detection unit 111, a finger posture recognition unit 112, a finger gesture recognition unit 113, and a tactile feedback unit 114.
  • the information terminal 803 includes a control unit 140, a storage unit 150, and a communication unit 133.
  • the specific device configuration of the AR system 100 is not limited to FIGS. 7 and 8. Further, the AR system 100 may further include components other than those shown in FIG.
  • the controller 110 includes a hand position detection unit 111, a finger posture recognition unit 112, a finger gesture recognition unit 113, and a tactile feedback unit 114.
  • the hand position detection unit 111 detects the position of the user's hand.
  • the finger posture recognition unit 112 recognizes the posture of the user's fingers. In this embodiment, the finger posture recognition unit 112 is not essential.
  • the finger gesture recognition unit 113 recognizes whether the gesture of the finger, for example, the thumb and the fingertip of another finger (index finger, etc.) are in contact with each other or separated from each other.
  • the tactile feedback unit 114 is configured by arranging, for example, electromagnetic type or piezoelectric type vibrators in an array, and provides tactile feedback by presenting vibration to the back of the user's hand.
  • the tactile feedback unit 114 is provided in the controller 110 installed on the back of the user's hand, but the tactile feedback unit 114 is attached to one or more parts other than the back of the hand on the user's body to present vibration. It may be configured to do so.
  • the head sensor unit 120 is mounted on the AR glass, and includes an outward camera 121, an inward camera 122, a microphone 123, a gyro sensor 124, an acceleration sensor 125, and a directional sensor 126.
  • the outward-facing camera 121 is composed of, for example, an RGB camera, and is installed so as to photograph the outside of the AR glass, that is, the front direction of the user wearing the AR glass.
  • the outward-facing camera 121 can capture the operation of the user's fingers, but when the user's fingers are hidden behind an obstacle, or when the fingertips are hidden by the back of the hand, the user is behind the body. It is not possible to take a picture of the user's finger operation when turning.
  • the outward-facing camera 121 may further include any one of an IR camera and a ToF camera including an IR light emitting unit and an IR light receiving unit.
  • a retroreflective material is attached to an object to be captured such as the back of the hand, and the IR camera emits infrared light and emits infrared light reflected from the retroreflective material. Receive light.
  • the image signal captured by the outward camera 121 is transferred to the control unit 140.
  • the microphone 123 may be a single sound collecting element or a microphone array including a plurality of sound collecting elements.
  • the microphone 123 collects the voice of the user wearing the AR glass and the ambient sound of the user.
  • the audio signal picked up by the microphone 123 is transferred to the control unit 140.
  • the gyro sensor 124, the acceleration sensor 125, and the azimuth sensor 126 may be composed of an IMU (Inertial Measurement Unit).
  • the sensor signals of the gyro sensor 124, the acceleration sensor 125, and the directional sensor 126 are transferred to the control unit 140.
  • the control unit 140 can detect the position and posture of the head of the user wearing the AR glasses based on these sensor signals.
  • the display unit 131 is composed of a transmissive display (glasses lens, etc.) installed in front of both eyes or one eye of the user wearing AR glasses, and is used for displaying a virtual space. Specifically, the display unit 131 expands the real space as seen by the user by displaying information (virtual objects) and emphasizing, attenuating, or deleting real objects. The display unit 131 performs a display operation based on a control signal from the control unit 140. Further, the mechanism for see-through display of virtual objects on the display unit 131 is not particularly limited.
  • the speaker 132 is composed of a single sounding element or an array of a plurality of sounding elements, and is installed in, for example, an AR glass.
  • the speaker 132 outputs the sound related to the virtual object displayed on the display unit 131, but other audio signals may be output.
  • the communication unit 133 has a wireless communication function such as Wi-Fi (registered trademark) or Bluetooth (registered trademark).
  • the communication unit 133 mainly performs a communication operation for realizing data exchange between the control unit 140 and an external system (not shown).
  • the control unit 140 is installed in the AR glass or is arranged in a device (smartphone or the like) separated from the AR glass together with a drive power source such as a storage unit 150 or a battery.
  • the control unit 140 executes various programs read from the storage unit 150 to perform various processes.
  • the controller 110 is an input device for the AR system 100 according to the present embodiment, and corresponds to a keyboard, mouse, touch panel, and the like in an OS (Operating System) such as Windows and Linux (registered trademark). As shown in FIGS. 1 to 3, the controller 110 is installed and used on the back of the user's hand. Therefore, the user can freely use the fingers without being restrained by the controller 110. For example, the user can grasp a real object or a virtual object by using the hand on which the controller 110 is installed, or place the virtual object on the palm.
  • OS Operating System
  • Windows and Linux registered trademark
  • the controller 110 is a device that inputs to the AR system 100 based on the position of the user's hand, the posture of the fingers, and the posture of the fingers. Therefore, as shown in FIGS. 5, 7 and 8, the controller 110 includes a hand position detection unit 111, a finger posture recognition unit 112, and a hand gesture recognition unit 113.
  • the hand position detection unit 111 detects the position of the user's hand.
  • the finger posture recognition unit 112 recognizes the posture of the user's fingers.
  • the finger gesture recognition unit 113 recognizes whether the gesture of the finger, for example, the thumb and the fingertip of another finger (index finger, etc.) are in contact with each other or separated from each other.
  • the controller 110 includes a tactile feedback unit 114 that gives a tactile sensation to the back of the user's hand by presenting vibration.
  • a tactile feedback unit 114 that gives a tactile sensation to the back of the user's hand by presenting vibration.
  • FIG. 9 shows a configuration example of the hand position detection unit 111 and the hand gesture recognition unit 113.
  • the controller 110 is equipped with an arbitrary finger posture recognition unit 112 or is not equipped with the finger posture recognition unit 112, and the finger posture recognition unit 112 will not be described here.
  • the hand position detection unit 111 uses the IR detection method. That is, the hand position detection unit 111 is attached to a plurality of (4 in the example shown in FIG. 9) IR reflection markers 901 to 904 attached to the housing 10 of the controller 110 and the AR glass (or the head sensor unit 120). It is composed of a combination of provided IR cameras (not shown).
  • the IR camera includes an IR transmitting unit and an IR receiving unit. The IR signal output from the IR transmitting unit is reflected by each IR reflection marker 901 to 904, and the reflected IR signal is received by the IR receiving unit to receive IR reflection. The bright spots of the markers 901 to 904 can be detected.
  • the IR camera is preferably a stereo type having a plurality of IR receivers.
  • the finger gesture recognition unit 113 recognizes whether the gesture of the finger, for example, the thumb and the fingertip of another finger (index finger, etc.) are in contact with each other or separated from each other.
  • the finger gesture recognition unit 113 uses an electrode detection method. Electrodes 911 and 912 are attached to the fingertips of the user's thumb and index finger, respectively. Then, when the thumb and the index finger come into contact with each other, the electrode 911 and the electrode 912 are energized, so that the gesture of the thumb and the index finger can be recognized based on the energized state of the electrodes 911 and 912.
  • FIG. 10 shows another configuration example of the hand position detection unit 111, the finger posture recognition unit 112, and the finger gesture recognition unit 113.
  • the hand position detection unit 111 detects the position of the user's hand by combining the IR detection method and the IMU detection method.
  • IR detection method IR reflection signals of a plurality of IR reflection markers 1001, 1002, 1003, ... Attached to the housing 10 of the controller 110 are transmitted to an IR camera (or head sensor unit 120) provided on the AR glass (or head sensor unit 120). Captured with (not shown), the position and orientation of the user's hand is detected based on the bright spot position of each IR reflection marker.
  • the IMU detection method the position and posture of the user's hand are detected based on the detection signal of the IMU built in the main body 10 of the controller 110.
  • the IMU includes a gyro sensor, an acceleration sensor, and a directional sensor.
  • the IR detection method is used, and when the controller 110 is out of the field of view of the IR camera (including the case where occlusion occurs), the IMU method is used.
  • the finger posture recognition unit 112 is composed of IMUs attached to several places of the user's fingers.
  • IMU1011, 1012, and 1013 are attached to the thumb and the base and middle phalanx of the index finger by bands 1021, 1022, and 1023, respectively.
  • the posture of the thumb, the posture of the proximal phalanx and the intermediate phalanx of the index finger (or the angle of the second joint of the index finger) can be measured based on the detection signals of each IMU1011, 1012, 1013.
  • another IMU may be attached to another place of the thumb and the index finger, or the IMU may be attached to a finger other than the thumb and the index finger.
  • the method of fixing the IMU to each finger is not limited to the band, and the IMU may be attached to each finger using, for example, an adhesive pad.
  • the finger gesture recognition unit 113 determines whether the finger gesture, for example, the thumb and the fingertips of another finger (index finger, etc.) are in contact with or separated from each other, in addition to the finger joint angle recognized by the finger posture recognition unit 112. recognize.
  • the finger gesture recognition unit 113 uses a capacitance detection method.
  • electrodes for detecting capacitance are installed on the fingertips, intermediate phalanx, and palm of each finger. For example, when the fingertips of the thumb and index finger expand, the capacitance increases, and when the fingertips of the thumb and index finger approach each other, the capacitance decreases. Therefore, the finger posture recognition unit 112 can recognize the gesture of the thumb and the index finger by the change of the capacitance between the fingertips of the thumb and the index finger.
  • FIG. 11 shows still another configuration example of the hand position detection unit 111, the finger posture recognition unit 112, and the finger gesture recognition unit 113.
  • the hand position detection unit 111 and the hand gesture recognition unit 113 are configured in the same manner as in FIG. 10, the illustration and detailed description thereof will be omitted here, and the hand posture recognition unit 112 will be described.
  • the finger posture recognition unit 112 is composed of a ToF camera 1101 installed on the palm of the hand using the belt 11.
  • the ToF camera 1101 can capture five fingers by installing it at a wide angle, for example, near the wrist.
  • each finger can be bone-recognized based on the depth image from the ToF camera 1101 to acquire the posture of the finger.
  • Bone recognition may also recognize finger gestures such as the contact between the thumb and index finger.
  • the finger gesture by using the capacitance detection method as described above.
  • the capacitance type contact sensor 1201 is arranged near the center of the palm using the belt 11 as shown in FIG. 12, the index finger, middle finger, ring finger, and little finger are bent as shown in FIG. It is possible to recognize that the fingertip approaches or touches the palm and the gesture of grasping (grabbing) using these four fingers.
  • the configuration of the hand position detection unit 111, the finger posture recognition unit 112, and the finger gesture recognition unit 113 equipped on the controller 110 is not necessarily limited to the above. If the position of the back of the hand can be detected with higher accuracy than the position of the fingers of the hand, a configuration other than the above can be applied to the controller 110. For example, in the case where the controller 110 alone can estimate the self-position by SLAM (Simultaneus Localization and Mapping), or in the finger recognition using the camera (RGB stereo camera, ToF camera, etc.) of the head sensor unit 120, the position of the hand.
  • the controller 110 may have a configuration other than the above-described configuration as long as it is configured to detect the above with high accuracy and robustly.
  • the basic operation diagram 14 of the AR glass schematically shows an example of a functional configuration included in the control unit 140.
  • the control unit 140 includes an application execution unit 1401, a head position / posture acquisition unit 1402, an output control unit 1403, a hand position acquisition unit 1404, a finger posture acquisition unit 1405, and a finger gesture acquisition unit 1406. It has.
  • These functional modules are realized by executing various programs read from the storage unit 150 by the control unit 140.
  • FIG. 14 shows only the minimum necessary functional modules for realizing the present disclosure, and the control unit 140 may further include other functional modules.
  • the application execution unit 1401 executes the application program including the AR application under the execution environment provided by the OS.
  • the application execution unit 1401 may execute a plurality of application programs in parallel at the same time.
  • AR apps are applications such as video playback and 3D object viewers, but virtual objects can be superimposed or specified in the view of a user wearing AR glasses (see FIG. 6) on their heads. Emphasizes or attenuates a real object in, or deletes a particular real object to make it appear as if it doesn't exist.
  • the application execution unit 1401 also controls the display operation of the AR application (virtual object) by using the display unit 131.
  • the application execution unit 1401 also controls the behavior of the virtual object according to the user's hand interaction with the virtual object based on the finger operation acquired through the controller 110.
  • hand interactions such as gripping operations for virtual objects are defined, and attributes related to the propriety of each hand interaction are set in advance for each virtual object.
  • the application execution unit 1401 controls the behavior of the virtual object based on the preset attributes when the user's hand interaction is performed with the virtual object. The details of this point will be described later. Give it to.
  • the attribute of the virtual object may be the internal data of the AR application, or may be stored in the storage unit 150 as a data file independent of the AR application.
  • the attributes related to the propriety of each hand interaction for each virtual object may be set based on the actual manners performed on the real object corresponding to the virtual object, or set by the creator of the content such as an AR application. You may. Alternatively, using a machine learning model pre-learned by deep learning, attributes related to the propriety of each hand interaction may be set for each virtual object.
  • FIG. 15 schematically shows how a plurality of virtual objects 1501, 1502, 1503, ... Are arranged around 1500 around a user wearing AR glasses on his / her head.
  • the application execution unit 1401 has the virtual objects 1501, 1502, 1503 around the user with reference to the position of the user's head or the position of the center of gravity of the body estimated based on the sensor information from the head sensor unit 120. Place ...
  • the head position / orientation detection unit 1402 is a position of the user's head based on the sensor signals of the gyro sensor 124, the acceleration sensor 125, and the orientation sensor 126 included in the head sensor unit 120 mounted on the AR glass. It detects the posture and also recognizes the user's line-of-sight direction or visual field range.
  • the output control unit 1403 controls the output of the display unit 131, the speaker 132, and the tactile feedback unit 114 based on the execution result of the application program such as the AR application by the application execution unit 1401.
  • the output control unit 1403 specifies the user's visual field range based on the detection result of the head position / posture detection unit 1402 so that the virtual object arranged in the visual field range can be observed by the user through the AR glass. That is, the display operation of the virtual object is controlled by the display unit 131 so as to follow the movement of the user's head.
  • the depth direction of the user's line of sight is the z w axis
  • the horizontal direction is the y w axis
  • the vertical direction is the x w axis
  • the origin position of the user's reference axis x w y w z w is the user's viewpoint position. do.
  • Roll ⁇ z corresponds to the movement of the user's head around the z w axis
  • tilt ⁇ y corresponds to the movement of the user's head around the y w axis
  • pan ⁇ z corresponds to the movement of the user's head around the x w axis. ..
  • the head position / orientation detection unit 1402 moves the user's head in each of the roll, tilt, and pan directions ( ⁇ z , ⁇ y) based on the sensor signals of the gyro sensor 124, the acceleration sensor 125, and the orientation sensor 126. , ⁇ z ) and the translation of the head.
  • the output control unit 1403 moves the display angle of view of the display unit 131 in the real space (for example, see FIG. 15) in which the virtual object is arranged so as to follow the posture of the user's head.
  • the image of the virtual object existing at the display angle of view is displayed on the display unit 131.
  • the region 1602-1 is rotated according to the roll component of the user's head movement
  • the region 1602-2 is moved according to the tilt component of the user's head movement, or the user's head movement.
  • the area 1602-3 is moved according to the pan component of the above, and the display angle is moved so as to cancel the movement of the user's head. Therefore, since the virtual object arranged at the display angle of view moved according to the position and orientation of the user's head is displayed on the display unit 131, the user can see the virtual object superimposed on the AR glass. You can observe the space.
  • the hand position acquisition unit 1404, the finger posture acquisition unit 1405, and the hand gesture acquisition unit 1406 cooperate with the hand position detection unit 111, the finger posture recognition unit 112, and the finger gesture recognition unit 112 on the controller 110 side, respectively, to the user.
  • the position of the user's hand, the posture of the fingers, and the gesture performed by the fingers are determined based on the image recognition result of the captured image of the outward-facing camera 121. Information can be obtained.
  • the finger gesture acquired by the finger gesture acquisition unit 1406 also includes the hand interaction that is going to be performed on the virtual object by using the finger.
  • Hand interactions include “picking (precision gripping)", “grabbing (grip strength gripping)”, “pushing”, “crushing”, “tapping”, and “touching”.
  • the finger gesture acquisition unit 1406 can determine “picking (precision gripping)” and “grasping (grip strength gripping)” mainly based on information on the position of the user's hand and the posture of the fingers. On the other hand, since "pushing” and “crushing” have almost the same finger posture, the finger gesture acquisition unit 1406 "pushes” based on the angle of change in the position of the hand (or the direction of approaching the virtual object).
  • the finger gesture acquisition unit 1406 "taps” based on the speed of the hand position change (or the relative speed of the hand with respect to the virtual object). And “touch” are judged.
  • two or more types of gripping operations including precision gripping and grip strength gripping on a virtual object are defined.
  • attributes related to the propriety of each gripping operation are set in advance for each virtual object. Then, when a user performs a gripping operation on a certain virtual object, the application execution unit 1401 controls the behavior of the virtual object according to preset attributes.
  • the attributes related to the propriety of each gripping operation for each virtual object may be set based on the actual method performed on the real object corresponding to the virtual object, or set by the creator of the content such as an AR application. You may. Alternatively, using a machine learning model pre-learned by deep learning, attributes related to the propriety of each gripping operation may be set for each virtual object. For example, based on the intention of the creator of the AR content, attributes such as "whether or not to pick up and whether or not to grasp" are set in advance for the gripping operation of the virtual object. Specifically, the creator of content such as an AR application sets an attribute that allows a gripping operation close to the manner of a real object corresponding to a virtual object.
  • the creator's intention is that "a small object can be picked but cannot be grasped” and "a gun can be grasped but not picked (because the trigger is not operated)". It is possible to realize the behavior of the virtual object based on. In addition, the user can perform an appropriate grasping operation on the virtual object as intended by the creator without having accurate knowledge about the AR content and the attributes of the virtual object.
  • a controller 110 including a hand position detection unit 111, a finger posture recognition unit 112, and a finger gesture recognition unit 113 is installed on the back of the user's hand. Therefore, the application execution unit 1401 determines the virtual object that the user is trying to operate based on the hand position information detected by the hand position detection unit 111 and the recognition results by the finger posture recognition unit 112 and the finger gesture recognition unit 113. It is possible to specify the position to be gripped and determine the type of gripping operation (whether precision gripping or grip strength gripping) for the virtual object.
  • the application execution unit 1401 controls the behavior of the virtual object based on the attribute (whether or not it can be pinched or whether or not it can be grasped) in which the attribute is set in advance for the virtual object. Further, the output control unit 1403 displays and outputs the image of the virtual object for which the gripping operation is performed to the display unit 131 (or AR glass).
  • the attribute "OK” is set in advance for both "picking” and "grabbing".
  • the sword can be picked at any contact position between the hand and the sword body (see FIG. 19).
  • the handle portion such as the handle (see FIG. 20).
  • the application execution unit 1401 controls the behavior of picking the sword at an arbitrary contact position between the hand and the sword blade. Then, the application execution unit 1401 generates the movement of the sword after being picked by the user's fingers based on the position of the hand and the posture of the fingers, and displays it on the display unit 131 (AR glass).
  • the application execution unit 1401 controls the behavior of grasping the handle of the sword when the user recognizes the finger gesture of grasping the sword with the thumb and index finger through the controller 110. Then, the application execution unit 1401 generates the movement of the sword after the user has grasped the handle portion of the sword with all fingers based on the position of the hand and the posture of the fingers, and the display unit 131 (AR glass). ) Is displayed.
  • D-1 Attributes of virtual objects
  • gripping operations such as precision gripping, grip strength gripping, and intermediate gripping.
  • the AR system 100 also supports various types of gripping operations, and the behavior of the virtual object according to the user's hand interaction in a manner close to the actual manner of the user or the intention of the creator of the content. Can be realized.
  • the attributes of the virtual object are set as follows, limited to the two types of gripping operation, precision gripping (picking) and grip strength gripping (grasping).
  • FIG. 21 shows an example in which the above attributes are set in advance for each virtual object.
  • " ⁇ " represents an attribute that the corresponding gripping operation is "possible (or permitted)”
  • "x” represents an attribute that the corresponding gripping operation is “no (or prohibited)”.
  • abstract virtual objects such as “icons” and “windows” can be picked and grabbed.
  • an object that is small compared to the size of a hand such as a "playing card”
  • an object such as a "gun” or a "racket” whose gripping method is to be limited (for example, an object that the content creator wants the user to grasp) cannot be picked, but can be grasped.
  • the virtual object of the "gun” is an object whose gripping operation is limited (the trigger is pulled with a finger after gripping the pistol grip), and it can be grasped without being pinched. Also, liquid virtual objects such as "water” cannot be picked or grabbed. Therefore, according to the attribute setting shown in FIG. 21, the user can specify the gripping operation of these virtual objects in a manner close to the actual manner.
  • the behavior of the virtual object when the gripping operation is performed can also be set.
  • the attributes of each gripping operation for each virtual object are shown only by “ ⁇ ” and “ ⁇ ”, and the description regarding the behavior is omitted.
  • the AR system 100 may set the behavior for each possible gripping operation in addition to whether each gripping operation is possible as an attribute of the virtual object. In this way, when the user grips the virtual object with a certain gripping operation, it is possible to switch to the behavior of the virtual object that is close to the actual manner and as intended by the user.
  • the attribute value may be changed before and after gripping. For example, for a "pistol" virtual object, you can't pick (trigger) before you grab (pistol grip), but you can pick (trigger) after you grab (pistol grip). Moreover, by further setting the attribute that the behavior of "shooting a gun" is "possible” in response to the gripping operation of "picking (trigger)", it is close to the actual manner and virtual as the user intended. You can switch to the behavior of the object. Further, the attribute of the virtual object may be set so that the attribute value changes with the passage of time.
  • the method of automatically setting the attributes of the virtual object may be a method of generating the attributes according to an algorithm that analyzes the data related to the actual corresponding object. For example, if the width of the virtual object is 3 cm or less, an algorithm that performs processing such as automatically setting an attribute that can be picked but cannot be grasped may be used.
  • the method of automatically setting the attribute of the virtual object may be a method of using an algorithm capable of changing the rule for setting the attribute of the virtual object based on the user's information.
  • the rules for setting the attributes of virtual objects may be changed according to the user's age (infant, adult, elderly), hand size, race, physical injury, and the user's daily gripping operation. good. This is because even if the object is the same, the optimum gripping operation may differ for each user. For example, if the user is an infant with a small hand, even if the object is 3 cm or less in width, the gripping operation is more suitable than picking it, so the attribute "OK" is automatically assigned to "grasping". Can be set to.
  • the method of automatically setting the attributes of the virtual object may be a method of estimating the attributes of the virtual object using a machine learning model pre-learned by deep learning.
  • a machine learning model that has been pre-learned by deep learning is used so as to estimate the optimum attributes related to the gripping operation for each virtual object from the actual corresponding data and the user's information.
  • D-3 Changes in behavior according to the gripping operation
  • the change in behavior due to the gripping operation may be effective even if the virtual object to be gripped does not exist.
  • the behavior of the virtual space may be changed depending on whether the user precisely grips or grips the area where the virtual object does not exist.
  • the application execution unit 1401 grasps the position of the virtual object placed in the virtual space. Further, the application execution unit 1401 can detect the position of the user's hand through the controller 110 installed on the back of the user's hand and recognize that the virtual object does not exist at that position. Further, the application execution unit 1401 can recognize through the controller 110 that the user's finger has performed a gesture such as precision gripping or grip strength gripping at that position. Then, the application execution unit 1401 executes different behaviors when the user performs an operation of grasping and an operation of pinching the area where the virtual object does not exist.
  • a gesture such as precision gripping or grip strength gripping
  • the application execution unit 1401 may switch the display of the UI (User Interface) in the virtual space based on the user's grasping operation on the area where the virtual object does not exist. For example, the application execution unit 1401 displays a pointer from the fingertip when the user performs an operation of grasping the area where the virtual object does not exist (see FIG. 22). Subsequently, when the user performs an operation of picking the area where the virtual object does not exist (see FIG. 23), the application execution unit 1401 selects the destination pointed to by the pointer of the fingertip.
  • UI User Interface
  • E. Trigger of gripping operation In the AR system 100 according to the present disclosure, when the user performs a gripping operation permitted by the attribute of the virtual object when the user's hand approaches the virtual object, the virtual object corresponding to the gripping operation is performed. The behavior is activated. However, the user does not bring his / her hand close to grasp the virtual object, and may move his / her finger when the position of the hand happens to be close to the virtual object. Even though the user does not intend to grasp the virtual object, the behavior of the virtual object is activated according to the grasping operation.
  • the grasping operation when the user's hand approaches the virtual object, it is determined by the grasping operation that the user is looking at the target virtual object or that the user is interested in the target virtual object. It may be added to the condition that activates the behavior of the object. As a method of grasping a real object, it is extremely rare to grasp the object to be grasped without looking at it. Therefore, it is considered appropriate that the user is looking at the virtual object as a condition for invoking the behavior, which is close to the actual method. Further, by adding such a condition, it is possible to prevent the behavior of the virtual object different from the intention of the user from being activated because the gripping operation is recognized when the user is not looking at the virtual object.
  • the application execution unit 1401 can detect, for example, the line-of-sight direction of the user from the captured image of the inward camera 122, and determine whether or not the user is looking at the virtual object.
  • the application execution unit 1401 may be able to estimate the user's degree of interest in the virtual object from the sensor information of the controller 110 and the head sensor unit 120 by using a machine learning model pre-learned by deep learning. Therefore, the controller 110 and the head sensor unit 120 may be equipped with sensors other than those shown in FIG. 5, such as a biological sensor. Then, when the condition that the user is looking at the target virtual object or the user is interested in the target virtual object is satisfied, the application execution unit 1401 allows the user to accept the attributes of the virtual object. When it is recognized that the gripping operation is performed, the behavior corresponding to the gripping operation of the virtual object is activated, and the behavior of the virtual object is displayed on the display unit 131 (AR glass).
  • the application execution unit 1401 acquires the detection result of the position of the user's hand and the recognition result of the posture of the finger and the gesture of the finger through the controller 110 (step S2401).
  • the application execution unit 1401 shall constantly monitor the relative position between the virtual object displayed on the display unit 131 and the hand of the user who is trying to grasp the virtual object, as well as the posture of the fingers and the gesture of the fingers.
  • the application execution unit 1401 identifies the virtual object to be gripped by the user based on the result acquired in step S2401, and determines the gripping operation that the user intends to perform on the virtual object. It is determined whether or not the gripping operation conforms to the preset attributes for the virtual object (step S2402). In step S2402, in addition to determining the suitability of the attribute, whether the user is looking at the virtual object or is interested in the virtual object, that is, whether the condition for invoking the behavior of the virtual object is satisfied. It may be determined whether or not.
  • step S2402 if the operation performed by the user on the virtual object does not match the attributes of the virtual object (or does not satisfy the condition for invoking the behavior of the virtual object) (No in step S2402), the application is executed. Assuming that the user has not grasped the virtual object, the unit 1401 returns to step S2401 and subsequently acquires the position of the user's hand, the posture of the fingers, and the gesture of the fingers.
  • step S2403 when the operation of the user's finger matches the attribute of the virtual object (Yes in step S2402), the application execution unit 1401 determines the behavior when the virtual object is gripped based on the attribute of the virtual object. Generate (step S2403).
  • the application execution unit 1401 renders a virtual object that operates according to the behavior generated in step S2403, displays it in the virtual space, that is, the display unit 131 (AR glass) (step S2404), and allows the user to perform a gripping operation. Presents the behavior of virtual objects.
  • a master-slave system in which an operator operates a controller on the master side to drive a robot at an output end on the slave side to perform remote work.
  • Remote work has been introduced in various industries such as remote surgery and remote construction.
  • the operator performs operations such as picking or grasping an object that is not at hand with a remote robot.
  • the remote control performed by the operator in the master-slave system is equivalent to the operation in which the user picks or grabs the virtual object through the AR glass in the AR system 100, and the present disclosure can be applied.
  • a virtual object but a real object installed in a remote location is the target of grasping.
  • a plurality of types of gripping operations for virtual objects can be defined, and attributes related to the propriety of each gripping operation can be set in advance for each virtual object. Then, when the user performs a gripping operation in which the attribute "OK" is set for a certain virtual object, the behavior of the virtual object is activated according to the gripping operation.
  • the gripping operation that can be performed on the slave side is defined, and the attributes related to the propriety of each gripping operation are set in advance for each object to be gripped at a remote location.
  • an attribute that makes a realistic gripping operation "possible” such as "an object smaller than the size of a hand can be picked but not grasped” is set in advance. Then, when the master side instructs a gripping operation in which the attribute "OK" is set for a certain object arranged on the slave side, the slave grips the object so as to activate the gripping operation of the object. Remote control is performed. Therefore, the user can use the slave to grasp the remote object in a realistic manner even if he / she cannot directly touch the remote object and can only observe it in the image captured by the camera.
  • FIG. 25 shows a configuration example of the remote control system 2500 to which the present disclosure is applied.
  • the illustrated remote control system 2500 includes a master device 2510 operated by an operator and a slave device 2520 including a robot 2521 to be remotely controlled.
  • the master device 2510 includes a controller 2511, a display unit 2512, a master control unit 2513, and a communication unit 2514.
  • the controller 2511 is used by the operator to input a command for remotely controlling the robot 2521 on the slave device 2520 side.
  • the controller 2511 is used by being attached to the operator's hand as shown in FIG. 5, and is a device for inputting the position and orientation of the operator's fingers and the gestures of the fingers as operation commands for the robot 2521. I'm assuming.
  • the controller 2511 may be a camera or the like that captures the operator's hand, and may recognize the position and orientation of the operator's fingers and the gestures of the fingers from the captured image of the hand.
  • the display unit 2512 is composed of, for example, AR glasses, but may be a general display device such as a liquid crystal display.
  • the virtual object is displayed in the real space on which the operator's fingers are projected.
  • the virtual object referred to here is a virtual object corresponding to a remote real object that the remotely controlled robot 2521 is trying to grasp.
  • the virtual object is displayed at a position where the relative position with respect to the operator's hand coincides with the relative position between the robot 2521 and the object.
  • the master control unit 2513 receives an image taken by the camera 2522 of the operation status of a remote object by the robot 2521 from the slave device 2520 via the communication unit 2514. Then, the master control unit 2513 controls the display unit 2512 so that the virtual object is displayed in the real space on which the operator's fingers are projected. Further, the master control unit 2513 may control the display unit 2512 so as to display the camera image received from the slave device 2520.
  • the virtual object referred to here is a virtual object corresponding to a remote real object that the remotely controlled robot 2521 is trying to grasp.
  • the virtual object is placed at a position where the relative position with respect to the operator's hand coincides with the relative position between the robot 2521 and the object.
  • the virtual object has preset attributes related to whether or not each gripping operation is possible. For example, the attributes of a virtual object are set based on the realistic gripping operation of the corresponding remote object. Alternatively, based on the object gripping operation intended by the designer of the remote control system 2500, attributes related to whether or not each gripping operation of the virtual object is possible are set.
  • the master control unit 2513 acquires information on the position of the user's hand, the posture of the fingers, and the gestures performed by the fingers when the operator grips and operates the virtual object through the controller 2511 installed on the back of the hand. Then, when the gripping operation of the operator matches the attribute set in advance for the virtual object, the master control unit 2513 sets the robot 2521 to the position / posture of the operator's fingers and the gesture of the fingers acquired through the controller 2511. It is converted into an operation command for remote control, and the operation command is transmitted to the slave device 2520 via the communication unit 2514.
  • the communication unit 2514 is a functional module for interconnecting with the slave device 2520 side.
  • the communication medium between the master device 2510 and the slave device 2520 may be either wired or wireless, and is not limited to a specific communication standard.
  • the slave device 2520 includes a robot 2521, a camera 2522, a slave control unit 2523, and a communication unit 2524.
  • the slave device 2520 is interconnected with the master device 2510 side via the communication unit 2524, receives an operation command of the robot 2521 from the master device 2510, and transmits a captured image of the camera 2522 to the master device 2510. ..
  • the operation command sent from the master device 2510 is a command for driving the robot 2521 according to the position and orientation of the operator's fingers and the gesture of the fingers.
  • the slave control unit 2523 interprets the operation command received from the master device 2520, and reproduces the position and orientation of the operator's fingers and the gesture of the fingers (that is, the gripping operation performed by the operator on the virtual object) by the robot 2521.
  • the driving of the robot 2521 is controlled to perform the gripping operation of the object.
  • FIG. 26 shows how the operator is trying to grasp the virtual object while approaching the virtual object on the master device 2510 side.
  • FIG. 27 shows a state in which the robot 2521 is trying to grasp the actual object while approaching the actual object so as to follow the movement of the operator's hand on the slave device 2520 side.
  • the camera 2522 captures the operation status of the object by the robot 2521.
  • the slave control unit 2523 encodes the captured image of the camera 2522 and controls the communication unit 2524 to transmit the captured image to the master device 2510 in a predetermined transmission format.
  • the display unit 2512 displays a virtual object corresponding to the object in the real space on which the operator's fingers are projected.
  • the virtual object is arranged at a position where the relative position with respect to the operator's hand coincides with the relative position between the robot 2521 and the object.
  • the operator on the master device 2510 side cannot directly touch the remote object existing on the slave device 2520 side, and observes the image taken by the camera 2522. Even if this is not possible, it is possible to instruct the operation of the robot 2521 by a realistic gripping operation on a remote object.
  • FIG. 28 shows a processing procedure for an operator to grip and operate a remote object in the remote control system 2500 to which the present disclosure is applied in the form of a flowchart.
  • the display unit 2512 displays a virtual object corresponding to the remote object to be operated in the real space on which the operator's fingers are projected. Display (step S2802).
  • the master control unit 2513 acquires the detection result of the position of the operator's hand and the recognition result of the posture of the fingers and the gesture of the fingers through the controller 2511 (step S2803).
  • the master control unit 2513 shall constantly monitor the relative position between the virtual object displayed on the display unit 2512 and the hand of the operator who intends to grasp the virtual object, as well as the posture of the fingers and the gesture of the fingers.
  • the master control unit 2513 recognizes the gripping operation that the operator is trying to perform on the virtual object based on the result acquired in step S2803, the master control unit 2513 recognizes the gripping operation that matches the attribute set in advance for the virtual object. It is determined whether it is an operation (step S2804).
  • the virtual object is preset with attributes corresponding to realistic gripping operations allowed for a remote object.
  • the master control unit 2513 assumes that the operator is not holding the virtual object and steps.
  • the image captured by the camera is received from the slave device 2520, and the display of the virtual object on the display unit 2512 is updated.
  • step S2804 when the operation of the operator's finger matches the attribute of the virtual object (Yes in step S2804), the master control unit 2513 generates the behavior when the virtual object is grasped based on the attribute of the virtual object. Then, the virtual object that operates according to the generated behavior is displayed on the display unit 2512 (step S2805).
  • the master control unit 2513 converts the position and orientation of the operator's fingers and the gestures of the fingers acquired through the controller 2511 into operation commands for remotely controlling the robot 2521, and sends the operation commands to the slave via the communication unit 2514. It is transmitted to the device 2520 (step S2806).
  • the slave control unit 2523 interprets the operation command received from the master device 2520, and the robot 2521 performs the position and orientation of the operator's fingers and the gesture of the fingers (that is, the operator performs on the virtual object).
  • the driving of the robot 2521 is controlled so as to reproduce the gripping operation), and the gripping operation of the object is performed (step S2807).
  • the operator on the master device 2510 side cannot directly touch the remote object existing on the slave device 2520 side, and the photographed image of the camera 2522 cannot be used. Even if it cannot be observed, it is possible to instruct the operation of the robot 2521 by a realistic gripping operation on a remote object through the gripping operation on the virtual object displayed on the display unit 2512.
  • H. Position and Attitude Control of Virtual Objects for Grip Strength Grip Operations two or more types of grip operations including precision grip and grip strength grips for virtual objects are defined, and attributes related to the propriety of each grip operation are set in advance for each virtual object. be able to. Then, when the user performs a gripping operation on the virtual object, the AR system 100 can control the behavior of the virtual object according to the attributes set for the virtual object.
  • the grip force gripping that is, the operation of gripping by the user
  • the behavior of changing the position and posture of the virtual object is performed so that the gripping position follows the user's hand. You may do so. Due to such a change in the position and orientation of the virtual object, the gripping position of the virtual object can be grasped so as to be attracted to the user's hand. Also called "processing".
  • the propriety of the suction process may be set when the grip strength can be gripped.
  • FIG. 29 shows an example in which attributes are set in advance for each virtual object, including whether or not adsorption processing is possible.
  • " ⁇ " represents the attribute "OK”
  • "x" represents the attribute "No”.
  • the attribute setting shown in the figure for virtual objects such as “gun” and “racket” that want to limit the grip operation to "grip strength grip”, the attribute that grip strength grip (grasping) is “possible” is set. Furthermore, the attribute that the adsorption process is "possible” is set.
  • the attribute “possible” is set.
  • the application execution unit 1401 grasps the position of the virtual object placed in the virtual space. Further, the application execution unit 1401 can detect the position of the user's hand through the controller 110 installed on the back of the user's hand and recognize the posture of the finger and the gesture of the finger. For example, when the application execution unit 1401 detects that the user is trying to grasp the grip strength of a virtual object based on the position of the user's hand, the posture of the fingers, and the gesture of the fingers, the application execution unit 1401 sets the virtual object. It is confirmed whether or not it can be grasped by referring to the attribute being, and if it is possible to grasp it, it is further confirmed whether or not the adsorption process is possible. Then, in the case of a virtual object capable of suction processing, the application execution unit 1401 changes the position and orientation of the virtual object so that the gripping position follows the user's hand. Therefore, the user can easily grasp the virtual object at a desired position.
  • the application execution unit 1401 "when the gun is grasped, the trigger can be pulled with the index finger. It is automatically placed so that it is in a position and posture, and when you grab the sword, it is automatically placed so that the handle part is in a position and posture that fits your hand. It is possible to realize the behavior of a virtual object that performs adsorption processing. As a result, the user can realize a natural and rational gripping operation according to the characteristics and usage of each virtual object with a small load.
  • the suction process is performed when "grip strength grip (grasping)" is performed on a virtual object such as a "gun”, “sword”, or “racket” whose grip strength is constant. It is supposed to be done.
  • the virtual object is a “sword”
  • the position and posture of the sword are set so that the handle follows the user's hand when the user's hand approaches and grabs the handle of the sword. It illustrates changing behavior.
  • the suction process is mentioned as one of the behaviors (position / posture control) for assisting or supporting the gripping operation of the virtual object by the user, but as the process associated with the gripping operation, for example, a specific virtual object is specified.
  • UI display processing that guides the gripping operation and other processing are also conceivable. Therefore, as an attribute of the virtual object, whether or not the behavior (position / posture control) associated with the gripping operation other than the suction process may be set may be set.
  • two or more types of grip operations including precision grip and grip force grip for a virtual object are defined, and attributes related to the propriety of each grip operation are set in advance for each virtual object. Can be done. Then, when the user performs a gripping operation on the virtual object, the AR system 100 can control the behavior of the virtual object according to the attributes set in advance for the virtual object.
  • UI behavior that stimulates the user's sense of sight, hearing, and touch may be performed so that the user can intuitively understand that the virtual object is gripped.
  • the visual UI behavior is performed using the display unit 131 (AR glass).
  • the auditory UI behavior is performed by using the speaker 132.
  • the tactile UI behavior is performed by using the tactile feedback unit 114 in the controller 110 installed on the back of the hand.
  • precision gripping is a gripping operation that uses only the fingertips
  • grip strength gripping is a gripping operation that uses the entire hand including the fingers. be. For example, you can use your fingertips to pick up tissue, marbles, and small insects, but you can use your entire hand to grab PET bottles, swords, guns, rackets, and balls. Therefore, as a UI behavior using the tactile feedback unit 114, vibration may be presented only to the fingertips during precision gripping, and vibration may be presented to the entire hand including the fingers during grip strength gripping. UI behavior using tactile presentation performed for each gripping operation may be added and set to the attributes of each virtual object.
  • the virtual object in addition to whether or not each gripping operation is possible, information on the grippable position for a possible gripping operation is set.
  • whether or not the behavior of the virtual object (such as suction processing) associated with the gripping operation (or whether or not each gripping operation can be performed for each part) may be set as an attribute.
  • the virtual object when the user's hand approaches the virtual object by the gripping operation with the attribute "possible" set, if the approached place is set to the grippable position by the attribute, the virtual object It changes the UI behavior, but does not change the UI behavior of the virtual object when approaching a place other than the grippable position. This allows the user to intuitively understand the grippable area of the virtual object.
  • FIG. 31 shows an example in which attributes are set in advance for each virtual object including the grippable area.
  • " ⁇ " represents the attribute "OK” and "x" represents the attribute "No".
  • the grippable area can be further set.
  • a different gripping area may be set for each gripping operation, or the same gripping area may be set for a plurality of gripping operations. You may.
  • the priority may be set between the plurality of grippable regions (or between the plurality of gripping operations). Further, although not shown in FIG.
  • attributes may be set for each virtual object so as to include whether or not a process associated with a gripping operation such as a suction process can be performed. For example, when attributes including priority are set in the order of the first grippable region and the second grippable region for precision gripping, the intermediate between the first grippable region and the second grippable region.
  • attributes including priority are set in the order of the first grippable region and the second grippable region for precision gripping, the intermediate between the first grippable region and the second grippable region.
  • the application execution unit 1401 grasps the position of the virtual object placed in the virtual space. Further, the application execution unit 1401 can detect the position of the user's hand through the controller 110 installed on the back of the user's hand and recognize the posture of the finger and the gesture of the finger. Therefore, when the application execution unit 1401 detects which gripping operation the user is trying to grip by approaching the virtual object based on the position of the user's hand, the posture of the fingers, and the gesture of the fingers, the virtual object is detected. With reference to the attribute set for, it is confirmed whether or not it is possible to grip by the gripping operation, and if it is possible, whether or not the gripping position by the gripping operation is set. Check further.
  • the application execution unit 1401 changes the UI behavior of the virtual object. Therefore, the user can intuitively understand the grippable area of the virtual object from the UI behavior of the virtual object observed through the AR glass.
  • FIG. 32 shows three states of “approach”, “contact”, and “entry”.
  • Approach is a state in which the shortest distance between the user's hand and the virtual object is equal to or less than a predetermined value.
  • Contact is a state in which the shortest distance between the user's hand and the virtual object is zero.
  • Embedding is a state in which the user's hand is interfering with the area of the virtual object.
  • the application execution unit 1401 detects that the user's hand is approaching the virtual object through the controller 110 installed on the back of the user's hand, and determines which of the above three types of finger gestures is at that time. Can be recognized.
  • the user's hand trying to grasp such as "picking” or "grabbing” approaches the virtual object, the UI behavior of the virtual object is changed.
  • the grasping operation is not expected to be performed, so that the UI behavior of the virtual object is not changed.
  • the change in the UI behavior of the virtual object may be, for example, switching the virtual object approached by the hand of the user who is trying to grasp it to the highlight display.
  • 36 and 37 show how the virtual object is switched from the normal display to the highlight display when the user's hand trying to pick it approaches the cubic virtual object.
  • the user can pick the virtual object at any place. That is, it is assumed that the entire virtual object is a grippable area, and the entire virtual object is switched to the highlight display when the user's hand approaches.
  • FIGS. 38 and 39 show an example in which the hand of a user who is not trying to grasp is approaching the virtual object. Even if the hand of the user who is not trying to grasp approaches the virtual object, the grip operation is not expected to be performed, so the UI behavior of the virtual object is not changed.
  • FIGS. 40 and 41 show an example of UI behavior when the hand of the user who is trying to grasp is approaching the virtual object of the "table tennis racket".
  • the "table tennis racket” is preset with an attribute of "possible” for both precision gripping (pinch) and grip strength gripping (grasping) operations.
  • the attributes that the grippable area when picking and gripping is the blade portion of the racket and the grippable area when gripping and gripping is the grip portion of the racket are set respectively.
  • the blade portion of the racket set in the grippable area for precision gripping (picking) is switched to the highlight display. ..
  • the user can intuitively understand that the blade portion can be pinched by observing the UI behavior of the blade portion of the racket through the AR glass.
  • the attribute "OK" is not set for gripping (grasping), so the blade part is highlighted. Does not switch to. Therefore, the user can intuitively understand that the blade portion cannot be grasped.
  • the grip portion of the racket set in the gripping area for gripping is switched to the highlight display.
  • the user can intuitively understand that the grip portion can be grasped by observing the UI behavior of the grip portion of the racket through the AR glass.
  • the attribute "OK" is not set for precision gripping (picking), so the grip part is highlighted. It does not switch to the display. Therefore, the user can intuitively understand that the grip portion cannot be pinched.
  • a priority may be set among a plurality of grippable areas.
  • the virtual object of the "table tennis racket” as shown in FIGS. 40 and 41, two grippable areas, a blade portion and a grip portion, are set.
  • the priority order of grip portion> blade portion can be set.
  • the grip portion is highlighted rather than the blade portion (in FIG. 43, the degree of emphasis is expressed in shades).
  • the virtual object included within a specific distance from the fingertip is targeted for the gripping operation.
  • the virtual object included within a specific distance from the palm is targeted for the grasping operation.
  • FIG. 44 is a flowchart showing a processing procedure for realizing the behavior of the virtual object with respect to the gripping operation by the user based on the attributes of each gripping operation preset for the virtual object in the AR system 100 according to the present disclosure. It is shown in the format of. However, the processing procedure shown in the figure includes a process in which a gripping area is set for each gripping operation and the UI behavior of the gripping area of the virtual object is changed according to the gripping operation that the user is trying to perform. Therefore, the processing procedure shown in FIG. 24 is different. This processing procedure is mainly carried out by, for example, the application execution unit 1401.
  • the application execution unit 1401 acquires the detection result of the position of the user's hand and the recognition result of the posture of the finger and the gesture of the finger through the controller 110 (step S4401).
  • the application execution unit 1401 shall constantly monitor the relative position between the virtual object displayed on the display unit 131 and the hand of the user who is trying to grasp the virtual object, as well as the posture of the fingers and the gesture of the fingers.
  • the application execution unit 1401 based on the result acquired in step S4401, the application execution unit 1401 identifies the virtual object to be gripped by the user, and when it recognizes the gripping operation that the user is trying to perform, the application execution unit 1401 refers to the virtual object. It is determined whether or not the gripping operation conforms to the preset attributes (step S4402). In step S4402, in addition to determining the conformity of the attributes, the condition that the user is looking at the virtual object or is interested in the virtual object (that is, the condition for invoking the behavior of the virtual object is satisfied) is satisfied. Whether or not) may be determined.
  • step S4402 if the operation performed by the user on the virtual object does not match the attribute of the virtual object (No in step S4402), the application execution unit 1401 assumes that the user has not grasped the virtual object and steps. Returning to S4401, the user's hand position, finger posture, and finger gesture are subsequently acquired.
  • step S4402 when the operation of the user's finger matches the attribute of the virtual object (Yes in step S4402), the application execution unit 1401 determines the gesture of the finger acquired in step S4401, that is, the attribute of the grippable area with respect to the grip operation. Further checks whether or not is set (step S4403).
  • step S4403 When the attribute of the grippable area for the gripping operation performed by the user is set (Yes in step S4403), the application execution unit 1401 performs a process of changing the UI behavior in the grippable area of the virtual object (Yes). Step S4404). As a process of changing the UI behavior of the virtual object, for example, the grippable area of the virtual object is switched to highlight display.
  • the application execution unit 1401 generates a behavior when the virtual object is gripped based on the attributes of the virtual object (step S4405).
  • the application execution unit 2401 renders a virtual object that operates according to the behavior generated in step S4405, displays it on the display unit 131 (AR glass) (step S4406), and allows the user to grasp the virtual object. Present the behavior.
  • the application execution unit 1401 controls the UI display for indicating to the user that the operation of picking or grasping the virtual object has been completed after the gripping operation is completed. It may be.
  • the application execution unit 1401 has a gripping operation (precision gripping or grip strength gripping) that the user intends to perform on the virtual object based on the position of the user's hand and the posture of the fingers acquired through the controller 110. I was trying to recognize which one).
  • a gripping operation precision gripping or grip strength gripping
  • the AR system 100 is a hand interaction other than the gripping operation such as "pushing”, “crushing”, “tapping”, and “touching” that can be recognized based on the difference in the angle and speed of the position change of the fingers.
  • the user can perform one of the following hand interactions with the virtual object: “push”, “crush”, “hit”, or "touch”.
  • the behavior of the virtual object with respect to hand interaction can be controlled based on preset attributes.
  • the hand interaction attributes "push” and “crush” according to the difference in the angle of position change are both open-handed postures. Therefore, “push” and “crush” are identified based on not only the position and posture of the fingers but also the angle of change in the position of the hand (or the direction of approaching the virtual object).
  • the application execution unit 1401 is based on the position information of the virtual object generated by itself and the hand position and finger posture that the hand position acquisition unit 1404 and the finger posture acquisition unit 1405 acquire from the controller 110 every moment.
  • the angle of change in the position of the hand (or the direction of approaching the virtual object) is calculated to determine whether the hand interaction is "push” or "crush".
  • FIG. 45 illustrates a hand interaction that "pushes” a virtual object.
  • FIG. 46 illustrates a hand interaction that "crushes” a virtual object.
  • the virtual object is drawn as a simple cube for the sake of simplification of the drawing.
  • FIG. 47 shows an example in which the above attributes are set in advance for each virtual object.
  • " ⁇ " represents an attribute that the corresponding hand interaction is “possible (or permitted)”
  • "x” represents an attribute that the corresponding hand interaction is “no (or prohibited)”.
  • virtual objects of hard objects such as “pet bottles filled with water” and “virtual pets” can be pushed but not crushed.
  • virtual objects of soft objects such as “water-free PET bottles” and “balloons” can be pushed or crushed.
  • press a virtual object such as an "item box (a box containing items such as insects and small monsters)” that you want to limit the operation method (for example, an object that the content creator wants the user to crush). You can't, but you can crush it.
  • abstract virtual objects such as "icons” and “windows” cannot be pressed or crushed.
  • the user can specify hand interactions such as pushing and crushing these virtual objects in a manner close to the actual manner. Then, when a hand interaction such as "push” or "crush” is performed on a virtual object, the application execution unit 1401 behaves based on the preset attributes as shown in FIG. 47. To control.
  • the behavior of the virtual object when the hand interaction is performed can also be set.
  • the attributes relating to the propriety of “pushing” and “crushing” for each virtual object are indicated only by “ ⁇ ” and “ ⁇ ”, and the description regarding the behavior is omitted.
  • the attribute setting for each virtual object according to the angle of position change of the hand is basically the designer of the AR system 100. Or, it is assumed that the creator of the AR content used in the AR system 100 decides manually. However, for virtual objects that can acquire data such as physical characteristics and uses such as the shape and size of the corresponding object in reality, the attributes related to "push" and "crush" of the virtual object are automatically set based on such data. It may be set as a target. By adopting the automatic setting method, it is possible to reduce the cost of system design and content creation by freeing the creator of contents such as AR applications from the trouble of manually setting the attributes of all virtual objects.
  • the method of automatically setting the attributes of the virtual object may be a method of generating the attributes according to an algorithm that analyzes the data related to the actual corresponding object. For example, if the virtual object has a density of 1 g / cm 3 or less, an algorithm that performs processing such as automatically setting a crushable attribute may be used.
  • the method of automatically setting the attribute of the virtual object may be a method of using an algorithm capable of changing the rule for setting the attribute of the virtual object based on the user's information. For example, change the rules for setting the attributes of virtual objects according to the user's age (infant, adult, old man), hand size, race, physical injury, and user's daily hand operations. May be good. This is because even if the objects have the same shape, size, and density, whether or not they can be crushed may differ depending on the user. For example, if the user is a toddler with a small hand, the attributes related to "push" and "crush" for each virtual object should be automatically set in consideration of individual differences such that even a low density object cannot be crushed. You may do it.
  • the method of automatically setting the attributes of the virtual object may be a method of estimating the attributes of the virtual object using a machine learning model pre-learned by deep learning.
  • a machine learning model in which pre-learning is performed by deep learning is used so as to estimate the optimum attributes related to "pushing" and "crushing" for each virtual object from actual corresponding data and user information.
  • the application execution unit 1401 can detect, for example, the line-of-sight direction of the user from the captured image of the inward camera 122, and determine whether or not the user is looking at the virtual object.
  • the application execution unit 1401 may be able to estimate the degree of interest of the user in the virtual object from the sensor information of the controller 110 and the head sensor unit 120 by using a machine learning model pre-learned by deep learning. Then, when the condition that the user is looking at the target virtual object or the user is interested in the target virtual object is satisfied, the application execution unit 1401 allows the user to accept the attributes of the virtual object.
  • the behavior corresponding to the hand interaction of the virtual object is activated, and the behavior of the virtual object being pushed or crushed is displayed on the display unit 131 (AR glass).
  • the attributes of hand interaction "tapping” and “touching” according to the difference in the speed of position change are both postures in which the fingers other than the thumb are opened. Therefore, “tapping” and “touching” are determined based not only on the position and posture of the fingers but also on the speed of the hand position change (or the relative speed of the hand with respect to the virtual object).
  • the application execution unit 1401 is based on the position information of the virtual object generated by itself and the hand position and finger posture that the hand position acquisition unit 1404 and the finger posture acquisition unit 1405 acquire from the controller 110 every moment.
  • the speed of the hand position change (or the relative speed of the hand with respect to the virtual object) is calculated to determine whether the hand interaction is "tapping" or "touching".
  • FIG. 48 illustrates a hand interaction that "hits” a virtual object.
  • FIG. 49 illustrates hand interaction that "touches” a virtual object.
  • the virtual object is drawn as a simple cube for the sake of simplification of the drawing.
  • “tapping" and “touching” are performed in almost the same posture of fingers, that is, approaching the virtual object with the fingers other than the thumb open, but “tapping".
  • the speed of hand position change is fast (eg, 3 cm or more per second), and in the case of "touching", the speed of hand position change is slow (eg, less than 3 cm per second).
  • the application execution unit 1401 recognizes that when the gesture of approaching the virtual object is performed with the fingers other than the thumb open, if the speed of the hand position change is fast, the hand interaction is performed by "tapping" the hand. If the speed of the position change of is slow, it is recognized that the "touch" hand interaction has been performed.
  • the speed of the hand position change may be calculated based on the relative speed between the virtual object and the speed of the fingers.
  • the timing to calculate the speed of position change it is assumed that the collider of the virtual object and the collider of the fingers come into contact with each other. However, when it is detected that the user's hand is approaching the virtual object, the speed of the position change may be calculated in advance before the contact. By calculating the rate of position change in advance before contact, it is possible to reduce the delay that may occur when determining whether the hand interaction is "tapping" or "touching".
  • mapping and “touching” are newly defined as hand interactions with the virtual object, and the following attributes are set in advance for each virtual object.
  • FIG. 50 shows an example in which the above attributes are set in advance for each virtual object.
  • " ⁇ " represents an attribute that the corresponding hand interaction is “possible (or permitted)”
  • "x” represents an attribute that the corresponding hand interaction is “no (or prohibited)”.
  • virtual objects such as “desks”, “balls”, and “percussion instruments” can be hit, but cannot be touched.
  • virtual objects of soft objects such as “balloons” and “water surfaces” can be hit and touched.
  • virtual objects such as “animals” and “human avatars” whose operation methods are to be limited cannot be hit, but can be touched.
  • abstract virtual objects such as “icons” and “windows” cannot be hit or touched.
  • the user can specify hand interactions such as hitting and touching these virtual objects in a manner close to the actual manner. Then, the application execution unit 1401 controls the behavior of the virtual object based on the preset attributes when the user's hand interaction is performed with the virtual object.
  • the behavior of the virtual object when the hand interaction is performed can also be set.
  • the attributes related to the possibility of "tapping” and “touching” for each virtual object are shown only by “ ⁇ ” and " ⁇ ”, and the description related to the behavior is omitted.
  • UI behavior according to the difference in the speed of the position change In this embodiment, the hand interaction is performed according to the difference in the speed of the position change of the hand. You may want to set the UI behavior of the object.
  • the virtual object when the virtual object is a "ball", if the ball has a certain speed or higher, the sound of the volume and sound quality according to the behavior of the ball that sticks to the hand and the relative speed (a catching sound that makes a "snap"). Set the UI behavior of the virtual object to generate (etc.). On the other hand, if the ball is stopped or the speed is less than a certain value, the UI behavior of the virtual object is set so as not to generate adsorption processing or sound effects.
  • a real object corresponding to a virtual object produces a loud collision sound when hit, such as a "drum” or “desk", even if a loud collision sound corresponding to the relative speed is set as the UI behavior. good.
  • a loud collision sound according to the relative speed for "tapping" as the UI behavior. It may be.
  • the UI behavior that presents the auditory sense like a collision sound to the hand interaction that "hits” the virtual object is set. You may. For example, in response to the above-mentioned hand interaction of "tapping" virtual objects such as “drum”, “desk”, and “monster", UI behavior is set to present high-frequency vibration to the hand or finger using the tactile feedback unit 114. You may try to do it.
  • the UI makes a small contact sound according to the relative speed. It may be set as a behavior. ..
  • the UI behavior that presents the auditory sense like a contact sound to the hand interaction that "touches” the virtual object is set.
  • the attribute setting for each virtual object according to the speed of position change of the hand is basically the designer of the AR system 100. Or, it is assumed that the creator of the AR content used in the AR system 100 decides manually. However, for virtual objects that can acquire data such as physical characteristics and uses such as the shape, size, weight, and hardness of the actual corresponding object, "tapping" and “tapping" of the virtual object based on such data
  • the attribute related to "touch” may be set automatically.
  • the method of automatically setting the attributes of the virtual object may be a method of generating the attributes according to an algorithm that analyzes the data related to the actual corresponding object. For example, an algorithm may be used to set the UI behavior for a "hit” hand interaction based on the hardness of the surface of the corresponding object in reality. By using such an algorithm, if the hardness of the surface of the actual corresponding object is equal to or higher than the specified value, it is "possible” to "hit”, and the UI behavior of generating a hitting sound is automatically set, while the UI behavior is automatically set. If the hardness is less than a predetermined value, "hit” is "no”, and the UI behavior that no hitting sound is generated can be automatically set.
  • the method of automatically setting the attribute of the virtual object may be a method of using an algorithm capable of changing the rule for setting the attribute of the virtual object based on the user's information. For example, change the rules for setting the attributes of virtual objects according to the user's age (infant, adult, old man), hand size, race, physical injury, and user's daily hand operations. May be good. If the user is an elderly person, considering individual differences such as difficulty in moving fingers quickly due to weakened muscle strength, the threshold value of the speed of position change that determines "tapping" and "touching" for each virtual object is normal.
  • the attribute may be set automatically at 1 cm / s, which is slower than 3 cm / s.
  • the method of automatically setting the attributes of the virtual object may be a method of estimating the attributes of the virtual object using a machine learning model pre-learned by deep learning.
  • a machine learning model in which pre-learning is performed by deep learning is used so as to estimate the optimum attributes related to "tapping" and "touching" for each virtual object from actual corresponding data and user information.
  • J-7 Trigger of hand interaction according to the difference in the speed of position change
  • the hand that the attribute of the virtual object allows.
  • the behavior of the virtual object for example, the virtual object is hit or touched
  • the user does not approach the virtual object with the intention of hand interaction, and may happen to approach the virtual object with the fingers other than the thumb open. It is unnatural if the behavior of the virtual object is activated unintentionally by the user. Therefore, the fact that the user is looking at the target virtual object or that the user is interested in the target virtual object may be added to the conditions for invoking the behavior of the virtual object according to the hand interaction. ..
  • the application execution unit 1401 can detect, for example, the line-of-sight direction of the user from the captured image of the inward camera 122, and determine whether or not the user is looking at the virtual object.
  • the application execution unit 1401 may be able to estimate the degree of interest of the user in the virtual object from the sensor information of the controller 110 and the head sensor unit 120 by using a machine learning model pre-learned by deep learning. Then, when the condition that the user is looking at the target virtual object or the user is interested in the target virtual object is satisfied, the application execution unit 1401 allows the user to accept the attributes of the virtual object.
  • the behavior corresponding to the hand interaction of the virtual object is activated, and the behavior of the virtual object being hit or touched is displayed on the display unit 131 (AR glass).
  • Section F Controlling the behavior of a virtual object based on attributes
  • Section F a processing procedure for realizing the behavior of a virtual object when a user performs a gripping operation has been described with reference to the flowchart shown in FIG. 24.
  • this J-8 section processing for realizing the behavior of the virtual object according to the hand interaction of various users, not limited to the gripping operation, will be described.
  • Fig. 51 The features of hand interaction handled in Section J-8 are summarized in Fig. 51.
  • the postures of the fingers and the judgment criteria angle of hand position change, finger position
  • 6 types of hand actions precision grip (pinch), grip strength grip (grab), push, crush, hit, and touch.
  • the rate of change is illustrated.
  • FIG. 52 in the AR system 100 according to the present disclosure, a processing procedure for realizing the behavior of the virtual object with respect to the hand action by the user based on the attribute of each hand action preset in the virtual object is shown in the form of a flowchart. It is shown by.
  • the application execution unit 1401 acquires the detection result of the position of the user's hand and the recognition result of the posture of the fingers and the gesture of the fingers through the controller 110 (step S5201).
  • the application execution unit 1401 shall constantly monitor the relative position between the virtual object displayed on the display unit 131 and the hand of the user who is trying to grasp the virtual object, as well as the posture of the fingers and the gestures of the fingers.
  • the application execution unit 1401 calculates the angle of change in the position of the hand with respect to the virtual object and the speed of change in the position of the finger with respect to the virtual object (step S5202).
  • the application execution unit 1401 identifies the virtual object that the user targets for hand interaction based on the result acquired in step S5201 and the result calculated in step S5202, and the user sets a line for the virtual object.
  • the hand interaction to be attempted is determined, it is determined whether or not the hand interaction matches the attributes set in advance for the virtual object (step S5203).
  • step S5203 in addition to determining the suitability of the attribute, whether the user is looking at the virtual object or is interested in the virtual object, that is, whether the condition for invoking the behavior of the virtual object is satisfied. It may be determined whether or not.
  • step S5203 if the hand interaction performed by the user with the virtual object does not match the attributes of the virtual object (or the condition for invoking the behavior of the virtual object is not satisfied) (No in step S5203), the application. Assuming that the user has not performed hand interaction with the virtual object, the execution unit 1401 returns to step S5201 and subsequently acquires the position of the user's hand, the posture of the fingers, and the gesture of the fingers.
  • step S5203 when the user's hand interaction matches the attribute of the virtual object (Yes in step S5203), the application execution unit 1401 performs the hand interaction with the virtual object based on the attribute of the virtual object. Generates the behavior of the time (step S5204).
  • the application execution unit 1401 renders a virtual object that operates according to the behavior generated in step S5204, displays it in the virtual space, that is, the display unit 131 (AR glass) (step S5205), and allows the user to perform hand interaction by himself / herself.
  • the behavior of the virtual object performed is presented.
  • the present specification has mainly described the embodiment in which the hand interaction (grasping operation, etc.) of the virtual object according to the present disclosure is applied to the AR system
  • the gist of the present disclosure is not limited to this. ..
  • the present disclosure can be similarly applied to a VR system that perceives a virtual space as reality, an MR system that intersects reality and virtual, and a master-slave remote system.
  • An acquisition unit that acquires the position of the user's hand and the posture of the fingers
  • a control unit that controls the display operation of a display device that superimposes and displays virtual objects in real space, Equipped with The control unit determines the hand interaction that the user intends to perform and the virtual object that is the target of the hand interaction based on the position of the hand and the posture of the fingers acquired by the acquisition unit, and is set as the virtual object. Control the behavior of virtual objects according to hand interaction based on attributes, Information processing device.
  • the above attributes including the possibility of each hand interaction are set in advance for each virtual object.
  • the control unit controls the behavior of the virtual object with respect to the user's hand interaction set to be possible by the attribute.
  • the control unit determines the hand interaction that the user intends to perform based on the position of the hand and the posture of the fingers acquired by the acquisition unit from a plurality of types of predefined hand interactions.
  • the information processing device according to any one of (1) and (2) above.
  • the control unit determines which grip operation is the precision gripping with the thumb and index finger or the grip strength gripping with three or more fingers, and the precision gripping and the grip strength gripping are performed for each virtual object. Control the behavior of the virtual object with respect to the determined grip operation based on the attribute for which the possibility is set.
  • the information processing device according to any one of (1) to (3) above.
  • the control unit further determines the hand interaction that the user intends to perform based on the angle of the hand position change with respect to the virtual object.
  • the information processing device according to any one of (1) to (4) above.
  • the control unit determines that the hand interaction "pushes" the virtual object when approaching the virtual object from the horizontal direction when the hand is open, and “pushes” the virtual object when approaching the virtual object from the vertical direction. Controls the behavior of the virtual object with respect to the determined “push” and “crush” hand interaction based on the attribute that determines the "crush” interaction and sets whether or not to "push” and "crush” for each virtual object.
  • the information processing device according to any one of (1) to (5) above.
  • the control unit further determines the hand interaction that the user intends to perform based on the speed of the position change of the finger with respect to the virtual object.
  • the information processing device according to any one of (1) to (6) above.
  • the control unit determines that the hand interaction "slaps" the virtual object when approaching the virtual object at a speed higher than a predetermined speed when the fingers are in the open position, and the virtual object approaches the virtual object less than the predetermined value. Is determined to be a "touching” interaction, and the behavior of the virtual object with respect to the determined “tapping” and “touching” hand interaction is controlled based on the attribute for which "tapping" and “touching” are set for each virtual object. do, The information processing device according to any one of (1) to (7) above.
  • the control unit is based on the attribute in which the user further sets whether or not the second hand interaction of the first virtual object is possible before and after performing the first hand interaction with the first virtual object. Controlling the behavior of the first virtual object when the second hand interaction is performed following the first hand interaction.
  • the control unit determines whether or not the first hand interaction is possible with respect to the second virtual object and the behavior of the second virtual object corresponding to the first hand interaction is set based on the attribute. Controls the behavior of the second virtual object when the user performs the first hand interaction with the second virtual object.
  • the control unit is set whether or not to perform a gripping operation on the second virtual object and whether or not to change the position and posture of the second virtual object so that the position gripped by the user follows the user's hand. Based on the above attributes, the position and orientation of the second virtual object when the user grasps the second virtual object is controlled.
  • the information processing device according to any one of (1) to (10) above.
  • control unit When the control unit performs a user or hand interaction with a certain place of a certain virtual object based on the attribute that sets the possibility of each hand interaction for each virtual object and the position where the hand interaction is possible. Control the behavior of that virtual object,
  • the information processing device according to any one of (1) to (11) above.
  • the control unit performs user or hand interaction with a certain place of a certain virtual object based on the attribute that sets the propriety of each hand interaction for each virtual object and the behavior of the user interface with respect to the hand interaction. Further control over the behavior of the user interface when The information processing device according to any one of (1) to (12) above.
  • control unit is a user for a certain place of a certain virtual object based on the attribute that sets the possibility of each hand interaction for each virtual object and the behavior of the user interface at the position where the hand interaction can be performed. Further control the behavior of the user interface at the appropriate feasible position when performing hand interaction,
  • the information processing device according to any one of (1) to (13) above.
  • An acquisition unit that acquires the position of the user's hand and the posture of the fingers.
  • a control unit that controls the display operation of a display device that superimposes and displays virtual objects in real space.
  • the control unit determines the hand interaction that the user intends to perform and the virtual object that is the target of the hand interaction based on the position of the hand and the posture of the fingers acquired by the acquisition unit, and is set as the virtual object. Control the behavior of virtual objects according to hand interaction based on attributes, Computer program.
  • a display device that superimposes and displays virtual objects in real space A control unit that controls the display operation of a display device that superimposes and displays virtual objects in real space, Equipped with The control unit determines the hand interaction that the user intends to perform and the virtual object that is the target of the hand interaction based on the position of the hand and the posture of the fingers acquired by the acquisition unit, and is set as the virtual object. Control the behavior of virtual objects according to hand interaction based on attributes, Augmented reality system.
  • An acquisition unit that acquires the position of the user's hand and gestures of the fingers, and A control unit that controls the display operation of a display device that superimposes and displays virtual objects in real space, Equipped with The control unit controls the behavior of the virtual object according to the position of the hand acquired by the acquisition unit and the gesture of the fingers, based on the attributes set for the virtual object.
  • Information processing device
  • the control unit detects that the hand to be gripped is approaching the virtual object based on the position of the hand acquired by the acquisition unit and the gesture of the fingers, and responds to the gripping operation by the hand. Control the behavior of virtual objects
  • the information processing device according to (21) above.
  • the control unit controls the behavior of the virtual object with respect to the gripping operation of the user set to be possible by the attribute.
  • the attribute including the behavior of the virtual object for each grasping operation is further set.
  • the control unit controls the behavior of the virtual object with respect to the gripping operation of the user based on the behavior set by the attribute.
  • the attributes including whether or not each gripping operation can be performed on the virtual object are further set before and after gripping.
  • the control unit controls the behavior of the virtual object with respect to the gripping operation set to be possible by the attribute before and after gripping.
  • the information processing device according to any one of (23) and (24) above.
  • the attribute including the possibility of processing associated with the gripping operation is further set.
  • the control unit controls the behavior of the virtual object including the process set to be possible by the attribute with respect to the gripping operation of the user.
  • the information processing device according to any one of (23) to (25) above.
  • the process associated with the gripping operation includes a suction process of changing the position and orientation of the virtual object so that the position gripped by the user follows the user's hand.
  • the attributes relating to the user interface in each gripping operation on the virtual object are further set.
  • the control unit controls the display device so as to perform a display operation of the user interface set by the attribute in response to the gripping operation of the user.
  • the information processing device according to any one of (23) to (27) above.
  • the attribute regarding the user interface at the grippable position of the virtual object for each grip operation is set.
  • the control unit controls the display device so as to perform a display operation of the user interface at a grippable position set by the attribute in response to the user's grip operation.
  • the information processing device according to (28) above.
  • the control step the behavior of the virtual object is controlled according to the position of the hand acquired by the acquisition unit and the gesture of the fingers, based on the attributes set for the virtual object.
  • Information processing method
  • (31) Acquisition unit for acquiring the position of the user's hand and the gesture of the fingers, A control unit that controls the display operation of a display device that superimposes and displays virtual objects in real space. Written in computer readable format so that the computer works as The control unit controls the behavior of the virtual object according to the position of the hand acquired by the acquisition unit and the gesture of the fingers, based on the attributes set for the virtual object. Computer program.
  • a display device that superimposes and displays virtual objects in real space
  • An acquisition unit that acquires the position of the user's hand and gestures of the fingers
  • a control unit that controls the display operation of the display device, Equipped with The control unit controls the behavior of the virtual object according to the position of the hand acquired by the acquisition unit and the gesture of the fingers, based on the attributes set for the virtual object.
  • Augmented reality system Augmented reality system.
  • controller 501, 502, 503 ... IMU 511, 512, 513 ... Band 2500 ...
  • Remote control system 2510 ... Master device 2511 ... Controller, 2512 ... Display unit, 2513 ... Master control unit 2514 ... Communication unit, 2520 ... Slave device, 2521 ... Robot 2522 ... Camera, 2523 ... Slave control unit, 2524 ... Communication unit

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

拡張現実に関する情報を処理する情報処理装置を提供する。 情報処理装置は、ユーザの手の位置と手指の姿勢を取得する取得部と、実空間に仮想オブジェクトを重畳表示する表示装置の表示動作を制御する制御部を具備し、前記制御部は、前記取得部が取得した手の位置と手指の姿勢に基づいて、前記ユーザが行おうとしているハンドインタラクション及びハンドインタラクションの対象としている仮想オブジェクトを判定し、仮想オブジェクトに設定された属性に基づいてハンドインタラクションに応じた仮想オブジェクトの挙動を制御する。

Description

情報処理装置及び情報処理方法、コンピュータプログラム、並びに拡張現実感システム
 本明細書で開示する技術(以下、「本開示」とする)は、拡張現実に関する情報を処理する情報処理装置及び情報処理方法、コンピュータプログラム、並びに拡張現実感システムに関する。
 臨場感のある体験を実現する技術として、仮想現実(Virtual Reality:VR)や拡張現実(Augmented Reality:AR)、MR(Mixed Reality)が普及してきている。VRは仮想空間を現実として知覚させる技術である。また、ARは、ユーザを取り巻く現実環境に情報を付加したり、強調又は減衰、削除したりして、ユーザから見た実空間を拡張させる技術である。また、MRは、例えば、実空間の物体に置き換わる仮想的な物体(以下、「仮想オブジェクト」とも言う)を表示して、現実と仮想を交錯させる技術である。ARやMRは、例えばシースルー型のヘッドマウントディスプレイ(以下、「ARグラス」とも呼ぶ)を用いて実現される。AR技術によれば、ユーザがARグラス越しに観察する実空間の風景に仮想オブジェクトを重畳表示したり、特定の実オブジェクトを強調し又は減衰したり、特定の実オブジェクトを削除してあたかも存在しないように見せたりすることができる。また、現実物体(ユーザの指など)と仮想物体との接触をユーザに提示する情報処理装置について提案がなされている(例えば、特許文献1を参照のこと)。
特開2019-40226号公報
J.Napier:"The prehensile movements of the human hand,"J.Bone and Joint Surgery,38B,4,pp.902-913 (1956).
 本開示の目的は、拡張現実に関する情報を処理する情報処理装置及び情報処理方法、コンピュータプログラム、並びに拡張現実感システムを提供することにある。
 本開示の第1の側面は、
 ユーザの手の位置と手指の姿勢を取得する取得部と、
 実空間に仮想オブジェクトを重畳表示する表示装置の表示動作を制御する制御部と、
を具備し、
 前記制御部は、前記取得部が取得した手の位置と手指の姿勢に基づいて、前記ユーザが行おうとしているハンドインタラクション及びハンドインタラクションの対象としている仮想オブジェクトを判定し、仮想オブジェクトに設定された属性に基づいてハンドインタラクションに応じた仮想オブジェクトの挙動を制御する、
情報処理装置である。
 本開示では、ハンドインタラクションを定義するとともに、仮想オブジェクト毎に各ハンドインタラクションの可否を含む前記属性をあらかじめ設定しておく。そして、前記制御部は、前記属性により可能であると設定されたユーザのハンドインタラクションに対する仮想オブジェクトの挙動を制御する。
 前記制御部は、あらかじめ定義された複数種類のハンドインタラクションの中から、前記取得部が取得した手の位置と手指の姿勢に基づいて、ユーザが行おうとしているハンドインタラクションを判定する。例えば、前記制御部は、親指と人差し指で摘まむ精密把持又は3本以上の指を使って掴む握力把持うちいずれの把持操作であるかを判定し、さらに仮想オブジェクトに対する手の位置変化の角度や仮想オブジェクトに対する手指の位置変化の速度に基づいて、「押す」、「つぶす」、「叩く」、「触る」といったハンドインタラクションを判定して、さまざまなハンドインタラクションに対する仮想オブジェクトの挙動を制御する。
 また、本開示の第2の側面は、
 ユーザの手の位置と手指の姿勢を取得する取得ステップと、
 実空間に仮想オブジェクトを重畳表示する表示装置の表示動作を制御する制御ステップと、
を有し、
 前記制御ステップでは、前記取得ステップで取得した手の位置と手指の姿勢に基づいて、前記ユーザが行おうとしているハンドインタラクション及びハンドインタラクションの対象としている仮想オブジェクトを判定し、仮想オブジェクトに設定された属性に基づいてハンドインタラクションに応じた仮想オブジェクトの挙動を制御する、
情報処理方法である。
 また、本開示の第3の側面は、
 ユーザの手の位置と手指の姿勢を取得する取得部、
 実空間に仮想オブジェクトを重畳表示する表示装置の表示動作を制御する制御部、
としてコンピュータが機能するようにコンピュータ可読形式で記述され、
 前記制御部は、前記取得部が取得した手の位置と手指の姿勢に基づいて、前記ユーザが行おうとしているハンドインタラクション及びハンドインタラクションの対象としている仮想オブジェクトを判定し、仮想オブジェクトに設定された属性に基づいてハンドインタラクションに応じた仮想オブジェクトの挙動を制御する、
コンピュータプログラムである。
 本開示の第3の側面に係るコンピュータプログラムは、コンピュータ上で所定の処理を実現するようにコンピュータ可読形式で記述されたコンピュータプログラムを定義したものである。換言すれば、本願の請求項に係るコンピュータプログラムをコンピュータにインストールすることによって、コンピュータ上では協働的作用が発揮され、本開示の第1の側面に係る情報処理装置と同様の作用効果を得ることができる。
 また、本開示の第4の側面は、
 実空間に仮想オブジェクトを重畳表示する表示装置と、
 実空間に仮想オブジェクトを重畳表示する表示装置の表示動作を制御する制御部と、
を具備し、
 前記制御部は、前記取得部が取得した手の位置と手指の姿勢に基づいて、前記ユーザが行おうとしているハンドインタラクション及びハンドインタラクションの対象としている仮想オブジェクトを判定し、仮想オブジェクトに設定された属性に基づいてハンドインタラクションに応じた仮想オブジェクトの挙動を制御する、
拡張現実感システムである。
 但し、ここで言う「システム」とは、複数の装置(又は特定の機能を実現する機能モジュール)が論理的に集合した物のことを言い、各装置や機能モジュールが単一の筐体内にあるか否かは特に問わない。
 本開示によれば、仮想オブジェクトに対するユーザの手や指によるハンドインタラクションを実現する情報処理装置及び情報処理方法、コンピュータプログラム、並びに拡張現実感システムを提供することができる。
 なお、本明細書に記載された効果は、あくまでも例示であり、本開示によりもたらされる効果はこれに限定されるものではない。また、本開示が、上記の効果以外に、さらに付加的な効果を奏する場合もある。
 本開示のさらに他の目的、特徴や利点は、後述する実施形態や添付する図面に基づくより詳細な説明によって明らかになるであろう。
図1は、ベルト11を使ってコントローラ10が設置されたユーザの手の甲を示した図である。 図2は、ベルト11を使ってコントローラ10が設置されたユーザの手のひらを示した図である。 図3は、ベルト11を使ってコントローラ10が設置されたユーザの手の側面を示した図である。 図4は、ユーザが頭部にARグラス41を装着するとともに、両手にそれぞれコントローラ42及び43を装着している様子を示した図である。 図5は、ARシステム100の機能的構成例を示した図である。 図6は、ユーザの頭部にARグラスを装着した様子を示した図である。 図7は、ARグラス701とコントローラ702からなるARシステム700の構成例を示した図である。 図8は、ARグラス801とコントローラ802と情報端末803からなるARシステム800の構成例を示した図である。 図9は、コントローラ110の具体的な構成例を示した図である。 図10は、コントローラ110の具体的な構成例を示した図である。 図11は、コントローラ110の具体的な構成例を示した図である。 図12は、コントローラ110の具体的な構成例を示した図である。 図13は、コントローラ110の具体的な構成例を示した図である。 図14は、制御部140が備える機能的構成例を示した図である。 図15は、ユーザの周囲に仮想オブジェクトが配置される様子を示した図である。 図16は、ARグラスがユーザの頭部の動きに追従するように仮想オブジェクトを表示させる仕組みを説明するための図である。 図17は、物体を精密把持する方法を示した図である。 図18は、物体を握力把持する方法を示した図である。 図19は、剣を摘まむ様子を示した図である。 図20は、剣を掴む様子を示した図である。 図21は、仮想オブジェクト毎に各把持操作の可否に関する属性を設定した例を示した図である。 図22は、仮想オブジェクトが存在しない領域におけるユーザの把持操作に応じた仮想空間の挙動を示した図である。 図23は、仮想オブジェクトが存在しない領域におけるユーザの把持操作に応じた仮想空間の挙動を示した図である。 図24は、ユーザによる把持操作に対する仮想オブジェクトの挙動を実現するための処理手順を示したフローチャートである。 図25は、遠隔操作システム2500の構成例を示した図である。 図26は、マスタ装置2510側でオペレータが自分の手を仮想オブジェクトに接近している様子を示した図である。 図27は、スレーブ装置2520側で、ロボット2521がオペレータの手の動きに追従するように物体に接近している様子を示した図である。 図28は、遠隔操作システム2500においてオペレータが遠隔の物体を把持操作するための処理手順を示したフローチャートである。 図29は、仮想オブジェクト毎に属性を設定した例(吸着処理(把持操作に伴う処理)の可否の属性を含む例)を示した図である。 図30は、吸着処理の動作例を示した図である。 図31は、仮想オブジェクト毎に属性を設定した例(把持操作毎の把持可能領域の属性を含む例)を示した図である。 図32は、ユーザの手と仮想オブジェクトとの距離に応じた状態を示した図である。 図33は、仮想オブジェクトを摘まもうとしている手指のジェスチャを示した図である。 図34は、仮想オブジェクトを掴もうとしている手指のジェスチャを示した図である。 図35は、仮想オブジェクトを把持しようとしていない手指のジェスチャを示した図である。 図36は、ユーザの手の位置姿勢に応じた仮想オブジェクトのUI挙動を示した図である。 図37は、ユーザの手の位置姿勢に応じた仮想オブジェクトのUI挙動を示した図である。 図38は、ユーザの手の位置姿勢に応じた仮想オブジェクトのUI挙動を示した図である。 図39は、ユーザの手の位置姿勢に応じた仮想オブジェクトのUI挙動を示した図である。 図40は、ユーザの手の位置姿勢に応じた仮想オブジェクトのUI挙動を示した図である。 図41は、ユーザの手の位置姿勢に応じた仮想オブジェクトのUI挙動を示した図である。 図42は、ユーザの手の位置姿勢に応じた仮想オブジェクトのUI挙動を示した図である。 図43は、ユーザの手の位置姿勢に応じた仮想オブジェクトのUI挙動を示した図である。 図44は、ユーザによる把持操作に対する仮想オブジェクトの挙動を実現するための処理手順(仮想オブジェクトの把持可能領域のUI挙動の変化を含む処理手順)を示したフローチャートである。 図45は、仮想オブジェクトを押すハンドインタラクションを示した図である。 図46は、仮想オブジェクトをつぶすハンドインタラクションを示した図である。 図47は、仮想オブジェクト毎に各ハンドインタラクション(押す、つぶす)の可否に関する属性を設定した例を示した図である。 図48は、仮想オブジェクトをたたくハンドインタラクションを示した図である。 図49は、仮想オブジェクトを触れるハンドインタラクションを示した図である。 図50は、仮想オブジェクト毎に各ハンドインタラクション(たたく、触れる)の可否に関する属性を設定した例を示した図である。 図51は、仮想オブジェクトに対する各ハンドインタラクションの特徴を示した図である。 図52は、ユーザによるハンドインタラクションに対する仮想オブジェクトの挙動を実現するための処理手順を示したフローチャートである。
 実空間では、摘まむ、掴むといった作法により物体を把持することができ、物体は摘まむ又は掴む手から加わる力によって形状を変化させる。一方、仮想空間では、物体は現実に存在しないため、手が物体をすり抜けてしまうので、実空間と同じ作法で物体を把持することができない。例えば、仮想空間の物体に指を突っ込んで指先で摘まんだり、物体の外周に設けた枠を摘まんだりするユーザインターフェース(UI)を提供する拡張現実感システムも考えられる。しかしながら、仮想空間においてUIを通じて物体を把持する作法は、実空間において物体を把持する作法との乖離が大きく、リアリティが大きく損なわれる。
 また、仮想空間の物体は現実に存在しないため、摘まむ、掴むといった作法により物体を把持する場合に、手が物体をすり抜けてしまい、ユーザはリアリティのある触感が得られない。例えば、手に外骨格型の力覚提示装置を装着して、仮想空間の物体を把持する場合に、手が物体をすり抜けないように手の動きをロックして、実空間において物体を把持する作法に類似する仮想空間の作法を実現する方法も考えられる。しかしながら、力感提示装置の購入コストが高いことや、力覚提示装置を設置する場所が必要であることから、限られたユーザや環境でしか利用できない。また、手や指に大掛かりな装置を装着するため、ユーザに取って装着感が負担となり、没入感やリアリティを阻害する可能性がある。
 そこで、本開示では、ユーザが仮想オブジェクトを把持する際の没入感やリアリティを向上するために、手指が仮想オブジェクトをすり抜ける場合でも、実空間において物体を把持する作法から乖離しない作法により、ユーザが直感的に仮想オブジェクトを把持することができる作法を実現する。以下、図面を参照しながら本開示について、以下の順に従って説明する。
A.システム構成
B.コントローラの構成
C.ARグラスの基本動作
D.仮想オブジェクトの把持
 D-1.仮想オブジェクトの属性
 D-2.仮想オブジェクトの属性の設定方法
 D-3.把持操作に応じた挙動の変化
E.把持操作のトリガー
F.属性に基づく仮想オブジェクトの挙動制御
G.遠隔システムへの適用
H.握力把持の操作に対する仮想オブジェクトの位置姿勢制御
I.把持操作に応じたUI挙動
J.仮想オブジェクトに対する各種ハンドインタラクション
 J-1.位置変化の角度の相違に応じたハンドインタラクションの属性
 J-2.位置変化の角度の相違に応じたハンドインタラクションの属性の設定
 J-3.位置変化の角度の相違に応じたハンドインタラクションのトリガー
 J-4.位置変化の速度の相違に応じたハンドインタラクションの属性
 J-5.位置変化の速度の相違に応じたUI挙動
 J-6.位置変化の速度の相違に応じたハンドインタラクションの属性の設定
 J-7.位置変化の速度の相違に応じたハンドインタラクションのトリガー
 J-8.属性に基づく仮想オブジェクトの挙動制御
A.システム構成
 VRやARなどの分野では、ヘッドマウントディスプレイを装着して仮想空間を探索するユーザが、コントローラを手に持って操作するという入力方法が知られている。しかしながら、ユーザはARグラス越しに実空間を見渡しながら、歩行や物(実オブジェクトと仮想オブジェクトを含む)の把持など実空間での日常生活を行えることが好ましい。このため、コントローラを把持することなどにより手指が拘束されず、手指が自由に使える入力方法であることが好ましい。
 また、ユーザの手指を拘束しない入力方法として、カメラの撮影画像からユーザの手の動きを検出する方法が挙げられる。例えば、ARグラスに外向きに取り付けられたRGBカメラやToF(Time Of Flight)カメラによりユーザの手指のボーンを抽出し、手指の位置姿勢や手指のジェスチャを認識する。しかしながら、カメラの画像からユーザの手を検出する方式では、オクルージョンの問題や、カメラの画角外では検出できないという問題がある。
 そこで、本開示では、手の位置検出、手指の姿勢認識、手指のジェスチャ認識などに利用されるコントローラをユーザの手及び指に設置して、手指が自由に使えるようにARシステムを構成するようにした。また、コントローラが設置された手や指を使って実在する物体や仮想の物体を把持したり、手のひらに仮想オブジェクトを乗せたりするためには、手のひらをフリーにしておくことが好ましい。したがって、コントローラを手の甲に設置することが好ましい。
 例えばベルトを使ってコントローラをユーザの手の甲に設置する。図1~図3には、ベルト11を使ってコントローラ10が設置されたユーザの手の甲及び手のひら、及び手の側面をそれぞれ示している。もちろん、ベルトを使う固定方法には必ずしも限定されず、例えば粘着パッドを用いてコントローラを手の甲に取り付けるようにしてもよい。なお、図1~図3はユーザの左手にコントローラ10を装着した例を示しているが、右手にも左右対称的な形状のコントローラ10を装着することができる。
 図4には、ユーザが頭部にARグラス41を装着するとともに、両手にそれぞれコントローラ42及び43を装着している様子を示している。上述したように、各コントローラ42及び43は、手の位置検出、手指の姿勢認識、及び手指のジェスチャ認識の機能を備えている。また、ARグラス41は、実空間に仮想オブジェクトを重畳して表示する機能を備えている。
 ここで、ARグラス41は、コントローラ42及び43を通じて、左右のそれぞれの手の位置、手指の姿勢、及び手指のジェスチャを認識することができる。また、ARグラス41は、ユーザの頭部の位置姿勢を検出する機能を備えている。したがって、ARグラス41は、ユーザの頭部とコントローラ42及び43との相対位置、言い換えればユーザの左右の手の相対位置を検出することができる。また、ARグラス41が表示する仮想オブジェクトの実空間における座標位置を把握しているので、ユーザの左右の手と仮想オブジェクトとの相対位置を検出することができる。
 図5には、ARグラスとユーザの手の甲に設置したコントローラを含むARシステム100の機能的構成例を示している。図示のARシステム100は、ユーザの手の甲に設置されるコントローラ110と、頭部センサ部120と、ARグラスに仮想オブジェクトを表示する表示部131と、ARシステム100全体の動作を統括的にコントロールする制御部140を備えている。コントローラ110は、手位置検出部111と、手指姿勢認識部112と、手指ジェスチャ認識部113と、触覚フィードバック部114を備えている。頭部センサ部120は、ARグラスに搭載されるが、外向きカメラ121と、内向きカメラ122と、マイク123と、ジャイロセンサ124と、加速度センサ125と、方位センサ126を含んでいる。なお、図5では、図面の簡素化のため、コントローラ110を1つしか描いていないが、ユーザの左右の手にそれぞれコントローラ110を設置する場合には、ARシステム100はコントローラ110を2つ備える。
 また、ARシステム100は、仮想オブジェクトに関わる音声などのオーディオ信号を出力するスピーカー132や、ARシステム100が外部と通信を行うための通信部133をさらに備えていてもよい。また、制御部140は、SSD(Solid State Drive)などからなる大規模な記憶部150を装備していてもよい。
 ARグラス本体は、一般には眼鏡型又はゴーグル型のデバイスであり、ユーザが頭部に装着して利用され、ユーザの両目又は片目の視野にデジタル情報を重畳表示したり、特定の実オブジェクトを強調し又は減衰したり、特定の実オブジェクトを削除してあたかも存在しないように見せたりすることができる。図6には、ユーザの頭部にARグラスを装着した様子を示している。図示のARグラスは、ユーザの左右の眼の前にそれぞれ左眼用の表示部131と右眼用の表示部131が配設されている。表示部131は、透明又は半透明で、実空間の所定の位置に仮想オブジェクトを重畳表示したり、特定の実オブジェクトを強調し又は減衰したり、特定の実オブジェクトを削除してあたかも存在しないように見せたりする。左右の表示部131は、例えば独立して表示駆動され、視差画像すなわち仮想オブジェクトを3D表示するようにしてもよい。また、ARグラスのほぼ中央には、ユーザの視線方向に向けられた外向きカメラ121が配置されている。
 ARシステム100は、例えばユーザが頭部に装着するARグラスと、ユーザの手の甲に装着されるコントローラという2つの装置で構成することができる。但し、ユーザの左右の手の甲にコントローラを設置する場合は、ARシステム100は、ARグラスと2つのコントローラという3つの装置で構成される。図7には、ARグラス701とコントローラ110からなるARシステム700の構成例を示している。ARグラス701は、制御部140と、記憶部150と、頭部センサ部120と、表示部131と、スピーカー132と、通信部133を含んでいる。また、コントローラ110は、手位置検出部111と手指姿勢認識部112と手指ジェスチャ認識部113と触覚フィードバック部114を含んでいる。
 他の構成例として、ARシステム100は、ユーザが頭部に装着するARグラスと、ユーザの手の甲に装着されるコントローラと、スマートフォンやタブレットなどの情報端末という3台の装置で構成される。図8には、ARグラス801とコントローラ110と情報端末803からなるARシステム800の構成例を示している。ARグラス801は、表示部131と、スピーカー132と、頭部センサ部120を含んでいる。コントローラ110は、手位置検出部111と手指姿勢認識部112と手指ジェスチャ認識部113と触覚フィードバック部114を含んでいる。また、情報端末803は、制御部140と、記憶部150と、通信部133を含んでいる。
 なお、ARシステム100の具体的に装置構成は、図7と図8に限定されるものではない。また、ARシステム100は、図1に示した以外の構成要素をさらに含んでいてもよい。
 図5を参照しながら、ARシステム100の各構成要素について説明する。
 コントローラ110は、手位置検出部111と、手指姿勢認識部112と、手指ジェスチャ認識部113と、触覚フィードバック部114を備えている。
 手位置検出部111は、ユーザの手の位置を検出する。手指姿勢認識部112は、ユーザの手指の姿勢を認識する。本実施形態では、手指姿勢認識部112は必須ではない。また、手指ジェスチャ認識部113は、手指のジェスチャ、例えば親指と他の指(人差し指など)の指先が接触しているか又は離れているかを認識する。
 触覚フィードバック部114は、例えば電磁型や圧電型の振動子をアレイ状に配置して構成され、ユーザの手の甲に振動提示による触覚フィードバックを行う。本実施形態では、ユーザの手の甲に設置されるコントローラ110内に触覚フィードバック部114が装備されるが、ユーザの身体上で手の甲以外の1以上の部位に触覚フィードバック部114を取り付けて、振動提示を行うように構成してもよい。
 頭部センサ部120は、ARグラスに搭載されるが、外向きカメラ121と、内向きカメラ122と、マイク123と、ジャイロセンサ124と、加速度センサ125と、方位センサ126を含んでいる。
 外向きカメラ121は、例えばRGBカメラからなり、ARグラスの外側すなわちARグラスを装着したユーザの正面方向を撮影するように設置されている。外向きカメラ121は、ユーザの手指の操作を撮影することができるが、障害物の陰にユーザの手指が隠れてしまった場合、手の甲で指先が隠れている場合、ユーザが身体の後ろに手をまわした場合などには、ユーザの手指の操作を撮影することができない。また、外向きカメラ121は、IR発光部及びIR受光部からなるIRカメラ、ToFカメラのうちいずれか1つをさらに備えていてもよい。外向きカメラ121にIRカメラを用いる場合、手の甲など捕捉の対象となる物体に再帰性反射材を取り付けて、IRカメラは赤外光を発光するとともに再帰性反射材から反射された赤外光を受光する。外向きカメラ121で撮影した画像信号は、制御部140に転送される。
 マイク123は、単一の収音素子又は複数の収音素子からなるマイクアレイであってもよい。マイク123は、ARグラスを装着したユーザの音声やユーザの周囲音を収音する。マイク123で収音したオーディオ信号は、制御部140に転送される。
 ジャイロセンサ124と、加速度センサ125と、方位センサ126は、IMU(Inertial Measurement Unit)で構成されていてもよい。ジャイロセンサ124と、加速度センサ125と、方位センサ126のセンサ信号は、制御部140に転送される。制御部140は、これらのセンサ信号に基づいて、ARグラスを装着したユーザの頭部の位置姿勢を検出することができる。
 表示部131は、ARグラスを装着したユーザの両目又は片目の前方に設置される透過型ディスプレイ(メガネレンズなど)で構成され、仮想空間の表示に利用される。具体的には、表示部131は、情報(仮想オブジェクト)を表示したり、現実のオブジェクトを強調又は減衰、削除したりして、ユーザから見た実空間を拡張させる。表示部131は、制御部140からの制御信号に基づいて表示動作を行う。また、表示部131で仮想オブジェクトをシースルー表示する仕組みは特に限定されない。
 スピーカー132は、単一の発音素子、又は複数の発音素子のアレイで構成され、例えばARグラスに設置される。スピーカー132からは、例えば表示部131で表示される仮想オブジェクトに関する音声が出力されるが、その他のオーディオ信号を出力するようにしてもよい。
 通信部133は、例えばWi-Fi(登録商標)やBluetooth(登録商標)などの無線通信機能を備えている。通信部133は、主に制御部140と外部システム(図示しない)とのデータ交換を実現するための通信動作を行う。
 制御部140は、ARグラス内に設置されるか、又はARグラスとは分離した装置(スマートフォンなど)内に、記憶部150やバッテリなどの駆動用電源とともに配置される。制御部140は、記憶部150から読み出した各種プログラムを実行してさまざまな処理を実施する。
B.コントローラの構成
 コントローラ110は、本実施形態に係るARシステム100用の入力デバイスであり、WindowsやLinux(登録商標)などのOS(Operating System)におけるキーボードやマウス、タッチパネルなどに対応する。図1~図3にも示したように、コントローラ110はユーザの手の甲に設置して用いられる。したがって、ユーザは、コントローラ110によって手指が拘束されず、手指を自由に使うことができる。例えば、ユーザは、コントローラ110が設置された手を使って実在する物体や仮想の物体を把持したり、手のひらに仮想オブジェクトを乗せたりすることができる。
 コントローラ110は、ユーザの手の位置や手指の姿勢、手指の姿勢に基づいてARシステム100に対する入力を行うデバイスである。したがって、図5、図7及び図8に示したように、コントローラ110は、手位置検出部111と、手指姿勢認識部112と、手指ジェスチャ認識部113を備えている。手位置検出部111は、ユーザの手の位置を検出する。手指姿勢認識部112は、ユーザの手指の姿勢を認識する。手指ジェスチャ認識部113は、手指のジェスチャ、例えば親指と他の指(人差し指など)の指先が接触しているか又は離れているかを認識する。また、コントローラ110は、振動提示によってユーザの手の甲に触覚を与える触覚フィードバック部114を備えている。以下では、手位置検出部111と、手指姿勢認識部112と、手指ジェスチャ認識部113の具体的構成例について説明する。
 図9には、手位置検出部111と手指ジェスチャ認識部113の構成例を示している。但し、図9に示す例では、コントローラ110は、任意の手指姿勢認識部112を装備するか、又は手指姿勢認識部112を装備しないものとし、ここでは手指姿勢認識部112については説明しない。
 図9に示す例では、手位置検出部111は、IR検出方式を用いている。すなわち、手位置検出部111は、コントローラ110の筐体10に取り付けられた複数(図9に示す例では4個)のIR反射マーカー901~904と、ARグラス(又は頭部センサ部120)に設けられたIRカメラ(図示しない)の組み合わせで構成される。IRカメラは、IR送信部とIR受信部を備え、IR送信部から出力されたIR信号が各IR反射マーカー901~904で反射され、その反射IR信号をIR受信部で受信して、IR反射マーカー901~904の輝点を検出することができる。そして、これらの輝点の位置情報に基づいて、コントローラ110の本体10(又は、ユーザの手の甲)の位置姿勢を検出することができる。IRカメラは、複数のIR受信部を備えたステレオ式であることが好ましい。
 また、手指ジェスチャ認識部113は、手指のジェスチャ、例えば親指と他の指(人差し指など)の指先が接触しているか又は離れているかを認識する。図9に示す例では、手指ジェスチャ認識部113は電極検出方式を用いている。ユーザの親指と人差し指の指先にそれぞれ電極911及び912が取り付けられている。そして、親指と人差し指が接触すると電極911と電極912の間が通電状態となることから、電極911と電極912の通電状態に基づいて親指と人差し指のジェスチャを認識することができる。
 また、図10には、手位置検出部111と手指姿勢認識部112と手指ジェスチャ認識部113の他の構成例を示している。
 図10に示す例では、手位置検出部111は、IR検出方式と、IMU検出方式の組み合わせにより、ユーザの手の位置を検出する。IR検出方式では、コントローラ110の筐体10に取り付けられた複数のIR反射マーカー1001、1002、1003、…のIR反射信号を、ARグラス(又は頭部センサ部120)に設けられたIRカメラ(図示しない)で捕捉して、各IR反射マーカーの輝点位置に基づいて、ユーザの手の位置姿勢を検出する。また、IMU検出方式では、コントローラ110の本体10に内蔵されたIMUの検出信号に基づいて、ユーザの手の位置姿勢を検出する。IMUは、ジャイロセンサと加速度センサと方位センサを備えている。コントローラ110がIRカメラの視界内にあるときにはIR検出方式を用い、コントローラ110がIRカメラの視界を外れたとき(オクルージョンが発生した場合を含む)にはIMU方式を用いる。
 また、図10に示す例では、手指姿勢認識部112は、ユーザの指の数箇所に取り付けたIMUで構成される。具体的には、親指と、人差し指の基節及び中節の3箇所に、IMU1011、1012、1013がそれぞれバンド1021、1022、1023によって取り付けられている。制御部140側では、各IMU1011、1012、1013の検出信号に基づいて、親指の姿勢、人差し指の基節及び中節の姿勢(又は、人差し指の第2関節の角度)を計測することができる。但し、親指と人差し指の別の場所にさらに他のIMUを取り付けてもよいし、親指と人差し指以外の指にもIMUを取り付けてもよい。また、IMUの各指への固定方法はバンドに限定されず、例えば粘着パッドを用いて各指に取り付けるようにしてもよい。
 また、手指ジェスチャ認識部113は、手指姿勢認識部112が認識する指の関節角度とは別に、手指のジェスチャ、例えば親指と他の指(人差し指など)の指先が接触しているか離れているかを認識する。図10に示す例では、手指ジェスチャ認識部113は静電容量検出方式を用いている。図10では図示を省略しているが、各指の指先や中節部と手のひらに静電容量検出用の電極が設置されている。例えば、親指と人差し指の指先が広がると静電容量が大きくなり、親指と人差し指の指先が接近すると静電容量が小さくなる。したがって、手指姿勢認識部112は、親指と人差し指の指先間の静電容量の変化によって、親指と人差し指のジェスチャを認識することができる。
 また、図11には、手位置検出部111と手指姿勢認識部112と手指ジェスチャ認識部113のさらに他の構成例を示している。但し、手位置検出部111と手指ジェスチャ認識部113は図10と同様に構成されるので、ここでは図示と詳細な説明を省略し、手指姿勢認識部112について説明する。
 図11に示す例では、手指姿勢認識部112は、ベルト11を使って手のひらに設置したToFカメラ1101で構成される。ToFカメラ1101は、広角で、例えば手根付近に設置することで、5本の指を捕捉することができる。制御部140側では、ToFカメラ1101からのデプス画像に基づいて各指をボーン認識して、指の姿勢を取得することができる。ボーン認識によって、親指と人差し指の指先の接触のような手指ジェスチャも認識するようにしてもよい。
 より検出精度を高めるには、上述したような静電容量検出方式を用いて手指ジェスチャを認識することが好ましい。例えば、図12に示すようにベルト11を使って手のひらの中央付近に静電容量式の接触センサ1201を配置すれば、図13に示すように人差し指、中指、薬指、小指の各指を曲げて指先が手のひらに接近又は接触したことや、これら4本の指を使って把持する(掴む)ジェスチャを認識することができる。
 なお、コントローラ110が装備する手位置検出部111、手指姿勢認識部112、及び手指ジェスチャ認識部113の構成は、必ずしも上記に限定されるものではない。手の甲の位置を手の指の位置よりも高精度で検出することが可能であれば、コントローラ110に上述した以外の構成を適用することができる。例えば、コントローラ110単体でSLAM(Simultaneous Localization and Mapping)による自己位置推定が可能である場合や、頭部センサ部120のカメラ(RGBステレオカメラやToFカメラなど)を用いた手指認識において、手の位置を高精度且つロバストに検出する構成であれば、コントローラ110は、上述した以外の構成であってもよい。
C.ARグラスの基本動作
 図14には、制御部140が備える機能的構成例を模式的に示している。図示の例では、制御部140は、アプリケーション実行部1401と、頭部位置姿勢取得部1402と、出力制御部1403と、手位置取得部1404と、手指姿勢取得部1405と、手指ジェスチャ取得部1406を備えている。これらの機能モジュールは、制御部140が記憶部150から読み出した各種プログラムを実行することにより実現される。但し、図14には本開示を実現するための必要最低限の機能モジュールのみを図示しており、制御部140はさらに他の機能モジュールを備えていてもよい。
 アプリケーション実行部1401は、OSが提供する実行環境下で、ARアプリを含むアプリケーションプログラムを実行する。アプリケーション実行部1401は、複数のアプリケーションプログラムを同時に並行して実行してもよい。ARアプリは、例えば動画再生や3Dオブジェクトのビューアなどのアプリケーションであるが、ARグラス(図6を参照のこと)を頭部に装着したユーザの視界の中に仮想オブジェクトを重畳表示したり、特定の実オブジェクトを強調し又は減衰したり、特定の実オブジェクトを削除してあたかも存在しないように見せたりする。アプリケーション実行部1401は、表示部131を使って、ARアプリ(仮想オブジェクト)の表示動作も制御する。
 また、アプリケーション実行部1401は、コントローラ110を通じて取得される手指の操作に基づいて、仮想オブジェクトに対するユーザのハンドインタラクションに応じた仮想オブジェクトの挙動も制御する。本実施形態では、仮想オブジェクトに対する把持操作などのハンドインタラクションを定義するとともに、仮想オブジェクト毎に各ハンドインタラクションの可否に関する属性をあらかじめ設定しておく。そして、アプリケーション実行部1401は、ある仮想オブジェクトに対してユーザのハンドインタラクションが行われたときに、あらかじめ設定された属性に基づいてその仮想オブジェクトの挙動を制御するが、この点の詳細については後述に譲る。なお、仮想オブジェクトの属性は、ARアプリケーションの内部データであってもよいし、ARアプリケーションとは独立したデータファイルとして記憶部150に格納されていてもよい。仮想オブジェクト毎の各ハンドインタラクションの可否に関する属性は、仮想オブジェクトに対応する実オブジェクトに対して行われる現実の作法に基づいて設定されるものでもよいし、ARアプリなどのコンテンツの制作者が設定してもよい。あるいは、深層学習により事前学習された機械学習モデルを用いて、仮想オブジェクト毎に各ハンドインタラクションの可否に関する属性を設定するようにしてもよい。
 ARアプリが生成する仮想オブジェクトは、ユーザの全周囲にわたって配置される。図15には、ARグラスを頭部に装着したユーザの周囲1500に複数の仮想オブジェクト1501、1502、1503、…が配置される様子を模式的に示している。アプリケーション実行部1401は、頭部センサ部120からのセンサ情報に基づいて推定されるユーザの頭部の位置又は身体の重心位置を基準にして、ユーザの周囲に各仮想オブジェクト1501、1502、1503、…を配置する。
 頭部位置姿勢検出部1402は、ARグラスに搭載される頭部センサ部120に含まれるジャイロセンサ124と、加速度センサ125と、方位センサ126の各センサ信号に基づいて、ユーザの頭部の位置姿勢を検出し、さらにはユーザの視線方向又は視野範囲を認識する。
 出力制御部1403は、アプリケーション実行部1401によるARアプリなどのアプリケーションプログラムの実行結果に基づいて、表示部131、スピーカー132、及び触覚フィードバック部114の出力を制御する。例えば、出力制御部1403は、頭部位置姿勢検出部1402の検出結果に基づいてユーザの視野範囲を特定して、視野範囲に配置された仮想オブジェクトがARグラス越しにユーザが観察できるように、すなわちユーザの頭部の動きに追従するように表示部131による仮想オブジェクトの表示動作を制御する。
 ARグラスがユーザの頭部の動きに追従するように仮想オブジェクトを表示させる仕組みについて、図16を参照しながら説明する。図16では、ユーザの視線の奥行き方向がzw軸、水平方向がyw軸、垂直方向がxw軸であり、ユーザの基準軸xwwwの原点位置はユーザの視点位置とする。ロールθzはユーザの頭部のzw軸回りの運動、チルトθyはユーザの頭部のyw軸回りの運動、パンθzはユーザの頭部のxw軸回りの運動に相当する。頭部位置姿勢検出部1402は、ジャイロセンサ124と、加速度センサ125と、方位センサ126のセンサ信号に基づいて、ユーザの頭部のロール、チルト、パンの各方向の動き(θz,θy,θz)や頭部の平行移動からなる姿勢情報を検出する。そして、出力制御部1403は、ユーザの頭部の姿勢に追従するように、仮想オブジェクトが配置された実空間(例えば、図15を参照のこと)上で表示部131の表示画角を移動させ、その表示画角に存在する仮想オブジェクトの画像を表示部131で表示する。具体的には、ユーザの頭部運動のロール成分に応じて領域1602-1を回転させたり、ユーザの頭部運動のチルト成分に応じて領域1602-2を移動させたり、ユーザの頭部運動のパン成分に応じて領域1602-3を移動させたりして、ユーザの頭部の動きを打ち消すように表示画角を移動させる。したがって、表示部131にはユーザの頭部の位置姿勢に追従して移動した表示画角に配置された仮想オブジェクトが表示されるので、ユーザは、ARグラス越しに、仮想オブジェクトが重畳された実空間を観察することができる。
 手位置取得部1404と、手指姿勢取得部1405と、手指ジェスチャ取得部1406は、それぞれコントローラ110側の手位置検出部111、手指姿勢認識部112、手指ジェスチャ認識部112と協働して、ユーザの手の位置、手指の姿勢、及び手指が行うジェスチャの情報を取得する。なお、ユーザの手が外向きカメラ121の視野内にある場合には、外向きカメラ121の撮影画像の画像認識結果に基づいて、ユーザの手の位置、手指の姿勢、及び手指が行うジェスチャの情報を取得することができる。
 ここで、手指ジェスチャ取得部1406が取得する手指のジェスチャには、手指を使って仮想オブジェクトに対して行おうとしているハンドインタラクションも含まれる。ハンドインタラクションには、「摘まむ(精密把持)」、「掴む(握力把持)」、「押す」、「つぶす」、「叩く」、「触れる」などが挙げられる。手指ジェスチャ取得部1406は、「摘まむ(精密把持)」と「掴む(握力把持)」を、主にユーザの手の位置及び手指の姿勢の情報に基づいて判定することができる。これに対し、「押す」と「つぶす」はほぼ同じ手指の姿勢であるため、手指ジェスチャ取得部1406は、手の位置変化の角度(又は、仮想オブジェクトに接近する方向)に基づいて、「押す」と「つぶす」を判定する。また、「叩く」と「触れる」はほぼ同じ手指の姿勢であるため、手指ジェスチャ取得部1406は、手の位置変化の速度(又は、仮想オブジェクトに対する手の相対速度)に基づいて、「叩く」と「触れる」を判定する。
D.仮想オブジェクトの把持
 実空間における物体の把持操作は、例えば、親指と人差し指で摘まむように把持する精密把持(図17を参照のこと)と、すべての指を使って(又は、指全体、3本以上の指を使って)掴むように把持する握力把持(図18を参照のこと)の2種類に大別される(非特許文献1を参照のこと)。もちろん、図17に示した以外にも物体を精密把持する方法があり、図18に示した以外にも物体を握力把持する方法がある。さらに、指の側面を使う中間把持や親指を用いない把持など、把持操作のバリエーションがある。また、物体を片手のみで安定して把持するためには、手の相対する2面以上で物体を挟み込む必要がある。1つの面に対して複数の指を使用する場合もある。
 実空間における物体の把持操作は、精密把持、握力把持、中間把持を始めとして多種類ある。実空間におけるあらゆる把持操作を仮想オブジェクトに対しても実現することは困難である。仮想オブジェクトに対して可能な把持操作を限定して、把持操作に対する仮想オブジェクトの挙動を単一化すると、処理が単純になり実現可能性が高まる。しかしながら、ユーザが同じ仮想オブジェクトに対して、精密把持と握力把持を使い分けて把持操作を行ったにも拘らず、仮想オブジェクトの挙動が同じであると、実空間における作法との乖離が大きくなり、没入感やリアリティが阻害されてしまう。
 そこで、本開示では、仮想オブジェクトに対する精密把持と握力把持を含む2種類以上の把持操作を定義する。また、仮想オブジェクト毎に、各把持操作の可否に関する属性をあらかじめ設定しておく。そして、ある仮想オブジェクトに対してユーザによる把持操作が行われると、アプリケーション実行部1401が、あらかじめ設定された属性に従ってその仮想オブジェクトの挙動を制御する。
 仮想オブジェクト毎の各把持操作の可否に関する属性は、仮想オブジェクトに対応する実オブジェクトに対して行われる現実の作法に基づいて設定されるものでもよいし、ARアプリなどのコンテンツの制作者が設定してもよい。あるいは、深層学習により事前学習された機械学習モデルを用いて、仮想オブジェクト毎に各把持操作の可否に関する属性を設定するようにしてもよい。例えば、ARコンテンツの制作者の意図に基づいて、仮想オブジェクトの把持操作に対して、「摘まめるか否か、掴めるか否か」といった属性をあらかじめ設定しておく。具体的には、ARアプリなどのコンテンツの制作者は、仮想オブジェクトに対応する現実の物体に対する作法に近い把持操作を許可する属性を設定する。そして、ユーザが仮想オブジェクトに対して把持操作を行うと、「小さい物体は摘まめるが掴めない」、「銃は掴めるが(引き金を操作させないために)摘まめない」といった、制作者の意図に基づく仮想オブジェクトの挙動を実現することができる。また、ユーザは、ARコンテンツや仮想オブジェクトの属性に関して正確な知識を持たなくても、制作者が意図した通りの適切な把持操作を仮想オブジェクトに対して行うことができる。
 本実施形態に係るARシステム100では、手位置検出部111と手指姿勢認識部112と手指ジェスチャ認識部113を備えたコントローラ110が、ユーザの手の甲に設置されている。したがって、アプリケーション実行部1401は、手位置検出部111によって検出された手の位置情報と、手指姿勢認識部112及び手指ジェスチャ認識部113による認識結果に基づいて、ユーザが操作しようとしている仮想オブジェクトと把持しようとしている位置を特定するとともに、その仮想オブジェクトに対する把持操作の種類(精密把持又は握力把持のいずれであるか)を判定することができる。そして、アプリケーション実行部1401は、仮想オブジェクトに対してあらかじめ属性が設定されている属性(摘まめるか否か、掴めるか否か)に基づいて、仮想オブジェクトの挙動を制御する。また、出力制御部1403は、把持操作が行われる仮想オブジェクトの映像を、表示部131(又はARグラス)に表示出力する。
 例えば、「剣」という仮想オブジェクトに対しては、「摘まむ」及び「掴む」の両方に対して「可」という属性があらかじめ設定されている。剣を摘まむ場合、手と剣身の任意の接触位置で剣を摘まむことができる(図19を参照のこと)。他方、剣を掴む場合、柄などの持ち手の部分に沿うように掴むことができる(図20を参照のこと)。
 したがって、アプリケーション実行部1401は、コントローラ110を通じてユーザが剣を摘まむ手指ジェスチャを認識すると、手と剣身の任意の接触位置で剣を摘まむ挙動を制御する。そして、アプリケーション実行部1401は、ユーザの手指で摘まれた以降の剣の動きを、手の位置と手指の姿勢に基づいて生成して、表示部131(ARグラス)に表示させる。
 また、アプリケーション実行部1401は、コントローラ110を通じてユーザが親指と人差し指で剣を掴む手指ジェスチャを認識すると、剣の柄の部分を掴む挙動を制御する。そして、アプリケーション実行部1401は、ユーザがすべての指で剣の柄の部分が掴まれた以降の剣の動きを、手の位置と手指の姿勢に基づいて生成して、表示部131(ARグラス)に表示させる。
 このような仮想オブジェクトの挙動制御によって、現実の作法に近い方法又はコンテンツの制作者の意図に近い方法で、ユーザのハンドインタラクションに応じた仮想オブジェクトの挙動を実現することができるようになる。また、ARゲームなどのコンテンツ制作においては、仮想オブジェクトの直接操作を行うシーンで、同じ仮想オブジェクトに対してユーザの把持操作の種類に応じた異なる挙動を実現することができる。
D-1.仮想オブジェクトの属性
 実空間では精密把持、握力把持、中間把持を始め、数多の把持操作がある。本開示に係るARシステム100でも、多種類の把持操作に対応して、ユーザが現実の作法に近い方法又はコンテンツの制作者の意図に近い方法で、ユーザのハンドインタラクションに応じた仮想オブジェクトの挙動を実現することができるようにすることができる。
 本開示に係るARシステム100では、仮想オブジェクトの属性として、各把持操作が可能であるか否かをあらかじめ設定しておく。但し、以下では、説明の簡素化のため、精密把持(摘まむ)と握力把持(掴む)の2種類に把持操作に限定して、仮想オブジェクトの属性を以下のように設定する。
(1)摘まめるか否か
(2)掴めるか否か
 図21には、仮想オブジェクト毎に上記の属性をあらかじめ設定した例を示している。同図において、「○」は該当する把持操作が「可(又は、許可)」という属性を表し、「×」は該当する把持操作が「否(又は、禁止)」という属性を表す。図示の属性設定によれば、「アイコン」や「Window」などの抽象的な仮想オブジェクトは、摘まむことも掴むこともできる。また、「トランプ」のように手の大きさに比べて小さい物体は、摘まむことはできるが、掴むことはできない。また、「銃」や「ラケット」など、把持方法を限定したい物体(例えば、コンテンツの制作者がユーザに掴ませたい物体)は、摘まむことはできないが、掴むことができる。「銃」の仮想オブジェクトは、把持操作が限定される(銃把を把持した後に指で引き金を引かせる)物体であり、摘まめないが掴むことができる。また、「水」などの液体の仮想オブジェクトは、摘まむことも掴むこともできない。したがって、図21に示す属性設定によれば、ユーザは、現実の作法に近い方法でこれらの仮想オブジェクトの把持操作を指定しておくことができる。
 なお、「○」すなわち「可」という属性が設定された把持操作に関しては、その把持操作を実施したときの仮想オブジェクトの挙動も併せて設定することができる。図21では、図面の簡素化のため、仮想オブジェクト毎の各把持操作の属性を「○」と「×」のみで示し、挙動に関する記述は省略している。
 また、図21では省略したが、精密把持と握力把持がともに可能でありながら、把持操作毎に(精密把持したときと握力把持したときとで)挙動が異なる仮想オブジェクトもある。現実の物体でも、摘まむときと掴むときとで意図する行為が異なる場合があるからである。例えば、把持対象となる仮想オブジェクトがティッシュケースの場合、摘まむときにはティシュ1枚を摘まむ挙動となるが、掴むときにはティッシュケース自体を掴む(又は、掴んで持ち上げる)挙動となる。したがって、ARシステム100は、仮想オブジェクトの属性として、各把持操作が可能であるかに加えて、可能な把持操作毎に挙動を設定しておくようにしてもよい。このようにすれば、ユーザが仮想オブジェクトに対してある把持操作で把持したときに、現実の作法に近く、且つユーザが意図した通りの仮想オブジェクトの挙動に切り替えることができる。
 本開示に係るARシステム100では、仮想オブジェクト毎に各把持操作の可否に関する属性をあらかじめ設定することを想定している。但し、特定の仮想オブジェクトに対しては、把持前と把持後で属性値が変化するような設定であってもよい。例えば、「拳銃」の仮想オブジェクトに対して、(銃把を)掴む前は(引き金を)摘まむことはできないが、(銃把を)掴んだ後は(引き金を)摘まむことができ、且つ、「(引き金を)摘まむ」という把持操作に対して「銃を撃つ」という挙動が「可」という属性をさらに設定することで、現実の作法に近く、且つユーザが意図した通りの仮想オブジェクトの挙動に切り替えることができる。また、時間の経過とともに属性値が変化するような、仮想オブジェクトの属性を設定するようにしてもよい。
D-2.仮想オブジェクトの属性の設定方法
 各仮想オブジェクトにどのような属性を設定するかは、基本的には、ARシステム100の設計者や、ARシステム100で利用するARコンテンツの制作者が手動で決定することを想定している。
 但し、現実の対応する物体の形状や大きさなどの物理特性や用途などのデータを取得できる仮想オブジェクトに関しては、そのようなデータに基づいて仮想オブジェクトの属性を自動的に設定するようにしてもよい。何故ならば、ARシステム100で扱う仮想オブジェクトの種類が多数になると、システムの設計者やコンテンツの制作者がすべての仮想オブジェクトの属性を手動で設定することは、煩わしく、システム設計やコンテンツ制作のコストも大きいからである。すなわち、物理特性や用途などのデータに基づいて仮想オブジェクトの属性を自動設定することにより、システム設計やコンテンツ制作のコストを削減することができる。
 仮想オブジェクトの属性を自動的に設定する方法は、現実の対応する物体に関するデータを解析するアルゴリズムに従って属性を生成する方法であってもよい。例えば、幅が3cm以下の仮想オブジェクトであれば、摘まめるが掴めない属性を自動的に設定するなどの処理を行うアルゴリズムを使用してもよい。
 また、仮想オブジェクトの属性を自動的に設定する方法は、ユーザの情報に基づいて、仮想オブジェクトの属性を設定するルールを変更することが可能なアルゴリズムを用いる方法であってもよい。例えば、ユーザの年齢(幼児、成人、老人)、手の大きさ、人種、身体の損傷、ユーザの日常行っている把持操作によって、仮想オブジェクトの属性を設定するルールを変更するようにしてもよい。同じ物体であっても、ユーザ毎に最適な把持操作が異なる場合があるからである。例えば、ユーザが手の小さな幼児であれば、幅が3cm以下の物体であっても、摘まむよりも掴む把持操作が適しているので、「掴む」に対して「可」という属性を自動的に設定することができる。
 また、仮想オブジェクトの属性を自動的に設定する方法は、深層学習により事前学習された機械学習モデルを用いて仮想オブジェクトの属性を推定する方法であってもよい。例えば、現実の対応するデータや、ユーザの情報から、仮想オブジェクト毎の把持操作に関する最適な属性を推定するように、深層学習により事前学習が行われた機械学習モデルを用いる。
D-3.把持操作に応じた挙動の変化
 把持操作毎に挙動が異なる仮想オブジェクトがある(前述)。把持操作による挙動の変化は、把持対象となる仮想オブジェクトが存在しなくても有効な場合がある。例えば、仮想オブジェクトが存在しない領域を、ユーザが精密把持する場合と握力把持する場合とで、仮想空間の挙動を変化させるようにしてもよい。
 アプリケーション実行部1401は、仮想空間に配置した仮想オブジェクトの位置を把握している。また、アプリケーション実行部1401は、ユーザの手の甲に設置したコントローラ110を通じてユーザの手の位置を検出して、その位置に仮想オブジェクトが存在しないことを認識することができる。さらに、アプリケーション実行部1401は、コントローラ110を通じて、その位置でユーザの手指が精密把持や握力把持などのジェスチャを行ったことを認識することができる。そして、アプリケーション実行部1401は、仮想オブジェクトが存在しない領域に対してユーザが掴む操作を行なったときと摘まむ操作を行ったときで、異なる挙動を実行する。
 アプリケーション実行部1401は、仮想オブジェクトが存在しない領域に対するユーザの把持操作に基づいて、仮想空間におけるUI(User Interface)の表示を切り替えるようにしてもよい。例えば、アプリケーション実行部1401は、仮想オブジェクトが存在しない領域に対してユーザが掴む操作を行なうと、指先からポインタを表示させる(図22を参照のこと)。続いて、アプリケーション実行部1401は、仮想オブジェクトが存在しない領域に対してユーザが摘まむ操作を行うと(図23を参照のこと)、指先のポインタが指し示す先を選択する。
E.把持操作のトリガー
 本開示に係るARシステム100では、ユーザの手が仮想オブジェクトに接近した際に、その仮想オブジェクトの属性が許容する把持操作をユーザが行うと、その把持操作に応じた仮想オブジェクトの挙動が発動する。しかしながら、ユーザは、仮想オブジェクトを把持しようとして手を近付けた訳ではなく、たまたま手の位置が仮想オブジェクトに近くなったときに手指を動かすことなどもある。ユーザが仮想オブジェクトを把持する意図がないのに、把持操作に応じた仮想オブジェクトの挙動が発動してしまう。
 そこで、ユーザの手が仮想オブジェクトに接近した際に、ユーザが対象とする仮想オブジェクトを見ていること、あるいはユーザが対象とする仮想オブジェクトに関心を持っていることを、把持操作に応じた仮想オブジェクトの挙動を発動させる条件に加えてもよい。現実の物体を把持する際の作法として、把持対象物を見ることなく把持することは極めて稀である。したがって、ユーザが仮想オブジェクトを見ていることを挙動発動の条件とすることは、現実の作法に近く、妥当であると考えられる。また、このような条件を加えることで、ユーザが仮想オブジェクトを見ていない場合に把持操作が認識されたことにより、ユーザの意図と異なる仮想オブジェクトの挙動が発動することを防ぐことができる。
 アプリケーション実行部1401は、例えば内向きカメラ122の撮影画像からユーザの視線方向を検出して、ユーザが仮想オブジェクトを見ているかどうかを判定することができる。あるいは、アプリケーション実行部1401は、コントローラ110や頭部センサ部120のセンサ情報から、深層学習により事前学習された機械学習モデルを用いてユーザの仮想オブジェクトに対する関心度を推定できるようにしてもよい。このため、コントローラ110や頭部センサ部120は、生体センサなど図5に示した以外のセンサを装備していてもよい。そして、アプリケーション実行部1401は、ユーザが対象とする仮想オブジェクトを見ている、あるいはユーザが対象とする仮想オブジェクトに関心を持っているという条件が満たされるときに、ユーザが仮想オブジェクトの属性が許容する把持操作を行ったことを認識すると、その仮想オブジェクトの把持操作に応じた挙動を発動して、仮想オブジェクトの挙動を表示部131(ARグラス)で表示する。
F.属性に基づく仮想オブジェクトの挙動制御
 図24には、本開示に係るARシステム100において、仮想オブジェクトにあらかじめ設定された各把持操作の属性に基づいて、ユーザによる把持操作に対する仮想オブジェクトの挙動を実現するための処理手順をフローチャートの形式で示している。この処理手順は、例えばアプリケーション実行部1401が主体となって実施される。
 まず、アプリケーション実行部1401は、コントローラ110を通じて、ユーザの手の位置の検出結果と、手指の姿勢及び手指のジェスチャの認識結果を取得する(ステップS2401)。アプリケーション実行部1401は、表示部131で表示中の仮想オブジェクトと、この仮想オブジェクトを把持しようとしているユーザの手との相対位置、並びに手指の姿勢と手指のジェスチャを常時モニタするものとする。
 そして、アプリケーション実行部1401は、ステップS2401で取得した結果に基づいて、ユーザが把持の対象としている仮想オブジェクトを特定するとともに、ユーザがその仮想オブジェクトに対して行おうとしている把持操作を判定すると、その仮想オブジェクトに対してあらかじめ設定された属性に適合する把持操作であるかどうかを判定する(ステップS2402)。なお、ステップS2402では、属性の適否を判定することに加えて、ユーザが仮想オブジェクトを見ていること又は仮想オブジェクトに関心を持っていること、すなわちその仮想オブジェクトの挙動を発動させる条件を満たすか否かを判定するようにしてもよい。
 ここで、ユーザが仮想オブジェクトに対して行った操作が仮想オブジェクトの属性に適合しない場合(又は、仮想オブジェクトの挙動を発動させる条件を満たしていない場合)には(ステップS2402のNo)、アプリケーション実行部1401は、ユーザは仮想オブジェクトを把持操作していないとして、ステップS2401に戻り、引き続き、ユーザの手の位置、手指の姿勢、手指のジェスチャの取得を行う。
 一方、ユーザの手指の操作が仮想オブジェクトの属性に適合する場合には(ステップS2402のYes)、アプリケーション実行部1401は、仮想オブジェクトの属性に基づいて、仮想オブジェクトが把持操作されたときの挙動を生成する(ステップS2403)。
 そして、アプリケーション実行部1401は、ステップS2403で生成する挙動に従って動作する仮想オブジェクトをレンダリングして、仮想空間すなわち表示部131(ARグラス)に表示させて(ステップS2404)、ユーザに自分が把持操作する仮想オブジェクトの挙動を提示する。
G.遠隔システムへの適用
 例えば、マスタ側でオペレータがコントローラを操作することによって、スレーブ側で出力端のロボットを駆動して遠隔作業を行うマスタスレーブシステムが知られている。遠隔作業は、遠隔手術や遠隔工事など、さまざまな産業に導入されている。
 マスタスレーブシステムでは、オペレータは手元にない物体を、遠隔のロボットで摘まむ又は掴むといった操作を行うことが想定される。マスタスレーブシステムにおいてオペレータが行う遠隔操作は、ARシステム100においてユーザがARグラス越しに仮想オブジェクトを指で摘まむ又は掴む操作と同等であり、本開示を適用することができる。
 マスタスレーブシステムでは、仮想オブジェクトではなく、遠隔地に設置された現実の物体が把持の対象となる。ARシステム100では、仮想オブジェクトに対する複数種類の把持操作を定義するとともに、仮想オブジェクト毎に各把持操作の可否に関する属性をあらかじめ設定することができる。そして、ユーザがある仮想オブジェクトに対して「可」という属性が設定された把持操作を行うと、その把持操作に応じた仮想オブジェクトの挙動が発動する。一方、マスタスレーブシステムでは、スレーブ側で実施できる把持操作を定義するとともに、遠隔地で把持の対象となる物体毎に各把持操作の可否に関する属性をあらかじめ設定する。例えば、物体毎に、「手の大きさに比べて小さい物体は、摘まむことはできるが、掴むことはできない」といった、現実的な把持操作を「可」とする属性があらかじめ設定される。そして、マスタ側から、スレーブ側に配置されたある物体に対して「可」という属性が設定された把持操作を指示すると、物体の把持操作を発動するようにスレーブがその物体を把持操作するように遠隔制御が行われる。したがって、ユーザは、遠隔の物体を直接触れることはできず、カメラの撮影映像で観察することしかできなくても、スレーブを使って現実的な方法で遠隔の物体を把持することができる。
 図25には、本開示が適用される遠隔操作システム2500の構成例を示している。図示の遠隔操作システム2500は、オペレータが操作するマスタ装置2510と、遠隔操作の対象となるロボット2521を含むスレーブ装置2520で構成される。
 マスタ装置2510は、コントローラ2511と、表示部2512と、マスタ制御部2513と、通信部2514を備えている。
 コントローラ2511は、オペレータが、スレーブ装置2520側のロボット2521を遠隔操作するためのコマンドを入力するために使用する。本実施形態では、コントローラ2511は、図5に示したようなオペレータの手に装着して用いられ、オペレータの手指の位置姿勢や手指のジェスチャをロボット2521に対する操作コマンドとして入力するデバイスであることを想定している。但し、コントローラ2511は、オペレータの手を撮影するカメラなどでもよく、手の撮影画像からオペレータの手指の位置姿勢や手指のジェスチャを画像認識するようにしてもよい。
 表示部2512は、例えばARグラスで構成されるが、液晶ディスプレイなどの一般的な表示装置であってもよい。マスタ制御部2513による制御に従って、オペレータの手指が映し出された実空間上に仮想オブジェクトを表示する。ここで言う仮想オブジェクトは、遠隔操作されるロボット2521が把持しようとしている遠隔の実在する物体に対応する仮想オブジェクトである。仮想オブジェクトは、オペレータの手との相対位置がロボット2521と物体との相対位置と一致する場所に表示される。
 マスタ制御部2513は、通信部2514を介してスレーブ装置2520から、ロボット2521による遠隔の物体の操作状況をカメラ2522で撮影した画像を受信する。そして、マスタ制御部2513は、オペレータの手指が映し出された実空間上に仮想オブジェクトを表示するように、表示部2512を制御する。また、マスタ制御部2513は、スレーブ装置2520から受信したカメラ画像も表示するように、表示部2512を制御するようにしてもよい。
 ここで言う仮想オブジェクトは、遠隔操作されるロボット2521が把持しようとしている遠隔の実在する物体に対応する仮想オブジェクトである。仮想オブジェクトは、オペレータの手との相対位置がロボット2521と物体との相対位置と一致する場所に配置される。
 仮想オブジェクトには、各把持操作の可否に関する属性があらかじめ設定されている。例えば、仮想オブジェクトの属性は、対応する遠隔の物体の現実的な把持操作に基づいて設定される。あるいは、遠隔操作システム2500の設計者が意図する物体の把持操作に基づいて、仮想オブジェクトの各把持操作の可否に関する属性が設定される。
 マスタ制御部2513は、オペレータが仮想オブジェクトを把持操作するときのユーザの手の位置、手指の姿勢、及び手指が行うジェスチャの情報を、手の甲に設置したコントローラ2511を通じて取得する。そして、マスタ制御部2513は、オペレータの把持操作がその仮想オブジェクトにあらかじめ設定されている属性に適合する場合には、コントローラ2511を通じて取得したオペレータの手指の位置姿勢や手指のジェスチャを、ロボット2521を遠隔操作するための操作コマンドに変換して、通信部2514を介して操作コマンドをスレーブ装置2520に送信する。
 通信部2514は、スレーブ装置2520側と相互接続するための機能モジュールである。マスタ装置2510とスレーブ装置2520間の通信メディアは、有線又は無線のいずれであってもよく、また特定の通信規格に限定されない。
 スレーブ装置2520は、ロボット2521と、カメラ2522と、スレーブ制御部2523と、通信部2524を備えている。スレーブ装置2520は、通信部2524を介してマスタ装置2510側と相互接続しており、マスタ装置2510からロボット2521の操作コマンドを受信したり、カメラ2522の撮影画像をマスタ装置2510に送信したりする。
 マスタ装置2510から送られてくる操作コマンドは、オペレータの手指の位置姿勢や手指のジェスチャに従ってロボット2521を駆動するためのコマンドである。スレーブ制御部2523は、マスタ装置2520から受信した操作コマンドを解釈して、ロボット2521がオペレータの手指の位置姿勢や手指のジェスチャ(すなわち、オペレータが仮想オブジェクトに対して行った把持操作)を再現するように、ロボット2521の駆動を制御して、物体の把持操作を実施する。図26には、マスタ装置2510側でオペレータが自分の手を仮想オブジェクトに接近しながら把持しようとしている様子を示している。図27には、スレーブ装置2520側で、ロボット2521がオペレータの手の動きに追従するように、現実の物体に接近しながら把持しようとしている様子を示している。
 カメラ2522は、ロボット2521による物体の操作状況を撮影する。スレーブ制御部2523は、カメラ2522の撮影画像を符号化して、所定の伝送フォーマットで通信部2524からマスタ装置2510に送信するように制御する。上述したように、マスタ装置2510側では、表示部2512が、オペレータの手指が映し出された実空間上に、物体に対応する仮想オブジェクトを表示する。仮想オブジェクトは、オペレータの手との相対位置が、ロボット2521と物体との相対位置と一致する場所に配置される。
 したがって、本開示を適用した遠隔操作システム2500によれば、マスタ装置2510側のオペレータは、スレーブ装置2520側に存在する遠隔の物体を直接触れることはできず、カメラ2522の撮影画像で観察することができなくても、遠隔の物体に対する現実的な把持操作によるロボット2521の動作を指示することができる。
 図28には、本開示を適用した遠隔操作システム2500において、オペレータが遠隔の物体を把持操作するための処理手順をフローチャートの形式で示している。
 マスタ装置2510は、スレーブ装置2520からカメラ2522の撮影映像を受信すると(S2801)、表示部2512はオペレータの手指が映し出された実空間上に、操作対象となる遠隔の物体に対応する仮想オブジェクトを表示する(ステップS2802)。
 マスタ制御部2513は、コントローラ2511を通じて、オペレータの手の位置の検出結果と、手指の姿勢及び手指のジェスチャの認識結果を取得する(ステップS2803)。マスタ制御部2513は、表示部2512で表示中の仮想オブジェクトと、この仮想オブジェクトを把持しようとするオペレータの手との相対位置、並びに手指の姿勢と手指のジェスチャを常時モニタするものとする。
 そして、マスタ制御部2513は、ステップS2803で取得した結果に基づいて、オペレータが仮想オブジェクトに対して行おうとしている把持操作を認識すると、その仮想オブジェクトに対してあらかじめ設定された属性に適合する把持操作であるかどうかを判定する(ステップS2804)。仮想オブジェクトには、遠隔の物体に許容される現実的な把持操作に対応する属性があらかじめ設定されている。
 ここで、オペレータが仮想オブジェクトに対して行った操作が仮想オブジェクトの属性に適合しない場合には(ステップS2804のNo)、マスタ制御部2513は、オペレータは仮想オブジェクトを把持操作していないとして、ステップS2801に戻り、スレーブ装置2520からのカメラの撮影映像の受信、表示部2512における仮想オブジェクトの表示の更新を行う。
 一方、オペレータの手指の操作が仮想オブジェクトの属性に適合する場合には(ステップS2804のYes)、マスタ制御部2513は、仮想オブジェクトの属性に基づいて、仮想オブジェクトが把持されたときの挙動を生成して、生成した挙動に従って動作する仮想オブジェクトを表示部2512に表示させる(ステップS2805)。
 また、マスタ制御部2513は、コントローラ2511を通じて取得したオペレータの手指の位置姿勢や手指のジェスチャを、ロボット2521を遠隔操作するための操作コマンドに変換して、通信部2514を介して操作コマンドをスレーブ装置2520に送信する(ステップS2806)。スレーブ装置2520側では、スレーブ制御部2523が、マスタ装置2520から受信した操作コマンドを解釈して、ロボット2521がオペレータの手指の位置姿勢や手指のジェスチャ(すなわち、オペレータが仮想オブジェクトに対して行った把持操作)を再現するように、ロボット2521の駆動を制御して、物体の把持操作を実施する(ステップS2807)。
 遠隔操作システム2500において、図28に示す処理手順を実行することによって、マスタ装置2510側のオペレータは、スレーブ装置2520側に存在する遠隔の物体を直接触れることはできず、カメラ2522の撮影画像で観察することができなくても、表示部2512に表示される仮想オブジェクトに対する把持操作を通じて、遠隔の物体に対する現実的な把持操作によるロボット2521の動作を指示することができる。
H.握力把持の操作に対する仮想オブジェクトの位置姿勢制御
 本開示では、仮想オブジェクトに対する精密把持と握力把持を含む2種類以上の把持操作を定義し、仮想オブジェクト毎に各把持操作の可否に関する属性をあらかじめ設定することができる。そして、ARシステム100は、仮想オブジェクトに対してユーザによる把持操作が行われると、その仮想オブジェクトに対して設定された属性に従って仮想オブジェクトの挙動を制御することができる。
 実在しない仮想オブジェクトを把持すると、手指がすり抜けてしまう。このため、ユーザは所望の位置で仮想オブジェクトを把持することが難しい場合がある。そこで、握る位置が決まっている仮想オブジェクトについては、握力把持、すなわちユーザが掴む操作を実施したときに、握る位置がユーザの手に沿うように、仮想オブジェクトの位置姿勢を変化させる挙動を実施するようにしてもよい。このような仮想オブジェクトの位置姿勢の変化により、仮想オブジェクトの握る位置がユーザの手に吸い付くようにして把持することができるので、本明細書ではこの処理のことを「吸着処理」又は「スナップ処理」とも呼ぶ。仮想オブジェクトの属性として、各把持操作の可否に関する情報に加えて、握力把持が可能な場合には吸着処理の可否も設定するようにすればよい。
 図29には、吸着処理の可否も含めて仮想オブジェクト毎に属性をあらかじめ設定した例を示している。同図において、「○」は「可」という属性を表し、「×」は「否」という属性を表す。図示の属性設定によれば、「銃」や「ラケット」などの把持操作を「握力把持」に限定したい仮想オブジェクトについては、握力把持(掴むこと)が「可」という属性が設定されており、さらに吸着処理が「可」という属性が設定されている。一方、「アイコン」や「Window」などの抽象的な仮想オブジェクトについても、把持する位置を含め、把持操作を限定する必要がないので、精密把持と握力把持の両方に対して「可」という属性が設定されるとともに、吸着処理が「否」という属性が設定されている。
 アプリケーション実行部1401は、仮想空間に配置した仮想オブジェクトの位置を把握している。また、アプリケーション実行部1401は、ユーザの手の甲に設置したコントローラ110を通じて、ユーザの手の位置を検出し、手指の姿勢並びに手指のジェスチャを認識することができる。例えば、アプリケーション実行部1401は、ユーザの手の位置と手指の姿勢並びに手指のジェスチャに基づいて、ユーザがある仮想オブジェクトの握力把持を行おうとしていることを検知すると、その仮想オブジェクトに対して設定されている属性を参照して、掴むことが可能か否かを確認し、掴むことが可能な場合には、吸着処理が可能か否かをさらに確認する。そして、吸着処理が可能な仮想オブジェクトの場合には、アプリケーション実行部1401は、握る位置がユーザの手に沿うように、仮想オブジェクトの位置姿勢を変化させる。したがって、ユーザは、仮想オブジェクトを所望の位置で容易に把持することができる。
 図29に示したように、各把持操作の可否に加えて吸着処理の可否を含めた属性の設定が行われているので、アプリケーション実行部1401は、「銃を掴むと、人差し指で引き金を引ける位置姿勢になるように、自動で配置される」、「剣を掴むと、柄の部分が手に沿う位置姿勢になるように、自動で配置される」などの形で、握力把持に合わせた吸着処理を行うような仮想オブジェクトの挙動を実現することができる。これによって、ユーザは、各仮想オブジェクトの特性や用途に合わせた自然且つ合理的な把持操作を、少ない負荷で実現することができる。
 図29に示した属性の設定では、「銃」や「剣」、「ラケット」など掴む位置が一定となる仮想オブジェクトに対して、「握力把持(掴む)」が実施された際に吸着処理を行うことを想定している。図30には、仮想オブジェクトが「剣」の場合に、ユーザの手が剣の柄の部分に接近して掴もうとしたときに、柄がユーザの手に沿うように、剣の位置姿勢が変化する挙動を例示している。
 なお、上記の説明や図29では、「精密把持(摘まむ)」という把持操作に関する吸着処理の属性設定については省略した。但し、特定の位置で摘まむように仮想オブジェクトの属性を設定したい場合には、「精密把持(摘まむ)」という把持操作においても同様に吸着処理などの仮想オブジェクトの位置姿勢を変化させる挙動に関する属性を設定してもよい。これによって、摘まむ位置が決まっている仮想オブジェクトに対して、精密把持、すなわちユーザが摘まむ操作を行ったときに、仮想オブジェクトの挙動として、摘まむ位置がユーザの手に沿う吸着処理を行うことができる。ユーザが低負荷で仮想オブジェクトの所定の位置を摘まむことができるようになる。
 また、上記では、ユーザによる仮想オブジェクトの把持操作を補助又は支援するための挙動(位置姿勢制御)の1つとして吸着処理を挙げたが、把持操作に伴う処理として、例えば仮想オブジェクトの具体的な把持操作をガイドするUIの表示処理や、その他の処理も考えられる。したがって、仮想オブジェクトの属性として、吸着処理以外の把持操作に伴う挙動(位置姿勢制御)の可否を設定するようにしてもよい。
I.把持操作に応じたUI挙動
 本開示では、仮想オブジェクトに対する精密把持と握力把持を含む2種類以上の把持操作を定義し、各仮想オブジェクトに対して、各把持操作の可否に関する属性をあらかじめ設定することができる。そして、ARシステム100は、仮想オブジェクトに対してユーザによる把持操作が行われると、その仮想オブジェクトに対してあらかじめ設定された属性に従って仮想オブジェクトの挙動を制御することができる。
 また、ユーザが仮想オブジェクトに対して把持操作を行うときに、手がすり抜けてしまい、ユーザはリアリティのある触感が得られない。そこで、把持操作の際に、ユーザの視覚や聴覚、触覚を刺激するようなUI挙動を実施して、仮想オブジェクトを把持していることを直感的に理解できるようにしてもよい。視覚的なUI挙動は表示部131(ARグラス)を用いて行われる。また、聴覚的なUI挙動はスピーカー132を用いて行われる。また、触覚的なUI挙動は、手の甲に設置されたコントローラ110内の触覚フィードバック部114を用いて行われる。
 仮想オブジェクトに対する精密把持(摘まむ)と握力把持(掴む)を比較してみると、精密把持は指先のみを使う把持操作であるのに対し、握力把持は手指を含む手全体を使う把持操作である。例えば、ティシュやビー玉、小さな虫は指先を使って摘まむが、ペットボトルや剣、銃、ラケット、ボールは手全体を使って掴む。そこで、触覚フィードバック部114を使ったUI挙動として、精密把持のときには指先にのみ振動を提示し、握力把持のときには手指を含む手全体に振動を提示するようにしてもよい。仮想オブジェクト毎の属性に、把持操作毎に実施する触覚提示を用いたUI挙動を追加して設定するようにしてもよい。
 また、仮想オブジェクトに対する精密把持(摘まむ)と握力把持(掴む)のそれぞれの接触位置を比較してみる。摘まむ場合には、仮想オブジェクトの特定の接触位置を指で摘まむことになる。これに対し、掴む場合には、上記H項でも説明したように、柄などの持ち手の部分が掴もうとしているユーザの手に自動で沿うような仮想オブジェクトの挙動を通じて掴むことができる。同じ仮想オブジェクトであっても、把持操作毎に把持可能位置が異なる場合がある。そこで、ユーザの手が仮想オブジェクトに接近した際に、ユーザが行おうとしている把持操作に応じて、仮想オブジェクトのUI挙動を変化させるようにしてもよい。
 例えば、仮想オブジェクトの属性として、把持操作毎の可否に加えて、可能な把持操作に対する把持可能位置の情報を設定しておく。もちろん、上記H項で説明したように、把持操作に伴う仮想オブジェクトの挙動(吸着処理など)の可否(又は、部位毎の各把持操作の可否)も属性として設定するようにしてもよい。このような場合、ユーザの手が、仮想オブジェクトに対して、属性「可」が設定された把持操作で接近した際に、接近した場所が属性により把持可能位置に設定されていれば仮想オブジェクトのUI挙動を変化させるが、把持可能位置以外の場所に接近したときには仮想オブジェクトのUI挙動を変化させない。これによって、ユーザは仮想オブジェクトの把持可能領域を直感的に理解できるようになる。
 図31には、把持可能領域も含めて仮想オブジェクト毎に属性をあらかじめ設定した例を示している。同図において、「○」は「可」という属性を表し、「×」は「否」という属性を表す。また、「可」という属性が設定された把持操作については、把持可能領域をさらに設定することができる。複数の把持操作について「可」という属性が設定されている仮想オブジェクトには、把持操作毎に異なる把持可能領域を設定してもよいし、複数の把持操作に対して同じ把持可能領域を設定してもよい。また、把持操作毎に異なる複数の把持可能領域を設定する場合には、複数の把持可能領域の間(又は、複数の把持操作の間)で優先順位を設定できるようにしてもよい。また、図31では図示を省略したが、仮想オブジェクト毎に、吸着処理などの把持操作に伴う処理の可否も含めるようにして属性を設定できるようにしてもよい。例えば、精密把持に対して第1の把持可能領域、第2の把持可能領域の順に優先順位を含めた属性が設定されている場合、第1の把持可能領域と第2の把持可能領域の中間付近でユーザが仮想オブジェクトを摘まむジェスチャを行うと、第1の把持可能領域でユーザの指に吸着するような仮想オブジェクトの挙動を実現することができる。
 アプリケーション実行部1401は、仮想空間に配置した仮想オブジェクトの位置を把握している。また、アプリケーション実行部1401は、ユーザの手の甲に設置したコントローラ110を通じて、ユーザの手の位置を検出し、手指の姿勢並びに手指のジェスチャを認識することができる。したがって、アプリケーション実行部1401は、ユーザの手の位置と手指の姿勢並びに手指のジェスチャに基づいて、ユーザが仮想オブジェクトに接近していずれの把持操作により把持しようとしているのかを検知すると、その仮想オブジェクトに対して設定された属性を参照して、その把持操作で把持することが可能か否かを確認し、可能な把持操作であればその把持操作による把持可能位置が設定されているか否かをさらに確認する。そして、仮想オブジェクトの把持可能領域に接近している場合には、アプリケーション実行部1401は、仮想オブジェクトのUI挙動を変化させる。したがって、ユーザは、ARグラス越しに観察する仮想オブジェクトのUI挙動から、仮想オブジェクトの把持可能領域を直感的に理解することができる。
 なお、この項では説明の便宜上、ユーザの手と仮想オブジェクトの距離として、「接近」、「接触」、「めり込み」の3つの状態を定義する。図32には、「接近」、「接触」、「めり込み」の3つの状態を示している。「接近」は、ユーザの手と仮想オブジェクトとの最短距離が所定値以下になった状態である。「接触」は、ユーザの手と仮想オブジェクトとの最短距離が0になった状態である。「めり込み」は、ユーザの手が仮想オブジェクトの領域に干渉している状態である。
 また、ユーザの手が仮想オブジェクトに接近しているときの手指のジェスチャとして、「摘まもうとしている」(図33を参照のこと)、「掴もうとしている」(図34を参照のこと)、「把持しようとしていない」(図35を参照のこと)の3種類のジェスチャを想定する。アプリケーション実行部1401は、ユーザの手の甲に設置されたコントローラ110を通じて、ユーザの手が仮想オブジェクトに接近していることを検知し、そのときの手指のジェスチャが上記3種類のうちいずれであるかを認識することができる。「摘まむ」又は「掴む」など把持しようとしているユーザの手が仮想オブジェクトに接近してきたときに、仮想オブジェクトのUI挙動を変化させる。一方、把持しようとしていないユーザの手が仮想オブジェクトに接近してきても、把持操作が行われない見込みであるため、仮想オブジェクトのUI挙動を変化させない。
 仮想オブジェクトのUI挙動の変化は、例えば把持しようとしているユーザの手が接近してきた仮想オブジェクトをハイライト表示に切り替えることであってもよい。図36及び図37には、摘まもうとしているユーザの手が立方体の仮想オブジェクトに接近したときに、仮想オブジェクトを通常表示からハイライト表示に切り替える様子を示している。但し、図36及び図37に示す例では、ユーザは仮想オブジェクトのいずれの場所でも摘まむことができる。すなわち、仮想オブジェクト全体が把持可能領域であることを想定しており、ユーザの手が接近したことにより、仮想オブジェクト全体をハイライト表示に切り替えている。
 また、図38及び図39には、把持しようとしていないユーザの手が、仮想オブジェクトに接近している例を示している。把持しようとしていないユーザの手が仮想オブジェクトに接近してきても、把持操作が行われない見込みであるため、仮想オブジェクトのUI挙動を変化させない
 図40及び図41には、「卓球のラケット」の仮想オブジェクトに、把持しようとしているユーザの手が接近しているときのUI挙動の例を示している。「卓球のラケット」には、精密把持(摘まむ)及び握力把持(掴む)のいずれの把持操作に対しても「可」という属性があらかじめ設定されている。但し、摘まんで把持するときの把持可能領域はラケットのブレード部分であり、掴んで把持するときの把持可能領域はラケットのグリップ部分であるという属性がそれぞれ設定されている。
 したがって、図40に示すように、摘まもうとしているユーザの手が仮想オブジェクトに接近してきたときには、精密把持(摘まむ)に対する把持可能領域に設定されているラケットのブレード部分がハイライト表示に切り替わる。ユーザは、ARグラス越しにラケットのブレード部分のUI挙動を観察して、ブレード部分を摘まむことができることを直感的に理解することができる。他方、掴もうとしているユーザの手がラケットのブレード部分に接近しても(図示しない)、握力把持(掴む)に対して「可」という属性は設定されていないので、ブレード部分はハイライト表示には切り替わらない。したがって、ユーザはブレード部分を掴むことはできないことを直感的に理解することができる。
 また、図41に示すように、掴もうとしているユーザの手が仮想オブジェクトに接近してきたときには、握力把持(掴む)に対する把持可能領域に設定されているラケットのグリップ部分がハイライト表示に切り替わる。ユーザは、ARグラス越しにラケットのグリップ部分のUI挙動を観察して、グリップ部分を掴むことができることを直感的に理解することができる。他方、摘まもうとしているユーザの手がラケットのグリップ部分に接近しても(図示しない)、精密把持(摘まむ)に対して「可」という属性は設定されていないので、グリップ部分はハイライト表示には切り替わらない。したがって、ユーザはグリップ部分を摘まむことはできないことを直感的に理解することができる。
 また、図42に示すように、把持しようとしていないユーザの手が卓球のラケットの仮想オブジェクトに接近してきても、UI挙動は変化しない。
 また、仮想オブジェクトの属性として把持操作毎に異なる把持可能領域を設定する場合には、複数の把持可能領域の間で優先順位を設定してもよい。「卓球のラケット」の仮想オブジェクトの場合、図40及び図41に示したように、ブレード部分とグリップ部分の2箇所の把持可能領域が設定されている。通常のラケットの使用形態を考慮して、グリップ部分>ブレード部分という優先順位を設定することができる。ユーザの手が「卓球のラケット」に接近してきたときには、図43に示すように、ブレード部分よりもグリップ部分を強調表示する(図43では、強調の度合いを濃淡で表現している)。このように優先順位に基づいて各把持可能領域のUI挙動の変化を切り替えることによって、ユーザは、ブレード部分とグリップ部分を把持することができるが、グリップ部分を優先的に把持すべきことを直感的に理解することができる。
 なお、図36~図43に示した例では、ユーザが仮想オブジェクトの把持操作を行う前に把持操作を示すUI挙動を行うことを想定している。把持操作前のUI表示とは別に、把持操作が完了した後に、仮想オブジェクトを摘まむ又は掴む動作が完了したことができたことをユーザに示すためのUIを表示するようにしてもよい。このUI表示によって、ユーザは、把持操作を完了した後に、摘まむ又は掴むうちのどちらの動作を実施したかを直感的に理解することができる。
 また、例えば複数の仮想オブジェクトが散在する仮想空間でユーザが把持操作を実施した場合に、どの仮想オブジェクトが把持操作の対象であるかを判定する方法として、以下の2つを挙げることができる。
(1)摘まむという手指のジェスチャが認識された場合には、指先からの特定の距離内に含まれる仮想オブジェクトを把持操作の対象とする。
(2)掴むという手指のジェスチャが認識された場合には、手のひらからの特定の距離内に含まれる仮想オブジェクトを把持操作の対象とする。
 図44には、本開示に係るARシステム100において、仮想オブジェクトに対してあらかじめ設定された各把持操作の属性に基づいて、ユーザによる把持操作に対する仮想オブジェクトの挙動を実現するための処理手順をフローチャートの形式で示している。但し、同図に示す処理手順は、把持操作毎に把持可能領域が設定されており、ユーザが行おうとしている把持操作に応じて仮想オブジェクトの把持可能領域のUI挙動を変化させる処理を含む点で、図24に示した処理手順は相違する。この処理手順は、例えばアプリケーション実行部1401が主体となって実施される。
 まず、アプリケーション実行部1401は、コントローラ110を通じて、ユーザの手の位置の検出結果と、手指の姿勢及び手指のジェスチャの認識結果を取得する(ステップS4401)。アプリケーション実行部1401は、表示部131で表示中の仮想オブジェクトと、この仮想オブジェクトを把持しようとしているユーザの手との相対位置、並びに手指の姿勢と手指のジェスチャを常時モニタするものとする。
 そして、アプリケーション実行部1401は、ステップS4401で取得した結果に基づいて、ユーザが把持の対象としている仮想オブジェクトを特定するとともに、ユーザが行おうとしている把持操作を認識すると、その仮想オブジェクトに対してあらかじめ設定された属性に適合する把持操作であるかどうかを判定する(ステップS4402)。なお、ステップS4402では、属性の適合を判定することに加えて、ユーザが仮想オブジェクトを見ていること又は仮想オブジェクトに関心を持っていること(すなわち、その仮想オブジェクトの挙動を発動させる条件を満たすか否か)を判定するようにしてもよい。
 ここで、ユーザが仮想オブジェクトに対して行った操作が仮想オブジェクトの属性に適合しない場合には(ステップS4402のNo)、アプリケーション実行部1401は、ユーザは仮想オブジェクトを把持操作していないとして、ステップS4401に戻り、引き続き、ユーザの手の位置、手指の姿勢、手指のジェスチャの取得を行う。
 一方、ユーザの手指の操作が仮想オブジェクトの属性に適合する場合には(ステップS4402のYes)、アプリケーション実行部1401は、ステップS4401で取得した手指のジェスチャすなわち把持操作に対して把持可能領域の属性が設定されているかどうかをさらにチェックする(ステップS4403)。
 ユーザが行っている把持操作に対する把持可能領域の属性が設定されている場合には(ステップS4403のYes)、アプリケーション実行部1401は、仮想オブジェクトの把持可能領域におけるUI挙動を変化させる処理を行う(ステップS4404)。仮想オブジェクトのUI挙動を変化させる処理として、例えば仮想オブジェクトの把持可能領域をハイライト表示に切り替える。
 ユーザは、仮想オブジェクトのUI挙動の変化により、把持可能領域を直感的に理解して、正しい位置で仮想オブジェクトを把持することができる。アプリケーション実行部1401は、仮想オブジェクトの属性に基づいて、仮想オブジェクトが把持操作されたときの挙動を生成する(ステップS4405)。
 次いで、アプリケーション実行部2401は、ステップS4405で生成する挙動に従って動作する仮想オブジェクトをレンダリングして、表示部131(ARグラス)に表示させて(ステップS4406)、ユーザに自分が把持操作する仮想オブジェクトの挙動を提示する。
 なお、図44では省略したが、アプリケーション実行部1401は、把持操作が完了した後に、仮想オブジェクトを摘まむ又は掴む動作が完了したことができたことをユーザに示すためのUI表示を制御するようにしてもよい。
J.仮想オブジェクトに対する各種ハンドインタラクション
 上記では、仮想オブジェクトに対するユーザのハンドインタラクションとして主に把持操作に着目し、仮想オブジェクトに対する複数の把持操作(例えば、精密把持と握力把持)を定義し、仮想オブジェクト毎に各把持操作の属性と挙動をあらかじめ設定した実施形態について説明してきた。仮想オブジェクトに対してユーザが行うハンドインタラクションは、把持操作以外にもさまざまな例を挙げることができる。本開示によれば、把持操作に限定せず、仮想オブジェクトに対するハンドインタラクション全般に拡張して、仮想オブジェクト毎に各ハンドインタラクションの可否に関する属性をあらかじめ設定しておくことにより、ある仮想オブジェクトに対してユーザのハンドインタラクションが行われたときに、あらかじめ設定された属性に基づいてその仮想オブジェクトの挙動を制御することができる。
 これまでの説明では、アプリケーション実行部1401は、コントローラ110を通じて取得されるユーザの手の位置や手指の姿勢に基づいて、ユーザが仮想オブジェクトに対して行おうとしている把持操作(精密把持又は握力把持のいずれであるか)を認識するようにしていた。これに対し、ユーザがハンドインタラクションの対象としている仮想オブジェクトに対する手の相対位置が変化する角度や速度の違いにもさらに着目することによって、「押す」、「つぶす」、「叩く」、「触れる」といった把持操作以外のハンドインタラクションを認識することができる。
 したがって、本開示に係るARシステム100は、手指の位置変化の角度や速度の違いに基づいて認識可能となる「押す」、「つぶす」、「叩く」、「触れる」といった把持操作以外のハンドインタラクションについても、仮想オブジェクト毎に可否に関する属性をあらかじめ設定しておくことにより、ある仮想オブジェクトに対してユーザが「押す」、「つぶす」、「叩く」、「触れる」のうちいずれかのハンドインタラクションが行ったときに、あらかじめ設定された属性に基づいてハンドインタラクションに対する仮想オブジェクトの挙動を制御することができる。
J-1.位置変化の角度の相違に応じたハンドインタラクションの属性
 「押す」と「つぶす」はいずれも手を開いた姿勢である。このため、手指の位置と姿勢だけでなく、手の位置変化の角度(又は、仮想オブジェクトに接近する方向)に基づいて、「押す」と「つぶす」を識別する。具体的には、アプリケーション実行部1401は、自身が生成した仮想オブジェクトの位置情報と、手位置取得部1404及び手指姿勢取得部1405がコントローラ110から時々刻々取得する手位置及び手指姿勢に基づいて、手の位置変化の角度(又は、仮想オブジェクトに接近する方向)を算出して、ハンドインタラクションが「押す」と「つぶす」のいずれであるかを判定する。
 図45には、仮想オブジェクトを「押す」ハンドインタラクションを例示している。また、図46には、仮想オブジェクトを「つぶす」ハンドインタラクションを例示している。但し、図45及び図46では、図面の簡素化のため、仮想オブジェクトを単純な立方体として描いている。
 図45と図46を比較して分かるように、「押す」と「つぶす」は、いずれも手を開いた姿勢で仮想オブジェクトに近付くハンドインタラクションである。但し、図45に示す「押す」ハンドインタラクションでは、手の位置変化の角度が仮想オブジェクトに対して水平であるのに対し、図46に示す「つぶす」ハンドインタラクションでは手の位置変化の角度は仮想オブジェクトに対して鉛直下方である。したがって、アプリケーション実行部1401は、手を開いた姿勢で仮想オブジェクトに近付くジェスチャが行われたときには、仮想オブジェクトに対する手の移動方向が水平(水平面に対して±10度の方向)であれば「押す」ハンドインタラクションが行われたと認識し仮想オブジェクトに対する手の移動方向が鉛直下方(水平面に対して80~100度の方向)であれば「つぶす」ハンドインタラクションが行われたと認識する。
 本開示に係るARシステム100では、仮想オブジェクトに対するハンドインタラクションとして「押す」と「つぶす」を新たに定義するとともに、仮想オブジェクト毎に以下のような属性をあらかじめ設定しておく。
(1)押せるか否か
(2)つぶせるか否か
 図47には、仮想オブジェクト毎に上記の属性をあらかじめ設定した例を示している。同図において、「○」は該当するハンドインタラクションが「可(又は、許可)」という属性を表し、「×」は該当するハンドインタラクションが「否(又は、禁止)」という属性を表す。図示の属性設定によれば、「水の入ったペットボトル」や「仮想ペット」などの固い物体の仮想オブジェクトは、押すことはできるが、つぶすことはできない。また、「水の入っていないペットボトル」や「風船」などの柔らかい物体の仮想オブジェクトは、押すこともつぶすこともできる。また、「アイテムボックス(虫や小さなモンスターなどのアイテムの入った箱)」のように操作方法を限定したい物体(例えば、コンテンツの制作者がユーザにつぶさせたい物体)の仮想オブジェクトは、押すことはできないが、つぶすことはできる。また、「アイコン」や「Window」などの抽象的な仮想オブジェクトは、押すこともつぶすこともできない。
 図47に示す属性設定によれば、ユーザは、現実の作法に近い方法でこれらの仮想オブジェクトを押す、つぶすといったハンドインタラクションを指定しておくことができる。そして、アプリケーション実行部1401は、ある仮想オブジェクトに対して「押す」や「つぶす」といったハンドインタラクションが行われたときに、図47に示すようにあらかじめ設定された属性に基づいてその仮想オブジェクトの挙動を制御する。
 「○」すなわち「可」という属性が設定されたハンドインタラクションに関しては、そのハンドインタラクションを実施したときの仮想オブジェクトの挙動も併せて設定することができる。但し、図47では、図面の簡素化のため、仮想オブジェクト毎の「押す」及び「つぶす」の可否に関する属性を「○」と「×」のみで示し、挙動に関する記述は省略している。
J-2.位置変化の角度の相違に応じたハンドインタラクションの属性の設定
 図47に示すような、手の位置変化の角度に応じた仮想オブジェクト毎の属性設定は、基本的には、ARシステム100の設計者や、ARシステム100で利用するARコンテンツの制作者が手動で決定することを想定している。但し、現実の対応する物体の形状や大きさなどの物理特性や用途などのデータを取得できる仮想オブジェクトに関しては、そのようなデータに基づいて仮想オブジェクトの「押す」及び「つぶす」に関する属性を自動的に設定するようにしてもよい。自動設定する手法を取り入れることによって、ARアプリなどのコンテンツの制作者がすべての仮想オブジェクトの属性を手動で設定する煩わしさから解放し、システム設計やコンテンツ制作のコストを削減することができる。
 仮想オブジェクトの属性を自動的に設定する方法は、現実の対応する物体に関するデータを解析するアルゴリズムに従って属性を生成する方法であってもよい。例えば、密度が1g/cm3以下の仮想オブジェクトであれば、つぶせる属性を自動的に設定するなどの処理を行うアルゴリズムを使用してもよい。
 また、仮想オブジェクトの属性を自動的に設定する方法は、ユーザの情報に基づいて、仮想オブジェクトの属性を設定するルールを変更することが可能なアルゴリズムを用いる方法であってもよい。例えば、ユーザの年齢(幼児、成人、老人)、手の大きさ、人種、身体の損傷、ユーザの日常行っている手の操作によって、仮想オブジェクトの属性を設定するルールを変更するようにしてもよい。形状や大きさ、密度が同じ物体であっても、ユーザ毎につぶせるか否かが異なる場合があるからである。例えば、ユーザが手の小さな幼児であれば、密度が小さい物体であってもつぶせないといった個人差を考慮して、仮想オブジェクト毎の「押す」及び「つぶす」に関する属性を自動的に設定するようにしてもよい。
 また、仮想オブジェクトの属性を自動的に設定する方法は、深層学習により事前学習された機械学習モデルを用いて仮想オブジェクトの属性を推定する方法であってもよい。例えば、現実の対応するデータや、ユーザの情報から、仮想オブジェクト毎の「押す」及び「つぶす」に関する最適な属性を推定するように、深層学習により事前学習が行われた機械学習モデルを用いる。
J-3.位置変化の角度の相違に応じたハンドインタラクションのトリガー
 上記の説明では、ユーザが手を開いた姿勢で水平方向又は鉛直方向から仮想オブジェクトに近付けた際に、その仮想オブジェクトの属性が許容するハンドインタラクションであれば、ハンドインタラクションに応じた仮想オブジェクトの挙動(例えば、仮想オブジェクトが押される、又はつぶされる)が発動する。しかしながら、ユーザは、ハンドインタラクションを意図して仮想オブジェクトに手を近付けた訳ではなく、たまたま手を開いた姿勢で仮想オブジェクトに近付けることもある。ユーザが意図しないのに仮想オブジェクトの挙動が発動してしまうと不自然である。そこで、ユーザが対象とする仮想オブジェクトを見ていること、あるいはユーザが対象とする仮想オブジェクトに関心を持っていることを、ハンドインタラクションに応じた仮想オブジェクトの挙動を発動させる条件に加えてもよい。
 現実の物体を押したりつぶしたりする際の作法として、対象物を見ることなく押したりつぶしたりすることは極めて稀である。したがって、ユーザが仮想オブジェクトを見ていることを挙動発動の条件とすることは、現実の作法に近く、妥当であると考えられる。また、このような条件を加えることで、ユーザが仮想オブジェクトを見ていない場合にハンドインタラクションが誤認識されたことにより、ユーザの意図に反して仮想オブジェクトを押したりつぶしたりする挙動が発動することを防ぐことができる。
 アプリケーション実行部1401は、例えば内向きカメラ122の撮影画像からユーザの視線方向を検出して、ユーザが仮想オブジェクトを見ているかどうかを判定することができる。あるいは、アプリケーション実行部1401は、コントローラ110や頭部センサ部120のセンサ情報から、深層学習により事前学習された機械学習モデルを用いてユーザの仮想オブジェクトに対する関心度を推定できるようにしてもよい。そして、アプリケーション実行部1401は、ユーザが対象とする仮想オブジェクトを見ている、あるいはユーザが対象とする仮想オブジェクトに関心を持っているという条件が満たされるときに、ユーザが仮想オブジェクトの属性が許容するハンドインタラクションを行ったことを認識すると、その仮想オブジェクトのハンドインタラクションに応じた挙動を発動して、仮想オブジェクトが押されたりつぶされたりする挙動を表示部131(ARグラス)で表示する。
J-4.位置変化の速度の相違に応じたハンドインタラクションの属性
 「叩く」と「触れる」はいずれも親指以外の手指を開いた姿勢である。このため、手指の位置と姿勢だけでなく、手の位置変化の速度(又は、仮想オブジェクトに対する手の相対速度)に基づいて、「叩く」と「触れる」を判定する。具体的には、アプリケーション実行部1401は、自身が生成した仮想オブジェクトの位置情報と、手位置取得部1404及び手指姿勢取得部1405がコントローラ110から時々刻々取得する手位置及び手指姿勢に基づいて、手の位置変化の速度(又は、仮想オブジェクトに対する手の相対速度)を算出して、ハンドインタラクションが「叩く」と「触れる」のいずれであるかを判定する。
 図48には、仮想オブジェクトを「叩く」ハンドインタラクションを例示している。また、図49には、仮想オブジェクトを「触れる」ハンドインタラクションを例示している。但し、図48及び図49では、図面の簡素化のため、仮想オブジェクトを単純な立方体として描いている。図48と図49を比較して分かるように、「叩く」と「触れる」は、親指以外の手指を開いた姿勢で仮想オブジェクトに近づくという、ほぼ同じ手指の姿勢で行われるが、「叩く」場合には手の位置変化の速度は速く(例えば、毎秒3cm以上)、「触れる」場合には手の位置変化の速度は遅い(例えば、毎秒3cm未満)。したがって、アプリケーション実行部1401は、親指以外の手指を開いた姿勢で仮想オブジェクトに近づくジェスチャが行われたときには、手の位置変化の速度が速ければ「叩く」ハンドインタラクションが行われたと認識し、手の位置変化の速度が遅ければ「触れる」ハンドインタラクションが行われたと認識する。
 なお、また、仮想オブジェクト自体が速度を持つ場合、仮想オブジェクトと手指の速度との相対速度に基づいて手の位置変化の速度を算出するようにしてもよい。
 また、位置変化の速度の算出を行うタイミングとして、仮想オブジェクトのコライダと手指のコライダが接触した時点を想定している。但し、仮想オブジェクトにユーザの手が接近してきていることを検出した時点で、接触前に事前に位置変化の速度の計算を行うようにしてもよい。接触前に事前に位置変化の速度を算出することによって、ハンドインタラクションが「叩く」と「触れる」のいずれであるかを判定する際に生じる可能性がある遅延を抑えることができる。
 本開示に係るARシステム100では、仮想オブジェクトに対するハンドインタラクションとして「叩く」と「触れる」を新たに定義するとともに、仮想オブジェクト毎に以下のような属性をあらかじめ設定しておく。
(1)たたけるか否か
(2)触れられるか否か
 図50には、仮想オブジェクト毎に上記の属性をあらかじめ設定した例を示している。同図において、「○」は該当するハンドインタラクションが「可(又は、許可)」という属性を表し、「×」は該当するハンドインタラクションが「否(又は、禁止)」という属性を表す。図示の属性設定によれば、「机」や「ボール」、「打楽器」などの固い物体の仮想オブジェクトは、たたくことはできるが、触れることはできない。また、「風船」や「水の表面」などの柔らかい物体の仮想オブジェクトは、たたくことも触れることもできる。また、「動物」や「人間のアバター」のように操作方法を限定したい物体の仮想オブジェクトは、たたくことはできないが、触れることはできる。また、「アイコン」や「Window」などの抽象的な仮想オブジェクトは、たたくことも触れることもできない。
 図50に示す属性設定によれば、ユーザは、現実の作法に近い方法でこれらの仮想オブジェクトをたたく、触れるといったハンドインタラクションを指定しておくことができる。そして、アプリケーション実行部1401は、ある仮想オブジェクトに対してユーザのハンドインタラクションが行われたときに、あらかじめ設定された属性に基づいてその仮想オブジェクトの挙動を制御する。
 「○」すなわち「可」という属性が設定されたハンドインタラクションに関しては、そのハンドインタラクションを実施したときの仮想オブジェクトの挙動も併せて設定することができる。但し、図50では、図面の簡素化のため、仮想オブジェクト毎の「叩く」及び「触れる」の可否に関する属性を「○」と「×」のみで示し、挙動に関する記述は省略している。
J-5.位置変化の速度の相違に応じたUI挙動
 手の位置変化の速度の相違に応じたハンドインタラクションを行う本実施例では、仮想オブジェクトと手指が接触したときの手の位置変化の速度に応じた仮想オブジェクトのUI挙動を設定するようにしてもよい。
 例えば、仮想オブジェクトが「ボール」の場合、ボールに一定以上の速度があれば、手に吸着するようなボールの挙動や相対速度に応じた音量や音質の音(「パシッ」と鳴る捕球音など)を生成するような仮想オブジェクトのUI挙動を設定する。一方、ボールが止まっている場合や速度が一定未満であれば、吸着処理や効果音を生成しないように仮想オブジェクトのUI挙動を設定する。
 仮想オブジェクトに対応する現実の物体が「太鼓」や「机」など、たたくと大きな衝突音を発生する場合には、相対速度に応じた大きな音量の衝突音をUI挙動として設定するようにしてもよい。また、「モンスター」のように特定のハンドインタラクションに対して効果音を付与したい仮想オブジェクトに対しても、「叩く」に対して相対速度に応じた大きな音量の衝突音をUI挙動として設定するようにしてもよい。
 また、仮想オブジェクトを「叩く」ハンドインタラクションに対して衝突音のような聴覚提示を行うUI挙動に併せて(又は、聴覚提示の代わりに)、振動などを利用した触覚提示を行うUI挙動を設定してもよい。例えば、上記の「太鼓」、「机」、「モンスター」などの仮想オブジェクトを「叩く」ハンドインタラクションに対して、触覚フィードバック部114を使って高周波の振動を手や指に提示するUI挙動を設定するようにしてもよい。
 一方、仮想オブジェクトに対応する現実の物体が「動物」や「木の表面」、「水面」など、触れると小さな接触音を発生する場合には、相対速度に応じた小さな音量の接触音をUI挙動として設定するようにしてもよい。。
 また、仮想オブジェクトを「触れる」ハンドインタラクションに対して接触音のような聴覚提示を行うUI挙動に併せて(又は、聴覚提示の代わりに)、振動などを利用した触覚提示を行うUI挙動を設定してもよい。例えば、上記の「動物」、「木の表面」、「水面」などの仮想オブジェクトを「触れる」ハンドインタラクションに対して、触覚フィードバック部114を使って低周波の振動を手や指に提示するUI挙動を設定するようにしてもよい。
J-6.位置変化の速度の相違に応じたハンドインタラクションの属性の設定
 図50に示すような、手の位置変化の速度に応じた仮想オブジェクト毎の属性設定は、基本的には、ARシステム100の設計者や、ARシステム100で利用するARコンテンツの制作者が手動で決定することを想定している。但し、現実の対応する物体の形状や大きさ、重さ、固さなどの物理特性や用途などのデータを取得できる仮想オブジェクトに関しては、そのようなデータに基づいて仮想オブジェクトの「叩く」及び「触れる」に関する属性を自動的に設定するようにしてもよい。自動設定する手法を取り入れることによって、ARアプリなどのコンテンツの制作者がすべての仮想オブジェクトの属性を手動で設定する煩わしさから解放し、システム設計やコンテンツ制作のコストを削減することができる。
 仮想オブジェクトの属性を自動的に設定する方法は、現実の対応する物体に関するデータを解析するアルゴリズムに従って属性を生成する方法であってもよい。例えば、現実の対応する物体の表面の硬度に基づいて「叩く」ハンドインタラクションに対するUI挙動を設定するアルゴリズムを使用してもよい。このようなアルゴリズムを使用すれば、現実の対応する物体の表面の硬度が所定以上であれば「叩く」ことが「可」で、打音を発生するというUI挙動を自動で設定し、一方、硬度が所定未満であれば「叩く」ことが「否」で、打音が発生しないというUI挙動を自動で設定することができる。
 また、仮想オブジェクトの属性を自動的に設定する方法は、ユーザの情報に基づいて、仮想オブジェクトの属性を設定するルールを変更することが可能なアルゴリズムを用いる方法であってもよい。例えば、ユーザの年齢(幼児、成人、老人)、手の大きさ、人種、身体の損傷、ユーザの日常行っている手の操作によって、仮想オブジェクトの属性を設定するルールを変更するようにしてもよい。ユーザが高齢者であれば、筋力の低下により手指を素早く動かすことが難しいといった個人差を考慮して、仮想オブジェクト毎の「叩く」と「触れる」を判定する位置変化の速度の閾値を通常の毎秒3cmよりも遅い毎秒1cmにして、属性を自動的に設定するようにしてもよい。
 また、仮想オブジェクトの属性を自動的に設定する方法は、深層学習により事前学習された機械学習モデルを用いて仮想オブジェクトの属性を推定する方法であってもよい。例えば、現実の対応するデータや、ユーザの情報から、仮想オブジェクト毎の「叩く」及び「触れる」に関する最適な属性を推定するように、深層学習により事前学習が行われた機械学習モデルを用いる。
J-7.位置変化の速度の相違に応じたハンドインタラクションのトリガー
 上記の説明では、ユーザが親指以外の手指を開いた姿勢で速く又はゆっくりと仮想オブジェクトに近付けた際に、その仮想オブジェクトの属性が許容するハンドインタラクションであれば、ハンドインタラクションに応じた仮想オブジェクトの挙動(例えば、仮想オブジェクトが叩かれる、又は触れられる)が発動する。しかしながら、ユーザは、ハンドインタラクションを意図して仮想オブジェクトに手を近付けた訳ではなく、たまたま親指以外の手指を開いた姿勢で仮想オブジェクトに近付けることもある。ユーザが意図しないのに仮想オブジェクトの挙動が発動してしまうと不自然である。そこで、ユーザが対象とする仮想オブジェクトを見ていること、あるいはユーザが対象とする仮想オブジェクトに関心を持っていることを、ハンドインタラクションに応じた仮想オブジェクトの挙動を発動させる条件に加えてもよい。
 現実の物体を叩いたり触れたりする際の作法として、対象物を見ることなく叩いたり触れたりすることは極めて稀である。したがって、ユーザが仮想オブジェクトを見ていることを挙動発動の条件とすることは、現実の作法に近く、妥当であると考えられる。また、このような条件を加えることで、ユーザが仮想オブジェクトを見ていない場合にハンドインタラクションが誤認識されたことにより、ユーザの意図に反して仮想オブジェクトを叩いたり触れたりする挙動が発動することを防ぐことができる。
 アプリケーション実行部1401は、例えば内向きカメラ122の撮影画像からユーザの視線方向を検出して、ユーザが仮想オブジェクトを見ているかどうかを判定することができる。あるいは、アプリケーション実行部1401は、コントローラ110や頭部センサ部120のセンサ情報から、深層学習により事前学習された機械学習モデルを用いてユーザの仮想オブジェクトに対する関心度を推定できるようにしてもよい。そして、アプリケーション実行部1401は、ユーザが対象とする仮想オブジェクトを見ている、あるいはユーザが対象とする仮想オブジェクトに関心を持っているという条件が満たされるときに、ユーザが仮想オブジェクトの属性が許容するハンドインタラクションを行ったことを認識すると、その仮想オブジェクトのハンドインタラクションに応じた挙動を発動して、仮想オブジェクトが叩かれたり触れられたりする挙動を表示部131(ARグラス)で表示する。
J-8.属性に基づく仮想オブジェクトの挙動制御
 上記F項では、図24に示したフローチャートを参照しながら、ユーザが把持操作を行ったときの仮想オブジェクトの挙動を実現するための処理手順について説明した。このJ-8項では、把持操作に限定されず、さまざまなユーザのハンドインタラクションに応じて仮想オブジェクトの挙動を実現するための処理について説明する。
 このJ-8項で扱うハンドインタラクションの特徴を、図51にまとめた。同図では、精密把持(摘まむ)、握力把持(掴む)、押す、つぶす、叩く、触れるの6種類のハンドアクションについての手指の姿勢と、判定基準(手の位置変化の角度、手指の位置変化の速度)を例示している。
 図52には、本開示に係るARシステム100において、仮想オブジェクトにあらかじめ設定された各ハンドアクションの属性に基づいて、ユーザによるハンドアクションに対する仮想オブジェクトの挙動を実現するための処理手順をフローチャートの形式で示している。
 まず、アプリケーション実行部1401は、コントローラ110を通じて、ユーザの手の位置の検出結果と、手指の姿勢及び手指のジェスチャの認識結果を取得する(ステップS5201)。アプリケーション実行部1401は、表示部131で表示中の仮想オブジェクトと、この仮想オブジェクトを把持しようとしているユーザの手との相対位置、並びに手指の姿勢と手指のジェスチャを常時モニタするものとする。
 次いで、アプリケーション実行部1401は、仮想オブジェクトに対する手の位置変化の角度と、仮想オブジェクトに対する手指の位置変化の速度を算出する(ステップS5202)。
 そして、アプリケーション実行部1401は、ステップS5201で取得した結果と、ステップS5202で算出した結果に基づいて、ユーザがハンドインタラクションの対象としている仮想オブジェクトを特定するとともに、ユーザがその仮想オブジェクトに対して行おうとしているハンドインタラクションを判定すると、その仮想オブジェクトに対してあらかじめ設定された属性に適合するハンドインタラクションであるかどうかを判定する(ステップS5203)。なお、ステップS5203では、属性の適否を判定することに加えて、ユーザが仮想オブジェクトを見ていること又は仮想オブジェクトに関心を持っていること、すなわちその仮想オブジェクトの挙動を発動させる条件を満たすか否かを判定するようにしてもよい。
 ここで、ユーザが仮想オブジェクトに対して行ったハンドインタラクションが仮想オブジェクトの属性に適合しない場合(又は、仮想オブジェクトの挙動を発動させる条件を満たしていない場合)には(ステップS5203のNo)、アプリケーション実行部1401は、ユーザは仮想オブジェクトに対してハンドインタラクションを行っていないとして、ステップS5201に戻り、引き続き、ユーザの手の位置、手指の姿勢、手指のジェスチャの取得を行う。
 一方、ユーザのハンドインタラクションが仮想オブジェクトの属性に適合する場合には(ステップS5203のYes)、アプリケーション実行部1401は、仮想オブジェクトの属性に基づいて、仮想オブジェクトに対してそのハンドインタラクションが行われたときの挙動を生成する(ステップS5204)。
 そして、アプリケーション実行部1401は、ステップS5204で生成する挙動に従って動作する仮想オブジェクトをレンダリングして、仮想空間すなわち表示部131(ARグラス)に表示させて(ステップS5205)、ユーザに自分がハンドインタラクションを行った仮想オブジェクトの挙動を提示する。
 以上、特定の実施形態を参照しながら、本開示について詳細に説明してきた。しかしながら、本開示の要旨を逸脱しない範囲で当業者が該実施形態の修正や代用を成し得ることは自明である。
 本明細書では、主に本開示に係る仮想オブジェクトのハンドインタラクション(把持操作など)をARシステムに適用した実施形態を中心に説明してきたが、本開示の要旨はこれに限定されるものではない。例えば、仮想空間を現実として知覚させるVRシステムや現実と仮想を交錯させるMRシステム、さらにはマスタスレーブ方式の遠隔システムなどにも、同様に本開示を適用することができる。
 要するに、例示という形態により本開示について説明してきたのであり、本明細書の記載内容を限定的に解釈するべきではない。本開示の要旨を判断するためには、特許請求の範囲を参酌すべきである。
 なお、本開示は、以下のような構成をとることも可能である。
(1)ユーザの手の位置と手指の姿勢を取得する取得部と、
 実空間に仮想オブジェクトを重畳表示する表示装置の表示動作を制御する制御部と、
を具備し、
 前記制御部は、前記取得部が取得した手の位置と手指の姿勢に基づいて、前記ユーザが行おうとしているハンドインタラクション及びハンドインタラクションの対象としている仮想オブジェクトを判定し、仮想オブジェクトに設定された属性に基づいてハンドインタラクションに応じた仮想オブジェクトの挙動を制御する、
情報処理装置。
(2)ハンドインタラクションを定義するとともに、仮想オブジェクト毎に各ハンドインタラクションの可否を含む前記属性をあらかじめ設定しておき、
 前記制御部は、前記属性により可能であると設定されたユーザのハンドインタラクションに対する仮想オブジェクトの挙動を制御する、
上記(1)に記載の情報処理装置。
(3)前記制御部は、あらかじめ定義された複数種類のハンドインタラクションの中から、前記取得部が取得した手の位置と手指の姿勢に基づいて、ユーザが行おうとしているハンドインタラクションを判定する、
上記(1)又は(2)のいずれかに記載の情報処理装置。
(4)前記制御部は、親指と人差し指で摘まむ精密把持又は3本以上の指を使って掴む握力把持うちいずれの把持操作であるかを判定し、仮想オブジェクト毎に精密把持及び握力把持の可否を設定した前記属性に基づいて、前記判定した把持操作に対する仮想オブジェクトの挙動を制御する、
上記(1)乃至(3)のいずれかに記載の情報処理装置。
(5)前記制御部は、さらに仮想オブジェクトに対する手の位置変化の角度に基づいて、ユーザが行おうとしているハンドインタラクションを判定する、
上記(1)乃至(4)のいずれかに記載の情報処理装置。
(6)前記制御部は、手を開いた姿勢のときに、仮想オブジェクトに水平方向から近づくときには仮想オブジェクトを「押す」ハンドインタラクションと判定し、仮想オブジェクトに鉛直方向から近づくときに仮想オブジェクトを「つぶす」インタラクションと判定し、仮想オブジェクト毎に「押す」及び「つぶす」の可否を設定した前記属性に基づいて、前記判定した「押す」及び「つぶす」ハンドインタラクションに対する仮想オブジェクトの挙動を制御する、
上記(1)乃至(5)のいずれかに記載の情報処理装置。
(7)前記制御部は、さらに仮想オブジェクトに対する手指の位置変化の速度に基づいて、ユーザが行おうとしているハンドインタラクションを判定する、
上記(1)乃至(6)のいずれかに記載の情報処理装置。
(8)前記制御部は、手指を開いた姿勢のときに、所定以上の速度で仮想オブジェクトに近づくときには仮想オブジェクトを「叩く」ハンドインタラクションと判定し、仮想オブジェクトに所定未満の近づくときに仮想オブジェクトを「触れる」インタラクションと判定し、仮想オブジェクト毎に「叩く」及び「触れる」の可否を設定した前記属性に基づいて、前記判定した「叩く」及び「触れる」ハンドインタラクションに対する仮想オブジェクトの挙動を制御する、
上記(1)乃至(7)のいずれかに記載の情報処理装置。
(9)前記制御部は、第1の仮想オブジェクトに第1のハンドインタラクションを行う前後における前記第1の仮想オブジェクトの第2のハンドインタラクションの可否をさらに設定した前記属性に基づいて、ユーザが前記第1のハンドインタラクションに続いて前記第2のハンドインタラクションを行ったときの前記第1の仮想オブジェクトの挙動を制御する、
上記(1)乃至(8)のいずれかに記載の情報処理装置。
(10)前記制御部は、第2の仮想オブジェクトに関して、第1のハンドインタラクションの可否及び前記第1のハンドインタラクションに対応する前記第2の仮想オブジェクトの挙動が設定された前記属性に基づいて、ユーザが前記第2の仮想オブジェクトに対して前記第1のハンドインタラクションを行ったときの前記第2の仮想オブジェクトの挙動を制御する、
上記(1)乃至(9)のいずれかに記載の情報処理装置。
(11)前記制御部は、第2の仮想オブジェクトに対する把持操作の可否及びユーザが把持する位置がユーザの手に沿うように前記第2の仮想オブジェクトの位置姿勢を変化させる挙動の可否が設定された前記属性に基づいて、ユーザが前記第2の仮想オブジェクトを把持したときの前記第2の仮想オブジェクトの位置姿勢を制御する、
上記(1)乃至(10)のいずれかに記載の情報処理装置。
(12)前記制御部は、仮想オブジェクト毎の各ハンドインタラクションの可否及びハンドインタラクションが可能な位置を設定した前記属性に基づいて、ある仮想オブジェクトのある場所に対してユーザかハンドインタラクションを行ったときのその仮想オブジェクトの挙動を制御する、
上記(1)乃至(11)のいずれかに記載の情報処理装置。
(13)前記制御部は、仮想オブジェクト毎の各ハンドインタラクションの可否及びハンドインタラクションに対するユーザインターフェースの挙動を設定した前記属性に基づいて、ある仮想オブジェクトのある場所に対してユーザかハンドインタラクションを行ったときのユーザインターフェースの挙動をさらに制御する、
上記(1)乃至(12)のいずれかに記載の情報処理装置。
(14)前記制御部は、仮想オブジェクト毎の各ハンドインタラクションの可否及びハンドインタラクションを実施可能な位置におけるユーザインターフェースの挙動を設定した前記属性に基づいて、ある仮想オブジェクトのある場所に対してユーザかハンドインタラクションを行ったときに該当する実施可能な位置におけるユーザインターフェースの挙動をさらに制御する、
上記(1)乃至(13)のいずれかに記載の情報処理装置。
(15)ユーザの手の位置と手指の姿勢を取得する取得ステップと、
 実空間に仮想オブジェクトを重畳表示する表示装置の表示動作を制御する制御ステップと、
を有し、
 前記制御ステップでは、前記取得ステップで取得した手の位置と手指の姿勢に基づいて、前記ユーザが行おうとしているハンドインタラクション及びハンドインタラクションの対象としている仮想オブジェクトを判定し、仮想オブジェクトに設定された属性に基づいてハンドインタラクションに応じた仮想オブジェクトの挙動を制御する、
情報処理方法。
(16)ユーザの手の位置と手指の姿勢を取得する取得部、
 実空間に仮想オブジェクトを重畳表示する表示装置の表示動作を制御する制御部、
としてコンピュータが機能するようにコンピュータ可読形式で記述され、
 前記制御部は、前記取得部が取得した手の位置と手指の姿勢に基づいて、前記ユーザが行おうとしているハンドインタラクション及びハンドインタラクションの対象としている仮想オブジェクトを判定し、仮想オブジェクトに設定された属性に基づいてハンドインタラクションに応じた仮想オブジェクトの挙動を制御する、
コンピュータプログラム。
(17)実空間に仮想オブジェクトを重畳表示する表示装置と、
 実空間に仮想オブジェクトを重畳表示する表示装置の表示動作を制御する制御部と、
を具備し、
 前記制御部は、前記取得部が取得した手の位置と手指の姿勢に基づいて、前記ユーザが行おうとしているハンドインタラクション及びハンドインタラクションの対象としている仮想オブジェクトを判定し、仮想オブジェクトに設定された属性に基づいてハンドインタラクションに応じた仮想オブジェクトの挙動を制御する、
拡張現実感システム。
(21)ユーザの手の位置と手指のジェスチャを取得する取得部と、
 実空間に仮想オブジェクトを重畳表示する表示装置の表示動作を制御する制御部と、
を具備し、
 前記制御部は、仮想オブジェクトに対して設定された属性に基づいて、前記取得部が取得した手の位置と手指のジェスチャに応じた仮想オブジェクトの挙動を制御する、
情報処理装置。
(22)前記制御部は、前記取得部が取得した手の位置と手指のジェスチャに基づいて、把持しようとしている手が仮想オブジェクトに接近していることを検出して、手による把持操作に応じた仮想オブジェクトの挙動を制御する、
上記(21)に記載の情報処理装置。
(23)複数の把持操作が定義され、仮想オブジェクトに対する各把持操作の可否に関する前記属性が設定され、
 前記制御部は、前記属性により可能であると設定されたユーザの把持操作に対する仮想オブジェクトの挙動を制御する、
上記(21)又は(22)のいずれかに記載の情報処理装置。
(24)把持操作毎の仮想オブジェクトの挙動を含む前記属性がさらに設定され、
 前記制御部は、前記属性により設定された挙動に基づいて、ユーザの把持操作に対する仮想オブジェクトの挙動を制御する、
上記(23)に記載の情報処理装置。
(25)把持前及び把持後の各々で仮想オブジェクトに対する各把持操作の可否を含む前記属性がさらに設定され、
 前記制御部は、把持前と把持後の各々で、前記属性により可能であると設定された把持操作に対する仮想オブジェクトの挙動を制御する、
上記(23)又は(24)のいずれかに記載の情報処理装置。
(26)把持操作に伴う処理の可否を含む前記属性がさらに設定され、
 前記制御部は、ユーザの把持操作に対して、前記属性により可能であると設定された処理を含む仮想オブジェクトの挙動を制御する、
上記(23)乃至(25)のいずれかに記載の情報処理装置。
(27)把持操作に伴う処理は、ユーザが把持する位置がユーザの手に沿うように仮想オブジェクトの位置姿勢を変化させる吸着処理を含む、
上記(26)に記載の情報処理装置。
(28)仮想オブジェクトに対する各把持操作におけるユーザインターフェースに関する前記属性がさらに設定され、
 前記制御部は、ユーザの把持操作に対して、前記属性により設定されたユーザインターフェースの表示動作を行うように前記表示装置を制御する、
上記(23)乃至(27)のいずれかに記載の情報処理装置。
(29)把持操作毎の仮想オブジェクトの把持可能位置におけるユーザインターフェースに関する前記属性が設定され、
 前記制御部は、ユーザの把持操作に対して前記属性により設定された把持可能位置でユーザインターフェースの表示動作を行うように前記表示装置を制御する、
上記(28)に記載の情報処理装置。
(30)ユーザの手の位置と手指のジェスチャを取得する取得ステップと、
 実空間に仮想オブジェクトを重畳表示する表示装置の表示動作を制御する制御ステップと、
を有し、
 前記制御ステップでは、仮想オブジェクトに対して設定された属性に基づいて、前記取得部が取得した手の位置と手指のジェスチャに応じた仮想オブジェクトの挙動を制御する、
情報処理方法。
(31)ユーザの手の位置と手指のジェスチャを取得する取得部、
 実空間に仮想オブジェクトを重畳表示する表示装置の表示動作を制御する制御部、
としてコンピュータが機能するようにコンピュータ可読形式で記述され、
 前記制御部は、仮想オブジェクトに対して設定された属性に基づいて、前記取得部が取得した手の位置と手指のジェスチャに応じた仮想オブジェクトの挙動を制御する、
コンピュータプログラム。
(32)実空間に仮想オブジェクトを重畳表示する表示装置と、
 ユーザの手の位置と手指のジェスチャを取得する取得部と、
 前記表示装置の表示動作を制御する制御部と、
を具備し、
 前記制御部は、仮想オブジェクトに対して設定された属性に基づいて、前記取得部が取得した手の位置と手指のジェスチャに応じた仮想オブジェクトの挙動を制御する、
拡張現実感システム。
 10…コントローラ、11…ベルト
 100…ARシステム、110…コントローラ、111…手位置検出部
 112…手指姿勢認識部、113…手指ジェスチャ認識部
 114、触覚フィードバック部、120…頭部センサ部
 121…外向きカメラ、122…内向きカメラ、123…マイク
 124…ジャイロセンサ、125…加速度センサ、126…方位センサ
 131…表紙部、132…スピーカー、133…通信部、140…制御部
 150…記憶部
 300…ARシステム、301…ARグラス、302…コントローラ
 400…ARシステム、401…ARグラス、402…コントローラ
 403…情報端末
 500…コントローラ、501、502、503…IMU
 511、512、513…バンド
 2500…遠隔操作システム、2510…マスタ装置
 2511…コントローラ、2512…表示部、2513…マスタ制御部
 2514…通信部、2520…スレーブ装置、2521…ロボット
 2522…カメラ、2523…スレーブ制御部、2524…通信部

Claims (17)

  1.  ユーザの手の位置と手指の姿勢を取得する取得部と、
     実空間に仮想オブジェクトを重畳表示する表示装置の表示動作を制御する制御部と、
    を具備し、
     前記制御部は、前記取得部が取得した手の位置と手指の姿勢に基づいて、前記ユーザが行おうとしているハンドインタラクション及びハンドインタラクションの対象としている仮想オブジェクトを判定し、仮想オブジェクトに設定された属性に基づいてハンドインタラクションに応じた仮想オブジェクトの挙動を制御する、
    情報処理装置。
  2.  ハンドインタラクションを定義するとともに、仮想オブジェクト毎に各ハンドインタラクションの可否を含む前記属性をあらかじめ設定しておき、
     前記制御部は、前記属性により可能であると設定されたユーザのハンドインタラクションに対する仮想オブジェクトの挙動を制御する、
    請求項1に記載の情報処理装置。
  3.  前記制御部は、あらかじめ定義された複数種類のハンドインタラクションの中から、前記取得部が取得した手の位置と手指の姿勢に基づいて、ユーザが行おうとしているハンドインタラクションを判定する、
    請求項1に記載の情報処理装置。
  4.  前記制御部は、親指と人差し指で摘まむ精密把持又は3本以上の指を使って掴む握力把持うちいずれの把持操作であるかを判定し、仮想オブジェクト毎に精密把持及び握力把持の可否を設定した前記属性に基づいて、前記判定した把持操作に対する仮想オブジェクトの挙動を制御する、
    請求項1に記載の情報処理装置。
  5.  前記制御部は、さらに仮想オブジェクトに対する手の位置変化の角度に基づいて、ユーザが行おうとしているハンドインタラクションを判定する、
    請求項1に記載の情報処理装置。
  6.  前記制御部は、手を開いた姿勢のときに、仮想オブジェクトに水平方向から近づくときには仮想オブジェクトを「押す」ハンドインタラクションと判定し、仮想オブジェクトに鉛直方向から近づくときに仮想オブジェクトを「つぶす」インタラクションと判定し、仮想オブジェクト毎に「押す」及び「つぶす」の可否を設定した前記属性に基づいて、前記判定した「押す」及び「つぶす」ハンドインタラクションに対する仮想オブジェクトの挙動を制御する、
    請求項1に記載の情報処理装置。
  7.  前記制御部は、さらに仮想オブジェクトに対する手指の位置変化の速度に基づいて、ユーザが行おうとしているハンドインタラクションを判定する、
    請求項1に記載の情報処理装置。
  8.  前記制御部は、手指を開いた姿勢のときに、所定以上の速度で仮想オブジェクトに近づくときには仮想オブジェクトを「叩く」ハンドインタラクションと判定し、仮想オブジェクトに所定未満の近づくときに仮想オブジェクトを「触れる」インタラクションと判定し、仮想オブジェクト毎に「叩く」及び「触れる」の可否を設定した前記属性に基づいて、前記判定した「叩く」及び「触れる」ハンドインタラクションに対する仮想オブジェクトの挙動を制御する、
    請求項1に記載の情報処理装置。
  9.  前記制御部は、第1の仮想オブジェクトに第1のハンドインタラクションを行う前後における前記第1の仮想オブジェクトの第2のハンドインタラクションの可否をさらに設定した前記属性に基づいて、ユーザが前記第1のハンドインタラクションに続いて前記第2のハンドインタラクションを行ったときの前記第1の仮想オブジェクトの挙動を制御する、
    請求項1に記載の情報処理装置。
  10.  前記制御部は、第2の仮想オブジェクトに関して、第1のハンドインタラクションの可否及び前記第1のハンドインタラクションに対応する前記第2の仮想オブジェクトの挙動が設定された前記属性に基づいて、ユーザが前記第2の仮想オブジェクトに対して前記第1のハンドインタラクションを行ったときの前記第2の仮想オブジェクトの挙動を制御する、
    請求項1に記載の情報処理装置。
  11.  前記制御部は、第2の仮想オブジェクトに対する把持操作の可否及びユーザが把持する位置がユーザの手に沿うように前記第2の仮想オブジェクトの位置姿勢を変化させる挙動の可否が設定された前記属性に基づいて、ユーザが前記第2の仮想オブジェクトを把持したときの前記第2の仮想オブジェクトの位置姿勢を制御する、
    請求項1に記載の情報処理装置。
  12.  前記制御部は、仮想オブジェクト毎の各ハンドインタラクションの可否及びハンドインタラクションが可能な位置を設定した前記属性に基づいて、ある仮想オブジェクトのある場所に対してユーザかハンドインタラクションを行ったときのその仮想オブジェクトの挙動を制御する、
    請求項1に記載の情報処理装置。
  13.  前記制御部は、仮想オブジェクト毎の各ハンドインタラクションの可否及びハンドインタラクションに対するユーザインターフェースの挙動を設定した前記属性に基づいて、ある仮想オブジェクトのある場所に対してユーザかハンドインタラクションを行ったときのユーザインターフェースの挙動をさらに制御する、
    請求項1に記載の情報処理装置。
  14.  前記制御部は、仮想オブジェクト毎の各ハンドインタラクションの可否及びハンドインタラクションを実施可能な位置におけるユーザインターフェースの挙動を設定した前記属性に基づいて、ある仮想オブジェクトのある場所に対してユーザかハンドインタラクションを行ったときに該当する実施可能な位置におけるユーザインターフェースの挙動をさらに制御する、
    請求項1に記載の情報処理装置。
  15.  ユーザの手の位置と手指の姿勢を取得する取得ステップと、
     実空間に仮想オブジェクトを重畳表示する表示装置の表示動作を制御する制御ステップと、
    を有し、
     前記制御ステップでは、前記取得ステップで取得した手の位置と手指の姿勢に基づいて、前記ユーザが行おうとしているハンドインタラクション及びハンドインタラクションの対象としている仮想オブジェクトを判定し、仮想オブジェクトに設定された属性に基づいてハンドインタラクションに応じた仮想オブジェクトの挙動を制御する、
    情報処理方法。
  16.  ユーザの手の位置と手指の姿勢を取得する取得部、
     実空間に仮想オブジェクトを重畳表示する表示装置の表示動作を制御する制御部、
    としてコンピュータが機能するようにコンピュータ可読形式で記述され、
     前記制御部は、前記取得部が取得した手の位置と手指の姿勢に基づいて、前記ユーザが行おうとしているハンドインタラクション及びハンドインタラクションの対象としている仮想オブジェクトを判定し、仮想オブジェクトに設定された属性に基づいてハンドインタラクションに応じた仮想オブジェクトの挙動を制御する、
    コンピュータプログラム。
  17.  実空間に仮想オブジェクトを重畳表示する表示装置と、
     実空間に仮想オブジェクトを重畳表示する表示装置の表示動作を制御する制御部と、
    を具備し、
     前記制御部は、前記取得部が取得した手の位置と手指の姿勢に基づいて、前記ユーザが行おうとしているハンドインタラクション及びハンドインタラクションの対象としている仮想オブジェクトを判定し、仮想オブジェクトに設定された属性に基づいてハンドインタラクションに応じた仮想オブジェクトの挙動を制御する、
    拡張現実感システム。
PCT/JP2021/001542 2020-03-05 2021-01-18 情報処理装置及び情報処理方法、コンピュータプログラム、並びに拡張現実感システム WO2021176861A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP21765144.7A EP4116939A4 (en) 2020-03-05 2021-01-18 INFORMATION PROCESSING DEVICE AND INFORMATION PROCESSING METHOD, COMPUTER PROGRAM AND AUGMENTED REALITY DETECTION SYSTEM
US17/905,194 US20230341936A1 (en) 2020-03-05 2021-01-18 Information processing device, information processing method, computer program, and augmented reality system
JP2022505009A JPWO2021176861A1 (ja) 2020-03-05 2021-01-18

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2020037555 2020-03-05
JP2020-037555 2020-03-05
JP2020-167589 2020-10-02
JP2020167589 2020-10-02

Publications (1)

Publication Number Publication Date
WO2021176861A1 true WO2021176861A1 (ja) 2021-09-10

Family

ID=77614497

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/001542 WO2021176861A1 (ja) 2020-03-05 2021-01-18 情報処理装置及び情報処理方法、コンピュータプログラム、並びに拡張現実感システム

Country Status (4)

Country Link
US (1) US20230341936A1 (ja)
EP (1) EP4116939A4 (ja)
JP (1) JPWO2021176861A1 (ja)
WO (1) WO2021176861A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023176420A1 (ja) * 2022-03-18 2023-09-21 ソニーグループ株式会社 情報処理装置及び情報処理方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5588098A (en) * 1991-11-22 1996-12-24 Apple Computer, Inc. Method and apparatus for direct manipulation of 3-D objects on computer displays
JP2013182554A (ja) * 2012-03-05 2013-09-12 Tokyo Institute Of Technology 把持姿勢生成装置、把持姿勢生成方法及び把持姿勢生成プログラム
US20160239080A1 (en) * 2015-02-13 2016-08-18 Leap Motion, Inc. Systems and methods of creating a realistic grab experience in virtual reality/augmented reality environments
JP2018067297A (ja) * 2017-08-01 2018-04-26 株式会社コロプラ 情報処理方法、装置、および当該情報処理方法をコンピュータに実行させるためのプログラム
JP2019040226A (ja) 2017-08-22 2019-03-14 キヤノン株式会社 情報処理装置、システム、画像処理方法、コンピュータプログラム、及び記憶媒体
US20200004403A1 (en) * 2013-11-15 2020-01-02 Ultrahaptics IP Two Limited Interaction strength using virtual objects for machine control

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10126822B2 (en) * 2013-12-16 2018-11-13 Leap Motion, Inc. User-defined virtual interaction space and manipulation of virtual configuration
US10156908B2 (en) * 2015-04-15 2018-12-18 Sony Interactive Entertainment Inc. Pinch and hold gesture navigation on a head-mounted display
WO2016205182A1 (en) * 2015-06-15 2016-12-22 Survios, Inc. Systems and methods for immersive physical interaction with a virtual environment
JP2019008623A (ja) * 2017-06-27 2019-01-17 キヤノン株式会社 情報処理装置、及び、情報処理装置の制御方法、コンピュータプログラム、記憶媒体
US10783712B2 (en) * 2018-06-27 2020-09-22 Facebook Technologies, Llc Visual flairs for emphasizing gestures in artificial-reality environments
US10635895B2 (en) * 2018-06-27 2020-04-28 Facebook Technologies, Llc Gesture-based casting and manipulation of virtual content in artificial-reality environments
US11107293B2 (en) * 2019-04-23 2021-08-31 XRSpace CO., LTD. Head mounted display system capable of assigning at least one predetermined interactive characteristic to a virtual object in a virtual environment created according to a real object in a real environment, a related method and a related non-transitory computer readable storage medium

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5588098A (en) * 1991-11-22 1996-12-24 Apple Computer, Inc. Method and apparatus for direct manipulation of 3-D objects on computer displays
JP2013182554A (ja) * 2012-03-05 2013-09-12 Tokyo Institute Of Technology 把持姿勢生成装置、把持姿勢生成方法及び把持姿勢生成プログラム
US20200004403A1 (en) * 2013-11-15 2020-01-02 Ultrahaptics IP Two Limited Interaction strength using virtual objects for machine control
US20160239080A1 (en) * 2015-02-13 2016-08-18 Leap Motion, Inc. Systems and methods of creating a realistic grab experience in virtual reality/augmented reality environments
JP2018067297A (ja) * 2017-08-01 2018-04-26 株式会社コロプラ 情報処理方法、装置、および当該情報処理方法をコンピュータに実行させるためのプログラム
JP2019040226A (ja) 2017-08-22 2019-03-14 キヤノン株式会社 情報処理装置、システム、画像処理方法、コンピュータプログラム、及び記憶媒体

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
J. NAPIER: "The prehensile movements of the human hand", J. BONE AND JOINT SURGERY, vol. 38, no. 4, 1956, pages 902 - 913

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023176420A1 (ja) * 2022-03-18 2023-09-21 ソニーグループ株式会社 情報処理装置及び情報処理方法

Also Published As

Publication number Publication date
EP4116939A4 (en) 2023-08-02
US20230341936A1 (en) 2023-10-26
EP4116939A1 (en) 2023-01-11
JPWO2021176861A1 (ja) 2021-09-10

Similar Documents

Publication Publication Date Title
JP7411133B2 (ja) 仮想現実ディスプレイシステム、拡張現実ディスプレイシステム、および複合現実ディスプレイシステムのためのキーボード
US10534432B2 (en) Control apparatus
JP6669069B2 (ja) 検出装置、検出方法、制御装置、および制御方法
US9884248B2 (en) Display control method for head-mounted display (HMD) and image generation device
JP6340301B2 (ja) ヘッドマウントディスプレイ、携帯情報端末、画像処理装置、表示制御プログラム、表示制御方法、及び表示システム
WO2015154627A1 (zh) 一种虚拟现实组件系统
JP6189497B1 (ja) 仮想空間を提供する方法、仮想体験を提供する方法、プログラム、および記録媒体
WO2018047384A1 (ja) 情報処理方法、当該情報処理方法をコンピュータに実行させるためのプログラム、当該情報処理方法が実行される情報処理装置、及び情報処理システム
WO2021176861A1 (ja) 情報処理装置及び情報処理方法、コンピュータプログラム、並びに拡張現実感システム
WO2022014445A1 (ja) 検出装置及び検出方法
US20180129274A1 (en) Information processing method and apparatus, and program for executing the information processing method on computer
JP6646565B2 (ja) 情報処理方法、装置、および当該情報処理方法をコンピュータに実行させるためのプログラム
JP6278546B1 (ja) 情報処理方法、装置、および当該情報処理方法をコンピュータに実行させるためのプログラム
JP6159455B1 (ja) 仮想空間を提供する方法、プログラム、および記録媒体
WO2021145068A1 (ja) 情報処理装置及び情報処理方法、コンピュータプログラム、並びに拡張現実感システム
JP2019020836A (ja) 情報処理方法、装置、および当該情報処理方法をコンピュータに実行させるためのプログラム
JP2018067297A (ja) 情報処理方法、装置、および当該情報処理方法をコンピュータに実行させるためのプログラム
JP6458179B1 (ja) プログラム、情報処理装置、および方法
JP6403843B1 (ja) 情報処理方法、情報処理プログラム及び情報処理装置
JP6728111B2 (ja) 仮想空間を提供する方法、仮想体験を提供する方法、プログラム、および記録媒体
JP6444345B2 (ja) 仮想空間における入力を支援するための方法および装置ならびに当該方法をコンピュータに実行させるプログラム
JP6242452B1 (ja) 仮想空間を提供する方法、仮想体験を提供する方法、プログラム、および記録媒体
WO2024090303A1 (ja) 情報処理装置及び情報処理方法
WO2022065120A1 (ja) 情報処理装置、情報処理方法、及び、プログラム
JP2018014084A (ja) 仮想空間を提供する方法、仮想体験を提供する方法、プログラム、および記録媒体

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21765144

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2022505009

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2021765144

Country of ref document: EP

Effective date: 20221005