Improving LIDAR Range Utilizing Pulse Coding
By employing pulse coding to apply pulse code offsets and decode reflected signals in LiDAR systems, the aliasing effect is mitigated, allowing for extended range detection and reduced ambiguity in LiDAR measurements.
Patent Information
- Application Number
- JP2024565310
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2022-05-06
- Filing Date
- 2023-05-08
- Publication Date
- 2025-06-03
AI Technical Summary
LiDAR systems face an aliasing effect that leads to range ambiguity, where signals from far targets are misinterpreted as reflections from closer targets due to the detector's limited range gate duration.
The implementation of pulse coding techniques, where a pulse code offset is applied to each laser pulse, allows for the integration of reflected signals into an avalanche histogram. This decoding process moves the received signals to their correct time bins based on the pulse code offsets, effectively resolving the aliasing effect.
The pulse coding method enhances the LiDAR system's ability to distinguish between reflections from targets within and outside the range, thereby extending the measurable range and reducing range ambiguity.
Smart Images

Figure 2025517143000001_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to improving LiDAR range using pulse coding.
Background Art
[0002] LiDAR (Light Detection And Ranging) technology provides a method for directly measuring the distance to an object from a LiDAR sensor. A LiDAR device generally includes a transmitter and a receiver or sensor co-located within the same housing. The LiDAR transmitter emits light such as a pulsed laser beam that is reflected from an object in its path. The subsequently reflected light is detected by the LiDAR sensor, and the detected signal is analyzed to determine the range of the object or target, i.e., the distance between the target and the LIDAR sensor. Such LiDAR range measurements are essentially limited by the transmission delay, i.e., the time required for the light pulse to travel the round-trip distance between the detector and the target or the Time-Of-Flight (TOF). When considering the speed of light in air, the TOF is 0.67 microseconds for every 100 m of distance between the sensor and the target.
[0003] The LiDAR transmitter can repeatedly emit laser beam pulses at a fixed pulse emission rate. Once a pulse is emitted, the detector is activated or "armed" to detect the TOF reflection of the corresponding pulse during a time interval t. After the activation time t, the detector is disarmed. The time interval during which the detector is armed for each time is called a "range gate". The time interval assigned to each complete TOF measurement is called a "LiDAR frame".
[0004] The frame duration limits the TOF and thus limits the range of detectable objects to less than the maximum range, Rmax, or equivalently, the measurable range window 0 ≦ R ≦ R maxRestrict it inside. The LiDAR detector is generally armed for a finite period of time corresponding to R max For example, if the LiDAR emits a single photon pulse and the detector is armed for 2 μs, the optical sensor will only detect return signals with a TOF of 2 μs or less corresponding to a maximum range of 300 m. Light reflected by an object farther than 300 m will not have time to return to the detector before the range gate ends, and the detector will be disarmed.
SUMMARY OF THE INVENTION
PROBLEMS TO BE SOLVED BY THE INVENTION
[0005] If a series of optical pulses are emitted and the detector is repeatedly armed according to the pulse frequency, an aliasing effect may occur. If the emitted pulse is reflected by a target farther than R max the reflected signal can be detected in the LiDAR frame. The signal detected at a far target may be misinterpreted as the reflection of a pulse generated later at a closer target. Therefore, aliasing occurs because the detector cannot distinguish the pulse that generated the reflected signal.
MEANS FOR SOLVING THE PROBLEM
[0006] According to the aspects disclosed herein, a system, a method, and a computer program product are disclosed for receiving, by an inter-rider detector of a rider frame, a reflected laser signal corresponding to a laser pulse emitted by a rider emitter, where the received reflected laser signal is related to a time bin of the rider frame and is related to a pulse code offset applied to the laser signal emitted during that rider frame. The received reflected laser signal is integrated into an avalanche histogram in a time bin of the avalanche histogram corresponding to the time bin of the rider frame, where one or more additional received reflected laser signals are additionally integrated as a set of received reflected laser signals in the corresponding time bin of the avalanche histogram, and each one or more additional received reflected laser signals has a corresponding pulse code offset. The set of received reflected laser signals of each set of received reflected laser signals is decoded by moving the received reflected laser signals to the time bins of the avalanche histogram decoded based on the corresponding pulse code offsets.
[0007] The method includes the steps of: receiving, by a rider detector between rider frames, a reflected laser signal corresponding to a laser pulse emitted by a rider emitter, the received reflected laser signal being related to a time bin of the rider frame and a pulse code offset applied to the laser signal emitted between rider frames; integrating, by one or more computing devices, the received reflected laser signal, one or more additional received reflected laser signals being integrated additionally in an avalanche histogram as a set of reflected laser signals received in corresponding time bins of the avalanche histogram, each of the one or more additional received reflected laser signals having a corresponding pulse code offset, into a time bin of the avalanche histogram corresponding to the time bin of the rider frame; and decoding, by one or more computing devices, the set of received reflected laser signals by moving the received reflected laser signals of each set of received reflected laser signals to a time bin of the avalanche histogram decoded based on the corresponding pulse code offset.
[0008] The method further includes computing, by one or more computing devices, a distance to a target based on grouping of the reflected laser signals received within a time bin of the decoded avalanche histogram.
[0009] The method further includes decoding, by one or more computing devices, the set of received reflected laser signals by moving each of the received reflected laser signals of the set of received reflected laser signals to a time bin of the avalanche histogram periodically decoded based on a periodic remapping of the corresponding pulse code offset.
[0010] Also, when the laser signal emitted between the rider frames is a reflected laser signal, R is defined as the maximum distance to a target within the detectable range in the rider frame. max It is given to max . The method further includes computing, by one or more computing devices, the distance of a target within the range from N*R max to (N + 1)*R max based on the grouping of the received reflected laser signals within the time bins of the periodically decoded avalanche histogram, and the periodic remapping corresponds to the range.
[0011] Also, the receiving step further includes disarming the rider detector during a hold-off time period - the hold-off time period includes an arm offset applied to a subsequent rider frame, and the arm offset corresponds to an arm code that moves the time window for arming the rider detector between the subsequent rider frames -
[0012] Also, the pulse code offset is selected such that a subset of the set of received reflected signals is resolved into the dispersed bins of the avalanche histogram decoded corresponding to reflections from targets outside the range.
[0013] Also, the rider detector includes a single photon detector.
[0014] The system includes a lidar detector configured to receive a reflected laser signal corresponding to a laser pulse emitted by a rider emitter between rider frames - the received reflected laser signal being associated with a time bin of the rider frame and a pulse code offset applied to the laser signal emitted between rider frames - ; a memory; and at least one processor coupled to the memory and configured to perform operations, the operations including integrating the received reflected laser signal - one or more additional received reflected laser signals are additionally integrated in an avalanche histogram as a set of reflected laser signals received in corresponding time bins of the avalanche histogram, each of the one or more additional received reflected laser signals having a corresponding pulse code offset - in a time bin of the avalanche histogram corresponding to the time bin of the rider frame; and decoding the set of received reflected laser signals by shifting the received reflected laser signals of each set of received reflected laser signals to a time bin of the avalanche histogram decoded based on the corresponding pulse code offset.
[0015] The operations further include computing a distance to a target based on grouping of the received reflected laser signals within a time bin of the decoded avalanche histogram.
[0016] The operations further include decoding the set of received reflected laser signals by shifting each of the received reflected laser signals of the set of received reflected laser signals to a time bin of the avalanche histogram periodically decoded based on a periodic remapping of the corresponding pulse code offset.
[0017] Also, when the laser signal emitted between the rider frames is a reflected laser signal, it is given as R as the maximum distance to a target within the detectable range in the rider frame. max is given, and the operation further includes computing the distance of a target within the range from N*R max to (N + 1)*R max based on the grouping of the received reflected laser signals within the time bins of the periodically decoded avalanche histogram, and the periodic remapping corresponds to the range.
[0018] Also, the rider detector is configured to disarm during a hold-off time period - the hold-off time period includes an arm offset applied to a subsequent rider frame, and the arm offset corresponds to an arm code that shifts the time window for arming the rider detector between the subsequent rider frames.
[0019] Also, the pulse code offset is selected such that a subset of the set of received reflected signals is resolved into the scattered bins of the avalanche histogram decoded corresponding to reflections from targets outside the range.
[0020] A computer-readable medium has instruction words, and when the instruction words stored therein are executed by a computer device, the computing device is caused to perform operations. The instruction words cause a laser emitter to emit, and the reflected laser signal corresponding to the laser pulse received by a laser detector is integrated in the time bins of an avalanche histogram corresponding to the time bins of a lidar frame to which the reflected laser signal received by the lidar is related - where the received reflected laser signal is additionally related to a pulse code offset applied to the laser signal emitted during the lidar frame, and one or more additional received reflected laser signals are further integrated as a set of received reflected laser signals in the corresponding time bins of the avalanche histogram, each of the one or more additional received reflected laser signals having a corresponding pulse code offset - ; and decoding the set of received reflected laser signals based on the corresponding pulse code offset by moving each received reflected laser signal of the set of received reflected laser signals to the time bins of the decoded avalanche histogram.
[0021] The operations further include computing the distance to a target based on the grouping of the received reflected laser signals within the time bins of the decoded avalanche histogram.
[0022] The operations also include decoding the set of received reflected laser signals by moving each received reflected laser signal of the set of received reflected laser signals to the time bins of an avalanche histogram that is periodically decoded based on a periodic remapping of the corresponding pulse code offset.
[0023] Also, when the laser signal emitted during the lidar frame is a reflected laser signal, it is R as the maximum distance to a target within the detectable range within the lidar frame maxGiven to, the operation is based on the grouping of the received reflected laser signals within the time bins of the periodically decoded avalanche histogram, N*R max from (N + 1)*R max and further includes the step of computing the distance of the target within the range, and the periodic remapping corresponds to the range.
[0024] Also, the operation further includes a disarm step during a hold-off time period - the hold-off time period includes an arm offset applied to a subsequent lidar frame, and the arm offset corresponds to an arm code that moves a time window for arming the lidar detector between the subsequent lidar frames.
[0025] Also, the pulse code offset is selected such that a subset of the set of received reflected signals is resolved into the scattered bins of the decoded avalanche histogram corresponding to reflections from targets outside the range.
[0026] Also, the lidar detector includes a single photon detector.
Brief Description of the Drawings
[0027] The attached drawings are incorporated and form a part of the specification. It should be noted that in accordance with the general practice in the industry, various features are not drawn to actual size. The dimensions of various features can be arbitrarily increased or decreased for the clarity of the discussion.
[0028]
Figure 1
[0029]
Figure 2
[0030]
Figure 3
[0031]
Figure 4a
[0032]
Figure 4b
[0033]
Figure 5
[0034]
Figure 6a
[0035]
Figure 6b
[0036]
Figure 7
[0037]
Figure 8a
[0038]
Figure 8b
[0039]
Figure 9
[0040]
Figure 10a
[0041]
Figure 10b
[0042]
Figure 11
[0043]
Figure 12
[0044]
Figure 13
[0045]
Figure 14
[0046] In the drawings, like reference numerals generally indicate identical or similar elements.
[0047] Also, generally, the leftmost digit of a reference number identifies the drawing in which the reference number is first shown.
DETAILED DESCRIPTION OF THE INVENTION
[0048] This specification provides aspects of systems, apparatuses, devices, methods, and / or computer program products for improving range using pulse coding, and / or combinations and sub - combinations thereof.
[0049] Range ambiguity due to aliasing can be removed by detecting only the pulses emitted from the current frame. One way to distinguish pulses is to electronically identify them using pulse modulation. A temporary pulse coding scheme for application to a pulse rider system, particularly a pulse rider system used as a sensor for an autonomous vehicle, is disclosed herein. The temporary pulse coding scheme can be used to remove the aliasing effect of the rider using an Avalanche histogram and appropriate pulse decoding techniques. Alternatively, pulse coding may be used by leveraging aliasing measurements to extend the dynamic range of the rider system. That is, instead of discarding the reflected signals from distant objects identified as being associated with laser pulse signals emitted during previous rider frames, this information is stored and used to calculate the range of distant objects, and thus effectively the R m value can be arbitrarily increased to a large range. Also, pulse coding can be combined with arm coding to remove the dead zone during the time when the detector is disarmed.
[0050] The term "vehicle" refers to all mobile transportation means that can carry one or more human passengers and / or cargo and are driven by all forms of energy. The term "vehicle" includes, but is not limited to, automobiles, trucks, vans, trains, autonomous vehicles, airplanes, and aerial drones. An "autonomous vehicle" (or "AV") is a vehicle that has a processor, programming instructions, and drive system components and can be controlled by the processor without the need for a human driver. An autonomous vehicle may be fully autonomous in that a human driver is not required for most or all driving conditions and functions, or may be semi-autonomous in that a human driver may be required for certain conditions or certain operations, or in that a human driver may be able to override the vehicle's autonomous system and control the vehicle.
[0051] In particular, the present solution is described herein in the context of autonomous vehicles. However, the present solution is not limited to applications of autonomous vehicles. The present solution may be used in other applications such as robotic applications, radar system applications, metric applications, and / or system performance applications.
[0052] FIG. 1 shows an exemplary autonomous vehicle system 100 according to one aspect of the present disclosure. System 100 includes a vehicle 102a that travels along a road in a semi-autonomous or autonomous mode. Vehicle 102a is also referred to herein as AV102a. AV102a may include, but is not limited to, a land vehicle (similar to that shown in FIG. 1), an airplane, or a ship.
[0053] AV102a is generally configured to detect nearby objects 102b, 114, 116. The objects may include, but are not limited to, vehicles 102b, bicycle riders 114 (e.g., bicycle riders, electric scooter riders, motorcycle riders, or similar riders), and / or pedestrians 116.
[0054] As shown in FIG. 1, AV102a may include a sensor system 111, an on-board computing device 113, a communication interface 117, and a user interface 115. The autonomous vehicle 101 may also include certain components included in the vehicle (e.g., similar to those shown in FIG. 2), which may be controlled by the on-board computing device 113 using various communication signals and / or instructions (e.g., acceleration signals or instructions, deceleration signals or instructions, steering signals or instructions, brake signals or instructions, etc.).
[0055] As shown in FIG. 2, the sensor system 111 may include one or more sensors coupled to and / or included in AV102a. For example, such sensors may include, without limitation, a LiDAR system, a radio detection, and a RADAR system, a LADAR system, a SONAR system (sound navigation and ranging), one or more cameras (e.g., visible light cameras, infrared cameras, etc.), temperature sensors, position sensors (e.g., GPS (Global Positioning System), etc.), orientation sensors, fuel sensors, motion sensors (e.g., IMU (Inertial Measurement Unit), etc.), humidity sensors, occupancy sensors, or the like. The sensor data may include information describing the position of objects in the surrounding environment of AV102a, information about the environment itself, information about the motion of AV102a, information about the vehicle route, or the like. As AV102a moves over the ground surface, at least some of the sensors may be able to collect data with respect to the surface.
[0056] As will be described in more detail, AV102a may be configured by a rider system, such as rider system 264 of FIG. 2. The rider system may be configured to emit light pulses 104 to detect objects located within the distance or range of distances of AV102a. The light pulses 104 may be incident on one or more objects (e.g., AV102b) and reflected back to the rider system. The reflected light pulses 106 incident on the rider system may be processed to determine the distance of the object relative to AV102a. The reflected light pulses may be detected using a light detector or an array of light detectors arranged and configured to receive the light reflected back to the rider system on some sides. Rider information, such as data of the detected object, is communicated from the rider system to an on-board computing device, such as on-board computing device 220 of FIG. 2. AV102a can transmit rider data to a remote computing device 110 (e.g., a cloud processing system) via communication network 108. The remote computing device 110 may be composed of one or more servers to process one or more processes of the technologies described herein. The remote computing device 110 may also be configured to communicate data / command words with AV102a, servers, and / or database 112 via network 108.
[0057] It should be noted that a rider system for collecting data on the surface may be included in systems other than AV102a, such as, without limitation, other vehicles (autonomous or in motion), robots, satellites, etc.
[0058] Network 108 may include one or more wired or wireless networks. For example, network 108 may include a cellular network (e.g., LTE (Long-Term Evolution) network, CDMA (Code Division Multiple Access) network, 3G network, 4G network, 5G network, other types of next-generation networks, etc.). The network may also include a public land mobile network (PLMN), a local area network (LAN), a wide area network (WAN), a metropolitan area network (MAN), a telephone network (e.g., PSTN (Public Switched Telephone Network)), a private network, a temporary network, an intranet, the Internet, an optical fiber infrastructure network, a cloud computing network, and / or a similar network to this, and / or a combination of such networks or other types of networks.
[0059] AV102a can search, receive, display, and edit information generated by a local application or transmitted via network 108 in database 112. Database 112 may be configured to store and supply raw data, indexed data, structured data, map data, program instruction words, or other known configurations.
[0060] Communication interface 117 may be configured to allow communication between AV102a and an external system (e.g., an external device, a sensor, another vehicle, a server, a data store, a database, etc.). Communication interface 117 can utilize protocols, protection systems, encodings, formats, packagings, etc. known currently or in the future. For example, without limitation, there are Wi-Fi, infrared links, Bluetooth, etc. User interface system 115 may include a keyboard, a touch screen display device, a microphone, and a speaker, etc., and may be part of the peripheral devices embodied within AV102a.
[0061] FIG. 2 shows an exemplary system architecture 200 for a vehicle according to one aspect of the present specification. The vehicle 102a and / or 102b of FIG. 1 may have the same or a similar system architecture as that shown in FIG. 2. Therefore, the following discussion of the system architecture 200 is sufficient to understand the vehicles 102a, 102b of FIG. 1. However, other types of vehicles are considered to be within the scope of the technology described herein and may include more or fewer elements as described in connection with FIG. 2. As a non-limiting example, an aerial vehicle may exclude a brake or a gear controller but may include altitude sensors. As yet another non-limiting example, a water vehicle may include depth sensors. A person of ordinary skill in the art will understand, as is well known, that other propulsion systems, sensors, and controllers may be included depending on the vehicle type.
[0062] As shown in FIG. 2, the system architecture 200 includes an engine or motor 202 and various sensors 204-218 for measuring various vehicle medium variables. In a gas-powered or hybrid car with a fuel-driven engine, the sensors may include, for example, an engine temperature sensor 204, a battery voltage sensor 206, an engine RPM sensor 208, and a throttle position sensor 210. If the vehicle is an electric or hybrid car, the vehicle may have an electric motor, and thus, sensors such as a battery monitoring system 212 (measuring the current, voltage, and / or temperature of the battery), a motor current 214 and voltage 216 sensor, and a motor position sensor 218 such as a resolver and an encoder.
[0063] Actuation medium variable sensors common to both types of vehicles include, for example, position sensors 236 such as an accelerometer, a gyroscope, and / or an inertial measurement unit; a speed sensor 238; and an odometer sensor 240. The vehicle may also have a clock 242 that is used to determine the vehicle time while the system is operating. The clock 242 may be encoded in the vehicle on-board computing device, be a separate device, or various clocks may be used.
[0064] The vehicle also includes various sensors that operate to collect information about the environment in which the vehicle travels. Such sensors may include, for example, a position sensor 260 (e.g., a GPS device); an object detection sensor such as one or more cameras 262; a lidar system 264; and / or a radar and / or ultrasonic system 266. The object detection sensor may also include an environmental sensor 268 such as a precipitation sensor and / or a peripheral temperature sensor. The object detection sensor enables the vehicle to detect objects within a given distance range from all directions of the vehicle 200, while the environmental sensor collects data on the environmental conditions within the driving area of the vehicle.
[0065] During operation, information is communicated from the sensors to the vehicle on-board computing device 220. The on-board computing device 220 may be implemented using the computer system of FIG. 14. The vehicle on-board computing device 220 analyzes the data collected by the sensors and selectively controls the operation of the vehicle according to the analysis results. For example, the vehicle on-board computing device 220 may control braking via the brake controller 222; direction via the steering controller 224; speed and acceleration via the throttle controller 226 (in the case of a gasoline-powered vehicle) or the motor speed controller 228 (e.g., the current level controller of an electric vehicle); the differential gear controller 230 (in the case of a vehicle with a transmission); and / or other controllers. The auxiliary device controller 254 may be configured to control one or more auxiliary devices such as a test system, auxiliary sensors, mobile devices carried by the vehicle, and the like.
[0066] Geographical location information may be communicated from the position sensor 260 to the on-board computing device 220, and the on-board computing device 220 may access a map of the environment corresponding to the location information to determine known fixed features of the environment such as distances, buildings, stop signs, and / or stop / go signals. Object detection information captured by a sensor such as the camera 262 and / or the lidar system 264 is communicated from the sensor to the on-board computing device 220. The object detection information and / or the captured image is processed by the on-board computing device 220 to detect objects near the vehicle 200. Known or known techniques for detecting objects based on sensor data and / or captured images may be used in the aspects disclosed in this document.
[0067] Lidar information is communicated from the lidar system 264 to the on-board computing device 220. Also, the captured image is communicated from the camera 262 to the vehicle on-board computing device 220. The lidar information and / or the captured image is processed by the vehicle on-board computing device 220 to detect objects near the vehicle 200. The manner in which object detection is performed by the vehicle on-board computing device 220 includes such functions as detailed in this specification.
[0068] The on-board computing device 220 includes a routing controller 231 that generates a navigation route from the starting position to the destination position of the autonomous vehicle, or can communicate with this controller. The routing controller 231 can access the map data store to identify possible routes and road segments that the vehicle can move from the starting position to the destination position. The routing controller 231 can score the possible routes to identify a preferred route to reach the destination. For example, the routing controller 231 can generate a navigation route that minimizes the Euclidean distance traveled in the route, or other cost functions, and can additionally access traffic information and / or estimates that can affect the time it takes to travel a specific route. Depending on the implementation, the routing controller 231 can use various routing methods such as the Dijkstra algorithm, the Bellman-Ford algorithm, or other algorithms to generate one or more routes. The routing controller 231 can also generate a navigation route that reflects the expected conditions of the route (e.g., the current day of the week, or the current time zone, etc.) using traffic information, so the route generated for travel during rush hour may be different from the route generated for late-night travel. The routing controller 231 can also generate two or more navigation routes to the destination and send two or more of such navigation routes to the user so that the user can select from among various possible routes.
[0069] In various aspects, the on-board computing device 220 can determine perception information about the surrounding environment of the AV102a. Based on sensor data provided by one or more sensors and the acquired position information, the on-board computing device 220 can determine perception information about the surrounding environment of the AV102a. The perception data may include information related to one or more objects in the environment of the AV102a. For example, the on-board computing device 220 can process sensor data (e.g., lidar or RADAR data, camera images, etc.) to identify objects and / or features in the environment of the AV102a. The objects may include traffic signals, road boundaries, other vehicles, pedestrians, and / or obstacles, etc. The on-board computing device 220 can use currently or hereafter known object recognition algorithms, video tracking algorithms, and computer vision algorithms (e.g., repeatedly tracking objects frame by frame over various periods) to determine the recognition.
[0070] In some aspects, the on-board computing device 220 can also determine the current state of an identified object in the environment. The state information can, without limitation, for each object, include the current position; the current speed and / or acceleration, the current direction; the current pose; the current shape, size, or footprint; the type (e.g., vehicle vs. pedestrian vs. bicycle vs. stationary object or obstacle); and / or other state information.
[0071] The on-board computing device 220 can perform one or more predictions and / or predictive operations. For example, the on-board computing device 220 can predict the future position, trajectory, and / or movement of one or more objects. For example, the on-board computing device 220 can use perception information (e.g., the state data of each object including the determined estimated shape and pose as discussed below), position information, sensor data, and / or other data that describes the past and / or current state of the object, AV102a, the surrounding environment, and / or their relationships to at least partially predict the future position, trajectory, and / or movement of the object. For example, if the object is a vehicle and the current driving environment includes an intersection, the on-board computing device 220 can predict whether the object is likely to go straight or turn. If the recognition data indicates that there is no traffic signal at the intersection, the on-board computing device 220 can also predict whether the vehicle should come to a complete stop before entering the intersection.
[0072] In various aspects, the on-board computing device 220 can determine a motion plan for the autonomous vehicle. For example, the on-board computing device 220 can determine a motion plan for the autonomous vehicle based on the recognition data and / or prediction data. Specifically, given a prediction for recognition data that is different from the future position of a nearby object, the on-board computing device 220 can determine an operation plan for the AV102a that best explores the autonomous vehicle with respect to the object at the future position.
[0073] On one side, the on-board computing device 220 can receive predictions and make decisions regarding how to handle objects and / or actors in the environment of AV102a. For example, in the case of a particular actor (e.g., a vehicle having a given speed, direction, turning angle, etc.), the on-board computing device 220 can determine whether to overtake, yield, stop, or pass, based on, for example, traffic conditions, map data, the state of the autonomous vehicle, etc. Further, the on-board computing device 220 can also plan a route and driving medium variables (e.g., distance, speed, and / or turning angle) for AV102a to move from a given route. That is, for a given object, the on-board computing device 220 determines what to do with the object and how to accomplish this. For example, for a given object, the on-board computing device 220 can determine to pass the object and can determine whether to pass from the left or right side of the object (including operating medium variables such as speed). The on-board computing device 220 can also evaluate the risk of collision between the detected object and AV102a. If the risk exceeds an acceptable threshold, it can be determined whether a collision can be avoided if the autonomous vehicle follows a defined vehicle trajectory or implements one or more dynamically generated emergency maneuvers within a predefined period (e.g., N milliseconds). If a collision can be avoided, the on-board computing device 220 can execute one or more controls as commands to perform a cautious maneuver (e.g., slightly decelerate, accelerate, change lanes, or change direction). In contrast, if a collision cannot be avoided, the on-board computing device 220 can execute one or more control commands to perform an emergency maneuver (e.g., braking and / or changing the driving direction).
[0074] As discussed above, planning and control data related to the movement of the autonomous vehicle are generated for execution. The on-board computing device 220 can control braking, for example, via a brake controller, control direction via a steering controller, control speed and acceleration via a throttle controller (in the case of a gasoline-powered vehicle), or a motor speed controller (e.g., a current level controller for an electric vehicle), control speed and acceleration via a differential gear controller (in the case of a vehicle with a transmission), and control speed and acceleration via other controllers.
[0075] FIG. 3 shows an exemplary architecture for a rider system 300 according to an aspect of the present specification. The rider system 264 of FIG. 2 can be identical or substantially similar to the rider system 300. Thus, the discussion of the rider system 300 is sufficient to understand the rider system 264 of FIG. 2. It should be noted that the rider system 300 of FIG. 3 is merely an exemplary rider system, and other rider systems can be additionally completed according to the aspects of the present specification, which would be understandable to one of ordinary skill in the art.
[0076] As shown in FIG. 3, the rider system 300 includes a housing 306 that can rotate 360 degrees about a central axis such as the hub of the motor 316 or the axle 315. The housing may include an emitter / receiver opening 312 made of a material transparent to light. Although a single opening is shown in FIG. 3, the present solution is not limited in this regard. In other scenarios, multiple openings for emitting and / or receiving light may be provided. In any scenario, the rider system 300 can emit light through one or more openings 312 and receive light reflected towards the one or more openings 312 as the housing 306 rotates around the internal components. In an alternative scenario, the outer shell of the housing 306 can be a fixed dome made of a material that is at least partially transparent to light, with a rotatable component inside the housing 306.
[0077] Inside the rotating shell or the fixed dome, there is an optical emitter system 304 configured and arranged to generate and emit optical pulses through one or more laser emitter chips or other light-emitting devices, through the aperture 312 or the transparent dome of the housing 306. The optical emitter system 304 may include any number of individual emitters (e.g., 8 emitters, 64 emitters, or 128 emitters). The emitters can emit light of substantially the same intensity or varying intensities. The lidar system also includes a photodetector 308 including a photodetector or an array of photodetectors arranged and configured to receive the light reflected by the system. The optical emitter system 304 and the photodetector 308 will rotate with the rotating shell or rotate inside the fixed dome of the housing 306. One or more optical element structures 310 are located in front of the optical emitter system 304 and / or the photodetector 308 and can serve as one or more lenses or waveplates that focus the light passing through the optical element structure 310.
[0078] One or more optical element structures 310 may be arranged in front of a mirror (not shown) in order to focus the light passing through the optical element structure 310. As shown below, the system includes an optical element structure 310 arranged in front of a mirror and coupled to the rotating element of the system such that the optical element structure 310 rotates with the mirror. Alternatively, or in addition to this, the optical element structure 310 may include various such structures (e.g., lenses and / or waveplates). Optionally, the various optical element structures 310 may be arranged in an array or integrally arranged with the shell portion of the housing 306.
[0079] The rider system 300 includes a power unit 318, a motor 316, and electronic components that supply power to the light emitting unit 304. The rider system 300 also includes an analyzer 314 having components such as a processor 322 and a non-transitory computer-readable memory 320, where the system is configured to receive data collected by the light detector device, analyze this to measure the characteristics of the received light, and generate information that can be used by the connected system to make decisions regarding operation in the environment where the data was collected. Optionally, the analyzer 314 can be integrated with the rider system 300 as shown, or can be partially or wholly external to the rider system and communicatively coupled to the rider system via a wired or wireless communication network or link.
[0080] Figures 4a and 4b show a rider device 400 according to one aspect of the present specification. In some aspects, the rider device 400 is attached to an autonomous vehicle (AV) 102a or a driverless vehicle. The rider device 400 can be attached to the roof of the AV 102a for a clear field of view to emit and detect a laser signal 110 such as a pulsed laser beam. As the AV 102a passes through the environment, the rider device 400 can be used alone or in conjunction with other devices such as a camera to determine the radial distance (range) of various objects in the environment relative to the AV 102a. Objects of interest in the environment of the AV 102a include, for example, buildings, trees, other vehicles, pedestrians, and traffic signals, which are generally on the ground or located slightly above.
[0081] Referring to FIG. 4b, the laser beam can pass through a selected range of azimuth angle θ and elevation angle φ and propagate radially outward from the emitter of the lidar device 400 to form a laser signal 110, which can be reflected by an object near the AV102a. As shown in FIG. 4b, in the case of the lidar device 400 mounted on the roof of the AV102a, the laser beam can sweep through the entire 360 degrees of the azimuth angle θ while passing through only 45 degrees of the elevation angle φ, so that related objects of interest located at a lower altitude can be detected best. The lidar sweep data can be stored and processed locally, for example, by the on-board computing device 220. Alternatively, the lidar sweep data can be relayed to a remote computing system for immediate processing and / or storage for future reference. For the autonomous driving function, in addition to using the lidar data to track traffic, obstacles, and roads, the lidar data can also be used to map the AV102a for navigation using the GPS system.
[0082] Within an exemplary lidar device 400, the techniques disclosed herein can help improve the lidar device 400's ability to perform ranging. The lidar device 400 is shown integrated with the AV102a in FIG. 4a and having the features as described herein, but the lidar device 400 can be implemented in other contexts as well. Also, the techniques described herein applied to the lidar device 400, such as time-pulse coding and related statistical analysis, can be used outside the lidar context.
[0083] FIG. 5 shows a lidar system 500 for operating the lidar device 400 shown in FIGS. 4a and 4b to determine the range of a target 502 from some aspects. The lidar system 500 includes a lidar device 400 and a controller 504 coupled to the lidar device 400. The lidar device 400 includes a transmitter 506 and a detector 508. In one aspect, the transmitter 506 is a pulsed laser source configured to emit laser beam pulses in a radial pattern as shown in FIG. 4b.
[0084] In some aspects, the detector 508 is configured to detect laser pulse reflections from a target using a single-photon type detector that indicates whether one or more photons have been received. The single-photon detector is not sensitive to the number of photons in the reflected pulse and simply serves as a digital optical switch that indicates whether one or more photons have been received. Multiple pulses, or time averaging for multiple pulses, can be used to form an analog contrast from such a receiver. Then, the dynamic range of the measurement is extended according to the number of pulses used. If only a small subset of multiple pulses triggers a detection event, the signal intensity returned from the target is low. If a large subset of pulses triggers a detection event, the intensity at that time is high.
[0085] In some aspects, the controller 504 includes a pulse coder 510 and a pulse decoder 512 for providing signal processing functions. The controller 504 can be programmed to apply time pulse coding to the laser pulses emitted via the pulse coder 510 and decode the signals detected via the pulse decoder 512 to distinguish reflections from nearby targets and reflections from distant targets. The pulse coder 510 and the pulse decoder 512 may be implemented in hardware (e.g., using an ASIC (Application Specific Integrated Circuit) or software, or a combination thereof).
[0086] The rider device 400 and the controller 504 are within the contour of the vehicle 102a and are depicted as separate entities, according to one aspect of this specification. However, one of ordinary skill in the relevant art will understand that the particular arrangement of the rider device 400 and the controller 504 may include a variety of arrangements that include coupling to a single device, and that this depiction is not limiting.
[0087] FIG. 6a shows a timing diagram 600 for a pulsed laser signal emitted and received from a rider system that generates aliasing. The operation of the rider system includes the emission of various laser pulses (e.g., optical pulse 606 or optical pulse 608) corresponding to respective rider frames. FIG. 6a shows a graph of distance r versus time t. The distance r represents the range corresponding to the radial distance of the target from the detector. Target A within the exemplary range is at a distance R max less than R A and is located. Target B outside the exemplary range is at a distance R max between R max and 2R B and is located. FIG. 6a shows three consecutive temporal rider frames N - 1, N, and N + 1. For illustrative purposes, in the exemplary aspect shown in FIG. 6a, each rider frame includes 13 time bins numbered from 0 to 12, but one of ordinary skill in the art will understand that the number of time bins and the corresponding time resolution can be selected according to the desired resolution. However, an alternative exemplary aspect may have more than 1000 time bins and may have a time resolution of 0.5 ns or less. Pulses are emitted by the rider device 400 at regular time intervals (three are shown) at the start of each rider frame (shown as black diamonds in FIG. 6a and depicted as occurring first in the frame for illustrative purposes, i.e., without dithering, which will be discussed later). For example, optical pulse 608 is emitted at the start of rider frame N in time bin 0 and reflects off target A. The reflected optical pulse 610 is detected within the same rider frame N in time bin 8.
[0088] When a target B outside the range reflects a pulse (instead of a target within the same range as target A), the reflected light pulse 612, like the emitted light pulse 608, is detected in time bin 2 in a subsequent lidar frame, in this case frame N + 1. Similarly, in this case, the reflected light pulse 614 of target B outside the range associated with transmission in time bin 0 of the previous lidar frame N - 1 is detected in time bin 2 in lidar frame N. Targets further outside the range may be detected after various lidar frames.
[0089] FIG. 6b shows an avalanche histogram 620 that floats the number of time measurements received within the duration of the data frame for the example shown in FIG. 6a. When integrating the measurements of various lidar frames within the duration of the data frame, a histogram is generated from which the points of the point cloud can be extracted. The avalanche histogram 620 shows that all the measured Rs within the range in each lidar frame A are received in time bin 8, and all the measurements R B outside the range are received in time bin 2. Thus, in the case of the avalanche histogram 620, when R A is actually the only target within the range, the targets are detected at R A and R B . The minimum number of lidar frames required for the data frame is determined by the number of ranges on one side, by which the pulse can be reflected and received. For example, if a pulse emitted from frame N - 1 is received in frame N + 1, all three intermediate frames must be considered to detect the reflecting object.
[0090] The avalanche histogram 620 shows the target R outside the range BSince targets within the same time bin, i.e., within the range that generates equivalent histogram detection in time bin 2, cannot be distinguished, the detected reflections result in an ambiguity regarding the location of the actual in-range target due to the two reflection sets being combined to the same measurement value within the histogram. Thus, FIG. 6a shows the range ambiguity generated by the aliasing effect shown in FIG. 6b. Target R outside the range B even if the signal received at A is weaker than the signal received at in-range target R B can generate range ambiguity as long as the signal received at satisfies the detection probability criterion.
[0091] To resolve the effect of range ambiguity, pulse coding techniques can be used to distinguish reflections from targets within the range from reflections from targets outside the range (in the case of targets outside the range, a specific range). FIG. 7 is a flow diagram showing the steps of a pulse coding method 700 for removing aliasing in a lidar range measurement performed by a lidar device 400 according to some aspects. Referring to FIG. 7, a set of laser pulses encoded at step 702 is emitted and propagates towards target A as shown in association with an exemplary timing diagram 800 in FIG. 8. FIG. 8a shows, according to some aspects, a timing diagram 800 for the pulsed laser signals emitted and received by a lidar system 500 operating with time pulse coding designed to remove aliasing. FIG. 8a shows a graph of distance r and time t similar to the graph shown in FIG. 6a. Again, in FIG. 8a, the set of pulses indicated by the black diamonds are emitted by the lidar device 400 in consecutive lidar frames N-1, N, and N+1. Instead of pulse emission occurring at time bin 0 of each lidar frame, in FIG. 8a pulse emission occurs at irregular time intervals (three shown), i.e., with different offset times or timing offsets from each other. The timing offset serves as a label or code identifying the point in time at which the pulse was emitted. Thus, the sequence of time offsets provides time encoding and, when properly decoded, ambiguates the received pulses and selects the measurements corresponding to targets within the range of distances.
[0092] As shown in FIG. 8a, in rider frame N-1, the pulse is emitted with a time offset in time bin 1; in rider frame N, the pulse is emitted with another time offset in time bin 3; in rider frame N+1, the pulse is emitted without a time offset in time bin 0. Thus, the pulse code applied to the emission of such laser pulses is [1, 3, 0]. The emission of such pulses coincides with the time bins for coding purposes, but the time offset in the analog sense is called dither and will be described in more detail below.
[0093] Referring to FIG. 7, at step 704, the rider device 400 receives laser signals reflected from targets A and B in association with an exemplary timing diagram 800, as shown in FIG. 8a according to some aspects. For example, an optical pulse 808 coded by the pulse coder 510 is emitted from the rider device 400 in rider frame N, and the emission coincides with time bin 3. The emitted optical pulse 808 is shown as being reflected at target A within range as the reflected optical pulse 810. The reflected optical pulse 810 is detected within the same rider frame N in time bin 11. Similarly, when the emitted optical pulse 808 is reflected at target B outside the range, the reflected optical pulse 812 is detected in the next rider frame N+1 in time bin 5. On the other hand, an optical pulse 814 emitted from rider frame N+1 is emitted from time bin 0 and is shown as being reflected at target A within range as the reflected optical pulse 816. The reflected optical pulse 816 is detected within the same rider frame N+1 in time bin 8.
[0094] Put simply, in the scenario presented in FIG. 8a, for the rider frame N-1, the pulse signal is offset by only one bin; for the rider frame N, the pulse is offset by three bins; for the rider frame N+1, the pulse offset is 0, i.e., no offset is applied. At stage 706 of FIG. 7, the reflected pulse signal is integrated into the data frame. Assuming a data frame selected to integrate such three rider frames, the effective pulse code applied to this data frame is, as a non-limiting example, [1, 3, 0].
[0095] The pulse code implemented using various offsets can be solved (decoded) before creating the avalanche histogram. The numbers displayed in the bins corresponding to each received reflected pulse (e.g., 810 and 816) indicate the pulse offset applied to a single pulse emitted from the specific rider frame. Such offset values are tagged to the bins. Since the numbers displayed in each bin match the offset of the signals emitted from within the same frame, by inverting the offset for each reflection detected within the rider frame in all rider frames within the data frame, a cumulative effect of integrating the reflected pulses received by individuals within the range occurs. The reflected pulses received by individuals outside the range move the bins in a non-consistent manner in the rider frame, so the cumulative effect in the data frame within the avalanche histogram can be ignored (distinguishable from noise).
[0096] FIG. 8b shows, by way of non-limiting example, two histograms resulting from the integration of the three lidar frames shown in FIG. 8a. The upper histogram 820 is a coded histogram that includes detection events with an embedded pulse offset. The lower histogram 822 depicts the detection event histogram after removing the pulse offset and decoding. At stage 708 of FIG. 7, the pulses received for a given data frame are integrated into a coded histogram, e.g., coded histogram 820. Then, at stage 710, a histogram with the offset removed and decoded, e.g., decoded histogram 822, is generated. After the decoding operation, detections from reflections of objects within range in the lower histogram 822 all coincide within a single histogram time bin, while detection events for objects outside the range are instead dispersed in the histogram and can be seen as non-coincident. As a result, the pulse coding operation depicted in this example suppresses the detection of objects outside the range beyond distance R max because the dispersed detection events can be rejected as noise.
[0097] Finally, at stage 712, the position of the coincident events within the decoded histogram is used to determine the distance to the in-range target using the decoded histogram configured to aggregate the in-range received pulses.
[0098] FIG. 9 shows an alternative coding scheme 900 that may be applied by the pulse decoder 512, in part. Unlike the histograms of FIGS. 8a and 8b showing the decoding process for targets within range that back out the offset within a single frame, FIG. 9 shows, in this case, from R max to 2R maxA method of using histogram 820 to detect targets inside and outside a range is shown. The alternative coding scheme 900 derives a cyclic pulse code from the original time pulse code and uses the cyclic pulse code to generate a cyclically decoded avalanche histogram 922 for out-of-range detection for R max <R B <2R max This can be accomplished by using the next periodic transformation of the original pulse code [1, 3, 0] to map [1→0’, 3→1’, 0→3'] to obtain the periodic code [0’, 1’, 3']. Using the periodic code, the original avalanche histogram 820 is converted to an avalanche histogram 920. Decoding uses the offset labeled in the leftmost time bin of the avalanche histogram 920 to perform subtraction for R B and uses the offset labeled in the rightmost time bin of the avalanche histogram 920 to perform subtraction for R A The first aliasing reflection of R B coincides at time bin 2 and can be extracted, dispersing the clear detection times for closer multiple reflections of R max within the maximum range R A
[0099] Effectively, using the alternative coding scheme 900 doubles the range within which the target distance can be measured from R max to 2R max without increasing the total measurement time because targets within this further range can be calculated in the same data frame. By emitting various pulses one by one per lidar frame and using the offset unique to that lidar frame, reflections can be distinguished within various ranges. One decoding sequence [1, 3, 0] provides measurements in the near range from the first zone to R max and the second cyclic decoding sequence [0, 1, 3] is periodically related to the first decoding sequence for R max and 2R max Provide measurements in an even further range in a second zone between it and
[0100] A person of ordinary skill in the relevant technical field will understand that this approach of approaching can be extended to detect targets in additional zones. For example, a third cyclic decoding sequence [3, 0, 1] can be used to decode reflections from targets in a third zone in the range between 2R max and 3R max and. Generally, by appropriately selecting N pulses in the data frame and the offset in the lidar frame, the range up to N*R max can be clearly divided into distinct zones.
[0101] In one aspect, while maintaining the same maximum range, increase the pulse rate by a factor of 2 or increase it, and select a decoding sequence to define various detection zones. Depending on the time pulse code used, one area becomes a detection zone, and other zones are treated as out-of-range or interference zones. The advantage of this approach of approaching is that the more pulses are emitted per unit time, the more detection times there will be, thus providing a way to double the number of pulse statistics used to resolve targets.
[0102] Figures 10a - 10b show additional detailed information regarding the timing signals within the frame. Figure 10a shows a series of frames 1000 where the hold-off time 1004, or "dead zone", is the same for all frames (e.g., lidar frame 1006). Figure 10b shows a series of frames 1020 to which the arm coding procedure described below is applied. The dead zone of each frame is different.
[0103] As described above, after each range gate having 13 time bins, there is a hold-off time during which the detector is disarmed and cannot detect reflected pulses. In such a context, a lidar frame includes the range gates of 13 time bins and the hold-off time. In some aspects, the hold-off time may include a combination of frame dead time, all dithers, and / or all arm offsets, as shown in FIG. 12. In the case of many single photon detectors, the hold-off time is imposed by an intrinsic reset time (e.g., related to an RC time constant). Alternatively, the hold-off time may be intentionally introduced to prevent spurious detections immediately after a previous detection.
[0104] 0 to 2R max To detect an object over a continuous range up to, pulse coding can be combined with arm coding as described above. Pulse coding changes the laser emission time between frames, while arm coding changes the timing at which the detector is armed and disarmed from one frame to the next using an appropriate “arm offset”. In particular, since the hold-off time can be shifted relative to the duration of a lidar frame, the detector is not disarmed during the same range in all lidar frames. This can be accomplished by varying the period within each frame during which the detector is armed.
[0105] The use of a fixed hold-off time restricts the detector to measuring only pulses reflected at a distance between O and f*R max where f is a fraction with unit interval O < f < 1. As shown in the first frame series 1000, if the detector is armed at the start of the range gate and disarmed at the time of reflection at distance f*R max then, from f*R max to R maxAll reflections that reflect within the range up to reach the detector during the hold-off time 1004, creating a "dead zone" where the object cannot be seen. However, by using arm coding, the range interval at which the detector is armed can be changed from [0, f - R max to [(1 - f)·R max , R max , so detection is possible in all ranges between O and R max .
[0106] Using arm coding, the hold-off time can vary. However, if the minimum hold-off time is sufficient, the detector maintains good performance. The minimum hold-off time 1024 is maintained between the disarming of the detector between LiDAR frames N - 1 and 1026 and the arming of the detector in LiDAR frame N. In some aspects, the length of the range gate may be a fixed value, and the hold-off time may be a variable value greater than or equal to the minimum hold-off time 1024. For example, if the length of the lidar frame is 80m, the length of the range gate may be fixed at 72m, and the hold time may be between 4m and 12m, with 4m being the minimum hold-off time 1024. In some aspects, the length of the range gate may be a variable value having a hold-off time that is a fixed value set to the minimum hold-off time 1024. For example, for a lidar frame length of 80m, the length of the range gate may vary between 74m and 76m, and the hold-off time may be constant at 4m. In some aspects, both the length of the range gate and the hold-off time may be variable. For example, for a lidar frame length of 80m, the length of the range gate may vary between 74m and 76m, and the hold-off time may vary between 4m and 6m, with 4m being the minimum hold-off time 1024. A person skilled in the art should understand that this is an example of the length of the range gate and the minimum hold-off time, and other values are additionally considered in accordance with the aspects of this specification. By applying the arm coding technique described herein and introducing arm offsets 1028a, 1028b, the start and end of range gates such as subsequent range gates in range gate 1022 and a series of frames 1020 can be moved to remove all dead zones. Thus, by combining arm coding with the pulse coding of the laser emission, the lidar device 400 can measure objects over a continuous range from O to 2R max up to.
[0107] FIG. 11 shows an exemplary non-limiting pulse code sequence of various lengths N by some sides. N is the number of pulses accumulated for statistical analysis to extract a single point in the lidar point cloud corresponding to a single target in a scene. Each digit of the pulse code sequence shown in FIG. 11 is a time offset applied between separate frames. For example, N = 13 indicates 13 time offsets applied over 13 consecutive frames and then repeats every 13 lidar frames.
[0108] Each pulse code sequence shown in FIG. 11 starts with a time offset applied during the first lidar frame, increases to a maximum offset near the approximate middle of the sequence, and repeats in reverse order. For example, the first pulse code sequence with N = 12 starts with a time offset of 1 during the first lidar frame, increases to a time offset of 22 at lidar frame 7, and decreases back to a time offset of 7 at lidar frame 12. The second pulse code sequence for N = 13 starts with a time offset of 1 for the first lidar frame, increases to a time offset of 29 at lidar frame 8, and decreases back to a time offset of 8 at lidar frame 13.
[0109] In some aspects, the pulse code may be selected such that the difference between consecutive offsets d in the sequence d(n)-d(n - 1) is a different value for each n. The pulse code is selected in such a way that it can spread to targets outside the range or generate a spread and decoded histogram, and appropriately improve the noise reduction associated with distant targets. In the example shown in the first row of FIG. 11 where N = 12, the consecutive values of the difference d(n)-d(n - 1) are as follows: 6, 5, 4, 3, 2, 1, -1, -2, -3, -4, -5.
[0110] However, in the coding and decoding histogram processes described above, all coding approaches that provide a function of distinguishing targets within and outside the range may be used, as would be understood by an ordinary technician in the relevant technical field, and such approaches are provided as non-limiting examples.
[0111] FIG. 12 is a timing diagram 1200 for a lidar frame 1202 used in a lidar pulse coding simulation according to an aspect of the present disclosure. The lidar frames described in FIGS. 6a, 8a, 10a, and 10b show various time offsets, such as pulse coding / dither offset, gate delay, frame dead time, etc., on a scale corresponding to the lidar frame bins. However, such timing can be described separately from the lidar frame bins, as in timing diagram 1200.
[0112] Each lidar frame starts with a repetitive master trigger whose timing is adjusted to account for the maximum length of the lidar frame 1202, according to an aspect of this specification. When the master trigger occurs, a pulse coding interval (dither) 1204 is applied if the pulse coding is used to distinguish targets within and outside the range. This was discussed in connection with FIGS. 8a and 8b. Alternatively, the dither may not be applied and this interval can be ignored.
[0113] After a certain amount of dithering, an optical pulse is emitted. The total travel time during which this optical pulse is emitted, reflected by the target, and detected must occur within the range gate 1208 of the target within the range. Instead, if the pulse is detected in a subsequent range gate based on reflection from a target outside the range, as explained above in connection with FIGS. 8a and 8b, the pulse coding interval of the emitted optical pulse can be used to make the reflected signal unambiguous.
[0114] However, after the optical pulse is emitted, an additional delay occurs before the detector is armed (and before the range gate is started). This delay is the arm offset 1206. In certain aspects of this specification, the arm offset 1206 may be controlled in relation to the dead time 1210 that occurs after the detector is disarmed in the manner discussed above in connection with FIGS. 10a and 10b to improve system performance.
[0115] FIG. 13 illustrates, in accordance with one aspect of this specification, a structural view 1300 of a data frame and its use in constructing an avalanche histogram. The lidar frame 1302 is shown such that a pulse is emitted at the start of the lidar frame (time t = 0), so no dither corresponding to the coding offset is applied in the example shown. If such an offset were applied, the pulse emission display would move to a bin number corresponding to the code in accordance with the disclosed aspect, but such an offset is ignored here as discussed in connection with FIGS. 8a and 8b.
[0116] After a while, here between two bin time ranges, the detector is in a disarmed state corresponding to the arm offset. At the end of this period, the detector is armed. The gate width corresponding to the time range (within the range gate 1304) in which the reflected pulse can be detected is from that time until the point at which the detector is disarmed. As seen in the example of the structural view 1300, avalanche events in the time bins occur at time bin 9 in the first displayed lidar frame, again at time bin 9 in the second displayed lidar frame, and at time bin 8 in the third displayed lidar frame. The lidar frame 1302 also includes the period (corresponding to the dead time 1306) during which the detector is disarmed and the next pulse is emitted.
[0117] Overall, such three rider frames (more rider frames can be used as non-limiting examples) are considered part of data frame 1308. If there are N rider frames within a given data frame 1308, the same data frame as data frame 1308 may be composed of a non-overlapping set of N rider frames (the first N rider frame set, the next N rider frame set, etc.). Alternatively, data frame 1308 may be a rolling window of rider frames. The first data frame like data frame 1308 includes rider frames 0 to N, and subsequent data frames include rider frames 1 to N + 1. While the rider emitter periodically goes through a 360-degree sweep, each rider frame within the data frame can be processed as if it was taken at a fixed position of the emitter, which is possible because the sweep motion can be ignored.
[0118] Next, from all avalanche events in the rider frames within data frame 1308, an avalanche histogram 1310 can be constructed following one side. And as detailed in FIGS. 8a and 8b, this avalanche histogram 1310 may be decoded when coding (not shown here) is applied. Next, the resulting avalanche histogram 1310 can be processed through a statistical processing block 1312 that is used to generate point cloud data 1314 capable of identifying the target.
[0119] The various aspects can be implemented using one or more computer systems, such as computer system 1400 shown in FIG. 14. Computer system 1400 may be any computer capable of performing the functions described herein.
[0120] Computer system 1400 may be a known computer capable of performing the functions described herein.
[0121] The computer system 1400 includes one or more processors (also referred to as central processing units or CPUs), such as processor 1404. The processor 1404 is coupled to a communication infrastructure or bus 1406.
[0122] One or more of the processors 1404 may each be a graphics processing unit (GPU). In one aspect, a GPU is a processor that is a special electronic circuit designed to process mathematically intensive applications. A GPU may have a parallel structure that is efficient for parallel processing of large data blocks, such as the mathematically intensive data common to computer graphic applications, images, videos, etc.
[0123] The computer system 1400 also includes user input / output devices 1403, such as a monitor, keyboard, pointing device, etc., that communicate with the communication infrastructure 1406 via a user input / output interface 1402.
[0124] The computer system 1400 also includes main memory or primary memory 1408, such as random access memory (RAM). The main memory 1408 may include one or more cache levels. The main memory 1408 stores control logic (i.e., computer software) and / or data.
[0125] The computer system 1400 may also include one or more auxiliary storage devices (secondary storage devices) or memories 1410. The auxiliary memory 1410 may include, for example, a hard disk drive 1412 or a removable storage device or drive 1414. The removable storage drive 1414 may be a floppy disk drive, magnetic tape drive, compact disk drive, optical storage device, tape backup device, and / or other storage device / drive.
[0126] The removable memory drive 1414 can interact with a removable memory device 1418. The removable memory device 1418 includes a storage device that can be used by or read from a computer in which computer software (control logic) and / or data are stored. The removable memory device 1418 may be a floppy disk, magnetic tape, compact disk, DVD, optical memory disk, or other computer data storage device. The removable memory drive 1414 reads from and / or writes to the removable memory device 1418 in a known manner.
[0127] According to an exemplary aspect, the auxiliary memory 1410 may include other means, tools, or other access methods that allow a computer program and / or other instruction words and / or data to be accessed by the computer system 1400. Such means, tools, or other access methods may include, for example, a removable memory device 1422 and an interface 1420. Examples of the removable memory device 1422 and the interface 1420 may include a program cartridge and a cartridge interface (such as those found in video game devices), a removable memory chip (such as an EPROM or PROM) and associated socket, a memory stick and a USB port, a memory card and associated memory card slot, or other removable memory devices and associated interfaces.
[0128] Computer system 1400 may also include a communication or network interface 1424. The communication interface 1424 enables the computer system 1400 to communicate and interact with all combinations of remote devices, remote networks, remote entities, etc. (collectively and individually referred to by reference numeral 1428). For example, the communication interface 1424 can enable the computer system 1400 to communicate with a remote device 1428 via a communication path 1426 that can be wired and / or wireless and can include all combinations such as LAN, WAN, the Internet, etc. Control logic and / or data can be transmitted and received between the computer system 1400 via the communication path 1426.
[0129] In one aspect, a tangible, non-transitory device or article of manufacture that includes a tangible, non-transitory computer-usable or readable medium storing control logic (software) is also referred to herein as a computer program product or program storage device. This includes, but is not limited to, the computer system 1400, main memory 1408, auxiliary memory 1410, removable storage devices 1418, 1422, and tangible manufactured articles embodying the foregoing combinations. When such control logic is executed by one or more data processing devices (e.g., computer system 1400), it causes such data processing devices to operate as described herein.
[0130] Based on the teachings contained herein, one of ordinary skill in the relevant art will understand how to make and use aspects of the present disclosure using data processing devices, computer systems, and computer architectures other than those shown in FIG. 14. In particular, aspects can operate with software, hardware, and / or implementations of operating regimes other than those described herein.
[0131] It must be understood that the detailed description section is intended to be used to construe the claims, not the other sections. Since the other sections can present one or more that are not all the exemplary aspects considered by the inventor, this disclosure and the appended claims are not intended to be limiting in any way.
[0132] It must be understood that the content of this specification describes exemplary aspects for exemplary fields and application fields, but the disclosure is not limited thereto. Other aspects and modifications thereto are possible and are within the scope and spirit of this disclosure. For example, without limiting the generality of this paragraph, one aspect is not limited to the software, hardware, firmware, and / or entities shown in the drawings or described herein. Also, one aspect (whether or not explicitly described herein) has considerable utility in the field and application fields beyond the examples described herein.
[0133] Aspects are described herein with the aid of functional building blocks that describe the implementation of the specified functions and their relationships. The boundaries of such functional building blocks are arbitrarily defined for the convenience of the description. Alternative boundaries can be defined as long as the specified functions and relationships (or their equivalents) are properly performed. Also, alternative aspects can perform functional blocks, steps, operations, methods, etc. using an order different from that described herein.
[0134] Here, references to "one aspect", "an aspect", "an exemplary aspect", or similar phrases indicate that while the described aspect may include a particular function, structure, or characteristic, not all aspects necessarily include the particular function, structure, or characteristic. Moreover, such phrases do not necessarily refer to the same aspect. Further, when a particular function, structure, or characteristic is described in relation to an aspect, one of ordinary skill in the relevant art would be within the scope of knowledge to incorporate such function, structure, or characteristic into other aspects, whether or not explicitly recited or described herein. Also, some aspects may be described using the terms "coupled" and "connected" and their derivatives. Such terms are not necessarily intended as synonyms for each other. For example, some aspects may be described using the terms "connected" and / or "coupled" to indicate that two or more elements are in direct physical or electrical contact with each other. However, the term "coupled" can also mean that two or more elements do not contact each other directly but still cooperate or interact with each other.
[0135] The breadth and scope of the present disclosure should not be limited by the exemplary aspects described above, but should be defined only by the following claims and equivalents thereof.
Claims
1. Between rider frames, a rider detector receives a reflected laser signal corresponding to a laser pulse emitted by a rider emitter - the received reflected laser signal being related to the time bin of the rider frame and a pulse code offset applied to the laser signal emitted between the rider frames; By one or more computing devices, the received reflected laser signal - one or more additional received reflected laser signals are additionally integrated into the avalanche histogram as a set of reflected laser signals received in corresponding time bins of the avalanche histogram, each of the one or more additional received reflected laser signals having a corresponding pulse code offset - is integrated into the avalanche histogram in a time bin of the avalanche histogram corresponding to the time bin of the rider frame; And By the one or more computing devices, decoding the set of received reflected laser signals by shifting the received reflected laser signals of each set of received reflected laser signals to a time bin of the avalanche histogram decoded based on the corresponding pulse code offset. A method comprising the steps of.
2. The method of claim 1, further comprising computing a target distance by the one or more computing devices based on grouping of reflected laser signals received within a time bin of the decoded avalanche histogram.
3. The method of claim 1, further comprising decoding the set of received reflected laser signals by shifting each of the received reflected laser signals of the set of received reflected laser signals to a time bin of an avalanche histogram that is periodically decoded based on a periodic remapping of the corresponding pulse code offset.
4. The laser signal emitted between the rider frames is R as the maximum distance to a target within a detectable range in the rider frame when it is the reflected laser signal. max is given to Based on the grouping of the received reflected laser signals within the time bins of the avalanche histogram periodically decoded by one or more computing devices, N*R max to (N + 1)*R max further comprising the step of computing the distance of the target within the range of, The method of claim 3, wherein the periodic remapping corresponds to the range.
5. The receiving step is Period of the hold-off time - The period of the hold-off time includes an arm offset applied to a subsequent rider frame, and the arm offset corresponds to an arm code that moves a time window for arming the rider detector during the subsequent rider frames - further including the step of disarming the rider detector during the period of the hold-off time, the method according to claim 1.
6. The pulse code offset is selected such that a subset of the set of received reflected signals is resolved into distributed bins of the decoded avalanche histogram corresponding to reflections from out-of-range targets, the method according to claim 1.
7. The rider detector includes a single photon detector, the method according to claim 1.
8. In a system, A rider detector configured to receive a reflected laser signal corresponding to a laser pulse emitted by a rider emitter between rider frames - the received reflected laser signal is associated with a time bin of the rider frame and a pulse code offset applied to the laser signal emitted between the rider frames; A memory; and At least one processor coupled to the memory and configured to perform operations, The operations include Integrating the received reflected laser signal - one or more additional received reflected laser signals are additionally integrated into the avalanche histogram as a set of reflected laser signals received in corresponding time bins of the avalanche histogram, and each of the one or more additional received reflected laser signals has a corresponding pulse code offset - into a time bin of the avalanche histogram corresponding to the time bin of the rider frame; and Decoding the set of received reflected laser signals by moving the received reflected laser signals of each set of received reflected laser signals to a time bin of the avalanche histogram decoded based on the corresponding pulse code offset, a system.
9. The operation The system of claim 8, further comprising computing a distance to a target based on grouping of received reflected laser signals within a time bin of the decoded avalanche histogram. **Claim 10** The operation The system of claim 8, further comprising decoding a set of received reflected laser signals by moving each of the received reflected laser signals of the set to a time bin of an avalanche histogram that is periodically decoded based on a periodic remapping of the respective pulse code offsets.
Citation Information
Patent Citations
Distance measuring device and electronic apparatus
JP2021050987A
Method and device for optically measuring distance
JP2021092543A
Method for calibrating a time-of-flight system and time-of-flight system - Patents.com
JP2021501874A
Method and device for optical distance measurement
US20200025922A1
Temporal jitter in a lidar system
WO2020223561A1