Patent Description:
Another conventional method fuses the current and previous ultrasonic detections and uses their intersection points to determine the azimuth. Although this fusion method provides a better azimuth accuracy than the centerline method, it suffers with a latency issue. Moreover, this fusion method requires the vehicle to be moving at a certain range of speed in order to generate the intersection points. For example, zero or very-low movement speed causes overlapping ultrasonic arcs, while high-speed movement causes separation of arcs and results in no intersections. Accordingly, accuracy of these conventional methods is limited and can result in poor performance of the vehicle-parking-assist functions.

<CIT> discloses a method and driving assistance system to avoid a collision of a vehicle with an object. <CIT> discloses a device for detecting a parking spot.

This document describes spatial and temporal processing of ultrasonic-sensor detections for mapping in vehicle-parking-assist functions. Specifically, spatial intersections, which are determined from a pair of neighboring ultrasonic sensors having ultrasonic detections at substantially the same time, can address latency issues associated with temporal intersections and can be determined without the vehicle moving. Temporal intersections can address situations when one sensor of the pair of neighboring ultrasonic sensors has an ultrasonic detection while the other sensor does not. Using both the spatial and temporal intersections provides high accuracy for angular information, which enables enhanced mapping and efficient performance of vehicle-parking-assist functions.

According to an aspect of the invention, an object-detection system is provided as defined in claim <NUM>. The object-detection system includes a device for executing instructions stored in a memory to implement a fusion module. The fusion module is configured to identify, using object-detection data from a pair of neighboring ultrasonic sensors on a vehicle, spatial intersections between arcs of each sensor of the pair of neighboring ultrasonic sensors that are generated at approximately a same time. The fusion module is also configured to identify temporal intersections in the object-detection data between a current arc and a previous arc of at least one sensor of the pair of neighboring ultrasonic sensors based on a movement speed of the vehicle. In addition, the fusion module is configured to determine first range and angular information corresponding to an object relative to the vehicle based on the spatial intersections. The fusion module is also configured to determine second range and angular information corresponding to the object relative to the vehicle based on the temporal intersections. The fusion module is configured to generate a spatial-temporal fusion map that maps detections, by the pair of neighboring ultrasonic sensors, relative to the vehicle based on the first range and angular information and the second range and angular information.

According to a further aspect of the invention, a method for assisted parking of a vehicle is provided as defined in claim <NUM>. The method includes detecting spatial intersection points between arcs of a pair of neighboring ultrasonic sensors that are lateral-side-mounted on a vehicle to detect one or more objects. Temporal intersection points are also detected between a current arc and a previous arc of at least one sensor of the pair of neighboring ultrasonic sensors. The temporal intersections are based on a movement speed of the vehicle. In addition, first range and angular information of the one or more objects relative to the vehicle is determined based on the spatial intersection points. Second range and angular information of the one or more objects relative to the vehicle is also determined based on the temporal intersection points. Using a combination of the first and second range and angular information enables detection of an open parking space on a lateral side of the vehicle and performance of a dynamic parking-assist maneuver of the vehicle into the open parking space.

This summary is provided to introduce simplified concepts for spatial and temporal processing of ultrasonic-sensor detections for mapping in vehicle-parking-assist functions, which are further described below in the Detailed Description and Drawings. For ease of description, the disclosure focuses on automotive ultrasonic systems; however, the techniques are not limited to automobiles. The techniques also apply to ultrasonic sensors of other types of vehicles, systems, and moving platforms. The techniques described herein can also apply to other types of sensors, such as radar or infrared sensors. This summary is not intended to identify essential features of the claimed subject matter, nor is it intended for use in determining the scope of the claimed subject matter.

The details of one or more aspects of spatial and temporal processing of ultrasonic-sensor detections for mapping in vehicle-parking-assist functions are described in this document with reference to the following drawings. The same numbers are used throughout the drawings to reference like features and components:.

The details of one or more aspects of spatial and temporal processing of ultrasonic-sensor detections for mapping in vehicle-parking-assist functions are described below. Advanced driver-assistance systems, highly-automated driving systems, as well as other subsystems, demand accurate knowledge of the surrounding environment of the vehicle. Automotive ultrasonic sensors, which provide direct estimates of range, velocity, and angle information, have quickly become one of the vital sensing technologies of which these automotive subsystems rely for acquiring critical information of the environment.

