Collision Avoidance Perception System

The collision avoidance system in autonomous vehicles uses a secondary perception component with machine learning models to validate and reject trajectories, enhancing safety and reducing computational demands by filtering out dangerous paths.

JP7763165B2Active Publication Date: 2025-10-31ZOOX INC
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
JP2022520288
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2020-04-14
Filing Date
2020-09-30
Publication Date
2025-10-31
Estimated Expiration
2040-09-30

AI Technical Summary

Technical Problem

Existing collision avoidance systems in autonomous vehicles lack accuracy and redundancy, leading to potential execution of invalid or dangerous trajectories, which can result in collisions and increased computational and power consumption.

Method used

A collision avoidance system utilizing a secondary perception component with diverse machine learning models to validate or reject generated trajectories, incorporating ensemble learning techniques and threshold-based validation to ensure safe vehicle operation.

Benefits of technology

Improves vehicle safety by preventing dangerous trajectories, reducing computational bandwidth and power consumption, and enhancing accuracy by filtering out invalid paths, thereby mitigating errors in trajectory generation.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007763165000002
    Figure 0007763165000002
  • Figure 0007763165000003
    Figure 0007763165000003
  • Figure 0007763165000004
    Figure 0007763165000004
Patent Text Reader

Abstract

The collision avoidance system may validate, reject, or replace the generated trajectory to control the vehicle. The collision avoidance system may include a secondary perception component including one or more machine learning models, each of which may be trained to output one or more occupancy maps based at least in part on different types of sensor data. The occupancy map may include a prediction of whether at least a portion of the environment will be occupied at a future time by any one of a variety of object types. Occupancy maps associated with the same time may be aggregated into a data structure that may be used to validate, reject, or replace the trajectory.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present disclosure relates to collision avoidance perception systems. [Background technology]

[0002] This application claims priority to U.S. Patent Application No. 16 / 848,834, filed April 14, 2020, which is a continuation-in-part of U.S. Patent Application No. 16 / 591,518, filed October 2, 2019. Priority is claimed to all prior applications.

[0003] The safety of vehicle occupants and other people and objects in close proximity to the vehicle is of paramount importance. Such safety is often predicated on accurate detection of potential collisions and timely deployment of safety measures. To operate safely, an autonomous vehicle may include a variety of sensors and various systems to detect and track events surrounding the autonomous vehicle and may take these events into account when controlling the autonomous vehicle. For example, an autonomous vehicle may detect and track all objects within a 360-degree field of view of a set of cameras, lidar sensors, radar, and / or the like to safely control the autonomous vehicle. [Brief explanation of the drawings]

[0004] The detailed description will be set forth with reference to the accompanying drawings, in which the leftmost digit(s) of a reference number indicates the drawing in which the reference number first appears. The use of the same reference number in different drawings indicates similar or identical items.

[0005] [Figure 1] FIG. 1 illustrates an example scenario in which an autonomous vehicle configured with a collision avoidance component generates a trajectory for controlling the autonomous vehicle and the collision avoidance component determines whether to implement the trajectory or have the autonomous vehicle perform an emergency trajectory, such as a safety stop, braking, or hard braking. [Figure 2] FIG. 1 is a block diagram of an exemplary system including a collision avoidance component. [Figure 3]FIG. 2 is a block diagram of at least a portion of an example collision avoidance component. [Figure 4] FIG. 10 is a pictorial flow diagram of an exemplary process performed with the collision avoidance component to verify a trajectory and / or implement an ad hoc trajectory. [Figure 5A] FIG. 1 illustrates an example occupancy map determined for sensor data received from different sensor types. [Figure 5B] 5B-5C illustrate different example data structures that may result from aggregating the example occupancy map of FIG. 5A according to different techniques. [Figure 5C] 5B-5C illustrate different example data structures that may result from aggregating the example occupancy map of FIG. 5A according to different techniques. [Figure 5D] 5B-5C illustrate different example data structures that may result from aggregating the example occupancy map of FIG. 5A according to different techniques. [Figure 6A] 1A-1D illustrate different example architectures of the ML models discussed herein. [Figure 6B] 1A-1D illustrate different example architectures of the ML models discussed herein. DETAILED DESCRIPTION OF THE INVENTION

[0006] Techniques for collision avoidance may include a collision avoidance system that validates, rejects, or replaces a generated trajectory to control the vehicle. For example, upon validating a trajectory according to the techniques discussed herein, the collision avoidance system may pass or provide that trajectory be implemented by the vehicle. However, upon determining that the trajectory is invalid according to the techniques discussed herein, the collision avoidance system may cause the vehicle to initiate an alternative maneuver (e.g., a safety stop maneuver, an emergency trajectory) and / or redetermine a new trajectory. In some examples, the vehicle's planning component may determine a trajectory based at least in part on sensor data, map data, orientation data (e.g., where the autonomous vehicle is / how the autonomous vehicle is oriented relative to objects in the environment, mapped locations, etc.), and / or perception data (e.g., what is in the environment, characteristics of objects in the environment) received from the primary perception component.

[0007] A collision avoidance system may include a secondary perception component and / or a validation component. For example, the collision avoidance system may receive a trajectory and sensor data associated with the environment surrounding the autonomous vehicle from one or more sensors. In some examples, the primary perception component may determine perception data based at least in part on all or substantially all of the sensor data, while the secondary perception component of the collision avoidance system may determine whether to reject the trajectory based at least in part on a subset of the sensor data used by the primary perception component. In at least some examples, such a secondary perception system may further use similar and / or dissimilar hardware and / or software with respect to the primary system. In some examples, the secondary perception system may simply classify the sensor data as static or dynamic objects without ambiguity as to which type of object it is. In additional or alternative examples, the secondary perception system may include any type of ML model configured to ambiguate the classification of an object. For example, the secondary perception system may determine an object classification associated with an object (e.g., pedestrian, vehicle, sign, bicyclist, car driver, background / ground).

[0008] In some examples, the secondary perception system may include diverse machine learning (ML) models associated with different sensor types. The secondary perception system may receive first sensor data associated with a first sensor type and second sensor data associated with a second sensor type. A first ML model may be trained to determine a first occupancy map based at least in part on the first sensor data (of the first sensor type), and a second ML model may be trained to determine a second occupancy map based at least in part on the second sensor data. In additional or alternative examples, the ML models may be trained to output occupancy maps associated with object classifications. For example, a first ML model may output a first occupancy map associated with the object classification "pedestrian," while a second occupancy map associated with the object classification "vehicle" may indicate portions of the environment occupied by objects classified as pedestrians, etc. Additionally or alternatively, the ML models may be trained to output labels associated with occupancy indications (e.g., an indication that portions of the environment are occupied by pedestrians, bicyclists, car drivers, or vehicles, and the remainder is associated with the label "ground"). The occupancy map may include confidence scores associated with portions of the environment, the confidence scores indicating the likelihood (e.g., posterior probability) that the portion of the environment is occupied or predicted to be occupied by the object. In some examples, a portion of the occupancy map (e.g., a pixel, some other discrete portion) associated with a portion of the environment may additionally or alternatively indicate that the object is static or dynamic.

[0009] In some examples, the techniques may include training the ML models discussed herein such that the occupancy maps output thereby are associated with the same reference frame and / or range. For example, the occupancy maps output by each of the ML models may be associated with a 30 meter by 30 meter square centered on the autonomous vehicle and oriented as a top-down view of the environment and / or objects surrounding the autonomous vehicle.

[0010] The ML models discussed herein may additionally or alternatively be trained to output one or more occupancy maps associated with a current time and / or a future time. For example, an ML model may be trained to output a current occupancy map associated with a current time and a predicted occupancy map associated with a future time. Note that, as used herein, “current” time is associated with the time when the sensor data was received, which will actually be a time in the past by the time the current occupancy map associated with it is generated by the ML model. Thus, “current” time may be associated with the time when the sensor data was received, or the “current” time may be associated with a later time (i.e., a future time). In the latter case, the current occupancy map may itself be a predicted occupancy map. In some examples, the ML model may receive previous sensor data in addition to current (most recent) sensor data.

[0011] To take a summary example, a group of ML models may receive different sensor data types and be trained to generate the same number of occupancy maps, each of which may be associated with the same respective time, e.g., from the current time to a future time. For example, the ML models may determine occupancy maps for intervals from the current time to a future time (e.g., determining five occupancy maps from 0 to 2 seconds, at referenced 500 millisecond intervals, from the time the most recent sensor data was received).

[0012] The techniques may additionally or alternatively include aggregating occupancy maps generated by different ML models into a data structure. The aggregation may include aggregating occupancy maps associated with the same time into a single occupancy map. For example, the different ML models may generate a first set of different occupancy maps all associated with a first future time and a second set of different occupancy maps all associated with a second future time. The aggregation may include aggregating the first set into a first occupancy map associated with the first future time and aggregating the second set into a second occupancy map associated with the second future time. In some examples, aggregating occupancy maps associated with the first time may include aggregating occupancy maps associated with different object classifications such that occupancies associated with up to all object classifications are displayed in a single occupancy map.

[0013] In additional or alternative techniques, a threshold may be applied to the data structure before the occupancy map is aggregated or after the occupancy map is aggregated. The threshold may be a threshold confidence score (e.g., a threshold posterior probability), and applying the threshold may include associating a portion of the occupancy map with an indication that the portion of the environment is occupied if the threshold score associated with the portion of the occupancy map meets or exceeds the threshold confidence score, or vice versa if the confidence score does not meet the threshold confidence level (i.e., the portion of the occupancy map is associated with an indication that the portion of the environment is not occupied).

[0014] In some examples, the aggregation may include ensemble learning techniques, and aggregating the set of occupancy maps into the data structure may include majority voting between corresponding portions of one or more occupancy maps associated with the same time, Bayesian averaging or other forms of averaging (and applying a threshold to the average), maximum posterior probability (e.g., populating the portion of the data structure of the same representation as the occupancy map showing the highest posterior probability), and / or the like.

