Patent Description:
Embodiments of the present application relate generally to methods, systems and apparatus for safety systems in robotic vehicles.

Autonomous vehicles, such as the type configured to transport passengers in an urban environment, may encounter many situations in which an autonomous vehicle ought to alert persons, vehicles, and the like, of the presence of the vehicle in order to avert a potential collision or an approach of the vehicle within an unsafe distance of an external object, such as a pedestrian for example.

As one example, in a conventional vehicle piloted by a human being, a pedestrian who crosses the road in front of the vehicle may be jaywalking or may not be paying attention to the approach of the vehicle. In some scenarios, the driver of the vehicle may decide to use the vehicle's horn to alert the pedestrian. However, a horn will typically have an acoustic radiation pattern that is sub-optimal and may not be sufficient to warn the pedestrian that the horn being honked is intended for him/her. Instead, other pedestrians or other drivers in the vicinity of the vehicle may believe the horn is being honked at them. Moreover, a pattern of the sound waves emitted by the horn may make it difficult to localize the source of the horn. From the perspective of the pedestrian, the horn may be perceived as coming from another vehicle. Furthermore, the horn may cause the pedestrian to look in a direction other than the direction of the vehicle that generated the horn honk, thereby potentially distracting the pedestrian from the actual source of the horn.

Finally, autonomous vehicles may share the road with other vehicles and persons. However, autonomous vehicles may be difficult to audibly detect due to low levels of emitted noise from an electric and/or hybrid propulsion system (e.g., lack of combustion engine noise and/or lower levels of tire noise).

Therefore, in situations where the autonomous vehicle intends to issue an audible alert, a targeted and/or more socially acceptable sound source (e.g., less rude than a horn) may be desirable. Accordingly, there is a need for systems, apparatus and methods for implementing focused acoustic alerts from robotic vehicles. <CIT> discloses a vehicle including: a vehicle body; an electric motor; wheels that are provided between the vehicle body and a road surface and that are rotated by transmitted motive power, to thus drive the vehicle body; a power transmission section that transmits motive power generated by the electric motor to the wheels; a detection section that detects a driving speed of the vehicle body; a speaker unit that outputs a sound based on a supplied audio signal downwardly from an undersurface of the vehicle body so as to reflect on the road surface, thereby to output the reflected sound to surroundings of the vehicle body. <CIT> discloses, in an image corresponding to image data from a camera, a detection area on the image corresponding to a detection area on a real space, and detecting a pedestrian in the detection area on the basis of a longitudinal edge in the detection area on the image. <CIT> discloses an acoustic signal transmission apparatus comprising an acoustic signal storage unit in which data for generating a prescribed acoustic signal in advance is stored, and a phase adjusting unit that inverts or shifts a phase of the prescribed acoustic signal generated from the data stored in the acoustic signal storage unit to be transmitted from a speaker. <NPL>, discloses the synthesis of different warning sounds according to a fractional factorial design. <CIT> discloses a control unit that receives an input detecting signal of an input unit. The control unit sets output orientation of a sound. A storage unit stores sound source data. A sound source playing unit plays a sound source from the sound source data according to a play control signal of the control unit. A sound output unit outputs the sound source to the outside of the vehicle according to an output control signal of the control unit. <CIT> discloses a travelling vehicle configured to generate for an occupant of the vehicle an output such as a display or voice output based on the position of a pedestrian in proximity to the travelling vehicle. <CIT> discloses a pedestrian notification apparatus for a vehicle to notify a pedestrian in proximity of the vehicle that they have been detected by the apparatus. <CIT> teaches an anti-collision warning system that triggers warning signals to the driver of a vehicle when an object such as a pedestrian is determined to be at risk of a collision. <CIT> provides a solution to trigger an alarm when a person comes in close proximity of a vehicle. The solution relies upon sensors to determine the direction in which the alarm output should be emitted. <CIT> describes a vehicle approaching informing device which is operated in such a way that an approaching informing sound that is a high frequency sound is produced from a speaker of a sound producing device to an object to be informed that is present within an approaching informing region where a distance from a vehicle is short, for example, a walking person so as to inform the walking person of the approaching of the vehicle.

Various embodiments or examples ("examples") are disclosed in the following detailed description and the accompanying drawings:.

Although the above-described drawings depict various examples of the invention, the invention is not limited by the depicted examples. It is to be understood that, in the drawings, like reference numerals designate like structural elements. Also, it is understood that the drawings are not necessarily to scale.

An invention is defined in the claims. Various embodiments or examples may be implemented in numerous ways, including as a system, a process, a method, an apparatus, a user interface, software, firmware, logic, circuity, or a series of executable program instructions embodied in a non-transitory computer readable medium. Such as a non-transitory computer readable medium or a computer network where the program instructions are sent over optical, electronic, or wireless communication links and stored or otherwise fixed in a non-transitory computer readable medium. Examples of a non-transitory computer readable medium includes but is not limited to electronic memory, RAM, DRAM, SRAM, ROM, EEPROM, Flash memory, solid-state memory, hard disk drive, volatile and non-volatile memory, for example. One or more non-transitory computer readable media may be distributed over a number of devices.

A detailed description of one or more examples is provided below along with accompanying figures. The detailed description is provided in connection with such examples, but is not limited to any particular example. The scope is limited only by the claims. Numerous specific details are set forth in the following description in order to provide a thorough understanding. These details are provided for the purpose of example and the described techniques may be practiced according to the claims without some or all of these specific details. For clarity, technical material that is known in the technical fields related to the examples has not been described in detail to avoid unnecessarily obscuring the description.

<FIG> depicts one example <NUM> of a system to implement an acoustic beam steering array in an autonomous vehicle. In <FIG>, an autonomous vehicle <NUM> may include a planner system <NUM>, a sensor system <NUM>, a localizer system <NUM> and a perception system <NUM>. The planner system <NUM> may receive data from the localizer system <NUM> and the perception system <NUM>. Sensor system <NUM> may sense (e.g., <NUM>) an environment <NUM> external to the autonomous vehicle <NUM>. Sensor data from the sensor system <NUM> may be received by the localizer system <NUM> and the perception system <NUM>. Localizer system <NUM> may use the sensor data from sensor system <NUM> and may use other data (e.g., map data) to implement a localization process that determines a location of the autonomous vehicle in the environment <NUM>. Perception system <NUM> may use the sensor data from sensor system <NUM> to implement a perception process that determines where objects are positioned (e.g., a location and/or a coordinate of the object) in environment <NUM>. Object data from perception system <NUM> and location data (e.g., position and orientation (POSE) data) from localization system <NUM> may be received by planner system <NUM> to perform one or more functions, such as driving operations of the autonomous vehicle <NUM>. Driving operation may include but is not limited to calculating and controlling autonomous vehicle <NUM> trajectory, generating steering inputs to a steering system of the autonomous vehicle <NUM>, controlling a brake system of the autonomous vehicle <NUM>, controlling safety systems of the autonomous vehicle <NUM>, controlling a propulsion system of the autonomous vehicle <NUM>, and broadcasting acoustics alerts into the environment <NUM> external to the autonomous vehicle <NUM> using an acoustic beam steering array <NUM> that is positioned on the autonomous vehicle <NUM> (e.g., on an exterior of the vehicle <NUM>).