To achieve high accuracy of range and angular detection and improve robustness of ultrasonic sensor perception over that of conventional systems, which assume the angle of detection aligns with a direction that the sensor faces or use temporal processing to find the angle of detection, a fusion of spatial and temporal processing can be implemented. In particular, a pair of neighboring sensors positioned on a lateral side and near each corner of a vehicle are used for detecting an object near the lateral side of the vehicle, such as a curb, a traffic cone, another vehicle, and so on. When both neighboring sensors detect an object, the intersection between their arcs is used to determine angular information of the object relative to the vehicle. These spatial intersections are fused with temporal intersections for increased detection accuracy, where the temporal intersections are based on two separate pulses of an individual sensor. When only one of the neighboring sensors detects the object, no spatial intersection can be determined due to insufficient datapoints but the temporal intersection between two pulses of the detecting sensor can be used to determine the angular information. By using different methods (e.g., temporal processing, spatial processing, or a combination of both temporal and spatial) in different scenarios for determining angular information, the techniques described herein provide high accuracy for angular information, including azimuth and elevation information.

This spatial and temporal processing can be used to improve ultrasonic-based mapping, localization, and path planning for various driver-assistance systems. Further, level <NUM> parking assist (e.g., partial automation) and level <NUM> automated parking valet (e.g., autonomous parking) using ultrasonic sensors is also greatly improved by the spatial and temporal processing.

<FIG> illustrates an example environment <NUM> in which one or more aspects of spatial and temporal processing of ultrasonic-sensor detections for mapping in vehicle-parking-assist functions can be implemented. In the illustrated example, a vehicle <NUM> includes an object-detection system <NUM>. The object-detection system <NUM> is communicatively coupled to a sensor layout <NUM> around a front <NUM> and rear <NUM> of the vehicle <NUM>. On each lateral side of the vehicle <NUM> (e.g., side running substantially parallel to a longitudinal axis <NUM> of the vehicle <NUM>) and proximate to each corner of the vehicle <NUM>, are positioned at least one pair of neighboring ultrasonic sensors <NUM>, which are usable for lateral object detection and mapping using spatial and temporal intersection points. Across the front <NUM> and the rear <NUM> of the vehicle <NUM> are optional ultrasonic sensors <NUM> that can be used for front/rear object detection and collision avoidance. The ultrasonic sensors <NUM> each have a field of view (FOV) <NUM> that encompasses a region of interest in which an object <NUM> can be detected. The FOV <NUM> of each sensor <NUM> in the pair of neighboring sensors partially overlaps with one another, to enable determination of an intersection point between arcs of ultrasonic pulses of the sensors <NUM>. The neighboring sensors <NUM> may be separated horizontally by any suitable distance, such as a distance within a range of approximately <NUM>-<NUM>.

