Patent Description:
Light detection, and ranging (LIDAR or LADAR) systems utilize a number of laser beams to detect reflectance or backscatter from the laser beams to map surface features or for remote sensing. For typical LIDAR systems, each beam is precisely configured with a dedicated photodetector that detects the reflectance and/or backscatter from that particular beam. As the beam count increases, so do cost and space requirements for the individual lasers and photodetectors.

The disclosure herein is illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings in which like reference numerals refer to similar elements, and in which:.

Current LIDAR technology involves fixed-beam LIDAR systems that include laser sources, scanners, optical systems (e.g., beam splitters and/or collimators), and photodetectors. For example, cutting edge LIDAR systems can include pulse rates on the order of one million pulses per second producing a detailed point cloud map of an autonomous vehicle's surroundings at ranges upwards of one hundred-plus meters. These LIDAR systems require precision pulse sequencing for the laser beams for multiple reasons, such as power constraints, sampling and/or processing constraints, and the like. When using typical LIDAR systems for autonomous vehicles traveling on public roads, operational speed may be limited by the nature of the beam pattern produced by the LIDAR system. For example, in order to ensure safety for an autonomous vehicle traveling at low speeds over public roads, a LIDAR system may require several separate beams to readily detect potential hazards with sufficient granularity to decelerate, maneuver, and/or stop the autonomous vehicle accordingly. When the autonomous vehicle travels at high speeds (e.g., <NUM> mph, <NUM> mph, etc.), in order to achieve the same granularity for potential hazards in order to safely react, decelerate, and/or stop the autonomous vehicle, a fixed-beam LIDAR system may require well over seventy separate beams.

Increasing the number of fixed beams places additional requirements for a LIDAR system. For example, the LIDAR system will require more power, greater processing capability, larger or more sensitive photodetector and receiving equipment, constrained optics, and generally greater weight and more space. Furthermore, cost and waste quickly become an issue when increasing the number of fixed-beams, since the beam pattern for the fixed-beam LIDAR system must be tuned for a maximum operational speed of the autonomous vehicle. If autonomous vehicles are to operate safely with LIDAR technology on public highways at high speed, then alternative arrangements may be necessary to avoid spiraling costs, wasted power, additional equipment, and increased processing requirements.

To address many of the shortcomings of fixed-beam LIDAR systems, a planar-beam, light detection and ranging (PLADAR) system is provided. The PLADAR system can include a laser scanner that emits a planar-beam, and a detector array to detect reflected light (e.g., backscatter) from the planar beam. In some aspects, the laser scanner can include a collimation component that collimates a laser beam generated by the laser scanner into the planar beam. The laser scanner can utilize a single laser collimated on an axis (e.g., a vertical axis) to generate the planar beam, which can extend from the laser scanner approximately triangularly as opposed to linearly. According to certain implementations, the laser scanner can include a fiber laser that generates the laser beam for axial collimation. Fiber lasers can offer vibrational stability, ideal optical quality, and compact size in addition to other desirable qualities. However, virtually any type of laser with appropriate emission characteristics may be used, such as certain types of gas lasers, excimer lasers, dye lasers, other forms of solid state lasers, semi-conductor based lasers, metal vapor lasers, etc. utilizing continuous wave or pulsed emissions. For autonomous vehicle applications, wavelengths on the order of <NUM> nanometers (nm) (e.g., <NUM>-<NUM>) corresponding to the near-infrared spectral range may be optimal for health and safety reasons.

In many examples, the detector array of the PLADAR system can include at least one set of photodetectors, such as one or more linear rows of photodetectors, which can be included on a circuit board of the PLADAR system. The circuit board can include a number of adjustment components for the photodetector array(s) to calibrate the photodetectors in concert. In some aspects, the PLADAR system can further include an adjustment controller to dynamically adjust the adjustment components to optimally configure the row(s) of photodetectors in response to a command signal. The command signal may be generated by a calibration system pre-implementation, or dynamically when the PLADAR system is in use. Additionally or alternatively, the adjustment components can be tuned manually by a user or technician when calibrating the photodetector array to the planar beam.