[0015] The technology may additionally or alternatively include determining a threshold distance based at least in part on a speed associated with the trajectory. For example, the threshold distance may be a stopping distance estimate associated with the vehicle at the vehicle's current speed and / or a speed specified by the trajectory, given environmental conditions (e.g., gradient, road-related static coefficients, and / or road conditions). The validation component of the collision avoidance system may determine whether any sensor data classified as an object is or is predicted to be less than a threshold distance from the vehicle, or whether the farthest point classified as ground is less than a threshold distance. In either case, the validation component may cause the vehicle to perform an ad hoc trajectory and / or redetermine a trajectory based, at least in part, on determining that the object or the farthest detected ground is within the threshold distance of the vehicle. If the validation component determines that the nearest object is at a distance greater than the threshold distance and the farthest sensor data classified as ground is at a distance greater than the threshold distance, the validation component may validate the trajectory, which may include transmitting the trajectory to a system controller, which may generate a signal to activate drive components of the vehicle to track the trajectory.

[0016] Additionally or alternatively, the validation component may determine whether to validate the trajectory or initiate alternative steering based at least in part on a determination of whether sensor data associated with the vehicle's current speed, the speed associated with the trajectory, the speed associated with the object, the vehicle's current pose, and / or the object and / or ground classification are valid. For example, the technique may include determining whether the vehicle's current speed, steering angle, steering rate, and / or heading matches (is within respective thresholds for) the speed, steering angle, steering rate, and / or heading indicated by the trajectory.

[0017] The techniques discussed herein may improve vehicle safety by preventing invalid or dangerous trajectories from being executed by a vehicle. In at least some examples, such techniques may further prevent collisions by providing redundancy in a manner that mitigates errors in any system or subsystem associated with trajectory generation components (e.g., perception, prediction, planning, etc.). Furthermore, the present techniques may reduce the amount of computational bandwidth, memory, and / or power consumed for collision avoidance compared to conventional techniques. Also, the accuracy of the collision avoidance system may be higher than the accuracy of the primary perception system, thereby reducing the overall error rate of trajectories implemented by an autonomous vehicle by filtering invalid trajectories.

[0018] (Example scenario) FIG. 1 illustrates an exemplary scenario 100 including a vehicle 102. In some examples, the vehicle 102 may be an autonomous vehicle configured to operate according to a Level 5 classification issued by the National Highway Traffic Safety Administration, which describes a vehicle capable of performing all safety-critical functions for all journeys without a driver (or passenger) being expected to control the vehicle at any time. However, in other examples, the vehicle 102 may be a fully or partially autonomous vehicle having any other level or classification. It is contemplated that the techniques discussed herein may be applied to more than robotic control, such as for autonomous vehicles. For example, the techniques discussed herein may be applied to mining, manufacturing, augmented reality, and the like. Furthermore, although the vehicle 102 is depicted as a land vehicle, the vehicle 102 may also be a spacecraft, a surface vessel, and / or the like. In some examples, the vehicle 102 may be represented in a simulation as a simulated vehicle. For simplicity, the discussion herein does not distinguish between simulated and real-world vehicles. Thus, references to "vehicles" may refer to simulated vehicles and / or real-world vehicles.

[0019] According to the techniques discussed herein, the vehicle 102 may receive sensor data from sensors 104 of the vehicle 102. For example, the sensors 104 may include position sensors (e.g., global positioning system (GPS) sensors), inertial sensors (e.g., acceleration sensors, gyro sensors, etc.), magnetic sensors (e.g., compasses), position / speed / acceleration sensors (e.g., speedometers, driveline sensors), depth position sensors (e.g., lidar sensors, radar sensors, sonar sensors, time of flight (ToF) cameras, depth cameras, ultrasonic and / or sonar sensors, and / or other depth-sensing sensors), image sensors (e.g., cameras), audio sensors (e.g., microphones), and / or environmental sensors (e.g., barometers, hygrometers, etc.).

[0020] The sensors 104 may generate sensor data, which may be received by a computing device 106 associated with the vehicle 102. However, in other examples, some or all of the sensors 104 and / or computing devices 106 may be separate from and / or located remotely from the vehicle 102, and data capture, processing, instruction, and / or control may be communicated to or from the vehicle 102 by one or more remote computing devices via wired and / or wireless networks.

[0021] The computing device 106 may include a memory 108 that stores the perception component 110, the planning component 112, the collision avoidance component 114, and / or the system controller 116. While depicted in FIG. 1 for illustrative purposes, it should be understood that the collision avoidance component 114 may reside in / on a separate computing device (or otherwise) from any one or more of the other components. In some examples, the perception component 110 may be a primary perception component among other perception components, such as a secondary perception component that may be part of the collision avoidance component 114. In general, the perception component 110 may determine what is in the environment surrounding the vehicle 102, and the planning component 112 may determine how to operate the vehicle 102 according to the information received from the perception component 110. For example, the planning component 112 may determine the trajectory 118 based at least in part on the perception data and / or other information, such as, for example, one or more maps, localization information (e.g., the location of the vehicle 102 in the environment relative to the maps and / or features detected by the perception component 110), etc. Trajectory 118 may include instructions for controller 116 to operate drive components of vehicle 102 to achieve a steering angle and / or steering rate, which may result in a vehicle position, a vehicle velocity, and / or a vehicle acceleration. For example, trajectory 118 may include a target heading, a target steering angle, a target steering rate, a target position, a target velocity, and / or a target acceleration for controller 116 to track. Perception component 110, planning component 112, and / or collision avoidance component 114 may include one or more machine learning (ML) models and / or other computer-executable instructions.

[0022] In some examples, the perception component 110 may receive sensor data from the sensors 104 and determine data associated with objects in the vicinity of the vehicle 102 (e.g., classifications, instance segmentation, semantic segmentation, two-dimensional and / or three-dimensional bounding boxes, and tracks associated with detected objects), route data specifying the vehicle's destination, global map data identifying road characteristics (e.g., features detectable by different sensor modalities useful for localizing an autonomous vehicle), local map data identifying features detected in proximity to the vehicle (e.g., the location and / or range of buildings, trees, fences, fire hydrants, stop signs, and any other features detectable by various sensor modalities), etc. The object classifications determined by the perception component 110 may distinguish between different object types, such as, for example, passenger vehicles, pedestrians, bicycles, automobiles, delivery trucks, semi-trucks, traffic signs, and / or the like. Tracking may include past, present, and / or predicted object position, speed, acceleration, and / or orientation. The data generated by the perception component 110 may be collectively referred to as perception data. Once the perception component 110 generates the sensory data, the perception component 110 may provide the sensory data to the planning component 112 .

[0023] The planning component 112 may use the perception data received from the perception component 110 to determine one or more trajectories, control the movement of the vehicle 102 to traverse a path or route, and / or otherwise control the operation of the vehicle 102, although any such operations may be performed in various other components (e.g., localization may be performed by a localization component, which may be based at least in part on the perception data). For example, the planning component 112 may determine a path for the vehicle 102 from a first location to a second location and, substantially simultaneously and based at least in part on the perception data and / or simulated perception data (which may further include predictions regarding objects detected in such data), generate multiple potential trajectories (e.g., within a microsecond, half a second) for controlling the movement of the vehicle 102 according to a receding horizon technique to control the vehicle to traverse the path (e.g., to avoid any of the detected objects), and select one of the potential trajectories as the trajectory 118 for the vehicle 102, which may be used to generate drive control signals that may be sent to the drive components of the vehicle 102. FIG. 1 shows an example of such a trajectory 118, represented as arrows indicating heading, velocity, and / or acceleration, but the trajectory itself may include instructions to the controller 116, which in turn may operate the drive system of the vehicle 102.

[0024] In some examples, perception component 110 may include a hardware and / or software pipeline that may include one or more GPUs, ML models, Kalman filters, and / or the like. In some examples, perception component 110 may monitor as much of the environment around the autonomous vehicle as possible, which may be limited by sensor capabilities, object and / or environmental occlusions (e.g., buildings, elevation differences, objects in front of other objects), and / or environmental effects such as fog, snow, etc. For example, sensor data may include lidar and / or radar data that perception component 110 may receive as input. Perception component 110 may be configured to detect as much object and environmental information as possible to avoid not considering events or object behaviors that should be considered by planning component 112 when determining trajectory 118.

[0025] In contrast, collision avoidance component 114 may monitor region 120, which may be smaller than the entire area within the coverage area of ​​sensor 104. Collision avoidance component 114 may determine a subset of sensor data associated with region 120 and perform operations discussed herein based at least in part on the subset. For example, in an exemplary scenario, collision avoidance component 114 may determine a subset of sensor data that includes a portion of the environment indicated by region 120, which may include a portion of representation 122. However, in additional or alternative examples, collision avoidance component 114 may monitor the same region as perception component 110.

[0026] The collision avoidance component 114 may monitor sensor data associated with the region 120 to ensure that the trajectory 118 does not result in or may result in a collision. In some examples, this may include receiving sensor data such as images 124 and generating a top-down representation of the environment and objects therein, as discussed in more detail herein. The collision avoidance component 114 may include a secondary perception component that generates the top-down representation of the environment and classifies portions thereof as occupied or unoccupied. In some examples, the collision avoidance component 114 may additionally or alternatively determine whether an occupied portion is dynamic or static.