Objects positioned in the environment <NUM> may be detected by perception system <NUM> using sensor data generated by sensor system <NUM>. As one example, one or more sensors (e.g., a suite of different sensor types) in sensor system <NUM> may detect (using active and/or passive sensing) an object <NUM> positioned in environment <NUM>. Perception system <NUM> may process the sensor data to detect the object <NUM>, classify the object <NUM> (e.g., as a bicycle <NUM> and rider <NUM>), determine an object track associated with the object <NUM> (e.g., determine if the object <NUM> is a static object (not in motion) or a dynamic object (in motion), a location of object <NUM> in environment <NUM> (e.g., a location or a coordinate relative to a location of autonomous vehicle <NUM>), and may track the object <NUM> (e.g., track changes in location of object <NUM>). Although <FIG> depicts a single object <NUM>, environment <NUM> may include numerous other objects (not depicted) including but not limited to pedestrians, automobiles, roads, traffic lights, street signs, buildings, road markings, trees, fire hydrants, and other on-road and off-road infrastructure, for example.

In the example of <FIG>, object <NUM> is depicted as having a trajectory <NUM> (e.g., a changing location in the environment <NUM>) that may potentially conflict with a trajectory <NUM> (Tav) of the autonomous vehicle <NUM>. A conflicting trajectory between an object in the external environment <NUM> and the autonomous vehicle <NUM> may be, but need not always be, one that may result in a collision between the autonomous vehicle <NUM> and the object. A conflicting trajectory may include a trajectory of the object that may, if not altered, result in the autonomous vehicle <NUM> and the object coming into an unsafe proximity of each other (e.g., a distance of about two feet (<NUM>) or less). As another example, a conflicting trajectory may include a trajectory of the object that may, if not altered, result in the trajectories intersecting each other at location in the environment <NUM> that is in the path of travel of the autonomous vehicle <NUM>, the object or both.

Planner system <NUM> may receive POSE data from localizer system <NUM> and object data from perception system <NUM> and may process the received data (e.g., using on or more compute engines and/or algorithms) to calculate (e.g., at a trajectory calculator <NUM>) a trajectory of the autonomous vehicle <NUM> in environment <NUM>, predict (e.g., at an object motion predictor <NUM>) motion of the object <NUM> in environment <NUM>, calculate (e.g., at an object coordinate calculator <NUM>) a coordinate of the object <NUM> in environment <NUM> (e.g., based on data representing a location of the object in the environment), calculate (e.g., at a threshold location estimator <NUM>) a threshold location in the environment to trigger an acoustic alert, compare (e.g., at a location comparator <NUM>) a location of the object <NUM> within the threshold location and trigger the acoustic alert when the location of the object <NUM> and the threshold location match (e.g., are coincident with each other), and select (e.g., using an audio signal selector <NUM>) an audio signal (e.g., accessed from audio signal data <NUM>) for the acoustic alert. Planner system <NUM> may use data representing the location of the object in the environment, the data representing the coordinate of the object in the environment, or both.

Object motion predictor <NUM> may be configured to implement motion prediction based on one or more datum included in the object data. For example, object motion predictor <NUM> may process data representing object classification to determine data representing an object type (e.g., a skateboard rider, an ambulance, a truck, a wheelchair, etc.), and may process data representing a location of the object in the environment <NUM> to predict data representing a predicted motion of the object. As one example, a runner who is jogging down a bike line on a street may be predicted to be more likely (e.g., > <NUM>%) to alter its trajectory from the bike lane and into the street, leading to a potential trajectory conflict with the autonomous vehicle <NUM>. As another example, a runner who is jogging down a sidewalk parallel to a street may be predicted to be less likely (e.g., < <NUM>%) to alter its trajectory from the sidewalk and into the street; therefore, having a reduce potential for a conflicting trajectory with autonomous vehicle <NUM>.

Object coordinate calculator <NUM> may be configured to process data representing a location of the object in the environment to calculate a coordinate of the object. The coordinate calculated may be based on two or more Cartesian coordinates (e.g., X and Y), polar coordinates, or an angle, for example. The coordinate calculated by the object coordinate calculator <NUM> may be relative to a location of the autonomous vehicle <NUM> and/or a reference location on the autonomous vehicle <NUM>, such as a reference point on the acoustic beam steering array <NUM>.

Autonomous vehicle trajectory calculator <NUM> may be configured to receive data representing a location of the autonomous vehicle in the environment <NUM>, such as the aforementioned position and orientation data (POSE data). Threshold location estimator <NUM> may receive the data representing the location of the autonomous vehicle <NUM> and the data representing the predicted motion of the object to estimate data representing a threshold location in the environment to trigger an acoustic alert using the acoustic beam steering array <NUM>.

Location comparator <NUM> may receive the data representing the threshold location and the data representing the location of the object to determine when the data representing the threshold location and the data representing the location of the object match (e.g., are coincident with each other) and may generate data representing a trigger signal when the two locations match.

Audio signal selector <NUM> may select data representing an audio signal to be used to generate the acoustic alert using array <NUM>. In some examples, one or more audio signals may be selected by the audio signal selector <NUM>. For example, audio signal selector <NUM> may select several audio signals, with each audio signal selected being representative of a different threat level. The threat level may be based on a distance of the object from the autonomous vehicle <NUM>. The closer the object is to the autonomous vehicle <NUM>, the greater the likelihood that a collision may occur, and the greater the threat level that may be audibly conveyed by the selected audio signal. Threshold location estimator <NUM> may estimate more than one threshold location in environment <NUM> and audio signal selector <NUM> may select data representing the audio signal that is different for each threshold location. For example, if three threshold locations are estimated, audio signal selector <NUM> may select three different audio signals for each of the three threshold locations. Each audio signal may be configured to convey a different threat level as described above.

Planner system <NUM> may output the data representing the audio signal, the data representing the trigger signal and the data representing the location (or coordinate) of the object (e.g., object <NUM>) to the acoustic beam steering array <NUM>. Acoustic beam steering array <NUM> may be configured to emit a beam of steered acoustic energy <NUM> indicative of the data representing the audio signal (e.g., the acoustic energy reproduces the sound encoded in the audio signal). The beam of steered acoustic energy <NUM> may have a direction of propagation <NUM> determined by the data representing the coordinate of the object <NUM>, or by the data representing the location of the object. The data representing the coordinate of the object <NUM> may be an angle, a polar coordinate, a Cartesian coordinate, or other coordinate system, for example.

1n <FIG>, the data representing the coordinate of the object <NUM> is depicted as being an angle β (Beta). The angle β may be computed relative to the trajectory <NUM> of the autonomous vehicle <NUM> and may be referenced to a reference location on the autonomous vehicle <NUM> (e.g., a point on the array <NUM>). Location comparator <NUM> may compare the data representing the location of object <NUM> with a threshold location <NUM> as determined by threshold location estimator <NUM>. Traveling along trajectory <NUM>, object <NUM> may cross or otherwise have its location (e.g., XO, YO) coincident with threshold location <NUM> (e.g., XT, YT). When the locations match (e.g. XO = XT and/or YO YT), location comparator <NUM> may generate the data representing the trigger signal. Data other than the data representing the trigger signal may be generated when the locations are determined to be coincident with each other (e.g., the locations match).

Upon receiving the data representing the audio signal, the data representing the trigger signal and the data representing the location (or coordinate) of the object (e.g., object <NUM>) the array <NUM> may emit the beam of steered acoustic energy <NUM> at the object <NUM> along the direction of propagation <NUM>. There may be more than one threshold location <NUM> as denoted by <NUM>, and as the location of the object <NUM> changes (e.g., as trajectory <NUM> brings object <NUM> closer in proximity to the location of autonomous vehicle <NUM>), planner system <NUM> may continue to receive updated object data from perception system <NUM> and POSE data from localization system <NUM>, and may use the updated data to generate additional acoustic alerts (e.g., using different audio signal data) from array <NUM> as the location of object <NUM> crosses additional threshold locations. For example, if the acoustic alert emitted by array <NUM> at threshold location <NUM> fails to cause a change in behavior of object <NUM> (e.g., cause a trajectory change to a trajectory that does not conflict with the trajectory of the vehicle <NUM>), then at the next threshold location, the data representing the audio signal may be selected to convey a more urgent warning due to a closer proximity of the object to vehicle <NUM> and/or it's trajectory <NUM>. Subsequently, acoustic alerts may be emitted from array <NUM> to convey even higher levels of urgency. Acoustic alerts that are not acted upon (e.g., are ignored or not understood by object <NUM>) may result in the planner system <NUM> taking action to avoid a collision and/or a close pass between the vehicle <NUM> and object <NUM>. Planner system <NUM> may generate data representing drive commands (e.g., to steering, braking, signaling and propulsion systems of vehicle <NUM>) that are configured to cause the vehicle <NUM> to alter its trajectory, location or both to avoid a collision with the object.

<FIG> depicts one example of a flow diagram <NUM> for implementing acoustic beam steering in an autonomous vehicle (e.g., autonomous vehicle <NUM> using acoustic beam steering array <NUM>). In flow <NUM>, one or more systems of the autonomous vehicle may implement one or more stages of flow <NUM>. At a stage <NUM>, a trajectory of an autonomous vehicle in an environment external to the autonomous vehicle may be calculated. The trajectory that is calculated may be data representing a trajectory of the autonomous vehicle (e.g., POSE data) in the environment. At a stage <NUM>, a coordinate of an object positioned in the environment external to the autonomous vehicle may be calculated. The coordinate that is calculated may be data representing a coordinate, such as a Cartesian coordinate, a polar coordinate, or an angle, for example. In some examples, the stage <NUM> may calculate data representing a location of the object in the environment. At a stage <NUM>, motion of the object in the environment external to the autonomous vehicle may be predicted. A predicted motion of the object in the environment may be determined using data representing an object type for the object and data representing a location of the object in the environment. At a stage <NUM>, one or more threshold locations in the environment at which to trigger an acoustic alert (e.g., by the acoustic beam steering array <NUM> in <FIG>) may be estimated. At a stage <NUM>, an audio signal (e.g., a digital audio file and/or a microphone signal) may be selected for the one or more threshold locations. The audio signal selected may be different for each threshold location. At a stage <NUM>, the acoustic alert may be triggered (e.g., by generating data representing a trigger signal) at an acoustic beam steering array (e.g., array <NUM> in <FIG>) when a coordinate of the object coincides with a threshold location. At a stage <NUM>, a beam of steered acoustic energy may be generated by (e.g., emitted by speakers of the array <NUM>) the acoustic beam steering array (e.g., beam <NUM> from array <NUM> in <FIG>) into the environment in a direction of propagation determined by the coordinate of the object (e.g., determined by data representing the coordinate or location of the object).

In flow <NUM> of <FIG>, data representing a location of the object and/or data representing a coordinate of the object in the environment external to the autonomous vehicle may be calculated by a planner system and/or a perception system (e.g., planner system <NUM> and/or perception system <NUM> in <FIG>).

<FIG> depicts another example of a flow diagram <NUM> for implementing acoustic beam steering in an autonomous vehicle. At a stage <NUM>, data representing a trajectory of the autonomous vehicle <NUM> in the environment may be calculated based on data representing a location of the autonomous vehicle <NUM> (e.g., POSE data). At a stage <NUM>, data representing a location (e.g., a coordinate) of an object disposed in the environment may be determined (e.g., based on object track data derived from the sensor data). Data representing an object type may be associated with the data representing the location of the object. At a stage <NUM>, data representing an object trajectory in the environment may be predicted based on the data representing the object type and the data representing the location of the object in the environment. At a stage <NUM>, data representing a threshold location in the environment associated with an acoustic alert (e.g., from array <NUM>) may be estimated based on the data representing the object trajectory and the data representing the trajectory of the autonomous vehicle. At a stage <NUM>, data representing an audio signal associated with the acoustic alert may be selected. At a stage <NUM>, the location of the object being coincident with the threshold location may be detected. As one example, the object trajectory crossing the threshold location may be one indication of coincidence. At a stage <NUM>, an acoustic beam steering array (e.g., array <NUM>) may be caused (e.g., triggered, activated, or commanded) to emit a beam of steered acoustic energy (e.g., beam <NUM>) in a direction of propagation (e.g., direction of propagation <NUM>) determined by the location of the object (e.g., a coordinate of the object in the environment).

Stages of flow <NUM>, flow <NUM>, or both, may be implemented for one or more acoustic beam steering arrays <NUM>. One or more stages of flow <NUM>, flow <NUM>, or both, may be repeated. For example, object trajectory, object location (e.g., object coordinates), threshold location, vehicle trajectory, vehicle location, audio signal selection, coincidence detection, and other stages may be repeated to update and/or process data as necessary (e.g., due to motion of the autonomous vehicle, the object, or both).

<FIG> depicts another example <NUM> of a system for implementing an acoustic beam steering array in an autonomous vehicle. In <FIG>, sensor system <NUM> includes sensors <NUM> being configured to generate sensor data <NUM> and <NUM> (e.g., data representing a sensor signal) indicative of the environment <NUM> external to the autonomous vehicle (e.g., vehicle <NUM> of <FIG>). Localizer system <NUM> may receive sensor data <NUM> and <NUM>, and perception system <NUM> may receive sensor data <NUM> and <NUM>. Sensor data <NUM> and <NUM> received by localizer system <NUM> need not be identical to the sensor data <NUM> and <NUM> received by the perception system <NUM>. Planner system <NUM> may receive vehicle location data (e.g., POSE data) from the localizer system <NUM> and may receive object data (e.g., object classification, object track, and object location) from the perception system <NUM>.

Planner system <NUM> may determine which detected objects (e.g., from a field of many potential objects in environment <NUM>) to target for acoustic alerts and may generate data and control signals <NUM> (e.g., trigger signal, audio signal and object location) that are received by acoustic beam steering array <NUM> to generate the beam <NUM> of steered acoustic energy into the environment <NUM>. Planner system <NUM> may control other systems of the autonomous vehicle including but not limited to steering, braking, propulsion, signaling (e.g., brake lights, turn signals, head lamps, etc.), and safety. Those other systems may be activated as necessary by the planner system <NUM> to mitigate any potential collision with or close pass by the object being targeted for the acoustic alert. In some examples, data representing the object location may be received at the acoustic beam steering array <NUM> from the perception system <NUM> as denoted by arrow <NUM> for object location. Perception system <NUM> may track the location of the object using data included in the sensor data <NUM> and output the data representing the object coordinates <NUM> (e.g., an angle, a polar coordinate, Cartesian coordinates, etc.). In other examples, the perception system <NUM> may output the data representing the object coordinates to planner system <NUM> (e.g., in the object data <NUM>), to the array <NUM> (e.g., in the object location <NUM>) or both.

<FIG> depicts yet another example <NUM> of a system for implementing an acoustic beam steering array in an autonomous vehicle. In example <NUM>, sensors <NUM> in sensor system <NUM> may include but are not limited to one or more of: Light Detection and Ranging sensors <NUM> (LIDAR); image capture sensors <NUM> (e.g., Cameras); Radio Detection And Ranging sensors <NUM> (RADAR); sound capture sensors <NUM> (e.g., Microphones); and Global Positioning System sensors (GPS) and/or Inertial Measurement Unit sensors (IMU) <NUM>, for example. Localizer system <NUM> and perception system <NUM> may receive sensor data <NUM> and <NUM>, respectively, from one or more of the sensors <NUM>. For example, perception system <NUM> may receive sensor data <NUM> relevant to determine information associated with objects in environment <NUM>, such as sensor data from LIDAR <NUM>, Cameras <NUM>, RADAR <NUM>, and Microphones <NUM>; whereas, localizer system <NUM> may receive sensor data <NUM> associated with the location of the autonomous vehicle in environment <NUM>, such as from GPS/IMU <NUM>.

For example, localizer system <NUM> may receive and/or access data from sources other than sensor data <NUM>, such as odometry data <NUM> from motion sensors to estimate change in position of the autonomous vehicle <NUM> over time, wheel encoders <NUM> to calculate motion, distance and other metrics of the autonomous vehicle <NUM> based on wheel rotations (e.g., by a propulsion system), map data <NUM> from data representing map tiles, Route Network Definition File (RNDF) and/or others, and data representing an autonomous vehicle (AV) model <NUM> that may be used to calculate vehicle location data based on models of vehicle dynamics (e.g., from simulations, captured data, etc.) of the autonomous vehicle <NUM>. Localizer system <NUM> may use one or more of the data resources depicted to generate data representing POSE data <NUM>.

As another example, perception system <NUM> may parse or otherwise analyze, process, or manipulate sensor data <NUM> to implement object detection <NUM>, object track <NUM> (e.g., determining which detected objects are static (no motion) and which are dynamic (in motion)), object classification <NUM> (e.g., cars, motorcycle, bike, pedestrian, skate boarder, mailbox, buildings, street lights, etc.), and traffic light/sign detection <NUM> (e.g., stop lights, stop signs, rail road crossings, lane markers, cross-walks, etc.).

As yet another example, planner system <NUM> may receive the POSE data <NUM> and the object data <NUM> and may parse or otherwise analyze, process, or manipulate data (<NUM>, <NUM>) to implement trajectory calculation <NUM>, threshold location estimation <NUM>, motion prediction <NUM>, location comparison <NUM>, object coordinate determination <NUM> and audio signal selection <NUM>. Planner system <NUM> may communicate trajectory and control data <NUM> to a controller(s) <NUM>. The controller(s) <NUM> may convert the trajectory and control data <NUM> to vehicle control and data <NUM>. Vehicle control and data <NUM> may be communicated to a vehicle controller(s) <NUM>. Vehicle controller(s) <NUM> may process the vehicle control and data <NUM> to generate array system data <NUM> and drive system data <NUM>. Array system data <NUM> may include object location data <NUM> (e.g., a coordinate of the object in the environment <NUM>), audio signal data <NUM>, trigger signal data <NUM> and optionally, modulation signal data <NUM> that are received by the acoustic beam steering array <NUM>. Although a single acoustic beam steering array <NUM> is depicted in <FIG>, the autonomous vehicle may include additional acoustic beam steering arrays as denoted by <NUM>. Drive system data <NUM> may be communicated to a drive system <NUM>. Drive system <NUM> may communicate the drive system data <NUM> to braking <NUM>, steering <NUM> and propulsion <NUM> systems, respectively, of the autonomous vehicle <NUM>. For example, drive system data <NUM> may include steering angle data for steering system <NUM> (e.g., a steering angle for a wheel), braking data for brake system <NUM> (e.g., brake force to be applied to a brake), and propulsion data (e.g., a voltage, current or power to be applied to a motor) for propulsion system <NUM>. A dashed line <NUM> may represent a demarcation between a vehicle trajectory processing layer and a vehicle physical execution layer where data processed in the vehicle trajectory processing layer is implemented by the drive system and the array system, for example.

Acoustic beam steering array <NUM> may include a processor <NUM> (e.g., a microprocessor, a digital signal processor (DSP) that may be configured to receive the data (<NUM>, <NUM>, <NUM>, <NUM>) and processes the data to generate, using the array <NUM>, the beam <NUM> of steered acoustic energy (e.g., at angle <NUM> relative to trajectory TAV) into the environment <NUM> (e.g., in response to receiving the data representing the trigger signal <NUM>). Acoustic beam steering array <NUM> may include several speakers S, with each speaker S in the array <NUM> being coupled with an output of amplifier A. Each amplifier A may include a gain input and a signal input. Processor <NUM> may calculate data representing a gain G for the gain input of each amplifier A and may calculate data representing a signal delay D for the signal input of each amplifier A. Processor <NUM> may access and/or or receive data representing information on speakers S (e.g., from an internal and/or external data source) and the information may include but is not limited to array width, speaker S spacing in the array, a wave front distance between adjacent speakers S in the array, number of speakers S in the array, speaker characteristics (e.g., frequency response, output level per watt of power, etc.}, just to name a few.

<FIG> depicts one example of a flow diagram <NUM> for implementing a perception system. In <FIG>, for purposes of explanation, sensor data <NUM> received at perception system <NUM> is depicted visually as sensor data 434a - 434c (e.g., LIDAR data). At a stage <NUM> a determination may be made as to whether or not the sensor data <NUM> includes data representing a detected object. If a NO branch is taken, then flow <NUM> may return to the stage <NUM> to continue analysis of sensor data <NUM> for object detection. If a YES branch is taken, then flow <NUM> may continue to a stage <NUM> where a determination may be made as to whether or not the data representing the detected object includes data representing a traffic sign or light. If a YES branch is taken, then flow <NUM> may transition to a stage <NUM> where the data representing the detected object may be analyzed to classify the type of light/sign object detected, such as a traffic light (e.g., red, yellow, and green) or a stop sign, for example. Analysis at the stage <NUM> may include accessing a traffic object data store <NUM> where stored examples of data representing traffic classifications may be compared with the data representing the detected object to generate data representing a traffic classification <NUM>. The stage <NUM> may then transition to another stage, such as a stage <NUM>.

If a NO branch is taken, then flow <NUM> may transition to a stage <NUM> where the data representing the detected object may be analyzed to determine other object types to be classified. If a YES branch is taken from the stage <NUM>, then flow <NUM> may transition to a stage <NUM> where the data representing the detected object may be analyzed to classify an object type for the detected object. An object data store <NUM> may be accessed to compare stored examples of data representing object classifications with the data representing the detected object to generate data representing an object classification <NUM>. The stage <NUM> may then transition to another stage, such as a stage <NUM>. If a NO branch is taken from the stage <NUM>, then stage <NUM> may transition to another stage, such as back to the stage <NUM>.

At the stage <NUM>, object data classified at the stages <NUM> and/or <NUM> may be analyzed to determine if the sensor data <NUM> indicates motion associated with the data representing the detected object. If motion is not indicated, then a NO branch may be taken to a stage <NUM> where data representing an object track for the detected object may be set to static (S). At a stage <NUM>, data representing a location of the object (e.g., the static object) may be tracked. For example, a stationary object detected at time t0 may move at a later time t1 and become a dynamic object. Moreover, the data representing the location of the object may be included in data received by the planner system <NUM>. The planner system <NUM> may use the data representing the location of the object to determine a coordinate of the object (e.g., a coordinate relative to autonomous vehicle <NUM> and/or array <NUM>).

On the other hand, if motion is indicated in the detected object, a YES branch may be taken from the stage <NUM> to a stage <NUM> where data representing an object track for the detected object may be set to dynamic (D). At a stage <NUM>, data representing a location of the object (e.g., the dynamic object) may be tracked. The planner system <NUM> may analyze the data representing the object track and/or the data representing the location of the object to determine if a detected object (static or dynamic) may potentially have a conflicting location with respect to the autonomous vehicle and/or come into too close a proximity of the autonomous vehicle, such that the acoustic alert may be used to alter a behavior of the object and/or the person controlling the object.

At a stage <NUM>, one or more of the data representing the object classification, the data representing the object track, and the data representing the location of the object may be included with the object data <NUM> (e.g., the object data received by the planner system). As one example, sensor data 434a may include data representing an object (e.g., a person riding a skateboard). Stage <NUM> may detect the object in the sensor data 434a. At the stage <NUM>, it may be determined that the detected object is not a traffic sign/light. The stage <NUM> may determine that the detected object is of another object class and may analyze, at the stage <NUM>, using data accessed from object data store <NUM>, the data representing the object to determine the classification matches a person riding a skateboard and output the data representing the object classification <NUM>. At the stage <NUM> a determination may be made that the detected object is in motion and at the stage <NUM> the object track may be set to dynamic (D) and the location of the object may be tracked at the stage <NUM> (e.g., by continuing to analyze the sensor data 434a for the detected object). At the stage <NUM>, the object data associated with sensor data <NUM> may include the classification (e.g., a person riding a skateboard), the object track (e.g., the object is in motion), and the location of the object (e.g., the skateboarder's location) in the environment external to the autonomous vehicle, for example.

Similarly, for sensor data 434b, flow <NUM> may determine that the object classification is a pedestrian, the pedestrian is in motion (e.g., is walking) and has a dynamic object track, and may track the location of the object (e.g., the pedestrian) in the environment external to the autonomous vehicle}, for example. Finally, for sensor data 434c, flow <NUM> may determine that the object classification is a fire hydrant, the fire hydrant is not moving and has a static object track, and may track the location of the fire hydrant. Note, that in some examples, the object data <NUM> associated with sensor data 434a, 434b, and 434c may be further processed by the planner system based on factors including but not limited to object track, object classification and location of the object. For example, in the case of the skateboarder and the pedestrian, the object data <NUM> may be used for one or more of trajectory calculation, threshold location estimation, motion prediction, location comparison, and object coordinates, in the event the planner system decides to implement an acoustic alert for the skateboarder and/or the pedestrian. However, the planner system may decide to ignore the object data for the fire hydrant due its static object track because the fire hydrant is not likely to be in motion (e.g., the fire hydrant is stationary) that will conflict with the autonomous vehicle and/or because the fire hydrant is non-animate (e.g., can't respond to or be aware of an acoustic alert), for example.

<FIG> depicts one example <NUM> of object prioritization by a planner system in an autonomous vehicle. Example <NUM> depicts a visualization (e.g., based on LIDAR data or other sensor data) of an environment <NUM> external to the autonomous vehicle <NUM> as sensed by a sensor system of the autonomous vehicle <NUM> (e.g., sensor system <NUM>, <NUM> of <FIG> and <FIG>). Object data from a perception system of the autonomous vehicle <NUM> has detected several objects in environment <NUM> including but not limited to an automobile 581d, a bicycle rider 583d, a walking pedestrian 585d, and two parked automobiles <NUM> and <NUM>. In this example, the perception system may have assigned dynamic object tracks to objects 581d, 583d and 585d, thus the label "d" is associated with the reference numerals for those objects. The perception system has also assigned static object tracks to objects <NUM> and <NUM>, thus the label "s" is associated with the reference numerals for those objects. The localizer system may determine the local pose data <NUM> (e.g., position and orientation estimation data) for the location of the autonomous vehicle <NUM> in environment <NUM>. Furthermore, autonomous vehicle <NUM> may have a trajectory Tav as indicated by the arrow. The two parked automobiles <NUM> and <NUM> are static and have no indicated trajectory. Bicycle rider 583d has a trajectory Tb that is in a direction approximately opposite that of the trajectory Tav, and automobile 581d has a trajectory Tav that is approximately parallel to and in the same direction as the trajectory Tav. Pedestrian 585d has a trajectory Tp that is predicted (e.g., by the planner system) to intersect the trajectory Tav of the vehicle <NUM>.

The planner system may place a lower priority on processing data related to static objects <NUM> and <NUM> and dynamic object 583d because the static objects <NUM> and <NUM> are positioned out of the way of trajectory Tav (e.g., objects <NUM> and <NUM> are parked) and dynamic object 583d is moving in a direction away from the autonomous vehicle <NUM>; thereby, reducing or eliminating a possibility that trajectory Tb may conflict with trajectory Tav. Motion and/or position of the pedestrian 585d in environment <NUM> or other objects in the environment <NUM> may be tracked or otherwise determined using metrics other than trajectory, including but not limited to object location, predicted object motion, object coordinates, predictive rate of motion relative to the location of the object, and a predicted next location of the object, for example. Motion and/or location of the pedestrian 585d in environment <NUM> or other objects in the environment <NUM> may be determined, at least in part, based on probabilities. The probabilities may be based on data representing object classification, object track, object location, and object type, for example.

However, the planner system may place a higher priority on tracking the location of pedestrian 585d due to its potentially conflicting trajectory Tp, and may place a slightly lower priority on tracking the location of automobile 581d because its trajectory Tav is not presently conflicting with trajectory Tav, but it may conflict at a later time (e.g., due to a lane change or other vehicle maneuver). Therefore, based on example <NUM>, pedestrian object 585d is the most likely candidate for an acoustic alert because its trajectory (e.g., based on its location and/or predicted motion) may result in a potential collision (e.g., at estimated location <NUM>) with the autonomous vehicle <NUM> or result in an unsafe distance between the pedestrian object 585d and the autonomous vehicle <NUM>.

<FIG> depicts a top plan view of one example <NUM> of acoustic beam steering from an acoustic beam steering array in an autonomous vehicle. In <FIG>, the example <NUM> of <FIG> is further illustrated in top plan view where trajectory Tav and Tp are estimated to cross (e.g., based on location data for the vehicle <NUM> and location data for the pedestrian object 585d) at an estimated location denoted as <NUM>. Pedestrian object 585d is depicted in <FIG> as an example of a candidate most likely to receive an acoustic alert based on its predicted motion. The autonomous vehicle <NUM> is depicted as including four acoustic beam steering arrays <NUM> positioned at four different sides of the vehicle <NUM> (e.g., on four different portions of a roof). Autonomous vehicle <NUM> may be configured to travel bidirectionally as denoted by arrow <NUM>, that is, autonomous vehicle <NUM> may not have a front (e.g., a hood) or a back (e.g., a trunk) as in a conventional automobile. Accordingly, more than one acoustic beam steering array <NUM> may be positioned on vehicle <NUM> to provide acoustic alert coverage in more than one direction of travel of the vehicle <NUM> and/or to provide acoustic alert coverage for objects that approach the vehicle <NUM> from its sides <NUM>.

The planner system may estimate one or more threshold locations in the environment <NUM>, denoted as <NUM>, <NUM> and <NUM>, at which to communicate an acoustic alert when the location of the object (e.g., pedestrian object 585d) coincides with the threshold locations as denoted by points <NUM>, <NUM> and <NUM> along trajectory Tp. Although three threshold locations are depicted, there may be more or fewer than depicted. As a first example, as the trajectory Tp crosses the first threshold location <NUM> at a point denoted as <NUM>, planner system may determine the location of the pedestrian object 585d at the point <NUM> (e.g., having coordinates X1, Y1) and the location of the autonomous vehicle <NUM> (e.g., from POSE data) to calculate a coordinate (e.g., an angle) for the direction of propagation <NUM> of the beam of steered acoustic energy <NUM>. For example, the coordinate may be based on a predetermined reference point 100r on the vehicle <NUM> and/or on another predetermined reference point 102r on the acoustic array 102a. As one example, if the predetermined reference point 102r has coordinates (Xa, Ya), a processor, circuity, an algorithm or some combination of the foregoing may calculate the coordinate for the beam <NUM>, such as an angle θ1 (e.g., based on trigonometric analysis) relative to vehicle trajectory Tav. As the autonomous vehicle <NUM> continues to travel <NUM> along trajectory Tav, from location L1 to location L2, the relative location between the pedestrian object 585d and the autonomous vehicle <NUM> may change, such that at the location L2, coordinates (X2, Y2) at point <NUM> of the second threshold location <NUM> may result in a new coordinate <NUM> for the direction of propagation <NUM>. Similarly, continued travel <NUM> along trajectory Tav, from location L2 to location L3, may change the relative location between the pedestrian object 585d and the autonomous vehicle <NUM>, such that at the location L3, coordinates (X3, Y3) at point <NUM> of the third threshold location <NUM> may result in a new coordinate <NUM> for the direction of propagation <NUM>.

As the distance between the autonomous vehicle <NUM> pedestrian object 585d decreases, the data representing the audio signal selected for the steered beam <NUM> may be different to convey an increasing sense of urgency (e.g., an escalating threat level) to the pedestrian object 585d to change or halt its trajectory Tp, or otherwise modify his/her behavior to avoid a potential collision or close pass with the vehicle <NUM>. As one example, the data representing the audio signal selected for threshold location <NUM>, when the vehicle <NUM> may be at a relatively safe distance from the pedestrian object 585p, may be a whimsical audio signal a1 configured to gain the attention of the pedestrian object 585p in a non-threatening manner. As a second example, the data representing the audio signal selected for threshold location <NUM>, when the vehicle <NUM> may be at a cautious distance from the pedestrian object 585p, may be a more aggressive audio signal a2 configured to gain the attention of the pedestrian object 585p in a more urgent manner. As a third example, the data representing the audio signal selected for threshold location <NUM>, when the vehicle <NUM> may be at a potentially un-safe distance from the pedestrian object 585p, may be a very aggressive audio signal a3 configured to gain the attention of the pedestrian object 585p in an extremely urgent manner. Estimation of positions of the threshold locations in the environment <NUM> may be determined by the planner system to provide adequate time (e.g., approximately <NUM> seconds or more), based on a velocity of the autonomous vehicle, before the vehicle <NUM> arrives at a predicted impact point with the pedestrian object 585p (e.g., a point <NUM> in environment <NUM> where trajectories Tav and Tp are estimated to intersect each other).

In <FIG>, trajectory Tp of the pedestrian object 585p need not be a straight line as depicted and the trajectory (e.g., the actual trajectory) may be an arcuate trajectory as depicted in example <NUM> or may be a non-linear trajectory as depicted in example <NUM>. The planner system <NUM> may process object data from the perception system <NUM> and POSE data from the localizer system <NUM> to calculate the threshold location. The location, shape (e.g., linear, arcuate, non- linear), orientation (e.g., with respect to the autonomous vehicle and/or object) and other characteristics of the threshold location may be application dependent and is not limited to the examples depicted herein. For example, in <FIG>, threshold locations may be aligned approximately perpendicular to the trajectory Tp of pedestrian object 585d; however, other configurations may be calculated and implemented by the planner system <NUM>. As another example, threshold locations may be aligned at a non-perpendicular orientation (or other orientation) to the trajectory Tav of the autonomous vehicle <NUM> or to a trajectory of the object. Furthermore, the trajectory of the object may be analyzed by the planner system to determine the configuration of the threshold location(s).

<FIG> depicts one example of a flow diagram <NUM> for implementing a planner system. In <FIG>, planner system <NUM> may be in communication with a perception system <NUM> from which it receives object data <NUM>, and a localizer system <NUM> from which it receives POSE data <NUM>. Object data <NUM> may include data associated with one or more detected objects. For example, object data <NUM> may include data associated with a large number of detected objects that are disposed in the environment external to the autonomous vehicle <NUM>. However, some detected objects need not be tracked or may be assigned a lower priority based on the type of object. For example, fire hydrant object 434c in <FIG> may be a static object (e.g., fixed to the ground) and may not require processing for an acoustic alert; whereas, skateboarder object 434a may require processing for an acoustic alert due to it being a dynamic object and other factors, such as predicted human behavior of skateboard riders, a location of the skateboarder object 434a that may indicate the location and/or change in location may conflict with a trajectory of the autonomous vehicle <NUM>, for example.

Object data <NUM> may include data for one or more detected objects. In <FIG>, an example of three detected objects is denoted as 734a - 734c. There may be object data <NUM> for more or fewer detected objects as denoted by <NUM>. The object data for each detected object may include but is not limited to data representing: object location <NUM>; object classification <NUM>; and object track <NUM>. Planner system <NUM> may be configured to implement object type determination <NUM>. Object type determination <NUM> may be configured to receive the data representing object classification <NUM>, the data representing the object track <NUM> and to access an object types data store <NUM>. The object type determination <NUM> may be configured to compare the data representing the object classification <NUM> and the data representing the object track <NUM> with data representing object types (e.g., accessed from data store <NUM>) to determine data representing an object type <NUM>. Examples of data representing an object type <NUM> include but are not limited to a static grounded object type (e.g., the fire hydrant 434c of <FIG>) and a dynamic pedestrian object (e.g., pedestrian object 585d of <FIG>).

Object dynamics determination <NUM> may be configured to receive the data representing the object type <NUM> and the data representing the object location <NUM>. Object dynamics determination <NUM> may be further configured to access an object dynamics data store <NUM> and to compare data representing object dynamics with the data representing the object type <NUM> and the data representing the object location <NUM> to determine data representing a predicted object motion <NUM>.

Object trajectory predictor <NUM> may be configured to receive the data representing the predicted object motion <NUM>, the data representing the location of the autonomous vehicle <NUM> (e.g., from POSE data <NUM>), the data representing the object location <NUM> and the data representing the object track <NUM>. The object trajectory predictor <NUM> may be configured to process the received data to generate data representing a predicted object trajectory <NUM> in the environment. In some examples, object trajectory predictor <NUM> may be configured to process the received data to generate data representing a predicted location of the object <NUM> in the environment.

Threshold location estimator <NUM> may be configured to receive the data representing the location of the autonomous vehicle <NUM> (e.g., from POSE data <NUM>) and the data representing the predicted object trajectory <NUM> and generate data representing one or more threshold locations <NUM> in the environment at which acoustic alerts may be triggered. In some examples, the threshold location estimator <NUM> may be configured to receive the data representing the location of the autonomous vehicle <NUM> and the data representing the predicted location of the object <NUM> and generate the data representing the one or more threshold locations <NUM>.

<FIG> depicts one example <NUM> of a block diagram of systems in an autonomous vehicle having an acoustic beam steering array. In <FIG>, the autonomous vehicle <NUM> may include a suite of sensors <NUM> positioned at one or more locations on the autonomous vehicle <NUM>. Each suite <NUM> may have sensors including but not limited to LIDAR <NUM> (e.g., color LIDAR, three- dimensional LIDAR, three-dimensional color LIDAR, two-dimensional LIDAR, etc.), an image capture device <NUM> (e.g., a digital camera), RADAR <NUM>, a microphone <NUM> (e.g., to capture ambient sound), a microphone <NUM> (e.g., to capture sound from drive system components such as propulsion systems and/or braking systems), and a loudspeaker <NUM> (e.g., to greet/communicate with passengers of the AV <NUM>). Loudspeaker <NUM> is not one of the speakers S in array <NUM>. Each suite of sensors <NUM> may include more than one of the same types of sensor, such as two image capture devices <NUM>, or microphone <NUM> positioned proximate each wheel <NUM>, for example. Microphone <NUM> may be configured to capture real-time audio signals indicative of drive operations of the autonomous vehicle <NUM>. Microphone <NUM> may be configured to capture real- time audio signals indicative of ambient sounds in the environment external to the autonomous vehicle <NUM>. Autonomous vehicle <NUM> may include sensors for generating data representing a location of the autonomous vehicle <NUM>, and those sensors may include but are not limited to a global positioning system (GPS) 839a, and an inertial measurement unit (IMU) 839b. Autonomous vehicle <NUM> may include one or more sensors ENV <NUM> for sensing environmental conditions in the environment external to the autonomous vehicle <NUM>, such as air temperature, air pressure, humidity, barometric pressure, etc. Data generated by sensor(s) ENV <NUM> may be used to calculate the speed of sound in processing of data used by array(s) <NUM>, such as wave front propagation times, for example.

A communications network <NUM> may route signals and/or data to/from sensors and other components and/or systems of the autonomous vehicle <NUM>, such as one or more processors <NUM> and one or more routers <NUM>, for example. Routers <NUM> may route signals and/or data from: sensors in sensors suites <NUM>; one or more acoustic beam steering arrays <NUM>; between other routers <NUM>; between processors <NUM>; drive operation systems such as propulsion (e.g., electric motors <NUM>), steering, braking, safety systems, etc.; and a communications system <NUM> (e.g., for wireless communication with external systems and/or external resources).

In <FIG>, one or more microphones <NUM> may be configured to capture ambient sound in the environment <NUM> external to the autonomous vehicle <NUM>. Signals and/or data from microphones <NUM> may be used to adjust gain values for one or more speakers (not shown) positioned in one or more of the acoustic beam steering arrays <NUM>. As one example, loud ambient noise, such as noise emanating from a construction site may mask or otherwise impair audibility of the beam of steered acoustic energy <NUM> being emitted by an array <NUM>. Accordingly, the gain may be increased or decreased base on ambient sound (e.g., in dB or other metric such as frequency content). The signals and/or data generated by microphones <NUM> may be converted from one signal format to another signal format, such as from analog-to-digital (e.g., using an ADC or a DSP) or from digital-to-analog (e.g., using a DAC or a DSP), for example.

Microphones <NUM> may be positioned in proximity of drive system components, such as electric motors <NUM>, wheels <NUM>, or brakes (not shown) to capture sound generated by those systems, such as rotational noise <NUM>, regenerative braking noise, tire noise, and electric motor noise, for example. Signals and/or data generated by microphones <NUM> may be used as the data representing the audio signal, for example. The signals and/or data generated by microphones <NUM> may be converted from one signal format to another signal format, such as from analog-to-digital (e.g., using an ADC or a DSP) or from digital-to-analog (e.g., using a DAC or a DSP), for example. In other examples, signals and/or data generated by microphones <NUM> may be used to modulate the data representing the audio signal (e.g., using a DSP).

One or more processors <NUM> may be used to implement one or more of the planner system, the localizer system, the perception system, the drive system, a safety system and the acoustic beam steering array, for example. One or more processors <NUM> may be configured to execute algorithms embodied in a non-transitory computer readable medium, to implement one or more of the planner system, the localizer system, the perception system, the drive system, a safety system and the acoustic beam steering array, for example. The one or more processors <NUM> may include but are not limited to circuitry, logic, field programmable gate array (FPGA), application specific integrated circuits (ASIC), programmable logic, a digital signal processor (DSP), a graphics processing unit (GPU), a microprocessor, a microcontroller, a big fat computer (BFC) or others, or clusters thereof.

In <FIG>, multiple acoustic beam steering arrays <NUM> may be positioned at multiple locations on the autonomous vehicle <NUM> to generate one or more acoustic alerts at one or more objects positioned at one or more locations in the environment <NUM>. The acoustic beam steering arrays <NUM> need not be identical in configuration or dimensions. For example, the acoustic beam steering arrays <NUM> denoted as C and D may be longer in length and may include more speakers than acoustic beam steering arrays <NUM> denoted as A and B. As one example, the sides of the autonomous vehicle <NUM> where arrays C and D are located may be longer than the sides were arrays C and D are located; thereby, allowing for a longer length dimension for the array <NUM>. The longer length dimension may allow for a larger number of speakers in the array <NUM>. An enclosure or other structure being configured to house the acoustic beam steering arrays <NUM> may be mounted on an exterior of the autonomous vehicle <NUM>.

<FIG> depicts a top view of one example <NUM> of an acoustic beam steering array positioning on an autonomous vehicle. In <FIG>, sensor suites <NUM> may be positioned at corner portions of the autonomous vehicle <NUM> (e.g., positioned at a pillar section) and enclosures for acoustic beam steering arrays <NUM> may be positioned on an upper surface 100u (e.g., on a roof) of the autonomous vehicle <NUM> and may be positioned to direct their respective beams <NUM> outward into the environment towards a location of an object targeted to receive an acoustic alert. Acoustic beam steering arrays <NUM> may be configured to provide coverage of steered acoustic energy at one or more objects disposed in the environment external to the autonomous vehicle <NUM> and the coverage may be in an arc of about <NUM> degrees around the autonomous vehicle <NUM>, for example. As was described above in <FIG>, the acoustic beam steering arrays <NUM> need not be the same size or have the same number of speakers. In <FIG>, acoustic beam steering arrays <NUM> denoted as C and D have different dimensions than acoustic beam steering arrays <NUM> denoted as A and B. Sensor suites <NUM> may be positioned to provide sensor coverage of the environment external to the autonomous vehicle <NUM> for one array <NUM> or multiple arrays <NUM>. In the case of multiple arrays <NUM>, the sensor suites may provide overlapping regions of sensor coverage. A perception system of the autonomous vehicle <NUM> may receive sensor data from more than one sensor or suite of sensors to provide data for the planning system to implement triggering of one or more of the arrays <NUM> to generate an acoustic alert. The autonomous vehicle <NUM> may not have a front or a rear and therefore may be configured for driving operations in at least two different directions as denoted by arrow <NUM>. Accordingly, the arrays <NUM> may not have a front or rear designation and depending on which direction the autonomous vehicle <NUM> is driving in, array <NUM> (A) may be the array facing the direction of travel or array <NUM> (B) may be the array facing the direction of travel.

<FIG> depicts top plan views of two examples of sensor system coverage in an autonomous vehicle, and <FIG> depicts top plan views of another two examples of sensor system coverage in an autonomous vehicle. In example <NUM> of <FIG>, one of the four sensor suites <NUM> (denoted in underline) may provide sensor coverage <NUM>, using one or more of its respective sensors, of the environment <NUM> in a coverage region that may be configured to provide sensor data for acoustic beam steering arrays <NUM> (B and D). In example, <NUM>, sensor coverage <NUM> for acoustic beam steering arrays <NUM> (B and D) may be partial coverage as denoted by B' and D', because there may be blind spots not covered by the single sensor suite <NUM>.

In example <NUM> of <FIG>, a second of the four sensor suites <NUM> may provide sensor coverage <NUM> that overlaps with sensor coverage <NUM>, such that array D has full coverage and arrays A and B may have partial coverage as denoted by A' and B'. In example <NUM> of FIG. <NUM>, a third of the four sensor suites <NUM> may provide sensor coverage <NUM> that overlaps with sensor coverage <NUM> and <NUM>, such that arrays A and D have full coverage and arrays C and <NUM> may have partial coverage as denoted by <NUM>' and C'. Finally, in example <NUM> of FIG. <NUM>, a fourth of the four sensor suites <NUM> (e.g., all four sensor suites are on-line) may provide sensor coverage <NUM> that overlaps with sensor coverage <NUM>, <NUM> and <NUM>, such that arrays A, B, C and D have full coverage. The overlapping sensor fields of coverage may allow for redundancy if one or more sensor suites <NUM> and/or one or more of their respective sensors (e.g., LIDAR, Camera, RADAR, etc.) are damaged, malfunction, or are otherwise rendered inoperative. In <FIG>, dashed lines <NUM> and <NUM> demarcate four quadrants <NUM> - <NUM>, and the sensor suites <NUM> may be symmetrical such that the sensors in the sensor suite <NUM> in quadrant <NUM> may be replicated in the sensor suites <NUM> in quadrants <NUM>, <NUM> and <NUM>, for example. Safety systems disposed in a quadrant (e.g., exterior systems, interior systems and drive systems) may also be replicated in other quadrants. For example, safety systems associated with quadrant <NUM> may be replicated in in quadrants <NUM>, <NUM> and <NUM>. Sensor suites <NUM> in one or more of the quadrants may provide for overlapping sensor coverage as described above in examples <NUM>, <NUM>, <NUM> and <NUM> above.

One or more sensors in sensor suite <NUM> may be arranged in a corner cluster (e.g., to provide overlapping sensor coverage with other sensor suites <NUM>) and one or more sensors in sensor suite <NUM> may be disposed at different vertical heights on the vehicle <NUM>, such as one LIDAR sensor positioned vertically above another LIDAR sensor. In some examples, a sensor may include a combination of sensor types, such as a LIDAR including one or more cameras (e.g., each camera covering <NUM> degrees each for a total of <NUM> degrees of sensor coverage), and another LIDAR without cameras. Sensors in sensor suite <NUM> may include but are not limited to one or more of LIDAR sensors, image capture sensors (e.g., cameras}, stereo cameras, long range stereo cameras, RADAR (e.g., a RADAR positioned at each end of the vehicle <NUM>), and sound navigation and ranging (SONAR) sensors (e.g., for detecting small object low to the ground, to aid in parking the vehicle <NUM>), for example. One or more sensors in sensor suite <NUM> may communicate with one or more processors of the autonomous vehicle <NUM>. For example, sensor output signals and/or data from sensors in sensor suite <NUM> may be electrically communicated to multiple processing units to provide redundancy in signal/data processing. For example, each sensor in sensor suite <NUM> may have its output routed to two processors to provide for double redundancy, to three processors to provide for triple redundancy, or four processors to provide for quadruple redundancy. As one example, gigabit Ethernet may be used to communicate signals/data from one or more LIDAR sensors to multiple processors. As another example, high speed gigabit multimedia serial link (GMSL) may be used to communicate signals/data from one or more image capture sensors (e.g., camera, stereo camera) to multiple processors.

<FIG> depicts a top plan view of one example <NUM> of an acoustic beam steering array of an autonomous vehicle steering acoustic energy at an approaching vehicle. In <FIG>, autonomous vehicle <NUM> may have a trajectory Tav along a roadway between lane markers denoted by dashed lines <NUM>. A detected object in the environment external to the autonomous vehicle <NUM> has been classified as an automotive object type <NUM> having a trajectory Tc that is estimated to conflict with trajectory Tav of the autonomous vehicle <NUM>. Planner system may generate three threshold locations t-<NUM>, t-<NUM>, and t-<NUM> having arcuate profiles <NUM>, <NUM> and <NUM>, respectively. The three threshold locations t-<NUM>, t- <NUM>, and t-<NUM> may be representative of different threat levels ranked from a low threat level at t-<NUM> (e.g., a relatively safe distance away from vehicle <NUM>), a middle threat level at t-<NUM> (e.g., a distance that is cautiously close to the vehicle <NUM>) and a high threat level at t-<NUM> (e.g., a distance that is dangerously close to vehicle <NUM>), for example. The audio signal for an acoustic alert to be generated at each of the three threshold locations t-<NUM>, t-<NUM>, and t-<NUM> may be selected to audibly convey increasing levels of threat as the trajectory Tc of the object <NUM> brings the object <NUM> closer to the location of the autonomous vehicle <NUM> (e.g., a potential collision with autonomous vehicle <NUM>).

When automotive object type <NUM> crosses or otherwise has its location coincident with threshold location t-<NUM>, the planner system may generate a trigger signal to activate the acoustic array <NUM> positioned approximately in the direction of automotive object type <NUM> to generate an acoustic alert using an audio signal 104a along a direction of propagation 106a based on a location (e.g., a coordinate) of the automotive object type <NUM>. For example, the location may be represented by a coordinate, an angle βa, measured between the trajectory Tav and the direction of propagation 106a. As the automotive object type <NUM> continues on trajectory Tc and crosses threshold location t-<NUM>, another acoustic alert may be triggered by the planner system, using coordinate βb, audio signal 104b and direction of propagation 106b. Further travel along trajectory Tc by automotive object type <NUM> that crosses threshold location t-<NUM> may trigger yet another acoustic alert by planner system using coordinate βc, audio signal 104c and direction of propagation 106c.

For each of the acoustic alerts triggered by the planner system, the location of the automotive object type <NUM> may change (e.g., relative to the location of the vehicle <NUM>) and the planner system may receive updated object data (e.g., object tracking data from the perception system) to calculate (e.g., in real-time) changes in location of the automotive object type <NUM> (e.g., to calculate coordinates for βa, βb and βc). The audio file selected by planner system for each threshold location t-<NUM>, t-<NUM> and t-<NUM> may be different and may be configured to include audible information intended to convey ever-increasing degrees of urgency at each of the threshold locations t-<NUM> to t-<NUM> and t-<NUM> to t-<NUM>, for example. The audio signal(s) selected by the planner system may be configured, based on the object type data for <NUM>, to acoustically penetrate structures (<NUM>, <NUM>) of the automobile, such as auto glass, car doors, etc., in order to garner the attention of a driver of the automobile. As one example, the selected audio signal may be configured to generate frequencies in a range from about <NUM> to about <NUM> to acoustically penetrate structures (<NUM>, <NUM>) on the automobile <NUM>.

Acoustic beam steering array <NUM> may include several speakers and their associated amplifiers and driving electronics (e.g., a processer, a DSP, etc.). For purposes of explanation, each amplifier/speaker pair will be denoted as a channel, such that array <NUM> will include n- channels denoted as C1 for channel one all the way to Cn for the nth channel. In an enlarged view of the acoustic beam steering array <NUM>, each speaker S may be spaced apart from an adjacent speaker by a distance d. Distance d (e.g., a spacing between adjacent speakers (S) may be the same for all speakers S in the array <NUM>, such that all of the speakers S are spaced apart from one another by the distance d. In some examples, distance d may vary among the speakers S in the array <NUM> (e.g., distance d need not be identical between adjacent speakers in array <NUM>). Distance d may be measured from a reference point on each speaker S, such as a center point of each speaker S.

A width W of the array <NUM> may be measured as a distance between the first speaker in the array <NUM> (e.g., channel C1) to the last speaker in the array <NUM> (e.g., channel Cn) and the width W may be measured from the center of the speaker in C1 to the center of the speaker in Cn, for example. A length of an enclosure that houses the speakers S may be determined in part by the width W between the first and last speakers in the array <NUM>. In the direction of propagation <NUM> of the acoustic waves <NUM> generated by array <NUM>, wave- fronts launched by adjacent speakers S in the array may be delayed in time, based on a time delay, by a wave-front propagation time td. The wave-front front propagation time td may be calculated as a distance between adjacent wave-fronts r multiplied by the speed of sound c (e.g., td = r * c). In examples where the distance d between speakers S is the same for all speakers S in the array <NUM>, the delay D calculated for each speaker S may be an increasing integer multiple of td. Therefore, for channel C1:(td1 = (r * c) * <NUM>), for channel C2: (td2 = (r * c) * <NUM>), and for channel Cn: (tdn = (r * c) * n), for example. In some examples, the speed of sound c may be calculated using data from a sensor (e.g., environmental sensor <NUM> of <FIG>) to more accurately determine a value for the speed of sound c based on environmental conditions, such as altitude, air pressure, air temperature, humidity, and barometric pressure, for example.

<FIG> depicts one example of a flow diagram <NUM> for implementing acoustic beam steering in an acoustic beam steering array. In <FIG>, planner system <NUM> may communicate signals and/or data to an acoustic beam steering array <NUM> configured to receive the signals and/or data and generate the steered beam of acoustic energy <NUM>. At a stage <NUM> a trigger signal detector may receive data representing the trigger signal <NUM> and generate output data indicating the data representing the trigger signal <NUM> has been received. At a stage <NUM>, a determination may be made as to whether the output data indicates the data representing the trigger signal <NUM> (trigger signal hereinafter) has been received. If the output data is not indicative of the trigger signal being received, then a NO branch may be taken and flow <NUM> may return to the stage <NUM> to await arrival of the trigger signal. If the output data indicates the trigger signal has been received, then a YES branch may be taken and one or more audio signals <NUM> selected by the planner system <NUM> may be received by the array <NUM>. Planner system <NUM> may select the data representing the audio signal from one or more resources including but not limited to an audio signal data store <NUM> (e.g., one or more digital audio files), an external resource <NUM> (e.g., the Cloud, the Internet, a data repository, etc.), a microphone <NUM> being configured to capture ambient sound (see <FIG>), and a microphone <NUM> being configured to capture sound generated by driving operations (see <FIG>).

At a stage <NUM> a determination may be made as to whether or not to apply band pass filtering to the data representing the audio signal <NUM>. If a YES branch is taken, then at a stage <NUM> one or more bandpass filters may be applied to the data representing the audio signal <NUM> (e.g., in the analog domain using circuitry and/or in the digital domain using a DSP algorithm. The stage <NUM> may access data representing bandpass filters <NUM>. The data representing bandpass filters <NUM> may include but is not limited to data representing a high pass band filter <NUM> and data representing a low pass band filter <NUM>. Other types of bandpass filters may be included in <NUM> as denoted by <NUM>. If a NO branch is taken from the stage <NUM>, then flow <NUM> may continue at a stage <NUM> were a beam steering algorithm may receive the data representing the location of the object <NUM> (e.g., an angle, at least two Cartesian coordinates, a polar coordinate, etc.).

At a stage <NUM>, speaker channel compensation may be applied to each speaker channel in the array. Speaker channel compensation at the stage <NUM> may include calculating the gain G for each speaker channel and calculating the delay D for each speaker channel. Speaker channel compensation at the stage <NUM> may include accessing speaker data <NUM> for information related to each speaker S in the array, array width W, distance d between adjacent speakers in the array, stored data representing the distance r between adjacent speakers S in the direction of propagation, number of speakers S in the array, a size of the speakers S, and other speaker related information, for example.

At a stage <NUM>, compensated speaker signals may be applied to an amplifier A associated with each speaker S in each channel of the array. At the stage <NUM>, the signal gain G for each channel and the signal delay D for each channel may be applied to the gain inputs and signal inputs of each amplifier in each channel of the array, such that the amplifier A1 for the first channel C1 receives its respective compensated gain G and delay D signals, and so forth all the way to amplifier An for the nth channel Cn. With the amplifier in each channel driving its respective speaker, such that A1 drives S1 and An drives Sn. The speakers S1 - Sn emit a beam of n monaural channels of steered acoustic energy <NUM> into the environment external to the autonomous vehicle <NUM>.

<FIG> depicts another example of a flow diagram <NUM> for implementing acoustic beam steering in an acoustic beam steering array. At a stage <NUM>, data representing speaker data may be accessed from a data store <NUM>. One or more stages of flow <NUM> may use data included in data store <NUM>. Examples of data representing speaker data includes but is not limited to the number of speakers in an array <NUM> (e.g., n in <FIG>), the spacing between adjacent speakers in the array <NUM> (e.g., d in <FIG>), a width of the array <NUM> (e.g., W in <FIG>), speaker radiating area (e.g., an area of a speaker driver surface from which sound is generated), type of speaker (e.g., piezoelectric speaker, piezo ceramic speaker, etc.), speaker power handling capability (e.g., in watts), speaker drive type (e.g., voltage driven, current driven), for example. As one example, the speaker type may be piezoelectric, with a speaker drive type of voltage driven, the number of speakers may be <NUM> (e.g., n = <NUM>), the spacing between adjacent speaker may be <NUM> (e.g., d = <NUM>), the width of the array <NUM> may be <NUM> (e.g., W = <NUM>), and a speaker radiating area of <NUM><NUM>. As another example, the speaker type may be piezo ceramic, with a speaker drive type of voltage driven, the number of speakers may be <NUM> (e.g., n = <NUM>), the spacing between adjacent speaker may be <NUM> (e.g., d = <NUM>), the width of the array <NUM> may be <NUM> (e.g., W = <NUM>), and a speaker radiating area of <NUM><NUM>.

At a stage <NUM>, the data representing the location of the object <NUM> (e.g., an angle) and the data representing the speaker data <NUM> (e.g., spacing d) may be used to determine a distance r between adjacent speakers in the array <NUM>, projected in a direction of propagation of the beam (e.g., see d, r, S, <NUM> and <NUM> in <FIG>). At the stage <NUM>, the data representing the location of the object <NUM> may be used to determine the direction of propagation of the beam <NUM> (e.g., angle β relative to trajectory Tav in <FIG>).

At a stage <NUM>, a relative delay td between adjacent speakers in the array <NUM> may be calculated (e.g., speed of sound * r). The relative delay td may represent a time delay to apply the data representing the audio signal to a signal input of an amplifier coupled with the speaker, such that from the first speaker (e.g., C1 in <FIG>) to the last speaker (e.g., Cn in <FIG>) in the array <NUM>, the calculated value of the relative delay may incrementally increase for each speaker. For example, the relative delay for channel C2 is greater than the relative delay for channel C1, and so on.

At a stage <NUM> a determination may be made as to whether or not the spacing between adjacent speakers (e.g., d in <FIG>) is equal, based on speaker data <NUM>, for example. If the distance d is not equal, then a NO branch may be taken to a stage <NUM>. At the stage <NUM>, the audio signal (e.g., the data representing the audio signal <NUM>) sent to each speaker (e.g., via its respective amplifier) may be delayed as a function its distance d (e.g., td = f(d)). The stage <NUM> may then transition to a stage <NUM>.

If the distance d is equal, then a YES branch may be taken to a stage <NUM>. At the stage <NUM>, the audio signal (e.g., the data representing the audio signal <NUM>) sent to each speaker (e.g., via its respective amplifier) may be delayed by an increasing integer multiple of the relative delay td (e.g., as calculated at the stage <NUM>). The stage <NUM> may then transition to the stage <NUM>.

At the stage <NUM>, a determination may be made as to whether or not to apply array shading to the data representing the signal gain (e.g., G) for one or more channels in the array <NUM>. If a NO branch is taken, then flow <NUM> may transition to a stage <NUM>. If a YES branch is taken, then flow <NUM> may transition to a stage <NUM>. At the stage <NUM>, a signal gain G for selected speakers positioned at an edge portion of the array <NUM> may be decreased (e.g., relative to gains G for speakers positioned in a middle portion of the array <NUM>), for example. As one example, data representing a first gain for a first portion of speakers positioned in a first portion (e.g., at a first edge of the array) of the acoustic beam steering array <NUM> may be calculated, data representing a second gain for a second portion of speakers positioned in a second portion (e.g., at a second edge of the array) of the acoustic beam steering array <NUM> may be calculated, and data representing a third gain for a third portion of speakers positioned in a third portion (e.g., at in a middle portion of the array) of the acoustic beam steering array <NUM> may be calculated. A magnitude of signal gain for the data representing the third gain may be greater than magnitudes of signal gain for the data representing the first gain and the data representing the second gain (e.g., third gain > first gain and third gain > second gain). The magnitudes of signal gain for the data representing the first gain and the data representing the second gain may be identical or may be different. In some examples, array shading may be implemented to reduce side lobes in the beam <NUM> of steered acoustic energy. Reducing side lobes may be effective in reducing or eliminating the audio signal from being audibly perceived by persons other than the intended object the beam <NUM> is being steered at (e.g., via the coordinate of the object). The stage <NUM> may then transition to the stage <NUM>.

At the stage <NUM>, gains G and delays D specific to each channel in the array <NUM> may be applied to the signal and gain inputs of the amplifiers in each channel. For example, in channel. C1, the data representing the gain G that was calculated for channel C1, may be applied to a gain input of the amplifier in channel C1 (e.g., as a voltage). The data representing the audio signal may be applied to the signal input of the amplifier in channel C1 with a time delay D (e.g., a time delay in milliseconds) determined by the data representing the signal delay that was calculated for channel C1.

<FIG> depicts one example of a flow diagram <NUM> for implementing adaptive acoustic beam steering in an acoustic beam steering array of an autonomous vehicle. Adaptive beam steering may be calculated using an equation depicted in example <NUM> of <FIG>, where a gain R may be determined as a function of an angle ϕ of the beam to be steered at the object (e.g., the object coordinates expressed as an angle. Therefore, R may represent gain as a function of various values of the angle ϕ.

In example <NUM>, variable k represents a wave number which may be expressed as k = <NUM> * (π/ λ), where variable λ is the wavelength of the sound wave (e.g., the wavelength of beam <NUM>). Variable ϕ is the angle to steer the beam <NUM> at (e.g., the data representing the coordinates of the object). Variable x represents a position of a speaker in the array <NUM>, such that for an array of <NUM> speakers, x may have a value ranging from x = <NUM> for the first speaker in the array <NUM> to x = <NUM> for the last speaker in the array <NUM>. Variable A represents a complex amplitude for the speaker at position x in the array <NUM>. Variable d represents a distance (e.g., distance d in <FIG>) between adjacent speakers in array <NUM>. Variable L represents a width of the beam <NUM>.

In flow <NUM>, at a stage <NUM>, data representing the location of the object <NUM> (e.g., a coordinate angle ϕ) and data representing a width of the beam (e.g., variable L) may be received and may be used to calculate gain R as a function of the sine of the angle ϕ (e.g., R(sin ϕ)) according to the equation of example <NUM>. The stage <NUM> may output data representing the gain <NUM> (e.g., a value for R (sin ϕ).

At a stage <NUM>, an inverse transform of R (sin ϕ) may be calculated to determine the complex amplitude A for each speaker position x in array <NUM> (e.g., A(x)). As one example, an inverse Fourier transform may be used to implement the inverse transform of R (sin ϕ). The stage <NUM> may output data representing the complex amplitude <NUM> (e.g., A(x)) for each speaker position x in array <NUM>. For example, if there are <NUM> speakers in array <NUM>, then stage <NUM> may compute and output values for each of the <NUM> speaker positions.

At a stage <NUM>, the data representing the complex amplitude <NUM> and the data representing the audio signal <NUM> may be received and the complex gain G at each speaker position x may be applied to the gain input of the amplifier for the speaker at position x (e.g., at the channel for position x in the array <NUM>), and the delay D at each speaker position x may be applied to the audio signal and the delayed audio signal may be applied to the signal input of the amplifier for the speaker at position x. The stage <NUM> may output <NUM> data representing n channels of signal gains G and n channels of signal delays D.

<FIG> depicts one example of a block diagram <NUM> of an acoustic beam steering array. In <FIG>, a processor <NUM> may receive data including but not limited to data representing: location of the object <NUM> (e.g., coordinates); audio signals <NUM>; microphone signals <NUM>; environmental signals <NUM> (e.g., from sensor ENV <NUM> in <FIG>); and trigger signals <NUM>. In some examples, processor <NUM> may be electrically coupled with an acoustic beam steering array <NUM>, such that each acoustic beam steering array <NUM> is electrically coupled with its own dedicated processor <NUM>. In other examples, processor <NUM> may be electrically coupled with multiple acoustic beam steering arrays <NUM>.

Processor may implement functions to operate one or more acoustic beam steering arrays <NUM>, and the functions implemented may include but are not limited to: a delay (D) calculator <NUM>; a gain (G) calculator <NUM>; a beam steering algorithm <NUM> (e.g., flow <NUM> of <FIG>); an adaptive beam steering algorithm <NUM> (e.g., flow <NUM> of <FIG>); an environment compensator <NUM>; an audio signal modulator <NUM>; an ambient noise compensator <NUM>; and a signal converter <NUM>. Processor <NUM> may access data including but not limited to speaker (S) data <NUM> (e.g., spacing d, width W, number of speaker S, speaker compensation data for calculating gain G and delay D, etc.), and data storage <NUM> (e.g. for storing data, algorithms, etc.). Processor <NUM> may be implemented in algorithms, software, firmware, logic, circuitry or some combination of the foregoing.

Data and signals received by the processor <NUM> may be converted from one format to another format using signal converter <NUM>. For example, signal converter <NUM> may convert digital data to an analog signal using a digital-to-analog converter (DAC) and may convert an analog signal to digital data using an analog-to-digital converter (ADC). Processing of the data representing the audio signal(s) <NUM>, the data representing the microphone signal(s) <NUM>, and the data representing the environmental signal(s) <NUM> may be handled in the analog domain using the DAC, the digital domain using ADC, or both.

Environment compensator <NUM> may process the data representing the environmental signal(s) and output data representing compensated environment data, such as the speed of sound c (e.g., compensated for temperature, altitude, etc.) for use by the beam steering algorithms (<NUM>, <NUM>).

Ambient noise compensator <NUM> may receive data representing ambient noise (e.g., from microphone <NUM> in <FIG>) and process the data to output data representing gain compensation. The data representing the gain compensation may be indicative of ambient noise levels in the environment external to the autonomous vehicle <NUM>. High levels of ambient noise may require gain levels G applied to the amplifiers A in one or more channels to be increased to compensate for the high levels of ambient noise. The gain calculator <NUM> may receive the data representing gain compensation and may increase gain G or decrease gain G in one or more of the channels of an array <NUM>.

Audio signal modulation <NUM> may receive the data representing the audio signal and data representing a modulation signal (e.g., from microphone <NUM> in <FIG> or from another audio signal) and modulate the data representing the audio signal using the data representing the modulation signal. For example, the data representing the modulation signal may be based on regenerative braking noise generated by a drive system of the autonomous vehicle <NUM>. A signal from microphone <NUM> in <FIG> may be the signal source for the data representing the modulation signal, and an amplitude of the data representing the modulation signal may be used to modulate the data representing the audio signal (e.g., from a digital audio file). Audio signal modulation <NUM> may process the data representing the audio signal and data representing the modulation signal in the analog domain (e.g., using DAC in signal converter <NUM>) or the digital domain (e.g., using ADC in signal converter <NUM>).

Gain calculator <NUM> and delay calculator <NUM> may calculate channel gains G and channel delays D for one or more arrays <NUM> using algorithms specific to the type of beam steering algorithm being implemented for an array, such as for beam steering algorithm <NUM> or adaptive beam steering algorithm <NUM>, for example. Processor(s) <NUM> may receive data representing trigger signals <NUM> and generate n channels of gain G <NUM> and n channels of delay D <NUM> for each array <NUM> that is electrically coupled with the processor <NUM>. There may be a single array <NUM> or multiple arrays <NUM> electrically coupled with processor <NUM> as denoted by <NUM>. Gain calculator <NUM> may implement array shading (e.g., flow <NUM> of <FIG>) by adjusting the gain Ge applied to amplifiers A coupled to speakers S at edge portions of the array <NUM> to be less than a gain Gm applied to amplifiers A coupled to speakers S at middle portions of the array <NUM>. For example, after applying array shading, gain Gm is greater than gain Ge (e.g., see Gm, Ge in <FIG>). Speaker position x accessed from speaker data <NUM> may be used to determine which speaker positions x in array <NUM> have gain Ge applied to their amplifiers and which positions x in array <NUM> have gain Gm applied to their amplifiers. As another example, if array <NUM> has <NUM> speakers S such that there are <NUM> speaker positions x, then eight speakers at each edge portion may have gain Ge applied to their respective amplifiers A and <NUM> speakers at the middle portion may have gain Gm applied to their respective amplifiers A. Gain Gm may vary among the speakers S in the middle portion. Gain Ge may vary among the speakers S in the edge portions.

<FIG> depicts one example <NUM> of array shading in an acoustic beam steering array. In example <NUM> of <FIG>, the object in the environment the steered beam of acoustic energy is being directed at is a person <NUM>. A curve <NUM> of a sound pressure level (e.g., in dB) as a function of an angle θ for the beam <NUM> of steered acoustic energy is depicted as having its maximum sound pressure level in the direction of propagation <NUM>. Person <NUM> ought to be able to audibly perceive <NUM> the beam <NUM> (e.g., hear the audio information included in the audio signal) when person <NUM> is positioned where the sound pressure level has its maximum. To the left and right of the direction of propagation <NUM> the sound pressure level of the beam <NUM> diminishes to sound pressure levels that are less than the maximum, but may still be audibly perceptible (<NUM> and <NUM>) by persons <NUM> and <NUM> positioned in side lobe regions <NUM> and <NUM> of the beam <NUM>. The person <NUM> that the beam is intended to acoustically alert may be positioned at the coordinate of the object (e.g., at a position indicated by angle θ); however, due to a conical spreading of the beam <NUM>, persons <NUM> and <NUM> at angular positions within plus "+" or minus "-" the angle θ, may also perceive (<NUM> and <NUM>) the audio information in beam <NUM> and may react to it in an unpredictable manner. Accordingly, in some examples the side lobes in beam <NUM> may be reduced from <NUM> to <NUM> and <NUM> to <NUM> by applying shading (e.g., as depicted in dashed line curve <NUM>) to the gain G of speakers S in array <NUM>. In curve <NUM>, the application of shading may result in persons <NUM> and <NUM> not being able to audibly perceive (<NUM> and <NUM>) the audio information in beam <NUM>, or to perceive (<NUM> and <NUM>) the audio information in beam <NUM> at a lower sound pressure level.

In <FIG>, speakers at edge portions <NUM> and <NUM> of the array <NUM> (e.g., speakers positioned towards an end of the array <NUM>) may have their gain values set to Ge; whereas, speakers positioned in a middle portion <NUM> (e.g., speakers positioned towards a center of the <NUM>) of the array <NUM> may have their gain set to Gm, where gain Gm is greater than gain Ge (e.g., Gm > Ge). Creating a gain differential between the speakers in the edge portions <NUM> and <NUM> and the middle portion <NUM> may reduce the side lobes so that the sound pressure level perceived by persons <NUM> and <NUM> is reduced. In some examples, side lobe reduction may increase perceived sound pressure level at the position of the person <NUM> due to the increased gain Gm applied to the amplifiers of the speakers in middle portion <NUM> and/or reduced gain Ge applied to the amplifiers of the speakers in edge portions <NUM> and <NUM>. Speaker position data x may be used to determine which speakers S in the array <NUM> will have gains Ge applied to their amplifiers and which speakers will have gain Gm applied to their amplifiers. Gain Gm may very among the speakers in middle portion <NUM>. Gain Ge may vary among speakers in edge portion <NUM>, edge portion <NUM>, or both.

<FIG> depicts examples of speakers and speaker housings in an acoustic beam steering array. In example <NUM> each speaker S may include a frame <NUM> and a sound radiating structure <NUM> (e.g., a sound emitting surface of a piezoelectric or piezo ceramic transducer). In example <NUM> speakers S1, S2 - Sn are depicted having a square shape for frame <NUM> and sound radiating structure <NUM>; however, the actual shapes, sizes and configuration of the speakers is not limited to the example <NUM>. For example, the speakers and/or their sound radiating structures may have a circular shape, a rectangular shape, a non-linear shape, or an arcuate shape, etc..

An x-dimension X-dim and a y-dimension Y-dim of the sound radiating structure <NUM> may define the sound radiating surface area of the speaker. A spacing between adjacent speakers (e.g., between S1 and S3) may be d (as depicted in front and top plan views in example <NUM>) as measured from a center point "x" on the sound radiating structure <NUM>. Another reference point on the speakers may be selected and is not limited to center point "x" depicted in example <NUM>. A width W of the array <NUM> may be measured from the center point "x" of the first speaker S1 to the center point "x" of the last speaker Sn in the array <NUM>.

In example <NUM> the speakers may be mounted to a baffle, an enclosure or housing for the array <NUM> as denoted by structure <NUM>. The frame <NUM> of each speaker may be connected with the structure <NUM> using a fastener, glue, adhesive, welding or other coupling technique. For autonomous vehicles <NUM> having multiple arrays <NUM>, the size (e.g., width W) and number of speakers in each array may be the same or may vary among the multiple arrays <NUM>. For example, arrays <NUM> positioned on sides of the vehicle <NUM> (e.g., arrays C and D in <FIG>) may have longer widths W due to the sides of the vehicle <NUM> being longer; and therefore, arrays C and D may have more speakers within the width W, than arrays A and B, for example. A surface <NUM> of the array <NUM> may be coupled with a surface of the vehicle <NUM> (e.g., the roof or surface 100u) to mount the array <NUM> to the vehicle <NUM>. The structure <NUM> the speakers are mounted to need not be a planar surface and the configuration of the structure <NUM> is not limited to the examples in <FIG>. As one example, the structure may be a non-linear surface or an arcuate surface.

In example <NUM>, two or more arrays <NUM> may be stacked upon each other. The upper array 102U and the lower array <NUM> may have their respective beams <NUM> of steered acoustic energy steered at different objects in the environment and arrays 102U and <NUM> may be operated independently of each other. A center point of the stacked arrays 102U and <NUM> need not have orientations that are identical and may face in different directions. Upper array 102U may be coupled with lower array <NUM> using a fastener, glue, adhesive, welding or other coupling technique. A surface <NUM> of the lower array <NUM> may be coupled with a surface of the vehicle <NUM> (e.g., the roof or surface 100u) to mount the stacked arrays 102U and <NUM> to the vehicle <NUM>.

The x-dimension X-dim and a y-dimension Y-dim of the sound radiating structure <NUM> may be determined in part by a wavelength (e.g., a frequency of sound) the array <NUM> is designed for. As one example, the array <NUM> may be designed to emit sound in a frequency range from about <NUM> to about <NUM> or in a range from about <NUM> to about <NUM>. For frequencies below about <NUM>, bandpass filtering of the audio signal (e.g., using a low pass filter LPF) may be used to attenuate the frequencies below about <NUM>. Similarly, for frequencies above about <NUM>, bandpass filtering of the audio signal (e.g., using a high pass filter HPF) may be used to attenuate the frequencies above about <NUM>. The x-dimension X-dim and a y-dimension Y- dim may be in a range from about <NUM> to about <NUM> for speakers selected to emit sound at frequencies audible to humans, such as pedestrians and the like.

In other examples, the array <NUM> may include speakers designed to emit sound at ultrasonic frequencies that are above the range of human hearing. The x-dimension X-dim and a y-dimension Y-dim may be· in a range from about <NUM> to about <NUM> for speakers selected to emit sound at ultrasonic frequencies. An array <NUM> having ultrasonic transduces for its speakers may have <NUM> or more (e.g., n <NUM>) of the ultrasonic transduces in the array <NUM>, as opposed to approximately one-tenth the number of speakers for array <NUM> having transducers that emit sound at frequencies compatible with human hearing.

Sound <NUM> emitted at ultrasonic frequencies may distort in the atmosphere down to human audible frequencies (e.g., below about <NUM>) at the object the beam <NUM> is being steered at, so that at the location of the object, the sound waves are audibly perceived as an acoustic alert, even though the original beam source was at an ultrasonic frequency. A beam width at the location of the object may be narrower for beam <NUM> that is emitted at ultrasonic frequencies (e.g., from about <NUM> degrees to about <NUM> degrees). In contrast, beam <NUM> emitted at frequencies within the range of human hearing may have a beam width in a range from about <NUM> degrees to about <NUM> degrees.

Claim 1:
A system configured to implement an acoustic beam steering array in an autonomous vehicle (<NUM>) comprising:
a sensor system (<NUM>), configured to sense an environment external to the autonomous vehicle and to generate sensor data;
a planner system (<NUM>), configured to calculate an autonomous vehicle trajectory for the autonomous vehicle in the environment;
an acoustic beam steering array (<NUM>) coupled to the autonomous vehicle, the acoustic beam steering array comprising a plurality of speakers (S) configured to output directional audio; and
one or more processors (<NUM>) configured to perform operations, including:
determining, based on the sensor data generated by the sensor system, an object position and an object type of the object;
determining, based at least in part on the object type and the object position, a predicted motion of the object in the environment;
estimating, based at least in part on the predicted motion of the object and the autonomous vehicle trajectory calculated by the planner system, a threshold location in the environment;
determining, based on the determined object position, a direction to emit a beam of acoustic energy via the plurality of speakers of the acoustic beam steering array;
selecting an audio signal based at least in part on at least one of a distance of the object to the autonomous vehicle or a likelihood of a collision between the object and the autonomous vehicle, the likelihood of the collision being determined based on the predicted motion; and
causing, when the determined position of the object coincides with the estimated threshold location, the plurality of speakers to emit the audio signal as the beam of acoustic energy indicative of an alert in the determined direction;
wherein:
selecting the audio signal is also based on the determined object type.