Accordingly to examples described herein, the PLADAR system can be implemented on an autonomous vehicle to provide sensor data to an on-board data processing system of the autonomous vehicle. The PLADAR system can include an analog-to-digital converter (ADC) chain coupled to the photodetector array. In certain implementations, the ADC chain can generate output from all of the photodetectors simultaneously, and the outputted data can be processed (e.g., by the on-board data processing system of the autonomous vehicle) accordingly. In such implementations, the pulse rate of the planar beam can be significantly reduced compared to fixed-beam LIDAR systems. For example, when fine granularity is desired, instead of transmitting one hundred or so beams (e.g., with ~<NUM>° beam spacing), examples described herein can transmit a single (or multiple) beam planes with the same or similar data quality at ~<NUM>/100th the pulse rate.

Among other benefits, the examples described herein achieve a technical effect of providing an alternative to increasingly expensive, complex, and tediously calibrated LIDAR systems. A PLADAR system can maintain or increase data quality while reducing cost and complexity, which are increasing concerns in autonomous vehicle technology and currently function as hindrances in the rollout of autonomous vehicles for common use.

As used herein, a PLADAR system implements remote sensing using planar beams as opposed to linear beams. "PLADAR" is used herein to represent any light detection and ranging system that uses two-dimensional beam planes for remote sensing.

As used herein, a computing device refer to devices corresponding to desktop computers, cellular devices or smartphones, personal digital assistants (PDAs), field programmable gate arrays (FPGAs), laptop computers, tablet devices, television (IP Television), etc., that can provide network connectivity and processing resources for communicating with the system over a network. A computing device can also correspond to custom hardware, in-vehicle devices, or on-board computers, etc. The computing device can also operate a designated application configured to communicate with the network service.

One or more examples described herein provide that methods, techniques, and actions performed by a computing device are performed programmatically, or as a computer-implemented method. Programmatically, as used herein, means through the use of code or computer-executable instructions. These instructions can be stored in one or more memory resources of the computing device. A programmatically performed step may or may not be automatic.

One or more examples described herein can be implemented using programmatic modules, engines, or components. A programmatic module, engine, or component can include a program, a sub-routine, a portion of a program, or a software component or a hardware component capable of performing one or more stated tasks or functions. As used herein, a module or component can exist on a hardware component independently of other modules or components. Alternatively, a module or component can be a shared element or process of other modules, programs or machines.

Some examples described herein can generally require the use of computing devices, including processing and memory resources. For example, one or more examples described herein may be implemented, in whole or in part, on computing devices such as servers, desktop computers, cellular or smartphones, personal digital assistants (e.g., PDAs), laptop computers, printers, digital picture frames, network equipment (e.g., routers) and tablet devices. Memory, processing, and network resources may all be used in connection with the establishment, use, or performance of any example described herein (including with the performance of any method or with the implementation of any system).

Furthermore, one or more examples described herein may be implemented through the use of instructions that are executable by one or more processors. These instructions may be carried on a computer-readable medium. Machines shown or described with figures below provide examples of processing resources and computer-readable mediums on which instructions for implementing examples disclosed herein can be carried and/or executed. In particular, the numerous machines shown with examples of the invention include processor(s) and various forms of memory for holding data and instructions. Examples of computer-readable mediums include permanent memory storage devices, such as hard drives on personal computers or servers. Other examples of computer storage mediums include portable storage units, such as CD or DVD units, flash memory (such as carried on smartphones, multifunctional devices or tablets), and magnetic memory. Computers, terminals, network enabled devices (e.g., mobile devices, such as cell phones) are all examples of machines and devices that utilize processors, memory, and instructions stored on computer-readable mediums. Additionally, examples may be implemented in the form of computer-programs, or a computer usable carrier medium capable of carrying such a program.