[0027] Collision avoidance component 114 may additionally or alternatively include a validation component that may determine a threshold distance as discussed herein and / or determine whether to validate or reject trajectory 118. Validating trajectory 118 may include transmitting trajectory 118 to controller 116 (e.g., the validation component may include a multiplexer, one or more transistors configured as a switch that passes trajectory 118 upon receiving a signal from the validation component, and / or the like that may provide a signal that causes trajectory 118 to be passed to controller 116). Rejecting trajectory 118 may include sending a message to planning component 112 to initiate a redetermining of a trajectory and / or to initiate an alternative maneuver, such as a safety stop maneuver (e.g., emergency braking, stopping, and parking), that may be received from planning component 112 and / or stored in memory 108 in addition to trajectory 118. In some examples, collision avoidance 114 may determine that at least a portion of a subset of sensor data is valid or invalid based at least in part on the orientation of the sensors, and / or the topology of the environment, and / or lower and upper limits of the valid portion of the sensor data, as discussed in more detail herein.

[0028] In some examples, controller 116 may include software and / or hardware for operating drive components of vehicle 102 sufficient to track trajectory 118. For example, controller 116 may include one or more Proportional-Integral-Derivative (PID) controllers.

[0029] (Example System) FIG. 2 shows a block diagram of an example system 200 that implements the techniques discussed herein. In some examples, the example system 200 may include a vehicle 202, which may represent the vehicle 102 in FIG. 1. In some examples, the vehicle 202 may be an autonomous vehicle configured to operate according to a Level 5 classification issued by the National Highway Traffic Safety Administration, which describes a vehicle that is capable of performing all safety-critical functions for the entire journey without the driver (or passenger) being expected to control the vehicle at any time. However, in other examples, the vehicle 202 may be a fully or partially autonomous vehicle having any other level or classification. Additionally, in some examples, the techniques described herein may also be usable by non-autonomous vehicles.

[0030] Vehicle 202 may include vehicle computing device 204, sensors 206, emitters 208, network interfaces 210, and / or drive components 212. Vehicle computing device 204 may represent computing device 106, and sensors 206 may represent sensors 104. System 200 may additionally or alternatively include computing device 214.

[0031] In some examples, sensors 206 may represent sensors 104 and may include lidar sensors, radar sensors, ultrasonic transducers, sonar sensors, position sensors (e.g., global positioning system (GPS), compass, etc.), inertial sensors (e.g., inertial measurement units (IMUs), accelerometers, magnetometers, gyroscopes, etc.), image sensors (e.g., red-green-blue (RGB), infrared (IR), intensity, depth, time-of-flight cameras, etc.), microphones, wheel encoders, environmental sensors (e.g., thermometers, hygrometers, light sensors, pressure sensors, etc.), etc. Sensors 206 may include multiple instances of each of these or other types of sensors. For example, radar sensors may include individual radar sensors positioned at the corners, front, rear, sides, and / or top of vehicle 202. As another example, cameras may include multiple cameras positioned at various locations on the exterior and / or interior of vehicle 202. Sensors 206 may provide input to vehicle computing device 204 and / or computing device 214.

[0032] Vehicle 202 may also include emitters 208 for emitting light and / or sound, as described above. Emitters 208 in this example may include interior audio and video emitters for communicating with passengers of vehicle 202. By way of example and not limitation, interior emitters may include speakers, lights, signs, display screens, touchscreens, haptic emitters (e.g., vibration and / or force feedback), mechanical actuators (e.g., seat belt tensioners, seat positioners, headrest positioners, etc.). Emitters 208 in this example may also include exterior emitters. By way of example and not limitation, exterior emitters in this example include lights (e.g., indicators, signs, light arrays, etc.) for communicating direction of travel or other indications of vehicle operation, and one or more audio emitters (e.g., speakers, speaker arrays, horns, etc.) for audibly communicating with pedestrians or other nearby vehicles, some of which may include one or more acoustic beam steering technologies.

[0033] Vehicle 202 may also include a network interface 210 that enables communication between vehicle 202 and one or more other local or remote computing devices. For example, network interface 210 may facilitate communication with other local computing devices on vehicle 202 and / or drive components 212. Network interface 210 may also additionally or alternatively allow the vehicle to communicate with other nearby computing devices (e.g., other nearby vehicles, traffic signals, etc.). Network interface 210 may additionally or alternatively allow vehicle 202 to communicate with computing device 214. In some examples, computing device 214 may include one or more nodes of a distributed computing system (e.g., a cloud computing architecture).

[0034] Network interface 210 may include physical and / or logical interfaces for connecting vehicle computing device 204 to another computing device or network, such as network 216. For example, network interface 210 may enable Wi-Fi-based communications, such as over frequencies defined by the IEEE 200.11 standard, short-range radio frequencies such as Bluetooth, cellular communications (e.g., 2G, 3G, 4G, 4G LTE, 5G, etc.), or any suitable wired or wireless communication protocol that enables each computing device to interface with other computing devices. In some examples, vehicle computing device 204 and / or sensors 206 may transmit sensor data to computing device 214 over network 216, at particular frequencies, after a predetermined period of time, in near real-time, etc.

[0035] In some examples, the vehicle 202 may include one or more drive components 212. In some examples, the vehicle 202 may have a single drive component 212. In some examples, the drive component 212 may include one or more sensors for detecting conditions surrounding the drive component 212 and / or the vehicle 202. By way of example and not limitation, the sensors of the drive component 212 may include one or more wheel encoders (e.g., rotary encoders) that sense the rotation of the wheels of the drive component, inertial sensors (e.g., inertial measurement units, accelerometers, gyroscopes, magnetometers, etc.) that measure the orientation and acceleration of the drive component, cameras or other imaging sensors, ultrasonic sensors that acoustically detect objects surrounding the drive component, lidar sensors, radar sensors, etc. Some sensors, such as wheel encoders, may be unique to the drive component 212. In some cases, sensors on the drive component 212 may overlap or supplement corresponding systems (e.g., sensors 206) of the vehicle 202.

[0036] The drive components 212 may include numerous vehicle systems, including a high-voltage battery, a motor that propels the vehicle, an inverter that converts direct current from the battery to alternating current for use in other vehicle systems, a steering system including a steering motor and steering rack (which may be electric), a braking system including hydraulic or electric actuators, a suspension system including hydraulic and / or pneumatic components, a stability control system that distributes braking force to mitigate loss of traction and maintain control, an HVAC system, lighting (e.g., lighting such as head / tail lights that illuminate the exterior surroundings of the vehicle), and one or more other systems (e.g., a cooling system, a safety system, an on-board charging system, a DC / DC converter, a high-voltage junction, a high-voltage cable, a charging system, a charge port, etc.). Additionally, the drive components 212 may include a drive component controller for receiving and preprocessing data from sensors and controlling the operation of various vehicle systems. In some examples, the drive component controller may include one or more processors and a memory communicatively coupled to the one or more processors. The memory may store one or more components for performing various functions of the drive components 212. Additionally, drive components 212 may include one or more communication connections that enable the respective drive components to communicate with one or more other local or remote computing devices.

[0037] Vehicle computing device 204 may include a processor 218 and a memory 220 communicatively coupled to one or more processors 218. Memory 220 may represent memory 108. Computing device 214 may also include a processor 222 and / or a memory 224. Processor 218 and / or 222 may be any suitable processor capable of processing data and executing instructions to perform the operations described herein. By way of example and not limitation, processor 218 and / or 222 may include one or more central processing units (CPUs), graphics processing units (GPUs), integrated circuits (e.g., application-specific integrated circuits (ASICs)), gate arrays (e.g., field-programmable gate arrays (FPGAs)), and / or any other device or portion of a device that processes electronic data and transforms it into other electronic data that can be stored in a registry and / or memory.

[0038] Memory 220 and / or 224 may be examples of non-transitory computer-readable media. Memory 220 and / or 224 may store an operating system and one or more software applications, instructions, programs, and / or data for implementing the methods and functions attributed to the various systems described herein. In various implementations, memory may be implemented using any suitable memory technology, such as Static Random Access Memory (SRAM), Synchronous Dynamic RAM (SDRAM), non-volatile / flash memory, or any other type of memory capable of storing information. The architectures, systems, and individual elements described herein may include many other logical, programmatic, and physical components, of which those shown in the accompanying figures are merely examples relevant to the discussion herein.

[0039] In some examples, memory 220 and / or memory 224 may store localization component 226, perception component 228, planning component 230, collision avoidance component 332, map 234, and / or system controller 236. Perception component 228 may represent perception component 110, planning component 230 may represent planning component 112, and / or collision avoidance component 332 may represent collision avoidance component 114.

[0040] In at least one example, the localization component 226 may include hardware and / or software that receives data from the sensors 206 and determines the position, velocity, and / or orientation of the vehicle 202 (e.g., one or more of x, y, z position, roll, pitch, or yaw). For example, the localization component 226 may include and / or request / receive a map 234 of the environment and can continuously determine the position, velocity, and / or orientation of the autonomous vehicle within the map 234. In some examples, the localization component 226 may receive image data, lidar data, radar data, IMU data, GPS data, wheel encoder data, etc., and accurately determine the position, pose, and / or velocity of the autonomous vehicle using SLAM (simultaneous localization and mapping), CLAMS (simultaneous calibration, localization, and mapping), relative SLAM, bundle adjustment, nonlinear least squares optimization, etc. In some examples, the orientation component 226 may provide data to various components of the vehicle 202 to generate a trajectory and / or determine an initial position of the autonomous vehicle for generating map data, as discussed herein. In some examples, the orientation component 226 may provide the collision avoidance component 332 with the position and / or orientation of the vehicle 202 relative to the environment and / or sensor data associated therewith.

[0041] In some examples, perception component 228 may include a primary perception system and / or a predictive system implemented in hardware and / or software. Perception component 228 may detect objects in the environment surrounding vehicle 202 (e.g., identify that an object is present), classify objects (e.g., determine an object type associated with the detected object), segment sensor data and / or other representations of the environment (e.g., identify portions of the sensor data and / or representations of the environment as associated with the detected object and / or object type), determine characteristics associated with the object (e.g., tracks identifying current, predicted, and / or previous position, orientation, speed, and / or acceleration associated with the object), and / or the like. Data determined by perception component 228 is referred to as perception data.

