Method and apparatus for determining vehicle location based on motor feedback
09650054 ยท 2017-05-16
Assignee
Inventors
- Peter Craig Lombrozo (Santa Cruz, CA, US)
- Carsten Jensen (San Francisco, CA, US)
- Andrew Barton-Sweeney (Berkley, CA, US)
- Russell Smith (Santa Clara, CA, US)
- Daniel Lynn Larner (San Jose, CA, US)
Cpc classification
B60W40/103
PERFORMING OPERATIONS; TRANSPORTING
B60W20/00
PERFORMING OPERATIONS; TRANSPORTING
B60W30/00
PERFORMING OPERATIONS; TRANSPORTING
G05D1/0088
PHYSICS
G05D1/0272
PHYSICS
B60W50/00
PERFORMING OPERATIONS; TRANSPORTING
International classification
B60W50/00
PERFORMING OPERATIONS; TRANSPORTING
Abstract
A method and apparatus are provided for determining the location of a vehicle. According to one aspect the method and apparatus the movements of motor rotors in a vehicle are monitored and used to determine speed, travel distance and/or travel path of a vehicle may be determined. Using various navigation techniques, the distance and travel path may then be used to determine the vehicle's location. Furthermore, movements of the motor rotors may also be used to report the positions of the steering and drive systems for the purpose of informing the vehicle controller as a method of feedback.
Claims
1. A method comprising: receiving, from a speed measurement device of a vehicle having an autonomous driving mode, first speed information identifying a first current speed of the vehicle as measured by the speed measurement device; receiving, from a displacement measuring device, displacement information identifying an orientation of a first rotor at a first time and an orientation of the first rotor at a second time; determining, by one or more computing devices having one or more processors, second speed information identifying a second current speed of the vehicle using a change in the orientations of the first rotor between the first time and the second time; comparing, by the one or more computing devices, the first speed information to the second speed information; determining, by the one or more computing devices, using the comparison whether to use third speed information measured by the speed measurement device to control the vehicle in an autonomous driving mode; and controlling, by the one or more computing devices, the vehicle in the autonomous driving mode based on the determination of whether to use third speed information measured by the speed measurement device.
2. The method of claim 1, further comprising, filtering the displacement information to remove noise caused by a misalignment between the displacement measuring device and the first rotor of the vehicle.
3. The method of claim 1, wherein determining the second speed information is further based on whether the vehicle is performing a turn between the first time and the second time.
4. The method of claim 1, wherein the second speed information corresponds to a speed of a wheel of the vehicle.
5. The method of claim 1, further comprising: receiving information from a clutch device of the vehicle that a clutch of the vehicle is disengaged; and in response to receiving the information from the clutch device, using information from wheel speed sensors that are incorporated into a breaking system of the vehicle to determine the second speed information.
6. The method of claim 1, wherein comparing the first speed information to the second speed information includes validating correctness of speed measurement device and when the comparison indicates that the speed measurement device is incorrect, controlling the vehicle does not include using the third speed information.
7. The method of claim 1, further comprising using the comparison to determine that the speed measurement device has failed, and when the speed measurement device is determined to have failed, controlling the vehicle does not include using the third speed information.
8. The method of claim 1, wherein the speed measurement device is a speedometer.
9. A system comprising one or more computing devices each having one or more processors, the one or more processors being configured to: receive, from a speed measurement device of a vehicle having an autonomous driving mode, first speed information identifying a first current speed of the vehicle as measured by the speed measurement device; receive, from a displacement measuring device, displacement information identifying an orientation of a first rotor at a first time and an orientation of the first rotor at a second time; determine second speed information identifying a second current speed of the vehicle using a change in the orientations of the first rotor between the first time and the second time; compare the first speed information to the second speed information; determine using the comparison whether to use third speed information measured by the speed measurement device to control the vehicle in an autonomous driving mode; and control the vehicle in the autonomous driving mode based on the determination of whether to use third speed information measured by the speed measurement device.
10. The system of claim 9, wherein the one or more computing devices are further reconfigured to filter the displacement information to remove noise caused by a misalignment between the displacement measuring device and the first rotor of the vehicle.
11. The system of claim 9, wherein the one or more computing devices are further reconfigured to determine the second speed information further based on whether the vehicle is performing a turn between the first time and the second time.
12. The system of claim 9, wherein the second speed information corresponds to a speed of a wheel of the vehicle.
13. The system of claim 9, the one or more computing devices are further reconfigured to: receive information from a clutch device of the vehicle that a clutch of the vehicle is disengaged; and in response to receiving the information from the clutch device, use information from wheel speed sensors that are incorporated into a breaking system of the vehicle to determine the second speed information.
14. The system of claim 9, wherein the one or more computing devices are further reconfigured to compare the first speed information to the second speed information by validating correctness of speed measurement device and when the comparison indicates that the speed measurement device is incorrect, to control the vehicle without using the third speed information.
15. The system of claim 9, the one or more computing devices are further reconfigured to use the comparison to determine that the speed measurement device has failed, and when the speed measurement device is determined to have failed, to control the vehicle does without using the third speed information.
16. The system of claim 9, further comprising the speed measuring device wherein the speed measurement device is a speedometer.
17. The system of claim 9, further comprising the displacement measurement device.
18. The system of claim 9, further comprising the vehicle.
19. A non-transitory machine readable recording medium on which instructions are stored, the instructions, when executed by one or more processors, cause the one or more processors to perform a method, the method comprising: receiving, from a speed measurement device of a vehicle having an autonomous driving mode, first speed information identifying a first current speed of the vehicle as measured by the speed measurement device; receiving, from a displacement measuring device, displacement information identifying an orientation of a first rotor at a first time and an orientation of the first rotor at a second time; determining second speed information identifying a second current speed of the vehicle using a change in the orientations of the first rotor between the first time and the second time; comparing the first speed information to the second speed information; determining using the comparison whether to use third speed information measured by the speed measurement device to control the vehicle in an autonomous driving mode; and controlling the vehicle in the autonomous driving mode based on the determination of whether to use third speed information measured by the speed measurement device.
20. The medium of claim 19, wherein the method further comprises filtering the displacement information to remove noise caused by a misalignment between the displacement measuring device and the first rotor of the vehicle.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
(13)
(14)
(15)
(16)
(17)
(18)
(19)
(20)
DETAILED DESCRIPTION
(21)
(22) Referring to
(23) Referring to
(24) Resolver 350 may monitor the movement of the rotor 320a and output to the vehicle control unit 210 a signal that is indicative of the angular displacement of the rotor 320a. As illustrated, the resolver 350 may include a rotor 350a, stator 350b, and controller circuit 350c. The rotor 350a may be disposed within the bore of the stator 350b and it may be coupled to the rotor 320a. When the rotor 350a is actuated by the rotor 320a, the controller circuit 350c may generate an analog or digital code indicating one or more characteristics of the movement of the rotor. For example, the code may indicate the position or orientation of the rotor 320a within the stator 320b (e.g., in polar or Cartesian coordinates). As another example, the code may indicate velocity, displacement, speed, direction of rotation, or acceleration. As illustrated in
(25) In some situations, the coupling of the rotor 350a to the rotor 320a may be misaligned thereby causing noise to appear in the signal output by the resolver 350. To prevent such noise from affecting its operation, in one aspect, the vehicle control unit 210 may apply a transfer function to data received from the resolver 350 before further using that data. The transfer function may map indication(s) of the orientation(s) of the rotor 320a reported by the resolver 350 to a true orientation of the rotor. The transfer function may be derived using a brute force approach where speed data from the vehicle 101 is collected while the vehicle is run at a known constant (or nearly constant) speed, as measured by a speedometer or some other device, while data from the resolver is being collected. Afterwards, the data from the resolver may be processed so as to find a function that minimizes the power spectral density (PSD) of the signal from the resolver while retaining a frequency in that signal that corresponds to the speed of the rotor 320a. The frequency corresponding to the speed of the rotor 320 is the most present frequency in the resolver signal's spectrum and it has been found to correctly reflect the speed of the vehicle regardless of whether noise is also present.
(26) By way of example, the processing of the data may involve finding a filter function that retains the frequency in the resolver signal that correctly reflects the rotor's position (and thus the vehicle's speed) while removing frequencies associated with noise. The function may be identified by trying different filter models (or the same model, but with different parameters) until a function is found that works. Whether a function works may be determined by using signal that is filtered with the function to determine the speed of the vehicle, and comparing the determined speed to the speed measured using the speedometer or some other device. Similarly, the most present frequency may be identified by an operator looking at a frequency decomposition plot of the signal from the resolver 350a or by filtering different frequencies from the signal and determining which frequency is best suited for determining the speed of the vehicle 101, as discussed above.
(27) In other aspects, the vehicle control unit 210 may use signal from the resolver 350 to determine the velocity (or angular displacement, acceleration) of the rotor 320a. The vehicle control unit 210 may then use that data to calculate the velocity of the wheels 340. For example, the velocity of the wheels may be determined by multiplying the velocity of the rotor 320a by a speed ratio of the torque transfer device(s) 330. Once the velocity of the wheels is determined, it may be used to determine distance traveled by the vehicle 101. The distance traveled, in turn, may be used by the vehicle control unit 210 to determine the vehicle's location provided that a starting location and travel path of the vehicle are known.
(28)
(29) As illustrated in
(30) Resolver 450 may include a rotor 450a, stator 450b, and controller circuit 450c. The rotor 450a may be disposed within the bore of the stator 450b and it may be coupled to the rotor 440a of the motor 440. When the rotor 450a is actuated by the rotor 440a, the controller circuit 450c may generate, and feed to the vehicle control unit 110, an analog or digital code indicating a characteristic of the movements of the rotor. For example, the code may indicate the position of the rotor 440a within the stator 440b (e.g., in polar or Cartesian coordinates). As another example, the code may indicate velocity, displacement, speed, direction of rotation, or acceleration. In instances where the signal from the resolver is an analog signal, the indication of displacement may be encoded using the frequency, amplitude, phase, or another characteristic of the signal. In instances where the signal from the resolver is a digital signal, the indication of displacement may be a bit string (e.g., 01011).
(31)
(32) In operation, the vehicle control unit 210 may determine the direction in which the wheels of the vehicle 101 are pointing based on signal feedback from the resolver 450. For example, if the signal feedback indicates that the rotor 440a has turned 4 times to the left, the vehicle control unit 210 may determine that the wheels of the wheel point at 10 to the left (relative to a neutral steering position). By tracking the direction in which the wheels are pointing, the vehicle control unit 210 may obtain information regarding the path followed by the vehicle 101 as it travels. The travelling path, in turn, may be used to determine the location of the vehicle relative to a known starting point. In one aspect, the orientation of the steering motor can be used to determine the orientation of the steering system as a method of closing the loop of the control system when commanding a motion. It can also be used to determine the desired steering input to the vehicle, which precedes the actual direction change of the vehicle. Depending on the level of traction and speed of the vehicle, the angular measurement may not be the same as the direction of travel, but it could be used to augment other sensors. If there is a large discrepancy, it could inform the processor to rely more heavily on other sensors for determining vehicle position.
(33) As shown in
(34) The instructions 530 may be any set of instructions to be executed directly (such as machine code) or indirectly (such as scripts) by the processor. In that regard, the terms instructions, steps and programs may be used interchangeably herein. The instructions may be stored in object code format for direct processing by the processor, or in any other computer language including scripts or collections of independent source code modules that are interpreted on demand or compiled in advance. Functions, methods and routines of the instructions are explained in more detail below.
(35) Data 540 may be retrieved, stored or modified by processor 510 in accordance with the instructions 530. For instance, although the system and method are not limited by any particular data structure, the data may be stored in computer registers, in a relational database as a table having a plurality of different fields and records, or XML documents. The data may also be formatted in any computer-readable format such as, but not limited to, binary values, ASCII or Unicode. Moreover, the data may comprise any information sufficient to identify the relevant information, such as numbers, descriptive text, proprietary codes, pointers, references to data stored in other memories (including other network locations) or information that is used by a function to calculate the relevant data.
(36) Although
(37)
(38) In some aspects, each one of the digital/analog signals that is indicative of a displacement of the rotor 320a may be at least one of: A1: a signal indicating a velocity of the of the rotor (e.g., speed and direction of the rotor); A2: a signal indicating displacement of the rotor (e.g., 480) during a predetermined time period; A3: one or more signals that indicate orientation of the rotor at different time instants (e.g., orientation of rotor at time T.sub.1 and orientation of the rotor at time T.sub.2); A4: a signal that indicates acceleration of the rotor; A5: a signal that indicates a direction in which the rotor moves (e.g., clockwise or counterclockwise); and A6: a signal that indicates any other characteristic of the movement of the rotor 320a that affects the rotor's displacement.
(39) In other aspects, the source of the signal may be one of: B1: a resolver, such as the resolver 350; B2: a rotary encoder; B3: a controller circuit that is used to drive the coils of the motor 320 (e.g., signals used by the controller or another component to drive individual coils may be tapped into and used to determine rotor position, speed, acceleration, or another characteristic of movement; alternatively, Back Electromotive Force (BEMF) in one or more of the coils of the rotor 120 may be measured and used to determine the rotor's position, speed, or acceleration, or another characteristic of movement; and B4: any other displacement measuring device that is capable of returning one of the signals A1-A6.
(40) It should be noted that the disclosure is not limited to any specific type of signal that is indicative of the angular displacement of the rotor 320a within the stator 320b. Furthermore, there are numerous ways to measure the angular displacement of a rotor (or another characteristic of the movement of the rotor, such as position, speed, direction of movement) and the disclosure is not limited to any specific one of them.
(41) Specifically, in this example, at task 620, a first code and a second code are received from the resolver 350. The first code may be a coordinate that indicates the position of the rotor 320a within the stator 320b at time T.sub.1. Similarly, the second code may be a coordinate that indicates the position of the rotor 320a within the stator 320b at time T.sub.2. The codes may be either digital or analog. For instance, referring to
(42) At task 630, a location L.sub.2 of the vehicle is determined based on the signal feedback received at task 620. The location L.sub.2 may be a location where the vehicle 101 is situated at time T.sub.2 or another time that is different than the time T.sub.2. In one aspect of task 630, a characteristic of the movement of the rotor 320a (e.g., displacement, velocity, speed, direction, or acceleration), may be determined based on the signal feedback received at task 620 and this characteristic may be mapped to a characteristic of the movement of vehicle 101 (or the vehicle's wheels), such as displacement, velocity, speed, direction, or acceleration. Once determined, the characteristic of the movement of the vehicle's wheels may be used to determine how far from the location L.sub.1 the vehicle 101 has (or will be) departed at a given time instant. Task 630 is further discussed with respect to
(43) In another aspect of task 630, a transfer function for mapping a characteristic of the movement of the rotor 320a (e.g., speed of the rotor 320a, location of the rotor 320a within the stator 320b, acceleration of the rotor 320a) to a characteristic of the movement of vehicle 101 (or one or more wheels of the vehicle 101) may be used. The characteristic may be speed, acceleration, rate of acceleration, displacement, or any other derivative of displacement. For instance, the transfer function may be derived analytically based on the physics of the torque transfer device(s) 330 and other relevant components of the vehicle 101. Alternatively, the transfer function may be determined empirically by travelling one or more predetermined distances with the vehicle 101, recording signals received from the resolver 350 when each of the distances is traveled, and fitting the transfer function based on the predetermined distances and the received signals.
(44) At task 640, the operation of the vehicle 101 is controlled based on the determined location L.sub.2. For example, the vehicle control unit 210 may use the braking system 250 and the steering system 230 to slow down or steer the vehicle 101. As there are numerous ways in which systems in a vehicle may benefit from knowledge of the vehicle's location, the disclosure is not limited to any specific use of the location L.sub.2 determined at task 630.
(45)
(46) At task 720, the determined velocity is adjusted. Task 720 is further discussed with respect to
(47) In this example, based on the information received at task 620, the vehicle control unit 210 may determine that the rotor 320a has turned a quarter of a turn and it may divide this information by the duration of the period T.sub.1-T.sub.2. Once the speed of the rotor 320a is determined, the speed of the vehicle 101a (or its wheels) may be calculated based on the speed of the rotor 320a and the mechanical characteristics of the torque transfer device(s) 330. In that regard, by monitoring the rotation of the rotor 320b with the resolver 350, the vehicle control unit 210 may accurately determine the speed of the vehicle 101.
(48) At task 740, a location L.sub.2 of the vehicle 101 is determined, via dead reckoning, based on the velocity determined at task 730. For example, when the vehicle 101 is travelling along a travel path such as the one depicted in
(49) It should be noted that a number of different intermediate calculations may be performed when determining the location of the vehicle 101 based on signal feedback indicating the angular displacement of the rotor 320a within the stator 320b. In one aspect, instead of determining the velocity of the rotor 320a, the angular displacement of the rotor may be determined instead. In another aspect, instead of determining the velocity of the wheels, the angular displacement of the wheels. The disclosure, thus, is not limited to any specific method for correlating signal feedback indicative of the rotor's angular displacement to a characteristic of the vehicle 101's movements (e.g., distance traveled, speed, direction).
(50)
(51)
(52) At task 920, the angular displacement of the rotor around its axis of rotation, or the n-th derivative of the angular displacement is determined, based on the information obtained at task 910. In this example, n is an integer greater than zero and the n-th derivative of the angular displacement may be angular speed, angular acceleration, rate of angular acceleration, or any other derivative.
(53) At task 930, the linear displacement of the vehicle 101 (e.g., distance traveled), or n-th derivative of the linear displacement, of the vehicle (e.g., speed, acceleration, rate of acceleration) is determined based on the information determined at task 920. The displacement, or displacement derivative, may be determined by using a transfer function, such as the one discussed with respect to task 630. At task 940, the operation of the vehicle 101 is controlled based on the information determined at task 940.
(54)
(55) At task 1010B of
(56) In one example, the target sensor may be a speedometer. When a speed measurement obtained from the speedometer matches a speed determination based on the angular displacement of the rotor 320a, the speed measurement is said to be validated, and thus presumed correct. If, however, the speed measurement does not match the speed determination, the speed measurement may be deemed incorrect. The mismatch may be due to a failure of the speedometer or the connection between the speedometer and the vehicle control unit 210. In any event, a mismatch may indicate to the vehicle control unit 210 that information from the speedometer is not to be trusted. Accordingly, when a mismatch occurs, the vehicle control unit 210 may stop using data from speedometer in controlling the operation of the vehicle 101. For example, the vehicle control unit 210 may switch to using a control algorithm that does not rely on input from the speedometer.
(57) At task 1010C of
(58) In one aspect, the process 900 may be executed repeatedly in real-time. For example, at time t.sub.1, the vehicle control unit 210 may receive a measurement from the target sensor. Contemporaneously, at time t.sub.1, the vehicle control unit 210 may execute tasks 910-930 and determine the vehicle 101's displacement, or the n-th derivative of the vehicle's displacement, based on the angular displacement (or the displacement's n-th derivative) of the rotor 320a. Afterwards, the vehicle control unit 210 may compare the information determined as a result of executing the tasks 910-930 to the information obtained from the sensor. Afterwards, at time t.sub.2, the vehicle control unit 210 may receive another data sample from the target sensor, execute tasks 910-930, and compare the data sample from the data determined as a result of the process's execution. In other words, the above process may repeat itself continuously throughout the operation of the vehicle control unit 210. Times t.sub.1 and t.sub.2 may be time periods of length anywhere between a fraction of a second or several seconds (e.g., 1 s, 5 s, 60 s, 300 s).
(59) In another aspect, the process 900 may be executed multiple times per second as part of a control routine that is repeatedly executed by the vehicle control unit 210 when controlling the operation of vehicle 101. The control routine may include receiving sensor readings (e.g., GPS readings, speed readings, acceleration readings, radar readings, or laser scanner readings), executing one or more control algorithms using the received sensor readings, and changing at least one of speed or direction of the vehicle 101 based on the outcome of the algorithms' outcome. In that regard, the process 900 may be used to supplement other data sources that are available to the vehicle control unit 210, such as a GPS receiver, a laser scanner, or a speedometer.
(60)
(61) In some aspects, each one of the digital/analog signals that is indicative of the angular displacement of the rotor 440a may be at least one of: X1: a signal indicating a velocity of the of the rotor (e.g., speed and direction of the rotor); X2: a signal indicating displacement of the rotor (e.g., 480) during a predetermined time period; X3: one or more signals that indicate orientation of the rotor at different time instants (e.g., position of rotor at time T.sub.1 and position of the rotor at time T.sub.2); X4: a signal that indicates acceleration of the rotor; X5: a signal that indicates a direction in which the rotor moves (e.g., clockwise or counterclockwise); and X6: a signal that indicates any other characteristic of the movement of the rotor 440a that affects the rotor's displacement.
(62) In other aspects, the source of the signal may be one of: Y1: a resolver, such as the resolver 450; Y2: a rotary encoder; Y3: a controller circuit that is used to drive the coils of the motor 440 (e.g., signals used by the controller to drive individual coils may be tapped into and used to determine rotor position, speed, acceleration, or another characteristic of movement; alternatively, Back Electromotive Force (BEMF) in one or more of the coils of the rotor 120 may be measured and used to determine the rotors position, speed, or acceleration, or another characteristic of movement; and Y4: any other displacement measuring device that is capable of returning one of the signals X1-X6.
(63) In any event, it should be understood that the disclosure is not limited to any specific type of signal that is indicative of the angular displacement of the rotor 440a within the stator 440b. Furthermore, there are numerous ways to measure the angular displacement of a rotor within an engine's stator and the disclosure is not limited to any specific one of them.
(64) Specifically, in this example, at task 920, a first code and a second code is received from the resolver 350. The first code may be a coordinate that indicates the position of the rotor 440a within the stator 440b at time T.sub.I. Similarly, the second code may be a coordinate that indicates the position of the rotor 440a within the stator 450a at time T.sub.2. The codes may be either digital or analog codes. By way of example only, the position of the rotor may be expressed in reference to a magnetic axis of the rotor 440a and a reference point on the stator 440b. (e.g., as an angle between the magnetic axis and an axis across the reference point and the center of the rotor 440a.)
(65) At task 1130, a location L.sub.2 of the vehicle 101 is determined, via dead reckoning, based on the signal feedback received at task 1120. The location L.sub.2 may be a location where the vehicle 101 is situated at time T.sub.2 or another time that is different than the time T.sub.2. As discussed above, the displacement of the rotor 440a of the steering motor 440 may be used to determine the steering positions of wheels 340a. This information, in turn, may be used to determine the trajectory followed by the vehicle 101. Provided that the velocity of the vehicle is known, determining the location L.sub.2 based on the path followed by the vehicle 101 is a matter of a simple mathematical calculation. The velocity of the vehicle 101 may be determined using the process 600 of
(66) At task 1130, the operation of the vehicle 101 is controlled based on the determined location L.sub.2. For example, the vehicle control unit 210 may use the braking system 250 or the steering 230 to slow down or steer the vehicle 101. As there are numerous ways in which systems in a vehicle may benefit from knowledge of the vehicle's location, the disclosure is not limited to any specific use of the location L.sub.2 determined at task 930.
(67)
(68) In some aspects, the indication of steering position may be determined based on a transfer function that maps the signal feedback received at task 1120 to the indication of steering position. For example, one such transfer function may map each complete revolution of the rotor 440a in a left direction to a 5 degree offset of the wheels 340a and 340b, from their previous steering position. The function may be determined analytically based on the physics of the steering system 230 and other relevant components. Alternatively, the function may be determined empirically by running the steering motor 440, recording signals that are indicative of the angular displacement of the rotor 440a as a result of its running, measuring and recording changes in the steering position of the wheels 340a and 340b that result from the motor's running, and fitting the function based on the changes in steering position and the recorded signals.
(69) At task 1240, a location L.sub.2 of the vehicle 101 is determined based on the steering position of the wheels 340a and 340b. The shape of the travel path of the vehicle 101 may be determined based on the indication of steering direction determined at task 1230, speed of the vehicle, duration of a period for which the wheels are in given steering position (e.g., 10 offset from the neutral steering position). Once the travel path is determined, dead reckoning or another navigation technique may be used to infer location L.sub.2 based on the location L.sub.1 and the determined trajectory. It should be noted that a number of different intermediate calculations may be performed to determine a vehicle's trajectory based on one or more steering positions of the vehicle's wheels. The disclosure is not limited to any specific one of them
(70)
(71) At task 1420, one of angular displacement of the rotor around its axis of rotation, or the n-th derivative of the angular displacement, is determined based on the information obtained at task 1410. In this example, n is an integer greater than or equal to one, and the n-th derivative of the angular displacement may be angular speed, angular acceleration, rate of angular acceleration, or any other derivative.
(72) At task 1430, the angular displacement of the wheels 340a-b of vehicle 101 (e.g., distance traveled) or n-th derivative of the angular displacement of the wheels is determined based on the information obtained at task 1420. The angular displacement, or its n-th derivative may determined as discussed with respect to task 1230. The angular displacement may be relative to the steering axis S or any other axis. At task 1440, the operation of the vehicle 101 is controlled based on the information determined at task 1430.
(73)
(74) At task 1510B of
(75) At task 1510C of
(76) In one aspect, the process 1400 may be executed repeatedly in real-time. For example, at time t.sub.1, the vehicle control unit 210 may receive a measurement from the target sensor. Contemporaneously, at time t.sub.1, the vehicle control unit 210 may execute tasks 1410-1430 and determine the orientation of the wheels 340a-b of the vehicle 101. Afterwards, the vehicle control unit 210 may compare the information determined as a result of executing the tasks 1510-1530 to the information obtained from the sensor. Afterwards, at time t.sub.2, the vehicle control unit 210 may receive another data sample from the target sensor, execute tasks 1410-1430, and compare the data sample from the data determined as a result of the process's execution. In other words, the above process may repeat itself continuously throughout the operation of the vehicle control unit 210. Times t.sub.1 and t.sub.2 may be time periods of length anywhere between a fraction of a second or several seconds (e.g., 1 s, 5 s, 60 s, 300 s).
(77) In another aspect, the process 1400 may be executed multiple times per second as part of a control routine that is repeatedly executed by the vehicle control unit 210 when controlling the operation of vehicle 101. The control routine may include receiving sensor readings (e.g., GPS readings, speed readings, acceleration readings, radar readings, laser scanner readings), executing one or more control algorithms using the received sensor readings, and changing at least one of speed or direction of the vehicle 101 based on the outcome of the algorithms' outcome. In that regard, the process 1400 may be used to supplement other data sources that are available to the vehicle control unit 210, such as GPS receiver, laser scanner, or speedometer.
(78)
(79) It should further be noted that the disclosure is not limited to automotive applications only. For example, feedback signal that is indicative of the displacement of a rotor may be used to determine the position of boat control surfaces (e.g., rudder), position of boat propellers relative to a longitudinal axis of a boat, airplane control surfaces (e.g., flaps or elevators) or any other type of control surface or element that is coupled the rotor. Most of the foregoing examples are not mutually exclusive, but may be implemented in various combinations to achieve unique advantages.
(80) As these and other variations and combinations of the features discussed above can be utilized without departing from the subject matter as defined by the claims, the foregoing description of exemplary aspects should be taken by way of illustration rather than by way of limitation of the subject matter as defined by the claims. It will also be understood that the provision of the examples described herein (as well as clauses phrased as such as, e.g., including and the like) should not be interpreted as limiting the claimed subject matter to the specific examples; rather, the examples are intended to illustrate only some of many possible aspects.