<FIG> is a block diagram illustrating an example planar-beam, light detection and ranging (PLADAR) system, as described herein. The PLADAR system <NUM> can include a PLADAR scanner and optics <NUM> that generate a two-dimensional beam plane <NUM>. The scanner/optics <NUM> can include a single laser source (or multiple laser sources) that generates a laser beam. In certain aspects, the laser source of the beam plane <NUM> can be a fiber laser emitting in the near to mid infrared spectral range. The optics of the scanner/optics <NUM> can include a number mirrors and/or a collimation component that collimates the laser beam axially to form the beam plane <NUM>. The collimation component can include a number of lenses, spatial filters, mirrors, fiber optics, and/or gratings, which can filter, amplify, and/or narrow a resultant planar beam <NUM>. Accordingly, the collimation component of the scanner/optics <NUM> collimates the laser beam on a single axis to generate the beam plane <NUM>.

In many aspects, the PLADAR system <NUM> can include a photodetector array <NUM> including a number of individual photodetectors. According to examples described herein, the photodetector array <NUM> can comprise a linear arrangement (e.g., as a one or more linear rows of photodetectors) to correlate with the beam plane <NUM> emitted by the PLADAR system <NUM>. For example, the individual photodetectors can be included and calibrated on a circuit board to be aligned with the beam plane <NUM>. Furthermore, the photodetector array <NUM> can include a number of adjustable components <NUM> (e.g., calibration screws) that can allow for straightforward calibration of the photodetector array <NUM> with the beam plane <NUM>. In some aspects, the photodetector array <NUM> can include a sufficient number of individual photodetectors (e.g., tens to hundreds) for generating sensor data with sufficient granularity to detect any possible road hazards (e.g., objects with size on the order of feet or inches) for operating an autonomous vehicle on public roads. In such aspects, the photodetector array <NUM> can include as many or more photodetectors as current or future state of the art fixed-beam LIDAR systems.

In various implementations, the photodetector array <NUM> can include multiple linear arrangements of photodetectors, and/or interleaved detectors across the multiple linear arrangements. For example, the photodetector array <NUM> can include two or more lines of photodetectors to take advantage of the beam spread of the beam plane <NUM>. In variations, the nature of the beam plane <NUM> can allow for any suitable arrangement for the photodetector array <NUM>, such as separate staggered photodetector lines of varying lengths, a wider central arrangement, a narrower central arrangement, and the like. Thus, in addition to a single linear row of photodetectors, the photodetector array can include a plurality of photodetector rows aligned in a manner corresponding to the beam plane <NUM>.

The photodetector array <NUM> detects reflection and/or backscatter <NUM> from the beam plane <NUM>, and a timing component <NUM> is utilized to perform ranging operations for the PLADAR system <NUM>. Accordingly, the PLADAR system <NUM> actively transmits the beam plane <NUM>, light from the beam plane <NUM> is reflected off objects and surfaces, and this reflection/backscatter <NUM> is detected by the individual receivers of the photodetector array <NUM>. Data from the detected light is precisely timed to perform the ranging operations (e.g., dynamic calculations of distance to each surface) and generate a dynamic point cloud map of the situational environment of the PLADAR system <NUM>.

Furthermore, LIDAR systems sequence the individual beams and detectors in order to decrease power and processing loads, which can constrain data quality. The PLADAR system <NUM> can utilize a single beam plane <NUM> at a single pulse rate, which may be increased or decreased accordingly depending on the situational environment (e.g., a crowded city environment, a rural road with little or no traffic, etc.). In certain aspects, PLADAR sensor data <NUM> from the photodetectors of the photodetector array <NUM> may be sampled simultaneously from all photodetectors by a local or external data processor <NUM>. Thus, in some implementations, the data processor <NUM> can be included as a component of the PLADAR system <NUM>. In other implementations, the data processor <NUM> may be remote, and/or can be included as a part of, for example, an on-board data processing system of an autonomous vehicle.

Each detector of the photodetector array <NUM> can include an analog-to-digital converter (ADC), which converts the detected light signal from the reflection/backscatter <NUM> of the beam plane <NUM> into a digital signal for processing. Accordingly, in many examples, the photodetector array <NUM> can include an ADC chain, similar to certain LIDAR systems. The combined data from the ADC chain (i.e., PLADAR sensor data <NUM>) can be sampled by the data processor <NUM> (e.g., simultaneously or near-simultaneously for each pulse) to generate the point cloud map of the situational environment. Feedback <NUM> can be provided by the data processor <NUM> to a PLADAR controller <NUM>, or adjustment controller, which can make adjustments to the configurable parameters of the PLADAR system <NUM>.

