<<

US009205828B1

(12) United States Patent (10) Patent No.: US 9.205,828 B1 LOmbroZ0 et al. (45) Date of Patent: Dec. 8, 2015

(54) METHOD AND APPARATUS FOR 2003/0050742 A1 3/2003 Sakamoto et al...... TO1/1 DETERMINING VEHICLE LOCATION 2003/0220731 A1* 11/2003 Zierolf ...... 7O 1/71 2004/0163860 A1* 8, 2004 Matsuzaki et al...... 180,652 BASED ON MOTOR FEEDBACK 2005/02183.12 A1* 10/2005 Thannikary ...... 250,231.13 2007/0202991 A1* 8, 2007 Matsumura et al...... 477,174 (75) Inventors: Peter Craig Lombrozo, Santa Cruz, CA 2008.0078608 A1* 4, 2008 Hara et al...... 180,446 2008/O1890 12 A1* 8, 2008 Kaufmann ...... TO1/41 (US); Carsten Jensen, San Francisco, 2008/0309267 A1* 12/2008 Cheng ...... 318, 400.04 CA (US); Andrew Barton-Sweeney, 2010, 0123426 A1* 5, 2010 Nashiki et al...... 318,701 Berkeley, CA (US); Russell Smith, 2010/0168940 A1* 7/2010 King ...... TO1/20 Santa Clara, CA (US); Daniel Lynn 2010/0274607 A1* 10/2010 Carresjo et al. 705/7 2011/0295457 A1* 12/2011 Linda et al...... 701/29 Larner, San Jose, CA (US) 2012/0109416 A1* 5, 2012 Mizutani et al...... 701 1 2012/01851 22 A1* 7, 2012 Sullivan et al. .... 701.23 (73) Assignee: Google Inc., Mountain View, CA (US) 2012fO245765 A1 9, 2012 Medwin et al...... 7O1/2 2012/0265439 A1 * 10/2012 Radner ...... 701 468 (*) Notice: Subject to any disclaimer, the term of this 2013/0134967 A1* 5, 2013 Kaufmann et al...... 324,207.25 patent is extended or adjusted under 35 U.S.C. 154(b) by 10 days. OTHER PUBLICATIONS iPedia net: Free Information Center, “What is of Dis (21) Appl. No.: 13/539,030 placement?”, downloaded on Sep. 10, 2014 from

FRON REAR

U.S. Patent Dec. 8, 2015 Sheet 1 of 20 US 9.205,828 B1

U.S. Patent Dec. 8, 2015 Sheet 2 of 20 US 9.205,828 B1

Vehicle 101

Power Train 22O

Steering System 230 Vehicle Control Unit System 240

Braking System 250

210 Fig. 2 U.S. Patent Dec. 8, 2015 Sheet 3 of 20 US 9.205,828 B1

340a w w

Device(s)ansfer )

U.S. Patent Dec. 8, 2015 Sheet 5 of 20 US 9.205,828 B1

s s U.S. Patent Dec. 8, 2015 Sheet 6 of 20 US 9.205,828 B1

teerina System 230

Fig. 4A U.S. Patent US 9.205,828 B1

U.S. Patent Dec. 8, 2015 Sheet 8 of 20 US 9.205,828 B1

s

U.S. Patent Dec. 8, 2015 Sheet 9 of 20 US 9.205,828 B1

Vehicle Front

340a &8 8x 340b

DVehicle Right

Vehicle Rear Fig. 4E

340a 340b U.S. Patent Dec. 8, 2015 Sheet 10 of 20 US 9.205,828 B1

210 Vehicle Control Unit 510 Processor 520 530

540 Fig. 5 U.S. Patent Dec. 8, 2015 Sheet 11 of 20 US 9.205,828 B1

610 Determine a First Location Li of a Vehicle at T.

Receive Signal Feedback That is indicative of 620 a Displacement of a Rotor of a Motor that is Part of the Vehicle's Train

Determine, Based At Least in Part on the 630 Signal Feedback, a Location L2 of the Vehicle at Time T2

Control the Operation of the Vehicle Based on 640 the Determined Location U.S. Patent Dec. 8, 2015 Sheet 12 of 20 US 9.205,828 B1

From Task 610

700 rooroooooooooooooooo-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-ooroooooooooooooooooooooooooooooooooooooooo Task. 630. Determine. Based At Least in Part on the Signal Feedback, a Second Location L2 of the Vehicle at Time T2 710 Determine a of the Rotor 320-1 Based on the Received Signal

720 Adjust the Determined Velocity to Produce an Adjusted Rotor Velocity

730 Determine the Velocity of One or More Wheels of the Vehicle Based on the Adjusted Rotor Velocity

740 Determine a Location L2 of the Vehicle 101 Based on the Velocity of One or More of the Wheels of the Vehicle

To Task 630 F ig 7 U.S. Patent Dec. 8, 2015 Sheet 13 of 20 US 9.205,828 B1

From Task 710

800

Compensate for a Disengagement of the Motor 320 from the Wheels of the Vehicle

To Task 730 Fig. 8 U.S. Patent Dec. 8, 2015 Sheet 14 of 20 US 9.205,828 B1

900

Determine the Orientation of a Rotor Multiple 910 in A Single Rotation, The Rotor Belonging to a Motor that is Part of a Vehicle's Power Train

Determine at Least One of Angular 920 Displacement of the Rotor Around its Access of Rotation or the N-th of the

Determine at Least One of Linear Displacement 930 of the Vehicle or the N-th Derivative of the Linear Displacement of the Vehicle

Use the Determined Displacement of the 940 Vehicle or the N-th Derivative of the Displacement to Control the Operation of the Vehicle

End U.S. Patent Dec. 8, 2015 Sheet 15 of 20 US 9.205,828 B1

O0|'fil

096XSeLuJOJ

GOL'6|+

do01Ionuo.O VOI'6|- U.S. Patent Dec. 8, 2015 Sheet 16 of 20 US 9.205,828 B1

1100 1110 Determine a First Location L1 of a Vehicle at Time T,

Receive Signal Feedback That is indicative of 1120 a Displacement of a Rotor of a Motor that is Part of the Vehicle's Steering System

Determine, Based At Least in Part on the 1130 Signal, a Second Location L2 of the Vehicle at Time T2

Control the Operation of the Vehicle Based on 1140 the Determined Location& U.S. Patent Dec. 8, 2015 Sheet 17 of 20 US 9.205,828 B1

From Task 1120

1200 Task: 1130. Determine. Based At Least in Part on the Signal, a Second Location L2 of the Vehicle at Time I2 1210 Compensate For An Axial Misalignment Between the Rotor 440a and the Resolver 450

1220 Determine a Displacement of the Rotor 440-1 Based on the Received Signal

1230 Determine an indication of Steering Direction Which One or More Wheels of the Vehicle are Pointed To

1240 Determine a Location L2 of the Vehicle 101 Based on the Determined indication of Steering Direction

To Task 1140 Fig. 12 U.S. Patent Dec. 8, 2015 Sheet 18 of 20 US 9.205,828 B1

N -61-17uo?eooT 9| U.S. Patent Dec. 8, 2015 Sheet 19 of 20 US 9.205,828 B1

1400 Determine the Orientation of a Rotor Multiple 1410 Times in A Single Rotation, The Rotor Belonging to a Motor that is Part of a Vehicle's Steering System

Determine at Least One of Angular 1420 Displacement of the Rotor Around its Access of Rotation or the N-th Derivative of the Angular Displacement

Determine at Least One of Angular 1430 Displacement of Wheels of the Vehicle or the N-th Derivative of the Angular Displacement of the Vehicle's Wheels

Use the Determined Displacement of the

