`
`
`Case 2:17-cv—00932-JLR Document 20-2 Filed 07/06/17 Page 1 of 17
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`EXHIBIT B
`
`
`
`
`
`
`
`EXHIBIT B
`
`
`
`
`
`Case 2:17-cv-00932-JLR Document 20-2 Filed 07/06/17 Page 2 of 17
`
`U.S. Patent No. 8,552,978
`
`HTC One M9
`
`SUBJECT TO CHANGE
`
`1
`
`
`
`Case 2:17-cv-00932-JLR Document 20-2 Filed 07/06/17 Page 3 of 17
`U.S. Patent No. 8,552,978 – HTC One M9
`
`Claim 10
`
`A method for compensating rotations of a 3D pointing device, comprising:
`
`HTC One M9
`
`SUBJECT TO CHANGE
`
`2
`
`
`
`Claim 10
`
`Case 2:17-cv-00932-JLR Document 20-2 Filed 07/06/17 Page 4 of 17
`U.S. Patent No. 8,552,978 – HTC One M9
`
`generating an orientation output associated with an orientation of the 3D pointing device associated with three coordinate axes of a
`global reference frame associated with Earth;
`
`When the orientation sensor is software-based, the orientation output is the attitude of the device that can be represented by the
`azimuth, pitch, and roll angles relative to the magnetic North Pole associated with a global reference frame associated with Earth.
`
`Source: https://source.android.com/devices/sensors/sensor-types#rotation_vector
`
`SUBJECT TO CHANGE
`
`3
`
`
`
`Claim 10
`
`Case 2:17-cv-00932-JLR Document 20-2 Filed 07/06/17 Page 5 of 17
`U.S. Patent No. 8,552,978 – HTC One M9
`
`generating a first signal set comprising axial accelerations associated with movements and rotations of the 3D pointing device in the
`spatial reference frame;
`
`Source: https://source.android.com/devices/sensors/sensor-types#accelerometer
`
`Source: http://developer.android.com/guide/topics/sensors/sensors_overview.html#sensors-coords
`
`SUBJECT TO CHANGE
`
`4
`
`
`
`Case 2:17-cv-00932-JLR Document 20-2 Filed 07/06/17 Page 6 of 17
`U.S. Patent No. 8,552,978 – HTC One M9
`
`Claim 10
`
`generating a second signal set associated with Earth's magnetism;
`
`The magnetometer (i.e., the compass) generates a second signal set associated with Earth’s magnetism.
`
`Source: https://source.android.com/devices/sensors/sensor-types#magnetic_field_sensor
`
`SUBJECT TO CHANGE
`
`5
`
`
`
`Claim 10
`
`Case 2:17-cv-00932-JLR Document 20-2 Filed 07/06/17 Page 7 of 17
`U.S. Patent No. 8,552,978 – HTC One M9
`
`generating the orientation output based on the first signal set, the second signal set and the rotation output or based on the first
`signal set and the second signal set;
`
`The Android source code shows generating the orientation output based on the first signal set, the second signal set and the
`rotation output.
`The handleGyro() function passes rotation output w to the predict() function and the update() function to calculate an
`orientation output, x0.
`
`Source: https://android.googlesource.com/platform/frameworks/native/+/master/services/sensorservice/Fusion.cpp
`
`SUBJECT TO CHANGE
`
`6
`
`
`
`Claim 10
`
`Case 2:17-cv-00932-JLR Document 20-2 Filed 07/06/17 Page 8 of 17
`U.S. Patent No. 8,552,978 – HTC One M9
`
`generating the orientation output based on the first signal set, the second signal set and the rotation output or based on the first
`signal set and the second signal set;
`
`The handleAcc() function passes the accelerometer measurements (first signal set) a to the update() function, which updates the
`orientation output x0.
`
`Source: https://android.googlesource.com/platform/frameworks/native/+/master/services/sensorservice/Fusion.cpp
`
`SUBJECT TO CHANGE
`
`7
`
`
`
`Claim 10
`
`Case 2:17-cv-00932-JLR Document 20-2 Filed 07/06/17 Page 9 of 17
`U.S. Patent No. 8,552,978 – HTC One M9
`
`generating the orientation output based on the first signal set, the second signal set and the rotation output or based on the first
`signal set and the second signal set;
`
`The handleMag() function passes the magnetometer measurements (second signal set) m to the same update(), which also updates
`the orientation output x0.
`
`Source: https://android.googlesource.com/platform/frameworks/native/+/master/services/sensorservice/Fusion.cpp
`
`SUBJECT TO CHANGE
`
`8
`
`
`
`Claim 10
`
`Case 2:17-cv-00932-JLR Document 20-2 Filed 07/06/17 Page 10 of 17
`U.S. Patent No. 8,552,978 – HTC One M9
`
`generating a rotation output associated with a rotation of the 3D pointing device associated with three coordinate axes of a spatial
`reference frame associated with the 3D pointing device; and
`
`Source: https://source.android.com/devices/sensors/sensor-types#gyroscope
`
`Source: http://developer.android.com/guide/topics/sensors/sensors_overview.html#sensors-coords
`
`SUBJECT TO CHANGE
`
`9
`
`
`
`Claim 10
`
`Case 2:17-cv-00932-JLR Document 20-2 Filed 07/06/17 Page 11 of 17
`U.S. Patent No. 8,552,978 – HTC One M9
`
`using the orientation output and the rotation output to generate a transformed output associated with a fixed reference frame
`associated with a display device [Court’s construction: using the orientation output and the rotation output to generate a transformed
`output that corresponds to a two-dimensional movement in a plane that is parallel to the screen of a display device],
`
`The fixed reference frame is defined by the horizontal and vertical axes of pixels on LG V20’s display device.
`
`Source: http://developer.android.com/guide/topics/sensors/sensors_overview.html#sensors-coords
`
`SUBJECT TO CHANGE
`
`10
`
`
`
`Claim 10
`
`Case 2:17-cv-00932-JLR Document 20-2 Filed 07/06/17 Page 12 of 17
`U.S. Patent No. 8,552,978 – HTC One M9
`
`using the orientation output and the rotation output to generate a transformed output associated with a fixed reference frame associated with a
`display device [Court’s construction: using the orientation output and the rotation output to generate a transformed output that corresponds to a
`two-dimensional movement in a plane that is parallel to the screen of a display device],
`
`The remapCoordinateSystem() function transforms the orientation output (inR) to a transformed output (outR), associated with a
`two dimensional movement in a plane that is parallel to the screen of a display device.
`
`Source: https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/hardware/SensorManager.java
`
`Source: http://developer.android.com/reference/android/hardware/SensorManager.html
`
`SUBJECT TO CHANGE
`
`11
`
`
`
`Claim 10
`
`Case 2:17-cv-00932-JLR Document 20-2 Filed 07/06/17 Page 13 of 17
`U.S. Patent No. 8,552,978 – HTC One M9
`
`wherein the orientation output and the rotation output is generated by a nine-axis motion sensor module;
`
`The HTC One M9 includes a 3-axis gyroscope, a 3-axis accelerometer, and a 3-axis magnetometer which form a nine-axis motion
`sensor module.
`
`Source: http://developer.android.com/guide/topics/sensors/sensors_overview.html#sensors-coords
`
`SUBJECT TO CHANGE
`
`12
`
`
`
`Claim 10
`
`Case 2:17-cv-00932-JLR Document 20-2 Filed 07/06/17 Page 14 of 17
`U.S. Patent No. 8,552,978 – HTC One M9
`
`obtaining one or more resultant deviation including a plurality of deviation angles using a plurality of measured magnetisms Mx,
`My, Mz and a plurality of predicted magnetism Mx′, My′ and Mz′ for the second signal set.
`
`The measured magnetisms Mx, My, Mz are values[0]-[2].
`
`Source: http://developer.android.com/reference/android/hardware/SensorEvent.html#values
`
`SUBJECT TO CHANGE
`
`13
`
`
`
`Claim 10
`
`Case 2:17-cv-00932-JLR Document 20-2 Filed 07/06/17 Page 15 of 17
`U.S. Patent No. 8,552,978 – HTC One M9
`
`obtaining one or more resultant deviation including a plurality of deviation angles using a plurality of measured magnetisms Mx,
`My, Mz and a plurality of predicted magnetism Mx′, My′ and Mz′ for the second signal set.
`
`The measured magnetisms, z, and a predicted magnetism, Bb, are used to calculate a global variable x0 in quaternion form.
`
`measured magnetisms
`
`predicted magnetism
`
`Source: https://android.googlesource.com/platform/frameworks/native/+/master/services/sensorservice/Fusion.cpp
`
`SUBJECT TO CHANGE
`
`14
`
`
`
`Claim 10
`
`Case 2:17-cv-00932-JLR Document 20-2 Filed 07/06/17 Page 16 of 17
`U.S. Patent No. 8,552,978 – HTC One M9
`
`obtaining one or more resultant deviation including a plurality of deviation angles using a plurality of measured magnetisms Mx,
`My, Mz and a plurality of predicted magnetism Mx′, My′ and Mz′ for the second signal set. .
`
`The global variable x0 is in quaternion form, and can easily be converted to resultant angles.
`According to Android’s developer library, the getOrientation() function “computes the device’s orientation based on the rotation
`matrix,” and returns deviation angles including the Azimuth, Pitch, and Roll angles.
`
`The getRotationMatrixFromVector() function “convert[s] a rotation vector to a rotation matrix,” and the
`getQuaternionFromVector() function “convert[s] a rotation vector to a normalized quaternion.” Therefore, the quaternion, x0, can
`be easily converted to its mathematically equivalent form, rotation matrix, and used by getOrientation() function to compute the
`orientation in its angular form.
`
`Source: https://android.googlesource.com/platform/frameworks/base/+/b267554/core/java/android/hardware/SensorManager.java
`
`SUBJECT TO CHANGE
`
`15
`
`
`
`Claim 10
`
`Case 2:17-cv-00932-JLR Document 20-2 Filed 07/06/17 Page 17 of 17
`U.S. Patent No. 8,552,978 – HTC One M9
`
`obtaining one or more resultant deviation including a plurality of deviation angles using a plurality of measured magnetisms Mx,
`My, Mz and a plurality of predicted magnetism Mx′, My′ and Mz′ for the second signal set. .
`
`Source: https://source.android.com/devices/sensors/sensor-types#rotation_vector
`
`Source: https://developer.android.com/reference/android/hardware/
`SensorManager.html#getRotationMatrixFromVector(float[], float[])
`
`Source: https://developer.android.com/reference/android/hardware/SensorManager.html#getOrientation(float[], float[])
`
`SUBJECT TO CHANGE
`
`16
`
`