According to examples described herein, the individual detectors of the photodetector array <NUM> can be adjusted in concert using the adjustable components <NUM>. In certain examples, the photodetector array <NUM> can be pre-calibrated and aligned with the beam plane <NUM> during the manufacturing process. Additionally or alternatively, when a misalignment is detected (e.g., by the data processor <NUM>), the photodetector array <NUM> may be manually calibrated during servicing. Additionally or alternatively still, the feedback <NUM> provided by the data processor <NUM> can indicate the misalignment, and can be processed by the PLADAR controller <NUM>. The PLADAR controller <NUM> can determine a number of adjustments based on the feedback <NUM>, and can utilize the adjustable components <NUM> to re-calibrate the photodetector array <NUM> automatically and on the fly.

In certain aspects, the PLADAR controller <NUM> can further operate the PLADAR motor <NUM>, which can, for example, control a rotational rate of the PLADAR system <NUM>. The PLADAR controller can further control the timing component <NUM> and the PLADAR scanner/optics <NUM> to increase or decrease the pulse rate when, for example, finer granularity in the generated point cloud is needed (e.g., in pedestrian rich environments). Generally, however, the pulse rate of the beam plane <NUM> can be far less (e.g., 100x less) than those of typical LIDAR systems, since the PLADAR system <NUM> utilizes a single light source.

Other arrangements are contemplated. For example, the PLADAR scanner/optics <NUM> can generate the beam plane <NUM> along with one or more linear beams having dedicated detectors. As another example, the PLADAR scanner/optics <NUM> can generate multiple beam planes <NUM>. The embodiment illustrated in <FIG> shows a rotational PLADAR system <NUM> operated by a PLADAR motor <NUM>. However, example PLADAR systems <NUM> described herein can include a scanning motor that uses a beam plane <NUM> to scan a certain directional aspect (e.g., directly in front of an autonomous vehicle). Further, the beam plane <NUM> is axially collimated on a single axis, and can be collimated vertically, horizontally, in a slanted manner (as shown), and can provide almost any desired vertical field of view (e.g., a <NUM>° VFOV at <NUM> meters).

<FIG> is a block diagram illustrating an example autonomous vehicle including a PLADAR system, as described herein. The PLADAR system <NUM> of the autonomous vehicle (AV) <NUM> can provide PLADAR data <NUM> to an on-board data processing system <NUM> of the autonomous vehicle <NUM>. In some examples, the PLADAR system <NUM> can comprise a light source (e.g., a laser), a photodetector, scanner components (e.g., which can include one or more lens(es), mirror(s), motor(s), actuator(s), etc.), and circuitry to couple to various components of the autonomous vehicle <NUM>. The data processing system <NUM> can utilize the PLADAR data <NUM> to detect the situational conditions of the autonomous vehicle <NUM> as the AV <NUM> travels along a current route. For example, the data processing system <NUM> can identify potential obstacles or road hazards-such as pedestrians, bicyclists, objects on the road, road cones, road signs, animals, etc.-in order to enable an AV control system <NUM> to react accordingly.

In certain implementations, the data processing system <NUM> can utilize sub-maps <NUM> stored in a database <NUM> of the autonomous vehicle <NUM> in order to perform localization and pose operations to determine a current location and orientation of the autonomous vehicle <NUM> in relation to a given region (e.g., a city). The sub-maps <NUM> can comprise previously recorded sensor data, such as stereo camera data, radar maps, and/or point cloud LIDAR maps that enable the data processing system <NUM> to compare the PLADAR data <NUM> from the PLADAR system <NUM> with a current sub-map <NUM> to identify such obstacles and potential road hazards in real time. The data processing system <NUM> can provide the processed sensor data <NUM>-identifying such obstacles and road hazards-to AV control system <NUM>, which can react accordingly by operating the steering, braking, and acceleration systems <NUM> of the autonomous vehicle <NUM>.