1440 Vehicle Wheels or the N-th Derivative of the Displacement of the Vehicle Wheels to Control the Operation of the Vehicle

End Fig. 14

US 9,205,828 B1 1. 2 METHOD AND APPARATUS FOR rotor may further be determined based on a speed ratio of the DETERMINING VEHICLE LOCATION coupling between the first rotor and the second rotor. The BASED ON MOTOR FEEDBACK vehicle may further include a clutch and the processor may be configured to detect whether the clutch is engaged or disen BACKGROUND gaged. The at least one of the braking system, the steering system, and the acceleration system may further be operated Autonomous vehicles use artificial intelligence to aid in the based on the determined displacement of the rotor or the transport of passengers. When travelling from one location to derivative of the displacement of the rotor only when it is another, autonomous vehicles may use inertial navigation determined that the clutch is engaged. systems to determine their location and ensure that they are 10 In another aspect, a method for controlling the operation of following a correct course. Such inertial navigation systems a vehicle is provided. The vehicle includes a motor that is part may use a computer and sensors to continuously of a power train. The motor includes a first rotor and a first calculate, via dead reckoning, the of vehicles on the stator. The method includes receiving a first signal that is road. produced by a first device and indicates a first value of at least In some instances, the motion sensors may include wheel 15 one of location of the vehicle, displacement of the vehicle, or sensors for measuring the speed and direction of the wheels of a derivative of the displacement of the vehicle. The method autonomous vehicles. Using wheel sensors, however, may further includes receiving a second signal indicating an ori present several challenges. Wheel sensors are ordinarily entation of the first rotor relative to the first stator. The second attached to the wheels of vehicles where they are exposed to signal is produced by a second device that is coupled to the harsh operating conditions. For instance, wheel sensors may first rotor. The method further includes determining, based on be easily damaged when a vehicle runs over a pothole or the first signal, at least one of an angular displacement of the collides with a curb. Furthermore, some wheel sensors, such first rotor and a derivative of the angular displacement the first as those found in anti-lock braking systems (ABS), may be rotor. The method further includes determining a second ambiguous when a vehicle changes from forward to reverse value of the at least one of a location of the vehicle, a dis motion. Thus, the integration of wheel sensors may be chal 25 placement of the vehicle and a derivative of the displacement lenging from a design perspective and it may drive up the of the vehicle. The second value is determined based on theat complexity and cost of wheel assemblies used in vehicles that least one of the angular displacement of the first rotor and a use inertial navigation. derivative of the angular displacement of the first rotor. The method further includes comparing the first value with the SUMMARY 30 second value, and operating at least one of the braking sys tem, the steering system, and the acceleration system based In one aspect, a vehicle is provided that includes an accel on the first signal only when it is determined that the first eration system, a steering system, a braking system, a power value matches the second value. train, a displacement measuring device, and a processor. The The first device may further be at least one of a speedom power train includes an electric motor including a first rotor 35 eter, an accelerometer, or a geo-location receiver. The second disposed within a first stator. The displacement measuring device may further be one of a resolver or a rotary encoder. device is coupled to the first rotor. The processor is coupled to The first signal may further indicate at least one of speed, one or more of the steering system, the acceleration system, direction of rotation, displacement, location, or acceleration and the braking system. The processor is configured to of the first rotor. The second value may further be determined receive, from the displacement measuring device, a signal 40 based on a transfer function that compensates for misalign that indicates an orientation of the first rotor relative to the ment between the first rotor and the displacement measuring first stator and determine at least one of displacement of the device. In some instances the second signal may further be first rotor or a derivative of displacement of the first rotor sampled at a predetermined sampling rate. The at least one of based on the received signal. The processor is further config the angular displacement of the first rotor and the derivative of ured to operate at least one of the braking system, the steering 45 the angular displacement of the rotor is determined based on system, and the acceleration system based on the determined at least two samples of the second signal. displacement of the first rotor or the derivative of the displace In yet another aspect, a steering system is provided that ment of the first rotor. In some instances, the displacement includes an electric steering motor, a braking system, an measuring device may be a resolver. The signal may further acceleration system, and a processor coupled to the steering indicate at least one of speed, direction of rotation, displace 50 system and the braking system. The electric steering motor is ment, or acceleration of the first rotor. coupled to a first wheel hub and configured to rotate the first The signal may further be sampled by the processor at a wheel hub about a steering axis. The electric steering motor predetermined sampling rate. The displacement or derivative includes a first rotor and a first stator. The processor is con of displacement of the rotor may further be determined based figured to receive a signal that indicates an orientation of the on one or more signal samples. The displacement or deriva 55 first rotor relative to the first stator, determine a location of the tive of displacement of the rotor may further be determined vehicle based on the signal, and operate at least one of the repeatedly at a rate of multiple times per second. The proces braking system, acceleration system, and the steering system sor may further be configured to determine at least one of based on the determined location of the vehicle. The signal velocity, acceleration, and rate of acceleration of the vehicle may further indicate at least one of speed, direction of rota based on the signal received from the displacement measur 60 tion, displacement, location, or acceleration of the first rotor. ing device. The operation of at least one of the braking sys The displacement measuring device may further be one of a tem, the steering system, and the acceleration system may resolver or a rotary encoder. further be based on the determined velocity, acceleration, The processor may further be configured to determine a and/or rate of acceleration of the vehicle. displacement of the first wheel hub in a vehicle left-right The displacement measuring device may further include a 65 direction based on the signal. The location of the vehicle may second rotor coupled to the first rotor of the electric motor. further be determined based on the determined displacement. The displacement or derivative of displacement of the first The processor may further be configured to determine a steer US 9,205,828 B1 3 4 ing position of the first wheel hub based on the signal. The FIG. 8 depicts a flowchart of another process associated location of the vehicle may be determined based on the steer with the process of FIG. 6. ing position. The vehicle may further include a displacement FIG.9 depicts a flowchart of another process in accordance measuring device that includes a second rotor coupled to the with aspects of the disclosure. first rotor of the electric steering motor. The location of the FIGS. 10A-C depict flowcharts of processes associated vehicle may further be determined based on a function that with the process of FIG.9. removes noise in the signal that results from a misalignment FIG. 11 depicts a flowchart of yet another process in accor between the first rotor and the second rotor. dance with aspects of the disclosure. In yet another aspect, a method is provided for controlling FIG. 12 depicts a flowchart of a process associated with the a vehicle. The method includes receiving a first signal. The 10 process of FIG. 11. first signal is indicative of at least one of an angular displace FIG. 13 depicts a schematic diagram of the vehicle of FIG. 1 traveling from a first location to a second location. ment of a first rotor or a derivative of the angular displacement FIG. 14 depicts a flowchart of yet another process in accor of the first rotor. The first rotor is part of an electric steering dance with aspects of the disclosure. motor that is part of a steering system of the vehicle. The 15 FIGS. 15A-C depict flowcharts of processes associated method further includes determining at least one of an angu with the process of FIG. 14. lar displacement of the first rotor and a derivative of the angular displacement the first rotor. The determination is DETAILED DESCRIPTION based on the first signal. The method further includes deter mining a first value of location of the vehicle, a displacement FIG.1 depicts an autonomous vehicle 101 that is capable of of the vehicle and/or a derivative of the displacement of the driving from one point to another without (or with partial) vehicle. The first value is determined based on angular dis input from a human driver. In this example, vehicle 101 is an placement of the first rotor and/or a derivative of the angular automobile, but in other examples vehicle 101 may be a car, displacement of the first rotor. The method further includes truck, motorcycle, bus, boat, airplane, helicopter, lawn receiving a second signal indicating a second value of at least 25 mower, recreational vehicle, amusement park vehicle, farm one of location of the vehicle, displacement of the vehicle, or equipment, construction equipment, tram, golf cart, train, a derivative of the displacement of the vehicle, comparing the trolley, glider, warehouse equipment, factory equipment, or first value with the second value, and operating at least one of the like. As shown in FIG. 2, vehicle 101 may include vehicle the braking system, the steering system, and the acceleration control unit 210, power train 220, steering system 230, accel system based on the second signal only when it is determined 30 eration system 240, and braking system 250. Vehicle control that the first value matches the second value. The second unit 210 may be a system for controlling the operation of signal is produced by a first device. In some instances, the first vehicle 101. Vehicle control unit 210 may interact with brak signal may further be received from a displacement measur ing system 250, Steering system 230, and acceleration system ing device, such as one of a resolver or a rotary encoder. The 240 to cause vehicle 101 to slow down, stop, steer, or accel first signal may further be adjusted using a transfer function 35 erate when navigating the vehicle 101 towards a predeter that compensates for misalignment between the first rotor and mined destination. In some aspects, the vehicle control unit the displacement measuring device. may be configured to perform one or more of the tasks dis cussed with respect to FIGS. 6-10. The structure of the BRIEF DESCRIPTION OF THE DRAWINGS vehicle control unit 210 is further discussed with respect to 40 FIG.S. FIG. 1 depicts a schematic diagram of an autonomous Referring to FIGS. 3A-B, the power train 220 may include vehicle in accordance with aspects of the disclosure. a battery 310, motor 320, and one or more transfer FIG. 2 depicts a schematic diagram of the autonomous device(s) 330. The battery 310 may be a nickel metal hydride vehicle of FIG. 1. battery or any other type of battery. The motor 320 may be an FIG. 3A depicts a schematic diagram of a power train 45 electric motor that is electrically coupled to the battery 310. system of the autonomous vehicle 101 in accordance with Torque transfer device(s) 330 may include a transmission, aspects of the disclosure. drive axel, or any other mechanical component used to deliver FIG. 3B depicts another schematic diagram of a power torque from the motor 320 to the wheels 340a-b of the vehicle train system of the autonomous vehicle 101 in accordance 101. with aspects of the disclosure. 50 Referring to FIG. 3B, the motor 320 may include a rotor FIGS. 3C-D depict cross-sectional diagram of an electric 320a disposed within the bore of a stator 320b. The rotor 320a motor of the vehicle 101 at time instants T and T. may have a permanent magnetization with a flux direction FIG. 4A depicts a schematic diagram of a steering system perpendicular to the axis of the bore. The stator may include that is part of the autonomous vehicle of FIG. 1. coils connected in a WYE or delta configuration and placed FIG. 4B depicts another schematic diagram of the steering 55 around the circumference of the stator 320b. The coils may be system of the autonomous vehicle of FIG. 1. arranged in pairs diametrically opposed to one another. When FIGS. 4C-4D depict schematic diagrams showing a steer the coils are driven, they may provide a magnetic field ing axis of a wheel of the vehicle of FIG. 1. directed transverse to the bore axis and which rotates about FIGS. 4E-G depict schematic diagrams of the vehicle of the axis. The magnetic field will interact with the magnetic FIG. 1 that illustrate different steering positions of the wheels 60 field of the rotor 320a causing the rotor to turn. The turning of the vehicle. motion of the rotor 320a may be transferred by the torque FIG.5 depicts a schematic diagram of a vehicle control unit transfer device(s) 330 to the vehicle wheels 340 thereby caus of the vehicle of FIG. 1. ing the wheels 34.0a and 340b to rotate about the axis R. FIG. 6 depicts a flowchart of a process in accordance with Resolver 350 may monitor the movement of the rotor 320a aspects of the disclosure. 65 and output to the vehicle control unit 210 a signal that is FIG. 7 depicts a flowchart of a process associated with the indicative of the angular displacement of the rotor 320a. As process of FIG. 6. illustrated, the resolver 350 may include a rotor 350a, stator US 9,205,828 B1 5 6 350b, and controller circuit 350c. The rotor 350a may be tance traveled, in turn, may be used by the vehicle control unit disposed within the bore of the stator 350b and it may be 210 to determine the vehicle's location provided that a start coupled to the rotor 320a. When the rotor 350a is actuated by ing location and travel path of the vehicle are known. the rotor 320a, the controller circuit 350c may generate an FIG. 4A depicts an exemplary schematic diagram of the analog or digital code indicating one or more characteristics steering system 230 of the vehicle 101. In this example, the of the movement of the rotor. For example, the code may steering system 230 may include a steering wheel 410 indicate the position or orientation of the rotor 320a within coupled to a rack and pinion assembly 430 via a steering the stator 320.b (e.g., in polar or Cartesian coordinates). As column 420. Steering motor 440 may be an electric motor another example, the code may indicate Velocity, displace coupled to the steering column 420 (or another steering sys ment, speed, direction of rotation, or acceleration. As illus 10 tem component) and used to augment torque applied to the trated in FIGS. 3C and 3D, when the rotor 320a moves, the steering wheel 410. Although, in this example, the steering resolver 350 may report to the vehicle control unit 210 that at system 230 is a power steering system, in other examples, the time T the rotor 320a has orientation 0 and at time T, the steering system 230 may be a steering-by-wire system, a rotor has orientation n/4. In instances where the signal from steering system where the steering motor 440 is the sole the resolver is an analog signal, the indication of displace 15 Source of torque, or any other system that includes an electric ment may be encoded using the , amplitude, phase, motor configured to actuate the wheels 34.0a and 340b in or another characteristic of the signal. In instances where the either the vehicle left or vehicle right direction. signal from the resolver is a digital signal, the indication of As illustrated in FIG. 4B, the steering motor 440 may displacement may be a bit string (e.g., “01011). include a rotor 440a disposed within the bore of a stator 440b. In some situations, the coupling of the rotor 350a to the The rotor 440a may have a permanent magnetization with rotor 320a may be misaligned thereby causing noise to appear flux direction perpendicular to the axis of the bore. The stator in the signal output by the resolver 350. To prevent such noise may include coils connected in a WYE or delta configuration from affecting its operation, in one aspect, the vehicle control and placed around the circumference of the rotor 440b. The unit 210 may apply a transfer function to data received from coils may be arranged in pairs diametrically opposed to one the resolver 350 before further using that data. The transfer 25 another. When the coils are driven, they may provide a mag function may map indication(s) of the orientation(s) of the netic field directed transverse to the bore axis and which rotor 320a reported by the resolver 350 to a “true' orientation rotates about the axis. The magnetic field will interact with the of the rotor. The transfer function may be derived using a magnetic field of the rotor 440a causing the rotor to turn. The brute approach where speed data from the vehicle 101 is turning motion of the rotor 44.0a may be transferred (e.g., via collected while the vehicle is run at a known constant (or 30 the rack and pinion assembly and the wheel hubs 460a and nearly constant) speed, as measured by a speedometer or 460b) to the vehicle wheels 34.0a and 340b, thereby causing some other device, while data from the resolver is being the wheels, and the wheel hubs 460a and 460b, to rotate about collected. Afterwards, the data from the resolver may be a steering axis S (as shown in FIGS. 4C-D) in the vehicle processed so as to find a function that minimizes the power left-right direction. The precise definition of steering axis spectral density (PSD) of the signal from the resolver while 35 may differ depending on the type of Suspension used, but on retaining a frequency in that signal that corresponds to the a MacPherson strut Suspension, the steering axis S may run speed of the rotor 320a. The frequency corresponding to the through a wheels lower ball joint and an upper strut mount or speed of the rotor 320 is the most present frequency in the bearing plate. resolver signals spectrum and it has been found to correctly Resolver 450 may include a rotor 450a, stator 450b, and reflect the speed of the vehicle regardless of whether noise is 40 controller circuit 450c. The rotor 450a may be disposed also present. within the bore of the stator 450b and it may be coupled to the By way of example, the processing of the data may involve rotor 44.0a of the motor 440. When the rotor 450a is actuated finding a filter function that retains the frequency in the by the rotor 440a, the controller circuit 450c may generate, resolver signal that correctly reflects the rotor's position (and and feed to the vehicle control unit 110, an analog or digital thus the vehicle's speed) while removing associ 45 code indicating a characteristic of the movements of the rotor. ated with noise. The function may be identified by trying For example, the code may indicate the position of the rotor different filter models (or the same model, but with different 440a within the stator 440b (e.g., in polar or Cartesian coor parameters) until a function is found that works. Whether a dinates). As another example, the code may indicate Velocity, function works may be determined by using signal that is displacement, speed, direction of rotation, or acceleration. In filtered with the function to determine the speed of the 50 instances where the signal from the resolver is an analog vehicle, and comparing the determined speed to the speed signal, the indication of displacement may be encoded using measured using the speedometer or some other device. Simi the frequency, amplitude, phase, or another characteristic of larly, the most present frequency may be identified by an the signal. In instances where the signal from the resolver is a operator looking at a frequency decomposition plot of the digital signal, the indication of displacement may be a bit signal from the resolver 350a or by filtering different frequen 55 string (e.g., "01011). cies from the signal and determining which frequency is best FIGS. 4E-G depict an example of the operation of the suited for determining the speed of the vehicle 101, as dis steering system 230. FIG. 4E depicts a schematic diagram of cussed above. the vehicle 101 with the wheels 34.0a and 340b in a neutral In other aspects, the vehicle control unit 210 may use signal steering position. In some aspects, the neutral steering posi from the resolver 350 to determine the velocity (or angular 60 tion of a wheel is a position of the wheel that causes the displacement, acceleration) of the rotor 320a. The vehicle vehicle 101 to move in a straight line. FIG. 4F depicts a control unit 210 may then use that data to calculate the veloc schematic diagram of the vehicle 101 with the wheels 340a ity of the wheels 340. For example, the velocity of the wheels and 340b pointed in the vehicle left direction. Similarly, FIG. may be determined by multiplying the velocity of the rotor 4G depicts a schematic diagram of the vehicle 101 with the 320a by a speed ratio of the torque transfer device(s) 330. 65 wheels 34.0a and 340b turned in the vehicle right direction. Once the velocity of the wheels is determined, it may be used In operation, the vehicle control unit 210 may determine to determine distance traveled by the vehicle 101. The dis the direction in which the wheels of the vehicle 101 are US 9,205,828 B1 7 8 pointing based on signal feedback from the resolver 450. For still accessible by, the processor. Similarly, the processor may example, if the signal feedback indicates that the rotor 440a actually comprise a collection of processors which may or has turned 4 times to the left, the vehicle control unit 210 may may not operate in parallel. determine that the wheels of the wheel point at 10° to the left FIG. 6 depicts a flowchart of a process 600 in accordance (relative to a neutral steering position). By tracking the direc with aspects of the disclosure. At task 610, a location L, tion in which the wheels are pointing, the vehicle control unit where the vehicle 101 is situated at time T, is determined. At 210 may obtain information regarding the path followed by task 620, signal feedback is received that is indicative of the vehicle 101 as it travels. The travelling path, in turn, may displacement of the rotor 320a. The signal feedback may be used to determine the location of the vehicle relative to a include one or more digital signals or one or more analog 10 signals or a combination of analog and digital signals. known starting point. In one aspect, the orientation of the In some aspects, each one of the digital/analog signals that steering motor can be used to determine the orientation of the is indicative of a displacement of the rotor 320a may be at steering system as a method of closing the loop of the control least one of: system when commanding a motion. It can also be used to A1: a signal indicating a Velocity of the of the rotor (e.g., determine the desired steering input to the vehicle, which 15 speed and direction of the rotor); precedes the actual direction change of the vehicle. Depend A2: a signal indicating displacement of the rotor (e.g., ing on the level of traction and speed of the vehicle, the 480) during a predetermined time period; angular measurement may not be the same as the direction of A3: one or more signals that indicate orientation of the travel, but it could be used to augment other sensors. If there rotor at different time instants (e.g., orientation of rotor is a large discrepancy, it could inform the processor to rely at time T and orientation of the rotor at time T); more heavily on other sensors for determining vehicle posi A4: a signal that indicates acceleration of the rotor; tion. A5: a signal that indicates a direction in which the rotor As shown in FIG. 5, vehicle control unit 210 may include moves (e.g., clockwise or counterclockwise); and a processor 510 and memory 520. Memory 520 of vehicle A6: a signal that indicates any other characteristic of the control unit 210 stores information accessible by processor 25 movement of the rotor 320a that affects the rotor's dis 510, including instructions 530 that may be executed by the placement. processor 510. The memory also includes data 540 that may In other aspects, the source of the signal may be one of be retrieved, manipulated or stored by the processor. The B1: a resolver, such as the resolver 350; memory may be of any type of tangible media capable of B2: a rotary encoder; storing information accessible by the processor, such as a 30 B3: a controller circuit that is used to drive the coils of the hard-drive, memory card, ROM, RAM, DVD, CD-ROM, motor 320 (e.g., signals used by the controller or another write-capable, and read-only memories. The processor 510 component to drive individual coils may be tapped into may be any well-known processor, such as commercially and used to determine rotor position, speed, accelera available processors. Alternatively, the processor may be a tion, or another characteristic of movement; alterna dedicated controller such as an ASIC. 35 tively, Back Electromotive Force (BEMF) in one or The instructions 530 may be any set of instructions to be more of the coils of the rotor 120 may be measured and executed directly (such as machine code) or indirectly (Such used to determine the rotors position, speed, or accel as Scripts) by the processor. In that regard, the terms “instruc eration, or another characteristic of movement; and tions.” “steps” and “programs' may be used interchangeably B4: any other displacement measuring device that is herein. The instructions may be stored in object code format 40 capable of returning one of the signals Al-A6. for direct processing by the processor, or in any other com It should be noted that the disclosure is not limited to any puter language including Scripts or collections of independent specific type of signal that is indicative of the angular dis Source code modules that are interpreted on demand or com placement of the rotor 320a within the stator 320b. Further piled in advance. Functions, methods and routines of the more, there are numerous ways to measure the angular dis instructions are explained in more detail below. 45 placement of a rotor (or another characteristic of the Data 540 may be retrieved, stored or modified by processor movement of the rotor, Such as position, speed, direction of 510 in accordance with the instructions 530. For instance, movement) and the disclosure is not limited to any specific although the system and method are not limited by any par one of them. ticular data structure, the data may be stored in computer Specifically, in this example, at task 620, a first code and a registers, in a relational database as a table having a plurality 50 second code are received from the resolver 350. The first code of different fields and records, or XML documents. The data may be a coordinate that indicates the position of the rotor may also be formatted in any computer-readable format Such 320a within the stator 320b at time T. Similarly, the second as, but not limited to, binary values, ASCII or Unicode. More code may be a coordinate that indicates the position of the over, the data may comprise any information Sufficient to rotor 320a within the stator 320 battime T. The codes may be identify the relevant information, Such as numbers, descrip 55 either digital or analog. For instance, referring to FIGS. 3C-D, tive text, proprietary codes, pointers, references to data stored the first code may indicate that at time T, the rotor is at in other memories (including other network locations) or position “0” and the second code may indicate that at time T, information that is used by a function to calculate the relevant the rotor is at “n/4” wherein T-T. In some aspects, the data. duration of the period T-T may be less than the period it Although FIG. 5 functionally illustrates the processor and 60 takes the rotor 320a to complete a single revolution. By way memory as being within the same block, the processor and of example only, the position of the rotor may be expressed in memory may actually comprise multiple processors and reference to a magnetic axis of the rotor 320a and a reference memories that may or may not be stored within the same point P on the stator 320b as illustrated in FIGS. 3C-D. (e.g., physical housing. For example, Some of the instructions and as an between the magnetic axis and an axis passing data may be stored on removable CD-ROM and others within 65 across the point P and the center of the rotor 320a.) a read-only computer chip. Some or all of the instructions and At task 630, a location L of the vehicle is determined data may be stored in a location physically remote from, yet based on the signal feedback received at task 620. The loca US 9,205,828 B1 9 10 tion L. may be a location where the vehicle 101 is situated at At task 740, a location L of the vehicle 101 is determined, time T or another time that is different than the time T. In via dead reckoning, based on the Velocity determined at task one aspect of task 630, a characteristic of the movement of the 730. For example, when the vehicle 101 is travelling along a rotor 320a (e.g., displacement, Velocity, speed, direction, or travel path such as the one depicted in FIG. 11, the velocity acceleration), may be determined based on the signal feed determined at task 730 may be used to determine how far the back received at task 620 and this characteristic may be vehicle has traveled from the location L. Provided that the mapped to a characteristic of the movement of vehicle 101 (or shape of the vehicle's travel path is known, determining the the vehicle's wheels), Such as displacement, Velocity, speed, location L based on the velocity of the vehicle 101’s wheels direction, or acceleration. Once determined, the characteris and the location L is a matter of a simple mathematical tic of the movement of the vehicle's wheels may be used to 10 calculation. The travel path of the vehicle may be determined determine how far from the location L the vehicle 101 has (or using the process 900 discussed below with respect to FIG.9. will be) departed at a given time instant. Task 630 is further or by using a gyroscope, accelerometer, or another similar discussed with respect to FIG. 7. device. The mechanical relationships between the motor of a In another aspect of task 630, a transfer function for map 15 vehicle and the vehicle's wheels, may vary depending on the ping a characteristic of the movement of the rotor 320a (e.g., vehicle's design, but regardless of what they are, in the vast speed of the rotor 320a, location of the rotor 320a within the majority of instances they are very well understood by vehicle stator 320b, acceleration of the rotor 320a) to a characteristic designers. Accordingly, various characteristics of the move of the movement of vehicle 101 (or one or more wheels of the ment of the rotor 320a may be mapped to characteristics of vehicle 101) may be used. The characteristic may be speed, the movement of the vehicle 101 without departing from the acceleration, rate of acceleration, displacement, or any other full scope of the disclosure. derivative of displacement. For instance, the transfer function It should be noted that a number of different intermediate may be derived analytically based on the physics of the torque calculations may be performed when determining the loca transfer device(s) 330 and other relevant components of the tion of the vehicle 101 based on signal feedback indicating the vehicle 101. Alternatively, the transfer function may be deter 25 angular displacement of the rotor 320a within the stator 320b. mined empirically by travelling one or more predetermined In one aspect, instead of determining the Velocity of the rotor with the vehicle 101, recording signals received 320a, the angular displacement of the rotor may be deter from the resolver 350 when each of the distances is traveled, mined instead. In another aspect, instead of determining the and fitting the transfer function based on the predetermined velocity of the wheels, the angular displacement of the distances and the received signals. 30 At task 640, the operation of the vehicle 101 is controlled wheels. The disclosure, thus, is not limited to any specific based on the determined location L. For example, the vehicle method for correlating signal feedback indicative of the control unit 210 may use the braking system 250 and the rotors angular displacement to a characteristic of the vehicle steering system 230 to slow down or steer the vehicle 101. As 101's movements (e.g., distance travelled, speed, direction). there are numerous ways in which systems in a vehicle may 35 FIG. 8 depicts a flowchart of an example process 800 benefit from knowledge of the vehicle's location, the disclo associated with adjusting the velocity determined at task 720. Sure is not limited to any specific use of the location L. At task 810, an adjustment is performed that compensates for determined at task 630. a disengagement of a clutch device on the train that connects FIG. 7 depicts a flowchart of an example process 700 the motor 320 to the wheels 340. In general, when a clutch on directed to determining the location of the vehicle 101, as 40 the train connecting the motor 320a to the wheels 340 is specified by task 630 of FIG. 6. At task 710, the velocity of the disengaged, the mechanical link between the movement of rotor 320a is determined based on the coordinates received at the rotor 320a and the wheels 340 is severed. Thus, at task task 620. 810, a signal may be received from a sensor associated with At task 720, the determined velocity is adjusted. Task 720 the clutch device that indicates that the clutch is disengaged is further discussed with respect to FIG. 8. At task 730, the 45 during the period T+-T, wherein T+sTsT2. In velocity of one or more wheels of the vehicle 101 is deter response to the signal, signal from wheel speed sensors that mined. For instance, the speed of the rotor 320a may be are part of an Antilock Braking System (ABS) of the vehicle multiplied by a speed ratio of the torque transfer device(s) 330 101 may be used to estimate the speed of the vehicle in the to determine the speed of the one or more vehicle wheels. period for which the motor 320a is disengaged from the Furthermore, in Some instances, an additional determination 50 wheels 340. may be made as to whether the vehicle is performing a turn FIG.9 depicts a flowchart of a process 900 in accordance during the time period T-T. If the vehicle is turning and the with aspects of the disclosure. At task 910, the orientation of vehicle has a differential, the physical characteristics (e.g., the rotor 320a is determined by sampling the signal from the speed ratio, leverage) of the differential may be accounted for resolver 350 (or another measuring device) at a predeter in determining the velocity of each of the front wheels 340a 55 mined sampling rate. The sampling rate in this example may and 340b. be 100 Hz, 200 HZ, 200 HZ, or any other sampling rate. In one In this example, based on the information received at task aspect, the orientation may be determined once or less than 620, the vehicle control unit 210 may determine that the rotor once per full revolution of the rotor 320a. In another aspect, 320a has turned a quarter of a turn and it may divide this the orientation of the rotor may be determined multiple times information by the duration of the period T-T. Once the 60 before the rotor has completed a single revolution. For speed of the rotor 320a is determined, the speed of the vehicle example, a sampling rate of 100 HZ may determine the ori 101a (or its wheels) may be calculated based on the speed of entation of the rotor 320a twice in a single revolution, when the rotor 320a and the mechanical characteristics of the the rotor rotates at 3000 RPM. torque transfer device(s) 330. In that regard, by monitoring At task 920, the angular displacement of the rotor around the rotation of the rotor 320b with the resolver 350, the 65 its axis of rotation, or the n-th derivative of the angular dis vehicle control unit 210 may accurately determine the speed placement is determined, based on the information obtained of the vehicle 101. at task 910. In this example, n is an integer greater than Zero US 9,205,828 B1 11 12 and the n-th derivative of the angular displacement may be vehicle control unit 210 may switch to using a control algo angular speed, , rate of angular accelera rithm that does not rely on input from the speedometer. tion, or any other derivative. At task 1010C of FIG.10C, at least one of the direction and At task 930, the linear displacement of the vehicle 101 speed of the vehicle 101 is changed based on the information (e.g., distance traveled), or n-th derivative of the linear dis 5 determined at task 930. For example, if it is determined that placement, of the vehicle (e.g., speed, acceleration, rate of the vehicle 101 is moving at an excessive speed, the vehicle acceleration) is determined based on the information deter control unit 210 may slow down the vehicle. As there are mined at task 920. The displacement, or displacement deriva numerous ways in which systems in a vehicle may benefit tive, may be determined by using a transfer function, such as from knowledge of the vehicle's location, speed, accelera the one discussed with respect to task 630. At task 940, the 10 tion, rate of acceleration, etc., the disclosure is not limited to operation of the vehicle 101 is controlled based on the infor any specific use of the information determined at task 930. mation determined at task 940. In one aspect, the process 900 may be executed repeatedly FIGS. 10A-C provide examples of how the information in real-time. For example, at time t, the vehicle control unit determined at task 93.0 may be used. At task 1010A, the 15 210 may receive a measurement from the target sensor. Con information determined at task 930 (e.g., speed of vehicle or temporaneously, at time t, the vehicle control unit 210 may acceleration of the vehicle) may be used to close the control execute tasks 910-930 and determine the vehicle 101’s dis loop of the vehicle 101 when the vehicle control unit 210 is placement, or the n-th derivative of the vehicle's displace commanding a motion. For example, the vehicle control unit ment, based on the angular displacement (or the displace 210 may decide to increase the speed of the vehicle 101 by 5 ment’s n-th derivative) of the rotor 320a. Afterwards, the mph. Following the decision, the vehicle control unit 210 may vehicle control unit 210 may compare the information deter begin accelerating the vehicle. As the vehicle control unit 210 mined as a result of executing the tasks 910-930 to the infor is accelerating the vehicle, the vehicle control unit 210 may mation obtained from the sensor. Afterwards, at time t, the perform the process 900 repeatedly and obtain measurements vehicle control unit 210 may receive another data sample of the vehicle's speed. Once the desired speed is reached, the 25 from the target sensor, execute tasks 910-930, and compare vehicle control unit may stop accelerating the vehicle. Simi the data sample from the data determined as a result of the larly, the vehicle control unit 210 may perform the process process's execution. In other words, the above process may 210 repeatedly and obtain measurements of the vehicle's 101 repeat itself continuously throughout the operation of the acceleration. When it is determined that the rate of accelera vehicle control unit 210. Times t and t may be time periods tion exceeds a predetermined threshold, the vehicle control 30 of anywhere between a fraction of a second or several unit 210 may reduce the vehicle's rate of acceleration, (e.g., is, 5s, 60s, 300s). thereby ensuring a smooth ride for the vehicle's passengers. In another aspect, the process 900 may be executed mul At task 1010B of FIG. 10B, the information determined at tiple times per second as part of a control routine that is task 930 is used to validate readings obtained from a target repeatedly executed by the vehicle control unit 210 when sensor. The target sensor may be a GPS receiver, accelerom 35 controlling the operation of vehicle 101. The control routine eter, speedometer, odometer, or any other type of sensor used may include receiving sensor readings (e.g., GPS readings, by the vehicle control unit 210 in controlling the operation of speed readings, acceleration readings, radar readings, or laser the vehicle 101. The target sensor may provide the same type scanner readings), executing one or more control algorithms of information as the information determined at task 930 using the received sensor readings, and changing at least one based on the angular displacement of the rotor 320a. The 40 of speed or direction of the vehicle 101 based on the outcome information may be speed, acceleration, rate of acceleration, of the algorithms outcome. In that regard, the process 900 location, etc. When the information provided by the target may be used to Supplement other data sources that are avail sensor matches the information determined at task930, infor able to the vehicle control unit 210, such as a GPS receiver, a mation from the target sensor may be used in controlling the laser Scanner, or a speedometer. speed and direction of the vehicle 101. When the information 45 FIG.11 depicts a flowchart of a process 1100 in accordance from the target sensor does not match the information deter with aspects of the disclosure. At task 1110, a location L is mined at task 930, vehicle 910 may stop using the feedback determined where the vehicle 101 is situated at time T. At from the target sensor in controlling the speed or direction of task1120, signal feedback is received that is indicative of the the vehicle. The information obtained from the target sensor displacement of the rotor 440a. The signal feedback may may be said to match the information determined at task 930 50 include one or more digital signals or one or more analog when the information obtained from the target sensor is the signals or a combination of analog and digital signals. same, or within a predetermined distance, from the informa In some aspects, each one of the digital/analog signals that tion determined at task 930. is indicative of the angular displacement of the rotor 440a In one example, the target sensor may be a speedometer. may be at least one of: When a speed measurement obtained from the speedometer 55 X1: a signal indicating a Velocity of the of the rotor (e.g., matches a speed determination based on the angular displace speed and direction of the rotor); ment of the rotor 320a, the speed measurement is said to be X2: a signal indicating displacement of the rotor (e.g., validated, and thus presumed correct. If, however, the speed 480) during a predetermined time period; measurement does not match the speed determination, the X3: one or more signals that indicate orientation of the speed measurement may be deemed incorrect. The mismatch 60 rotor at different time instants (e.g., position of rotor at may be due to a failure of the speedometer or the connection time T and position of the rotor at time T); between the speedometer and the vehicle control unit 210. In X4: a signal that indicates acceleration of the rotor; any event, a mismatch may indicate to the vehicle control unit X5: a signal that indicates a direction in which the rotor 210 that information from the speedometer is not to be moves (e.g., clockwise or counterclockwise); and trusted. Accordingly, when a mismatch occurs, the vehicle 65 X6: a signal that indicates any other characteristic of the control unit 210 may stop using data from speedometer in movement of the rotor 440a that affects the rotor's dis controlling the operation of the vehicle 101. For example, the placement. US 9,205,828 B1 13 14 In other aspects, the source of the signal may be one of I1: angle offset of the wheels 340a and 340b, in the vehicle Y1: a resolver, such as the resolver 450; left-right direction, from the neutral steering position; Y2: a rotary encoder; I2: angle offset of the wheels 34.0a and 340b relative to an Y3: a controller circuit that is used to drive the coils of the axle which the wheels are mounted on: motor 440 (e.g., signals used by the controller to drive I3: direction which the wheels are pointed to (e.g., 10° to individual coils may be tapped into and used to deter the vehicle left or right); and mine rotor position, speed, acceleration, or another char I4: angular displacement of at least one of the wheels 340a acteristic of movement; alternatively, Back Electromo and 340b about a steering axis. tive Force (BEMF) in one or more of the coils of the rotor In some aspects, the indication of steering position may be 10 determined based on a transfer function that maps the signal 120 may be measured and used to determine the rotors feedback received at task 1120 to the indication of steering position, speed, or acceleration, or another characteristic position. For example, one such transfer function may map of movement; and each complete revolution of the rotor 44.0a in a left direction Y4: any other displacement measuring device that is to a 5 degree offset of the wheels 34.0a and 340b, from their capable of returning one of the signals X1-X6. 15 previous steering position. The function may be determined In any event, it should be understood that the disclosure is analytically based on the physics of the steering system 230 not limited to any specific type of signal that is indicative of and other relevant components. Alternatively, the function the angular displacement of the rotor 44.0a within the stator may be determined empirically by running the steering motor 440b. Furthermore, there are numerous ways to measure the 440, recording signals that are indicative of the angular dis angular displacement of a rotor within an engine's stator and placement of the rotor 440a as a result of its running, mea the disclosure is not limited to any specific one of them. Suring and recording changes in the steering position of the Specifically, in this example, at task 920, a first code and a wheels 340a and 340b that result from the motor's running, second code is received from the resolver 350. The first code and fitting the function based on the changes in steering may be a coordinate that indicates the position of the rotor position and the recorded signals. 440a within the stator 440b at time T. Similarly, the second 25 At task 1240, a location L of the vehicle 101 is determined code may be a coordinate that indicates the position of the based on the steering position of the wheels 340a and 340b. rotor 44.0a within the stator 450a at time T. The codes may be The shape of the travel path of the vehicle 101 may be deter either digital or analog codes. By way of example only, the mined based on the indication of steering direction deter position of the rotor may be expressed in reference to a mined at task 1230, speed of the vehicle, duration of a period magnetic axis of the rotor 440a and a reference point on the 30 for which the wheels are in given steering position (e.g., 10° stator 440b. (e.g., as an angle between the magnetic axis and offset from the neutral steering position). Once the travel path an axis across the reference point and the center of the rotor is determined, dead reckoning or another navigation tech 440a.) nique may be used to infer location L based on the location Attask 1130, a location Lofthe vehicle 101 is determined, L and the determined trajectory. It should be noted that a via dead reckoning, based on the signal feedback received at 35 number of different intermediate calculations may be per task 1120. The location L. may be a location where the formed to determine a vehicle's trajectory based on one or vehicle 101 is situated at time T or another time that is more steering positions of the vehicle's wheels. The disclo different than the time T. As discussed above, the displace Sure is not limited to any specific one of them ment of the rotor 44.0a of the steering motor 440 may be used FIG. 14 depicts a flowchart of a process 1400 in accordance to determine the steering positions of wheels 340a. This infor 40 with aspects of the disclosure. At task 1410, the orientation of mation, in turn, may be used to determine the trajectory the rotor 44.0a is determined by sampling the signal from the followed by the vehicle 101. Provided that the velocity of the resolver 450 (or another measuring device) at a predeter vehicle is known, determining the location L based on the mined sampling rate. The sampling rate in this example may path followed by the vehicle 101 is a matter of a simple be 100 Hz, 200 HZ, 200 HZ, or any other sampling rate. In one mathematical calculation. The velocity of the vehicle 101 45 aspect, the orientation may be determined once or less than may be determined using the process 600 of FIG. 6. Task 1130 once per full revolution of the rotor. In another aspect, the is further discussed with respect to FIG. 12. orientation of the rotor may be determined multiple times At task 1130, the operation of the vehicle 101 is controlled before the rotor has completed a single revolution. For based on the determined location L. For example, the vehicle example, a sampling rate of 100 HZ may determine the ori control unit 210 may use the braking system 250 or the 50 entation of twice the orientation of the rotor 440a when the steering 230 to slow down or steer the vehicle 101. As there rotor rotates at 3000 RPM. are numerous ways in which systems in a vehicle may benefit At task 1420, one of angular displacement of the rotor from knowledge of the vehicle's location, the disclosure is not around its axis of rotation, or the n-th derivative of the angular limited to any specific use of the location L. determined at displacement, is determined based on the information task 930. 55 obtained at task 1410. In this example, n is an integer greater FIG. 12 depicts a flowchart of an example process 1000 than or equal to one, and the n-th derivative of the angular directed to determining the location of the vehicle 101 based displacement may be angular speed, angular acceleration, on a signal feedback indicating an angular displacement of rate of angular acceleration, or any other derivative. the rotor 44.0a inside the steering motor 440. At task 1210, an At task 1430, the angular displacement of the wheels adjustment to the signal may be performed by applying a 60 340a-b of vehicle 101 (e.g., distance traveled) or n-th deriva transfer function that removes noise due to misalignment of tive of the angular displacement of the wheels is determined the rotor 440a and the resolver 450, in the manner discussed based on the information obtained at task 1420. The angular above. At task 1220, the displacement of the rotor 44.0a is displacement, or its n-th derivative may determined as dis determined based on the signal feedback received from the cussed with respect to task 1230. The angular displacement resolver 450. At task 1230, an indication of the steering posi 65 may be relative to the steering axis S or any other axis. At task tion of the wheels 34.0a and 340b is determined. By way of 1440, the operation of the vehicle 101 is controlled based on example, the indication may one or more of: the information determined at task 1430. US 9,205,828 B1 15 16 FIGS. 15A-C provide examples of how the information may include receiving sensor readings (e.g., GPS readings, determined at task 1430 may be used to control the operation speed readings, acceleration readings, radar readings, laser of the vehicle 101. Attask 1510A, the information determined scanner readings), executing one or more control algorithms at task 1430 may be used to close the control loop of the using the received sensor readings, and changing at least one vehicle 101 when the vehicle control unit 210 is commanding of speed or direction of the vehicle 101 based on the outcome a motion. For example, the vehicle control unit 210 may of the algorithms outcome. In that regard, the process 1400 decide to steer the vehicle 5 to the left. Following the deci may be used to Supplement other data sources that are avail sion, the vehicle control unit 210 may begin steering the able to the vehicle control unit 210, such as GPS receiver, vehicle using the steering motor 440. As the vehicle control laser Scanner, or speedometer. unit 210 is steering the vehicle, the vehicle control unit 210 10 FIGS. 6-15 are provided as examples only. At least some of may perform the process 1400 continuously and repeatedly the tasks may be performed in a different order than repre obtain measurements of the how far to the left (or right) have sented, performed concurrently or altogether omitted. It the wheels 340a-b been steered. Once the desired wheels are should be noted that the processes of FIGS. 6-15 may be steered far enough, the vehicle control unit may stop turning performed, at least in part, by the vehicle control unit 210 or the steering motor 440. Similarly, the vehicle control unit 210 15 another device used in controlling the operation of the may repeatedly obtain measurements of the rate of angular vehicle. Although, the techniques for determining vehicle acceleration of the vehicle's wheels by executing tasks 1410– location are described in the context of autonomous vehicles, 1430 repeatedly. When it is determined that the rate of accel it will be understood that the same techniques may be used in eration exceeds a predetermined threshold, the vehicle con non-autonomous or semi-autonomous vehicles as part of any trol unit 210 may reduce the vehicle's rate of acceleration vehicle system that uses information concerning the vehicle's thereby ensuring that the vehicle 101 does not turn too location or steering position of the wheels of the vehicle. In abruptly. addition, although in the above examples, the motor 320 is an At task 1510B of FIG. 15B, the information determined at electric motor, in other examples, the motor 350 may be a task 1430 is used to validate readings obtained from a target rotary combustion engine. Such as a Wankel engine. Further sensor. The target sensor may be any sensor that measures the 25 more, although in the example of FIG. 8, the calculated veloc orientation of the wheels 340a-b, the speed of rotation of the ity is adjusted to compensate for rotor axial misalignment and wheels 340a-b, the acceleration of rotation of the wheels clutch disengagement, in other examples another character 340a-b, etc. The target sensor may provide the same type of istic of the movement of the rotor 320a or another character information as the information determined at task 1430 based istic of the movement of the wheels 340 (or the vehicle 101 on the angular displacement of the rotor 450. When the infor 30 may be adjusted). mation provided by the target sensor matches the information It should further be noted that the disclosure is not limited determined at task 930, information from the target sensor to automotive applications only. For example, feedback sig may be used in controlling the speed and direction of the nal that is indicative of the displacement of a rotor may be vehicle 101. When the information from the target sensor used to determine the position of boat control Surfaces (e.g., does not match the information determined at task 1430, 35 rudder), position of boat propellers relative to a longitudinal vehicle 1010 may stop using the feedback from the target axis of a boat, airplane control Surfaces (e.g., flaps or eleva sensor in controlling the speed or direction of the vehicle. As tors) or any other type of control surface or element that is discussed with respect to task 1010B, task 1510B may also be coupled the rotor. Most of the foregoing examples are not executed continuously and/or in real-time. mutually exclusive, but may be implemented in various com At task 1510C of FIG. 15C, at least one of direction and 40 binations to achieve unique advantages. speed of the vehicle is changed based on the information As these and other variations and combinations of the determined at task 1430. As there are numerous ways in which features discussed above can be utilized without departing systems in a vehicle may benefit from knowledge of direction from the subject matter as defined by the claims, the forego in which the vehicle wheels are turned to, speed of turning the ing description of exemplary aspects should be taken by way vehicle wheels, etc., the disclosure is not limited to any spe 45 of illustration rather than by way of limitation of the subject cific use of the information determined at task 1430. matter as defined by the claims. It will also be understood that In one aspect, the process 1400 may be executed repeatedly the provision of the examples described herein (as well as in real-time. For example, at time t, the vehicle control unit clauses phrased as “such as "e.g., “including and the like) 210 may receive a measurement from the target sensor. Con should not be interpreted as limiting the claimed subject temporaneously, at time t, the vehicle control unit 210 may 50 matter to the specific examples; rather, the examples are execute tasks 1410-1430 and determine the orientation of the intended to illustrate only some of many possible aspects. wheels 340a-b of the vehicle 101. Afterwards, the vehicle The invention claimed is: control unit 210 may compare the information determined as 1. A vehicle comprising: a result of executing the tasks 1510-1530 to the information an acceleration system; obtained from the sensor. Afterwards, at time t, the vehicle 55 a steering system; control unit 210 may receive another data sample from the a braking system; target sensor, execute tasks 1410-1430, and compare the data a speedometer, sample from the data determined as a result of the process’s a power train including an electric motor, the electric motor execution. In other words, the above process may repeat itself including a first rotor disposed with a first stator, continuously throughout the operation of the vehicle control 60 a displacement measuring device coupled to the first rotor; unit 210. Times t and t may be time periods of length any and where between a fraction of a second or several seconds (e.g., one or more processors coupled to one or more of the 1s, 5s,60s, 300s). steering system, the acceleration system, and the brak In another aspect, the process 1400 may be executed mul ing system, the processor being configured to: tiple times per second as part of a control routine that is 65 when operating the vehicle in an autonomous driving repeatedly executed by the vehicle control unit 210 when mode, use the speedometer to control the braking sys controlling the operation of vehicle 101. The control routine tem, the steering system, and the acceleration system; US 9,205,828 B1 17 18 receive, from the displacement measuring device, a signal determining, by the one or more processors, based on the at that indicates an orientation of the first rotor relative to least one of the angular displacement of the first rotor the first stator; and a derivative of the angular displacement of the first filter the received signal to remove noise; rotor, a derivative of the displacement of the vehicle: determine at least one of displacement of the first rotor or a comparing, by the one or more processors, the first value derivative of displacement of the first rotor based on the with the second value to determine whether the first filtered received signal; value matches the second value; and determine velocity of the vehicle based on the displace when the first value does not match the second value, ment of the first rotor or the derivative of displacement; stopping, by one or more processors, the use of the receive information from the speedometer identifying a 10 speedometer to control the braking system, the steering speed of the vehicle: compare the speed of the vehicle to the determined velocity system, and the acceleration system and operating, by to determine whether the speed of the vehicle matches the one or more processors, at least one of the braking the determined velocity; and system, the steering system, and the acceleration system when the speed of the vehicle does not match the deter 15 based on the received first signal. mined Velocity, stop using the speedometer to control 8. The method of claim 7, wherein the second device is one the braking system, the steering system, and the accel of a resolver or a rotary encoder. eration system and operating at least one of the braking 9. The method of claim 7, wherein the second value is system, the steering system, and the acceleration system determined based on a speed ratio of a coupling between the using the determined Velocity. first rotor and a second rotor of the second device. 2. The vehicle of claim 1, wherein: 10. The method of claim 7, wherein: the signal is sampled by the one or more processors at a the second signal is sampled at a predetermined sampling predetermined sampling rate to produce one or more rate; and signal samples: the at least one of the angular displacement of the first rotor the displacement or derivative of displacement of the rotor 25 and the derivative of the angular displacement of the is determined based on the one or more signal samples: rotor is determined based on at least two samples of the and Second signal. the displacement or derivative of displacement of the rotor 11. A system comprising one or more processors, the one or is determined repeatedly at a rate of multiple times per more processors being configured to: second. 30 when operating the vehicle in an autonomous driving 3. The vehicle of claim 1, wherein the displacement mea mode, use speed information received from a speedom suring device is a resolver. eter to control the braking and acceleration of a vehicle: 4. The vehicle of claim 1, wherein: receive, from a measuring device, a signal that indicates a the displacement measuring device includes a second rotor position of a first rotor of a motor of the vehicle: coupled to the first rotor of the electric motor; and 35 determine at least one of displacement of the first rotor or a the displacement measuring device is configured to gener derivative of displacement of the first rotor based on the ate the signal as an adjusted signal using a transfer func received signal; tion that compensates for misalignment between the first determine velocity of the vehicle based on the displace rotor and the displacement measuring device. ment of the first rotor or the derivative of displacement; 5. The vehicle of claim 1, wherein: 40 compare the speed information to the determined velocity the vehicle further comprises a clutch; and to determine whether the speed of the vehicle matches the one or more processors are further configured to detect the determined velocity; and whether the clutch is engaged or disengaged; and when the speed of the vehicle does not match the deter wherein the at least one of the braking system, the steering mined Velocity, stop using the speedometer to control system, and the acceleration system is operated based on 45 the braking and the acceleration of the vehicle and con the determined displacement of the rotor or the deriva trol at least one of the braking and acceleration of the tive of the displacement of the rotor only when it is vehicle using the determined velocity. determined that the clutch is engaged. 12. The system of claim 11, further comprising the speed 6. The vehicle of claim 1 wherein the signal further indi Ometer. cates at least one of speed, direction of rotation, displacement, 50 13. The system of claim 11, further comprising the vehicle. or acceleration of the first rotor. 14. The system of claim 11, further comprising the mea 7. A method for controlling the operation of a vehicle, the Surement device. vehicle having a motor that is part of a power train of the 15. The system of claim 14, wherein the measuring device vehicle, the motor having a first rotor and a first stator, the includes a second rotor coupled to the first rotor, and the method comprising: 55 measuring device is configured to generate the signal as an when operating the vehicle in an autonomous driving adjusted signal using a transfer function that compensates for mode, using, by one or more processors, the speedom misalignment between the first rotor and the measuring eter to control the braking system, the steering system, device. and the acceleration system; 16. The system of claim 11, wherein the one or more receiving, by the one or more processors, a first signal 60 processors are further configured to: indicating a first value for the speed of the vehicle, the sample the signal at a predetermined sampling rate to pro first signal being produced by a speedometer of the duce one or more signal samples, and vehicle: wherein the displacement or derivative of displacement of receiving, by the one or more processors, a second signal the rotor is determined based on one or more signal indicating an orientation of the first rotor relative to the 65 samples. first stator, the second signal being produced by a second 17. The system of claim 11, wherein the measuring device device that is coupled to the first rotor; includes a resolver. US 9,205,828 B1 19 20 18. The system of claim 11, wherein the vehicle further comprises a clutch, and the one or more processors are further configured to detect whether the clutch is engaged or disen gaged, and the controlling of the at least one of the braking and acceleration of the vehicle is further based on whether the clutch is engaged. 19. The system of claim 11, wherein the signal further indicates at least one of speed, direction of rotation, displace ment, or acceleration of the first rotor. 20. The system of claim 11, wherein the speed of the 10 vehicle does not match the determined velocity when the speed of the vehicle and the determined velocity are within a predetermined distance of one another. k k k k k