Multi-Lens Lidar Receiver with Multiple Readout Channels
A lidar system comprising (1) a first lens having a first field of view (FOV) that receives incident light from the first FOV, (2) a second lens having a second FOV that receives incident light from the second FOV, wherein the second field of view is encompassed by and narrower than the first FOV, and (3) photodetector circuitry that senses incident light passed by the first and second lenses. The photodetector circuitry can include multiple channels of readout circuitry for reading out (1) a first return signal in a first of the channels for detecting a return from a laser pulse shot that targets a location in the second FOV, wherein the first return signal is based on incident light passed by the first lens, and (2) a second return signal in a second of the channels for detecting the return, wherein the second return signal is based on incident light passed by the second lens.
This patent application claims priority to U.S. provisional patent application 63/229,308, filed Aug. 4, 2021, and entitled “Switchable Multi-Lens Lidar Receiver”, the entire disclosure of which is incorporated herein by reference.
This patent application also claims priority to U.S. provisional patent application 63/219,034, filed Jul. 7, 2021, and entitled “Hyper Temporal Lidar Using Multiple Matched Filters to Process Return Data”, the entire disclosure of which is incorporated herein by reference.
This patent application also claims priority to U.S. provisional patent application 63/209,179, filed Jun. 10, 2021, and entitled “Hyper Temporal Lidar with Controllable Pulse Bursts”, the entire disclosure of which is incorporated herein by reference.
This patent application also claims priority to U.S. provisional patent application 63/186,661, filed May 10, 2021, and entitled “Hyper Temporal Lidar with Controllable Detection Intervals”, the entire disclosure of which is incorporated herein by reference.
This patent application also claims priority to U.S. provisional patent application 63/166,475, filed Mar. 26, 2021, and entitled “Hyper Temporal Lidar with Dynamic Laser Control”, the entire disclosure of which is incorporated herein by reference.
This patent application is related to (1) U.S. patent application______, filed this same day, and entitled “Switchable Multi-Lens Lidar Receiver” (said patent application being identified by Thompson Coburn Attorney Docket Number 56976-215871), (2) U.S. patent application______, filed this same day, and entitled “Hyper Temporal Lidar with Controllable Tilt Amplitude for a Variable Amplitude Scan Mirror” (said patent application being identified by Thompson Coburn Attorney Docket Number 56976-215872), and (3) U.S. patent application______, filed this same day, and entitled “Lidar Receiver with Adjustable Lens” (said patent application being identified by Thompson Coburn Attorney Docket Number 56976-215873), the entire disclosures of each of which are incorporated herein by reference
INTRODUCTIONThere is a need in the art for lidar systems that operate with low latency and rapid adaptation to environmental changes. This is particularly the case for automotive applications of lidar as well as other applications where the lidar system may be moving at a high rate of speed or where there is otherwise a need for decision-making in short time intervals. For example, when an object of interest is detected in the field of view for a lidar transmitter, it is desirable for the lidar transmitter to rapidly respond to this detection by firing high densities of laser pulses at the detected object. However, as the firing rate for the lidar transmitter increases, this places pressure on the operational capabilities of the laser source employed by the lidar transmitter because the laser source will need re-charging time.
This issue becomes particularly acute in situations where the lidar transmitter has a variable firing rate. With a variable firing rate, the laser source's operational capabilities are not only impacted by periods of high density firing but also periods of low density firing. As charge builds up in the laser source during a period where the laser source is not fired, a need arises to ensure that the laser source does not overheat or otherwise exceed its maximum energy limits.
The lidar transmitter may employ a laser source that uses optical amplification to support the generation of laser pulses. Such laser sources have energy characteristics that are heavily impacted by time and the firing rate of the laser source. These energy characteristics of a laser source that uses optical amplification have important operational impacts on the lidar transmitter when the lidar transmitter is designed to operate with fast scan times and laser pulses that are targeted on specific range points in the field of view.
As a technical solution to these problems in the art, the inventors disclose that a laser energy model can be used to model the available energy in the laser source over time. The timing schedule for laser pulses fired by the lidar transmitter can then be determined using energies that are predicted for the different scheduled laser pulse shots based on the laser energy model. This permits the lidar transmitter to reliably ensure at a highly granular level that each laser pulse shot has sufficient energy to meet operational needs, including when operating during periods of high density/high resolution laser pulse firing. The laser energy model is capable of modeling the energy available for laser pulses in the laser source over very short time intervals as discussed in greater detail below. With such short interval time modeling, the laser energy modeling can be referred to as a transient laser energy model.
Furthermore, the inventors also disclose that mirror motion can be modeled so that the system can also reliably predict where a scanning mirror is aimed within a field of view over time. This mirror motion model is also capable of predicting mirror motion over short time intervals as discussed in greater detail below. In this regard, the mirror motion model can also be referred to as a transient mirror motion model. The model of mirror motion over time can be linked with the model of laser energy over time to provide still more granularity in the scheduling of laser pulses that are targeted at specific range points in the field of view. Thus, a control circuit can translate a list of arbitrarily ordered range points to be targeted with laser pulses into a shot list of laser pulses to be fired at such range points using the modeled laser energy coupled with the modeled mirror motion. In this regard, the “shot list” can refer to a list of the range points to be targeted with laser pulses as combined with timing data that defines a schedule or sequence by which laser pulses will be fired toward such range points.
Through the use of such models, the lidar system can provide hyper temporal processing where laser pulses can be scheduled and fired at high rates with high timing precision and high spatial targeting/pointing precision. This results in a lidar system that can operate at low latency, high frame rates, and intelligent range point targeting where regions of interest in the field of view can be targeted with rapidly-fired and spatially dense laser pulse shots.
According to additional example embodiments, the inventors disclose that the detection intervals used by a lidar receiver to detect returns of the fired laser pulse shots can be closely controlled. Such control over the detection intervals used by the lidar receiver allows for close coordination between the lidar transmitter and the lidar receiver where the lidar receiver is able to adapt to variable shot intervals of the lidar transmitter (including periods of high rate firing as well as periods of low rate firing).
Each detection interval can be associated with a different laser pulse shot from which a return is to be collected during the associated detection interval. Accordingly, each detection interval is also associated with the return for its associated laser pulse shot. The lidar receiver can control these detection intervals on a shot-specific basis so that the lidar receiver will be able to use the appropriate pixel sets for detecting the returns from the detection interval's associated shots. The lidar receiver includes a plurality of detector pixels arranged as a photodetector array, and different sets of detector pixels can be selected for use to detect the returns from different laser pulse shots. During a given detection interval, the lidar receiver will collect sensed signal data from the selected pixel set, and this collected signal data can be processed to detect the associated return for that detection interval. The choice of which pixel set to use for detecting a return from a given laser pulse shot can be based on the location in the field of the range point targeted by the given laser pulse shot. In this fashion, the lidar receiver will readout from different pixel sets during the detection intervals in a sequenced pattern that follows the sequenced spatial pattern of the laser pulse shots.
The lidar receiver can use any of a number of criteria for deciding when to start and stop reading out from the different pixel sets for detecting returns. For example, the lidar receiver can use estimates of potential ranges to the targeted range points to decide on when the collections should start and stop from various pixel sets. As an example, if an object at range point X is located 10 meters from the lidar system, it can be expected that the return from the laser pulse shot fired at this object will reach the photodetector array relatively quickly, while it would take relatively longer for a return to reach the photodetector array if the object at range point X is located 1,000 meters from the lidar system. To control when the collections should start and stop from the pixel sets in order to detect returns from the laser pulse shots, the system can determine pairs of minimum and maximum range values for the range points targeted by each laser pulse shot, and these minimum and maximum range values can be translated into on/off times for the pixel sets. Through intelligent control of these on (start collection) and off (stop collection) times, the risk of missing a return due to the return impacting a deactivated pixel is reduced.
Moreover, the detection intervals can vary across different shots (e.g., Detection Interval A (associated with Shot A to support detection of the return from Shot A) can have a different duration than Detection Interval B (associated with Shot B to support detection of the return from Shot B)). Further still, at least some of the detection intervals can be controlled to be of different durations than the shot intervals that correspond to such detection intervals. The shot interval that corresponds to a given detection interval is the time between the shot that is associated with that detection interval and the next shot in the shot sequence. Counterintuitively, the inventors have found that it is often not desirable for a detection interval to be of the same duration as its corresponding shot interval due to factors such as the amount of processing time that is needed to detect returns within return signals. In many cases, it will be desirable for the control process to define a detection interval so that it exhibits a duration shorter than the duration of its corresponding shot interval; while in some other cases it may be desirable for the control process to define a detection interval so that it exhibits a longer duration than the duration of its corresponding shot interval. This characteristic can be referred to as a detection interval that is asynchronous relative to its corresponding shot interval duration.
Further still, the inventors also disclose the use of multiple processors in a lidar receiver to distribute the workload of processing returns. The activation/deactivation times of the pixel sets can be used to define which samples in a return buffer will be used for processing to detect each return, and multiple processors can share the workload of processing these samples in an effort to improve the latency of return detection.
The inventors also disclose the use of multiple readout channels within a lidar receiver that are capable of simultaneously reading out sensed signals from different pixel sets of the photodetector array. In doing so, the lidar receiver can support the use of overlapping detection intervals when collecting signal data for detecting different returns.
Moreover, the inventors disclose a lidar system having a lidar transmitter and lidar receiver that are in a bistatic arrangement with each other. Such a bistatic lidar system can be deployed in a climate-controlled compartment of a vehicle to reduce the exposure of the lidar system to harsher elements so it can operate in more advantageous environments with regards to factors such as temperature, moisture, etc. In an example embodiment, the bistatic lidar system can be connected to or incorporated within a rear view mirror assembly of a vehicle.
Further still, the inventors disclose the use of pulse bursts by a lidar system to improve the precision with which the angle to a target in the field of view is resolved. These pulse bursts can be scheduled in response to detection of the target in the field of view, and the lidar system can employ the laser energy model and mirror motion model to ensure that sufficient energy is available for the scheduled pulses of the pulse burst.
The inventors also disclose the use of an optical amplification laser source that employs a controllable variable seed laser. The variable seed laser can be controlled to adjust the seed energy levels for the laser in a manner that achieves a desired regulation of the energy levels in the pulses of the pulse burst (such as equalization of the energy levels in the pulses of the pulse burst) despite the short time interval between such pulses.
Moreover, the inventors also disclose the use of multiple matched filters in a lidar receiver to determine target characteristics such as target obliquity and/or target retro-reflectivity. For example, the shape of a pulse reflected from a target will be impacted by the target's obliquity. In particular, increasing target obliquity will cause stretching of the reflected pulse relative to the transmitted pulse. Accordingly, different matched filters in the lidar receiver can be tuned to detect pulse shapes corresponding to different amounts of stretching (e.g., no stretching for a non-oblique target versus stretching applicable to an oblique target), and pulse return data can be processed through these matched filters to determine which of the matched filters produces the largest response. The obliquity of the target can then be determined on the basis of which matched filter produced the largest response.
The lidar system can use the determined target obliquity to orient the lidar system relative to a frame of reference such as the horizon. Thus, as a lidar-equipped vehicle may experience displacement (e.g., a tilting vertical displacement due to bumps in the road), the lidar system will be able to quickly adjust its targeting to accommodate the changed field of view caused by the displacement.
In another example, the shaped of a pulse reflected from a target can be impacted by the target's retro-reflectivity. Highly reflective objects such as street signs can produce pulse reflections whose magnitude either exceeds the linear regime of the photodetector array used by the lidar receiver or the maximum sample value of the analog-to-digital converter (ADC) used by the lidar receiver. This has the effect of introducing a vertical clipping into the detected pulse reflection shape. Accordingly, one or more matched filters can be tuned to detect the vertically-clipped pulse shapes that would correspond to target retro-reflectivity. In this fashion, the matched filters can also be used to determine target retro-reflectivity.
Further still, the inventors also disclose that the lidar receiver can employ multiple lenses that exhibit different fields of view. The lidar receiver can also include a switch that controls which of the lenses are used for detecting returns from the laser pulse shots based on where the laser pulse shots are targeted. For example, a first lens with a first field of view can be used for detecting returns from laser pulse shots that are targeted to range points within the first field of view, and a second lens with a second field of view can be used for detecting returns from laser pulse shots that are targeted to range points within the second field of view, where the second field of view is encompassed by and narrower than the first field of view. In this fashion, the first lens can be used as a wide field of view lens while the second lens can be used as a narrow field of view (e.g., zoom) lens. The narrow field of view lens can be useful for detecting targets at longer range while needing to use relatively less energy for laser pulse shots, while the wider field of view lens can be useful for detecting targets that off the center of the lidar system's field of view. This is useful because, for automotive applications of lidar, one typically mounts the lidar system so that the center of its addressable field of view has a center that corresponds to where the lidar-equipped vehicle is moving. As a result of such a configuration, the need for long distance detection is usually associated with angles that are near this center.
In an example embodiment, an optical switch can be used to control which lens is used for passing incident light to a photodetector array. For example, a first optical switch can be placed in the optical path between the first lens and the photodetector array while a second optical switch can be placed in the optical path between the second lens and the photodetector array. A control circuit can control the optical switches so that (1) for a return from a laser pulse shot that targets a shot coordinate in the field of view for the first lens, the first optical switch passes the incident light from the first lens to the photodetector array while the second optical switch blocks incident light from the second lens from reaching the photodetector array and (2) for a return from a laser pulse shot that targets a shot coordinate in the field of view for the second lens, the second optical switch passes the incident light from the second lens to the photodetector array while the first optical switch blocks incident light from the first lens from reaching the photodetector array.
In another example embodiment, an electronic switch can be used to control which lens is used for return detection. For example, the lidar receiver can include (1) a first photodetector array that receives incident light passed by the first lens and (2) a second photodetector array that receives incident light passed by the second lens. The first photodetector array can then generate a first return signal based on the incident light passed by the first lens, and the second photodetector array can generate a second return signal based on incident light passed by the second lens. The electronic switch can then control whether the first return signal or the second return signal is passed to a signal processing circuit for return detection. For example, a control circuit can control the electronic switch so that (1) for a return from a laser pulse shot that targets a shot coordinate in the field of view for the first lens, the electronic switch passes the return signal from the first photodetector array to the signal processing circuit for return detection and (2) for a return from a laser pulse shot that targets a shot coordinate in the field of view for the second lens, the electronic switch passes the return signal from the second photodetector array to the signal processing circuit for return detection. In such cases, the return signal from the unused photodetector array can either be blocked by the electronic switch or prevented from being generated through powering down of the unused photodetector array.
The inventors further disclose that one or more of the lenses in the lidar receiver can be adjustable, wherein adjustment of the subject lens causes an adjustment in the field of view for that lens. For example, in an example embodiment where the narrow field of view lens is adjustable, the narrow field of view lens can be adjusted to shift where the narrow field of view is located within the wide field of view. Such adjustments can be made in the elevation and/or azimuth directions, and they provide for flexible deployment of a common lidar receiver architecture for different use cases (e.g., deployment in a relatively low location such as on a sedan versus deployment in a relatively high location such as on a roof of a tractor-trailer).
Still further, the inventors also disclose that the lidar receiver can employ multiple readout channels and/or multiple signal processing channels that operate on return signals produced from incident light passed by the wide field of view lens and the narrow field of view lens. By processing both return signals, the system can choose which of the return signals will best support return detection in various scenarios (e.g., the presence of retroreflectors, noise/interference, etc.). The system can also leverage both return signals to better resolve the angle to a target based on parallax correction.
The inventors further disclose example embodiments where the shot list scheduling process can include controlled scheduling of changes in tilt amplitude for a variable amplitude scan mirror. This scheduling can take into account settle times arising from changes in the tilt amplitude for the variable amplitude scan mirror, and simulations can be run to find orders of laser pulse shots and corresponding settings for the tilt amplitude of the variable amplitude scan mirror that will operate to reduce the completion time needed to fire a block of laser pulse shots at targeted range points.
These and other features and advantages of the invention will be described in greater detail below.
In the example of
Thus, the pump laser 118, which can take the form of an electrically-driven pump laser diode, continuously sends energy into the optical amplifier 116. The seed laser 114, which can take the form of an electrically-driven seed laser that includes a pulse formation network circuit, controls when the energy deposited by the pump laser 118 into the optical amplifier 116 is released by the optical amplifier 116 as a laser pulse 122 for transmission. The seed laser 114 can also control the shape of laser pulse 122 via the pulse formation network circuit (which can drive the pump laser diode with the desired pulse shape). The seed laser 114 also injects a small amount of (pulsed) optical energy into the optical amplifier 116.
Given that the energy deposited in the optical amplifier 116 by the pump laser 118 and seed laser 114 serves to seed the optical amplifier 116 with energy from which the laser pulses 122 are generated, this deposited energy can be referred to as “seed energy” for the laser source 102.
The optical amplifier 116 operates to generate laser pulse 122 from the energy deposited therein by the seed laser 114 and pump laser 118 when the optical amplifier 116 is induced to fire the laser pulse 122 in response to stimulation of the energy therein by the seed laser 114. The optical amplifier 116 can take the form of a fiber amplifier. In such an embodiment, the laser source 102 can be referred to as a pulsed fiber laser source. With a pulsed fiber laser source 102, the pump laser 118 essentially places the dopant electrons in the fiber amplifier 116 into an excited energy state. When it is time to fire laser pulse 122, the seed laser 114 stimulates these electrons, causing them to emit energy and collapse down to a lower (ground) state, which results in the emission of pulse 122. An example of a fiber amplifier that can be used for the optical amplifier 116 is a doped fiber amplifier such as an Erbium-Doped Fiber Amplifier (EDFA).
It should be understood that other types of optical amplifiers can be used for the optical amplifier 116 if desired by a practitioner. For example, the optical amplifier 116 can take the form of a semiconductor amplifier. In contrast to a laser source that uses a fiber amplifier (where the fiber amplifier is optically pumped by pump laser 118), a laser source that uses a semiconductor amplifier can be electrically pumped. As another example, the optical amplifier 116 can take the form of a gas amplifier (e.g., a CO2 gas amplifier). Moreover, it should be understood that a practitioner may choose to include a cascade of optical amplifiers 116 in laser source 102.
In an example embodiment, the pump laser 118 can exhibit a fixed rate of energy buildup (where a constant amount of energy is deposited in the optical amplifier 116 per unit time). However, it should be understood that a practitioner may choose to employ a pump laser 118 that exhibits a variable rate of energy buildup (where the amount of energy deposited in the optical amplifier 116 varies per unit time).
The laser source 102 fires laser pulses 122 in response to firing commands 120 received from the control circuit 106. In an example where the laser source 102 is a pulsed fiber laser source, the firing commands 120 can cause the seed laser 114 to induce pulse emissions by the fiber amplifier 116. In an example embodiment, the lidar transmitter 100 employs non-steady state pulse transmissions, which means that there will be variable timing between the commands 120 to fire the laser source 102. In this fashion, the laser pulses 122 transmitted by the lidar transmitter 100 will be spaced in time at irregular intervals. There may be periods of relatively high densities of laser pulses 122 and periods of relatively low densities of laser pulses 122. Examples of laser vendors that provide such variable charge time control include Luminbird and ITF. As examples, lasers that have the capacity to regulate pulse timing over timescales corresponding to preferred embodiments discussed herein and which are suitable to serve as laser source 102 in these preferred embodiments are expected to exhibit laser wavelengths of 1.5 μm and available energies in a range of around hundreds of nano-Joules to around tens of micro-Joules, with timing controllable from hundreds of nanoseconds to tens of microseconds and with an average power range from around 0.25 Watts to around 4 Watts.
The mirror subsystem 104 includes a mirror that is scannable to control where the lidar transmitter 100 is aimed. In the example embodiment of
In the example of
A practitioner may choose to control the scanning of mirrors 110 and 112 using any of a number of scanning techniques. In a particularly powerful embodiment, mirror 110 can be driven in a resonant mode according to a sinusoidal signal while mirror 112 is driven in a point-to-point mode according to a step signal that varies as a function of the range points to be targeted with laser pulses 122 by the lidar transmitter 100. In this fashion, mirror 110 can be operated as a fast-axis mirror while mirror 112 is operated as a slow-axis mirror. When operating in such a resonant mode, mirror 110 scans through scan angles in a sinusoidal pattern. In an example embodiment, mirror 110 can be scanned at a frequency in a range between around 100 Hz and around 20 kHz. In a preferred embodiment, mirror 110 can be scanned at a frequency in a range between around 10 kHz and around 15 kHz (e.g., around 12 kHz). As noted above, mirror 112 can be driven in a point-to-point mode according to a step signal that varies as a function of the range points to be targeted with laser pulses 122 by the lidar transmitter 100. Thus, if the lidar transmitter 100 is to fire a laser pulse 122 at a particular range point having an elevation of X, then the step signal can drive mirror 112 to scan to the elevation of X. When the lidar transmitter 100 is later to fire a laser pulse 122 at a particular range point having an elevation of Y, then the step signal can drive mirror 112 to scan to the elevation of Y. In this fashion, the mirror subsystem 104 can selectively target range points that are identified for targeting with laser pulses 122. It is expected that mirror 112 will scan to new elevations at a much slower rate than mirror 110 will scan to new azimuths. As such, mirror 110 may scan back and forth at a particular elevation (e.g., left-to-right, right-to-left, and so on) several times before mirror 112 scans to a new elevation. Thus, while the mirror 112 is targeting a particular elevation angle, the lidar transmitter 100 may fire a number of laser pulses 122 that target different azimuths at that elevation while mirror 110 is scanning through different azimuth angles. U.S. Pat. Nos. 10,078,133 and 10,642,029, the entire disclosures of which are incorporated herein by reference, describe examples of mirror scan control using techniques and transmitter architectures such as these (and others) which can be used in connection with the example embodiments described herein.
Control circuit 106 is arranged to coordinate the operation of the laser source 102 and mirror subsystem 104 so that laser pulses 122 are transmitted in a desired fashion. In this regard, the control circuit 106 coordinates the firing commands 120 provided to laser source 102 with the mirror control signal(s) 130 provided to the mirror subsystem 104. In the example of
As discussed in greater detail below, control circuit 106 can use a laser energy model 108 to determine a timing schedule for the laser pulses 122 to be transmitted from the laser source 102. This laser energy model 108 can model the available energy within the laser source 102 for producing laser pulses 122 over time in different shot schedule scenarios. By modeling laser energy in this fashion, the laser energy model 108 helps the control circuit 106 make decisions on when the laser source 102 should be triggered to fire laser pulses. Moreover, as discussed in greater detail below, the laser energy model 108 can model the available energy within the laser source 102 over short time intervals (such as over time intervals in a range from 10-100 nanoseconds), and such a short interval laser energy model 108 can be referred to as a transient laser energy model 108.
Control circuit 106 can include a processor that provides the decision-making functionality described herein. Such a processor can take the form of a field programmable gate array (FPGA) or application-specific integrated circuit (ASIC) which provides parallelized hardware logic for implementing such decision-making. The FPGA and/or ASIC (or other compute resource(s)) can be included as part of a system on a chip (SoC). However, it should be understood that other architectures for control circuit 106 could be used, including software-based decision-making and/or hybrid architectures which employ both software-based and hardware-based decision-making. The processing logic implemented by the control circuit 106 can be defined by machine-readable code that is resident on a non-transitory machine-readable storage medium such as memory within or available to the control circuit 106. The code can take the form of software or firmware that define the processing operations discussed herein for the control circuit 106. This code can be downloaded onto the control circuit 106 using any of a number of techniques, such as a direct_download via a wired connection as well as over-the-air downloads via wireless networks, which may include secured wireless networks. As such, it should be understood that the lidar transmitter 100 can also include a network interface that is configured to receive such over-the-air downloads and update the control circuit 106 with new software and/or firmware. This can be particularly advantageous for adjusting the lidar transmitter 100 to changing regulatory environments with respect to criteria such as laser dosage and the like. When using code provisioned for over-the-air updates, the control circuit 106 can operate with unidirectional messaging to retain function safety.
Modeling Laser Energy Over Time:
In an example embodiment where the laser source 102 is a pulsed fiber laser source as discussed above, the laser energy model 108 can model the energy behavior of the seed laser 114, pump laser 118, and fiber amplifier 116 over time as laser pulses 122 are fired. As noted above, the fired laser pulses 122 can be referred to as “shots”. For example, the laser energy model 108 can be based on the following parameters:
-
- CE(t), which represents the combined amount of energy within the fiber amplifier 116 at the moment when the laser pulse 122 is fired at time t.
- EF(t), which represents the amount of energy fired in laser pulse 122 at time t;
- EP, which represents the amount of energy deposited by the pump laser 118 into the fiber amplifier 116 per unit of time.
- S(t+δ), which represents the cumulative amount of seed energy that has been deposited by the pump laser 118 and seed laser 114 into the fiber amplifier 116 over the time duration δ, where δ represents the amount of time between the most recent laser pulse 122 (for firing at time t) and the next laser pulse 122 (to be fired at time t+δ).
- F(t+δ), which represents the amount of energy left behind in the fiber amplifier 116 when the pulse 122 is fired at time t (and is thus available for use with the next pulse 122 to be fired at time t+δ).
- CE(t+δ), which represents the amount of combined energy within the fiber amplifier 116 at time t+δ (which is the sum of S(t+δ) and F(t+δ))
- EF(t+δ), which represents the amount of energy fired in laser pulse 122 fired at time t+δ
- a and b, where “a” represents a proportion of energy transferred from the fiber amplifier 116 into the laser pulse 122 when the laser pulse 122 is fired, where “b” represents a proportion of energy retained in the fiber amplifier 116 after the laser pulse 122 is fired, where a+b=1.
While the seed energy (S) includes both the energy deposited in the fiber amplifier 116 by the pump laser 118 and the energy deposited in the fiber amplifier 116 by the seed laser 114, it should be understood that for most embodiments the energy from the seed laser 114 will be very small relative to the energy from the pump laser 118. As such, a practitioner can choose to model the seed energy solely in terms of energy produced by the pump laser 118 over time. Thus, after the pulsed fiber laser source 102 fires a laser pulse at time t, the pump laser 118 will begin re-supplying the fiber amplifier 116 with energy over time (in accordance with EP) until the seed laser 116 is triggered at time t+δ to cause the fiber amplifier 116 to emit the next laser pulse 122 using the energy left over in the fiber amplifier 116 following the previous shot plus the new energy that has been deposited in the fiber amplifier 116 by pump laser 118 since the previous shot. As noted above, the parameters a and b model how much of the energy in the fiber amplifier 116 is transferred into the laser pulse 122 for transmission and how much of the energy is retained by the fiber amplifier 116 for use when generating the next laser pulse 122.
The energy behavior of pulsed fiber laser source 102 with respect to the energy fired in laser pulses 122 in this regard can be expressed as follows:
EF(t)=aCE(t)
F(t+δ)=bCE(t)
S(t+δ)=δEP
C E(t+δ)=S(t+δ)+F(t+δ)
EF(t+δ)=aCE(t+δ)
With these relationships, the value for CE(t) can be re-expressed in terms of EF(t) as follows:
Furthermore, the value for F(t+δ) can be re-expressed in terms of EF(t) as follows:
This means that the values for CE(t+δ) and EF(t+δ) can be re-expressed as follows:
And this expression for EF(t+δ) shortens to:
EF(t+δ)=aδEP+bEF(t)
It can be seen, therefore, that the energy to be fired in a laser pulse 122 at time t+δ in the future can be computed as a function of how much energy was fired in the previous laser pulse 122 at time t. Given that a, b, EP, and EF(t) are known values, and δ is a controllable variable, these expressions can be used as the laser energy model 108 that predicts the amount of energy fired in a laser pulse at select times in the future (as well as how much energy is present in the fiber amplifier 116 at select times in the future).
While this example models the energy behavior over time for a pulsed fiber laser source 102, it should be understood that these models could be adjusted to reflect the energy behavior over time for other types of laser sources.
Thus, the control circuit 106 can use the laser energy model 108 to model how much energy is available in the laser source 102 over time and can be delivered in the laser pulses 122 for different time schedules of laser pulse shots. With reference to
A control variable that the control circuit 106 can evaluate when determining the timing schedule for the laser pulses is the value of δ, which controls the time interval between successive laser pulse shots. The discussion below illustrates how the choice of δ impacts the amount of energy in each laser pulse 122 according to the laser energy model 108.
For example, during a period where the laser source 102 is consistently fired every δ units of time, the laser energy model 108 can be used to predict energy levels for the laser pulses as shown in the following toy example.
-
- Toy Example 1, where EP=1 unit of energy; δ=1 unit of time; the initial amount of energy stored by the fiber laser 116 is 1 unit of energy; a=0.5 and b=0.5:
If the rate of firing is increased, this will impact how much energy is included in the laser pulses. For example, relative to Toy Example 1, if the firing rate is doubled (δ=0.5 units of time) (while the other parameters are the same), the laser energy model 108 will predict the energy levels per laser pulse 122 as follows below with Toy Example 2.
-
- Toy Example 2, where EP=1 unit of energy; δ=0.5 units of time; the initial amount of energy stored by the fiber laser 116 is 1 unit of energy; a=0.5 and b=0.5:
Thus, in comparing Toy Example 1 with Toy Example 2 it can be seen that increasing the firing rate of the laser will decrease the amount of energy in the laser pulses 122. As example embodiments, the laser energy model 108 can be used to model a minimum time interval in a range between around 10 nanoseconds to around 100 nanoseconds. This timing can be affected by both the accuracy of the clock for control circuit 106 (e.g., clock skew and clock jitter) and the minimum required refresh time for the laser source 102 after firing.
If the rate of firing is decreased relative to Toy Example 1, this will increase how much energy is included in the laser pulses. For example, relative to Toy Example 1, if the firing rate is halved (δ=2 units of time) (while the other parameters are the same), the laser energy model 108 will predict the energy levels per laser pulse 122 as follows below with Toy Example 3.
-
- Toy Example 3, where EP=1 unit of energy; δ=2 units of time; the initial amount of energy stored by the fiber laser 116 is 1 unit of energy; a=0.5 and b=0.5:
If a practitioner wants to maintain a consistent amount of energy per laser pulse, it can be seen that the control circuit 106 can use the laser energy model 108 to define a timing schedule for laser pulses 122 that will achieve this goal (through appropriate selection of values for δ). For practitioners that want the lidar transmitter 100 to transmit laser pulses at varying intervals, the control circuit 106 can use the laser energy model 108 to define a timing schedule for laser pulses 122 that will maintain a sufficient amount of energy per laser pulse 122 in view of defined energy requirements relating to the laser pulses 122. For example, if the practitioner wants the lidar transmitter 100 to have the ability to rapidly fire a sequence of laser pulses (for example, to interrogate a target in the field of view with high resolution) while ensuring that the laser pulses in this sequence are each at or above some defined energy minimum, the control circuit 106 can define a timing schedule that permits such shot clustering by introducing a sufficiently long value for δ just before firing the clustered sequence. This long δ value will introduce a “quiet” period for the laser source 102 that allows the energy in seed laser 114 to build up so that there is sufficient available energy in the laser source 102 for the subsequent rapid fire sequence of laser pulses. As indicated by the decay pattern of laser pulse energy reflected by Toy Example 2, increasing the starting value for the seed energy (S) before entering the time period of rapidly-fired laser pulses will make more energy available for the laser pulses fired close in time with each other.
Toy Example 4 below shows an example shot sequence in this regard, where there is a desire to fire a sequence of 5 rapid laser pulses separated by 0.25 units of time, where each laser pulse has a minimum energy requirement of 1 unit of energy. If the laser source has just concluded a shot sequence after which time there is 1 unit of energy retained in the fiber laser 116, the control circuit can wait 25 units of time to allow sufficient energy to build up in the seed laser 114 to achieve the desired rapid fire sequence of 5 laser pulses 122, as reflected in the table below.
-
- Toy Example 4, where EP=1 unit of energy; δLONG=25 units of time; δSHORT=0.25 units of time; the initial amount of energy stored by the fiber laser 116 is 1 unit of energy; a=0.5 and b=0.5; and the minimum pulse energy requirement is 1 unit of energy:
This ability to leverage “quiet” periods to facilitate “busy” periods of laser activity means that the control circuit 106 can provide highly agile and responsive adaptation to changing circumstances in the field of view. For example,
The control circuit 106 can also use the energy model 108 to ensure that the laser source 102 does not build up with too much energy. For practitioners that expect the lidar transmitter 100 to exhibit periods of relatively infrequent laser pulse firings, it may be the case that the value for δ in some instances will be sufficiently long that too much energy will build up in the fiber amplifier 116, which can cause problems for the laser source 102 (either due to equilibrium overheating of the fiber amplifier 116 or non-equilibrium overheating of the fiber amplifier 116 when the seed laser 114 induces a large amount of pulse energy to exit the fiber amplifier 116). To address this problem, the control circuit 106 can insert “marker” shots that serve to bleed off energy from the laser source 102. Thus, even though the lidar transmitter 100 may be primarily operating by transmitting laser pulses 122 at specific, selected range points, these marker shots can be fired regardless of the selected list of range points to be targeted for the purpose of preventing damage to the laser source 102. For example, if there is a maximum energy threshold for the laser source 102 of 25 units of energy, the control circuit 106 can consult the laser energy model 108 to identify time periods where this maximum energy threshold would be violated. When the control circuit 106 predicts that the maximum energy threshold would be violated because the laser pulses have been too infrequent, the control circuit 106 can provide a firing command 120 to the laser source 102 before the maximum energy threshold has been passed, which triggers the laser source 102 to fire the marker shot that bleeds energy out of the laser source 102 before the laser source's energy has gotten too high. This maximum energy threshold can be tracked and assessed in any of a number of ways depending on how the laser energy model 108 models the various aspects of laser operation. For example, it can be evaluated as a maximum energy threshold for the fiber amplifier 116 if the energy model 108 tracks the energy in the fiber amplifier 116 (S+F) over time. As another example, the maximum energy threshold can be evaluated as a maximum value of the duration δ (which would be set to prevent an amount of seed energy (S) from being deposited into the fiber amplifier 116 that may cause damage when taking the values for EP and a presumed value for F into consideration.
While the toy examples above use simplified values for the model parameters (e.g. the values for EP and δ) for the purpose of ease of explanation, it should be understood that practitioners can select values for the model parameters or otherwise adjust the model components to accurately reflect the characteristics and capabilities of the laser source 102 being used. For example, the values for EP, a, and b can be empirically determined from testing of a pulsed fiber laser source (or these values can be provided by a vendor of the pulsed fiber laser source). Moreover, a minimum value for δ can also be a function of the pulsed fiber laser source 102. That is, the pulsed fiber laser sources available from different vendors may exhibit different minimum values for δ, and this minimum value for δ (which reflects a maximum achievable number of shots per second) can be included among the vendor's specifications for its pulsed fiber laser source.
Furthermore, in situations where the pulsed fiber laser source 102 is expected or observed to exhibit nonlinear behaviors, such nonlinear behavior can be reflected in the model. As an example, it can be expected that the pulsed fiber laser source 102 will exhibit energy inefficiencies at high power levels. In such a case, the modeling of the seed energy (S) can make use of a clipped, offset (affine) model for the energy that gets delivered to the fiber amplifier 116 by pump laser 118 for pulse generation. For example, in this case, the seed energy can be modeled in the laser energy model 108 as:
S(t+δ)=EP max(a1δ+a0,offset)
The values for a1, a0, and offset can be empirically measured for the pulsed fiber laser source 102 and incorporated into the modeling of S(t+δ) used within the laser energy model 108. It can be seen that for a linear regime, the value for a1 would be 1, and the values for a0 and offset would be 0. In this case, the model for the seed energy S(t+δ) reduces to δEP as discussed in the examples above.
The control circuit 106 can also update the laser energy model 108 based on feedback that reflects the energies within the actual laser pulses 122. In this fashion, laser energy model 108 can better improve or maintain its accuracy over time. In an example embodiment, the laser source 102 can monitor the energy within laser pulses 122 at the time of firing. This energy amount can then be reported by the laser source 102 to the control circuit 106 (see 250 in
For example, it may be necessary to update the values for a and b to reflect actual operational characteristics of the laser source 102. As noted above, the values of a and b define how much energy is transferred from the fiber amplifier 116 into the laser pulse 122 when the laser source 102 is triggered and the seed laser 114 induces the pulse 122 to exit the fiber amplifier 116. An updated value for a can be computed from the monitored energies in transmitted pulses 122 (PE) as follows:
a=argmina(Σk=1 . . . N|PE(tk+δk)−aPE(tk)−(1−a)δtk|2)
In this expression, the values for PE represent the actual pulse energies at the referenced times (tk or tk+δk). This is a regression problem and can be solved using commercial software tools such as those available from MATLAB, Wolfram, PTC, ANSYS, and others. In an ideal world, the respective values for PE(t) and PE(t+δ) will be the same as the modeled values of EF(t) and EF(t+δ), However, for a variety of reasons, the gain factors a and b may vary due to laser efficiency considerations (such as heat or aging whereby back reflections reduce the resonant efficiency in the laser cavity). Accordingly, a practitioner may find it useful to update the model 108 over time to reflect the actual operational characteristics of the laser source 102 by periodically computing updated values to use for a and b.
In scenarios where the laser source 102 does not report its own actual laser pulse energies, a practitioner can choose to include a photodetector at or near an optical exit aperture of the lidar transmitter 100 (e.g., see photodetector 252 in
Modeling Mirror Motion Over Time:
In a particularly powerful example embodiment, the control circuit 106 can also model mirror motion to predict where the mirror subsystem 104 will be aimed at a given point in time. This can be especially helpful for lidar transmitters 100 that selectively target specific range points in the field of view with laser pulses 122. By coupling the modeling of laser energy with a model of mirror motion, the control circuit 106 can set the order of specific laser pulse shots to be fired to targeted range points with highly granular and optimized time scales. As discussed in greater detail below, the mirror motion model can model mirror motion over short time intervals (such as over time intervals in a range from 5-50 nanoseconds). Such a short interval mirror motion model can be referred to as a transient mirror motion model.
In an example embodiment, the mirror subsystem 104 can operate as discussed above in connection with
Mirror 110 will have a maximum tilt angle that can be referred to as the amplitude A of mirror 110. Thus, it can be understood that mirror 110 will scan through its tilt angles between the values of −A (which corresponds to −θMax) and +A (which corresponds to +θMax). It can be seen that the angle of reflection for the reflected laser pulse 122′ relative to the actual position of mirror 110 is the sum of θ+ϕ as shown by
When driven in a resonant mode according to sinusoidal control signal, mirror 110 will change its tilt angle θ according to a cosine oscillation, where its rate of change is slowest at the ends of its scan (when it changes its direction of tilt) and fastest at the mid-point of its scan. In an example where the mirror 110 scans between maximum tilt angles of −A to +A, the value of the angle θ as a function of time can be expressed as:
θ=A cos(2πft)
where f represents the scan frequency of mirror 110 and t represents time. Based on this model, it can be seen that the value for θ can vary from A (when t=0) to 0 (when t is a value corresponding to 90 degrees of phase (or 270 degrees of phase) to −A (when t is a value corresponding to 180 degrees of phase).
This means that the value of the shot angle μ can be expressed as a function of time by substituting the cosine expression for θ into the expression for the shot angle of μ=2θ+ϕ as follows:
μ=2A cos(2πft)+φ
From this expression, one can then solve fort to produce an expression as follows:
This expression thus identifies the time t at which the scan of mirror 110 will target a given shot angle μ. Thus, when the control circuit 106 wants to target a shot angle of μ, the time at which mirror 110 will scan to this shot angle can be readily computed given that the values for ϕ, A, and f will be known. In this fashion, the mirror motion model 308 can model that shot angle as a function of time and predict the time at which the mirror 110 will target a particular shot angle.
In an example embodiment, the values for +A and −A can be values in a range between +/−10 degrees and +/−20 degrees (e.g., +/−16 degrees) depending on the nature of mirror chosen as mirror 110. In an example where A is 16 degrees and mirror 110 scans as discussed above in connection with
In some example embodiments, the value for A in the mirror motion model 308 can be a constant value. However, some practitioners may find it desirable to deploy a mirror 110 that exhibits an adjustable value for A (e.g., a variable amplitude mirror such as a variable amplitude MEMS mirror can serve as mirror 110). From the relationships discussed above, it can be seen that the time required to move between two shot angles is reduced when the value for amplitude A is reduced. The control circuit 106 can leverage this relationship to determine whether it is desirable to adjust the amplitude of the mirror 110 before firing a sequence of laser pulses 122.
Model-Based Shot Scheduling:
At step 502, the control circuit 106 determines a timing schedule for laser pulses 122 using the laser energy model 108 and the mirror motion model 308. By linking the laser energy model 108 and the mirror motion model 308 in this regard, the control circuit 106 can determine how much energy is available for laser pulses targeted toward any of the range points in the scan pattern of mirror subsystem 104. For purposes of discussion, we will consider an example embodiment where mirror 110 scans in azimuth between a plurality of shot angles at a high rate while mirror 112 scans in elevation at a sufficiently slower rate so that the discussion below will assume that the elevation is held steady while mirror 110 scans back and forth in azimuth. However, the techniques described herein can be readily extended to modeling the motion of both mirrors 110 and 112.
If there is a desire to target a range point at a Shot Angle A with a laser pulse of at least X units of energy, the control circuit 106, at step 502, can consult the laser energy model 108 to determine whether there is sufficient laser energy for the laser pulse when the mirror 110's scan angle points at Shot Angle A. If there is sufficient energy, the laser pulse 122 can be fired when the mirror 110 scans to Shot Angle A. If there is insufficient energy, the control circuit 106 can wait to take the shot until after mirror 110 has scanned through and back to pointing at Shot Angle A (if the laser energy model 108 indicates there is sufficient laser energy when the mirror returns to Shot Angle A). The control circuit 106 can compare the shot energy requirements for a set of shot angles to be targeted with laser pulses to determine when the laser pulses 122 should be fired. Upon determination of the timing schedule for the laser pulses 122, the control circuit 106 can generate and provide firing commands 120 to the laser source 102 based on this determined timing schedule (step 504).
The process flow of
At step 602, the control circuit 106 sorts the range points by elevation to yield sets of azimuth shot angles sorted by elevation. The elevation-sorted range points can also be sorted by azimuth shot angle (e.g., where all of the shot angles at a given elevation are sorted in order of increasing azimuth angle (smallest azimuth shot angle to largest azimuth shot angle) or decreasing azimuth angle (largest azimuth shot angle to smallest azimuth shot angle). For the purposes of discussing the process flows of
At step 604, the control circuit 106 selects a shot elevation from among the shot elevations in the sorted list of range points in pool 650. The control circuit 106 can make this selection on the basis of any of a number of criteria. The order of selection of the elevations will govern which elevations are targeted with laser pulses 122 before others.
Accordingly, in an example embodiment, the control circuit 106 can prioritize the selection of elevations at step 604 that are expected to encompass regions of interest in the field of view. As an example, some practitioners may find the horizon in the field of view (e.g., a road horizon) to be high priority for targeting with laser pulses 122. In such a case, step 604 can operate as shown by
As another example, the control circuit 106 can prioritize the selection of elevations based on the range(s) to detected object(s) in the field of view. Some practitioners may find it desirable to prioritize the shooting of faraway objects in the field of view. Other practitioners may find it desirable to prioritize the shooting of nearby objects in the field of view. Thus, in an example such as that shown by
As yet another example, the control circuit 106 can prioritize the selection of elevations based on the velocity(ies) of detected object(s) in the field of view. Some practitioners may find it desirable to prioritize the shooting of fast-moving objects in the field of view.
As yet another example, the control circuit 106 can prioritize the selection of elevations based on the directional heading(s) of detected object(s) in the field of view. Some practitioners may find it desirable to prioritize the shooting of objects in the field of view that moving toward the lidar transmitter 100.
Further still, some practitioners may find it desirable to combine the process flows of
In another example embodiment, the control circuit 106 can select elevations at step 604 based on eye safety or camera safety criteria. For example, eye safety requirements may specify that the lidar transmitter 100 should not direct more than a specified amount of energy in a specified spatial area over of a specified time period. To reduce the risk of firing too much energy into the specified spatial area, the control circuit 106 can select elevations in a manner that avoids successive selections of adjacent elevations (e.g., jumping from Elevation 1 to Elevation 3 rather than Elevation 2) to insert more elevation separation between laser pulses that may be fired close in time. This manner of elevation selection may optionally be implemented dynamically (e.g., where elevation skips are introduced if the control circuit 106 determines that the energy in a defined spatial area has exceeded some level that is below but approaching the eye safety thresholds). Furthermore, it should be understood that the number of elevations to skip (a skip interval) can be a value selected by a practitioner or user to define how many elevations will be skipped when progressing from elevation-to-elevation. As such, a practitioner may choose to set the elevation skip interval to be a value larger than 1 (e.g., a skip interval of 5, which would cause the system to progress from Elevation 3 to Elevation 9). Furthermore, similar measures can be taken to avoid hitting cameras that may be located in the field of view with too much energy.
Thus, it should be understood that step 604 can employ a prioritized classification system that decides the order in which elevations are to be targeted with laser pulses 122 based on the criteria of
At step 606, the control circuit 106 generates a mirror control signal for mirror 112 to drive mirror 112 so that it targets the angle of the selected elevation. As noted, this mirror control signal can be a step signal that steps mirror 112 up (or down) to the desired elevation angle. In this fashion, it can be understood that the control circuit 106 will be driving mirror 112 in a point-to-point mode where the mirror control signal for mirror 112 will vary as a function of the range points to be targeted with laser pulses (and more precisely, as a function of the order of range points to be targeted with laser pulses).
At step 608, the control circuit 106 selects a window of azimuth shot angles that are in the pool 650 at the selected elevation. The size of this window governs how many shot angles that the control circuit 106 will order for a given batch of laser pulses 122 to be fired. This window size can be referred to as the search depth for the shot scheduling. A practitioner can configure the control circuit 106 to set this window size based on any of a number of criteria. While the toy examples discussed below use a window size of 3 for purposes of illustration, it should be understood that practitioners may want to use a larger (or smaller) window size in practice. For example, in an example embodiment, the size of the window may be a value in a range between 2 shots and 12 shots. However, should the control circuit 106 have larger capacities for parallel processing or should there be more lenient time constraints on latency, a practitioner may find it desirable to choose larger window sizes. Furthermore, the control circuit 106 can consider a scan direction for the mirror 110 when selecting the shot angles to include in this window. Thus, if the control circuit 106 is scheduling shots for a scan direction corresponding to increasing shot angles, the control circuit 106 can start from the smallest shot angle in the sorted pool 650 and include progressively larger shot angles in the shot angle sort order of the pool 650. Similarly, if the control circuit 106 is scheduling shots for a scan direction corresponding to decreasing shot angles, the control circuit 106 can start from the largest shot angle in the sorted pool 650 and include progressively smaller shot angles in the shot angle sort order of the pool 650.
At step 610, the control circuit 106 determines an order for the shot angles in the selected window using the laser energy model 108 and the mirror motion model 308. As discussed above, this ordering operation can compare candidate orderings with criteria such as energy requirements relating to the shots to find a candidate ordering that satisfies the criteria. Once a valid candidate ordering of shot angles is found, this can be used as ordered shot angles that will define the timing schedule for the selected window of laser pulses 122. Additional details about example embodiments for implementing step 610 are discussed below.
Once the shot angles in the selected window have been ordered at step 610, the control circuit 106 can add these ordered shot angles to the shot list 660. As discussed in greater detail below, the shot list 660 can include an ordered listing of shot angles and a scan direction corresponding to each shot angle.
At step 612, the control circuit 106 determines whether there are any more shot angles in pool 650 to consider at the selected elevation. In other words, if the window size does not encompass all of the shot angles in the pool 650 at the selected elevation, then the process flow can loop back to step 608 to grab another window of shot angles from the pool 650 for the selected elevation. If so, the process flow can then perform steps 610 and 612 for the shot angles in this next window.
Once all of the shots have been scheduled for the shot angles at the selected elevation, the process flow can loop back from step 612 to step 604 to select the next elevation from pool 650 for shot angle scheduling. As noted above, this selection can proceed in accordance with a defined prioritization of elevations. From there, the control circuit 106 can perform steps 606-614 for the shot angles at the newly selected elevation.
Meanwhile, at step 614, the control circuit 106 generates firing commands 120 for the laser source 102 in accordance with the determined order of shot angles as reflected by shot list 660. By providing these firing commands 120 to the laser source 102, the control circuit 106 triggers the laser source 102 to transmit the laser pulses 122 in synchronization with the mirrors 110 and 112 so that each laser pulse 122 targets its desired range point in the field of view. Thus, if the shot list includes Shot Angles A and C to be fired at during a left-to-right scan of the mirror 110, the control circuit 106 can use the mirror motion model 308 to identify the times at which mirror 110 will be pointing at Shot Angles A and C on a left-to-right scan and generate the firing commands 120 accordingly. The control circuit 106 can also update the pool 650 to mark the range points corresponding to the firing commands 120 as being “fired” to effectively remove those range points from the pool 650.
In the example of
At step 620, the control circuit 106 selects a scan direction of mirror 110 to use for scheduling. A practitioner can choose whether this scheduling is to start with a left-to-right scan direction or a right-to-left scan direction. Then, step 608 can operate as discussed above in connection with
At step 622, the control circuit 106 determines an order for the shot angles based on the laser energy model 108 and the mirror motion model 308 as discussed above for step 610, but where the control circuit 106 will only schedule shot angles if the laser energy model 108 indicates that those shot angles are schedulable on the scan corresponding to the selected scan direction. Scheduled shot angles are added to the shot list 660. But, if the laser energy model 108 indicates that the system needs to wait until the next return scan (or later) to take a shot at a shot angle in the selected window, then the scheduling of that shot angle can be deferred until the next scan direction for mirror 110 (see step 624). This effectively returns the unscheduled shot angle to pool 650 for scheduling on the next scan direction if possible.
At step 626, the control circuit 106 determines if there are any more shot angles in pool 650 at the selected elevation that are to be considered for scheduling on the scan corresponding to the selected scan direction. If so, the process flow returns to step 608 to grab another window of shot angles at the selected elevation (once again taking into consideration the sort order of shot angles at the selected elevation in view of the selected scan direction).
Once the control circuit 106 has considered all of the shot angles at the selected elevation for scheduling on the selected scan direction, the process flow proceeds to step 628 where a determination is made as to whether there are any more unscheduled shot angles from pool 650 at the scheduled elevation. If so, the process flow loops back to step 620 to select the next scan direction (i.e., the reverse scan direction). From there, the process flow proceeds through steps 608, 622, 624, 626, and 628 until all of the unscheduled shot angles for the selected elevation have been scheduled and added to shot list 660. Once step 628 results in a determination that all of the shot angles at the selected elevation have been scheduled, the process flow can loop back to step 604 to select the next elevation from pool 650 for shot angle scheduling. As noted above, this selection can proceed in accordance with a defined prioritization of elevations, and the control circuit 106 can perform steps 606, 620, 608, 622, 624, 626, 628, and 614 for the shot angles at the newly selected elevation.
Thus, it can be understood that the process flow of
It should also be understood that the control circuit 106 will always be listening for new range points to be targeted with new laser pulses 122. As such, steps 600 and 602 can be performed while steps 604-614 are being performed (for
Thus, the control circuit 106 can also always be listening for such high priority requests and then cause the process flow to quickly begin scheduling the firing of laser pulses toward such range points. In a circumstance where a high priority targeting request causes the control circuit 106 to interrupt its previous shot scheduling, the control circuit 106 can effectively pause the current shot schedule, schedule the new high priority shots (using the same scheduling techniques) and then return to the previous shot schedule once laser pulses 122 have been fired at the high priority targets.
Accordingly, as the process flows of
While
For example, as shown by
To create the order candidates at step 700, the control circuit 106 can generate different permutations of time slot sequences for different orders of the shot angles in the selected window. Continuing with an example where the shot angles are A, C, and I, step 700 can produce the following set of example order candidates (where each order candidate can be represented by a time slot sequence):
It should be understood that the control circuit 106 could create additional candidate orderings from different permutations of time slot sequences for Shot Angles A, C, and I. A practitioner can choose to control how many of such candidates will be considered by the control circuit 106.
At step 702, the control circuit 106 simulates the performance of the different order candidates using the laser energy model 108 and the defined shot requirements. As discussed above, these shot requirements may include requirements such as minimum energy thresholds for each laser pulse (which may be different for each shot angle), maximum energy thresholds for each laser pulse (or for the laser source), and/or desired energy levels for each laser pulse (which may be different for each shot angle).
To reduce computational latency, this simulation and comparison with shot requirements can be performed in parallel for a plurality of the different order candidates using parallelized logic resources of the control circuit 106. An example of such parallelized implementation of step 702 is shown by
At step 720, the control circuit 106 uses the laser energy model 108 to predict the energy characteristics of the laser source and resultant laser pulse if laser pulse shots are fired at the time slots corresponding to the subject time slot sequence. These modeled energies can then be compared to criteria such as a maximum laser energy threshold and a minimum laser energy threshold to determine if the time slot sequence would be a valid sequence in view of the system requirements. At step 722, the control circuit 106 can label each tested time slot sequence as valid or invalid based on this comparison between the modeled energy levels and the defined energy requirements. At step 724, the control circuit 106 can compute the elapsed time that would be needed to fire all of the laser pulses for each valid time slot sequence. For example, Candidate 1 from the example above would have an elapsed time duration of 9 units of time, while Candidate 2 from the example above would have an elapsed time duration of 17 units of time.
Accordingly, the simulation of these time slot sequences would result in a determination that the time slot sequence of (3,9,21) is a valid candidate, which means that this time slot sequence can define the timing schedule for laser pulses fired toward the shot angles in the selected window. The elapsed time for this valid candidate is 21 units of time.
Returning to
For example embodiments, the latency with which the control circuit 106 is able to determine the shot angle order and generate appropriate firing commands is an important operational characteristic for the lidar transmitter 100. To maintain high frame rates, it is desirable for the control circuit 106 to carry out the scheduling operations for all of the shot angles at a selected elevation in the amount of time it takes to scan mirror 110 through a full left-to-right or right-to-left scan if feasible in view of the laser energy model 108 (where this time amount is around 40 microseconds for a 12 kHz scan frequency). Moreover, it is also desirable for the control circuit 106 to be able to schedule shots for a target that is detected based on returns from shots on the current scan line during the next return scan (e.g., when a laser pulse 122 fired during the current scan detects something of interest that is to be interrogated with additional shots (see
The ordered shot angles 822 can also include flags that indicate the scan direction for which the shot is to be taken at each shot angle. This scan direction flag will also allow the system to recognize scenarios where the energy model indicates there is a need to pass by a time slot for a shot angle without firing a shot and then firing the shot when the scan returns to that shot angle in a subsequent time slot. For example, with reference to the example above, the scan direction flag will permit the system to distinguish between Candidate 3 (for the sequence of shot angles CIA at time slots 3, 9, and 19) versus Candidate 4 (for the same sequence of shot angles CIA but at time slots 3, 9, and 21). A practitioner can explicitly assign a scan direction to each ordered shot angle by adding the scan direction flag to each ordered shot angle if desired, or a practitioner indirectly assign a scan direction to each ordered shot angle by adding the scan direction flag to the ordered shot angles for which there is a change in scan direction. Together, the shot elevations 802 and order shot angles 822 serve as portions of the shot list 660 used by the lidar transmitter 100 to target range points with laser pulses 122.
The beam scanner controller 802 can generate control signal 806 for mirror 112 based on the defined shot elevation 820 to drive mirror 112 to a scan angle that targets the elevation defined by 820. Meanwhile, the control signal 804 for mirror 110 will continue to be the sinusoidal signal that drives mirror 110 in a resonant mode. However, some practitioners may choose to also vary control signal 804 as a function of the ordered shot angles 822 (e.g., by varying amplitude A as discussed above).
In the example of
Examples of techniques that can be used for the scan tracking feedback system 850 are described in the above-referenced and incorporated U.S. Pat. No. 10,078,133. For example, the feedback system 850 can employ optical feedback techniques or capacitive feedback techniques to monitor and adjust the scanning (and modeling) of mirror 110. Based on information from the feedback system 850, the beam scanner controller 802 can determine how the actual mirror scan angles may differ from the modeled mirror scan angles in terms of frequency, phase, and/or maximum amplitude. Accordingly, the beam scanner controller 802 can then incorporate one or more offsets or other adjustments relating the detected errors in frequency, phase, and/or maximum amplitude into the mirror motion model 808a so that model 808a more closely reflects reality. This allows the beam scanner controller 802 to generate firing commands 120 for the laser source 102 that closely match up with the actual shot angles to be targeted with the laser pulses 122.
Errors in frequency and maximum amplitude within the mirror motion model 808a can be readily derived from the tracked actual values for the tilt angle θ as the maximum amplitude A should be the maximum actual value for θ, and the actual frequency is measurable based on tracking the time it takes to progress from actual values for A to −A and back.
Phased locked loops (or techniques such as PID control, both available as software tools in MATLAB) can be used to track and adjust the phase of the model 808a as appropriate. The expression for the tilt angle θ that includes a phase component (p) can be given as:
θ=A cos(2πft+p)
From this, we can recover the value for the phase p by the relation:
θ≈A cos(2πft)−A sin(2πft)p
Solving for p, this yields the expression:
Given that the tracked values for A, f, t, and θ are each known, the value for p can be readily computed. It should be understood that this expression for p assumes that the value of the p is small, which will be an accurate assumption if the actual values for A, f, t, and θ are updated frequently and the phase is also updated frequently. This computed value of p can then be used by the “fine” mirror motion model 808a to closely track the actual shot angles for mirror 110, and identify the time slots that correspond to those shot angles according to the expression:
While a practitioner will find it desirable for the beam scanner controller 802 to rely on the highly accurate “fine” mirror motion model 808a when deciding when the firing commands 120 are to be generated, the practitioner may also find that the shot scheduling operations can suffice with less accurate mirror motion modeling. Accordingly, the system controller 800 can maintain its own model 808b, and this model 808b can be less accurate than model 808a as small inaccuracies in the model 808b will not materially affect the energy modeling used to decide on the ordered shot angles 822. In this regard, model 808b can be referred to as a “coarse” mirror motion model 808b. If desired, a practitioner can further communicate feedback from the beam scanner controller 802 to the system controller 800 so the system controller 800 can also adjusts its model 808b to reflect the updates made to model 808a. In such a circumstance, the practitioner can also decide on how frequently the system will pass these updates from model 808a to model 808b.
Marker Shots to Bleed Off and/or Regulate Shot Energy:
For example, one or more marker shots can be fired to bleed off energy so that a later targeted laser pulse shot (or set of targeted shots) exhibits a desired amount of energy. As an example embodiment, the marker shots can be used to bleed off energy so that the targeted laser pulse shots exhibit consistent energy levels despite a variable rate of firing for the targeted laser pulse shots (e.g., so that the targeted laser pulse shots will exhibit X units of energy (plus or minus some tolerance) even if those targeted laser pulse shots are irregularly spaced in time). The control circuit 106 can consult the laser energy model 108 to determine when such marker shots should be fired to regulate the targeted laser pulse shots in this manner.
Modeling Eye and Camera Safety Over Time:
Similar to the techniques described for eye safety in connection with Figured 10, 11, and 12, it should be understood that a practitioner can also use the control circuit to model and evaluate whether time slot sequences would violate defined camera safety requirements. To reduce the risk of laser pulses 122 impacting on and damaging cameras in the field of view, the control circuit can also employ a camera safety model in a similar manner and toward similar ends as the eye safety model 1002. In the camera safety scenario, the control circuit 106 can respond to detections of objects classified as cameras in the field of view by monitoring how much aggregated laser energy will impact that camera object over time. If the model indicates that the camera object would have too much laser energy incident on it in too short of a time period, the control circuit can adjust the shot list as appropriate.
Moreover, as noted above with respect to the laser energy model 108 and the mirror motion model 308, the eye safety and camera safety models can track aggregated energy delivered to defined spatial areas over defined time periods over short time intervals, and such short interval eye safety and camera safety models can be referred to as transient eye safety and camera safety models.
Additional Example EmbodimentsAt step 1300, the laser energy model 108 and mirror motion model 308 are established. This can include determining from factory or calibration the values to be used in the models for parameters such as EP, a, b, and A. Step 1300 can also include establishing the eye safety model 1002 by defining values for parameters that govern such a model (e.g. parameters indicative of limits for aggregated energy for a defined spatial area over a defined time period). At step 1302, the control law for the system is connected to the models established at step 1300.
At step 1304, the seed energy model used by the laser energy model 108 is adjusted to account for nonlinearities. This can employ the clipped, offset (affine) model for seed energy as discussed above.
At step 1306, the laser energy model 108 can be updated based on lidar return data and other feedback from the system. For example, as noted above in connection with
In this expression, Pulse Return Energy represents the energy of the pulse return (which is known from the point cloud 256), PE represents the unknown energy of the transmitted laser pulse 122, ApertureReceiver represents the known aperture of the lidar receiver (see 1400 in
Also, at step 1308, the laser health can be assessed and monitored as a background task. The information derived from the feedback received for steps 1306 and 1308 can be used to update model parameters as discussed above. For example, as noted above, the values for the seed energy model parameters as well as the values for a and b can be updated by measuring the energy produced by the laser source 102 and fitting the data to the parameters. Techniques which can be used for this process include least squares, sample matrix inversion, regression, and multiple exponential extensions. Further still, as noted above, the amount of error can be reduced by using known targets with a given reflectivity and using these to calibrate the system.
This is helpful because the reflectivity of a quantity that is known, i.e. a fiducial, allows one to explicitly extract shot energy (after backing out range dependencies and any obliquity). Examples of fiducials that may be employed include road signs and license plates.
At step 1310, the lidar return data and the coupled models can be used to ensure that the laser pulse energy does not exceed safety levels. These safety levels can include eye safety as well as camera safety as discussed above. Without step 1310, the system may need to employ a much more stringent energy requirement using trial and error to establish laser settings to ensure safety. For example if we only had a laser model where the shot energy is accurate to only ±3J per shot around the predicted shot, and maximum shot energy is limited to 8, we could not use any shots predicted to exceed 5. However, the hyper temporal modeling and control that is available from the laser energy model 108 and mirror motion model 308 as discussed herein allows us to obtain accurate predictions within a few percent error, virtually erasing the operational lidar impact of margin.
At step 1312, the coupled models are used with different orderings of shots, thereby obtaining a predicted shot energy in any chosen ordered sequence of shots drawn from the specified list of range points. Step 1312 may employ simulations to predict shot energies for different time slots of shots as discussed above.
At step 1314, the system inserts marker shots in the timing schedule if the models predict that too much energy will build up in the laser source 102 for a given shot sequence. This reduces the risk of too much energy being transferred into the fiber laser 116 and causing damage to the fiber laser 116.
At step 1316, the system determines the shot energy that is needed to detect targets with each shot. These values can be specified as a minimum energy threshold for each shot. The value for such threshold(s) can be determined from radiometric modeling of the lidar, and the assumed range and reflectivity of a candidate target. In general, this step can be a combination of modeling assumptions as well as measurements. For example, we may have already detected a target, so the system may already know the range (within some tolerance). Since the energy required for detection is expected to vary as the square of the range, this knowledge would permit the system to establish the minimum pulse energy thresholds so that there will be sufficient energy in the shots to detect the targets.
Steps 1318 and 1320 operate to prune the candidate ordering options based on the energy requirements (e.g., minimum energy thresholds per shot) (for step 1318) and shot list firing completion times (to favor valid candidate orderings with faster completion times) (for step 1320).
At step 1322, candidate orderings are formed using elevation movements on both scan directions. This allows the system to consider taking shots on both a left-to-right scan and a right-to-left scan. For example, suppose that the range point list has been completed on a certain elevation, when the mirror is close to the left hand side. Then it is faster to move the elevation mirror at that point in time and begin the fresh window of range points to be scheduled beginning on this same left hand side and moving right. Conversely, if we deplete the range point list when the mirror is closer to the right hand side it is faster to move the mirror in elevation whilst it is on the right hand side. Moreover, in choosing an order from among the order candidates, and when moving from one elevation to another, movement on either side of the mirror motion, the system may move to a new elevation when mirror 110 is at one of its scan extremes (full left or full right). However, in instances where a benefit may arise from changing elevations when mirror 110 is not at one of its scan extremes, the system may implement interline skipping as described in the above-referenced and incorporated U.S. Pat. No. 10,078,133. The mirror motion model 308 can also be adjusted to accommodate potential elevation shift during a horizontal scan.
At step 1324, if processing time allows the control circuit 106 to implement auctioning (whereby multiple order candidates are investigated, the lowest “cost” (e.g., fastest lidar execution time) order candidate is selected by the control circuit 106 (acting as “auctioneer”). A practitioner may not want the control circuit to consider all of the possible order candidates as this may be too computationally expensive and introduce an undue amount of latency. Thus, the control circuit 106 can enforce maximums or other controls on how many order candidates are considered per batch of shots to be ordered. Greedy algorithms can be used when choosing ordering shots.
Generally, the system can use a search depth value (which defines how many shots ahead the control circuit will evaluate) in this process in a manner that is consistent with any real time consideration in shot list generation. At step 1326, delays can be added in the shot sequence to suppress a set of shots and thus increase available shot energy to enable a finer (denser) grid as discussed above. The methodology for sorting through different order candidates can be considered a special case of the Viterbi algorithm which can be implemented using available software packages such as Mathworks. This can also be inferred using equivalence classes or group theoretic methods. Furthermore, if the system detects that reduced latency is needed, the search depth can be reduced (see step 1328).
Based on the listed range points and the defined search depth, the order candidates for laser pulse shots are created (step 1510). The mirror motion model 308 can assign time slots to these order candidates as discussed above. At step 1512, each candidate is tested using the laser energy model 108. This testing may also include testing based on the eye safety model 1002 and a camera safety model. This testing can evaluate the order candidates for compliance with criteria such as peak energy constraints, eye safety constraints, camera safety constraints, minimum energy thresholds, and completion times. If a valid order candidate is found, the system can fire laser pulses in accordance with the timing/sequencing defined by the fastest of the valid order candidates. Otherwise, the process flow can return to step 1510 to continue the search for a valid order candidate.
Controllable Detection Intervals for Return Processing:
In accordance with another example embodiment, the shot list can be used to exercise control over how the lidar receiver 1400 detects returns from laser pulse shots 122.
The photodetector circuitry 1800 generates a return signal 1806 in response to a pulse return 1402 that is incident on the photodetector array 1802. The choice of which detector pixels 1804 to use for collecting a return signal 1806 corresponding to a given return 1402 can be made based on where the laser pulse shot 122 corresponding to the return 1402 that was targeted. Thus, if a laser pulse shot 122 is targeting a range point located as a particular azimuth angle, elevation angle pair; then the lidar receiver can map that azimuth, elevation angle pair to a set of pixels 1804 within the array 1802 that will be used to detect the return 1402 from that laser pulse shot 122. The mapped pixel set can include one or more of the detector pixels 1804. This pixel set can then be activated and read out from to support detection of the subject return 1402 (while the pixels outside the pixel set are deactivated so as to minimize potential obscuration of the return 1402 within the return signal 1806 by ambient or interfering light that is not part of the return 1402 but would be part of the return signal 1806 if unnecessary pixels 1804 were activated when return 1402 was incident on array 1802). In this fashion, the lidar receiver 1400 will select different pixel sets of the array 1802 for readout in a sequenced pattern that follows the sequenced spatial pattern of the laser pulse shots 122. Return signals 1806 can be read out from the selected pixel sets, and these return signals 1806 can be processed to detect returns 1402 therewithin.
Examples of circuitry and control logic that can used for this selective pixel set readout are described in U.S. Pat. Nos. 10,754,015 and 10,641,873, the entire disclosures of each of which are incorporated herein by reference. These incorporated patents also describe example embodiments for the photodetector circuitry 1800, including the use of a multiplexer to selectively read out signals from desired pixel sets as well as an amplifier stage positioned between the photodetector array 1802 and multiplexer.
Signal processing circuit 1820 operates on the return signal 1806 to compute return information 1822 for the targeted range points, where the return information 1822 is added to the lidar point cloud 1404. The return information 1822 may include, for example, data that represents a range to the targeted range point, an intensity corresponding to the targeted range point, an angle to the targeted range point, etc. As described in the above-referenced and incorporated '015 and '873 patents, the signal processing circuit 1820 can include an analog-to-digital converter (ADC) that converts the return signal 1806 into a plurality of digital samples. The signal processing circuit 1820 can process these digital samples to detect the returns 1402 and compute the return information 1822 corresponding to the returns 1402. In an example embodiment, the signal processing circuit 1820 can perform time of flight (TOF) measurement to compute range information for the returns 1402. However, if desired by a practitioner, the signal processing circuit 1820 could employ time-to-digital conversion (TDC) to compute the range information. Additional details about how the signal processing circuit 1820 can operate for an example embodiment are discussed below.
The lidar receiver 1400 can also include circuitry that can serve as part of the control circuit 106 of the lidar system. This control circuitry is shown as a receiver controller 1810 in
The receiver controller 1810 and/or signal processing circuit 1820 may include one or more processors. These one or more processors may take any of a number of forms. For example, the processor(s) may comprise one or more microprocessors. The processor(s) may also comprise one or more multi-core processors. As another example, the one or more processors can take the form of a field programmable gate array (FPGA) or application-specific integrated circuit (ASIC) which provide parallelized hardware logic for implementing their respective operations. The FPGA and/or ASIC (or other compute resource(s)) can be included as part of a system on a chip (SoC). However, it should be understood that other architectures for such processor(s) could be used, including software-based decision-making and/or hybrid architectures which employ both software-based and hardware-based decision-making. The processing logic implemented by the receiver controller 1810 and/or signal processing circuit 1820 can be defined by machine-readable code that is resident on a non-transitory machine-readable storage medium such as memory within or available to the receiver controller 1810 and/or signal processing circuit 1820. The code can take the form of software or firmware that define the processing operations discussed herein. This code can be downloaded onto the processor using any of a number of techniques, such as a direct_download via a wired connection as well as over-the-air downloads via wireless networks, which may include secured wireless networks. As such, it should be understood that the lidar receiver 1400 can also include a network interface that is configured to receive such over-the-air downloads and update the processor(s) with new software and/or firmware. This can be particularly advantageous for adjusting the lidar receiver 1400 to changing regulatory environments. When using code provisioned for over-the-air updates, the lidar receiver 1400 can operate with unidirectional messaging to retain function safety.
In
As shown by
Thus, so long as the target for Shot 1 is located at a range between Rmin(1) and Rmax(1), the receiver 1400 is expected to be capable of detecting the return if collection from the pixel set starts at time TT1(1) and stops at time TT2(1). The range interval encompassed by the detection interval of TT1(1) to TT2(1) can be referred to as the range swath S(1) (where the parenthetical references the shot number to which the range swath is applicable). This range swath can also be referenced as a range buffer as it represents a buffer of ranges for the target that make the target detectable by the receiver 1400.
In an example embodiment, the photodetector circuitry 1800 is capable of sensing returns from one pixel set at a time. For such an example embodiment, the detection interval for detecting a return for a given shot cannot overlap with the detection interval for detecting a return from another shot. This means that TT1(2) should be greater than or equal to TT2(1), which then serves as a constraint on the choice of start and stop collection times for the pixel clusters.
However, it should be understood that this constraint could be eliminated with other example embodiments through the use of multiple readout channels for the lidar receiver 1400 as discussed below in connection with
As noted above, each detection interval (D(i), which corresponds to (TT1(i) to TT2(i)) will be associated with a particular laser pulse shot (Shot(i)). The system can control these shot-specific detection intervals so that they can vary across different shots. As such, the detection interval of D(j) for Shot(j) can have a different duration than the detection interval of D(k) for Shot(k).
Moreover, as noted above, each detection interval D(i) has a corresponding shot interval SI(i), where the shot interval SI(i) corresponding to D(i) can be represented by the interval from shot time T(i) to the shot time T(i+1). Thus, consider a shot sequence of Shots 1-4 at times T(1), T(2), T(3), and T(4) respectively. For this shot sequence, detection interval D(1) for detecting the return from Shot(1) would have a corresponding shot interval SI(1) represented by the time interval from T(1) to T(2). Similarly, detection interval D(2) for detecting the return from Shot(2) would have a corresponding shot interval SI(2) represented by the time interval from T(2) to T(3); and the detection interval D(3) for detecting the return from Shot(3) would have a corresponding shot interval SI(3) represented by the time interval from T(3) to T(4). Counterintuitively, the inventors have found that it is often not desirable for a detection interval to be of the same duration as its corresponding shot interval due to factors such as the amount of processing time that is needed to detect returns within return signals (as discussed in greater detail below). In many cases, it will be desirable for the control process to define a detection interval so that it exhibits a duration shorter than the duration of its corresponding shot interval (D(i)<SI(i)). In this fashion, processing resources in the signal processing circuit 1820 can be better utilized, as discussed below. Furthermore, in some other cases, it may be desirable for the variability of the detection intervals relative to their corresponding shot intervals to operate where a detection interval exhibits a duration longer than the duration of its corresponding shot interval (D(i)>SI(i)). For example, if the next shot at T(i+1) has an associated Rmin value greater than zero, and where the shot at T(i) is targeting a range point expected to be at a long range while the shot at T(i+1) is targeting a range point expected to be at medium or long range, then it may be desirable for D(i) to be greater than SI(i).
It can be appreciated that a laser pulse shot, Shot(i), fired at time T(i) will be traveling at the speed of light. On this basis, and using the minimum and maximum range values of Rmin(i) and Rmax(i) for detecting the return from Shot(i), the minimum roundtrip distance for Shot(i) and its return would be 2Rmin(i) and the minimum roundtrip time for Shot(i) and its return would be TT1(i)−T(i). The value for TT1(i) could be derived from Rmin(i) according to these relationships as follows (where the term c represents the speed of light):
(TT1(i)−T(i))c=2Rmin(i)
-
- which can be re-expressed as:
Thus, knowledge of when Shot(i) is fired and knowledge of the value for Rmin(i) allows the receiver 1400 to define when collection should start from the pixel set to be used for detecting the return from Shot (i).
Similarly, the value for TT2(i) can be derived from Rmax(i) according to these relationships as follows (where the term c represents the speed of light):
(TT2(i)−T(i))c=2Rmax(i)
-
- which can be re-expressed as:
Thus, knowledge of when Shot(i) is fired and knowledge of the value for Rmax(i) allows the receiver 1400 to define when collection can stop from the pixel set to be used for detecting the return from Shot(i).
A control process for the lidar system can then operate to determine suitable Rmin(i) and Rmax(i) values for detecting the returns from each Shot(i). These Rmin, Rmax pairs can then be translated into appropriate start and stop collection times (the on/off times of TT1 and TT2) for each shot. In an example embodiment, if the lidar point cloud 1404 has range data and location data about a plurality of objects of interest in a field of view for the receiver 1400, this range data and location data can be used to define current range estimates for the objects of interest, and suitable Rmin, Rmax values for detecting returns from laser pulse shots that target range points corresponding to where these objects of interest are located can be derived from these range estimates. In another example embodiment, the control process for the lidar system can access map data based on the geographic location of the receiver 1400. From this map data, the control process can derive information about the environment of the receiver 1400, and suitable Rmin, Rmax values can be derived from this environmental information. Additional example embodiments for determine the values for the Rmin, Rmax pairs are discussed below.
Steps 1850, 1852, and 1854 of
Steps 1856, 1858, and 1860 of
As discussed above in connection with
Then, after step 1856 is performed to read entry 1842 in buffer 1840, the receiver controller 1870 can also determine the fire time T(i) for the subject shot(i) based on the shot timing information 1410 received from the beam scanner controller 802. Using this shot time as the frame of reference for the TT1 and TT2 offset values, steps 1858 and 1860 can then operate to start and stop collections from the pixel set at the appropriate times.
The signal processing circuit 1820 then needs to segment these samples 2004 into groups corresponding to the detection intervals for the returns from each shot. This aspect of the process flow is identified by the detection loop 2020 of
Multi-Processor Return Detection:
The amount of time needed by processor 2022 to perform the detection loop 2020 is an important metric that impacts the lidar system. This amount of time can be characterized as Tproc, and it defines the rate at which processor 2022 draws samples 2004 from buffer 2002. This rate can be referenced as Rate 1. The rate at which the receiver adds samples 2004 to buffer 2002 can be referenced as Rate 2. It is highly desirable for the processor 2022 to operate in a manner where Rate 1 is greater than (or at least no less than) Rate 2 so as to avoid throughput problems and potential buffer overflows. To improve throughput for the lidar receiver 1400 in this regard, the signal processing circuit 1820 can include multiple processors 2022 that distribute the detection workload so that the multiple processors 2022 combine to make it possible for the receiver 1400 to keep up with the shot rate of the lidar transmitter 100 even if Rate 1 is less than the shot rate of the lidar transmitter 100. For example, if there are N processors 2022, then Rate 1 can be N times less than that shot rate of the lidar transmitter 100 while still keeping pace with the shots.
The processors 2022i can take any of a number of forms. For example, each processor 2022i can be a different microprocessor that shares access to the buffers 1840 and 2002. In this fashion the different microprocessors can operate on samples 2004 corresponding to different returns if necessary. As another example, each processor 2022i can be a different processing core of a multi-core processor, in which case the different processing cores can operate on samples 2004 corresponding to different returns if necessary. As yet another example, each processor 2022i can be a different set of parallelized processing logic within a field programmable gate array (FPGA) or application-specific integrated circuit (ASIC). In this fashion, parallelized compute resources within the FPGA or ASIC can operate on samples 2004 corresponding to different returns if necessary.
It is expected that the use of two processors 2022 will be sufficient to distribute the workload of processing the samples 2004 within buffer 2002. With this arrangement, the two processors 2022 can effectively alternate in terms of which returns they will process (e.g., Processor 1 can work on the samples for even-numbered returns while Processor 2 works on the samples for the odd-numbered returns). However, this alternating pattern may not necessarily hold up if, for example, the detection interval for Return 1 is relatively long (in which case Processor 1 may need to process a large number of samples 2004) while the detection intervals for Returns 2 and 3 are relatively short. In this example, it may be the case that Processor 1 is still processing the samples from Return 1 when Processor 2 completes its processing of the samples from Return 2 (and thus Processor 2 is free to begin processing the samples from Return 3 while Processor 1 is still working on the samples from Return 1).
Moreover, the return information 1822 computed by each processor 2022i can be effectively joined or shuffled together into their original time sequence of shots when adding the return information 1822 to the point cloud 1404.
Choosing Rmin, Rmax Values:
The task of choosing suitable Rmin and Rmax values for each shot can be technically challenging and involves a number of tradeoffs. In an ideal world, the value of Rmin would be zero and the value of Rmax would be infinite; but this is not feasible for real world applications because there are a number of constraints which impact the choice of values for Rmin and Rmax. Examples of such constraints are discussed below, and these constraints introduce a number of tradeoffs that a practitioner can resolve to arrive at desirable Rmin and Rmax values for a given use case.
For an example embodiment as discussed above where the lidar receiver 1400 is only capable of receiving/detecting one return at a time, a first constraint is the shot timing. That is, the receiver 1400 needs to quit listening for a return from Shot 1 before it can start listening for a return from Shot 2. Accordingly, for a given fixed shot spacing, if a practitioner wants to have fixed Rmin and Rmax values, their differences must be equal to the intershot timing (after scaling by 2/c). For example, for a 1 μsec detection interval, the corresponding range buffer would be a total of 150 m. This would permit Rmin to be set at 0 m and Rmax to be set at 150 m (or Rmin=40 m, Rmax=190 m, etc.). Thus, if Rmax is increased, we can avoid adding time to Tproc by also increasing the value of Rmin by a corresponding amount so that the Rmax−Rmin does not change.
A second constraint on Rmin, Rmax values is physics. For example, the receiver 1400 can only detect_up to a certain distance for a given shot energy. For example, if the energy in a laser pulse shot 122 is low, there would not be a need for a large Rmax value. Moreover, the receiver 1400 can only see objects up to a certain distance based on the elevation angle. As an example, the receiver 1400 can only see a short distance if it is looking at a steep downward elevation angle because the field of view would quickly hit the ground at steep downward elevation angles. In this regard, for a receiver 1400 at a height of 1 m and an elevation angle of −45 degrees, Rmax would be about 1.4 m. The light penetration structure of the air within the environment of the lidar system can also affect the physics of detection. For example, if the lidar receiver 1400 is operating in clear weather, at night with dark or artificial lighting, and/or in a relatively open area (e.g., on a highway), the potential value for Rmax could be very large (e.g., 1 km or more) as the lidar receiver 1400 will be capable of detecting targets at very long range. But, if the lidar receiver 1400 is operating in bad weather or during the day (with bright ambient light), the potential value for Rmax may be much shorter (e.g., around 100 m) as the lidar receiver 1400 would likely only need to be capable of detecting targets at relatively shorter ranges.
A third constraint arises from geometry and a given use case. Unlike the physics constraints in the second constraint category discussed above (which are based on features of the air surrounding the lidar system), geometry and use case can be determined a priori (e.g., based on maps and uses cases such as a given traffic environment that may indicate how congested the field of view would be with other vehicles, buildings, etc.), with no need to measure attributes in the return data. For example, if the goal is to track objects on a road, and the road curves, then there is no need to set Rmax beyond the curve. Thus, if the receiver 1400 is looking straight ahead and the road curves at a radius of curvature of 1 km, roughly 100 m for Rmax would suffice. This would be an example where accessing map data can help in the choice of suitable Rmax values. As another example, if the lidar receiver 1400 is operating in a relatively congested environment (e.g., on a city street), the potential value for Rmax may be relatively short (e.g., around 100 m) as the lidar receiver 1400 would likely only need to be capable of detecting targets at relatively short ranges. Also, for use cases where there is some a priori knowledge of what the range is to an object being targeted with a laser pulse shot, this range knowledge can influence the selection of Rmin and Rmax. This would be an example where accessing lidar point cloud data 1404 can help in the choice of suitable Rmin and Rmax values. Thus, if a given laser pulse shot is targeting an object having a known estimated range of 50 m, then this knowledge can drive the selection of Rmin, Rmax values for that shot to be values that encompass the 50 m range within a relatively tight tolerance (e.g., Rmin=25 m and Rmax=75 m).
A fourth constraint arises from the processing time needed to detect a return and compute return information (Tproc, as discussed above). If the receiver 1400 has N processors and all are busy processing previous returns, then the receiver 1400 must wait until one of the processors is free before processing the next return. This Tproc constraint can make it undesirable to simply set the detection intervals so that they coincide with their corresponding shot intervals (e.g., TT1(i)=T(i) and TT2(i)=T(i+1), where TT1(1)=T(1), TT2(1)=T(2), and so on). For example, imagine a scenario where the receiver 1400 includes two processors for load balancing purposes and where the shot spacing has a long delay between Shots 1 and 2 (say 100 μsec), and then a quick sequence of Shots 2, 3, and 4 (say with intershot spacing of 5 μsec). If Tproc is 2× realtime, then Processor A would need 200 μsec to process the return from Shot 1, and Processor B would need 10 pec to process the return from Shot 2. This means that Processor A would still be working on Shot 1 (and Processor B would still be working on Shot 2) when the return from Shot 3 reaches the receiver 1400. Accordingly, the system may want to tradeoff the detection interval for detecting the return from Shot 1 by using a smaller value for Rmax(1) so that there is a processor available to work on the return from Shot 3. Thus, the variable shot intervals that can be accommodated by the lidar system disclosed herein will often make it desirable to control at least some of the detection intervals so that they have durations that are different than the durations of the corresponding shot intervals, as discussed above.
Accommodating the Tproc constraint can be accomplished in different ways depending on the needs and desires of a practitioner. For example, under a first approach, the Rmax value for the processor that would be closest to finishing can be redefined to a lesser value so that processor is free exactly when the new shot is fired. In this case, the Rmin for the new shot can be set to zero. Under a second approach, we can keep Rmax the same for the last shot, and then set Rmin for the new shot to be exactly the time when the processor first frees up. Additional aspects of this constraint will be discussed in greater detail below.
A fifth constraint arises from the amount of time that the pixels 1804 of the array 1802 need to warm up when activated. This can be referred to as a settle time (Tsettle) for the pixels 1804 of the array 1802. When a given pixel 1804 is activated, it will not reliably measure incident light until the settle time passes, which is typically around 1 pec. This settle time effectively defines the average overall firing rate for a lidar system that uses example embodiments of the lidar receiver 1400 described herein. For example, if the firing rate of the lidar transmitter 100 is 5 million shots per second, the settle time would prevent the receiver 1400 from detecting returns from all of these shots because that would exceed the ability of the pixels 1804 to warmup sufficiently quickly for detecting returns from all of those shots. However, if the firing rate is only 100,000 shots per second, then the settle time would not be a limiting factor.
Multiplexer 2710 operates to read out a sensed signal from a desired pixel 1804 in accordance with a readout control signal 2708, where the readout control signal 2708 controls which of the multiplexer input lines are passed as output. Thus, by controlling the readout control signal 2708, the receiver 1400 can control which of the pixels 1804 are selected for passing its sensed signal as the return signal 1806.
The receiver controller 1810 includes logic 2700 that operates on the scheduled shot information 1812 to convert the scheduled shot information into data for use in controlling the photodetector circuit 1800. The scheduled shot information 1812 can include, for each shot, identifications of (1) a shot time (T(i)), (2) shot angles (e.g., an elevation angle, azimuth angle pair), (3) a minimum detection range value (Rmin(i)), and (4) a maximum detection range value (Rmax(i)). Logic 2700 converts this scheduled shot information into the following values used for controlling the photodetector circuit 1800:
-
- An identification of the pixel set that will be used to detect the return from the subject Shot (i). This identified pixel set is shown as P(i) by
FIG. 27 . - An identification of an activation time that will be used to define the time at which the amplifier(s) corresponding to the identified pixel set P(i) will be switched to a powered up state from a quiescent state. This identified activation time is shown as Ta(i) by
FIG. 27 . - An identification of the start collection time (TT1(i)) for the identified pixel set P(i)
- An identification of the stop collection time (TT2(i)) for the identified pixel set P(i)
- An identification of a deactivation time that will be used to define the time at which the amplifier(s) corresponding to the identified pixel set P(i) will be switched from the powered-up state to the quiescent state.
- An identification of the pixel set that will be used to detect the return from the subject Shot (i). This identified pixel set is shown as P(i) by
The logic 2700 can also pass the shot times T(i) as shown by
The values for P(i) can be determined from the shot angles in the scheduled shot information 1812 based on a mapping of shot angles to pixel sets, as discussed in the above-referenced and incorporated patents.
The values for Ta(i) can be determined so that the settle time for the identified pixel set P(i) will have passed by the time TT1(i) arrives so that P(i) will be ready to have collection started from it at time TT1(i). A practitioner has some flexibility in choosing how the logic 2700 will compute an appropriate value for Ta(i). For example, the logic 2700 can activate the next pixel set when the immediately previous shot is fired. That is, logic 2700 can set the value for Ta(i)=T(i−1), which is expected to give P(i) enough time to power up so that collection from it can begin at time TT1(i). However, in another example embodiment, the logic 2700 can set the value for Ta(i)=TT1(i)−Tsettle (or some time value between these two options).
The values for TT1(i) and TT2(ii) can be computed from the Rmin(i) and Rmax(i) values as discussed above.
The values for Td(i) can be determined so that Td(i) either equals TT2(i) or falls after TT2(i), preferably sufficiently close in time to TT2(i) so as to not unduly waste power. In choosing a suitable value for Td(i), the logic 2700 can examine the upcoming shots that are close in time to see if any of the pixels in P(i) will be needed for such upcoming shots. In such a circumstance, the logic 2700 may choose to leave the corresponding amplifier powered up. But, in an example embodiment where a practitioner wants to power down the amplifier(s) for a pixel set as soon as collection from that pixel set stops, then TT2(i) can be used as the deactivation time in place of a separate Td(i) value.
In the example of
Accordingly,
With an example embodiment, the system begins with the shot list and then chooses a suitable set of Rmin and Rmax values for each shot. Of the five constraints discussed above, all but the second and third constraints discussed above can be resolved based simply on the shot list, knowledge of Tproc, and knowledge of the number (N) of processors 2022 used for load balancing. For example, the third constraint would need access to additional information such as a map to be implemented; while the second constraint would need either probing of the atmosphere or access to weather information to ascertain how air quality might impact the physics of light propagation.
In an example embodiment discussed below for computing desired Rmin, Rmax values, the approach balances the first and fourth constraints using a mathematical framework, but it should be understood that this approach is also viable for balancing the other constraints as well.
The
As discussed above, a number of tradeoffs exist when selecting Rmin and Rmax values to use for detecting each shot. This is particularly the case when determining the detection interval in situations where there is little a priori knowledge about the target environment. Step 2202 of
The shot list 2200 that step 2202 operates on can be defined in any of a number of ways. For example, the shot list 2200 can be a fixed list of shots that is solved as a batch to compute the Rmin, Rmax values. In another example, the shot list 2200 can be defined as a shot pattern selected from a library of shot patterns. In this regard, the lidar system may maintain a library of different shot patterns, and the control circuit 106 can select an appropriate shot pattern based on defined criteria such as the environment or operational setting of the lidar system. For example, the library may include a desired default shot pattern for when a lidar-equipped vehicle is traveling on a highway at high speed, a desired default shot pattern for when a lidar-equipped vehicle is traveling on a highway at low speed, a desired default shot pattern for when a lidar-equipped vehicle is traveling in an urban environment with significant traffic, etc. Other shot patterns may include foviation patterns where shots are clustered at a higher densities near an area such as a road horizon and at lower densities elsewhere. Examples of using such shot pattern libraries are described in the above-referenced and incorporated U.S. Pat. App. Pub. 2020/0025887. Step 2202 can then operate to solve for suitable Rmin, Rmax values for each of the shots in the selected shot pattern.
With respect to step 2202, the plurality of criteria used for optimization might include, for example, minimizing the range offset from zero meters in front of the lidar receiver 1400, or minimizing the range offset from no less than “x” meters in front of the lidar receiver 1400 (where “x” is a selected preset value). The cost function might also include minimizing the maximum number of shots in the shot list that have a range beyond a certain preset range “xx”. In general, “x” and “xx” are adapted from point cloud information in a data adaptive fashion, based on detection of objects which the perception stack determines are worthy of further investigation. While the perception stack may in some cases operate at much slower time scales, the presets can be updated on a shot-by-shot basis.
The value of optimization of the range buffers (specifically controlling when to start and stop collection of each return) to include multiple range buffers per scan row is that this allows faster frame rates by minimizing dead time (namely, the time when data is not being collected for return detection). The parameters to be optimized, within constraints, include processing latency, start time, swath (stop time minus start time), and row angle offsets. Presets can include state space for the processor 2022, state space for the laser source 102 (dynamic model), and state space for the mirror 110.
Step 2202 solves equations for choosing range buffers (where examples of these equations are detailed below), and then generates the range buffer (Rmin and Rmax values) for each shot return. These operations are pre-shot-firing.
The outer bounds for Rmin and Rmax for each shot return can correspond to the pixel switching times TT1 and TT2, where TT1(k) can be set equal to TT2(k−1) and where TT2(k) can be set equal to TT1(k+1). It will often be the case where it is desirable for the lidar receiver 1400 to turn off the old pixel set at exactly the time the new pixel set is turned on.
A set of constraints used for a state space model can be described as follows, for a use case where two processors 2022 are employed to equally distribute the processing workload by handling alternating returns.
We assume that the signal processing circuit 1820 begins processing data the moment the initial data sample is available (namely, at time TT1(k)). Processor A cannot ingest more data until the processing for Return(k) is cleared, which we can define as Tproc seconds after the previous return detection was terminated. The same goes for Processor B. For ease of conception, we will define Tproc as being one half of the realtime rate of return detection (or faster). We will take TT1(k)=T(k) (where an Rmin of zero is the starting point) to simplify the discussion, although it should be understood that this need not be the case. With the TT1 values set equal to the fire times of their corresponding shots, this means that the shot T(k+1) cannot be fired until the system stops collecting samples from the last shot. In other words, T(k+1)>TT2(k).
Collection for the shot fired at T(k+2) cannot be started unless the previous shot processed by the same processor (e.g., the same even or odd parity if we assume the two processors 2022 alternate return collections). This leads to the second of our two inequalities:
If we put together these equations, using ≥≈>, adding relaxation constraints, and using S as a shift operator (where ST(k)=T(k+1), we get:
These inequalities can be re-expressed using matrix notation as shown by
The equation of
Suppose our shot list has shot times in a sequence of 1 μsec, 2 μsec, 98 μsec, 100 μsec, 102 μsec.
If we have two processors, each of which computes detections at 2x realtime, we might have as a solution (where we will assume in all cases that Rmin=0):
Processor A:
-
- Shot Time: 1 μsec pulse 98 μsec pulse
- Range Interval: Rmax=7.3 km Rmax=150 m
Processor B:
-
- Shot Time: 2 μsec pulse 100 μsec pulse
- Range Interval: Rmax=7.3 km Rmax=150 m
While this solution “works”, it should be understood that the two large Rmax values (>7 km) would “hog” the processors by making them unavailable for release to work on another return for awhile. This might not be ideal, and one might want to adjust the solution for a smaller Rmax value. There are an almost endless set of reasons why this is desirable because the processors are used for a variety of functions such as: intensity computation, range computation, velocity estimation, bounding box estimation etc.
Accordingly, the inventors also disclose an embodiment that combines mathematical optimization functions with some measure of value substitutions and updating in certain circumstances to arrive a better solution (an example of which is discussed below in connection with
As another example where range substitutions and optimization updates can improve the solution, suppose the shot list obtained for a particular scenario fires at the following times in units of microseconds, at elevation angle shown respectively:
-
- Shot Time (pec)={12 40 70 86 101 121}
- Elevation-Angle (degrees)={−10,−10,0,0,0,0}
Using the inequality for TT2 above and picking the largest detection interval at each shot, the result for the first four shots is:
TT2(1)≤40,TT2(2)≤63,TT2(3)≤85.5,TT2(4)≤101
This maps to detection intervals (in μsec of time) of:
{TT2(k)−T(k)}k=1,2,3,4={28,23,15.5,15}
The sub-optimal nature of this solution arises because it yields large detection intervals at low elevations (where a long detection interval is not needed) and a small detection intervals at the horizon (where elevation angle is zero degrees, which is where a long detection interval is more desirable).
As a solution to this issue,
The control circuit 106 can also maintain a list 2402 of range points with desired detection intervals. For example, the list 2402 can identify various shot angles that will intersect with the ground within some defined distance from the lidar system (e.g., some nominally short distance). For a lidar-equipped vehicle, examples of such shot angles would be for shots where the elevation angle is low and expected to be pointing at the road within some defined distance. For these shot angles, the detection interval corresponding to Rmax need not be a large value because it will be known that the shot will hit the ground within the defined distance. Accordingly, for these low elevation angles, the list 2402 can define a desired Rmax or TT2 value that reflects the expected distance to ground. As another example, the list 2402 can identify shot angles that lie off the motion path of the lidar system. For example, for a lidar-equipped vehicle, it can be expected that azimuth angles that are large in absolute value will be looking well off to the side of the vehicle. For such azimuth angles, the system may not be concerned about potential targets that are far away because they do not represent collision threats. Accordingly, for these large absolute value azimuth angles, the list 2402 can define a desired Rmax or TT2 value that reflects the shorter range of potential targets that would be of interest. Range segmentations that can be employed by list 2402 may include (1) shot angles linked to desired Rmax or TT2 values corresponding to 0-50 m, (2) shot angles linked to desired Rmax or TT2 values corresponding to 50-150 m, and (3) shot angles linked to desired Rmax or TT2 values corresponding to 150-300 m.
Then, at step 2404, the control circuit 106 can compare the assigned detection interval solutions produced by step 2202 with the list 2402. If there are any shots with assigned detection interval solutions that fall outside the desired detection intervals from list 2402, the control circuit 106 can then swap out the assigned detection interval for the desired detection interval from list 2402 (for each such shot). Thus, step 2404 will replace one or more of the assigned detection intervals for one or more shots with the desired detection intervals from the list 2402.
The control circuit 106 can then proceed to step 2406 where it re-assigns detection intervals to the shots that were not altered by step 2404. That is, the shots that did not have their detection intervals swapped out at step 2404 can have their detection intervals re-computed using the models of
For example, we can re-consider the toy example from above in the context of the
TT2(1)=T(1)+0.3=12.3
TT2(2)=40.3
This means that both processors 2022 are free when Shot 3 is taken at time 70 (where Shot 3 is the first shot at the horizon elevation, whose detection interval we wish to make long). The
This yields the following for the toy example with respect to
-
- Shot Time (μsec)={12 40 70 86 101 121}
- Elevation-Angle (degrees)={−10,−10,0,0,0,0}
- Detection Intervals: {TT2(k)−T(k)}k=1,2,3,4={0.3, 0.3, 15.5, 17.5}
We can see that the
Lidar System Deployment:
The inventors further note that, in an example embodiment, the lidar receiver 1400 and the lidar transmitter 100 are deployed in the lidar system in a bistatic architecture. With the bistatic architecture, there is a spatial offset of the field of view for the lidar transmitter 100 relative to the field of view for the lidar receiver 1400. This spatial separation provides effective immunity from flashes and first surface reflections that arise when a laser pulse shot is fired. For example, an activated pixel cluster of the array 1802 can be used to detect returns at the same time that the lidar transmitter 100 fires a laser pulse shot 122 because the spatial separation prevents the flash from the newly fired laser pulse shot 122 from blinding the activated pixel cluster. Similarly, the spatial separation also prevents the receiver 1400 from being blinded by reflections from surfaces extremely close to the lidar system such as glass or other transparent material that might be located at or extremely close to the egress point for the fired laser pulse shot 122. An additional benefit that arises from this immunity to shot flashes and nearby first surface reflections is that it permits the bistatic lidar system to be positioned in advantageous locations. For example, in an automotive or other vehicle use case as shown by
Multi-Channel Readout for Returns:
For another example embodiment, it should be understood that the detection timing constraint discussed above where the detection intervals are non-overlapping can be removed if a practitioner chooses to deploy multiple readout channels as part of the photodetector circuitry 1800, where these multiple readout channels are capable of separately reading the signals sensed by different activated pixel clusters at the same time.
Pulse Bursts to Resolve Angle to Target:
In accordance with another example embodiment, the lidar system can fire pulse bursts. The use of pulse bursts can provide greater precision in resolving an angle to a detected object in the field of view, as explained in greater detail below. With a pulse burst, the lidar transmitter 100 fires multiple laser pulse shots with short time separations between the shots.
The lidar system can leverage this small angular separation between pulses 2802 and 2804 to more precisely resolve the shot angle to an object detected in the field of view. When the lidar system detects a return from a laser pulse shot fired at a given shot angle, there will be some level of uncertainty about the precise shot angle to the object from which the return was received. This is because there will be a spreading of pulse energy as the laser pulse shot propagates toward the object. If the object is located precisely at the shot angle, the maximum amount of shot energy will strike the object and reflect back to the lidar receiver 1400. However, if the object is located slightly off the shot angle, it may still receive some of the energy of the laser pulse shot and reflect it back to the lidar receiver 1400 to produce a return detection. Accordingly, there is some level of angular imprecision when detecting a return from a single laser pulse shot. This angular imprecision is due to the fact that the intensity is unknown because, as is usually the case, we cannot separate the contribution of the reduced energy from intensity weakness versus angle offset. For example if we “expect” a 1 nJ pulse return but instead get 0.8 nJ, we do not know if (1) our object is 80% of the anticipated reflectivity or (2) the reflectivity is as we anticipated, but the angle offset decremented the received value by to 80% of the original value. The use of the pulse burst as described herein can provide the system with the additional measurements to reduce this uncertainty.
As noted, the use of pulse bursts can help resolve much of this angular imprecision.
The lidar system can then use the returns from the initial laser pulse shot 3000 and the pulse burst 2800 to more precisely resolve the angle to the detected object. In this context, the initial laser pulse shot 3000 and the pulses 2802 and 2804 can be fired sufficiently quickly relative to the closing speed of the object that any change in range to the object during the time from the initial laser pulse shot to the shot for the second pulse 2804 will be negligible; in which case the range value for the returns from all three shots can be deemed equal. Given the preferred operational ranges for mirror scan frequency as discussed above and typically expected velocities for objects in the field of view, it can be expected that this assumption of negligible changes in range for the object over the course of the three laser pulses shots will be accurate. However, in situations where the time duration covered by the three laser pulse shots is sufficiently long (relative to the object's closing speed) that the change in range for the object over this time is not negligible, the pulse burst can still help resolve angular precision to the object if the object's closing speed is known. With knowledge of object speed, range offsets can be determined, and the effects of object motion can be removed from the angular resolution process. Similarly, if the object is relatively stationary, but the lidar system itself is moving at a high rate of speed, knowledge of the lidar system's speed can be used to offset range changes to allow for higher precision angular resolution via pulse bursts. As an example, suppose a target has a closing speed of 50 m/s (corresponding to two vehicles on approach at 100 kph each). Suppose the time between pulses in a dual pulse burst is 1 msec. In that time the object has moved 5 cm. Now suppose in the first shot, at angle −0.05 degrees, we get two returns, at 100 m and 101.15 m, and in the second shot at angle +0.05 degrees, we get two returns at 102 m and 101.1 m. We proceed by first imposing a range offset on the first shot, based in our knowledge that closing speed imposes a shift of 5 cm, so now we are comparing: {99.95 m, 101.1 m} to {101.95 m, 101.1 m}. In this instance, clearly the second element in each shot corresponds to the same target, while the first element corresponds to some other object present in each beam solely.
At step 3100 of
From the return detected at step 3100, the system will know (1) a range to the detected target, (2) the initial shot angle for the detected target, and (3) the return energy from the initial pulse. This target can then be interrogated with a pulse burst 2800 to better resolve the angle to the target, in which case the lidar transmitter 100 can switch from the baseline scan pattern to a pulse burst mode where the pulse burst 2800 is fired at the detected target. With the pulse burst, the time separation between laser pulse shots will be significantly shorter than the time separation between laser pulse shots when operating according to the baseline scan pattern. This decrease in time separation between pulse shots for the pulse burst mode may be an increase in a range of 10× to 100× relative time separation between pulse shots for the baseline scan mode. Thus, in an example where the baseline scan pattern separates laser pulse shots by 10 μsec, the pulse burst mode can then separate the pulses 2802 and 2804 of the pulse burst by 100 nsec for an example where a 100× reduction in pulse separation is achieved. In another example, where the baseline scan pattern separates laser pulse shots by 2 μsec, a 10× factor reduction leads to a time separation between pulses 2802 and 2804 of the pulse burst 2800 equal to 200 ns.
The decision to further interrogate the target can be made by control circuit 106. For example, in an automotive use case, the control circuit 106 can communicate with the vehicle's motion planning control system, and the motion planning control system may include control laws that decide which targets are worthy of further interrogation. For example, if the motion planning control system predicts that an incoming target has a sufficiently high probability of posing a collision threat on a current motion planning trajectory, the target can be slated for further interrogation via a pulse burst. Examples of coordination between a lidar system and a vehicle motion planning control system are described in U.S. Pat. No. 10,495,757, the entire disclosure of which is incorporated herein by reference.
At step 3102, the control circuit 106 specifies the shot angles and energies to use for the pulses 2802 and 2804 of the pulse burst 2800. The shot angle and energy for pulse 2802 can be specified as μ0 and E0 respectively. The shot angle and energy for pulse 2804 can be specified as μ1 and E1 respectively. Shot angles μ0 and μ1 can be centered around the initial shot angle μinitial so that they effectively surround the initial shot angle μinitial. A number of factors can impact the choices available for specifying the shot angles for the pulses 2802 and 2804 of the pulse burst. For example, the specified shot angles should be selected so that the shot angles for pulses 2802 and 2804 are expected to stay on the target. Accordingly, the specified shot angles should not be too far off the initial shot angle to reduce the risk of missing the target with pulses 2802 and 2804. Another factor that can affect the choice of specified shot angles for pulses 2802 and 2804 would be the angular spacing of the shot list according to the baseline scan pattern. In this regard, the specified shot angles should be less than the angular spacing of the baseline scan pattern because the goal of the pulse burst is to add angular precision to the target than the baseline scan pattern would otherwise provide. At the other end of the spectrum, the minimum angular spacing can be impacted by the ability to discriminate angular resolution above noise levels. In this regard, a likely minimum for the specified shot angles relative to the initial shot angle would be around plus or minus 0.025 degrees as smaller angular spacing would erode the ability to rely on the conclusions that can be drawn from the angle refinements due to noise. In consideration of these factors, in an example embodiment, the shot angles for pulses 2802 and 2804 can be a value that is a range of around plus or minus 0.025 degrees to plus or minus 0.1 degrees relative to the initial shot angle. The choice of shot energies E0 and E1 for the pulses 2802 and 2804 of the pulse burst 2800 can be based on the expected range to the target (where the energies are set sufficiently high to be able to detect returns from the target at the expected range).
The control circuit 106 can then, at step 3104, schedule for this pulse burst 2800 by inserting shots for μ0 and μi for a subsequent scan line (e.g., the next return scan from the scan that produced the detection at step 3100). If this subsequent scan line previously had a shot for μinitial scheduled, step 3104 can also remove the shot for μinitial from the schedule. In a preferred embodiment, the pulse burst 2800 is scheduled to be fired between 30 μsec and 100 μsec after the initial laser pulse shot is fired.
The control circuit 106 can then evaluate whether the planned schedule for the specified pulse burst 2800 can be accomplished during the subsequent scan line in view of the laser energy model 108 and the mirror motion model 308. At step 3106, the control circuit 106 uses the mirror motion model 308 to find the time difference between pulses 2802 and 2804 of the specified pulse burst 2800. It should be understood that this time difference would correspond to the value tsep discussed above with respect to
Thus, at step 3108, the control circuit 106 uses the laser energy model 108 and the determined time difference from step 3106 to simulate the energy levels for pulses 2802 and 2804 according to the planned schedule. The control circuit 106 can use the computed time difference from step 316 as the value of the time duration δ that represents the time between the firing of pulse 2802 and the firing of pulse 2804. Accordingly, the laser energy model 108 can be used to determine the energy levels that the lidar system can produce for pulses 2802 and 2804 according to the planned schedule.
At step 3110, the control circuit 106 compares these determined energy levels with the specified energy levels of E0 and E1 for pulses 2802 and 2804 respectively. If the determined energy levels for pulses 2802 and 2804 satisfy E0 and E1, then the process flow can proceed to step 3112. At step 3112, the lidar transmitter 100 fires the specified pulse burst 2800 according to the planned schedule. However, if the determined energy level for pulse 2802 does not satisfy E0 and/or the determined energy level for pulse 2804 does not satisfy E1, then the process flow would proceed from step 3110 to step 3114. At step 3114, the control circuit 106 updates the planned scheduled for the specified pulse burst 2800 by deferring the pulse burst 2800 to a subsequent scan line (e.g., the next scan line after the scan line defined at step 3104 and evaluated at steps 3106-3110). It should be understood that the order of pulses 2802 and 2804 can be flipped as a result of the deferral in view of the reverse scan direction exhibited by the next scan line. A practitioner may choose to make this next scan line a scan line set aside specially for the pulse burst to ensure that the laser source 102 will have sufficient energy available for E0 and E1. From step 3114, the process flow can return to step 3108 where the laser energy model 108 is consulted to simulate the energy levels for the newly scheduled pulse burst 2800. In this fashion, the control circuit 106 will eventually find the proper time to fire the pulse burst at step 3112.
Once the pulse burst 2800 has been fired, the lidar receiver 1400 can then process the returns from this pulse burst 2800 to more precisely resolve the angle to target.
The
At step 3202, the lidar receiver 1400 then compares the return energies for the initial pulse (known from step 3100), the first pulse 2802 of the pulse burst 2800 (known from step 3200), and the second pulse 2804 of the pulse burst (known from step 3200). If the return energy from the initial pulse is the largest, this means that the initial shot angle serves as a good approximation of the angle to the target and can be used to reflect the angle to the target (step 3204). If the return energy from the first pulse 2802 is the largest, this means that the lidar receiver can resolve the target angle in the direction of the shot angle for the first pulse 2802 (μ0) (see step 3206). As an example, the lidar receiver can use the first pulse shot angle μ0 as the target angle (or some value between the first pulse shot angle μ0 and the initial shot angle μinitial). If the return energy from the second pulse 2804 is the largest, this means that the lidar receiver can resolve the target angle in the direction of the shot angle for the second pulse 2804 (μ1) (see step 3208). As an example, the lidar receiver can use the second pulse shot angle μ1 as the target angle (or some value between the first pulse shot angle μ1 and the initial shot angle μinitial).
If still more precision is desired for resolving the angle to the target, a technique such as the process of
The lidar receiver 1400 can leverage the relationship shown by the plot of
However, while the shape of the
To translate the
At step 3216, the lidar receiver 1400 can then resolve the angle to the target based on the shot angle of the initial laser pulse shot and the determined offset angle from step 3214. In this regard, the refined angle to target can be computed as the sum of the initial shot angle (μinitial) and the determined offset angle.
With
Furthermore, the three returns may be used by the system to update velocity information. For example, if the ranges are offset by an amount exceeding that anticipated variation from random noise fluctuation, then one might attribute this difference to the presence of a true range offset. The lidar receiver 1400 can then apply this range offset, in reverse of the previously described range alignment process, to derive velocity information for the target.
Variable Laser Seed Energy to Control Pulse Burst Energies:
The examples of
While one can adjust the pump energy over time, this is not a fast enough process for pulse bursts (where typical switching times will be on the order of many microseconds). This is because the pulse burst must be fired quickly to remain consistent with the mirror speed. For example a typical mirror velocity with respect to example embodiments discussed above is a degree per microsecond, and a typical pulse burst angle offset is 0.1 degrees. This translates into a need to fire the shots of the pulse burst at 100 nanosecond timescales.
To accommodate this need, the control circuit 106 can change the energy in the variable seed laser 3500 for the shots of the pulse burst.
Suppose we have a pump laser 118 that produces 1 W of energy in the optical amplifier 116 (which might be a doped fiber laser amplifier for example). If we fire two shots spaced by 100 nanoseconds, and we have a gain factor of α in the fiber amplifier 116; then the energy in each pulse shot of the pulse burst, after a prior delay of T=1 μsec with stored energy E=1μJ is given in units of μJ by:
E1=αE+(1−α)T=1
E2=(1−α)(0.1)+1=1.1−0.1α
It should be understood that without adjustable control over the seed energy, the laser source 102 cannot make the two pulses in a pulse burst have equal energy due to the time constraints of charging the laser balanced against the short time interval between pulses of the pulse burst. But, we can equalize the pulse energies in the pulse burst if we can change the gain factor α. In this simple toy example α=1.0.
Physically changing the gain for fixed pump power is achieved by adjusting the seed energy. The reason such adjustment of the seed energy adjusts the gain is that the role of the seed laser 3500 is to stimulate the electrons in the excited energy states in the fiber amplifier 116 to collapse to the ground state. The more energy in the seed, then the stronger the electric field and the more likely that ground state collapse-induced photon emission occurs.
The expression below defines the relationship between pulse energy and seed gain adjustments as follows:
In this equation:
-
- n is the index associated with the n-th shot being fired.
- tn is the time difference between shots at index n−1 and index n.
- E is the energy in the shot corresponding to its index.
- k is a “gain factor”, and it corresponds to the gain term when the seed pulse energy is set to the “normal” level.
- Anew and Aold are the current and prior seed gain levels (corresponding to different seed pulse energy levels for a fixed pump energy level). The values for A can range from Ak being (nearly) zero to 1. The reason for the [0,1] range is as follows.
- When the gain Ak is 1, the entire energy in the optical amplifier 116 is expunged (En=tn).
- When Ak˜0 the energy fired by the laser source 102 no longer depends on the charge time and is roughly constant. Note that the value of A can be bigger or smaller than unity depending on need, as long as the value of Ak lies in these bounds.
Note that when Anew and Aold are both equal to 1 we get:
En=En−1(1−k)+ktn
Note that this is same as in laser energy model 108 discussed above for the expression EF(t+δ), but where tn is used in place of δ and where k is used in place of a. But, for the purpose of explaining the variable seed gain, it is useful and makes algebra simpler to work with this new notation.
We can assure that the seed energy is varied to achieve the two shots in the pulse burst having equal energy. We will describe this process in mathematical detail below.
To start, let the energy in the initial pulse shot (the shot prior to the pulse burst) be E. Next, let tsep be the time between the pulse shots of the pulse burst, and let T be the time before the first pulse shot of the pulse burst.
We will pursue the math using a toy example. To begin we assume when we fire at time T, we had full pump level (Aold=1). Moreover, we can set values for T, tsep, E, and k as follows:
Next, let x=Anew and y=A′new, where Anew and A′new denote the seed gain at the first and second pulse shots of the pulse burst respectively. We can also denote the corresponding energies for the first and second pulse shots of the pulse burst as E1st and E2nd respectively. Using the expression for En discussed above, this yields:
We then seek to make the energies equal:
This yields a quadratic formula that gives us the expression for the seed gain:
Here, we assume we wish to keep the generated pulse energy after optical amplification equal to the original (at 10× less charge time), and the solution is:
As expected the seed gain, in the second term, is larger than the first. Notice that in both cases the seed gain is physically realizable (with a 1 W laser, we can never get more than t n extra energy from charge time tn, and in our case we get 2/7 and 0.9 respectively).
In practice, it is often desirable to simply simulate the laser energy model 108 and then find the desired seed gains that result. The toy example discussed above simply shows the behavior of this simulation for a particular case. The control circuit 106 can thus provide seed energy control signals 3502 to the variable seed laser to control the values for A in a manner that achieves a desired regulation of the energy levels in the pulses of the pulse burst. As discussed above, this regulation can be equalized pulse energy. However, it should be understood that this need not necessarily be the case if desired by a practitioner.
Matched Filters to Determine Target Obliquity:
In accordance with another example embodiment, the lidar receiver can employ multiple matched filters to determine target characteristics such as target obliquity and/or target retro-reflectivity.
The example of
In the example of
Accordingly, due to the pulse stretching that is caused by the obliquity of the target, the lidar receiver 1400 can determine target obliquity by being able to detect pulse stretching in the return pulse. To facilitate such detection, the lidar receiver 1400 can employ matched filters that are tuned to detect defined pulse shapes such as stretched pulse returns.
A filter bank of different matched filters 3610 can process the pulse return samples 2004 that represent the return signal 1806 as digitized by an analog-to-digital converter (ADC). These samples 2004 can be stored in a cache memory that serves as part of signal processing circuit 1820 to provide for high speed access to such samples for processing. Each matched filter 3610 can be tuned with a different pulse shape that corresponds to a different amount of target obliquity. For example, Matched Filter 1 in
A comparator 3612 can then compare the responses of the different matched filters 3610 to the pulse return samples 2004. The matched filter 3610 which produces the largest response can be classified by logic 3614 as the matched filter that most closely corresponds to the target's obliquity. Logic 3614 can thus determine the target's obliquity as the obliquity which corresponds to the matched filter 3610 with the largest response. Accordingly, in an example where the lidar receiver 1400 employs two matched filters 3610 (e.g., where N=2 in
In an example embodiment, the matched filters 3610 can be deployed in parallel on the signal processing circuit 1820 so that the pulse return samples 2004 are tested in parallel against each of the matched filters 3610. Such parallel deployment of multiple matched filters 3610 can allow the lidar receiver 1400 to determine target obliquity at low latency and high throughput. Parallelized compute resources such as the parallelized logic available on field programmable gate arrays (FPGAs) and/or application-specific integrated circuits (ASICs) can be used to implement the matched filter processing shown by
At step 3700 of
Thus, the stretch factor f denotes the length of the square pulse, where longer pulse lengths will have the effect of reducing the pulse's magnitude.
At step 3702, the processor convolves a reference pulse (Pref) with the selected SFBP(i). This convolution operation, which can be performed in the digital domain on samples that represent SFBP(i) and Pref, operates to generate a pulse reflection reference shape PRRS(i). The reference pulse Pref is the pulse shape that is exhibited by the transmitted laser pulse 3604, and the pulse reflection reference shape (PRRS(i)) is the pulse shape that would be exhibited by the reflection of the transmitted laser pulse 3604 from a target at the desired amount of obliquity.
At step 3704, the processor stores PRRS(i) in a register for the subject matched filter 3610. This has the effect of tuning the subject matched filter to detect pulse reflections of the shape exhibited by PRRS(i), and thus detect reflections from targets at the subject amount of obliquity. Thus, the process flow of
In the example of
It should be understood that the signal processing circuit 1820 of
The receiver controller 1810 can operate to tune the matched filters 3610 to their corresponding obliquities using the technique of
Orienting the Lidar System to a Frame of Reference:
The lidar system can advantageously use the determined target obliquity in any of a number of fashions. For example, in a particular advantageous case, the determined target obliquity can be used to orient the lidar system to a frame of reference as the lidar system moves through space. In this regard, the determined target obliquity can allow the lidar system to keep track of where the horizon is located, even as the lidar system may tilt_upward or downward (e.g., as would be caused by bumps in the road that are encountered by a lidar-equipped vehicle). By tracking how the lidar system's field of view shifts in response to such tilting, the lidar system can compute offsets that map data in the point cloud and/or scheduled shots to the shifted field of view. To accomplish this, the lidar receiver can determine the obliquity of fiducials in the field of view, such as a road surface or a street sign. For example, a street sign can be treated as being oriented perpendicular to the horizon.
If there is an object 3914 such as (1) a car moving toward the vehicle 3902 in the vehicle's lane or away from the vehicle 3902 (ignoring microstructure on the object 3914 such as curved facets, etc.) or (2) a vertical sign, such an object 3914 will present as being non-oblique when the vehicle 3900 is oriented as shown by
Now, suppose the vehicle 3900 of
The relationships between ra, beam width W, elevation angle β, the height h, and the pulse stretch PS1 can be expressed as:
With these relationships, we expect the pulse stretching to be unbounded when β=0. That is, when the shot is fired at the horizon, the pulse will not reflect off the road surface 3902. Furthermore, the pulse stretching will be zero when β=+/−90 degrees; which means that if the pulse were to be fired straight_down (or up, say indoors at a wall), that pulse would be perpendicular to the flat road surface 3902.
In
If the lidar system in the orientation of
In the example of
At step 3950, the lidar receiver 1400 measures the pulse stretch (PS2) for a laser pulse shot in the ground plane at elevation shot angle β using the obliquity of the ground plane (which can be determined using the techniques discussed above in connection with
PS˜√{square root over (1+2ln(2)f2.)}
Here we use the fact that Gaussian pulse variance sums in quadrature, and HWHM (half width half max) for a Gaussian is given 2 ln(2) times the variance, and f is the standard Gaussian scale factor, with the initial pulse width HWHM normalized to unity.
Thus, when the stretch factor f is zero (indicating that the target is not oblique), then the pulse stretch PS is 1, which indicates no stretching. By contrast, when the stretch factor f is 2 (f2=4), this results in the pulse stretch being around 2.6, which roughly corresponds to a 3× pulse stretching relative to the unstretched pulse.
At step 3952, the lidar receiver 1400 computes the angle Ψ based on the measured pulse stretch PS2. To accomplish this, the lidar receiver 1400 can solve the following quadratic equation, where the solution Ψ has a real positive root (which serves as the pitch angle of the vehicle 3900):
This pitch angle Ψ also serves as a correction angle that can be used to adjust scheduled shot angles and/or point cloud return data to accommodate the tilted field of view (step 3954). For example, if the lidar system was supposed to fire a laser pulse shot at an elevation angle of 0 degrees when the vehicle 3900 is tilted below the horizon 3920 at the pitch angle of Ψ, then the lidar system can correct that shot to an elevation angle of Ψ degrees above the lidar normal 3910.
Similarly, if the point cloud has tracked a particular object at an elevation angle of (say) 15 degrees above horizon 3920, then the lidar system could adjust its knowledge so that the elevation angle to that target is 15+Ψ degrees when the vehicle 3900 is tilted as shown by
At step 3960, the lidar receiver 1400 measures the pulse stretch (PS2) for a laser pulse shot fired at object 3914 at elevation shot angle β using the obliquity of the object (which can be determined using the techniques discussed above in connection with
At step 3962, the lidar receiver 1400 computes the angle Ψ based on the measured pulse stretch PS2 and the measured range rb. To accomplish this, the lidar receiver 1400 can use the following expression to solve for the angle Ψ:
Step 3954 can then be performed to adjust shot angles and/or point cloud angles based on the correction angle Ψ while the vehicle is tilted as shown by
When performing a point cloud adjustment as part of step 3954 for
A primary use case for horizon tracking in order to keep laser pulse shots steady in absolute elevation coordinates is for long range detection on highways or other roads where lidar-equipped vehicles are moving at relatively fast speeds. In this context, we do not anticipate major “bumps” in the road (if there is debris (or a pothole) on the road, we generally expect the vehicle to detect and avoid in most cases). Thus, for most highway travel or the like, we expect the elevation and vehicle tilt to oscillate at a fairly slow rate due to the vehicle's suspension system dampening motion for the comfort of passengers during route acceleration.
A typical acceleration is 3 degrees per second squared, and a typical frame rate is 10 Hz. In this context, we can expect the elevation will change by around 0.3 degrees from frame to frame. This is on the order of several beamwidths (W). This means that the reported shot elevations will already drift considerably within the current frame before the next frame is shot. With obliquity detection and estimation using matched filters 3610, the lidar system can orient to the horizon 3920 sufficiently fast to prevent such drift.
As an example, suppose with a 10 Hz frame rate, the lidar system has 100 rows to scan, which implies 1 msec of time spent on each row. If we use the scan time on that row to predict where the horizon will be on the next row scan, the lidar system only needs to predict ahead by 1 msec. For the use case described above, this maps to 0.003 degrees of motion. This amount is negligible, suggesting that we can treat the elevation drift as negligible if we update on a row by row basis.
As the lidar system tracks the horizon 3920, the lidar system may step by different amounts from row scan to row scan. For example, suppose we originally have elevation step sizes of 0.1 degrees so that the lidar system scans {0.1 degrees, 0.2 degrees, 0.3 degrees, . . . , 1 degree} for 10 row scans over 10 msec, with a stable horizon 3920. With horizon correction, we would have elevation step sizes after correction of {0.1003 degrees, 0.2006 degrees, 0.3009 degrees, 1.03 degrees}. It can be seen that this is a very mild correction, and a practitioner can likely afford to only adjust/correct after every 10 rows or so. A remaining consideration can be eye safety. But, the current criteria for eye safety is the integral across a 2 degree sector, so the slight adjustments described herein will have little to no impact on eye safety. More specifically, as long as there is a few percent margin in terms of dosage, the lidar system will remain eye safe after horizon correction.
Another consideration for horizon tracking to correct elevation shot angles arises from signal to noise ratio (SNR) considerations. High SNR is desired when determining target obliquity so that horizon estimations are accurate. To accomplish such high SNR, it is desirable that the laser pulse shots that are used for purposes of finding the horizon 3920 exhibit relatively high shot energy. For example, the following expression relates a desired tolerance for tracking the orientation of the lidar system in terms of variables such as SNR, the correction angle Ψ, the pulse stretch PS, and beamwidth W:
Thus, if we wish to track the horizon within 0.1 degrees and we have a 3 nsec unstretched reference pulse, where the shot is fired 12 degrees below the horizon with a lidar system mounted 1.5 m above the ground with a beam divergence of 0.1 degrees, the SNR that is desired would be around 14. This presents only a modest demand on frame rate since the lidar system will only need a few dedicated shots (whether targeting the road surface or a sign) to solve for the horizon 3920 using the techniques described herein.
Further still, while the matched filter examples described herein focus on target obliquity in terms of elevation, it should be understood that the same principles apply in the azimuth direction. As such, the techniques described herein can also be used to detect obliquity in the azimuth direction.
Matched Filters to Determine Target Retro-Reflectivity
The matched filter techniques discussed above can also be used to determine a retro-reflectivity characteristic of the target. Highly retro-reflective targets can produce high magnitude pulse returns that may overwhelm the lidar receiver 1400 (either by exceeding the linear regime of the photodetector array 1802 or by exceeding the bit range of the ADC 3800). Such high magnitude pulse returns can then manifest themselves as a pulse return shape 4020 that exhibits a vertical clipping 4022, as shown by
For example, as shown by
Moreover, it should be understood that the retro-reflectivity characterization can be combined with the target obliquity determination by first computing P(t) as the stretched PRRS(i) shape in accordance with the
Lens Selection in a Multi-Lens Lidar Receiver:
In accordance with another example embodiment, the lidar receiver 1400 can employ multiple lenses that exhibit different fields of view. Examples of such lidar receivers 1400 are shown by
For example,
Suppose the respective fields of view for the wide field of view lens 4102 and the narrow field of view lens 4104 are the same in both axes (e.g., the azimuth and elevation extents are the same (such as +/−30 degrees in both dimensions). In this case, standard lenses can be used for lenses 4102 and 4104, where the standard lenses are designed for the wavelength of the laser pulses used by the lidar system. A high power lens (e.g., a low f #) would be preferred so that the lidar receiver gets the largest aperture for a given field of view. Examples of vendors for such lenses can include Edmond Optics and Thor Labs. If the respective fields of view for the wide field of view lens 4102 and the narrow field of view lens 4104 are asymmetric in azimuth and elevation, then anamorphic lenses would be preferred, particularly if the photodetector array 1802 has a square array of pixels 1804. Examples of vendors for such anamorphic lenses include Edmond Optics as well as Shafter+Kirchhoff.
The receive optics 4100 for the example of
Lenses 4102 and 4104 can be positioned in a bistatic relationship with each other. To route incident light passed by these lenses to a common photodetector circuit 1800, the optical path from lens 4102 or lens 4104 to the photodetector circuit 1800 may include a mirror 4118 that re-directs the light passed by such lens toward the photodetector array 1802 of the photodetector circuit 1800. In the example of
While not shown by
The photodetector circuit 1800 can operate as discussed above to sense incident light on its photodetector array 1802 to generate a return signal 1806 for processing by the signal processing circuit 1820 to detect a return. As noted above, individual pixels 1804 of the photodetector array 1802 can be turned on/off for detecting particular returns based on where the laser pulse shots corresponding to those returns were targeted in the field of view. This control of which pixels 1804 are activated and read out for return processing can be defined by the receiver controller 1810 via control signal 1814 as discussed above (e.g., see
At step 4202, the receiver controller 1810 compares the read shot coordinates with the coverage zone for the narrow field of view lens 4104. As shown by
A practitioner may choose to position the narrow field of view coverage zone 4212 around an area within the field of view 4210 that is expected to encompass the highest priority coverage zone. For example, with a lidar system deployed on automobiles such as sedans, sport utility vehicles (SUVs), etc., the narrow field of view coverage zone 4212 can be centered on the road horizon (or the upper bound of coverage zone 4212 can lie just above the road horizon) while looking relatively straight forward in the vehicle's driving lane. This assumes that the lidar-equipped vehicle is scanning for vehicles or objects of roughly the same height as itself. However, for other lidar applications, such as where the lidar system is deployed on large trucks (e.g., tractor-trailer trucks, semis (semi-trailer trucks, semi-tractor trucks), etc.), it will often be the case where the lidar system is positioned much higher and there will be a need to look downward to find objects of interest (such as shorter automobiles (e.g., sedans) that may be sharing the roadway. In such a case, it would be desirable for the narrow field of view coverage zone 4212 to occupy a lower portion of field of view 4210 (rather than a central portion of field of view 4210).
While the example of
A practitioner may want to adjust the positioning of lens 4104 at the time of manufacture (e.g., at the factory) and/or deployment in the field (e.g. deployment on a vehicle) so as to optimize the narrow field of view 4108 for the lidar system to a particular use case. Thus, if the lidar receiver 1400 is to be deployed in a sedan, the lens 4104 can be positioned as shown by
Moreover, while
Returning to
Another scenario where it may be beneficial to choose to receive, via the wide field of view lens 4102, a return from a shot that targets the narrow field of view coverage zone 4212 would be situations where the narrow field of view lens 4104 and corresponding pixel(s) 1804 of the photodetector circuit 1800 are unduly compromised by interference.
Yet another scenario where it may be desirable to choose to receive, via the wide field of view lens 4102, a return from a shot that targets the narrow field of view coverage zone 4212 can be when the narrow field of view lens 4102 is currently assigned to collection on a long range shot and it is desired to also collect a return on a short range shot (both in coverage zone 4212) while waiting for the long range shot to come back in. In such a scenario, the return from the short range shot can be received via the wide field of view lens 4102 even though that shot targeted an object in coverage zone 4212.
Further still, for shots that target the narrow field of view coverage zone 4212, it may be desirable to process separate return signals from both the wide field of view lens 4102 and the narrow field of view lens 4104 to provide parallax correction, which can improve angular resolution to targets due to the spatial offsets of lenses 4102 and 4104 relative to each other. In this case, the signal processing circuit 1820 would process both a first return signal that is derived from the incident light passed by the wide field of view lens 4102 and a second return signal that is derived from the incident light passed by the narrow field of view lens 4104.
At step 4204, the receiver controller 1810 selects whether to use the narrow field of view lens 4104 or the wide field of view lens 4102 for return detection based on the comparison at step 4202. Thus, if the shot coordinates for the upcoming laser pulse shot fall within coverage zone 4212, then the receiver controller 1810 can select lens 4104 at step 4204; otherwise, the receiver controller 1810 can select lens 4102 at step 4202. However, as noted above and discussed in greater detail below, in some embodiments the receiver controller 1810 may select both lenses 4102 and 4104, in which case downstream signal processing can resolve which of the lenses should be used for return detection (where in some situations both lenses may be used for return detection with respect to a given laser pulse shot).
At step 4206, the receiver controller 1810 controls the optical switches 4112 and 4114 based on the selection made at step 4204. Thus, if lens 4202 was selected, then optical switch 4112 is opened (so that optical switch 4112 passes light) and optical switch 4114 is closed (so that optical switch 4114 blocks light) (via control signal 4116); and if lens 4204 was selected, then optical switch 4112 is closed and optical switch 4114 is opened (via control signal 4116). If both lenses 4202 and 4204 are selected, then both optical switches 4112 and 4114 can be opened (so that both optical switches pass light).
Following step 4206, the process flow can return to step 4200 and read the shot coordinates for the next_upcoming laser pulse shot to begin the process flow for this next_upcoming laser pulse shot.
Given the differences between the wide and narrow fields of view 4106 and 4108, the inventors note that the pixel mapping to be used for deciding which pixels 1804 to use for readout with respect to return detection will vary as a function of which of the lenses 4102 and 4104 are being used for return detection. To support this,
A memory within the receiver controller 1810 can maintain a first data structure 4310 that provides a mapping of shot coordinates to pixels 1804 for the narrow field of view lens 4204 and a second data structure 4312 that provides a mapping of shot coordinates to pixels 1804 for the wide field of view lens 4202.
At step 4300, the receiver controller 1810 selects between data structures 4310 and 4312 based on which lens has been selected for return detection with respect to the subject laser pulse shot. Thus, if lens 4102 is selected at step 4204, then data structure 4312 will be selected; and if lens 4104 is selected at step 4204, then data structure 4310 will be selected. The receiver controller 1810 then accesses the selected data structure to map the shot coordinates for the subject laser pulse shot to a pixel set of the photodetector array 1802 to use for readout. As noted above, the pixel set identified by step 4300 may comprise one or more pixels 1804 of the photodetector array 1802.
At step 4302, the receiver controller 1810 adds the mapped pixel set identified at step 4300 to the entry 1842 in the readout control buffer 1840 (see
A practitioner can choose to replicate photodetector circuit 1800 for both lenses 4102 and 4104 so that (1) the photodetector circuit 1800 that receives incident light from lens 4102 includes its own photodetector array 1802 and readout/amplification circuitry and (2) the photodetector circuit 1800 that receives incident light from lens 4104 includes its own photodetector array 1802 and readout/amplification circuitry. However, it should be understood that most or all of the components of the “downstream” signal processing circuitry 1820 could be shared by both photodetector circuits 1800 (e.g., components for tasks such as match filtering, intensity and range estimation, velocity estimation, etc.).
The receiver controller 1810 can define the control signal 4116 for the electronic switch 4400 in much the same fashion as discussed above for the optical switches 4112 and 4114. For example,
In an example embodiment, the receiver controller 1810 can control each photodetector circuit 1800 so that the photodetector circuits 1800 operate to produce return signals 1806 as they normally would. Thus, if the subject laser pulse shot targets a shot coordinate in coverage zone 4212, then (1) the photodetector circuit 1800 for the wide field of view lens 4202 can be controlled to activate and readout from the pixel set corresponding to the subject shot coordinate as defined by the mapping data structure 4312 and (2) the photodetector circuit 1800 for the narrow field of view lens 4204 can be controlled to activate and readout from the pixel set corresponding to the subject shot coordinate as defined by the mapping data structure 4310. In this case, the entry 1842 can include different identified pixel sets for the two photodetector circuits 1800, and the electronic switch 4400 can control which of the two return signals 1806 is passed to the signal processing circuit 1820. If the subject laser pulse shot targets a shot coordinate outside coverage zone 4212, then the receiver controller 1810 need not activate any of the pixels 1804 of the photodetector circuit 1800 for the narrow field of view lens 4104 because the return would be outside its field of view.
In another example embodiment, the receiver controller 1810 can operate to only activate pixels 1804 within the photodetector circuit 1800 that will sense incident light from the selected lens. Thus, if lens 4102 is selected for the subject laser pulse shot, then the receiver controller 1810 can activate and readout from the mapped pixel set for the return processing with respect to the subject laser pulse shot while not activating any of the pixels 1804 of the other photodetector circuit 1800 that receives incident light from lens 4104. Similarly, if lens 4104 is selected for the subject laser pulse shot, then the receiver controller 1810 can activate and readout from the mapped pixel set for the return processing with respect to the subject laser pulse shot while not activating any of the pixels 1804 of the other photodetector circuit 1800 that receives incident light from lens 4102. This approach can reduce the power consumption within the lidar receiver 1400 and thus better manage not only power but also heat.
In yet another example embodiment, the lidar receiver 1400 can employ multiple channels that process both return signals 1806 from the wide field of view lens 4102 and the narrow field of lens 4104 in separate channels. Electronic switch 4400 could then be deployed further downstream in the signal processing path to allow the system to make a decision about which of the return signals should be used to detect the return. For example, as noted above, if the target is a bright target such as a retroreflector that is located in the narrow field of view coverage zone 4212, it may be the case that the return signal 1806 within the narrow field of view path oversaturates the system, in which case the system can make a decision to use the return signal 1806 in the wide field of view channel for return detection within the signal processing circuit 1820. Another example can be a scenario where the return from the target in the narrow field of view coverage zone 4212 as detected via the narrow field of view lens 4104 is corrupted by an undue amount of saturation-inducing interference or noise. In this situation, the system can make a decision to use the return signal 1806 in the wide field of view channel for return detection within the signal processing circuit 1820. As yet another example, it may be desirable to detect returns in both the wide field of view and narrow field of view channels to provide parallax correction that improves the resolution of the angle to the target. Due to the spatial offset between lenses 4102 and 4104, the angle at which the incident light strikes the photodetector array 1802 for the wide and narrow fields of view will be different, and this difference will be more pronounced at shorter ranges to the target). The signal processing circuit 1820 can then leverage the difference in incident angle to correct for parallax error in the detected returns and thus produce a better estimate of the angle to target. Further still, it may be desirable to detect returns in both the wide field of view and narrow field of view channels so that different returns can be detected at the same time in the two channels, as noted above.
While the examples of multi-channel signal processing are described in the context of the
Further still, while
Adjusting Scan Mirror Amplitude Based on Lens Selection and/or Shot Angle Classification:
The inventors further note that the lens selection techniques described above in connection with
In an example embodiment, the choices for the tilt amplitude A can include a smaller amplitude (A′) that would provide sufficient angular extent for the scan mirror 110 to cover to the narrow coverage zone 4212 and a larger amplitude (A) that would provide sufficient angular extent for the scan mirror 110 to cover the wide coverage zone 4214.
At step 4600 of
At step 4602, the control circuit 106 reads a block of range points that are to be targeted with laser pulse shots for the purpose of scheduling laser pulse shots that will target these range points. The size of the block read at step 4602 can be defined by a practitioner. Considerations that may affect the choice of block size when considering amplitude changes can be affected by criteria such as shot energy and laser average power. A practitioner may want to choose block sizes that run from around 50 range points to around 2,000 range points. These range points may already be pre-sorted into increasing or decreasing shot angles for a given scan line before being read at step 4602.
At step 4604, the control circuit 106 classifies the block of range points based on whether the range points within the block fall in the wide field of view and/or narrow field of view coverage zones. In this regard, it should be understood that range points within the narrow field of view coverage zone can be targeted with laser pulse shots where the tilt amplitude of the scan mirror 110 is A or A′, while range points within the wide field of view coverage zone can only be targeted with laser pulse shots where the tilt amplitude of the scan mirror 110 is A (given that we have two choices for tilt amplitude in this example embodiment). If step 4604 results in a determination that all of the range points in the block fall in the wide field of view coverage zone (only), then the process flow proceeds as shown by
Thus, as noted,
At step 4614, the control circuit 106 schedules the block of range points into a shot list using the laser energy model 108 and the mirror motion model 308 (where the wide field of view amplitude (A) is used by the mirror motion model 308) in accordance with the techniques discussed above (e.g., see
At step 4622, the control circuit 106 computes the time needed to fire laser pulse shots at the range points of the block according to the laser energy model 108 and mirror motion model 308 if the amplitude of the scan mirror 110 was kept at the wide field of view amplitude (in which case, A is used as the amplitude for the mirror motion model 308). This time can be represented by t_wide. To compute t_wide, the control circuit 106 can schedule the range points of the block into a shot list using the laser energy model 108 and the mirror motion model 308 as noted above (e.g., see
At step 4624, the control circuit 106 computes the time needed to fire laser pulse shots at the range points of the block according to the laser energy model 108 and mirror motion model 308 if the amplitude of the scan mirror 110 was equal to the narrow field of view amplitude (in which case, A′ is used as the amplitude for the mirror motion model 308). This time can be represented by t_narrow. To compute t_narrow, the control circuit 106 can schedule the range points of the block into a shot list using the laser energy model 108 and the mirror motion model 308 as noted above (e.g., see
The control circuit 106 can then factor in the settle time for the downshifting of the amplitude for the scan mirror 110 from A to A′ by adding t_down to t_narrow. The control circuit 106 can then compare t_wide with the sum oft_narrow and t_down to determine which is larger (see step 4626).
If t_wide is greater than the sum oft_narrow and t_down, then it makes sense to reduce the tilt amplitude of the scan mirror 110 to the narrow field of view amplitude (A′). As such, at step 4628, the control circuit 106 schedules a request to decrease the amplitude for the scan mirror 110 to the narrow field of view amplitude (A′). Then, at step 4630, the control circuit 106 schedules the range points of the block in accordance with the schedule that was determined at step 4624. From step 4630, the process flow can return to step 4602 to read another block of range points for which laser pulse shots are to be scheduled.
If step 4626 results in a determination that t_wide is less than the sum oft_narrow and t_down, then it would be slower for the lidar transmitter 100 to change the amplitude of scan mirror 110 to A′. In this case, the amplitude of the scan mirror 110 is left unchanged (that is, the amplitude remains the wide field of view amplitude (A)), and the process flow proceeds to step 4632. At step 4632, the control circuit 106 schedules the range points of the block in accordance with the schedule that was determined at step 4622. From step 4632, the process flow can return to step 4602 to read another block of range points for which laser pulse shots are to be scheduled.
If the current amplitude is the narrow field of view amplitude (A′), then a change in amplitude for the scan mirror 110 will be needed because the lidar transmitter will need to have an ability to scan to the range points that are outside the narrow field of view coverage zone. Thus, at step 4642, the control circuit 106 sorts the range points of the block into shots that would target range points in the narrow field of view coverage zone (narrow field of view shots) and shots that would target range points outside the narrow field of view coverage zone (wide field of view shots). At step 4644, the control circuit 106 can then separately schedule these two groups of shots into a first block of the narrow field of view shots followed by a second block of wide field of view shots (with an amplitude change occurring between the two blocks). To accomplish this, the control circuit can (1) schedule the range points for the narrow field of view shots into a first block of the shot list using the laser energy model 108 and the mirror motion model 308 (where the amplitude is A′), (2) schedule a request to increase the amplitude of the scan mirror 110 to the wide field of view amplitude (A), and (3) schedule the range points for the wide field of view shots into a second block of the shot list using the laser energy model 108 and the mirror motion model 308 (where the amplitude is A). From step 4644, the process flow can return to step 4602 to read another block of range points for which laser pulse shots are to be scheduled.
If step 4640 results in a determination that the current amplitude is the wide field of view amplitude (A), this means that there is a choice between keeping the amplitude at A for all of the shots or finding a subset of shots where the amplitude would be reduced to A′. To facilitate making a decision on this choice, the process flow can determine if there would be a time benefit to reducing the amplitude of the scan mirror 110 for some of the shots. This decision-making process can start at step 4646.
At step 4646, the control circuit 106 computes the time needed to fire laser pulse shots at the range points of the block according to the laser energy model 108 and mirror motion model 308 if the amplitude of the scan mirror 110 was kept at the wide field of view amplitude (in which case, A is used as the amplitude for the mirror motion model 308). This time can be represented by t_wide. To compute t_wide, the control circuit 106 can schedule the range points of the block into a shot list using the laser energy model 108 and the mirror motion model 308 as noted above (e.g., see
At step 4648, the control circuit 106 sorts the range points of the block into shots that would target range points in the narrow field of view coverage zone (narrow field of view shots) and shots that would target range points outside the narrow field of view coverage zone (wide field of view shots). At step 4650, the control circuit 106 computes the time that would be needed to fire the wide field of view shots at the wide field of view amplitude for the scan mirror 110, followed by a change in amplitude to the narrow field of view amplitude, followed by firing the narrow field of view shots at the narrow field of view amplitude for the scan mirror 110. This time can be represented by t_wide-to-narrow. To compute t_wide-to-narrow, the control circuit 106 can separately schedule the two groups of shots into a first block of the wide field of view shots followed by a second block of narrow field of view shots (with an amplitude change occurring between the two blocks). To accomplish this, the control circuit can (1) schedule the range points for the wide field of view shots into a first block of the shot list using the laser energy model 108 and the mirror motion model 308 (where the amplitude is A), (2) determine the time it would take to complete this block of shots, (3) schedule the range points for the narrow field of view shots into a second block of the shot list using the laser energy model 108 and the mirror motion model 308 (where the amplitude is A′), and (4) determine the time it would take to complete this shot list. The value of t_wide-to-narrow would then be the sum of the times for completing these two shots lists plus the value of t_down.
At step 4652, the control circuit 106 compares the value of t_wide computed at step 4646 with the value of t_wide-to-narrow computed at step 4650.
If t_wide-to-narrow is not less than t_wide, this means that an amplitude change for the scan mirror 110 is not needed, and the process flow can proceed to step 4654. At step 4654, the control circuit 106 schedules the range points of the block in accordance with the schedule that was determined at step 4646. From step 4654, the process flow can return to step 4602 to read another block of range points for which laser pulse shots are to be scheduled.
If step 4652 results in a determination that t_wide-to-narrow is less than t_wide, this means that it would be faster for the lidar transmitter 100 to reduce the amplitude of the scan mirror 110 for the narrow field of view shots. In this case, at step 4656, the control circuit 106 schedules the range points of the block in accordance with the schedules that were determined at step 4650 (where there is a schedule of the wide field of view shots, followed by a scheduled decrease in amplitude for the scan mirror 110, followed by the schedule of narrow field of view shots). From step 4656, the process flow can return to step 4602 to read another block of range points for which laser pulse shots are to be scheduled.
It should be understood that alternate techniques for scheduling laser pulse shots while considering potential amplitude changes in the scan mirror 110 could be employed. For example,
At step 4700, the control circuit 106 schedules the range points of the block into a shot list using the laser energy model 108 and the mirror motion model 308 (where the amplitude is the wide field of view amplitude (A)) in accordance with the techniques discussed above. It should be understood that this shot list (which can be referred to as the original shot list for this process flow) will include all of the range points regardless of whether they fall inside or outside the narrow field of view coverage zone.
At step 4704, the control circuit 106 identifies the last wide field of view shot on the original shot list. This determination can be made on the basis of the order of the shots in the shot list and their associated shot coordinates (e.g., does the azimuth shot angle for a given shot fall outside the boundary azimuth shot angles for the narrow field of view coverage zone 4756).
At step 4706, the control circuit 106 identifies the last N narrow field of view shots on the original shot list that are before the identified last wide field of view shot (up to the identified last wide field of view shot). This determination can be made on the basis of the order of the shots in the shot list and their associated shot coordinates (e.g., does the azimuth shot angle for a given shot fall inside the boundary azimuth shot angles for the narrow field of view coverage zone 4756).
At step 4708, the control circuit 106 removes the N narrow field of view shots identified at step 4706 from the shot list. Next, at step 4710, the control circuit 106 removes the narrow field of view shots from the original shot list that occur after the identified last wide field of view shot from step 4704. Thus, steps 4708 and 4710 operate to produce a first group of shots that represents the remaining shots from the original shot list and a second group of shots that represents the narrow field of view shots removed from the original shot list by steps 4708 and 4710. These removed narrow field of view shots can then be evaluated to determine whether the completion time for the shots would be improved by reducing the amplitude of scan mirror 110 to A′ for these removed narrow field of view shots.
At step 4712, the control circuit 106 computes the time that would be needed by the lidar transmitter 100 to fire the removed narrow field of view shots according to the laser energy model 108 and mirror motion model 308 (where the amplitude is A′). This time can be represented by t_narrow. To compute t_narrow, the control circuit 106 can schedule the removed range points into a shot list using the laser energy model 108 and the mirror motion model 308 as noted above (e.g., see
At step 4714, the control circuit 106 computes the time that would be needed by the lidar transmitter 100 to fire the remainder shots from the original shot list according to the laser energy model 108 and mirror motion model 308 (where the amplitude is A). This time can be represented by t_wide remainder. To compute t_wide remainder, the control circuit 106 can schedule the remainder range points into a shot list using the laser energy model 108 and the mirror motion model 308 as noted above (e.g., see
At step 4716, the control circuit 106 can compare t_wide with the sum of t_wide remainder, t_narrow, and t_down. If t_wide is less than this sum, this means that it would be faster to keep the original shot list. Accordingly, in this scenario, the control circuit 106 retains the original shot list at step 4718. This effectively returns the removed shots to the original shot list as originally scheduled at step 4700.
If step 4716 results in a determination that t_wide is greater than the sum of t_wide remainder, t_narrow, and t_down, this means that it would be faster to fire the re-scheduled remainder shots with the wide mirror amplitude, followed by a decrease in mirror amplitude to A′, followed by a firing of the re-scheduled removed narrow field of view shots. Accordingly, in this scenario, the control circuit replaces the original shot list with a shot list of (1) the shot list schedule for the remainder shots from step 4714, (2) then the scheduled reduction in scan mirror amplitude to the narrow field of view amplitude, and (3) then the shot list schedule for the removed narrow field of view shots from step 4712.
Moreover, by combining the example embodiments of
Moreover, while the example embodiments of
Similarly, while the examples of
While the invention has been described above in relation to its example embodiments, various modifications may be made thereto that still fall within the invention's scope.
For example, while the example embodiments discussed above involve a mirror subsystem architecture where the resonant mirror (mirror 110) is optically upstream from the point-to-point step mirror (mirror 112), it should be understood that a practitioner may choose to position the resonant mirror optically downstream from the point-to-point step mirror.
As another example, while the example mirror subsystem 104 discussed above employs mirrors 110 and 112 that scan along orthogonal axes, other architectures for the mirror subsystem 104 may be used. As an example, mirrors 110 and 112 can scan along the same axis, which can then produce an expanded angular range for the mirror subsystem 104 along that axis and/or expand the angular rate of change for the mirror subsystem 104 along that axis. As yet another example, the mirror subsystem 104 can include only a single mirror (mirror 110) that scans along a first axis. If there is a need for the lidar transmitter 100 to also scan along a second axis, the lidar transmitter 100 could be mechanically adjusted to change its orientation (e.g., mechanically adjusting the lidar transmitter 100 as a whole to point at a new elevation while mirror 110 within the lidar transmitter 100 is scanning across azimuths).
As yet another example, a practitioner may find it desirable to drive mirror 110 with a time-varying signal other than a sinusoidal control signal. In such a circumstance, the practitioner can adjust the mirror motion model 308 to reflect the time-varying motion of mirror 110.
As still another example, it should be understood that the techniques described herein can be used in non-automotive applications. For example, a lidar system in accordance with any of the techniques described herein can be used in vehicles such as airborne vehicles, whether manned or unmanned (e.g., airplanes, drones, etc.). Further still, a lidar system in accordance with any of the techniques described herein need not be deployed in a vehicle and can be used in any lidar application where there is a need or desire for hyper temporal control of laser pulses and associated lidar processing.
As yet another example, while the example
As still another example, while the example embodiments for angle resolution using pulse bursts discussed above employ compute resources within the lidar receiver 1400 to resolve the angle to the target, it should be understood that compute resources located elsewhere in the lidar system could be employed for this purpose if desired by a practitioner. While having the lidar receiver 1400 perform the angle resolution is advantageous because of the reduced latency involved in having the relevant processing operations performed by the system components that directly process the return signals from the laser pulse shots, it should be understood that some practitioners may choose to employ compute resources located elsewhere (such as compute resources within the system controller 800 if a practitioner deems the increased latency arising from data transfer across system components acceptable.
These and other modifications to the invention will be recognizable upon review of the teachings herein.
Claims
1. A lidar system comprising:
- a first lens having a first field of view that receives incident light from the first field of view;
- a second lens having a second field of view that receives incident light from the second field of view, wherein the second field of view is encompassed by and narrower than the first field of view; and
- photodetector circuitry that senses incident light passed by the first and second lenses, wherein the photodetector circuitry includes a plurality of channels of readout circuitry for reading out (1) a first return signal in a first of the channels for detecting a return from a laser pulse shot that targets a location in the second field of view, wherein the first return signal is based on incident light passed by the first lens, and (2) a second return signal in a second of the channels for detecting the return, wherein the second return signal is based on incident light passed by the second lens.
2. The system of claim 1 wherein the photodetector circuitry comprises (1) a first photodetector array for sensing incident light passed by the first lens and (2) a second photodetector array for sensing incident light passed by the second lens.
3. The system of claim 1 wherein the photodetector circuitry comprises a photodetector array shared by the first and second lenses.
4. The system of claim 1 further comprising:
- a signal processing circuit that detects the return based on the first return signal and/or the second return signal.
5. The system of claim 4 wherein the signal processing circuit detects the return based on the first return signal if the second return signal is oversaturated.
6. The system of claim 4 wherein the signal processing circuit detects the return based on the first return signal if the second return signal is corrupted by interference and/or noise.
7. The system of claim 4 wherein the signal processing circuit detects the return based on the first and second return signals to provide parallax correction.
8. A lidar method comprising:
- receiving incident light via a first lens that has a first field of view;
- receiving incident light via a second lens that has a second field of view, wherein the second field of view is encompassed by and narrower than the first field of view;
- sensing incident light passed by the first and second lenses;
- reading out a first return signal for detecting a return from a laser pulse shot that targets a location in the second field of view, wherein the first return signal is based on sensed incident light passed by the first lens;
- reading out a second return signal for detecting the return, wherein the second return signal is based on sensed incident light passed by the second lens; and
- detecting the return based on the first return signal and/or the second return signal.
9. The method of claim 8 wherein the sensing step comprises (1) sensing the incident light passed by the first lens via first photodetector array and (2) sensing the incident light passed by the second lens via a second photodetector array.
10. The method of claim 8 wherein the sensing step comprises sensing the incident light passed by the first and second lenses via a photodetector array shared by the first and second lenses.
11. The method of claim 8 wherein the detecting step comprises detecting the return based on the first return signal if the second return signal is oversaturated.
12. The method of claim 8 wherein the detecting step comprises detecting the return based on the first return signal if the second return signal is corrupted by interference and/or noise.
13. The method of claim 8 wherein the detecting step comprises detecting the return based on the first and second return signals to provide parallax correction.
14. A lidar system comprising:
- a first lens having a first field of view that receives incident light from the first field of view;
- a second lens having a second field of view that receives incident light from the second field of view, wherein the second field of view is encompassed by and narrower than the first field of view;
- a switch that controls which of the first and second lenses are used for detecting returns from laser pulse shots based on where the laser pulse shots are targeted in a field of view that encompasses the first and second fields of view, wherein the switch is controllable to cause both of the first and second lenses to be used within a plurality of channels for return detection with respect to the same laser pulse shot.
15. The system of claim 14 further comprising:
- a multi-channel signal processing circuit that processes return signals from the first and second lenses to detect the returns in the channels.
16. The system, of claim 14 further comprising:
- a photodetector circuit with multiple readout channels for reading out return signals from the first and second lenses.
17. The system of claim 14 wherein the switch comprises an optical switch.
18. The system of claim 14 wherein the switch comprises an electronic switch.
19. The system of claim 14 further comprising:
- a control circuit that (1) processes a shot list that identifies a plurality of shot coordinates for the laser pulse shots and (2) controls the switch based on the shot coordinates.
20. The system of claim 19 wherein the control circuit controls the switch to use signals from both the first and second lenses for return detection based on defined criteria.
21. The system of claim 19 further comprising:
- a lidar transmitter that transmits the laser pulse shots, wherein the lidar transmitter comprises a scannable mirror that is scannable to define where the laser pulse shots are targeted in the field of view; and
- wherein the control circuit schedules the laser pulse shots based on (1) a laser energy model that models energy available for the laser pulse shots over time and (2) a mirror motion model that models motion for the scannable mirror over time.
Type: Application
Filed: Dec 17, 2021
Publication Date: Feb 9, 2023
Inventors: Joel Benscoter (Dublin, CA), Luis Dussan (Dublin, CA), Allan Steinhardt (Dublin, CA), Philippe Feru (Dublin, CA), Igor Polishchuk (Dublin, CA)
Application Number: 17/554,256