In some examples, the autonomous vehicle <NUM> further includes a number of stereo cameras <NUM> that generate dynamic image data <NUM> of the autonomous vehicle's <NUM> surroundings. For example, the autonomous vehicle <NUM> can include stereo cameras <NUM> with fields of view showing a <NUM>° panorama (or forward and rearward directions) of the autonomous vehicle <NUM>. The on-board data processing system <NUM> can further process the dynamic image data <NUM> to identify features or potential hazards along the current route traveled. The processed data <NUM> can include processed image data from the stereo cameras <NUM>, which can be utilized by the AV control system <NUM> to perform low level maneuvering.

In many implementations, the AV control system <NUM> can receive a destination <NUM> from, for example, an interface system <NUM> of the autonomous vehicle <NUM>. The interface system <NUM> can include any number of touch-screens, voice sensors, mapping resources, etc. that enable a passenger <NUM> to provide a passenger input <NUM> indicating the destination <NUM>. For example, the passenger <NUM> can type the destination <NUM> into a mapping engine <NUM> of the autonomous vehicle <NUM>, or can speak the destination <NUM> into the interface system <NUM>. Additionally or alternatively, the interface system <NUM> can include a wireless communication module that can connect the autonomous vehicle <NUM> to a network <NUM> to communicate with a backend transport arrangement system <NUM> to receive invitations <NUM> to service a pick-up or drop-off request. Such invitations <NUM> can include destination <NUM> (e.g., a pick-up location), and can be received by the autonomous vehicle <NUM> as a communication over the network <NUM> from the backend transport arrangement system <NUM>. In many aspects, the backend transport arrangement system <NUM> can manage routes and/or facilitate transportation for users using a fleet of autonomous vehicles throughout a given region. The backend transport arrangement system <NUM> can be operative to facilitate passenger pick-ups and drop-offs to generally service pick-up requests, facilitate delivery such as packages, food, or animals, and the like.

Based on the destination <NUM> (e.g., a pick-up location), the AV control system <NUM> can utilize the mapping engine <NUM> to receive route data <NUM> indicating a route to the destination <NUM>. In variations, the mapping engine <NUM> can also generate map content <NUM> dynamically indicating the route traveled to the destination <NUM>. The route data <NUM> and/or map content <NUM> can be utilized by the AV control system <NUM> to maneuver the autonomous vehicle <NUM> to the destination <NUM> along the selected route. For example, the AV control system <NUM> can dynamically generate control commands <NUM> for the autonomous vehicle's steering, braking, and acceleration system <NUM> to actively drive the autonomous vehicle <NUM> to the destination <NUM> along the selected route. Optionally, the map content <NUM> showing the current route traveled can be streamed to the interior interface system <NUM> so that the passenger(s) <NUM> can view the route and route progress in real time.

In many examples, while the AV control system <NUM> operates the steering, braking, and acceleration systems <NUM> along the current route on a high level, and the processed data <NUM> provided to the AV control system <NUM> can indicate low level occurrences, such as obstacles and potential hazards to which the AV control system <NUM> can make decisions and react. For example, the processed data <NUM> can indicate a pedestrian crossing the road, traffic signals, stop signs, other vehicles, road conditions, traffic conditions, bicycle lanes, crosswalks, pedestrian activity (e.g., a crowded adjacent sidewalk), and the like. The AV control system <NUM> can respond to the processed data <NUM> by generating control commands <NUM> to reactively operate the steering, braking, and acceleration systems <NUM> accordingly.

According to examples described herein, the autonomous vehicle <NUM> can include a PLADAR controller <NUM> to receive feedback data <NUM> from the data processing system <NUM> in order to configure various adjustable parameters of the PLADAR system <NUM>. The feedback data <NUM> can include information indicating data quality, such as errors or uncertainty in the data from certain individual photodetectors, which can be extrapolated by the PLADAR controller <NUM> to determine a number of adjustment commands <NUM> for the PLADAR system <NUM> that can correct the error(s). For example, the PLADAR controller <NUM> can identify a pattern in the feedback data <NUM> indicating a misalignment of the photodetector array with respect to the PLADAR beam <NUM>. The PLADAR controller <NUM> can identify the misalignment and generate the adjustment commands <NUM> for execution on the adjustable components of the photodetector array to re-calibrate the PLADAR system <NUM>. As discussed herein, the adjustment commands <NUM> can be executed on the adjustable components dynamically as the autonomous vehicle <NUM> travels along a current route, or during garage servicing of the autonomous vehicle <NUM>.