[0042] Planning component 230 may receive the position and / or orientation of vehicle 202 from orientation component 226 and / or sensory data from perception component 228, and may determine instructions for controlling operation of vehicle 202 based at least in part on any of this data. In some examples, determining the instructions may include determining the instructions based at least in part on a format associated with a system with which the instructions are associated (e.g., a first instruction for controlling operation of the autonomous vehicle may be formatted in a first type of message and / or signal (e.g., analog, digital, pneumatic, kinetic) that system controller 236 and / or drive component 212 can interpret / execute, and a second instruction of emitter 208 may be formatted according to a second type associated therewith).

[0043] Collision avoidance component 232 may operate on vehicle 202 and / or on computing device 214. In some examples, collision avoidance component 232 may be downstream (receives output) in a pipeline from planning component 230. Collision avoidance component 232 may be configured to pass all, some, or all of the output of planning component 230 to system controller 236 for implementation, depending on the decisions discussed herein. In some examples, collision avoidance component 232 may include a feedback loop to provide input to planning component 230, such as a flag or message that triggers a redetermining of a trajectory.

[0044] Memory 220 and / or 224 may additionally or alternatively store a mapping system (e.g., generating maps based at least in part on sensor data), a planning system, a ride management system, etc. While localization component 226, perception component 228, planning component 230, collision avoidance component 232, map 234, and / or system controller 236 are illustrated as being stored in memory 220, any of these components may include processor-executable instructions, machine learning models (e.g., neural networks), and / or hardware, and all or a portion of any of these components may be stored on memory 224 or configured as part of computing device 214.

[0045] As described herein, the localization component 226, the perception component 228, the planning component 230, and / or other components of the system 200 may include one or more ML models. For example, the localization component 226, the perception component 228, and / or the planning component 230 may each include a different ML model pipeline. In some examples, the ML model may include a neural network. An exemplary neural network is a biologically inspired algorithm that passes input data through a series of connected layers to generate an output. Each layer of a neural network may include another neural network, or may include any number of layers (convolutional or not). As can be understood in the context of the present disclosure, a neural network may utilize machine learning, which may refer to a broad class of such algorithms in which an output is generated based on learned parameters.

