Abstract:
Techniques for interpreting orientation invariant motion are disclosed. Unlike a prior art controller (e.g., a WII game controller) that has a specific physical design to induce or force a user to grip the controller in a consistent way, a disclosed controller does not have such a physical design and allow a user to grip the controller in any way that is comfortable to the user (e.g., around an axis z), one or more transformation or rotations are designed to transform or rotate readings from inertial sensors housed in the controller to readings independent from how the controller is being gripped by a user.

Description:
BACKGROUND OF THE INVENTION 
       [0001]    1. Field of Invention 
         [0002]    The invention generally relates to the area of controlling devices, and more particularly related to motion-sensitive controlling devices with the abilities of interpreting orientation invariant motion. 
         [0003]    2. Related Art 
         [0004]    The Nintendo Wii Remote™ wireless controller is an example of the most recent state of the art advances in user interactive controllers for computer display game systems. It is a movable wireless remote controller hand-held by a user. It uses a combination of built-in accelerometers and infrared detection to sense its position in a 3D space when pointed at LEDs within the reach of a sensor bar. This design allows users to control a game using physical gestures as well as traditional button presses. The controller connects to a console using Bluetooth and features rumble as well as an internal speaker. As a user moves the controller in reacting to a display, the controller transmits motion data to the console via conventional short range wireless RF transmissions to simulate interactions of the users with the game being displayed. The detail on such a type of controllers is described in Published U.S. Application US2007/0060384, which is hereby incorporated by reference. 
         [0005]    One restriction in using such a controller is that a user has to hold the controller in a particular way so that physical gestures of the user could be reasonably interpreted. To enforce such holding patterns, the controller is designed in an elongated rectangular shape with most buttons on one side and a trigger on the other side such that a natural grip of the controller by a user orients the controller in a consistent way in his/her hand while other grips feel uncomfortable or do not provide ready access to the buttons or trigger. Consistent grips of the controller result in relatively consistent data from the internal accelerometers when a particular motion is made. 
         [0006]    In reality or other applications, controllers may come in different physical designs. Users prefer to have a certain degree of freedom to hold a controller. As a result, the physical design of a controller may not lead a user to hold the controller in a consistent way. Examples include a controller whose physical form is essentially cylindrical—motion sensitive controllers in the shape of magic wands, “light-sabers”, microphones, swords, whips, drum-sticks, batons and so on. In each case, a natural grip of such a controller lends no preference of orientation of the internal motion sensors about the length of the controller. Because identical motions of differently oriented controllers result in different motion sensor readings, the task of interpreting the readings for many applications is more difficult. In addition, it is problematic for systems (such as LiveMove) that interpret the readings from a controller and determine the type of motion that was made. Moves such as whip, upper-cut, thrust, fore-hand, back-hand, are examples of types of motions that can be differentiated through the data generated by a motion sensitive controller in order to allow a user to affect control over an in-game avatar. In cases where there is no preference of orientation of the controller in the user&#39;s grip, it is desirable for such systems to be able to cope with the data generated by the various possible grips. 
       SUMMARY OF THE INVENTION 
       [0007]    This section is for the purpose of summarizing some aspects of the present invention and to briefly introduce some preferred embodiments. Simplifications or omissions in this section as well as in the abstract may be made to avoid obscuring the purpose of this section and the abstract. Such simplifications or omissions are not intended to limit the scope of the present invention. 
         [0008]    The present invention generally pertains to motion-sensitive controlling devices with the abilities of interpreting orientation invariant motion. The devices may be used in applications of controlling another device, a system, one or more avatars or animations. According to one aspect of the present invention, it is assumed that a controller can be gripped in any way around an axis z, one or more transformation or rotations are designed to transform or rotate readings from inertial sensors housed in the controller to readings independent from how the controller is being gripped by a user. 
         [0009]    According to another aspect of the present invention, unlike a prior art controller (e.g., a WII game controller) that has a specific physical design to induce or force a user to grip the controller in a consistent way, the controller designed in accordance with the present invention does not have such a specific design and allows a user to grip the controller in any way that is comfortable to the user. Depending on implementation, the controller may be designed to be substantially rotationally symmetrical about at least one axis and can be gripped naturally in any orientation around such an axis. 
         [0010]    According to still another aspect of the present invention, the readings from the inertial sensors are transformed in such a way that any given motion made with a controller with one grip results in the same or similar data when the same motions are made with a different grip. This transformation retains information within the data that is sufficient to allow various types of motion to be differentiated by a system observing the transformed data (such as LiveMove). 
         [0011]    According to yet another aspect of the present invention, there are at least two processes involved to map original actual readings to readings that are independent of how the grip is being gripped: (i) orientation correction and (ii) calibration for any fixed grip by rotation to a reference grip or calibration for any grip by rotation to a direction of initial impulse, each may be executed independently or collaboratively. 
         [0012]    Depending on implementation, the present invention may be implemented as a method, an apparatus or part of a system. According to one embodiment, the present invention is a method comprising: receiving one or more sets of reference readings; receiving sets of readings over a time period from a set of inertial sensors housed in a handheld device gripped by a user in one of many possible orientations as the handheld device is being moved from one location to another location in a 3-dimensional space; computing a set of rotations; and rotating at least some of each of the sets of readings or at least some of the reference readings via one of the rotations in such a way that the sets of readings are substantially independent of how the handheld device is gripped. As used herein, a location of an object may include a position and/or an orientation of the object in a 3D space. 
         [0013]    According to another embodiment, the present invention is a controller comprising: a housing having an exterior design that allows a user to grip the controller in any way the user prefers, resulting in many possible orientations as the controller is being moved from one location to another location in a 3-dimensional space, a set of inertial sensors housed in the controller, wherein sets of readings over a time period from the inertial sensors are obtained, and at least some of each of the sets of readings or at least some of reference readings are rotated by one of rotations in such a way that the sets of readings are substantially independent of how the controller is gripped. 
         [0014]    Other objects, features, benefits and advantages, together with the foregoing, are attained in the exercise of the invention in the following description and resulting in the embodiment illustrated in the accompanying drawings. 
     
    
     
       BRIEF DESCRIPTION OF THE FIGURES 
         [0015]    These and other features, aspects, and advantages of the present invention will be better understood with regard to the following description, appended claims, and accompanying drawings where: 
           [0016]      FIG. 1  shows a cylindrical motion sensitive controller  101  in accordance with one embodiment of the present invention; 
           [0017]      FIG. 2  shows sensors  201  mounted in a controller  202  held in a reference grip to generate reference readings  203 ; 
           [0018]      FIG. 3  shows calibration readings  301  output due to a controller with unknown orientation about its z-axis; and 
           [0019]      FIG. 4  shows an illustrative example of the transformation by first impulse method on data produced by identical motions of a controller held with varying grips. 
       
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
       [0020]    The detailed description of the invention is presented largely in terms of procedures, steps, logic blocks, processing, and other symbolic representations that directly or indirectly resemble the operations of data processing devices coupled to networks. These process descriptions and representations are typically used by those skilled in the art to most effectively convey the substance of their work to others skilled in the art. Reference herein to “one embodiment” or “an embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiment can be included in at least one embodiment of the invention. The appearances of the phrase “in one embodiment” in various places in the specification are not necessarily all referring to the same embodiment, nor are separate or alternative embodiments mutually exclusive of other embodiments. Further, the order of blocks in process flowcharts or diagrams representing one or more embodiments of the invention do not inherently indicate any particular order nor imply any limitations in the invention. 
         [0021]    Referring now to the drawings, in which like numerals refer to like parts throughout the several views.  FIG. 1  shows a cylindrical motion sensitive controller  101  in accordance with one embodiment of the present invention. Compared with the current Wii controller, the controller  101  does not have a physical design that implicitly induce a user to grip it in a consistent way. In other words, a natural grip of the controller  101  lends no preference of the orientation  104  of internal motion sensors  103  in the controller  101  with respect to a 3D space  105 . Similar to the current Wii controller, the controller  101  includes three accelerometers  103  for measuring acceleration and gravity in induced reaction forces, although it possibly includes other motion sensors to detect a complet set of data used to derive six relative linear and angular motions of the controller. 
         [0022]    Depending on implementation, the controller  101  may be a stand-alone controlling device, or part of another device (e.g., a mobile, phone a magic wand, a light-saber, a microphone, a sword, a whip, a drum-stick, or a baton). One of the unique features is that the controller  101  could be positioned in any way that may fit in a user&#39;s hand or an accompanying device, but the final orientation is determined regardless of the initial orientation of the controller  101 . Accordingly, there is no requirement to position the controller  101  in a consistent way with respect to a 3D world (e.g. 3D Cartesian coordinate space). 
         [0023]    To facilitate the understanding of the present invention, the orientation of the controller  101  is denoted by its axes (x,y,z)  102 . The three accelerometers  103  in the controller  101  are each aligned to sense a motion along one of these axes  102 . Because the accelerometers  103  are sensitive to gravity, their readings vary when the controller  101  is oriented variously with respect to the direction of gravity. In an actual operation of the controller  101  over a time period, sets of the readings from the sensors are produced after the controller  101  has been stationary for some time and when it is detected to have a sudden move or after an event. 
         [0024]    It is assumed, at time t, three accelerometer readings are produced and expressed in a vector a=(a x , a y , a z ). The orientation of the controller  101  around its z-axis is unknown. One of the features, advantageous and benefits in the present invention is a mechanism that is configured to transform or rotate the readings in such a way that the performance of a given motion yields the same data as if the controller  101  is gripped in a defined way (reference orientation), regardless of the initial orientation thereof about the axis z. 
         [0025]    According to one embodiment, transforming the readings involves at least two processes: (i) orientation correction and (ii) calibration for any fixed grip by rotation to a reference grip, or calibration for any grip by rotation to a direction of initial impulse. The processes may be implemented in software, hardware or in a combination of both. The processes may be distributed and executed in a controller and a console via a wireless communication means, or completely executed in a controller or a console where the readings from the controller are transported to the console via a wireless communication means. 
         [0026]    In operation, a set of reference readings is obtained. In one embodiment, the reference readings are obtained from the sensors after the controller has been relatively stationary for some time, and/or when it is detected to have a sudden move. Alternatively, some of the reference readings may be obtained from the sensors (e.g., an accelerometer, a gyroscope or a magnetic field sensor) in the controller and others from other means such as being predefined or obtained from other sensors or devices not included in the controller. Examples of other sensors or devices include a camera, an infra-red sensor, an optical recognizer, a sonic device, an electromagnetic field sensor, a device capable of determining information from triangulation. After the reference readings are obtained, actual readings from the sensor in the controller are obtained over a time to recognize the motion of the controller or a trajectory of the controller. To facilitate the description of the present invention, unless otherwise specifically stated, readings used below may indicate the reference readings from or not from the sensors in the controller, or the actual readings from the sensors in the controller after an event (e.g., a period or quiescence, a sudden move or an initial impulsive status). 
         [0027]    Orientation correction: respective components of the readings or data from the sensors are rotated via a transformation so that the transformed readings from the controller  101  would become the readings as if they are read off from the controller positioned in a reference orientation, or substantially invariant to the orientation of the user&#39;s grip. 
         [0028]    This is achieved by projecting original readings a onto basis axes [R 1 , R 2 ] via a transformation matrix R=[R 1 , R 2 ] to obtain new transformed readings, a′=(a′ x , a′ y , a′ z ) as follows: 
         [0000]        a′   x   =R   1 ·( a   x   , a   y ) 
         [0000]        a′   y   =R   2 ·( a   x   , a   y ) 
         [0000]      a′ z =a z    
         [0000]    The choice of R affects the amount of rotation of the data about z. R is constrained such that the only possible transformation allowed is a rotation as follows: 
         [0000]        R   1 =( c, d ) 
         [0000]        R   2 =( −d, c ) 
         [0000]      | R   1 |=1 
         [0000]      | R   2 |=1 
         [0000]    for some values c and d. 
         [0029]    Calibration for any fixed grip by rotation to a reference grip: if in the above equations:
       a′ is substituted for readings obtained from a reference orientation of the controller (e.g. held horizontally with any rotation about axis z, as shown in  FIG. 2 , and,   a is for readings obtained when the user is asked to grip the controller in the same way as the reference (also held horizontally but with another unknown orientation about axis z, as in  FIG. 3 ), and, the equations are solved for c and d,
 
then values for |R| have been specified such that readings for motions obtained in the user grip are transformed into the readings that would have been observed if the same motion had been made by a controller gripped in the reference orientation.
       
 
         [0032]    According to another embodiment, the orientation correction is implemented by a rotation of any grip to direction of initial impulse. If a user changes his grip, or moves the controller into his other hand or passes it to another person, then the new grip may have the controller oriented differently about its z-axis. Recalibration is therefore required. 
         [0033]    It is not generally possible, by inspection of the readings, to detect when the grip has changed, nor is it desirable to frequently require the user to repeat the calibration step after changes in grip. To resolve this, the calibration may be performed immediately at the start of a motion. To do this:
       1. define the readings a l =(a l   x , a l   y , a l   z ) to be those received at the start of the motion. The start of a motion may be defined in various ways, such as by detecting a significant change a l   x , or a l   y . In case where readings are noisy, a l  should be an average of the initial readings.   2. Define:       
 
         [0000]        R   1 =( a   l   x   , a   l   y )/|( a   l   x   , a   l   y )| 
         [0000]        R   2 =(− a   l   y   , a   l   x )/|( a   l   x   , a   l   y )| 
         [0000]    then R rotates the motion data by an amount determined by the direction of the impulse of the start of the motion. 
         [0036]    Future readings are rotated in the x-y plane to align with this initial impulse in motion readings. As a result, the transformed readings are invariant to the direction of the initial impulse in the controller&#39;s x-y plane and so also invariant to the orientation of the controller about its z-axis.  FIG. 4  shows that three possible grips of a controller that may vary depending on how a user holds it. Through the transformation, data differences in the same motions are due to variations in users&#39; grips are removed. No explicit calibration step is required by the user. 
         [0037]    Once the readings from the sensors are rotated to become independent from the initial orientation of the controller, the rotated readings may be used to find how the controller has been moved since one or more sets of the reference readings are taken. A motion recognition module is configured to perform the determination of the type of movement of the controller. The motion recognition module may be implemented in the controller or a base computer (e.g., a console). According to one embodiment, a set of example motions is provided. Upon receiving the rotated readings, the motion recognition module is activated to determine the type of movement of the controller. Machine learning techniques that may be implemented in the motion recognition module are used to automatically generate one or more motion recognizers from the example motions. 
         [0038]    In another embodiment, those motion recognizers can be incorporated into an end-user application with the effect that when the application provides a motion (e.g., readings from the sensors in the controller), those motion recognizers can recognize the motion and label it as an example of one of the known classes of motion. In the case that the motion is not an example of a known class of motion, those motion recognizers can collectively recognize the fact by responding that the motion is labeled “unknown” or selecting a label corresponding to one of the known classes of motion closest to the motion being determined. 
         [0039]    Further details on the motion recognition module can be found in, co-pending and commonly owned, U.S. application Ser. No. 11/486,997, which is hereby incorporated by reference. It can be appreciated that one of the important features in the present invention is that the motion recognition result is substantially independent of how the handheld device is being gripped as the data or the readings from the sensors in the controller are rotated first before being applied to the motion recognition module. 
         [0040]    As the readings from the sensors are taken over a time, and the corresponding movements are derived so that a trajectory of the controller may be derived. Similarly, the trajectory is substantially independent of how the handheld device is being gripped. 
         [0041]    The present invention has been described in sufficient detail with a certain degree of particularity. It is understood to those skilled in the art that the present disclosure of embodiments has been made by way of examples only and that numerous changes in the arrangement and combination of parts may be resorted without departing from the spirit and scope of the invention as claimed. While the embodiments discussed herein may appear to include some limitations as to the presentation of the information units, in terms of the format and arrangement, the invention has applicability well beyond such embodiment, which can be appreciated by those skilled in the art. Accordingly, the scope of the present invention is defined by the appended claims rather than the forgoing description of embodiments.