Additionally or alternatively, the feedback data <NUM> can include requests from the data processing system <NUM> for the PLADAR controller <NUM> to configure the PLADAR system <NUM> for increased or decreased granularity. For example, the data processing system <NUM> can identify a substantial decrease in potential hazards (e.g., when the autonomous vehicle <NUM> leaves a city and enters open rural road with little traffic). The feedback data <NUM> can include a request to save power in such conditions by decreasing the pulse rate and/or scan rate of the PLADAR system <NUM>. Accordingly, in some aspects, the adjustment commands <NUM> can be generated by the PLADAR controller <NUM> to adjust a rotational parameter <NUM> (e.g., decrease a rotational rate) and/or decrease the pulse rate of the PLADAR beam <NUM>-thereby enabling a decrease in sample rate by the data processing system <NUM>.

Conversely, the on-board data processing system <NUM> can identify an increase in potential hazards (e.g., entering an area of increased pedestrian activity) or an increased probability of experiencing hazards (e.g., when traveling at high speeds), and request that the PLADAR controller <NUM> generate adjustment commands <NUM> to increase the sample rate. Such commands <NUM> can be executed on the adjustable parameters of the PLADAR system <NUM> to increase a pulse rate of the PLADAR beam <NUM> and/or increase the rotational rate-thereby enabling the data processing system <NUM> to increase the sample rate and bolster point cloud granularity.

<FIG> is a flow chart describing an example method of processing PLADAR data, according to one or more examples described herein. In the below description of <FIG>, reference may be made to like features represented by reference characters from <FIG> and <FIG>. Furthermore, the method described with respect to <FIG> may be performed by an example data processor <NUM> shown and described with respect to <FIG>, or an on-board data processing system <NUM> shown and described with respect to <FIG>. Referring to <FIG>, the data processor <NUM> can sample data from each detector of the PLADAR system <NUM> simultaneously (<NUM>). For example, the data processor <NUM> can monitor each ADC of an ADC chain coupled to the photodetector array <NUM>. For each beam plane <NUM> pulse, return light signals (e.g., reflection/backscatter <NUM>) can be received by the photodetector array <NUM>. Each detector can include an ADC that converts the detected light signal into a digital signal, and a timing component <NUM> can be utilized by the data processor <NUM> to precisely perform ranging for each ADC of the ADC chain and for every beam plane <NUM> pulse.

The data processor <NUM> (e.g., of an autonomous vehicle <NUM>) can process the PLADAR data <NUM> to perform ranging and identify potential hazards (<NUM>). For example, the data processor <NUM> can be programmed to identify aspects of the autonomous vehicle's situational environment that causes the autonomous vehicle <NUM> to operate safely on public roads. Such aspects can include pedestrians, bicyclists, hazardous objects on the road (e.g., rocks), stop lights, signs, other vehicles, and the like. The processor <NUM> can identify such aspects by, for example, comparing the PLADAR data <NUM> to a stored sub-map including prerecorded data on the same current route, as described with respect to <FIG>. In many implementations, the data processor <NUM> transmits the processed sensor data <NUM> to an AV control system <NUM>, which can control the autonomous vehicle's <NUM> steering braking, and acceleration systems <NUM> to make decisions and react to each processed object for low level maneuvering (<NUM>). Additionally, the AV control system <NUM> can further utilize dynamic image data <NUM> from a stereo camera system <NUM> of the autonomous vehicle <NUM> for low level maneuvering.

