`
`EXHIBIT E
`
`ZTE Exhibit 1011
`Page 1 of 18
`
`
`
`Case 1:18-cv-00571-GMS Document 1-5 Filed 04/16/18 Page 2 of 18 PageID #: 121
`
`U.S. Patent No. 8,552,978
`
`Google Pixel
`
`SUBJECT TO CHANGE
`
`1
`
`ZTE Exhibit 1011
`Page 2 of 18
`
`
`
`Case 1:18-cv-00571-GMS Document 1-5 Filed 04/16/18 Page 3 of 18 PageID #: 122
`U.S. Patent No. 8,552,978 – GOOGLE PIXEL
`
`Claim 10
`A method for compensating rotations of a 3D pointing device, comprising:
`
`
`
`• -
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Google Pixel
`
`SUBJECT TO CHANGE
`
`2
`
`ZTE Exhibit 1011
`Page 3 of 18
`
`
`
`
`Case 1 : 18-cv-00571-GM£6.I!looIifOO/JIIM1.9f1i1e~ta>Igwe 4 of 18 PagelD #: 123
`
`
`
`
`
`
`
`
`
`I
` Claim 10
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`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.
`
`
`
`Rotation vector
`
`Underlying physical sensors: Accelerometer, Magnetometer, and Gyroscope
`
`
`
`
`
`
`
`
`
`Reporting-mode: Continuous
`
`
`
`
`
`getDefaultSensor( SENSOR_ TYPE_ROTATION_VECTOR) return s a non-wake-up sensor
`
`
`
`
`
`
`
`
`A rotation vector sensor reports the orientation of the device relative to the East-North-Up coord inates frame . It is usually
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`obtained by integration of accelerometer, gyroscope, and magnetometer readings. The East-North-Up coordinate system
`
`
`
`
`
`
`
`is defined as a direct orthonormal basis where:
`
`• X paints east and is tangential to the ground.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`• Y points north and is tangential to the ground.
`
`• Z paints toward s the sky and is perpendicular to the ground.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`The orientation of the ph oDe is represented by the rotation necessary to align the East-North-Up coord inates with the
`
`
`
`
`
`
`
`
`
`phone's coordinates. That is, applying the rotation to the world frame (X.V.Z) would align them with the phone
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`coordinates (x,y,z).
`
`
`
`
`
`
`
`
`
`
`Source: https://somce.android.com/devices/sensors/sensor-types#rotation vector
`
`SUBJECT TO CHANGE
`
`
`
`
`
`3
`
`ZTE Exhibit 1011
`Page 4 of 18
`
`
`
`
`
`
`
`Case 1:18-cv-00571-GM£6.I!looIifOO/JIIM1.9f1i1e~ta>Igwe 5 of 18 PagelD #: 124
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`generating a first signal set comprising axial accelerations associated with movements and rotations of the 3D pointing device in the
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`spatial reference frame;
`
`
`Accelerometer
`
`
`Reporting-mode: Continuous
`
`
`
`
`
`
`getOefaultSensor { SENSOR_ TYPE_ACCELEROMETER) returns a non-wake-up sensor
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`An accelerometer sensor reports the acceleration of the device along the 3 sensor axes. The measured acceleration
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`includes both the physical acceleration (change of velocity) and the gravity. The measurement is reported in the x, y and
`z fields of sensors_evenU.acceleration.
`
`
`
`
`
`All values are in Sl units (m / sA2) and measure the acceleration of the device minus the force of gravity along the 3
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`SPOSgr axes
`
`Source: https://somce.android.com/devices/sensors/sensor-types#acceierometer
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`~~i
`
`
`
`
`
`
`
`i
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`x
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`1. Coordinate system (relative to a
`
`
`
`
`
`
`
`
`
`
`
`Sensor API.
`used
`
`
`
`
`
`
`
`i
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`I and poi nts up. and the Z axis points toward the outside of the screen face. In
`i
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`this system. coordinates behind the screen have negative Z values. Thi s coordi nate system is used by the
`fol lowing sensors:
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`• Acceleration sensor
`
`
`
`• Gravity sensor
`
`
`• Gyroscope
`
`
`
`
`• linear acceleration sensor
`•
`
`
`
`
`field sensor
`
`Source:
`
`
`
`
`
`
`
`
`
`SUBJECT TO CHANGE
`
`
`
`
`
`4
`
`ZTE Exhibit 1011
`Page 5 of 18
`
`
`
`
`Case 1:18-cv-00571-GM£6.I!looIifOO/JIIM1.9f1i1e~ta>Igwe 6 of 18 PagelD #: 125
`
`
`
`
`
`
`
`
`
`I
` 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.
`
`
`
`
`Magneti c field sensor
`
`
`
`Reporting-mode: Con tinuous
`
`getOefaultSensor( SENSOR_ TYPE_MAGNETIC_FIELD) returns a non-wake-up sensor
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`A magnetic field sensor (also known as magnetometer) reports the ambient magnetic field, as measured along the 3
`sensor axes.
`
`
`
`The measurement is reported in the x, y and z fields of sensors_event_t .magnetic and all values are in micro-Tesla
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`(uT).
`
`
`
`
`
`
`Source: bttps:/ / somce .android.coml devices/sensors/sensor -types#magnetic _field_sensor
`
`SUBJECT TO CHANGE
`
`
`
`
`
`5
`
`ZTE Exhibit 1011
`Page 6 of 18
`
`
`
`,
`
`Case l'18-cv-00571-GMS; 1!loo1ifOO/J1Il;519f1i1e~tlPIX'mle 7 of 18 PagelD # ' 126
`
`
`
`
`
`
`
`,
`,
`
`
`I
`
`
`Claim 10
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`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 0 function passes rotation output w to the predict 0 function and the update 0 f'tmction to calculate an
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`orientation output, xo.
`
`
`
`voi d Fu s i on :: ha nd l eG yro (eons t vee3_ t & w, flo a t dT)
`
`
`
`
`
`
`
`313
`
`
`
`
`if ( l e he e kI ni t Complete (GYRO , w, dT) )
`
`314
`
`
`re t urn ;
`315
`
`
`
`
`
`
`
`
`vo i d Fu s i on : : pre di e t (eo ns t vee3 - t & w, fl oa t dT) {
`43e
`
`
`,
`
`
`
`
`
`eo ns t vee4 t q = xe '
`431
`
`
`-
`
`
`
`xe = O*q ;
`
`
`
`
`
`
`
`
`
`
`
`vo id Fus i on : : updat e (eons t vee3 - t & z , eons t vee3 - t & Bi , fl oa t s i gma) {
`
`
`
`
`vee4 - t q (xe ) ;
`
`529
`
`53e
`
`531
`
`
`q += ge t F(q)*( e . 5f *dq) ;
`
`532
`
`
`
`xe = nor mal ize _quat (q) ;
`
`
`533
`
`
`
`Source: https://android.googlesomce .com/platfonnlframeworks/native/+/masterlselv ices/sensorservicelFusion. cpp
`
`485
`
`
`495
`
`496
`
`
`
`
`
`
`
`eons t vee3 t e (z - Bb ) ;
`-
`
`
`
`
`eons t vee3 - t dq ( K[e j* e ) ;
`
`SUBJECT TO CHANGE
`
`
`
`
`
`6
`
`ZTE Exhibit 1011
`Page 7 of 18
`
`
`
`
`Case 1 : 18-cv-00571-GM£6.I!looIifOO/JIIM1.9f1i1e~ta>Igwe 8 of 18 PagelD #: 127
`
`
`
`
`
`
`
`
`
`I
`
`
`
`
`Claim 10
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`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 0 fimction passes the accelerometer measurements (first signal set) a to the update 0 ftmction, which updates the
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`orientation output xO.
`
`320
`
`321
`
`322
`
`
`
`
`
`
`
`
`
`
`s t atu s_ t Fus ion :: ha ndleAee (eonst vee3_ t & a , flo at dT ) {
`
`
`
`
`
`i f ( !e hee klni t Comple t e (ACC , a , dT))
`
`
`
`re t ur n BAD_ VA LUE ;
`
`495
`
`496
`
`
`
`
`
`
`
`
`
`
`
`
`
`vo id Fus i on :: upd at e (eons t vee3 _t & z , eo ns t vee3 _t & Bi , fl oat s i gma ) {
`
`
`
`vee4_t q (x0 ) ;
`
`
`
`529
`
`530
`
`531
`
`532
`
`533
`
`
`
`
`
`eo ns t ve e3 t e (z - Bb ) ;
`
`
`
`
`
`eo ns t vee3 t dq ( K[8J* e ) ;
`
`
`
`q += ge t F(q )*( 0 . 5f *dq ) ;
`
`
`
`x8 = no r ma l i ze_qu a t (q ) ;
`
`
`
`
`Source: https://android. googlesomce.com/platfonnlframeworks/native/+Imasterlservices/sensorservicelFusion.cpp
`
`SUBJECT TO CHANGE
`
`
`
`
`
`1
`
`ZTE Exhibit 1011
`Page 8 of 18
`
`
`
`
`Case 1 : 18-cv-00 571-G M£6.I!looIifOO/JIIM1.9f1i1e~ta>Igwe 9 of 18 PagelD #: 128
`
`
`
`
`
`
`
`
`I
`
`
`
`
`Claim 10
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`generating the orientation output based on the first signal set, the second signal set and the rotation output or based all the first
`
`
`
`
`
`
`
`signal set and the second signal set;
`
`The handleMag 0 fimction passes the magnetometer measurements (second signal set) m to the same update 0 , which also updates
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`the orientation output xO .
`
`353
`
`
`354
`
`355
`
`s t atu s_ t Fus ion :: ha ndl eMag (cons t vec3_ t & m) {
`
`
`
`
`
`
`
`if (; chec kl ni t Complete (MAG, m))
`
`
`
`r e turn BAD VALUE ;
`
`
`495
`496
`
`
`
`
`
`
`
`
`
`
`
`
`vo id Fus i on :: upd at e (cons t vec3 _t & z , co nst vec3 _t & Bi , fl oat s i gma ) {
`
`
`vec4_t q (x0 ) ;
`
`
`529
`
`
`530
`531
`
`
`532
`533
`
`
`
`
`
`co ns t ve c3 t e (z - Bb ) ;
`
`
`
`
`co nst vec3 t dq ( K[0J* e ) ;
`
`
`
`
`q += ge t F(q )*( 0 . 5f *dq ) i
`
`
`x0 = no r ma l i ze_qu a t (q ) ;
`
`
`
`
`
`
`Source: https://android.googlesomce.com/platfonnlframeworks/native/+Imasterlservices/sensorservicelFusion.cpp
`
`SUBJECT TO CHANGE
`
`
`
`
`
`8
`
`ZTE Exhibit 1011
`Page 9 of 18
`
`
`
`,
`
`
`
`
`
`
`
`Case 1'18-cv-00571-GMSs INOOIl1liW!A552 ~pJlXlme 10 of 18 PagelD # - 129
`
`- -
`"
`
`I
`
`
`Claim 10
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`generating a rotation outllut 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
`
`
`Gyroscope
`
`Reporting-mode: Continuous
`
`
`
`getDefa ult Sensor ( SENSOR_TYPE_GYROSCOPE) returns a non-wake-up sensor
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`A avroscooe sensor reoorts the rate of rot ation of the device around the 3 sensor axes.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Rotation is positive in the counterclockwise di rection (righI-hand rule) . That is, an observer looki ng from some posit ive
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`location on the x, yor z axis at a device positioned on t he origin wou ld report positive rotation if the device appeared to
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`be rotating counter clockwise . Note that this is the standard mathematica l derln ition of positive rotation and does not
`
`
`
`
`
`
`
`,!!.gre ~ with the aefOs~ ace defini tion of roll.
`
`
`
`
`
`
`
`Source: https://som ce.android.com/ devices/ sensor s/ sensor -types#gyroscope
`
`
`
`
`Sensor Coordinate System
`
`
`y
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`In general. the sensor framework uses a standard 3-axis coordinate system to express data values. For most
`
`
`
`
`
`
`.
`sensors, the I
`iSI
`·
`. ~to th e
`.
`is l
`,
`.
`.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`. When a device is held in its default orientation, the X axis is horizontal and poi nts to
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`the right. the Y axis is vertical and poi nts up, and the Z axis points toward the outside of the screen face. In
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`this system, coordinates behind the screen have negative Z values. This coordi nate system is used by the
`
`
`fol lowing sensors:
`
`x
`
`.... ,
`
`• Acceleration sensor
`
`
`
`• Gravity sensor
`
`
`
`• Gyroscope
`
`
`• linear acceleration sensor
`
`
`
`
`
`
`
`
`
`
`Figure 1. Coordinate system (relative to a
`• Geomagnetic field sensor
`
`
`
`
`
`
`
`
`
`
`
`device) t hat's used by the Sensor API.
`
`
`
`
`
`Source: http://developer.an dr oid.com / guide/ topics/ sensor s/ sen sor s overview.html #sensors-coords
`
`-
`
`SUBJECT TO CHANGE
`
`
`
`
`
`9
`
`ZTE Exhibit 1011
`Page 10 of 18
`
`
`
`
`
`
`
`
`
`
` Case 1:18-cv-00571-GM6.s.INOOIl1li&l!A552,~P@llJe 11 of 18 PagelD #: 130
`
`
`
`
`
` Claim 10
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`using the orientation output and the rotation output to generate a transfonned output associated with a fixed reference frame
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`associated with a display device [Court 's constmction: using the orientation output and the rotation output to generate a transfonned
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`output that cOlTesponds to a two-dimensional movement in a plane that is parallel to the screen of a display device],
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`TIle fixed reference frame is defined by the horizontal and vertical axes of pixels on HTC 10
`
`
`
`
`device .
`
`•
`
`
`y
`
`
`
`
`
`
`
`Figure 1. Coordinat e system (relative to a
`
`
`
`
`device) t hat 's used by t he Sensor API.
`
`
`
`
`
`
`
`
`
`
`
`
`Source: http://developer.android. coml guide/topics/sensors/ sensors_overview .html#sensors-coords
`
`
`
`
`SUBJECT TO CHANGE
`
`
`10
`
`ZTE Exhibit 1011
`Page 11 of 18
`
`
`
`
`
`
`
`
`
`
` Case 1:18-cv-00571-GM6.s.INOOIl1li&l!A552,~P@llJe 12 of 18 PagelD #: 131
`
`
`
`
`
` Claim 10
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`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 constmction: using the orientation output and the rotation output to generate a transfol1ned
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`output that cOlTesponds to a two-dimensional movement in a plane that is parallel to the screen of a display device],
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Google sells the Google Daydream View, which promotes and induces use of CyWee 's patents. For example, the screen below
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`shows a transformed output that corresponds to movements of the Google Pixel via AR and/or VR apps.
`
`
`
`Source: https://vr.google.com/daydream/smartphonevr/
`
`SUBJECT TO CHANGE
`
`
`
`
`
`11
`
`ZTE Exhibit 1011
`Page 12 of 18
`
`
`
`
`
`
`Case 1:18-cv-00571-GM6.s.INOOIl1li&l!A552,~P@llJe 13 of 18 PagelD #: 132
`
`
`
`
`
`
`
`I
`
`
` Claim 10
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`using the orientation output and the rotation output to generate a transf0I111ed output associated with a rlXed reference frame assoc iated with a
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`display device [Com1 's construction: using the orientation output and the rotation output to generate a transfonned output that cOlTespollds to a
`
`
`
`
`
`
`
`
`
`
`
`
`
`two-dimensional movement in a plane that is parallel to the screen of a display device],
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`The r emapCoordinateSystemO fimction transfol1ns the orientation output (inR) to a fransfonned output (outR), associated with a
`
`
`two dimensionaimovement in a plane that is parallel to the screen of a display device .
`
`
`
`
`
`
`
`
`
`
`
`
`
`public 5tlltic booteen r em8p(oordi n eteSystem ( flQlIt [) 1nll , in t X, in t Y, flollt [] outR ) {
`
`
`
`
`
`
`
`
`
`
`
`
`i f ( ;nR _. ou t R) {
`
`
`
`
`
`f inal f loa t (] t ~mp -
`
`
`
`
`s T ~mpM a t r1 x ;
`synchroni zed ( temp ) {
`
`
`
`II we don ' t e xpec t
`t o have a lot o f cont ention
`
`
`
`
`
`
`
`
`
`
`i f ( r emapCoor dina t eSys t eml mp\ ( inR , X, Y, t emp»
`
`
`
`
`f inal int si ze - out R. lengt h ;
`
`
`
`
`
`f or ( 1nt 1 - 9 ; 1 < size ; 1H ) {
`
`
`
`
`
`
`
`outR ( i ) -
`temp [ i ) ;
`
`
`
`
`
`
`
`
`
`1358
`1351
`
`
`1352
`
`1353
`
`1354
`
`1355
`
`1356
`1357
`
`
`1358
`
`1359
`
`
`
`1362
`
`1363
`1364
`
`}
`. 365
`
`
`
`
`
`
`
`
`
`Source: https:l/android.googlesomce.colll/platfonnlfrallleworkslbase/+1lllaster/core/javaiandroid/hardware/SensorManagerjava
`
`1369 ,
`
`
`)
`re t urn t rue ;
`
`
`
`
`)
`
`
`)
`
`
`re t urn remapCoo rd i na t ~Sys t ~m l mpl ( 1 nR , X, Y, out R) ;
`
`
`
`
`
`
`
`
`
`
`
`
`boolean r emapCoord i nateSystem (float[] inR,
`i nt X,
`
`
`int Y,
`
`
`flollt[] outR)
`
`
`
`Rotates the supplied rotation matrix so it is eKpressed in a different coord inate system. This is typically used when an application needs to
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`compute the three orientation angles of the device (see getorienut ion( fl o.t[ 1, fl o.t [ ]»
`
`
`
`
`
`
`
`
`
`
`
`in a different coordinate system.
`
`
`
`When the rotation matrix is used for drawing (for instance wi th OpenGL ES), it usually doesn't need to be transformed by this fu nction, unless
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`the screen is physically rotated, in which case you can use Oi sphy. getRotiltion() to retrieve the current rotat ion of the screen. Note that
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`because the user is generally free to rotate their screen, you often should consider the rotati on in deciding the parameters to use here.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Source: ht1p://develover.android.cOInlreference/android/hardware/SensorMana ger.htllll
`SUBJECT TO CHANGE
`
`
`
`
`12
`
`
`ZTE Exhibit 1011
`Page 13 of 18
`
`
`
`Case 1:18-cv-00571-GMS Document 1-5 Filed 04/16/18 Page 14 of 18 PageID #: 133
`U.S. Patent No. 8,552,978 – GOOGLE PIXEL
`
`Claim 10
`wherein the orientation output and the rotation output is generated by a nine-axis motion sensor module;
`
`The Google Pixel includes a 3-axis gyroscope, a 3-axis accelerometer, and a 3-axis magnetometer which form a nine-axis motion
`sensor module.
`
`SUBJECT TO CHANGE
`
`13
`
`ZTE Exhibit 1011
`Page 14 of 18
`
`
`
`,
`Case 1'18-ev-00571-GMSs INOOIl1liW!A552 ~pJlXlme 15 of 18 PagelD # ' 134
`
`
`
`
`
`
`
`
`"
`
`,
`
`,
`
`I
`
` Claim 10
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`obtaining one or more resultant deviation including a plmality of deviation angles using a pim-abty 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 va l ues [oJ - [2 J.
`
` Sensor . TYPE MAGNETIC FIELD UNCALIBRATEO:
`
`
`
`-
`- -
`Similar to TYPE_MAGNETIC_FIELD. but the hard iron calibration is reported separately instead of being
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`included in the measurement. Factory cal ibration and temperature compensation wi ll still be appl ied to
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`the "uncal ibrated" measurement. Assumptions that the magnetic field is due to the Earth's poles is
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`avoided.
`
`
`
`
`
`
`
`The values array is shown below:
`
`
`
`• values!O! = x...uncalib
`
`
`
`
`• valuesp ! = y uncalib
`
`
`
`• values!2! = ,-unealib
`
`
`
`• values!3! = x...bias
`
`
`
`• values!4! = y_bias
`
`
`
`• values!5! = ,-bias
`
`
`
`
`x...uncalib, y_uncalib, ,-uncalib are the measured magnetic fie ld in X, y, Z axes. Soft iron and
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`temperature cal ibrations are appl ied. But the hard iron cal ibration is not applied. The val ues are in
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`miero-Tesla (uT).
`
`
`
`x...bias, y_bias, ,-bias give the iron bias estimated in X, Y, Z axes. Each field is a component of the
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`estimated hard iron calibration. The val ues are in micro-Tesla (uT).
`
`
`
`
`
`
`
`
`
`
`
`Hard iron - These distortions arise due to the magnetized iron. steel or permanenet magnets on the
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`device. Soft iron - These distortions arise due to the interaction with the earth's magentic field.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Source: http://developer.android. comlreferencel androidlhardware/SensorE vent .html#Val ues
`
`SUBJECT TO CHANGE
`
`
`
`
`
`14
`
`ZTE Exhibit 1011
`Page 15 of 18
`
`
`
`
`
`,
`. .
`
`
`
`
`
`
`
` Case 1'18-cv-00571-GMSs INOOIl1liW!A552 ~pJlXlme 16 of 18 PagelD # . 135
`"
`
`
`I
`
`
`Claim 10
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`obtaining one or more resultant deviation including a plmality o f deviation angles using a pIm-abty 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 xO in quatemion foml.
`
`
`
`measured magnetisms
`
`lI pd ate (m, Bm, mPa r am. magS td ev ) ;
`
`
`
`
`I
`
`
`
`
`1
`I
`
`
`342
`
`( ~
`
`
`
`vo id FliS l on : : lIpc at e eonst vee3 _t & z , eo nst vee3 - t & Bi , n oat s igma ) {I
`.
`
`
`
`
`
`
`
`
`
`
`
`
`eons t ve e3 - t Bb (M Bi ) ;
`
`
`
`
`eo ns t vee3 t e (z - Bb lo i
`
`
`
`
`-
`eo ns t vee3 - t dq (K[0]*e ) ;
`
`
`
`
`
`
`predicted magnetism
`
`q +~ ge t F(q)*( 0 . 5f *dq ) ;
`
`
`
`
`x0 ~ no r ma l i ze _qll at (q) ;
`
`
`
`495
`
`499
`
`
`529
`
`530
`
`531
`
`532
`
`533
`
`
`
`
`Source: hftps://android.googlesource.com/platfonll/frameworks/llative/+/m3ster/services/sensorselv iceiFusion.cpp
`
`SUBJECT TO CHANGE
`
`
`
`
`
`
` 15
`
`ZTE Exhibit 1011
`Page 16 of 18
`
`
`
`
`
`
`
`
`
`,
`
`
`
` Case 1'18-cv-00571-GMSs INOOIl1liW!A552 ~pJlXlme 17 of 18 PagelD # - 136
`- -
`"
`
`
`
`
`
`
`I
`
` Claim 10
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`obtaining one or more resultant deviation including a plurality of deviation angles using a plm-ality of measured magnetislllS Mx,
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`My, Mz and a plurality of predicted magnetism :Mx', My' and Mz' for the second signal set.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`The global variable xO is in quateruion fonn , and can easily be convel1ed to resultant angles.
`According to Android's developer library, the getOrientation 0 nmction "computes the device 's orientation based all the rotation
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`matrix," and returns deviation angles including the Azimuth, Pitch, and Roll angles.
`
`Added iJl API level 3
`
`
`
`
`
`
`
`
`getOrientation
`
`flo .. t ( I getOrientiltion (flOdt[ I '.
`
`
`
`
`
`float (] values)
`
`
`
`
`
`
`
`
`
`
`
`
`Computes the device's orientation based on the rotation matrix.
`
`When it returns, the array values are as follows:
`
`
`
`
`
`
`
`
`
`
`• values[Oj: Azimuth, angle of rotation about the -z axis. This value represents the angle between the device's y axis and the magnetic north pole. When
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`facing north, this angle is 0, when facing south, this angle is n. Likewise, when facing east, this angle is nl2, and when facing west, this angle is -nl2.
`The range of values is -n to n.
`
`
`
`
`
`
`
`
`• values!,]: Pitch, angle of rotation about the x axis. This value represents the angle between a plane parallel to the device's screen and a plane
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`parallel to the ground. Assuming that the bottom edge of the device faces the user and that the screen is face-up, tilting the top edge of the device
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`toward the ground creates a positive pitch angle. The range of values is -n to n.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`• values!2]: Roll, angle of rotation about the y axis. This value represents the angle between a plane perpendicular to the device's screen and a plane
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`perpendicular to the ground. Assuming that the bottom edge of the device faces the user and that the screen is face-up, tilting the left edge of the
`device toward the qround creates a positive roll anqle. The range of values is -nJ2 to nl2.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`The getRotationMatrixFromVector O fimction "convert[s] a rotation vector to a rotation matrix," and the
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`getQuaternionFromVector () nmction "convert[s] a rotation vector to a nonnalized quatemion. " 111erefore, the quatemion, xO, can
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`be easily converted to its mathematically equivalent fonn, rotation matrix, and used by getOrientation O fimction to compute the
`
`
`
`
`
`orientation in its angular fonn.
`
`
`
`Source : https://developer. android.comlreference/androidlhardware/SensorMan ager.html#getOrientation(float[] ,%20float[])
`
`SUBJECT TO CHANGE
`
`
`
`
`
`16
`
`ZTE Exhibit 1011
`Page 17 of 18
`
`
`
`,
`
`
`
` Case 1'18-cv-00571-GMSs INOOIl1liW!A552 ~pJlXlme 18 of 18 PagelD # - 137
`-
`"
`
`
`
`
`
`
`
`
`
`
`
`I
`
` Claim 10
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`obtaining one or more resultant deviation including a plurality of deviation angles using a plm-ality of measured magnetislllS Mx,
`
` My, Mz and a plurality of predicted magnetism :Mx', My' and Mz' for the second signal set.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Rotation vector
`
`
`
`
`
`
`
`
`
`
`Underlying physical sensors: Accelerometer, Magnetometer, and Gyroscope
`
`Reporting-mode: Continuous
`
`
`
`
`
`
`get Defaul tSensor (SENSOR_ TYPE_ROTATION_VECTOR) returns 11 non-wake-up sensor
`
`
`
`
`
`
`
`
`
`
`
`
`SourcE': hllps ://sousce_""droid_comIdn~ceslsensor-sloensor-types#rotation _ VNOIOr
`
`gelunenlallOn I
`
`
`
`
`
`
`f loat! ] glt{)ril~tatio~ (float [ ] R,
`
`
`
`
`
`float! ] volu .. )
`
`
`
`
`
`
`
`
`
`
`Computes the dev ice's orienta tion based on the rotation matrix.
`
`
`
`
`
`
`
`
`
`When it retums , the array values are as follows:
`
`'getRotati on tv! at rixF rom 'Vector
`
`
`
`
`
`
`
`~oid getRotationMatrixfromvector (float[j R,
`
`
`float [j rotationVector)
`
`
`
`
`
`added i n ~ Ie'ffl 9
`
`
`
`
`
`
`
`
`
`
`
`
`
`Helper function to convert a rotation vector to a rotation matrix. Given a rotation vector
`
`
`
`
`
`
`
`
`
`
`
`(presumab~ from a ROTATION..VECTOR sensor), returns a 9 or 16 element rotation matrix in the
`,~~ R. R must have length 9 or 1 fl. II R.leng!h :: 9, the following matrix is leturned:
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`SOUIT.E': hllps:/ /dn-eloper.alldroid.com/ rcference/alldroidibardwarc/
`
`
`
`
`SCllsorManager hlml#getRolalionMalrixFrom V c:clor(float[], %20floal[])
`
`added ", A~ Ie ... J
`
`
`
`
`
`IS va ue represen s me angle De ween me oeVlces y aXIs ano InC magne IC norm po e , nnen
`• va UeS\UI: ilz/mum, ang e 0 rO la Ion aooul Ine -z aXIs.
`facing north, th iS angle is O. when facing south, this angle is n. Likewise. when faCing east, this ang le is nl2. and when facing west, th is angle is -nl2,
`
`
`
`
`
`
`
`
`The range of values is -n to n,
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`o values!1]: Pirch. angle of rotation alJout t he x ax is, This va lue represents the angle between a plane para ll el to the device's screen and a plane para llel
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`to the ground. Assum ing that the bottom edge of the dev ice faces the user and Ihallhe screen is face·up, tilting the top edge of the device towa rd
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`the ground creates a positive pitch angle. The range of values is -n to n.
`
`
`o values!2]: Roll, angle of rotation about the y axis, This va lue represents the ang le betwe€n a plane perpendicular to the device's scre€n and a plane
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`perp!!ndicular to the ground. Assuming thallhe lJo!tom edge of the device faces the UMr and Iha t the scree n is face-up, tilling the leI! ed9@ofthe
`,
`
`,,,, ,"
`
`
`
`So ul·ce: httP""jfde\-dopn-_""droid comf..,f~elandroidihardwllfelSensorManager_httnl#gc:iOrieotation(f1oar(I.%20floar(D
`
`SUBJECT TO CHANGE
`
`
`
`
`11
`
`
`ZTE Exhibit 1011
`Page 18 of 18
`
`