Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
LIDAR DETECTION SYSTEMS AND METHODS WITH HIGH REPETITION RATE TO OBSERVE FAR OBJECTS
Document Type and Number:
WIPO Patent Application WO/2019/165130
Kind Code:
A1
Abstract:
Embodiments discussed herein refer to LiDAR systems that accurately observe objects that are relatively close and objects that are relatively far using systems and methods that employ a variable time interval between successive laser pulses and one or more filters.

Inventors:
ZHANG, Rui (171 Main St, #123Los Altos, CA, 94022, US)
ZHOU, Gang (171 Main St, #123Los Alto, CA, 94022, US)
LI, Yimin (171 Main St, #123Los Alto, CA, 94022, US)
BAO, Junwei (171 Main St, #123Los Alto, CA, 94022, US)
Application Number:
US2019/019030
Publication Date:
August 29, 2019
Filing Date:
February 21, 2019
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
INNOVUSION IRELAND LIMITED (171 Main St, #123Los Alto, CA, 94022, US)
International Classes:
G01S7/484; G01S7/486; G01S17/89; G05D1/02
Attorney, Agent or Firm:
VAN COURT, Andrew et al. (Van Court & Aldridge LLP, 154 Grand St.New York, NY, 10013, US)
Download PDF:
Claims:
WHAT IS CLAIMED IS:

1. A light detection and ranging (LiDAR) system, comprising:

a transmission system comprising:

a laser;

time interv al adjustment circuitry operative to generate variable time interv als; and

transmission control circuitry coupled to the laser and the time interval adjustment circuitry, wherein the control circuitry is operative to cause the laser to emit transmission pulses in accordance with the variable time intervals; and

a receiver system comprising:

a receiver operative to detect return pulses that are consequences of the transmission pulses; and

receiver control circuitry coupled to receive an output of the receiver and the variable time interval, the receiver control circuitiy operative to:

for each detected return pulse, calculate a plurality of object distances based on a plurality of successive transmission pulses;

compare at least two calculated object distances corresponding to a currently detected return pulse to at least two calculated distance objects corresponding to a previously detected return pulse to filter out calculated distance objects that fail filter criteria; and

provide object distances that pass the filter criteria as data points for constructing an image of objects observed by the LiDAR system.

2. The LiDAR system of claim 1 , wherein the variable time interval changes for each transmission pulse.

3. The LiDAR system of claim 1 , wherein the variable time interval is randomly selected between a minimum time interval and a maximum time interv al.

4. The LiDAR system of claim 1, wherein the variable time interval is selected from a series of predetermined numbers.

5. The LiDAR system of claim 3, wherein a difference between the time interval of immediate successive pulses is such that a distance covered by the speed of light based on the difference is larger than a distance threshold used in the filter criteria.

6. The LiDAR system of claim 1, wherein the filter criteria comprises a distance threshold.

7. The LiDAR system of claim 6, wherein when a difference between a first calculated distance object corresponding to a return pulse for a given angle and a first calculated distance object corresponding to the return pulse for a neighboring angle is less than the distance threshold, the first distance object corresponding to the currently detected return pulse is passed.

8. The LiDAR system of claim 6, wherein when a difference between a first calculated distance object corresponding to the currently detected return pulse and a first calculated distance object corresponding to the previously detected return pulse is greater than the distance threshold, the first distance object corresponding to the currently detected return pulse is filtered out as negative data.

9. The LiDAR system of claim 8, wherein the negative data is stored in memory for subsequent analysis to determine whether to reject the negative data.

10. The LiDAR system of claim 1 , wherein the receiver control circuitry is operative to:

calculate a first plurality of object distances with respect to a first angle;

calculate a second plurality of object distances with respect to a second angle;

apply a space-based filter to the first and second plurality of object distances;

provide object distances that pass the space-based filter criteria as data points for constructing the image of objects observed by the LiDAR system.

11. The LiDAR system of claim 10, wherein the receiver controller is operative to apply a time-based filter to each of the first and second object distances.

12. The LiDAR system of claim 10, wherein when the space-based filter produces a negative result, the negative result is stored in memory for subsequent analysis to determine whether to reject the negative data.

13. A method for using a LiDAR system to generate an image of observed objects comprising:

transmitting successive transmission pulses in accordance with a variable time interval, wherein the variable time interval changes for each transmission pulse;

receiving a plurality of return pulses;

in response to each received return pulse, calculating a plurality of object distances based on a plurality of successive transmission pulses;

comparing at least two calculated object distances corresponding to a currently detected return pulse to at least two calculated distance objects corresponding to a previously detected return pulse to filter out calculated distance objects that fail filter criteria;

rejecting object distances that fail filter criteria; and

providing object distances that pass filter criteria for use in generating the image.

14. The method of claim 13, w'herein the variable time interval is randomly selected.

15. The method of claim 14, wherein a time differential of any two successive time intervals exceeds a threshold.

16. The LiDAR system of claim 13, wherein the variable time interval is selected from a series of predetermined numbers.

17. The method of claim 12, w'herein the filter criteria comprises a distance threshold.

18. Die method of claim 17, wherein when a difference between a first calculated distance object corresponding to the currently detected return pulse and a first calculated distance object corresponding to the previously detected return pulse is less than the distance threshold, the first distance object corresponding to the currently detected return pulse is passed.

19. The method of claim 17, wherein when a difference between a first calculated distance object corresponding to the currently detected return pulse and a first calculated distance object corresponding to the previously detected return pulse is greater than the distance threshold, the first distance object corresponding to the currently detected return pulse is filtered out as negative data.

20. The method of claim 19, wherein the negative data is stored in memory for subsequent analysis to determine whether to reject the negative data.

21. The method of claim 13, further comprising:

calculating a first plurality of object distances with respect to a first vertical angle;

calculating a second plurality of object distance with respect to a second vertical angle;

applying a space-based filter to the first and second plurality of object distances;

providing object distances that pass the space-based filter criteria as data points for constructing the image of objects observed by the LiDAR system.

22. The LiDAR system of claim 21, wherein when the space-based filter produces a negative result, storing the negative result in memory for subsequent analysis to determine whether to reject the negative data.

23. The LiDAR system of claim 13, wherein rejecting object distances that fail filter criteria further comprises:

verifying that the object distance exists at a distance that exceeds a distance threshold; and

rejecting the object distance verified to exist at a distance that exceeds the distance threshold.

24. A light detection and ranging (LiDAR) system, comprising:

a laser transmission system operative to transmit laser pulses in succession, wherein a time interval between successively transmitted laser pulses is varied;

a receiver system to detect return pulses that are consequences of the transmitted laser pulses; and

control circuihy operative to use the varied time interval of successively transmitted laser pulses to discriminate among distance calculations of an object corresponding to the return pulses.

25. The LiDAR system of claim 24, wherein the distance calculations comprise a relatively far distance calculation and a relatively close distance calculation, and wherein the control circuitry is operative to verify which one of the relatively far distance calculation and the relatively close distance calculation is correct.

26. The LiDAR system of claim 24, wherein the control circuitry is operative to discriminate among the distance calculations of an object corresponding to the return pulses by rejecting distance calculations corresponding to a ghost object.

27. The LiDAR system of claim 24, wherein the control circuitry is operative to discriminate among the distance calculations of an object corresponding to the return pulses by rejecting return pulses that are the consequence of laser pulses originating from another laser transmission source.

28. The LiDAR system of claim 24, wherein the control circuitry is operative to use the discriminated distance calculations as data points for constructing an image of objects observed by the LiDAR system.

29. A method for using a LiDAR system, comprising:

transmitting successive transmission pulses in accordance with a variable time interval, wherein the variable time interval changes for each transmission pulse;

receiving a plurality of return pulses corresponding to an object;

determining distance calculations corresponding to the object based on the plurality of return pulses and a plurality of successive transmission pulses;

discriminating among the distance calculations by evaluating the plurality of return pulses in connection with the variable time interval of the successive transmission pulses; and providing the discriminated distances as data points for generating an image representing a field of view of the LiDAR system.

30. The method of claim 29, wherein the distance calculations comprise a relatively far distance calculation and a relatively close distance calculation, and wherein the discriminating comprises verifying which one of the relatively far distance calculation and the relatively close distance calculation is correct.

31. The method of claim 29, wherein the discriminating comprises rejecting distance calculations corresponding to a ghost object.

32. The method of claim 29, wherein the discriminating comprises rejecting return pulses that are the consequence of laser pulses originating from another laser transmission source.

33. The method of claim 29, wherein the discriminating comprises comparing at least two distance calculations corresponding to a currently detected return pulse to at least two distance calculations corresponding to a previously detected return pulse to filter out distance calculations that fail filter criteria.

34. A method for using a LiDAR system, comprising:

discriminating among observed objects that are relatively close and observed objects that are relatively far by varying a time interval between successive laser pulses being emitted by the LiDAR system; and

using results of the discriminating as data points for generating a image representing a field of view of the LiDAR system.

35. The LiDAR system of claim 1 , wherein a number of the plurality of successive transmission pulses determines a maximum range of object detection.

36. The method of claim 13, wherein a number of the plurality of successive transmission pulses determines a maximum range of object detection.

Description:
LIDAR DETECTION SYSTEMS AND METHODS WITH HIGH REPETITION RATE TO OBSERVE FAR OBJECTS

CROSS-REFERENCE TO A RELATED APPLICATION

[0001] This application claims the benefit of U.S. Provisional Application No. 62/633,348, filed February 21, 2018, the disclosure of which is incorporated herein in its entirety.

FIELD OF TFIE INVENTION

[0002] The present disclosure relates to light detection and ranging (LiDAR), and in particular to LiDAR systems and methods for use in a vehicle.

BACKGROUND

[0003] Systems exist that enable vehicles to be driven semi-autonomously or fully autonomously. Such systems may use one or more range finding, mapping, or object detection systems to provide sensory input to assist in semi-autonomous or fully autonomous vehicle control. Conventional LiDAR systems designed to observe objects 200 meters or more away use a relatively slow repetition rate. The relatively slow repetition rate results in a relatively low resolution, but does not result in too many false positives. However, in order to improve the resolution, conventional LiDAR systems may increase its repetition rate. The increase in repetition rate, however, results in false alarms. This is because an object that is relatively far away is registered as an object that is relatively close. This is so called“range ambiguity”. Such erroneous false positives may adversely affect the operation of a vehicle using this conventional LiDAR system.

[0004] It is desirable for LiDAR systems to accurately observe objects, including objects that are close and objects that are far. BRIEF SUMMARY

[0005] Embodiments discussed herein refer to LiDAR systems that accurately observe objects that are relatively close and objects that are relatively far using systems and methods that employ a variable high frequency repetition rate and a filter or multiple filters.

[0006] In one embodiment, a light detection and ranging (LiDAR) system is provided. The LiDAR system can include a transmission system, which can include a laser, time interval adjustment circuitry operative to generate a variable time intervals, and transmission control circuitry coupled to the laser and the time interval adjustment circuitry, wherein the control circuitry is operative to cause the laser to emit transmission pulses in accordance with the variable time intervals. The system can include a receiver system having a receiver operative to detect return pulses that are consequences of the transmission pulses, and receiver control circuitry ' coupled to receive an output of the receiver and the variable time interval. The receiver control circuitry can be operative to: for each detected return pulse, calculate a plurality' of object distances based on a plurality of successive transmission pulses; compare at least two calculated object distances corresponding to a currently detected return pulse to at least two calculated distance objects corresponding to a previously detected return pulse to filter out calculated distance objects that fail filter criteria; and provide object distances that pass the filter criteria as data points for constructing an image of objects observed b ' the LiDAR system.

[0007] In another embodiment, a method for using a LiDAR system to generate an image of observed objects is provided. The method includes transmitting successive transmission pulses in accordance with a variable time interv al, wherein the variable time interv al changes for each transmission pulse, receiving a plurality of return pulses, in response to each received return pulse, calculating a plurality of object distances based on a plurality of successive transmission pulses, comparing at least two calculated object distances corresponding to a currently detected return pulse to at least two calculated distance objects corresponding to a previously detected return pulse to filter out calculated distance objects that fail filter criteria, rejecting object distances that fail filter criteria, and providing object distances that pass filter criteria for use in generating the image.

[0008] In another embodiment, a LiDAR system is provided that includes a laser transmission system operative to transmit laser pulses in succession, wherein a time interval between successively transmitted laser pulses is varied, a receiver system to detect return pulses that are consequences of the transmitted laser pulses, and control circuitry operative to use the varied time interval of successively transmitted laser pulses to discriminate among distance calculations of an object corresponding to the return pulses.

[0009] In another embodiment, a method for using a LiDAR system is provided transmitting successive transmission pulses in accordance with a variable time interval, wherein the variable time interval changes for each transmission pulse; receiving a plurality of return pulses corresponding to an object; determining distance calculations corresponding to the object based on the plurality of return pulses and a plurality of successive transmission pulses; discriminating among the distance calculations by evaluating the plurality of return pulses in connection with the variable time interval of the successive transmission pulses; and providing the discriminated distances as data points for generating a image representing a field of view of the LiDAR system.

[0010] In yet another embodiment, a method for using a LiDAR system provided by discriminating among observed objects that are relatively close and observed objects that are relatively far by varying a time interval between successive laser pulses being emitted by the

LiDAR system, and using results of the discriminating as data points for generating a image representing a field of view of the LiDAR system.

[0011] A further understanding of the nature and advantages of the embodiments discussed herein may be realized by reference to the remaining portions of the specification and the drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

[0012] FIG. 1 shows an illustrative scenario in which a conventional LiDAR system can detect objects but is unable to distinguish distance difference between multiple objects;

[0013] FIG. 2 shows an illustrative timing diagram;

[0014] FIG. 3A shows an illustrative LiDAR system, according to an embodiment;

[0015] FIG. 3B shows an illustrative laser pulse pattern, according to an embodiment;

[0016] FIG. 4 shows illustrative block diagram of a portion of the LiDAR system of FIG. 3, according to an embodiment; [0017] FIG. 5 shows an illustrative timing diagram showing transmission pulses and corresponding time stamps and receiver pulses and corresponding time stamps, according to an embodiment;

[0018] FIG. 6 shows object distances, according to an embodiment; [0019] FIGS. 7A and 7B show illustrative applications of filtering criteria, according to various embodiments;

[0020] FIG. 8 shows an illustrative process that uses a varying repetition rate to produce filtered distance objects in accordance with various embodiments; and

[0021] FIG. 9 is a functional block diagram illustrating a vehicle system, according to an embodiment.

DETAILED DESCRIPTION

[0022] Illustrative embodiments are now described more fully hereinafter with reference to the accompanying drawings, in which representative examples are shown. Indeed, the disclosed LiDAR systems and methods may be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. Like numbers refer to like elements throughout.

[0023] In the following detailed description, for purposes of explanation, numerous specific details are set forth to provide a thorough understanding of the various embodiments. Those of ordinary skill in the art will realize that these various embodiments are illustrative only and are not intended to be limiting in any way. Other embodiments will readily suggest themselves to such skilled persons having the benefit of this disclosure.

[0024] In addition, for clarity purposes, not all of the routine features of the embodiments described herein are shown or described. One of ordinary skill in the art would readily appreciate that in the development of any such actual embodiment, numerous embodiment- specific decisions may be required to achieve specific design objectives. These design objectives will vary from one embodiment to another and from one developer to another. Moreover, it will be appreciated that such a development effort might be complex and time- consuming but would nevertheless be a routine engineering undertaking for those of ordinary skill in the art having the benefit of this disclosure.

[0025] FIG. 1 shows an illustrative scenario in which a conventional LiDAR system can detect objects but is unable to distinguish distance difference between multiple objects. In particular, FIG. 1 shows LiDAR system 100, which can include transmitter 104 and receiver 106, near object 130, and far object 140. Far object is farther away from system 100 than near object 130. During operation, transmitter 104 transmits signal T1 first, followed by signal T2. Each transmitted signal produces a receiver signal when the transmitted signal reflects back from an object. Receiver signal R1 is produced in response to transmit signal T 1 , and receiver signal R2 is produced in response to transmit signal T2. Receiver 106 may receive signal R2 before it receives signal Rl, even though signal T1 was transmitted before signal T2. Receipt of signal R2 before Rl may cause system confusion of the correct correspondence of transmitted and received signals, thus calculate the distance incorrectly. In order to prevent confusion, the repetition rate of transmitter pulses (or signals) is slowed down, so that the time interval between Tl and T2 is large enough that Rl can return before the system sends T2. In practice this time interval is set to be the round trip time of light traveling in the maximum detection distance with optional additional margin. However, a relatively slow repetition rate results in a relatively low resolution. To increase the resolution, a high repetition rate system is required. Increasing the repetition rate, M, effectively limits how far system 100 can accurately observe objects. The distance of an observed object is equal to c/2/M, where c is the speed of light, and M is the repetition rate of the transmitter pulses.

[0026] FIG. 2 shows an illustrative timing diagram of a transmitter having transmitter signals T 1 and T2, and of a receiver having receiver signal Rl . As shown, transmitter signal Tl is transmitted at time, tn, and transmitter signal T2 is transmitted at time, to, and receiver signal Rl is received at time, tai. A conventional LiDAR system has a fixed repetition rate, M. The time interv al between each transmitter pulse is 1/M. For example, if the repetition rate is 1MHz, then the time interval is lps. Based on a distance equation of c/2/M, a 1 Mhz repetition results in a distance of 150 meters. If the object is located at a distance greater than 150 meters, such as 180 meters, the receiver signal Rl is received at time that exceeds the lps time interval (i.e., 1.2 ps after time, tn, and 0.2 its after time, to. The system cannot distinguish whether Rl is the return pulse corresponding to Tl or T2. Conventional systems may typically consider that Rl is a return corresponding to T2 (e.g., because objects that are relatively far away typically have weak return signals). In considering that R1 corresponds to T2, the system may determine the object is (1.2-1.0 , us)*c/2 is 30 meters. In this regard, R1 is considered a ghost because an object that is actually far away is being considered as an object that is close. Registering the object at 30 meters instead of 180 meters may result in undesired actions (e.g., an erroneous brake by an autonomous car system). As defined herein, a ghost object is associated with the incorrect distance calculation. Referring to the example above, R1 is actually at 180 meters, but the system also registers R1 at 30 meters. Embodiments discussed herein are able to reject the 30 meter distance calculation as a ghost image and use 180 meters as the correct distance calculation to be assigned to R1.

[0027] Embodiments discussed herein vary the time interval between each transmitter pulse. Time interval variation of successive pulses enables the LiDAR system and methods for the use thereof to accurately detect objects that are observed relatively' far away', reject ghost, and avoid interference from other LiDAR systems.

[0028] FIG. 3A shows an illustrative LiDAR system 300 according to an embodiment. System 300 can include transmitter system 310 and receiver system 350. Other components and systems may exist as part of the LiDAR system 300, but are not shown to avoid overcrowding the drawing. Transmitter system 310 can include clock 312, repetition rate/time interval adjustment circuitry 320, control circuitry 330, and laser 340. Clock 312 may be a system clock that serv es as a reference for one or more components in system 300. Time interval adjustment circuitry ' 320 may be operative to control and/or adjust the repetition rate/time interval of the transmitter pulse of laser 340. Time interval adjustment circuitry' 320 can vary' the repetition rate/time interval for each transmitter pulse such that no tw'o successive transmitter pulses have the same repetition rate/time interval. For example, assume that a first interv al between a first transmitter pulse and a second transmitter pulse is M, then the immediately successive interval for a successive transmitter pulse is (l±a)M, where a is a randomization factor that is applied to M. The randomization factor may be bounded to prevent the time interval from exceeding maximum and minimum bounds

[0029] Control circuitry ' 330 may receive the repetition rate from repetition rate adjustment circuitry for each transmitter pulse and causes laser 340 transmit laser pulses in accordance with the current repetition rate. For example, for a first period, the time interval between successive pulses may be 1 us, then for a third successive pulse (which immediately follows the first two pulses), the time interval may be 1.1 us, and then for a fourth successive pulse, the time interval may be 0.97 us. The laser pulses being emitted by laser 340 may be directed through scanning and receiving optics 345, which may include a combination of lenses, mirrors, one or more rotating polygons and/or oscillation mirrors, and any other suitable components. See, for example, commonly assigned U.S. Patent Application No. 16/242,567, filed January 8, 2019, for illustrative examples of scanning and receiving optics.

[0030] Receiver system 350 can include receiver 352, control circuitry 360, and imaging system 380. Receiver 352 may detect return pulses originating from transmission pulses that are reflected back from one or more objects. Reflected transmission pulses may be routed through a portion of scanning and receiving optics 345 to receiver 352. Control circuity 360 may receive the time stamp of when the system fires a laser pulse from repetition rate/time interval adjustment circuitry 320 and operative to apply analytics and noise rejection to the data obtained by receiver 352 to provide filtered results. The filtered results may be provided to imaging system 380. Imaging system 380 may construct a 2D or 3D image of the environment being scanned by LiDAR system 300. During this process, reference beam information can be applied to the system to determine precise time stamps for receiving pulses and transmitting pulses as well.

[0031] FIG. 3B shows an illustrative laser pulse pattern that may be provided by LiDAR system 300, according to an embodiment. LiDAR system 300 may project an array of laser pulses 390 that enables system 300 to observe a space (e.g., a two or three dimensional space). This array of laser pulses is projected every image capture cycle. Objects within the space can return laser pulses back to the system 300, which receives the return pulses and uses the data points to construct an image of objects within the space. The methods and algorithms for transmitting the laser pulses and how the data is interpreted is the subject of many embodiments discussed herein. LiDAR system 300 may be designed to observ e a lateral field of view for each angle along a vertical field of view. The angles of the vertical field of view are shown as P0, PI, P2, through PN, and the lateral fields of view are shown as the sequence of dashed lines corresponding to each angle of the vertical field of view. At angle P0, for example, a laser pulse is transmitted at each dashed line, shown specifically at times Tlo, T2o, T3o, T4o through TNo. The 0 subscript corresponds to the P0 angle.

Similarly, at angle PI, a laser pulse is transmitted at times Tli, T2i, T3i, T4i through TNi. The I subscript corresponds to the P I angle. Laser pulses are transmitted at each of the times as shown for all angles. The image capture cycle may include one sweep of all transmitted laser pulses for all angles. For example, the image capture cycle may start at time Tlo and end at time TNN. [0032] The time interval between each laser pulse is varied in both the time and space.

Time variations refer to variations in the time interv al between laser pulses between each pulse across the lateral field of view is different. That is, the time interval between time Tlo and T2o is different than the time interval between T2o and T3o, and the time interval between T2o and T3o is different than the time interval between T3o and T4o, and so on. Space variations refer to variations in the time interv al of laser pulses between adjacent angles.

That is, the time interv al between time Tlo and T2o is different than the time interval between Tl i and T2i, and the time interval between T2o and T3o is different than the time interval between T2i and T3i, and so on. Moreover, the time interval between time Tl i and T2i is different than the time interv al between Tb and T22. Control circuitry 330 is aware of the time interv al of each laser pulse and can ensure that the time interv al varies across and time and space.

[0033] FIG. 4 shows an illustrative object rejection module 400 that may be executed by control circuitiy 360 to confirm the distance accuracy of objects detected by receiver 352. Module 400 may be a software program that is executed by control circuitry 360 to verify the existence of objects at particular distances when LiDAR system 300 is operating at much high repetition rates than those of conventional LiDAR systems. Object rejection module 400 can include object distance calculation module 410, object filter module 420, and filtered distance objects 430. Object rejection module 400 is able to accurately determine the distance of an object by taking into account the varying time intervals and by applying one or more filters to reject distance calculations that do not meet the appropriate criteria.

[0034] Object distance calculation module 410 may receive the time interval from circuitry 320 and outputs from receiver 352, and based on those inputs, it can calculate several different distances, each corresponding to different transmission time stamps. That is, module 410 can calculate the distance of the detected object with respect to the current transmission time stamp, the distance of the detected object with respect to the previous transmission time stamp, and if desired, the distance of the detected object with respect to any number of transmission time stamps immediately preceding the previous transmission time stamp. The transmission time stamp coincides with when laser 340 is instructed to emit a laser pulse. Since laser 340 emits a laser pulse based on a variable time interval, module 410 may maintain a moving window of distance calculations (with respect to multiple transmission time stamps) for at least two successive receiver signals. To further illustrate this concept, please refer now to FIGS. 5 and 6. [0035] FIG. 5 shows an illustrative timing diagram showing transmission pulses and corresponding time stamps and receiver pulses and corresponding time stamps. The transmission pulses are shown as Ti, T 2 , T3, and p and the receiver pulses are shown as Ri, R2, and R3. The timestamps for the transmission pulses are shown as tri ... ti4 and the timestamps for receiver pulses are shown as tm ... tux. The time intervals in between each transmission pulse are shown as Ml, M2, and M3, where M1¹M2 and M2¹M3 and are representative of the varying repetition rate for each successive transmission pulse. The transmission pulses may correspond to transmission pulses corresponding to a particular angle (e.g., one of angles P0, PI, P2, through PN of FIG. 3B).

[0036] FIG. 6 shows object distances (OD) calculated for RI and for R2. Because the system does not know whether RI corresponds to T2 or to Tl, object distance calculation module 410 can calculate two different distances: one with respect to T2 (shown as ODI(RI)) and the other with respect to TI (shown as OD2(RI>). As an example, assuming that tRi is Ups and MI is 1 ps, OD1<RI) is 30 meters and OD2<RI; > is 180 meters. Because the system does not know whether R2 corresponds to T3 or to T2, object distance calculation module 410 can calculate two different distances: one with respect to T3 (shown as OD1(R 2) ) and the other with respect to T2 (shown as OD2(R2)). Following the example above, and assuming that tR2 is 2.2ps and M2 is 1.2 ps, OD1(R2I is 13.5 meters and OD2I R2> is 180 meters.

[0037] Referring now back to FIG. 4, after the object distances calculation are complete, object filter module 420 can apply filter criteria to determine w'hether to reject one or both of distance objects OD1 and OD2. The filter criteria is based on the fact that the object is continuous in the space, and the angle between the line connecting the consecutive scanning points landing on the object surface and the laser beam is greater than a threshold. The latter criteria are valid because if this angle is too small, the scattered light (return light) will be very w¾ak due to large incidence angle. If LiDAR system observed a positive return from an object at a given angle, at least one of its neighbor angles should give a positive return as well. For example, referring briefly to FIG. 3B, if an object is detected at T2i and not detected at Tl 1, T3i or T2o, that same object should be detected at T2i. In addition, the distance measured for these tw o neighbor positive returns should be less than a certain distance (e.g. 5 meters), assuming that no object can move faster than a certain speed (e.g. 5 km/s) and the neighboring points are measured at a very short time interval (e.g. 1 us for scanning in the lateral direction, or 1 ms for scanning in the vertical direction). If only one positive return is obtained and none of its neighbor angles generates returns, the system considers it as a noise or false return. For example, referring again briefly to FIG. 3B, if a return is seen at T2i, but nothing within a reasonable distance (e.g. 5 meters) is seen at Tli, T3i.T2o, or T22, the system may reject the return at T3i as noise or a false return.

[0038] Referring now to FIG. 7A, object filter module 420 can apply a time-based filter by comparing object distances within the same angle. In particular, object filter module 420 can determine whether the absolute value of the difference between 0D1 (R2 > and ODI(RI) is less than a threshold (e.g. 5 meters). If that determination is true, the distance associated with OD1 is considered positive and is passed as a filtered distance object 430. If that determination is false, the distance associated with OD1 is negative and that distance is stored in memory. The negative OD1 is labeled as NODI and stored in memory for subsequent higher level analysis. Object filter module 420 also determines whether the absolute value of the difference between OD2(R2 and OD2(RO is less than the same threshold. If that determination is true, the distance associated with OD2 is considered positive and is passed as a filtered distance object 430. If that determination is false, the distance associated with OD2 is negative and that distance is stored in the memory (and will be referred to below as NOD2). NODI andNOD2 can be used in a secondary verification to verify whether the returns seen at NODI andNOD2 are valid. For example, NODI and NOD2 can be applied to a space-based filter, described below to verify whether the returns seen at NODI and NOD2 are valid. The space-based filter can compare NODI and NOD2 to corresponding object distances at different vertical angles to determine whether any corroborating returns exist at adjacent vertical angles. If no corroborating returns exist for NOD I and NOD2 at adjacent angles, then NODI and NOD2 can be rejected. If corroborating returns exist for NODI and NOD2 at adjacent angles, then NODI and NOD2 may be retained in memory for further analysis. The vertical angles refer to angles within the vertical field of view of a LiDAR system.

[0039] As a continuation of the above example, if the threshold is 5 meters, then the OD1 filter would fail because 30-13.5 is 16.5, which is greater than 5, but the OD2 filter would pass because 180-180 is 0, which is less than 5. In reality, this number may be a small non zero number, such as, for example, one to five centimeters depending on the measurement uncertainty and movement of the object and LiDAR. Based on this filter, OD1 would be rejected, and stored in the memory, and OD2 distance of 180 meters would be passed as a filtered positive distance object 430. [0040] Thus, it is shown that by varying the time intervals, the distance of far objects can be precisely calculated and mapped. This is because even though the far objects may cause ambiguities (e.g., ghosts) in determining which return signal belongs to which transmitter pulse, the variance of the repetition rate/time interval produces distance calculations that enable the erroneous distances objects to be rejected. The time interval variation between the neighboring transmitter pulses should be sufficiently different to guarantee the filter criteria can be applied to the system. For example, assume that a first time interval for a first transmitter pulse is M, then the immediately successive time interval for a successive transmitter pulse is (l±a)M, where a is a randomization factor that is applied to M. The randomization factor a should be larger than a certain value, e.g. 0.02 for the filter criteria of 5 meters and a time interval of 1 its. The randomization factor and time intervals should also be bounded to a maximum and minimum value to guarantee high resolutions. Thus, the difference in adjacent time intervals is sufficiently different to ensure that“ghost” objects are filtered out by' the time-based filter.

[0041] In some embodiments, the time intervals can repeat as a sequence of predetermined time intervals. For example, the sequence can include a fixed number of time intervals, each of which has a different length that satisfies a minimum delta requirement among adjacent time intervals to account for various tolerances in the system. The sequence can be repeated as necessary to trigger transmission pulses in accordance with the variable time intervals as discussed herein.

[0042] Referring now to FIG. 7B, object filter module 420 can apply a space-based filter by comparing object distances between adjacent angles. For example, assume that the space- time filter produced NOD2 according to a first angle (e.g., angle P0) and NOD2 according to an adjacent angle (e.g., angle PI). Object filter module 420 can determine whether the absolute value of the difference between NOD2<po) and NOD2{Pi> is less than a vertical distance threshold. If that determination is true, the distance associated with NOD2 is considered accurate and is passed as a filtered distance object 430. If that determination is false, the distance associated with NOD2 is negative and that distance is restored in the memory for higher level judgement.

[0043] In some embodiments, varying time interv al can be used to detect objects that are really far away. This can be accomplished by calculating and filtering object distances with respect to at least three successive transmission pulses. For example, referring to FIG. 5, assume that R2 is actually a return corresponding to the T1 transmission pulse and that R3 corresponds to the T2 transmission pulse, and R1 does not exist. The system can determine whether R2 corresponds to T3, T2, or T1 using embodiments discussed herein. In this example, object distance calculation module 410 can calculate multiple object distances with respect to R3 and R2 to determine the correct distance of R2. For example, module 410 can calculate the following object distance for R3: one with respect to T4 (ODloo/), one with respect to T3 (0D2(R3)), and one with respect to T2 (0D3(R3)). Module 410 can calculate the following object distance for R2: one with respect to T3 (0D1 (R2 >), one with respect to T2 (OD2(R2)), and one with respect to T1 (0D3(R2)). All of the object distances can be evaluated by one or more filters to determine which object distances should be accepted or rejected.

For example, the OD1 filter can calculate the difference between (0D1 (R3) ) and (0D1(R2)) and compare it to a threshold, the OD2 filter can calculate the difference between (OD2 (R3) ) and (OD2(R2 I ) and compare it to the threshold, and the OD3 filter can calculate the difference between (OD3(R3I) and (0D3(R2)) and compare it to the threshold. In this particular example, the difference between (OD3(R3; > ) and (OD3 (R2} ) is approximately zero, thus indicating that the correct distance associated with R2 is correlated to transmission T1.

[0044] Thus, it should be appreciated that the variable time interval embodiments can be used to correctly determine the location of objects at any reasonable distance, including, for example, distances of 500 meters or more. Depending on the desired range of distance calculations, the system can calculate the requisite number of distance calculations needed to make the determination. The example above showed the system calculating distance calculations with respect to three successive transmission pulses (and FIG. 6 and FIG. 7A examples showed distance calculations with respect to two successive transmission pulses).

If desired, the system can calculate distances with respect to any number of successive transmission pulses, using the number necessary to cover the desired range of object detection.

[0045] FIG. 8 shows an illustrative process 800 that uses a varying repetition rate/time interval to produce filtered distance objects in accordance with various embodiments. At step 810, for each received signal, several object distances are calculated based on a plurality of successive transmission pulses, wherein a time interval varies between each transmission pulse of the plurality of transmission pulses. At step 820, at least two calculated object distances corresponding to a current received signal are compared to at least two calculated object distances corresponding to a previous received signal to filter out calculated object distances that fail filter criteria. At step 830, object distances that fail filter criteria are stored in memory for higher level analysis. At step 840, object distances that pass filter criteria are passed to an imaging system.

[0046] It should be understood that the steps in FIG. 8 are merely illustrative and that additional steps may be added and the order to the steps may be rearranged.

[0047] The variable time interval can be used to reject not only ghost objects, but to reject objects that exceed a fixed distance. For example, certain applications may not want to process objects that exist at a distance exceeding a fixed threshold (e.g., 150 meters). The variable time interval filtering algorithm can be used to verify that an object exists at a distance beyond the fixed threshold, and reject any ghost objects may stem from that object, but a system using the data obtained from the filtering algorithm may reject objects verified to exist beyond the fixed threshold.

[0048] The high frequency, variable time interval filtering algorithm discussed herein is also able to take the following scenario into account. Assume there is transparent object/small object in the range of c/2*M. The transparent object reflects certain partial of signal back to the receiver, but the remainder of the transmission pulse keeps propagating and hits a far object, which is out of the range of c/2*M. In addition, the distance between the near object and far object is exactly equal to c/2*M, which means the two objects overlapped.

[0049] In some embodiments, the LiDAR system is able to discriminate among observed objects that are relatively close and observed objects that are relatively far by varying a time interval between successive laser pulses being emitted by the LiDAR system. Thus, by varying the time interval and using that as part of the basis for determining object distance calculations, the LiDAR system and methods for the use thereof can differentiate among return pulses and accurately classify whether the return pulse corresponds to a close object, a far object, a ghost object, or is derived from another laser source. If desired, the results of the discrimination can be used as data points for generating an image representing a field of view of the LiDAR system.

[0050] In some embodiments, LiDAR system can transmit laser pulses in succession, such that a time interval between successively transmitted laser pulses is varied. The LiDAR system can detect return pulses that are consequences of the transmitted laser pulses. The LiDAR system can use the varied time interval of successively transmitted laser pulses to discriminate among distance calculations of an object corresponding to the return pulses. This enables the LiDAR system to verify which one of a relatively far distance calculation corresponding to an object and a relatively close distance calculation corresponding to the same object is incorrect. This also enables the LiDAR system to reject distance calculations corresponding to a ghost object and to reject return pulses that are the consequence of laser pulses originating from another laser transmission source.

[0051] In some embodiments, the LiDAR system can transmit successive transmission pulses in accordance with a variable time interval, wherein the variable time interval changes for each transmission pulse, receive return pulses corresponding to an object, and determine distance calculations corresponding to the object based, at least in part, on the return pulses. The LiDAR system can discriminate among the distance calculations by evaluating the plurality of return pulses in connection with the variable time interval of the successive transmission pulses. If desired, the discriminated distances can be sued as data points to generate an image representing a field of view of the LiDAR system.

[0052] FIG. 9 is a functional block diagram illustrating a vehicle system 900, according to an example embodiment. Vehicle 900 can be configured to operate fully or partially in an autonomous mode. For example, vehicle 900 can control itself while in the autonomous mode, and may be operable to determine a current state of the vehicle and its environment, determine a predicted behavior of at least one other vehicle in the environment, determine a confidence level that may correspond to a likelihood of the at least one other vehicle to perform the predicted behavior, and control vehicle 900 based on the determined information. While in autonomous mode, the vehicle 900 may be configured to operate without human interaction.

[0053] In some embodiments, vehicle 900 can operate under solely control of a human operator, but the various sensors and systems of the vehicle and the road conditions (e.g., road and the path traveled, other vehicles, stop signs, traffic lights, various events occurring outside of the vehic le) can be monitored and recorded.

[0054] Vehicle 900 can include various subsystems such as a propulsion system 902, a sensor system 904, a control system 906, one or more peripherals 908, as 'ell as a power supply 910, a computer system 912, and a user interface 916. Vehicle 900 may include more or fewer subsystems and each subsystem can include multiple elements. Further, each of the subsystems and elements of vehicle 900 can be interconnected. Thus, one or more of the described functions of the vehicle 900 may' be divided up into additional functional or physical components, or combined into fewer functional or physical components. In some further examples, additional functional and/or physical components may be added to the examples illustrated by FIG. 9.

[0055] Propulsion system 902 may include components operable to provide powered motion for the vehicle 900. Depending upon the embodiment, the propulsion system 902 can include an engine/motor 918, an energy source 919, a transmission 920, and wheels/tires 921. The engine/motor 918 can be any combination of an internal combustion engine, an electric motor, steam engine, Stirling engine, or other types of engines and/or motors. In some embodiments, the engine/motor 918 may be configured to convert energy source 919 into mechanical energy. In some embodiments, the propulsion system 902 can include multiple types of engines and/or motors. For instance, a gas-electric hybrid car can include a gasoline engine and an electric motor. Other examples are possible.

[0056] Energy source 919 can represent a source of energy that may, in full or in part, power the engine/motor 918. That is, the engine/motor 918 can be configured to convert the energy source 919 into mechanical energy. Examples of energy sources 919 include gasoline, diesel, other petroleum-based fuels, propane, other compressed gas-based fuels, ethanol, solar panels, batteries, and other sources of electrical power. The energy source(s) 919 can additionally or alternatively' include any' combination of fuel tanks, batteries, capacitors, and/or flywheels. The energy source 919 can also provide energy ' for other systems of the vehicle 900.

[0057] Transmission 920 can include elements that are operable to transmit mechanical power from the engine/motor 918 to the wheels/tires 921. To this end, the transmission 920 can include a gearbox, clutch, differential, and drive shafts. The transmission 920 can include other elements. The drive shafts can include one or more axles that can be coupled to the one or more wheels/tires 921.

[0058] Wheel s ; t ires 921 of vehicle 900 can be configured in various formats, including a unicycle, bicycle/motorcy'cle, tricycle, or car/truck four-wheel format. Other wheel/tire geometries are possible, such as those including six or more wheels. Any combination of the wheels/tires 921 of vehicle 900 may be operable to rotate differentially with respect to other wheels/tires 921. The wheels/tires 921 can represent at least one wheel that is fixedly attached to the transmission 920 and at least one tire coupled to a rim of the wheel that can make contact with the driving surface. The wheels/tires 921 can include any combination of metal and rubber, or another combination of materials.

[0059] Sensor system 904 may include a number of sensors configured to sense information about an envi ronment of the vehicle 900. For example, the sensor system 904 can include a Global Positioning System (GPS) 922, an inertial measurement unit (IMU) 924, a RADAR unit 926, a laser rangefmder/LIDAR unit 928, and a camera 930. The sensor system 904 can also include sensors configured to monitor internal systems of the vehicle 900 (e.g., 02 monitor, fuel gauge, engine oil temperature). Other sensors are possible as well.

[0060] One or more of the sensors included in sensor system 904 can be configured to be actuated separately and/or collectively in order to modify a position and/or an orientation of the one or more sensors.

[0061] GPS 922 may be any sensor configured to estimate a geographic location of the vehicle 900. To this end, GPS 922 can include a transceiver operable to provide information regarding the position of the vehicle 900 with respect to the Earth.

[0062] IMU 924 can include any combination of sensors (e.g., accelerometers and gyroscopes) configured to sense position and orientation changes of the vehicle 900 based on inertial acceleration.

[0063] RADAR unit 926 may represent a system that utilizes radio signals to sense objects within the local environment of the vehicle 900. In some embodiments, in addition to sensing the objects, the RADAR unit 926 may additionally be configured to sense the speed and/or heading of the objects. Similarly, laser rangefinder or LIDAR unit 928 may be any sensor configured to sense objects in the environment in which the vehicle 900 is located using lasers. Depending upon the embodiment, the laser rangefinder/LIDAR unit 928 can include one or more laser sources, a laser scanner, and one or more detectors, among other system components. The laser rangefinder/LIDAR unit 928 can be configured to operate in a coherent (e.g., using heterodyne detection) or an incoherent detection mode.

[0064] Camera 930 can include one or more devices configured to capture a plurality of images of the environment of vehicle 900. Camera 930 can be a still camera or a video camera.

[0065] Control system 906 may be configured to control operation of vehicle 900 and its components. Accordingly, control system 906 can include various elements include steering unit 932, throttle 934, brake unit 936, a sensor fusion algorithm 938, a computer vision system 940, a navigation''pathing system 942, and an obstacle avoidance system 944.

[0066] Steering unit 932 can represent any combination of mechanisms that may be operable to adjust the heading of vehicle 900. Throttle 934 can be configured to control, for instance, the operating speed of the engine/motor 918 and, in turn, control the speed of the vehicle 900. Brake unit 936 can include any combination of mechanisms configured to decelerate the vehicle 900. Brake unit 936 can use friction to slow wheels/tires 921. In other embodiments, the brake emit 936 can convert the kinetic energy of wheels/tires 921 to electric current. The brake unit 936 may take other forms as well. The brake unit 936 may control braking of the vehicle 900, for example, using a braking algorithm that takes into account input from one or more units of the sensor system 904.

[0067] Sensor fusion algorithm 938 may be an algorithm (or a computer program product storing an algorithm) configured to accept data from the sensor system 904 as an input. The data may include, for example, data representing information sensed at the sensors of the sensor system 904. The sensor fusion algorithm 938 can include, for instance, a Kalman filter, Bayesian network, or other algorithm. The sensor fusion algorithm 938 can further provide various assessments based on the data from sensor system 904. Depending upon the embodiment, the assessments can include evaluations of individual objects and/or features in the environment of vehicle 900, evaluation of a particular situation, and/or evaluate possible impacts based on the particular situation. Other assessments are possible.

[0068] Computer vision system 940 may be any system operable to process and analyze images captured by camera 930 in order to identify objects and/or features in the environment of vehicle 900 that can include traffic signals, road way boundaries, and obstacles. Computer vision system 940 can use an object recognition algorithm, a Structure From Motion (SFM) algorithm, video tracking, and other computer vision techniques. In some embodiments, the computer vision system 940 can be additionally configured to map an environment, track objects, estimate the speed of objects, etc.

[0069] Navigation and pathing system 942 may be any system configured to determine a driving path for the vehicle 900, for example, by referencing navigation data such as geographical or map data. The navigation and pathing system 942 may additionally be configured to update the driving path dynamically while the vehicle 900 is in operation. In some embodiments, the navigation and pathing system 942 can be configured to incorporate data from the sensor fusion algorithm 938, the GPS 922, and one or more predetermined maps so as to determine the driving path for vehicle 900. Obstacle avoidance system 944 can represent a control system configured to identify, evaluate, and avoid or otherwise negotiate potential obstacles in the environment of the vehicle 900. Control system 906 may additionally or alternatively include components other than those shown and described.

[0070] Peripherals 908 may be configured to allow interaction between the vehicle 900 and external sensors, other vehicles, other computer systems, and/or a user. For example, peripherals 908 can include a wireless communication system 946, a touchscreen 948, a microphone 950, and/or a speaker 952. In an example embodiment, peripherals 908 can provide, for instance, means for a user of the vehicle 900 to interact with the user interface 916. To this end, touchscreen 948 can provide information to a user of vehicle 900. User interface 916 can also be operable to accept input from the user via the touchscreen 948. The touchscreen 948 may be configured to sense at least one of a position and a movement of a user's finger via capacitive sensing, resistance sensing, or a surface acoustic wave process, among other possibilities. Touchscreen 948 may be capable of sensing finger movement in a direction parallel or planar to the touchscreen surface, in a direction normal to the touchscreen surface, or both, and may also be capable of sensing a level of pressure applied to the touchscreen surface. Touchscreen 948 may be formed of one or more translucent or transparent insulating layers and one or more translucent or transparent conducting layers. Touchscreen 948 may take other forms as well.

[0071] In other instances, peripherals 908 may provide means for the vehicle 900 to communicate with devices w ithin its environment. Microphone 950 may be configured to receive audio (e.g., a voice command or other audio input) from a user of vehicle 900.

Similarly, speakers 952 may be configured to output audio to the user of vehicle 900.

[0072] In one example, wireless communication system 946 can be configured to wirelessly communicate with one or more devices directly or via a communication network. For example, wireless communication system 946 can use 3G cellular communication, such as CDMA, EVDO, GSM/GPRS, or 4G cellular communication, such as WiMAX or LTE. Alternatively, wireless communication system 946 can communicate with a wireless local area network (WLAN), for example, using WiFi. In some embodiments, wireless communication system 946 can communicate directly with a device, for example, using an infrared link, Bluetooth, or ZigBee. Other wireless protocols, such as various vehicular communication systems, are possible within the context of the disclosure. For example, the wireless communication system 946 can include one or more dedicated short range communications (DSRC) devices that can include public and/or private data communications between vehicles and/or roadside stations.

[0073] Power supply 910 may provide power to various components of vehicle 900 and can represent, for example, a rechargeable lithium-ion or lead-acid battery. In some

embodiments, one or more banks of such batteries can be configured to provide electrical power. Other power supply materials and configurations are possible. In some embodiments, the power supply 910 and energy source 919 can be implemented together, as in some all electric cars.

[0074] Many or all of the functions of vehicle 900 can be controlled by computer system 912. Computer system 912 may include at least one processor 913 (which can include at least one microprocessor) that executes instructions 915 stored in a non-transitory computer readable medium, such as the data storage 914. Computer system 912 may also represent a plurality of computing devices that may serve to control individual components or subsystems of the vehicle 900 in a distributed fashion.

[0075] In some embodiments, data storage 914 may contain instructions 915 (e.g., program logic) executable by processor 913 to execute various functions of vehicle 900, including those described above in connection with FIG. 9. In some embodiments, processor 913 may be operative to nm an artificial intelligence (AI) engine, for example, to control the various systems of the vehicle 900. Data storage 914 may contain additional instructions as well, including instructions to transmit data to, receive data from, interact with, and/or control one or more of propulsion system 902, sensor system 904, control system 906, and peripherals 908. In addition to instructions 915, data storage 914 may store data such as roadway maps, path information, among other information. Such information may be used by vehicle 900 and computer system 912 at during the operation of vehicle 900 in the autonomous, semi- autonomous, and/or manual modes.

[0076] Vehicle 900 may include a user interface 916 for providing information to or receiving input from a user of vehicle 900. User interface 916 can control or enable control of content and/or the layout of interactive images that can be displayed on the touchscreen 948. Further, user interface 916 can include one or more input/output devices within the set of peripherals 908, such as wireless communication system 946, touchscreen 948, microphone 950, and the speaker 952. [0077] Port 960 may be a port through which vehicle 900 receives power to charge power supply 910 and to communicate data stored in data store 914.

[0078] Computer system 912 may control the function of vehicle 900 based on inputs received from various subsystems (e.g., propulsion system 902, sensor system 104, and control system 906), as well as from user interface 916. For example, computer system 912 may utilize input from control system 906 in order to control steering unit 932 to avoid an obstacle detected by sensor system 904 and obstacle avoidance system 944. Depending upon the embodiment, computer system 912 can be operable to provide control over many aspects of vehicle 900 and its subsystems.

[0079] The components of vehicle 900 can be configured to work in an interconnected fashion with other components within or outside their respective systems. For instance, in an example embodiment, camera 930 can capture a plurality of images that can represent information about a state of an environment of vehicle 900 operating in an autonomous or manual mode. The environment can include every conceivable type of data that can be observed and collected by vehicle 900. For example, the environment can include the road and all aspects associated with the road such as temperature, composition of the road (e.g., concrete or asphalt), moisture level, lanes, curbs, turn lanes, cross walks, stop lights, stop signs, yield signs and other traffic signs, and barricades. The environment can include objects such as other vehicles, people, random debris in or adjacent to the road.

[0080] Computer system 912 can monitor and log the environmental inputs in conjunction with operational states of the vehicle. The operational states can refer to operational and control parameters of the vehicle such as speed, trajectory, steering input, acceleration input, and brake input, and also can include results of driver input or AI driver input. This way, regardless of whether the vehicle is operating in autonomous mode or under human control, computer system 912 can simultaneously log the environmental inputs and the operational states to provide a comprehensive vehicle log.

[0081] Although FIG. 9 shows various components of vehicle 900, i.e., wireless communication system 946, computer system 912, data storage 914, and user interface 916, as being integrated into vehicle 900, one or more of these components can be mounted or associated separately from the vehicle 900. For example, data storage 914 can, in part or in full, exist separate from vehicle 900. Thus, vehicle 900 can be provided in the form of device elements that may be located separately or together. The device elements that make up vehicle 900 can be communicatively coupled together in a wired and/or wireless fashion.

[0082] It is believed that the disclosure set forth herein encompasses multiple distinct inventions with independent utility. While each of these inventions has been disclosed in its preferred form, the specific embodiments thereof as disclosed and illustrated herein are not to be considered in a limiting sense as numerous variations are possible. Each example defines an embodiment disclosed in the foregoing disclosure, but any one example does not necessarily' encompass all features or combinations that may be eventually' claimed. Where the description recites“a” or“a first” element or the equivalent thereof, such description includes one or more such elements, neither requiring nor excluding two or more such elements. Further, ordinal indicators, such as first, second or third, for identified elements are used to distinguish between the elements, and do not indicate a required or limited number of such elements, and do not indicate a particular position or order of such elements unless otherwise specifically stated.

[0083] Moreover, any processes described with respect to FIGS. 1-9, as well as any other aspects of the invention, may each be implemented by software, but may also be

implemented in hardware, firmware, or any combination of software, hardware, and firmware. They' each may also be embodied as machine- or computer-readable code recorded on a machine- or computer-readable medium. The computer-readable medium may' be any data storage device that can store data or instructions which can thereafter be read by a computer system. Examples of the computer-readable medium may include, but are not limited to, read-only memory', random-access memory', flash memory, CD-ROMs, DVDs, magnetic tape, and optical data storage devices. The computer-readable medium can also be distributed over network-coupled computer systems so that the computer readable code is stored and executed in a distributed fashion. For example, the computer-readable medium may' be communicated from one electronic subsystem or device to another electronic subsystem or device using any suitable communications protocol. The computer-readable medium may embody computer-readable code, instructions, data structures, program modules, or other data in a modulated data signal, such as a carrier wave or other transport mechanism, and may include any information delivery media. A modulated data signal may be a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. [0084] It is to be understood that any or each module or state machine discussed herein may be provided as a software construct, firmware construct, one or more hardware components, or a combination thereof. For example, any one or more of the state machines or modules may be described in the general context of computer-executable instructions, such as program modules, that may be executed by one or more computers or other devices. Generally, a program module may include one or more routines, programs, objects, components, and/or data structures that may perform one or more particular tasks or that may implement one or more particular abstract data types. It is also to be understood that the number, configuration, functionality, and interconnection of the modules or state machines are merely illustrative, and that the number, configuration, functionality, and interconnection of existing modules may be modified or omitted, additional modules may be added, and the interconnection of certain modules may be altered.

[0085] Whereas many alterations and modifications of the present invention will no doubt become apparent to a person of ordinary ' skill in the art after having read the foregoing description, it is to be understood that the particular embodiments shown and described by way' of illustration are in no way intended to be considered limiting. Therefore, reference to the details of the preferred embodiments is not intended to limit their scope.