In certain implementations, the data processor <NUM> can identify, in the PLADAR data <NUM>, a misalignment between the photodetector array <NUM> and the beam plane <NUM> (<NUM>). As an example, the PLADAR data <NUM> can indicate unreliable data for the top detectors and the bottom detectors, which can indicate a diagonal misalignment of the photodetector array <NUM>. In some aspects, the data processor <NUM> can determine the nature of the misalignment based on the sampled PLADAR data <NUM>. In other aspects, the data processor <NUM> can generally identify the error in the data, and generate feedback <NUM> requesting the PLADAR controller <NUM> to perform a diagnostics test. In either aspect, the data processor <NUM> can generate feedback <NUM> indicating the misalignment (<NUM>), and transmit the feedback to the PLADAR controller <NUM> to re-calibrate the photodetector array <NUM> to the planar beam <NUM> (<NUM>).

According to some examples, the data processor <NUM> can determine a condition change in the situational environment of the autonomous vehicle <NUM> (<NUM>). As an example, the data processor <NUM> can identify that the autonomous vehicle <NUM> is traveling at higher speeds, and that more detailed data from a forward direction of the autonomous vehicle <NUM> is desired. The data processor <NUM> can generate a request to adjust the PLADAR system <NUM> configurations to, for example, increase a pulse rate, scan rate, detector sensitivity, and/or a laser intensity to increase the data quality (<NUM>). Conversely, to optimize power and processing resources, in certain circumstances (e.g., low speed operation), the data processor <NUM> can generate a request to decrease such configurable parameters when situational conditions are conducive to such decreases (<NUM>). These requests can be transmitted to the PLADAR controller <NUM> (<NUM>), which can execute adjustment commands <NUM> on the configurable components of the PLADAR system <NUM> accordingly.

<FIG> are a flow chart describing example methods of configuring a PLADAR system, as described herein. In the below description of <FIG>, reference may be made to like features represented by reference characters from <FIG> and <FIG>. Furthermore, the methods described with respect to <FIG> may be performed by an example PLADAR controller <NUM>, <NUM> shown and described with respect to <FIG> and <FIG>. Referring to <FIG>, the PLADAR controller <NUM> can receive feedback <NUM> from the data processor <NUM> indicating a misalignment (<NUM>). In some examples, the feedback <NUM> identifies the specific misalignment (e.g., leftward, rightward, topward, downward, clockwise or counterclockwise diagonal misalignments or any combination of the foregoing).

In other examples, the feedback <NUM> can include samplings of the PLADAR data <NUM>, which the PLADAR controller <NUM> can analyze to identify a data pattern that describes or details the misalignment (<NUM>). For example, data from the photodetector array <NUM> can indicate a consistent pattern of bad or unreliable data from any number of individual detectors in the array <NUM>. In some situations, the PLADAR controller <NUM> can perform an initial set of adjustments on the adjustable components <NUM> to diagnose the misalignment. In other situations, the misalignment may be readily identified by the PLADAR controller <NUM>, and the calibration can be made directly. Accordingly, once the precise misalignment is identified, the PLADAR controller <NUM> can generate and execute adjustment commands <NUM> on the adjustable components <NUM> of the photodetector array <NUM> to realign or re-calibrate the photodetector array <NUM> to the beam plane <NUM> (<NUM>).

Referring to <FIG>, the PLADAR controller <NUM> can receive a request from the data processor <NUM> to adjust PLADAR system <NUM> configurations (<NUM>). For example, based on changing situational conditions (e.g., changing weather such as rain or snow, changing speed, changing environmental complexity or potential hazard count, etc.), the data processor <NUM> can determine that an increased or decreased pulse rate (<NUM>) and/or scan rate (<NUM>) is preferable. Additionally or alternatively, the data processor <NUM> may determine that conditions require an increase in laser intensity (<NUM>) to enhance reflectance, or an increase in detector sensitivity (<NUM>). Alternatively, the data processor <NUM> may determine that conditions are conducive to power savings (e.g., in low speed uncrowded situations), and may request to decrease such configurations.