[0046] Although discussed in the context of neural networks, any type of machine learning consistent with this disclosure can be used. For example, machine learning algorithms can include regression algorithms (e.g., ordinary least squares regression (OLSR), linear regression, logistic regression, stepwise regression, multivariate adaptive regression splines (MARS), locally weighted scatterplot smoothing (LOESS)), instance-based algorithms (e.g., ridge regression, least absolute shrinkage selection operator (LASSO), elastic nets, least angle regression (LARS)), decision tree algorithms (e.g., classification and regression trees (CART), iterative binary tree 3 (ID3), chi-squared automated interaction detection (CH2), etc.). AID), decision stumps, conditional decision trees), Bayesian algorithms (e.g., Naive Bayes, Gaussian Naive Bayes, Multinomial Naive Bayes, Average Ordinary Attribute Classifier (AODE), Bayesian Belief Networks (BNN), Bayesian Networks), clustering algorithms (e.g., k-means, k-medians, Expectation Maximization (EM), Hierarchical Clustering), association rule learning algorithms (e.g., Perceptron, Backpropagation, Hopfield Network, Radial Basis Function Network (RBFN)), deep learning algorithms (Deep Boltzmann Machine (DBM), Deep Belief Networks (DBN), Convolutional Neural Networks (CNN), Stacked Auto-Encoders), dimensionality reduction algorithms (e.g., Principal Component Analysis (PCA), Principal Component Regression (PCR), Partial Least Squares Regression (PLSR), Sammon Mapping, Multidimensional Scaling (MDS), Projection Pursuit, Linear Discriminant Analysis (LDA), Mixture Discriminant Analysis (MDA), Quadratic Discriminant Analysis (QDA), Flexible Discriminant Analysis (FDA)), ensemble algorithms (e.g., Boosting, Bootstrapped Aggregation (Bagging), AdaBoost, Stacked Generalization (Blending), Gradient Boosting Machines (GBM), Gradient Boosted Regression Trees (GBRT), RandomThese architectures can include, but are not limited to, neural networks such as ResNet50, ResNet101, VGG, DenseNet, and PointNet.

[0047] Memory 220 may additionally or alternatively store one or more system controllers 236, which may be configured to control steering, propulsion, braking, safety, emitter, communication, and other systems of vehicle 202. These system controllers 236 may communicate with and / or control corresponding systems of drive component 212 and / or other components of vehicle 202. For example, planning component 230 may generate instructions based at least in part on sensory data generated by perception component 228, which collision avoidance component 332 may verify and / or send to system controller 236. System controller 236 may control operation of vehicle 202 based at least in part on instructions received from planning component 230 and / or collision avoidance component 332. In some examples, collision avoidance component 332 may replace instructions generated by planning component 230 with an ad hoc trajectory associated with an alternative maneuver, such as, for example, a safety stop maneuver, emergency braking, or vehicle deceleration.

[0048] 2 is illustrated as a distributed system, it should be noted that in alternative examples, components of vehicle 202 may be associated with computing device 214 and / or components of computing device 214 may be associated with vehicle 202. That is, vehicle 202 may perform one or more of the functions associated with computing device 214, and vice versa.

[0049] (Example Architecture) FIG. 3 illustrates an example architecture 300 of at least a portion of a collision avoidance component. In some examples, the example architecture 300 may include ML models 314(1)-(n), where n is a positive integer. In some examples, the number of ML models 302(1)-(n) may correspond to the number of sensor types associated with the received sensor data, and the ML models 302(1)-(n) may be trained to receive different types of sensor data as input. For example, a first ML model 314(1) may be trained to generate output based on visible light image data 304, while an nth ML model 302(n) may be trained to generate output based on lidar data 306. For example, the image data 304 may include images received from one or more cameras. In some examples, the image data 304 may include images received from various cameras having different fields of view (e.g., fewer fields of view, non-contiguous full fields of view, contiguous full fields of view, etc.), which, in at least one example, can subtract 360° from each other, although additional or alternative fields of view are contemplated. It should be noted that while image data 304 depicts an image generated by a single sensor, image data 304 may additionally or alternatively include image data generated by multiple sensors from time t=0 to t=-m.

[0050] Additional or alternative ML models may be trained to generate output based at least in part on sensor data associated with radar returns (e.g., as may be identified within a point cloud), thermal imagery (e.g., infrared imagery), sonar data, and / or similar, additional or alternative sensor types. Of course, in some examples, one or more modalities may be input to a single ML model (e.g., any one or more modalities (raw, top-down, etc.) of lidar, radar, or camera data may be input to a single model). In some examples, the sensor data provided as input to ML models 302(1)-(n) may be associated with the most recent time (i.e., t=0) and / or one or more prior times. For example, the sensor data may range from the most recent time to a past time, −m, as depicted at 308 in FIG. 3 . In any of the above examples, the sensor data used in such a system may be the same as, a subset of, or different from the sensor data used for perception and predictive operations (as described herein). In an additional or alternative example, although the ML model is depicted in FIG. 3 and discussed herein, it will be understood that additional or alternative algorithms may be used.

[0051] In at least one example, image data may be provided as input to a first ML model, and lidar and / or radar data may be provided as input to a second ML model, while in additional or alternative examples, lidar data may be provided to a second ML model and radar data may be provided as input to a third ML model. In some examples, the lidar data may include a binary indication of occupancy (e.g., an indication that lidar points are present in discrete portions of lidar space that may be associated with a portion of the environment), a density of lidar points (e.g., a log-normalized density of all lidar points within a grid cell associated with lidar space), a maximum z value (e.g., a maximum height value of lidar points within a given grid cell), and / or a sliced ​​maximum z value (e.g., a maximum height value of each grid cell across n linear slices, e.g., 0-0.5 meters, 2-2.5 meters (where n is a positive integer, such as 3, 5, 6, 7, etc.)). In some examples, the lidar data may be projected into a top-down reference frame centered on the vehicle. The above-mentioned features may be stacked along the channel dimension for training purposes. For example, the channel dimensions may have a width, w, and a height, h, the number of lidar features included in the input frames may be p, and the number of input frames may be i (where w, h, p, and i may be positive integers). For example, as described above, there may be multiple frames from the current time to a previous time (-m).

[0052] In some examples, radar data may be provided as input to the ML models discussed herein. The radar data may include binary radar occupancy (e.g., an indication of the presence of a radar point in a discrete portion of radar space that may be associated with a portion of the environment), x and / or y values ​​for the Doppler velocity of radar returns that may be compensated for vehicle motion, radar cross section (RCS), signal-to-noise ratio (SNR), and / or ambiguous Doppler spacing, although additional or alternative radar metrics may be used. In some examples, if multiple radar returns fall within the same grid cell in radar space, the maximum RCS and / or SNR may be selected from among the multiple returns, and / or one of the velocity and velocity spacing pairs may be selected. In some examples, radar points may be projected into a top-down reference frame centered on the vehicle. Radar features as discussed herein may be stacked along the channel dimension, similar to lidar data as discussed above.

[0053] In some examples, the ML models 302(1)-(n) may each be trained to output a set of occupancy maps 310(1)-(n). The set of occupancy maps 310(n) may include one or more occupancy maps. In some examples, the set of occupancy maps 310(n) may include at least an occupancy map associated with the most recent time at which sensor data was received or a future time after the most recent time, either of which may be referred to as a current occupancy map. In additional or alternative examples, the set of occupancy maps 310(n) may include an occupancy map associated with a future time q (a positive number) and / or one or more occupancy maps from the most recent time to a future time. For example, the occupancy maps generated by the ML model may include occupancy maps associated with the current (most recent or post-most recent) time up to the qth time in intervals—e.g., 500 millisecond intervals—with five occupancy maps from t=0 seconds to t=2 seconds. In some examples, the ML models 302(1)-(n) may each be trained to output the same number of occupancy maps associated with the same time.

[0054] An occupancy map can be a data structure that indicates whether a portion of an environment is occupied or unoccupied, whether an occupied portion is static or dynamic, and / or a confidence score (e.g., the likelihood / posterior probability that a portion is occupied or unoccupied). In at least one example, the occupancy map can include a field for the confidence score, although FIG. 3 depicts the occupancy map as binary, with occupied portions of the environment in black and unoccupied portions of the environment in white. For example, different pixels of the occupancy map can be associated with different portions of the environment, and each pixel can indicate a confidence score that indicates the likelihood that the respective portion of the environment is occupied / unoccupied.

[0055] In some examples, discrete portions of the data structure may be associated with portions of the environment. Discrete portions may be, for example, pixels, locations in memory, and / or the like. The occupancy map generated by the ML model and / or occupancy maps generated by different models may contain the same frame of reference, such that the same discrete portions (e.g., the same pixel locations, the same memory locations, respectively) of two different occupancy maps may correspond to the same portion of the environment. In some examples, this alignment of occupancy maps may be trained—sensor data need not be aligned beforehand, although in some examples, they may be aligned. In one example, the occupancy maps may all be associated with the same 30 meter by 30 meter region of the environment centered around the autonomous vehicle. In additional or alternative examples, the occupancy maps may be aligned as a post-processing step after being generated by the ML models 302(1)-(n).

[0056] In some examples, the set of occupancy maps 310 generated by different ML models may be aggregated by an aggregation component 312 into a single data structure, which may include a set of occupancy maps 314. The aggregation component 312 may determine a final estimation of whether a portion of the environment (at a particular time) is occupied or unoccupied, and / or dynamic or static, based at least in part on the occupancy map associated with that same time from among the set of different occupancy maps 314. For example, the occupancy maps associated with t=0 may be aggregated into a single occupancy map, the occupancy maps associated with t=0.5 may be aggregated into a single occupancy map, and so on until t=q.

[0057] In some examples, the set of occupancy maps 314 may include a binary indication of whether a portion of the environment is occupied or unoccupied. In another example, the set of occupancy maps 314 may additionally or alternatively include a confidence score (e.g., a probability or likelihood). The aggregation component 312 may aggregate the set of occupancy maps 310(1)-(n) based at least in part on voting and / or averaging techniques among occupancy maps associated with the same time, according to any of the techniques discussed herein.

[0058] In at least one example, aggregating occupancy maps associated with the same time step may include applying an aggregation function to the softmax values ​​across modal dimensions (e.g., across the outputs of different ML models (1)-(n)). The aggregation function may include averaging, priority pooling, and / or the like. Priority pooling may include setting priorities associated with occupancies of different object types. For example, occupancies associated with a pedestrian object classification may have the highest priority, bicycles and / or cars may have the next highest priority, followed by vehicles, which may have the next lowest priority, and background / ground may have the lowest priority. If the outputs of two different ML models disagree on a pixel classification (e.g., one ML model classifies a pixel as occupied by a pedestrian, while another ML model classifies the pixel as ground), the technique may include choosing the output associated with the higher priority; in a given example, the pedestrian object classification may have a higher priority than ground, and thus associate the pixel with a pedestrian. Ties may be resolved by determining the pixel associated with the larger magnitude of the softmax value for that object classification.

[0059] In some examples, a threshold may be applied to the set of occupancy maps 314 (e.g., after aggregation) or to the set of occupancy maps 310(1)-(n) (e.g., before aggregation). For example, applying a threshold to the occupancy map may include determining to associate a portion of the occupancy map with an indication that the portion of the environment associated therewith is occupied based at least in part on determining that the confidence score associated with the portion of the occupancy map meets or exceeds the confidence threshold. Conversely, a portion of the occupancy map may be associated with an indication that the portion of the environment is unoccupied based at least in part on determining that the confidence score is less than the confidence threshold.

[0060] In examples where a threshold is applied to the set of occupancy maps 310(1)-(n) before aggregation, the set of occupancy maps 314 resulting from the aggregation may include a binary indication that each portion of the environment is occupied or unoccupied. In some examples, the aggregated confidence score may additionally be associated with the binary indication. In some examples, different ones of the ML models 302(1)-(n) may be associated with different confidence thresholds based at least in part on the different sensor types associated therewith.

[0061] In another example, where a threshold is not applied before aggregation, the set of occupancy maps 314 resulting from the tabulation may include a field of confidence scores, and applying a threshold to the confidence scores may result in a binary representation of occupied and unoccupied portions of the environment. In some examples, applying a threshold may be part of the aggregation (e.g., may be part of a voting and / or averaging technique).

[0062] In some examples, the value of the confidence score threshold may be set based at least in part on a target false positive and / or target false negative rate. The confidence score threshold may be set at least in part based on running the ML models 302(1)-(n) on test sensor data.

[0063] (Example Process) 4 is a pictorial flow diagram of an example process 400 for validating a trajectory output by a planning component of an autonomous vehicle. In some examples, the example process 400 may be performed by at least a collision avoidance component during operation of the autonomous vehicle.

[0064] Operations 402-406 may be performed by different processing pipelines. For example, there may be n processing pipelines, where n is a positive integer that may correspond to the number of sensor data types used by the collision avoidance system. Each processing pipeline may include an ML model and / or other algorithms for determining a set of occupancy maps, as discussed herein. The ML models may be trained independently of the ML models of other pipelines. For clarity, the reference numerals for operations 402-406 omit the parenthetical numerals that appear in the figure because operations 402-406 may be performed by at least a single pipeline.

[0065] At operation 402, the example process 400 may include receiving sensor data associated with a sensor type according to any of the techniques discussed herein. For example, the sensor data may include lidar data, radar data, infrared image data, visual image data, sonar data, and / or the like. In some examples, different pipelines may receive different types of sensor data. A first pipeline may receive lidar data, an nth pipeline may receive radar data, and so on. It is understood that the ML model may be trained to receive a single data type or a variety of data types in additional or alternative examples.

[0066] At operation 404, example process 400 may include inputting the sensor data into an ML model according to any of the techniques discussed herein. In some examples, operation 404 may additionally or alternatively include preprocessing the sensor data to remove sensor data outside of an area monitored by the collision avoidance system, projecting the sensor data into a reference frame common to different types of sensor data, normalizing the density of the sensor data, removing sensor data above a threshold height, etc.

[0067] At operation 406, the example process 400 may include receiving at least a predicted occupancy map as output from the ML model, according to any of the techniques discussed herein. The predicted occupancy map may include a portion indicating the likelihood that portions of the environment will be occupied / unoccupied at a future time. In some examples, operation 406 may additionally or alternatively include receiving one or more additional occupancy maps. For example, the additional occupancy map may be associated with a time interval from the future time to the most recent time at which sensor data was received (e.g., an interval from 2 seconds to 0 seconds). The additional occupancy map may include a current map associated with the most recent time at which sensor data was received or a subsequent time (e.g., 250 milliseconds later, 500 milliseconds later).

[0068] FIG. 5A illustrates exemplary occupancy maps 500-504, each associated with the same future time q and received from different pipelines. For example, occupancy map 500 may be received from a first pipeline, occupancy map 502 may be received from a second pipeline, and occupancy map 504 may be received from an nth pipeline. Occupancy maps 506-510 are examples of occupancy maps aggregated according to different aggregation techniques and / or thresholds. Each of occupancy maps 500-510 includes various portions, depicted as squares, each associated with a respective portion of the environment surrounding the vehicle. For example, each of occupancy maps 500-510 includes portion 512 and portion 514. Note that for simplicity, portions may actually be different memory locations or pixels, but are referred to as the same portion by being located in the same relative position within the occupancy map or corresponding to the same portion of the environment.

[0069] 5A depicts confidence scores in different shades of gray, where white indicates a confidence score below 0.39, light gray indicates a confidence score between 0.4 and 0.59, medium gray indicates a confidence score between 0.6 and 0.79, and dark gray indicates a confidence score between 0.8 and 1.0. It is understood that these scores are given for illustrative purposes only, and the ranges of confidence scores are also for illustrative purposes only—additional or alternative examples may include different types of scores (e.g., percentages, ratios) and / or different ranges. In other words, white indicates a high likelihood that the portion of the environment associated with it is unoccupied, and dark gray indicates a high likelihood that the portion of the environment associated with it is occupied.

[0070] At operation 408, the example process 400 may include aggregating the occupancy maps into a data structure according to any of the techniques discussed herein. In some examples, the aggregation may include aggregating occupancy maps generated by different pipelines and associated with the same time into a single occupancy map. This may be repeated for each time period associated with a different occupancy map. For example, operation 408 may include aggregating a first occupancy map output by a first ML model and associated with a first time period and a second occupancy map output by a second ML model and associated with the first time period into a first aggregated occupancy map, and aggregating for subsequent time steps in which occupancy maps are determined by different pipelines. Finally, the aggregation combines the occupancy maps from the different pipelines into a single occupancy map associated with the same time period. The data structure may include these aggregated occupancy maps for different time steps.

[0071] In some examples, operation 408 may include ensemble voting techniques, such as majority voting, plurality voting, weighted voting (e.g., where a particular pipeline is functionally attributed more votes), and / or simple averaging, weighted averaging, or other ensemble voting techniques. In other words, a first occupancy map may indicate that a portion of an environment is occupied with a probability of 0.9, and a second occupancy map may indicate that the portion is occupied with a probability of 0.8. This technique may include using the probabilities in a voting technique to determine whether the portion is occupied or unoccupied, and / or averaging the probabilities to associate an averaged probability therewith.

[0072] At operation 410, the example process 400 may include applying a threshold to the data structure to determine a binary indication of whether a portion is occupied or not, according to any of the techniques discussed herein. The threshold may be a threshold confidence score. The threshold may be different for each pipeline, in examples where it is applied to the occupancy map before aggregation. In some examples, applying the threshold may include indicating that any portion of the occupancy map exhibiting a confidence score below the threshold is unoccupied and any portion meeting or exceeding the threshold confidence score is occupied, or vice versa, depending on the meaning of the score (e.g., 0 indicates that the environmental portion is occupied). In additional or alternative examples, different thresholds may be associated with different pipelines, such that a score meeting or exceeding 0.8 may indicate occupancy of a first pipeline, a score meeting or exceeding 0.7 may indicate occupancy of a second pipeline, etc.

[0073] In some examples, operation 410 may be part of operation 408. For example, in an example where operation 408 includes a unanimous voting technique and the threshold is 0.75, operation 410 may include indicating the portion in the example described above as occupied based on the first occupancy map and the second occupancy map both indicating a likelihood of meeting or exceeding 0.75.

[0074] The threshold may be set and / or a voting technique may be selected based at least in part on a target false negative rate and / or target false positive rate. For example, a unanimous voting technique may result in a lower false negative rate and a higher false positive rate, while a plurality voting technique may result in a higher false negative rate and a lower false positive rate. Similarly, a higher threshold may result in a lower false negative rate and a higher false positive rate, and vice versa. In some examples, setting the threshold may include training an ML model based at least in part on a training dataset that may include recorded and / or simulated sensor data from live vehicle operation, top-down representations generated by a previously trained ML model, aerial footage, and labels generated by a human and / or another ML model, and running the ML model with test data that may consist of additional sensor data at different thresholds. False positive and / or false negative rates may be determined for testing, for example, with human labeling and / or another validation process (e.g., difference from ground truth data) in relation to different thresholds. The threshold may be selected to be related to a target false positive rate and / or a target false negative rate.

[0075] 5B shows an example occupancy map 506 that may result from setting thresholds and / or selecting voting techniques to achieve a conservative (low) false negative rate, which may result in a high false positive rate. As a result, portions 512 and 514 may both indicate that their respective portions of the environment are occupied. Portion 512 illustrates how conservative this indication is, as only portion 512 of occupancy map 502 makes any indication that there may be an object located in the portion of the environment associated with portion 512, and even then, with low confidence, as indicated by the light gray. In some examples, collision avoidance systems may be designed to maximize safety and may use thresholds and / or voting techniques to aggregate occupancy maps to achieve a false negative, conservative occupancy map.

[0076] FIG. 5C illustrates an example occupancy map 508 that may result from setting thresholds and / or selecting voting techniques to achieve a balance between false negative and false positive rates. This may be achieved by decreasing the threshold, selecting a less stringent voting technique, and / or more heavily weighting some of the occupancy maps output by more accurate ML models. Note that portion 512 currently indicates that its associated respective portion of the environment is unoccupied, while portion 514 indicates that its respective portion is occupied (e.g., because occupancy map 502 and occupancy map 504 both indicate that portion 514 is occupied). Setting thresholds and / or selecting false negative rates to achieve a balanced occupancy map may balance safety benefits with preventing a vehicle from hard braking due to a false positive.

[0077] 5D shows an example occupancy map 510 that may result from setting a threshold and / or selecting a voting technique to achieve a conservative (low) false positive rate. This may be achieved by further decreasing the threshold, selecting a less stringent voting technique, and / or more heavily weighting some of the occupancy maps output by more accurate ML models. Note that an increased threshold confidence may exclude portion 514 of occupancy map 502 and / or occupancy map 504 from indicating occupancy. Portion 514 of occupancy map 510 may accordingly indicate that the portion of the environment associated with it is not occupied.

[0078] At operation 412, example process 400 may include controlling the autonomous vehicle based at least in part on the data structure in accordance with any of the techniques discussed herein. The data structure may include an aggregated occupancy map (at each time step) as discussed herein. Operation 412 may include operations 414, 416, 418, and / or 420.

[0079] At operation 414, the example process 400 may include receiving a trajectory according to any of the techniques discussed herein. For example, the trajectory may be received from a planning component of the autonomous vehicle. The trajectory may indicate current and / or target position, velocity, acceleration, heading, steering angle, and / or steering rate.

[0080] At operation 416, the example process 400 may include determining whether the trajectory is within a threshold distance of an occupied portion of the data structure, according to any of the techniques discussed herein. The threshold distance may be a safety buffer distance based at least in part on the current and / or target speed. Operation 416 may include determining whether the trajectory is associated with a location that is less than the threshold distance of the occupied portion indicated by any of the aggregated occupancy maps comprising the data structure. In other words, operation 416 may include determining whether the trajectory would place the autonomous vehicle within a threshold distance of a portion of the environment that is predicted to be occupied at any of the respective times by its associated respective occupancy map. If, at operation 416, the collision avoidance system determines that the trajectory is not associated with a location that is less than the threshold distance from an occupied portion (i.e., the location is at a distance from any occupied portion that meets or exceeds the threshold distance), the example process 400 may continue with operation 418; otherwise, the example process 400 may continue with operation 420.

[0081] In additional or alternative examples, operation 416 may include summing probabilities associated with each portion of the data structure related to the trajectory and / or determining whether the summed probabilities meet or exceed a threshold score. The threshold score may be based at least in part on a speed and / or length associated with the trajectory (e.g., the threshold may increase as the speed and / or length of the trajectory increases). Operation 416 may include determining a subset of the portions of the data structure that the trajectory intersects and / or is a threshold distance of the trajectory. The threshold distance may be based at least in part on the current speed of the vehicle and / or the speed associated with the trajectory. Summing the probabilities may include summing probabilities associated with a subset of the portions of the data structure.

[0082] At operation 418, the example process 400 may include verifying and / or transmitting the trajectory according to any of the techniques discussed herein. For example, verifying and / or transmitting the trajectory may include causing the autonomous vehicle to execute the trajectory (e.g., by transmitting the trajectory to a system controller).

[0083] At operation 420, example process 400 may include initiating an interim trajectory and / or redetermining a trajectory according to any of the techniques discussed herein. For example, operation 420 may include causing the vehicle to execute the interim trajectory, which may include sending instructions to a system controller to cause the vehicle to slow down, perform safety stop steering, hard braking, etc. In some examples, the planning component may determine the interim trajectory and send the interim trajectory to the collision avoidance component along with the trajectory and / or in response to a request by the collision avoidance component. In additional or alternative examples, operation 420 may include sending a request to the planning component to determine a new trajectory.

[0084] (Example Architecture and / or Training) In some examples, the ML models 302(1)-(n) may include encoder-decoder networks, although other architectures are contemplated. In examples using an encoder-decoder network with a convolutional layer, the encoder layer may use average pooling with a pooling size of (2,2), and the decoder may include bilinear upsampling. Following the decoder, the architecture may include a single linear convolutional layer that generates logits, and the final layer may apply softmax to generate final output probabilities associated with different object classifications (e.g., pedestrian, bicyclist, motorcycle, vehicle, etc. may label the ground). In some examples, the architecture of some of the ML models 301(1)-(n) may vary based on sensor data acquired by the ML models. For example, FIG. 6A illustrates an example of an ML architecture trained to determine an occupancy map based at least in part on lidar and / or radar data as input, and FIG. 6B illustrates an example of an ML architecture trained to determine an occupancy map based at least in part on image data.

[0085] For example, FIG. 6A illustrates an ML model 600 trained to determine an occupancy map based at least in part on lidar and / or radar data, and may include an encoder including a set of five blocks consisting of a pair of convolutional layers with batch normalization followed by an average pooling layer. In some examples, the convolutional layers may include ReLU activation (e.g., sigmoid, hyperbolic tangent, leaky ReLU, parametric ReLU, softmax, swish), although other activations are contemplated. The decoder may include five blocks with three convolutional layers with batch normalization. The network may additionally or alternatively include a skip connection 602 from the fourth block of the encoder to the second block of the decoder.

[0086] Continuing with additional or alternative examples of architectural variations of ML models 302(1)-(n), FIG. 6B depicts an ML model 604 trained to determine an occupancy map based at least in part on image data, which may include an encoder-decoder network built on a ResNet (or other vision) backbone. For example, the ResNet block may include three layers, although additional or alternative ResNet or other vision-based components may be used. In some examples, the encoder and decoder may have four blocks on the ResNet block, and in at least some examples, the architecture 604 may include an orthogonal feature transform layer between the encoder and decoder. The output is a top-down view, but the image is a perspective view. The orthogonal feature transform layer may transform from pixel space to top-down space. In some examples, the orthogonal feature transform layer may include a series of unbiased fully connected layers with ReLU activations, although other activations are contemplated (e.g., sigmoid, hyperbolic tangent, leaky ReLU, parametric ReLU, softmax, swish). In examples where image data 304 includes images from different cameras, architecture 604 may be configured to receive images from each camera view via a shared encoder, and the architecture may be trained to train a separate orthographic projection transform for each view, add the projection features together, and pass the results to a single decoder.

[0087] Training the ML models may include independently training each ML model associated with a different sensor modality. This may include using an Adam optimizer. In some examples, the loss function used to train the ML models may include the sum of cross-entropy over all output frames, with equal weighting for each frame. Additionally or alternatively, losses associated with pedestrian and / or bicycle object classifications may be boosted to account for the low frequency of occurrence of these classifications in the sensor data (e.g., compared to ground and vehicle classifications). This may include multiplying the loss coefficients associated with these object classifications (e.g., 10, or any other number depending on whether the classifications are balanced). In at least one example, the loss ε may be calculated according to the following (Equation 1):

[0088]

number

[0089] where F is the number of future frames, G is the set of cells in the final occupancy map indicating the object classifications occupying each part of the environment (e.g., ground, pedestrian, vehicle, bicycle, etc.), k c is the coefficient that accounts for classification imbalance (if used), p f g (c) and q f g (c) shows the ground truth and predicted values ​​for a given frame f, object class c, and grid cell g.

[0090] In some examples, the final occupancy map may include an indication of the object classification occupying each grid cell of the occupancy map. In additional or alternative examples, the ML model may be trained to output, in addition to or instead of the grid cell indication, an instance segmentation and / or a region of interest (ROI) associated with the detected object. For example, the ROI may include a bounding rectangle or any other shape to define the portion of the environment occupied by the object.

[0091] In additional or alternative examples, sensor data from different sensor types may be fused into a single input and provided as an input to one or more ML models, in such examples, the one or more ML models may be trained together.

[0092] These architectures and / or training and / or aggregation methods may result in an ML model pipeline that can determine semantic segmentation based, at least in part, on sensor data (e.g., image data, lidar data, and / or radar data, in one example). The ML model pipeline may ultimately generate a common representation of the environment across all sensor types, simplifying the complexity of the autonomous vehicle's perception component. This provides flexibility in selecting fusion procedures based on different performance requirements. Furthermore, the semantic segmentation task can be further extended from the current frame to future frames using the same framework, providing short-term predictions of object motion in the environment. The multimodal, multi-frame nature of this framework provides flexibility and robustness for downstream decision-making (e.g., component planning).

[0093] (Example section) A. A system comprising two or more sensors and one or more processors, and when executed by the one or more processors, receiving first sensor data associated with a first sensor type associated with at least one of the two or more sensors to the system; receiving second sensor data associated with a second sensor type associated with at least one of the two or more sensors; determining a first current occupancy map and a first predicted occupancy map based at least in part on the first sensor data, the first predicted occupancy map including a discretization grid indicating a likelihood that each portion thereof is occupied; and determining a second current occupancy map and a second predicted occupancy map based at least in part on the second sensor data, the first the current occupancy map and the second current occupancy map indicating a first and second possibility that the portion of the environment is occupied at the current time, and the first predicted occupancy map and the second predicted occupancy map indicating a third and fourth possibility that the portion of the environment is occupied at a future time; combining the first current occupancy map and the second current occupancy map to a data structure indicating whether the portion of the environment is occupied or unoccupied at the current time; combining the first predicted occupancy map and the second predicted occupancy map to a data structure indicating whether the portion of the environment is occupied or unoccupied at a future time; and controlling the autonomous vehicle based at least in part on the data structure.

[0094] B. The system of paragraph A, wherein the operations further include determining at least one of a first position or a first velocity associated with at least the closest object based at least in part on the data structure and receiving a trajectory, and wherein controlling the autonomous vehicle further includes determining to control the autonomous vehicle to execute the trajectory or to control the autonomous vehicle to execute an ad hoc trajectory based at least in part on the at least one of the first position or the first velocity and at least one of a second position or a second velocity associated with the autonomous vehicle.

[0095] C. The system of paragraph B, wherein controlling the autonomous vehicle to execute the provisional trajectory is based at least in part on at least one of determining that the trajectory is within a threshold distance of at least a portion of the data structure indicated as occupied, or determining a sum of probabilities of portions of the data structure based at least in part on the trajectory.

[0096] D. The system of any of paragraphs A-C, wherein determining the first occupancy map includes providing first sensor data as input to a first machine learning (ML) model and receiving the first occupancy map as output from the first ML model, and determining the second occupancy map includes providing second sensor data as input to a second machine learning (ML) model and receiving the second occupancy map as output from the second ML model.

[0097] E. The system of any of paragraphs A through D, wherein the first current occupancy map includes first confidence scores associated with portions of the environment, the first confidence scores indicating a first likelihood that the portions are occupied, the second current occupancy map includes second confidence scores associated with the portions of the environment, the second confidence scores indicating a second likelihood that the portions are occupied, and combining the first current occupancy map and the second current occupancy map into a data structure is based at least in part on at least one of the first confidence scores, the second confidence scores, the first sensor type, and the second sensor type.

[0098] F. The system of any of paragraphs A through E, wherein the operations further include associating a first portion of the first current occupancy map as indicating that the portion is occupied based at least in part on a determination that the first confidence score meets or exceeds a threshold confidence score, and wherein imaging the first current occupancy map and the second current occupancy map into the data structure further includes voting based on at least one of the first portion and a second portion associated with the second current occupancy map indicating that the portion is occupied or unoccupied.

[0099] G. A method including: receiving first sensor data associated with a first sensor type; receiving second sensor data associated with a second sensor type; determining a first occupancy map based at least in part on the first sensor data, the first occupancy map indicating whether a portion of an environment surrounding the autonomous vehicle will be occupied or unoccupied at a future time; determining a second occupancy map based at least in part on the second sensor data, the second occupancy map indicating whether the portion will be occupied or unoccupied at the future time; combining the first occupancy map and the second occupancy map into a data structure based at least in part on the first occupancy map and the second occupancy map, the data structure indicating whether the portion of the environment will be occupied or unoccupied at the future time; and controlling the autonomous vehicle based at least in part on the data structure.

[0100] H. The method of paragraph G, further including determining a first position or a first velocity associated with at least the closest object based at least in part on the data structure and receiving a trajectory, and wherein controlling the autonomous vehicle further includes determining to control the autonomous vehicle to execute the trajectory or control the autonomous vehicle to execute an ad hoc trajectory based at least in part on at least one of the first position or the first velocity and at least one of a second position or a second velocity associated with the autonomous vehicle.

[0101] I. The method of paragraph H, wherein controlling the autonomous vehicle to execute the temporary trajectory is based at least in part on one or more of determining that the trajectory is within a threshold distance of at least a portion of a data structure indicated as occupied, or determining a sum of probabilities associated with a data structure based at least in part on the trajectory.

[0102] J. The method of any of paragraphs G through I, wherein determining the first occupancy map includes providing first sensor data as input to a first machine learning (ML) model and receiving the first occupancy map as output from the first ML model, and determining the second occupancy map includes providing second sensor data as input to a second machine learning (ML) model and receiving the second occupancy map as output from the second ML model.

[0103] K. The method of any of paragraphs G through J, wherein the first current occupancy map includes first confidence scores associated with the portions of the environment, the first confidence scores indicating a first likelihood that the portions are occupied, and the second current occupancy map includes second confidence scores associated with the portions of the environment, the second confidence scores indicating a second likelihood that the portions are occupied, and aggregating the first current occupancy map and the second current occupancy map into the data structure includes associating the first portions of the first current occupancy map as indicating that the portions are occupied based at least in part on determining that the confidence scores meet or exceed a threshold confidence.

[0104] L. The method of any of paragraphs G-K, wherein aggregating the first current occupancy map and the second current occupancy map into a data structure further includes voting to associate the second portion of the data structure as indicating that the portion is occupied based at least in part on at least one of the first portion, the second sensor type, the second sensor type, the first confidence score, or the second confidence score, the first portion and a second portion associated with the second current occupancy map indicating whether the portion is occupied or unoccupied.

[0105] M. The method of any of paragraphs G through L, wherein the first sensor data and the second sensor data include current sensor data and previous sensor data, and the first occupancy map includes at least a current occupancy map associated with a current time and a predicted occupancy map associated with a future time.

[0106] N. A non-transitory computer-readable medium storing processor-executable instructions that, when executed by one or more processors, cause the one or more processors to: receive first sensor data from one or more first sensors associated with a vehicle, the one or more first sensors being of a first sensor type; receive second sensor data from one or more second sensors associated with the vehicle, the one or more second sensors being of a second sensor type; and determine, based at least in part on the first sensor data, that a portion of an environment surrounding the vehicle will be at a future time. determining a first occupancy map indicating whether a portion of an environment surrounding the vehicle is occupied or unoccupied and determining a second occupancy map indicating whether a portion of an environment surrounding the vehicle will be occupied or unoccupied at a future time based at least in part on the second sensor data; aggregating the first occupancy map and the second occupancy map into a data structure based at least in part on the first occupancy map and the second occupancy map, the data structure indicating whether the portion of the environment will be occupied or unoccupied at a future time; and controlling the autonomous vehicle based at least in part on the data structure.

[0107] O. The non-transitory computer-readable medium of paragraph N, wherein the operations further include determining at least one of a first position or a first velocity associated with at least the closest object based at least in part on the data structure and receiving a trajectory, and wherein controlling the autonomous vehicle further includes determining to control the autonomous vehicle to execute the trajectory or control the autonomous vehicle to execute an ad hoc trajectory based at least in part on the at least one of the first position or the first velocity and at least one of a second position or a second velocity associated with the autonomous vehicle.

[0108] P. The non-transitory computer-readable medium of paragraph O, wherein controlling the autonomous vehicle to execute the provisional trajectory is based at least in part on at least one of determining that the trajectory is within a threshold distance of at least a portion of the data structure indicated as occupied, or determining a sum of probabilities of portions of the data structure based at least in part on the trajectory.

[0109] Q. The non-transitory computer-readable medium of paragraph P, wherein determining the first occupancy map includes providing first sensor data as input to a first machine learning (ML) model and receiving the first occupancy map as output from the first ML model, and determining the second occupancy map includes providing second sensor data as input to a second machine learning (ML) model and receiving the second occupancy map as output from the second ML model.

[0110] R. The non-transitory computer-readable medium of any of paragraphs NP, wherein the first current occupancy map includes first confidence scores associated with portions of the environment, the first confidence scores indicating a first likelihood that the portions are occupied, and the second current occupancy map includes second confidence scores associated with the portions of the environment, the second confidence scores indicating a second likelihood that the portions are occupied, and aggregating the first current occupancy map and the second current occupancy map into a data structure includes associating the first portion of the first current occupancy map as indicating that the portions are occupied based at least in part on determining that the confidence scores meet or exceed a threshold confidence.

[0111] S. The non-transitory computer-readable medium of any of paragraphs NR, wherein aggregating the first current occupancy map and the second current occupancy map into a data structure further includes voting to associate the second portion of the data structure as indicating that the portion is occupied based at least in part on at least one of the first portion and the second current occupancy map associated second portion indicating whether the portion is occupied or unoccupied, the first sensor type, the second sensor type, the first confidence score, or the second confidence score.

[0112] T. The non-transitory computer-readable medium of any of paragraphs N through S, wherein the first sensor data and the second sensor data include current sensor data and previous sensor data, and the first occupancy map includes at least a current occupancy map associated with a current time and a predicted occupancy map associated with a future time.

[0113] Although the example sections above are described with respect to one particular implementation, it should be understood that in the context of this specification, the subject matter of the example sections may also be implemented via a method, apparatus, system, computer-readable medium, and / or other implementation. Furthermore, any of Examples A-T may be implemented alone or in combination with one or more of the other Examples A-T.

[0114] (Conclusion) Although the subject matter has been described in language specific to structural features and / or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described. Rather, the specific features and acts are disclosed as example forms of implementing the claims.

[0115] The components described herein represent instructions that may be stored on any type of computer-readable medium and that may be implemented in software and / or hardware. All of the methods and processes described above may be embodied in and fully automated via software code components and / or computer-executable instructions implemented by one or more computers or processors, hardware, or some combination thereof. Some or all of the methods may alternatively be embodied in specialized computer hardware.

[0116] At least some of the processes discussed herein are illustrated as logical flow diagrams, each operation of which represents a sequence of actions that can be implemented in hardware, software, or a combination thereof. In the context of software, the actions represent computer-executable instructions stored on one or more non-transitory computer-readable storage media that, when executed by one or more processors, cause a computer or autonomous vehicle to perform the referenced actions. Generally, computer-executable instructions include routines, programs, objects, components, data structures, etc. that perform particular functions or implement particular abstract data types. The order in which the actions are described is not intended to be construed as a limitation, and any number of the described actions can be combined in any order and / or in parallel to perform processing.

[0117] In particular, conditional language such as "may," "would," "may," or "would" is understood, within the context, to indicate that certain examples include certain features, elements, and / or steps, while other examples do not, unless specifically stated otherwise. Thus, such conditional language is not intended to generally imply that certain features, elements, and / or steps are somehow required for one or more examples, or that one or more examples necessarily include logic for determining, with or without user input or prompting, whether a particular feature, element, and / or step is included or performed in a particular example.

[0118] Conjunctive language, such as the phrase "at least one of X, Y, or Z," should be understood to indicate that the item, term, etc. can be either X, Y, or Z, or any combination thereof, including multiples of each element, unless specifically stated otherwise. "a" refers to the singular as well as the plural, unless expressly stated as singular.

[0119] It should be understood that any routine description, element, or block in the flow diagrams described herein and / or depicted in the accompanying figures may represent a module, segment, or portion of code that comprises one or more computer-executable instructions for implementing particular logical functions or elements in the routine. As will be appreciated by those skilled in the art, alternative implementations are within the scope of the examples described herein in which, depending on the functionality involved, elements or functions may be removed, substantially synchronized, performed in reverse order, or with additional operations or omissions, or may be performed in a different order than that shown or discussed.

[0120] Many variations and modifications may be made to the above-described example, and it should be understood that the element is one of several acceptable examples. All such modifications and variations are intended to be included herein within the scope of this disclosure and are protected by the following claims.

Claims

1. 1. A system comprising: two or more sensors; one or more processors; When executed by the one or more processors, receiving first sensor data from a first sensor of the two or more sensors; receiving second sensor data from a second sensor different from the first sensor among the two or more sensors, the second sensor being the same sensor as the first sensor; determining a first current occupancy map and a first predicted occupancy map based at least in part on the first sensor data, the first predicted occupancy map including a discretized grid indicating a likelihood that each portion thereof is occupied; determining a second current occupancy map and a second predicted occupancy map based at least in part on the second sensor data; the first current occupancy map and the second current occupancy map indicate first and second possibilities that portions of the environment are occupied at a current time; the first predicted occupancy map and the second predicted occupancy map indicate a third possibility and a fourth possibility that the portion of the environment will be occupied at a future time; and combining the first current occupancy map and the second current occupancy map into a data structure indicating whether the portion of the environment is occupied or unoccupied at the current time by applying an aggregation function to first softmax values ​​associated with the first possibility and the second possibility; combining the first predicted occupancy map and the second predicted occupancy map into the data structure indicating whether the portion of the environment is occupied or unoccupied at the future time by applying the aggregation function to second softmax values ​​associated with the third possibility and the fourth possibility; controlling an autonomous vehicle based at least in part on the data structure; and a memory storing processor-executable instructions for performing operations including: A system comprising:

2. The operation is determining at least one of a first position or a first velocity associated with at least the closest object based at least in part on the data structure; receiving a trajectory; Furthermore, controlling the autonomous vehicle based at least in part on at least one of the first position or the first velocity and at least one of a second position or a second velocity associated with the autonomous vehicle; controlling the autonomous vehicle to execute the trajectory; or controlling the autonomous vehicle to execute a temporary trajectory; The system of claim 1 , further comprising: determining:

3. 3. The system of claim 2, wherein controlling the autonomous vehicle to execute the temporary trajectory is based at least in part on at least one of determining that the trajectory is within a threshold distance of at least a portion of the data structure that is indicated as occupied, or determining a sum of probabilities of portions of the data structure that are based at least in part on the trajectory.

4. determining the first current occupancy map comprises providing the first sensor data as an input to a first machine learning (ML) model and receiving the first current occupancy map as an output from the first ML model; 4. The system of claim 1, wherein determining the second current occupancy map comprises providing the second sensor data as an input to a second machine learning (ML) model and receiving the second current occupancy map as an output from the second ML model.

5. the first current occupancy map comprises a first confidence score associated with the portion of the environment, the first confidence score indicating a first likelihood that the portion is occupied; The second current occupancy map comprises a second confidence score associated with the portion of the environment, the second confidence score indicating a second likelihood that the portion is occupied. 、 5. The system of claim 1, wherein combining the first current occupancy map and the second current occupancy map into the data structure is based at least in part on at least one of the first confidence score, the second confidence score, the first sensor, and the second sensor.

6. the operations further comprising associating a first portion of the first current occupancy map as indicating that the portion is occupied based at least in part on a determination that the first confidence score meets or exceeds a threshold confidence score; 6. The system of claim 5, wherein imaging the first current occupancy map and the second current occupancy map into the data structure further comprises voting based on at least one of the first portion and a second portion associated with the second current occupancy map indicating whether the portion is occupied or unoccupied.

7. 1. A method comprising: receiving first sensor data from a first sensor; receiving second sensor data from a second sensor separate from the first sensor, the second sensor being the same sensor as the first sensor; determining a first occupancy map based at least in part on the first sensor data, the first occupancy map indicating whether a portion of an environment surrounding an autonomous vehicle will be occupied or unoccupied at a future time; determining a second occupancy map based at least in part on the second sensor data, the second occupancy map indicating whether the portion is occupied or unoccupied at a future time; combining the first occupancy map and the second occupancy map into a data structure based at least in part on the first occupancy map and the second occupancy map by applying an aggregation function to softmax values ​​associated with the portions, the data structure indicating whether the portions of the environment are occupied or unoccupied at the future time; controlling an autonomous vehicle based at least in part on the data structure; and A method for providing

8. determining a first position or a first velocity associated with at least a closest object based at least in part on the data structure; receiving a trajectory; Furthermore, controlling the autonomous vehicle based at least in part on at least one of the first position or the first velocity and at least one of a second position or a second velocity associated with the autonomous vehicle; controlling the autonomous vehicle to execute the trajectory; or controlling the autonomous vehicle to execute a temporary trajectory; The method of claim 7 , further comprising determining:

9. 10. The method of claim 8, wherein controlling the autonomous vehicle to execute the temporary trajectory is based at least in part on one or more of: determining that the trajectory is within a threshold distance of at least a portion of the data structure that is indicated as occupied; or determining a sum of probabilities associated with the data structure that is based at least in part on the trajectory.

10. determining the first occupancy map comprises providing the first sensor data as an input to a first machine learning (ML) model and receiving the first occupancy map as an output from the first ML model; 10. The method of claim 7, wherein determining the second occupancy map comprises providing the second sensor data as an input to a second machine learning (ML) model, and receiving the second occupancy map as an output from the second ML model.

11. a first current occupancy map comprising a first confidence score associated with the portion of the environment, the first confidence score indicating a first likelihood that the portion is occupied; a second current occupancy map comprising a second confidence score associated with the portion of the environment, the second confidence score indicating a second likelihood that the portion is occupied; 11. The method of claim 7, wherein aggregating the first current occupancy map and the second current occupancy map into the data structure comprises associating a first portion of the first current occupancy map as indicating that the portion is occupied based at least in part on determining that the confidence score meets or exceeds a threshold confidence score.

12. 12. The method of claim 11 , wherein aggregating the first current occupancy map and the second current occupancy map into the data structure further comprises voting to associate the second portion of the data structure as indicating that the portion is occupied based at least in part on at least one of the first portion and a second portion associated with the second current occupancy map indicating whether the portion is occupied or unoccupied, the first sensor, the second sensor, the first confidence score, or the second confidence score.

13. the first sensor data and the second sensor data comprise current sensor data and previous sensor data; 13. The method of claim 7, wherein the first occupancy map comprises at least a current occupancy map associated with a current time and a predicted occupancy map associated with a future time.

Citation Information

Patent Citations

  • Method for building a map of probability of one of absence and presence of obstacles for an autonomous robot

    EP2952993A1

  • Mobile robot system

    WO2012091814A2