The object <NUM> comprises one or more materials that reflect ultrasonic signals. Depending on the application, the object <NUM> can represent a target of interest or clutter. The object <NUM> may be any object within the FOV of the sensors <NUM>. Some example objects include a traffic cone <NUM>-<NUM> or other small object, a curb <NUM>-<NUM>, a guard rail <NUM>-<NUM>, a concrete barrier <NUM>-<NUM>, a fence <NUM>-<NUM>, a tree <NUM>-<NUM>, a human <NUM>-<NUM>, an animal <NUM>-<NUM> (e.g., dog, cat, rodent, and so forth, or another vehicle <NUM>-<NUM>.

<FIG> illustrates an example implementation <NUM> of the vehicle <NUM> in more detail. The vehicle <NUM> includes vehicle-based systems <NUM> that rely on data from the object-detection system <NUM>, such as a driver-assistance system <NUM> and/or an autonomous-driving system <NUM>. One or both of the driver-assistance system <NUM> and the autonomous-driving system <NUM> may implement ultrasonic-based mapping, localization, and path planning, such as for vehicle-parking-assist functions.

Generally, the vehicle-based systems <NUM> use sensor data <NUM> provided by ultrasonic sensors <NUM> (e.g., ultrasonic sensors <NUM>, <NUM>) to perform a function. For example, the driver-assistance system <NUM> provides blind-spot monitoring and generates an alert that indicates a potential collision with an object that is detected by the ultrasonic sensors <NUM>. In this case, the sensor data <NUM> from the ultrasonic sensors <NUM> indicates when an open parking spot is detected. In another case, the sensor data <NUM> from the ultrasonic sensors <NUM> indicates nearby objects, such as one or more parked vehicles, when the driver-assistance system <NUM> or the autonomous-driving system <NUM> is performing parking assist.

The vehicle <NUM> includes one or more processors <NUM> and a memory <NUM>. The memory <NUM> can store the sensor data <NUM> obtained by the ultrasonic sensors <NUM>. The memory <NUM> can also include a fusion module <NUM>. Any suitable memory <NUM> can be used, such as a computer-readable storage media or other memory bank. The fusion module <NUM> can be implemented using hardware, software, firmware, or a combination thereof. In this example, the processor <NUM> executes instructions for implementing the fusion module <NUM>. The fusion module <NUM> enables the processor <NUM> to process signals from the ultrasonic sensors <NUM> to detect an object and generate the sensor data <NUM> for the vehicle-based systems <NUM>.

The fusion module <NUM> transforms raw data provided by the ultrasonic sensors <NUM> into usable data. The fusion module <NUM> analyzes the sensor data <NUM> to map one or more detections. The fusion module <NUM> determines whether to adjust the detection sensitivity of the ultrasonic sensors <NUM> based on the processing of the data for detections. One example includes decreasing the sensitivity by increasing a data-processing threshold to reduce noise. Another example includes increasing the sensitivity by decreasing the data-processing threshold to retain more details associated with the detection. The fusion module <NUM> also analyzes the sensor data <NUM> to determine spatial intersections and temporal intersections between arcs of the neighboring sensors <NUM> and, based on the spatial and temporal intersections, determines azimuth information corresponding to the detected object <NUM> relative to the vehicle <NUM>.

The object-detection system <NUM> includes a communication interface <NUM> to transmit the sensor data to the vehicle-based systems <NUM> or to another component of the vehicle <NUM> over a communication bus of the vehicle <NUM>, for example, when the individual components shown in the object-detection system <NUM> are integrated within the vehicle <NUM>. In general, the sensor data provided by the communication interface <NUM> is in a format usable by the vehicle-based systems <NUM>. In some implementations, the communication interface <NUM> may provide information to the object-detection system <NUM>, such as the speed of the vehicle <NUM> or location information (e.g., geolocation). The object-detection system <NUM> can use this information to appropriately configure itself. For example, the object-detection system <NUM> can determine a temporal intersection between a current pulse and a previous pulse of a sensor <NUM> based on the speed of the vehicle, or a distance between a position of the sensor <NUM> at the time of each pulse. Further detail of temporal processing is provided below with respect to <FIG>.

The ultrasonic sensors <NUM> can be any suitable sensor, including ultrasonic sensors or other sensors (e.g., radar, infrared) that provide range information to an object. Ultrasonic sensors, for example, can be used to determine range information of an object relative to the vehicle <NUM>. The sensors <NUM>, <NUM> may have a field of view of approximately <NUM>° x <NUM>°. In aspects, the sensors <NUM>, <NUM> may have a detection range from approximately <NUM> meters to approximately <NUM> meters with a resolution output of approximately <NUM> meters. The ultrasonic sensors <NUM> can also be independently controlled to use a suitable coding scheme (e.g., modulation) for simultaneous operation.

<FIG> illustrates an example implementation <NUM> of the fusion module <NUM> from <FIG>. The fusion module <NUM> is illustrated as including a range module <NUM>, a spatial-processing module <NUM>, a temporal-processing module <NUM>, and a mapping module <NUM>. When a pair of neighboring ultrasonic sensors, such as a first ultrasonic sensor <NUM>-<NUM> and a second ultrasonic sensor <NUM>-<NUM> sense a detection, ultrasonic information <NUM> is transmitted to the range module <NUM>. The range module <NUM> determines range information <NUM> corresponding to each detection for each ultrasonic sensor. The range module <NUM> sends the range information <NUM> of each ultrasonic sensor <NUM>-<NUM>, <NUM>-<NUM> to the spatial-processing module <NUM> and the temporal-processing module <NUM>.

The spatial-processing module <NUM> uses the range information <NUM> of both of the ultrasonic sensors <NUM>-<NUM>, <NUM>-<NUM> to determine a spatial intersection between arcs of the ultrasonic sensors <NUM>-<NUM>, <NUM>-<NUM>, as is further described below with respect to <FIG>. Using the spatial intersection, along with known information corresponding to each of the ultrasonic sensors <NUM>-<NUM>, <NUM>-<NUM> (e.g., FOV of the sensor, mounting position of the sensor), the spatial-processing module <NUM> determines angular information of the detection. Then, the spatial-processing module <NUM> outputs spatially-determined angular information <NUM>, along with the range information <NUM>, corresponding to the detection.

The temporal-processing module <NUM> uses the range information <NUM> of either of the ultrasonic sensors <NUM>-<NUM>, <NUM>-<NUM> in combination with a previous detection to determine a temporal intersection between an arc of a current detection by one of the ultrasonic sensors <NUM>-<NUM>, <NUM>-<NUM> and an arc of a previous detection by one of the ultrasonic sensors <NUM>-<NUM>, <NUM>-<NUM>. This temporal processing by the temporal-processing module <NUM> is described in further detail below with respect to <FIG>. The arcs of the current detection and the previous detection may correspond to the ultrasonic sensor <NUM>-<NUM> or the ultrasonic sensor <NUM>-<NUM>. In one implementation, the arc of the current detection may correspond to the ultrasonic sensor <NUM>-<NUM> and the arc of the previous detection may correspond to the ultrasonic sensor <NUM>-<NUM>, or vice-versa. The temporal-processing module <NUM> outputs temporally-determined angular information <NUM>, along with the range information <NUM>, corresponding to the detection.

The spatially-determined angular information <NUM> and/or the temporally-determined angular information <NUM>, or a combination thereof (along with the range information <NUM>) is provided to the mapping module <NUM>. The mapping module uses the spatially-determined angular information <NUM> and/or the temporally-determined angular information <NUM> to generate positional information <NUM>, such as a fusion map, that maps the detection relative to the vehicle <NUM>. The positional information <NUM> is sent to the vehicle-based system <NUM> for use in performing parking assist or other driver-assistance or autonomous driving function.

<FIG> illustrates an example implementation <NUM> of spatial intersection detection. The vehicle <NUM> can be stationary or moving. The pair of sensors <NUM> includes the first sensor <NUM>-<NUM> and the second sensor <NUM>-<NUM>. In an example, both of the sensors <NUM>-<NUM>, <NUM>-<NUM> transmit an ultrasonic pulse. The pulses can be transmitted at different times or simultaneously, as further described below. Each of the sensors <NUM>-<NUM>, <NUM>-<NUM> can detect a reflection of the respective ultrasonic pulse. Based on time-of-flight, a distance (e.g., range R <NUM>) to the object that reflected the ultrasonic pulse is calculated by the sensor. Using this information, an arc <NUM> can be drawn in the FOV of the sensor at the range R <NUM> for each sensor <NUM>-<NUM>, <NUM>-<NUM> to determine a point of intersection, referred to as a spatial intersection <NUM>. This spatial intersection <NUM> represents a relative location of the detected object <NUM>. Using the spatial intersection, the object-detection system <NUM> can determine angular information <NUM>, which represents a horizontal angle between a direction that the sensor <NUM> is facing and a direction to the detected object <NUM> from the sensor <NUM>. For example, the angular information <NUM> may represent an angle α between a facing direction <NUM> of the sensor <NUM>-<NUM> and a direction <NUM> of the spatial intersection <NUM> relative to the sensor <NUM>-<NUM>. If, however, only one of the sensors, such as the first sensor <NUM>-<NUM> or the second sensor <NUM>-<NUM>, detects the object <NUM> and the other sensor does not, then the spatial intersection will not exist and the object-detection system <NUM> may not be able to calculate the azimuth information.

In some aspects, one or more additional sensors (not shown) may be positioned vertically above or below the first and second sensors <NUM>-<NUM>, <NUM>-<NUM>. Such an arrangement may enable determination of an elevation angle associated with the surface of the object <NUM> (e.g., up to the height of the object) based on spatial intersections between arcs of ultrasonic signals of vertically-aligned sensors. This vertical implementation can be used not only for collision avoidance and parking assist, but also for determining clearance capability of the vehicle <NUM>, such as whether the vehicle <NUM> can safely drive over the object <NUM> without risking a collision.

Spatial processing depends on performance of the neighboring sensors <NUM>. In one example, the neighboring sensors <NUM> can transmit pulses at alternating times such that the second sensor <NUM>-<NUM> transmits its signal after the first sensor <NUM>-<NUM> has sufficient time to receive a detection. Alternatively, the second sensor <NUM>-<NUM> may transmit an ultrasonic pulse first and after receiving a detection, the first sensor <NUM>-<NUM> may transmit its ultrasonic pulse. By sending pulses at slightly different times, the sensors <NUM>-<NUM>, <NUM>-<NUM> can avoid interference from one another. This technique may cause some latency if the product of the maximum detection range of the sensors <NUM> and the moving speed of vehicle <NUM> is greater than a threshold value. However, if the product of the maximum detection range of the sensors <NUM> and the moving speed of vehicle <NUM> is within the threshold value, the latency may be negligible. To address additional latency cause by vehicle movement, a temporal method may be used to process the spatial intersection between the pulses of the pair of sensors <NUM>-<NUM>, <NUM>-<NUM>.

In another example, the neighboring sensors <NUM> may send pulses at the same time without interference with one another by using individually-modulated waves. The ultrasonic waves can be individually modulated with one or more different and/or varying amplitudes and frequencies. In this way, each pulse may have a unique signature, which enables identification of a particular sensor that transmitted the pulse. Each sensor <NUM>-<NUM>, <NUM>-<NUM> can identify its own signal and disregard potential interference from the other sensor's pulse.

<FIG> illustrates an example implementation <NUM> of temporal intersection detection. Here, the vehicle <NUM> is moving. The sensor <NUM> has a first detection based on a first ultrasonic pulse at time t<NUM> and then has a second detection based on a second ultrasonic pulse at time t<NUM>. Based on localization information of the vehicle <NUM>, such as speed and/or location, a distance D <NUM> is determined. In addition, range information (e.g., range R <NUM>) is calculated for each detection. Based on an arc corresponding to the calculated range R <NUM> for each position of the sensor <NUM> at each detection (e.g., arc <NUM>-<NUM> at time t<NUM> and arc <NUM>-<NUM> at time t<NUM>, a point of intersection can be determined. This intersection is referred to as a temporal intersection <NUM>. The temporal intersection <NUM> represents a relative location of the detected object, which is detected by a single sensor during vehicle movement. Using the temporal intersection <NUM>, the object-detection system <NUM> can determine azimuth information <NUM> of the object relative to the sensor <NUM>. The azimuth information <NUM> represents the angle α between a facing direction <NUM> of the sensor <NUM> and a direction <NUM> of the temporal intersection relative to the sensor <NUM> (e.g., position of the sensor <NUM>) at time t<NUM>. If the vehicle speed is below a first threshold speed (e.g., the vehicle <NUM> is stopped or moving very slowly), the arcs <NUM>-<NUM>, <NUM>-<NUM> may overlap too much, making it difficult to calculate the temporal intersection <NUM>. If the vehicle speed is above a second threshold (e.g., the vehicle <NUM> is moving too fast), the arcs <NUM>-<NUM>, <NUM>-<NUM> will be separated, resulting in no intersection between the arcs <NUM>-<NUM>, <NUM>-<NUM>.

A ratio of the distance D <NUM> over the range R <NUM> (e.g., distance-over-range (D/R) ratio) is determined using detections from a current position P<NUM> compared with a previous position P<NUM>, e.g., D<NUM> = P<NUM> - P<NUM>, where the current and previous positions P<NUM>, P<NUM> are sequentially or serially generated. The "position" referred to herein can be any suitable reference on the vehicle <NUM> relative to the ground, such as a position of the sensor <NUM>, a center of the rear axle of the vehicle <NUM>, a center point of the vehicle <NUM>, a center of a vehicle-coordinate system for the vehicle <NUM>, a front or back center of the vehicle <NUM>, a suitable point on the side of the vehicle <NUM> on which the sensor <NUM> is located, and so forth. Accordingly, the position is used to determine the distance D <NUM> that the sensor <NUM> has traveled between detections.

If D<NUM>/R is greater than a threshold value, then temporal processing is performed using P<NUM> and P<NUM>. If D<NUM>/R is not greater than the threshold value, then the system may begin evaluating detections from other positions previous to the current position P<NUM>. For example, consider previous positions P<NUM>, P<NUM>, P<NUM>, and P<NUM>, which are each serially previous to the one before it, such that P<NUM> is immediately previous to P<NUM>, P<NUM> is immediately previous to P<NUM>, and P<NUM> is immediately previous to P<NUM>. The object-detection system <NUM> stores such datapoints in the memory <NUM>. The object-detection system <NUM> calculates D<NUM> = P<NUM> - P<NUM> and determines if D<NUM>/R is greater than the threshold value. If so, then the temporal processing is performed using P<NUM> and P<NUM>. If not, then the system calculates D<NUM> = P<NUM> - P<NUM> and determines if D<NUM>/R is greater than the threshold value. If so, then the temporal processing is performed using P<NUM> and P<NUM>. If not, then the system calculates D<NUM> = P<NUM> - P<NUM> and determines if D<NUM>/R is greater than the threshold value. If so, then the temporal processing is performed using P<NUM> and P<NUM>. If not, then the system may skip the temporal processing and rely solely on the spatial processing. By comparing only two arcs at a time, the processing of the data remains minimal and robust.

Table <NUM> below depicts a comparison of spatial processing and different sensitivity levels of temporal processing. Spatial processing provides a high level of detail and a low level of noise with medium continuity. However, as described above, spatial processing requires at least two neighboring sensors in order to produce spatial intersection points. The temporal processing, however, may be implemented with different D/R thresholds to adjust the sensitivity level of the detection.

For example, a low D/R threshold for temporal processing provides a high level of detail with a high level of noise and high continuity. A high D/R threshold for temporal processing provides a medium level of detail with a medium level of noise and medium continuity. Any suitable value may be used for the D/R threshold, such as approximately <NUM> for the low D/R threshold or approximately <NUM> for the high D/R threshold. Further, any suitable number of thresholds may be used to define additional levels of sensitivity.

When detecting large and rigid objects (e.g., vehicles, curbs, and so forth), both of the neighboring sensors <NUM> are likely to detect the object, which provides the spatial intersections. Therefore, when both of the neighboring sensors <NUM> detect the object, the object-detection system <NUM> may default to using the high D/R threshold for the temporal processing in addition to the spatial processing. Both the spatial processing and the temporal processing are combined to increase the accuracy of the object detection and azimuth information determination.

When detecting smaller and softer objects (e.g., traffic cones, humans, small animals, etc.), the noise may be substantially zero but many details may be lost. In particular, if only one of the pair of neighboring sensors <NUM> detects the object (e.g., R > <NUM> for the first sensor <NUM>-<NUM> in <FIG> but R = <NUM> for the second sensor <NUM>-<NUM>), then the spatial processing fails to produce spatial intersections for object detection and azimuth determination. Consequently, the object-detection system <NUM> may use the temporal processing without the spatial processing. Here, the D/R threshold may be lowered to increase detection of the details using the temporal processing. The tradeoff, therefore, is increasing both the continuity and the level of detail from medium to high, but also increasing the level of noise from medium to high. In aspects, the object-detection system <NUM> may default to using only the temporal processing with the low D/R threshold when only one sensor <NUM> of the pair of neighboring sensors has a detection.

In some cases, the temporal processing may fail, such as if the vehicle is moving too fast or too slow, or if localization information is unavailable (e.g., when the vehicle is in a tunnel or inside a parking structure and real-time kinematic (RTK) positioning and global navigation satellite systems (GNSS) information is unavailable). Here, the object-detection system <NUM> may use the sensor detections from the spatial intersections to perform scan matching, or other localization technique, to determine sensor-based localization information that is usable for the temporal processing. Any suitable combination of sensor detections of the pair of neighboring sensors <NUM> can be used for object detection. Some examples include fusing a current detection of the first sensor <NUM>-<NUM> to a previous detection of the second sensor <NUM>-<NUM>, fusing a previous detection of the first sensor <NUM>-<NUM> with the previous detection of the second sensor <NUM>-<NUM>, and so forth. Fusing two detections uses less computation and memory and is faster than an implementation that attempts to fuse a greater number of detections.

<FIG> depicts an example method <NUM> for fusing temporal processing with spatial processing. For example, the processor <NUM> executes instructions, stored in the memory <NUM> and associated with the fusion module <NUM>, to configure the object-detection system <NUM> to perform the method <NUM>. The method <NUM> includes a set of operations (or actions) performed but not necessarily in the order or combination described in <FIG>. Further, any number of the operations may be skipped, repeated, combined, or reorganized in any order to implement a method or an alternate method. In portions of the following discussion, reference may be made to the environment <NUM> of <FIG> and to <FIG>.

At <NUM>, a sensor detects an object. For example, the first sensor <NUM>-<NUM> detects the object <NUM>, such as by using one or more ultrasonic pulses and detecting a reflection of the one or more ultrasonic pulses. The ultrasonic pulses provide range-only detection.

At <NUM>, a determination is made as to whether a neighboring sensor has also a detection (e.g., range R > <NUM>). For example, the object-detection system <NUM> determines if the second sensor <NUM>-<NUM>, which is adjacent to the first sensor <NUM>-<NUM> on the lateral side of the vehicle <NUM>, has a detection.

If the neighboring sensor does not have a detection ("NO" at <NUM>), then at <NUM>, the object-detection system <NUM> implements temporal processing with a low D/R threshold on detections by the first sensor <NUM>-<NUM>. This technique is based on an assumption that the detected object is a small/soft object and therefore an increased detection sensitivity is desired to detect a higher level of detail, with the trade-off of increased noise.

If the neighboring sensor does have a detection ("YES" at <NUM>), then at <NUM>, the object-detection system <NUM> implements both spatial processing and temporal processing, with a high D/R threshold for the temporal processing. In aspects, spatial-intersection data from the spatial intersections are overlaid on temporal-intersection data from the temporal intersections. This technique is based on an assumption that, if both the first sensor <NUM>-<NUM> and the second sensor <NUM>-<NUM> have detections, then the detected object is a large/rigid object. Consequently, a decreased level of sensitivity for the temporal processing, combined with the spatial processing, reduces the noise while providing sufficient details of the object for use with the vehicle-based systems <NUM>.

In aspects, adjusting the D/R threshold can be viewed as applying a weight to temporal processing. For example, based on the D/R threshold selected, a higher or lower weight is applied to the temporal processing. A higher D/R threshold may represent a lower weight applied to temporal processing, which reduces the sensitivity and consequently, the noise. A lower D/R threshold represents a higher weight applied to temporal processing, which increases the sensitivity as well as the noise.

In some implementations, the spatial processing produces first angular information and the temporal processing produces second angular information. The first and second angular information can be used to generate a spatial-temporal fusion map that maps detections, by the ultrasonic sensors <NUM>, relative to the vehicle <NUM>. The spatial-temporal fusion map is usable by the vehicle-based systems <NUM> to steer the vehicle <NUM> during a dynamic parking maneuver or other assisted or automated driving technique.

<FIG> illustrates an example implementation <NUM> of open-spot detection for vehicle-parking-assist functions. While the vehicle <NUM> is passing laterally in front of a row of parked vehicles, the neighboring sensors <NUM> detect the fronts of the parked vehicles using a combination of spatial and temporal processing to detect both spatial and temporal intersections <NUM>. Using the spatial and temporal intersections <NUM>, along with corresponding angular information relative to the vehicle <NUM>, the object-detection systems <NUM> can generate a spatial-temporal fusion map that maps the ultrasonic-sensor detections. The spatial and temporal intersections <NUM>, and the spatial-temporal fusion map, can be used to detect an available parking space (also referred to as an "open spot"). For example, a space, such as space <NUM>, between objects can be determined, using the spatial and temporal intersections <NUM>. Here, the space <NUM> is measured and determined to be insufficient for the vehicle <NUM>. As such, the vehicle <NUM> can continue moving down the row. As the vehicle <NUM> passes space <NUM>, the object-detection system <NUM> determines that the space <NUM> has a width greater than a threshold width, which may be a width of the vehicle <NUM> plus sufficient space to open one or more doors of the vehicle to allow a person to exit or enter the vehicle <NUM>.

<FIG> depicts a method <NUM> for open-spot detection for vehicle-parking-assist functions. For example, the processor <NUM> executes instructions, stored in the memory <NUM> and associated with the fusion module <NUM>, to configure the object-detection system <NUM> to perform the method <NUM>. The method <NUM> includes a set of operations (or actions) performed but not necessarily in the order or combination described in <FIG>. Further, any number of the operations may be skipped, repeated, combined, or reorganized in any order to implement a method or an alternate method. In portions of the following discussion, reference may be made to the environment <NUM> of <FIG> and to <FIG>.

At <NUM>, the object-detection system searches for an available parking space using spatial and temporal intersections of neighboring sensors that are laterally mounted on a vehicle. For example, the vehicle <NUM> moves down a row of parking spaces, some of which are occupied by vehicles or other objects. Using both spatial and temporal processing techniques described herein, the vehicle <NUM> detects at least a portion of the vehicles occupying many of the parking spaces (e.g., based on spatial and temporal intersections <NUM> from <FIG>), which indicates to the object-detection system <NUM> that those parking spaces are occupied.

At <NUM>, the object-detection system determines if a width D of a space between detected objects is greater than or equal to a threshold width X. For example, the object-detection system <NUM> determines whether the width of the space <NUM> or the space <NUM> is greater than or equal to the threshold width X. If the width D is less than the threshold width X ("NO" at <NUM>), then the method <NUM> returns to <NUM> and the object-detection system <NUM> continues searching for an available parking space.

If the width D is determined to be greater than or equal to the threshold width X ("YES" at <NUM>), then at <NUM>, the object-detection system <NUM> determines that the space is available for parking (e.g., the space is an open parking spot). Then, the object-detection system <NUM> may begin a parking assist technique, as described with respect to <FIG>.

<FIG> illustrates an example implementation <NUM> of a dynamic parking-assist maneuver performed using spatial and temporal processing of ultrasonic-sensor detections. When an available parking space is detected, the vehicle-based systems <NUM> can maneuver the vehicle <NUM> into the available parking space, as illustrated at <NUM> with four example positions from <NUM> to <NUM>. During this parking maneuver, the object-detection system <NUM> continues to detect nearby objects, such as by detecting ultrasonic intersection points <NUM> (e.g., spatial and temporal intersections). In aspects, the object-detection system <NUM> uses the ultrasonic intersection points <NUM> to generate a spatial-temporal fusion map of the sensor detections, which is usable by the vehicle-based systems <NUM> to steer the vehicle <NUM>. In addition, the object-detection system <NUM> can determine size and shape measurements of the parking space based on ultrasonic intersection points <NUM> and determine distances and angular information (e.g., azimuth or elevation information) to the detected objects relative to the vehicle <NUM>.

In more detail, consider <FIG>, which illustrates an example implementation <NUM> of size measurements determined during a dynamic parking-assist maneuver based on information from spatial and temporal processing of ultrasonic-sensor detections. After detecting an available parking space, as described with respect to <FIG>, the vehicle <NUM> may initiate the parking maneuver described with respect to <FIG>. In this example, the front of the vehicle <NUM> is facing toward the left direction, based on a driving direction <NUM> during the open-spot detection method. Beginning at position <NUM>, and moving toward position <NUM>, the object-detection system <NUM> uses the ultrasonic-sensor detections to determine various distances and azimuth information of surrounding objects relative to the vehicle <NUM>. For example, the object-detection system <NUM> measures a distance <NUM> from a surface of the vehicle <NUM> to the front of an object <NUM> (e.g., wall, curb, another vehicle, etc.). The object-detection system <NUM> can also measure a lateral distance <NUM> to a first parked vehicle <NUM>. The lateral distance <NUM> can be measured from any suitable point corresponding to the vehicle <NUM>, such as a surface of the vehicle <NUM>, a center <NUM> of the vehicle <NUM>, and so on. The center <NUM> of the vehicle <NUM> may represent any suitable reference on the vehicle <NUM>, such as a position of the sensor <NUM>, a center of the rear axle of the vehicle <NUM>, a center of the front axle of the vehicle <NUM>, a center point of the vehicle <NUM>, a center of a vehicle-coordinate system for the vehicle <NUM>, a front or back center of the vehicle <NUM>, any point along a longitudinal axis of the vehicle <NUM> between the front and rear surfaces of the vehicle, and so forth.

Moving from position <NUM> to position <NUM>, the object-detection system <NUM> can measure a width <NUM> of the parking space between the first parked vehicle <NUM> and a second parked vehicle <NUM>. Additionally, the object-detection system <NUM> can measure a depth of the parking space or a distance <NUM> to a curb <NUM> or other object at the end of the parking space. Based on the ultrasonic-sensor detections, the object-detection system <NUM> can also determine a heading of the parked vehicles on either side of the vehicle <NUM>, such as heading <NUM> of the first parked vehicle <NUM> and heading <NUM> of the second parked vehicle <NUM>. Using the headings <NUM>, <NUM> of the first and second parked vehicles <NUM>, <NUM>, the object-detection system <NUM> can determine a target heading <NUM> to orient the vehicle <NUM> in a final parking position.

Continuing this example in <FIG> is a view <NUM> of the vehicle <NUM> in position <NUM>. The vehicle <NUM> monitors a distance <NUM> and azimuth information <NUM> to the first parked vehicle <NUM> and a distance <NUM> and azimuth information <NUM> to the second parked vehicle <NUM>. In addition, the object-detection system <NUM> measures a heading offset <NUM> between the target heading <NUM> and a current heading <NUM> of the vehicle <NUM>, based on the spatial and temporal intersections of the ultrasonic-sensor detections and localization information corresponding to the vehicle <NUM>. The target heading <NUM> is also used to measure a center offset <NUM> between the target heading <NUM> and the center <NUM> of the vehicle <NUM>.

Consider a continuation of this example in <FIG>, which illustrates a view <NUM> of the vehicle <NUM> in a final position of the parking maneuver described with respect to <FIG> and <FIG>. By monitoring at least the measurements, distances, and offsets described above, the vehicle-based systems <NUM> can complete the parking maneuver by autonomously moving the vehicle <NUM> to a final position <NUM>. Here, both the current heading <NUM> and the center <NUM> of the vehicle <NUM> are substantially aligned with the target heading <NUM>.

Generally, any of the components, modules, methods, and operations described herein can be implemented using software, firmware, hardware (e.g., fixed logic circuitry), manual processing, or any combination thereof. Some operations of the example methods may be described in the general context of executable instructions stored on computer-readable storage memory that is local and/or remote to a computer processing system, and implementations can include software applications, programs, functions, and the like. Alternatively or in addition, any of the functionality described herein can be performed, at least in part, by one or more hardware logic components, such as, and without limitation, Field-programmable Gate Arrays (FPGAs), Application-specific Integrated Circuits (ASICs), Application-specific Standard Products (ASSPs), System-on-a-chip systems (SoCs), Complex Programmable Logic Devices (CPLDs), and the like.

Claim 1:
An object-detection system (<NUM>) comprising:
a pair of neighboring ultrasonic sensors (<NUM>) on a vehicle (<NUM>); and
a device for executing instructions stored in a memory (<NUM>) to implement a fusion module configured to:
identify, using object-detection data from the pair of neighboring ultrasonic sensors on the vehicle (<NUM>), spatial intersections between arcs of ultrasonic signals of the pair of neighboring ultrasonic sensors, a spatial intersection comprising an intersection between arcs of ultrasonic signals that are generated at approximately the same time by the pair of neighboring ultrasonic sensors (<NUM>), the pair of neighboring ultrasonic sensors (<NUM>) including a first sensor (<NUM>-<NUM>) and a second sensor (<NUM>-<NUM>), the ultrasonic signals for the first sensor (<NUM>-<NUM>) being modulated with one or more frequencies and amplitudes that are different than the ultrasonic signals for the second sensor (<NUM>-<NUM>);
identify temporal intersections in the object-detection data between a current arc of a current ultrasonic signal and a previous arc of a previous ultrasonic signal of at least one sensor of the pair of neighboring ultrasonic sensors based on a movement speed of the vehicle (<NUM>);
determine first range and angular information corresponding to an object (<NUM>) relative to the vehicle (<NUM>) based on the spatial intersections;
determine second range and angular information corresponding to the object (<NUM>) relative to the vehicle (<NUM>) based on the temporal intersections; and
generate a spatial-temporal fusion map that maps ultrasonic-sensor detections of the object (<NUM>) relative to the vehicle (<NUM>) based on the first range and angular information and the second range and angular information.