In any case, the PLADAR controller <NUM> can generate adjustment commands <NUM> based on the requests from the data processor <NUM> (<NUM>). The PLADAR controller <NUM> can then execute the adjustment commands <NUM> on the relevant components of the PLADAR system <NUM> to configure the PLADAR system <NUM> accordingly (<NUM>). For example, the PLADAR controller <NUM> can execute commands <NUM> on the PLADAR motor <NUM> to increase or decrease the scan rate (<NUM>). As another example, the PLADAR controller <NUM> can execute commands <NUM> on the timing component <NUM> to increase or decrease a pulse rate of the laser (<NUM>). Further, the PLADAR controller <NUM> can execute commands <NUM> on the laser source itself to increase or decrease laser intensity (e.g., increase or decrease power or beam frequency) (<NUM>). Still further, in some implementations, the PLADAR controller <NUM> can execute commands <NUM> on the detector array <NUM> to increase or decrease detector sensitivity (<NUM>).

While the data processor <NUM> and PLADAR controller <NUM> are shown as separate components in <FIG> and <FIG>, it is contemplated that certain embodiments can include a single component (e.g., one or more blade computers of an autonomous vehicle <NUM> that perform all of the operations described with respect to <FIG> and <FIG>.

<FIG> is a block diagram that illustrates a computer system upon which examples described herein may be implemented. A computer system <NUM> can be implemented on, for example, a server or combination of servers. For example, the computer system <NUM> may be implemented as part of a data processing system <NUM>, which itself may be implemented as a part of the AV's on-board data processing system <NUM>. In the context of <FIG>, the data processing system <NUM> may be implemented with the PLADAR controller <NUM> as a single computer system <NUM>, or using a combination of multiple computer systems as described in connection with <FIG>.

In one implementation, the computer system <NUM> includes processing resources <NUM>, a main memory <NUM>, a read-only memory (ROM) <NUM>, a storage device <NUM>, and a communication interface <NUM>. The computer system <NUM> includes at least one processor <NUM> for processing information stored in the main memory <NUM>, such as provided by a random access memory (RAM) or other dynamic storage device, for storing information and instructions which are executable by the processor <NUM>. The main memory <NUM> also may be used for storing temporary variables or other intermediate information during execution of instructions to be executed by the processor <NUM>. The computer system <NUM> may also include the ROM <NUM> or other static storage device for storing static information and instructions for the processor <NUM>. A storage device <NUM>, such as a magnetic disk or optical disk, is provided for storing information and instructions.

The communication interface <NUM> enables the computer system <NUM> to communicate with the PLADAR system <NUM> over a network link (e.g., a wireless or wired link). In accordance with examples, the computer system <NUM> receives PLADAR data <NUM> from the PLADAR system <NUM>. The executable instructions stored in the memory <NUM> can include configuration instructions <NUM>, which the processor <NUM> executes to generate a set of adjustment commands <NUM> to configure the adjustable parameters of the autonomous vehicle's PLADAR system <NUM> based on the PLADAR data <NUM> and the situational conditions of the autonomous vehicle <NUM>.

The processor <NUM> is configured with software and/or other logic to perform one or more processes, steps and other functions described with implementations, such as described by <FIG>, and elsewhere in the present application.

Examples described herein are related to the use of the computer system <NUM> for implementing the techniques described herein. According to one example, those techniques are performed by the computer system <NUM> in response to the processor <NUM> executing one or more sequences of one or more instructions contained in the main memory <NUM>. Such instructions may be read into the main memory <NUM> from another machine-readable medium, such as the storage device <NUM>. Execution of the sequences of instructions contained in the main memory <NUM> causes the processor <NUM> to perform the process steps described herein. In alternative implementations, hard-wired circuitry may be used in place of or in combination with software instructions to implement examples described herein. Thus, the examples described are not limited to any specific combination of hardware circuitry and software.

Claim 1:
A light detection and ranging (LIDAR) system comprising:
a laser configured to output a first laser beam;
a collimator configured to collimate the first laser beam on an axis to emit a second laser beam along a beam plane; and
a detector array configured to detect return light from the second laser beam, the return light reflecting off objects, the detector array comprising a plurality of photodetectors arranged on a circuit board; and
one or more processors configured to:
obtain data indicative of the return light from one or more of the photodetectors;
determine a misalignment between the beam plane and one or more of the photodetectors based, at least in part, on the data; and
generate one or more calibration parameters based on the misalignment, the one or
more calibration parameters associated with adjusting a position of at least one of the photodetectors.