Patent Description:
Autonomous vehicles rely on sensors, such as cameras, to operate safely. Performance of the sensors may be adversely affected when sensor surfaces are dirty. For example, when dust covers a lens of a camera, images obtained using the camera may be compromised.

<CIT> discloses an assembly including a sensor provided within a sensor cover, a wiper, and a vibrating motor configured to vibrate the wiper and/or the sensor cover. <CIT> discloses a camera device for a vehicle comprising a shell, a camera, a wiper member and a driving device. <CIT> discloses a system for clearing sensors comprising a sensor cover, a cover window on the sensor cover, and a sensor motor for rotating the sensor cover and cover window to clear the cover window of debris. <CIT> discloses an apparatus with a housing and sensors according to the preamble of claim <NUM>.

The invention is set out in the independent claims and preferable features of the invention are defined in the dependent claims.

In one embodiment, a sensor cleaning mechanism is provided. At least one sensor is configured to observe a condition associated with a vehicle. A housing is configured to be mounted on the vehicle. The housing includes a window surface configured to be disposed substantially within a field of view of the sensor. A fluid providing mechanism is configured to provide fluid to the window surface. An actuating mechanism is configured to rotate the housing about the at least one sensor at a first speed, thereby causing at least a portion of the fluid to be expelled from the window surface. The actuating mechanism also can be configured to change a speed of rotation of the housing to a second speed, which is greater than zero, in response to a determination that the window surface is substantially clear of the fluid.

The handling and delivery of goods and services using autonomous vehicles will improve society, e.g., by allowing people to engage in productive work while waiting for an autonomous vehicle to deliver goods rather than spending time procuring the goods. As the use of autonomous vehicles is growing, the ability to operate the autonomous vehicles efficiently and safely is becoming more important. Autonomous vehicles rely on sensors, such as cameras, to operate safely.

When performance of the sensors is compromised, safe operation of the autonomous vehicle also may be compromised. For example, performance of a sensor may be compromised if a surface of the sensor is obstructed. A sensor that includes a camera may be obstructed, e.g., if dirt, dust, debris, rain, or another item obstructs a lens of the camera. For example, the obstruction may cause measurements (e.g., images) made by the sensor to not accurately reflect an environment around the sensor.

According to the invention a sensor cleaning mechanism is provided for cleaning sensor surfaces. The sensor cleaning mechanism includes a fluid providing mechanism, which is configured to provide a fluid, such as water, a cleaning agent, or another liquid, to a window surface within a field of view of at least one sensor. For example, the fluid providing mechanism can provide the fluid in response to a determination (e.g., using the sensor(s)) that the window surface is in need of cleaning.

The sensor cleaning mechanism includes an actuating mechanism configured to rotate a housing including the window surface about the sensor(s). For example, the actuating mechanism can initiate a rotation of the housing or change a speed of rotation of the housing (e.g., by increasing or decreasing the speed of rotation) when the fluid is provided to the window surface, to substantially expel at least a portion of the fluid from the window surface. Forces, such as gravitational forces and centrifugal forces, may effectively push or otherwise force the fluid (and, potentially, dirt, dust, debris, or other material coupled to the fluid or otherwise disposed on the window surface) off of the window surface when the housing is rotated. This rotation may prevent the fluid from obstructing the field of view of the sensor(s), e.g., by not allowing the fluid to cling to the window surface. The actuating mechanism can initiate or change the speed of rotation of the housing upon (or soon before or after) providing the fluid, or after first slowing or maintaining a speed of the rotation (or non-rotation) of the housing for a period of time to allow the fluid to clean the window surface before it is expelled from the window surface. For example, the actuating mechanism may wait a predetermined period of time (or until the sensor(s) indicate that it is an appropriate time, or otherwise) to initiate, or change the speed of, the rotation.

According to the invention, the actuating mechanism can be further configured to change the speed of rotation of the housing (e.g., returning it to a speed at which it was rotating prior to, or during, provision of the fluid, or otherwise), in response to a determination that the window surface is substantially clear of the fluid. For example, the actuating mechanism can slow the speed of rotation to a speed that is at or above zero rotations per minute in response to a determination that the window surface is substantially clear of the fluid.

In another example embodiment, the actuating mechanism is further configured to initiate rotation of the housing or change a speed of rotation of the housing (e.g., by increasing or decreasing the speed of rotation), without providing fluid to the window surface, in response to detecting a substance, e.g., a liquid, such as rain, water droplets, etc., on the window surface For example, if rain, water, or another liquid is detected within a field of view of the sensor, the actuating mechanism can initiate, or increase a speed of, rotation of the housing to prevent the liquid from depositing on, and/or clinging to, the window surface. Thus, the window surface can be cleared of the obstruction with or without provision of a cleaning fluid or other liquid by the sensor cleaning mechanism.

In yet another example embodiment, the actuating mechanism may be configured to change a speed of rotation of the housing if the housing already is rotating in response to rain, water, or another liquid being within a field of view of the sensor when it is determined that the window surface needs cleaning (e.g., because dirt, debris, or another material are also detected within the field of view of the sensor). For example, the housing may be rotating at a relatively fast speed of rotation in response to the rain, water droplets, or other liquid, and the actuating mechanism can slow the speed of rotation upon (or soon before or after) provision of fluid by the fluid providing mechanism, to prevent the fluid from being expelled before it has had an opportunity to clean the window surface. After a predetermined period of time (or when the senso(s)) indicate that the fluid has had an opportunity to clean the window surface, or time otherwise has elapsed after provision of the fluid), the actuating mechanism may increase the speed of rotation to expel the cleaning fluid and any other fluid, dirt, dust, debris, etc. from the window surface. The actuating mechanism can be further configured to change the speed of rotation of the housing (e.g., increasing it to its original speed of rotation, decreasing it to the slower speed of rotation at which the fluid was provided, or otherwise) once the window surface is substantially clean/clear.

Example embodiments that may be used to implement the features and functionality of this disclosure will now be described with more particular reference to the accompanying figures. While like reference numerals represent like elements throughout the several figures for purposes of simplicity and clarity, repetition of reference numerals does not itself dictate a relationship between the various embodiments and/or configurations discussed. In addition, while reference may be made to the spatial relationships between various components and to the spatial orientation of various aspects of components as depicted in the attached drawings, as will be recognized by those skilled in the art after a complete reading of the present disclosure, the devices, components, members, apparatuses, etc. described herein may be positioned in any desired orientation. Thus, the use of terms such as "top," "bottom," "front," "back," "left," "right," "above," "under," "over," or other similar terms to describe a spatial relationship between various components or to describe the spatial orientation of aspects of such components, should be understood to describe a relative relationship between the components or a spatial orientation of aspects of such components, respectively, as the components described herein may be oriented in any desired direction.

When used to describe a range of dimensions and/or other characteristics (e.g., time, distance, length, etc.) of an element, operations, conditions, etc. the phrase "between X and Y" represents a range that includes X and Y. Similarly, when used herein, the term "approximately" and terms of its family (such as "approximate", etc.) should be understood as indicating values very near to those which accompany the aforementioned term. That is to say, a deviation within reasonable limits from an exact value should be accepted, because a skilled person in the art will understand that such a deviation from the values indicated is inevitable due to measurement inaccuracies, etc. The same applies to the terms "about" and "around" and "substantially". Similarly, when used herein, the term "comprises" and its derivations (such as "comprising", etc.) should not be understood in an excluding sense, that is, these terms should not be interpreted as excluding the possibility that what is described and defined may include further elements, steps, etc. Further, each example embodiment described herein as illustrative and is not to be construed as a preferred or advantageous embodiment, but rather as one example or illustration of a possible embodiment.

Referring initially to <FIG>, an autonomous vehicle fleet <NUM> will be described in accordance with an example embodiment. The autonomous vehicle fleet <NUM> includes a plurality of autonomous vehicles <NUM>. Each autonomous vehicle <NUM> is a manned or unmanned mobile machine configured to transport people, cargo, or other items, whether on land or water, air, or another surface, such as a car, wagon, van, tricycle, truck, bus, trailer, train, tram, ship, boat, ferry, drove, hovercraft, aircraft, spaceship, etc..

Each autonomous vehicle <NUM> may be fully or partially autonomous such that the vehicle can travel in a controlled manner for a period of time without human intervention. For example, a vehicle may be "fully autonomous" if it is configured to be driven without any assistance from a human operator, whether within the vehicle or remote from the vehicle, while a vehicle may be "semi-autonomous" if it uses some level of human interaction in controlling the operation of the vehicle, whether through remote control by, or remote assistance from, a human operator, or local control/assistance within the vehicle by a human operator. A vehicle may be "non-autonomous" if it is driven by a human operator located within the vehicle. A "fully autonomous vehicle" may have no human occupant or it may have one or more human occupants that are not involved with the operation of the vehicle; they may simply be passengers in the vehicle.

In an example embodiment, each autonomous vehicle <NUM> may be configured to switch from a fully autonomous mode to a semi-autonomous mode, and vice versa. Each autonomous vehicle <NUM> also may be configured to switch between a non-autonomous mode and one or both of the fully autonomous mode and the semi-autonomous mode.

The fleet <NUM> may be generally arranged to achieve a common or collective objective. For example, the autonomous vehicles <NUM> may be generally arranged to transport and/or deliver people, cargo, and/or other items. A fleet management system (not shown) can, among other things, coordinate dispatching of the autonomous vehicles <NUM> for purposes of transporting, delivering, and/or retrieving goods and/or services. The fleet <NUM> can operate in an unstructured open environment or a closed environment.

<FIG> is a diagram of a side of an autonomous vehicle <NUM>, according to an example embodiment. The autonomous vehicle <NUM> includes a body <NUM> configured to be conveyed by wheels <NUM> and/or one or more other conveyance mechanisms. In an example embodiment, the autonomous vehicle <NUM> is relatively narrow (e.g., approximately two to approximately five feet wide), with a relatively low mass and low center of gravity for stability.

The autonomous vehicle <NUM> may be arranged to have a moderate working speed or velocity range of between approximately one and approximately forty-five miles per hour ("mph"), e.g., approximately twenty-five mph, to accommodate inner-city and residential driving speeds. In addition, the autonomous vehicle <NUM> may have a substantially maximum speed or velocity in a range of between approximately thirty and approximately ninety mph, which may accommodate, e.g., high speed, intrastate or interstate driving. As would be recognized by a person of ordinary skill in the art, the vehicle size, configuration, and speed/velocity ranges presented herein are illustrative and should not be construed as being limiting in any way.

The autonomous vehicle <NUM> includes multiple compartments (e.g., compartments 215a and 215b), which may be assignable to one or more entities, such as one or more customers, retailers, and/or vendors. The compartments are generally arranged to contain cargo and/or other items. In an example embodiment, one or more of the compartments may be secure compartments. The compartments may have different capabilities, such as refrigeration, insulation, etc., as appropriate. It should be appreciated that the number, size, and configuration of the compartments may vary. For example, while two compartments (215a, 215b) are shown, the autonomous vehicle <NUM> may include more than two or less than two (e.g., zero or one) compartments.

The autonomous vehicle <NUM> further includes one or more sensors <NUM> configured to view and/or monitor conditions on or around the autonomous vehicle <NUM>. For example, the sensor(s) <NUM> can include one or more cameras, light detection and ranging ("LiDAR") sensors, radar, ultrasonic sensors, microphones, altimeters, etc. A sensor cleaning mechanism <NUM> is configured to clean a surface within a field of view of the sensor(s) <NUM> by providing a fluid to the surface and rotating the surface about the sensor(s) <NUM>. In addition, or in the alternative, the sensor cleaning mechanism <NUM> can be configured to clear a surface within a field of view of the sensor(s) <NUM> of a liquid obstruction, such as rain, water, or another liquid, by rotating the surface about the sensor(s) <NUM> with or without providing fluid to the surface. For example, if rain, water, or another liquid is detected within a field of view of the sensor(s) <NUM>, the sensor cleaning mechanism <NUM> can initiate, or change (e.g., by increasing or decreasing) a speed of, rotation of the surface to prevent the liquid from depositing on, and/or clinging to, the surface. The sensor cleaning mechanism <NUM> is described in more detail below.

<FIG> is a block diagram representation of certain functional components of the autonomous vehicle <NUM>, according to an example embodiment. With reference to <FIG>, the autonomous vehicle <NUM> includes a processor <NUM>, which is operatively coupled to, and configured to send instructions to, and receive instructions from or for, various systems of the autonomous vehicle <NUM>, including: a propulsion system <NUM>, a navigation system <NUM>, a sensor system <NUM>, a power system <NUM>, a communications system <NUM>, and a control system <NUM>. The processor <NUM> and systems are operatively coupled to, or integrated with, the body <NUM> (<FIG>) of the autonomous vehicle <NUM> and generally cooperate to operate the autonomous vehicle <NUM>.

The propulsion system <NUM> includes components configured to drive (e.g., move or otherwise convey) the autonomous vehicle <NUM>. For example, the propulsion system <NUM> can include an engine, wheels, steering, and a braking system, which cooperate to drive the autonomous vehicle <NUM>. In an example embodiment, the engine may be a gas engine, a turbine engine, an electric motor, and/or a hybrid gas/electric engine. As would be appreciated by a person of ordinary skill in the art, the propulsion system <NUM> may include additional or different components suitable or desirable for conveying an object, which are now known or hereinafter developed, such as one or more axles, treads, wings, rotors, blowers, rockets, propellers, and/or other components.

Although the autonomous vehicle <NUM> shown in <FIG> and <FIG> has a <NUM>-wheeled, <NUM>-axle automotive configuration, this configuration is illustrative and should not be construed as being limiting in any way. For example, the autonomous vehicle <NUM> may have more or less than <NUM> wheels, more or less than <NUM> axles, and a non-automotive configuration in an alternative example embodiment. For example, the vehicle may be configured for travel other than land travel, such as water travel, hover travel, and/or air travel without departing from the spirit or the scope of the present disclosure.

The navigation system <NUM> can be configured to control the propulsion system <NUM> and/or provide guidance to an operator associated with the autonomous vehicle <NUM> to navigate the autonomous vehicle <NUM> through paths and/or within unstructured open or closed environments. The navigation system <NUM> may include, e.g., digital maps, street view photographs, and/or a global positioning system ("GPS") point. For example, the navigation system <NUM> may cause the autonomous vehicle <NUM> to navigate through an environment based on information in the digital maps and information from sensors included in the sensor system <NUM>.

The sensor system <NUM> includes one or more sensors (including, e.g., the sensor <NUM>), which are configured to view and/or monitor conditions on or around the autonomous vehicle <NUM>. For example, the sensors can ascertain when there are objects near the autonomous vehicle <NUM> to enable the autonomous vehicle <NUM> to safely guide the autonomous vehicle <NUM> (via the navigation system <NUM>) around the objects. In an example embodiment, the sensor system <NUM> includes propulsion system sensors that monitor drive mechanism performance, drive train performance, and/or power system levels. The sensor system <NUM> also may include one or more microphones configured to detect sounds external to the autonomous vehicle <NUM>, such as a siren from an emergency vehicle requesting a right-of-way, a honk from another vehicle, etc..

As noted above, the sensor system <NUM> can include a sensor cleaning mechanism <NUM> configured to clean a surface within a field of view of at least one of the sensors. For example, upon a determination that the surface is in need of cleaning, the sensor cleaning mechanism <NUM> can cause fluid to be provided to the surface and can further cause the surface to rotate, thereby causing the fluid and, potentially, dirt, dust, debris, and/or other materials disposed on the surface, to be expelled from the surface. In addition, or in the alternative, the sensor cleaning mechanism <NUM> can be configured to clear a surface within a field of view of the sensor(s) <NUM> of a liquid obstruction, such as rain, water, or another liquid, by causing the surface to rotate and, thereby causing the liquid to be expelled from the surface, with or without providing fluid to the surface. The sensor system <NUM> is described in more detail below with reference to <FIG>.

The power system <NUM> is arranged to provide power to the autonomous vehicle <NUM>. Power may be provided as electrical power, gas power, or any other suitable power, e.g., solar power or battery power. In an example embodiment, the power system <NUM> may include a main power source and an auxiliary power source configured to power various components of the autonomous vehicle <NUM> and/or to generally provide power to the autonomous vehicle <NUM> when the main power source does not have the capacity to provide sufficient power.

The communications system <NUM> is arranged to enable communication between the autonomous vehicle <NUM> and an external person or device. For example, the communications system <NUM> can be configured to enable communication via wireless local area network (WLAN) connectivity (e.g., cellular) or any other wireless or mobile communication capability now known or hereinafter developed. In an example embodiment, the communications system <NUM> can communicate wirelessly with a fleet management system (not shown in <FIG>), which is arranged to control and/or assist the autonomous vehicle <NUM> from a location remote from the autonomous vehicle <NUM>. For example, the communications system <NUM> can generally obtain or receive data, store the data, and transmit or provide the data to the fleet management system and/or to one or more other vehicles within a fleet. The data may include, but is not limited to including, information relating to scheduled requests or orders, information relating to on-demand requests or orders, information relating to a need for the autonomous vehicle <NUM> to reposition itself, e.g., in response to an anticipated demand, information regarding an operational or mechanical need or behavior of the autonomous vehicle <NUM>, information regarding an upcoming construction zone or other hazard in the path of the autonomous vehicle <NUM>, etc..

In an example embodiment, the control system <NUM> may cooperate with the processor <NUM> and each of the other systems in the autonomous vehicle <NUM>, including the propulsion system <NUM>, the navigation system <NUM>, the sensor system <NUM>, the power system <NUM>, and the communications system <NUM>, to control operation of the autonomous vehicle <NUM>. For example, the control system <NUM> may cooperate with the processor <NUM> and the other systems to determine where the autonomous vehicle <NUM> may safely travel and to detect (e.g., based on data from the sensor system <NUM> and/or from an external system (not shown) communicating with the autonomous vehicle <NUM> via the communications system <NUM>), and navigate around, objects in a vicinity around the autonomous vehicle <NUM>. In other words, the control system <NUM> may cooperate with the processor <NUM> and other systems to effectively determine and facilitate what the autonomous vehicle <NUM> may do within its immediate surroundings. For example, the control system <NUM> in cooperation with the processor <NUM> may essentially control the power system <NUM> and/or the navigation system <NUM> as part of driving or conveying the autonomous vehicle <NUM>. In this sense, the control system <NUM> manages autonomous control of the autonomous vehicle <NUM>. Additionally, the control system <NUM> may cooperate with the processor <NUM> and communications system <NUM> to provide data to, or obtain data from, other vehicles, a fleet management server, a GPS, a personal computer, a teleoperations system, a smartphone, or any other computing device via the communications system <NUM>.

Turning to <FIG>, the sensor system <NUM> is now described in more detail. The sensor system <NUM> includes at least one sensor <NUM>, a controller <NUM>, and the sensor cleaning mechanism <NUM>. The sensor(s) <NUM> include one or more cameras, LiDAR sensors, radar, ultrasonic sensors, microphones, altimeters, or other mechanisms configured to capture images (e.g., still images and/or videos), sound, or other signals or information within an environment. For example, the sensor(s) <NUM> can include one or more cameras configured to capture images within a defined field of view.

The controller <NUM> includes computer hardware, software, logic, and/or other mechanisms configured to read and process the images, sound, and/or other signals or information captured by the sensor(s) <NUM>. For example, the controller <NUM> can include computer vision, machine learning, and/or artificial intelligence functionality for identifying and classifying items within, or corresponding to, the captured images, sound, and/or other signals or information. The controller <NUM> can be configured, for example, to detect whether a sound captured by the sensor(s) <NUM> corresponds to an emergency vehicle, a honk from another vehicle, etc..

The controller <NUM> also can be configured to determine, based on one or more images captured by the sensor(s) <NUM>, whether an obstruction exists in a field of view of the sensor(s) <NUM>. For example the controller <NUM> can determine, based on the image(s), whether a surface in the field of view of the sensor(s) <NUM> is in need of cleaning, e.g., because dirt, dust, debris, and/or another material is disposed on the surface. The controller <NUM> also can determine, for example, whether rain, water, a cleaning agent, or another liquid, are present on the surface or otherwise in the field of view of the sensor(s) <NUM>. For example, the controller <NUM> can determine that the surface in the field of view of the sensor(s) <NUM> is in need of clearing, with or without cleaning the surface, in response to detecting rain, water, a cleaning agent, or another liquid on the surface.

The sensor cleaning mechanism <NUM> includes a housing <NUM> configured to substantially house and/or enclose the sensor(s) <NUM>. The housing <NUM> can generally protect the sensor(s) <NUM> from a surrounding environment while still enabling the sensor(s) <NUM> to capture images, sound, and/or other signals or information from the surrounding environment. For example, if the sensor(s) <NUM> include one or more cameras, a window surface <NUM> of the housing <NUM> can include a substantially transparent material through which the camera(s) can capture images of the environment, even though the window surface <NUM> may extend across one or more fields of view of the camera(s).

The sensor cleaning mechanism <NUM> further includes a fluid providing mechanism <NUM> configured to provide a fluid, such as water, a cleaning agent, or another liquid, to the window surface <NUM>. For example, if the controller <NUM> determines that the window surface <NUM> is in need of cleaning, the fluid providing mechanism <NUM> can dispense fluid to the window surface <NUM>. The fluid providing mechanism <NUM> can include, e.g., one or more nozzles, pumps, valves, reservoirs, or other mechanisms for storing and selectively dispensing fluid. For example, the fluid providing mechanism <NUM> can be coupled to, or integrated with, the housing <NUM>. The fluid providing mechanism <NUM> also can be operatively coupled to the controller <NUM> via one or more wires or via a wireless technology now known or hereinafter developed, such as Bluetooth or Wi-Fi.

The sensor cleaning mechanism <NUM> also includes an actuating mechanism <NUM> configured to actuate the housing <NUM> and/or window surface <NUM> about the sensor(s) <NUM>. For example, the actuating mechanism <NUM> can include one or more motors, bearings, biasing members, and/or other mechanical, electric, electromechanical, hydraulic, pneumatic, magnetic, thermal, or other devices configured to cause a rotational force to move the housing <NUM> and/or window surface <NUM> relative to, and independent from, the sensor(s) <NUM>. The actuating mechanism <NUM> can be configured, e.g., to initiate a rotation of the housing <NUM> and/or window surface <NUM>, or to change (e.g., by increasing or decreasing) a speed of rotation thereof, when fluid is provided to the window surface <NUM> by the fluid providing mechanism <NUM> and/or when the controller <NUM> determines that the window surface <NUM> is in need of clearing (with or without also being in need of cleaning and with or without provision of fluid by the fluid providing mechanism <NUM>).

For example, this rotation can cause at least a portion of the fluid from the fluid providing mechanism <NUM> (if provided) and/or another liquid (such as rain) to be substantially expelled from the window surface <NUM>. Forces, such as gravitational forces and centrifugal forces, may effectively push or otherwise force the fluid (and, potentially, dirt, dust, debris, or other material coupled to the fluid or otherwise disposed on the window surface <NUM>) off of the window surface <NUM>. This rotation may prevent the fluid from obstructing the field of view of the sensor(s) <NUM>, e.g., by not allowing the fluid to cling to the window surface <NUM>.

In an example embodiment, the actuating mechanism <NUM> can be further configured to change a speed of rotation of the housing <NUM>, e.g., returning it to a speed at which it was rotating prior to provision and/or detection of the fluid or otherwise, in response to a determination by the controller <NUM> that the window surface <NUM> is substantially clear of the fluid. For example, the actuating mechanism <NUM> can be coupled to, or integrated with, the housing <NUM>. The actuating mechanism <NUM> also can be operatively coupled to the controller <NUM> via one or more wires or via a wireless technology now known or hereinafter developed, such as Bluetooth® or Wi-Fi®.

<FIG> illustrate a sensor system <NUM> according to an example embodiment. The sensor system <NUM> includes a nozzle assembly <NUM> and a sensor assembly <NUM>. <FIG> illustrate the sensor assembly <NUM> in more detail. <FIG> are described together for ease of description.

The sensor assembly <NUM> includes a housing <NUM> that includes a top surface <NUM> and a window surface <NUM>. The window surface <NUM> is coupled to the top surface <NUM> or integrated therewith and extends substantially from the top surface <NUM> such that the top surface <NUM> and the window surface <NUM> define a space <NUM> within which a plurality of sensors <NUM> are disposed. In an example embodiment, the housing <NUM> also includes a bottom surface <NUM> coupled to or integrated with the window surface <NUM> such that the space <NUM> and sensors <NUM> are substantially enclosed between the top surface <NUM>, bottom surface <NUM>, and window surface <NUM>. Alternatively, the bottom surface <NUM> may be omitted to provide a substantially open bottom end for the housing <NUM>. The top surface <NUM>, window surface <NUM>, and any bottom surface <NUM> can be formed from any suitable material, such as (optical or non-optical grade) metal, plastic, polycarbonate, glass, etc..

The sensors <NUM> can include one or more cameras, LiDAR sensors, radar, ultrasonic sensors, microphones, altimeters, or other mechanisms configured to capture images (e.g., still images and/or videos), sound, or other signals or information within an environment of the sensor assembly <NUM>. In an example embodiment, the sensors <NUM> include cameras with fields of view extending generally outward from a central axis <NUM> of the sensor system <NUM>. For example, as best seen in <FIG>, the sensors <NUM> can be positioned between a top baffle <NUM> and a bottom baffle <NUM>, substantially around a shaft <NUM> that extends substantially between the top baffle <NUM> and the bottom baffle <NUM>. The shaft <NUM> may include one or more openings, such as opening 835a, within which one or more sensor cables <NUM> (or portions thereof) may be disposed. The fields of view of the sensors <NUM> may overlap with one another, adjoin one another, or be independent of one another. Though <FIG> illustrate eight sensors <NUM> arranged in a generally circular shape around the central axis <NUM> (and shaft <NUM>), it should be apparent that more or less than eight sensors <NUM>, and any arrangement or configuration of the sensors <NUM>, can be provided in alternative example embodiments.

The window surface <NUM> can extend across one or more of the fields of view of the sensors <NUM>, substantially defining an outer perimeter of the housing <NUM>. In an example embodiment, the window surface <NUM> is substantially transparent such that the sensors <NUM> can "see" through the window surface <NUM>, and the window surface <NUM> is generally not visible in any images captured by the sensors <NUM>. The window surface <NUM> may be uncoated or it may be coated with one or more materials for improving a performance quality of the sensors <NUM>. For example, an exterior of the window surface <NUM> may be coated with a hydrophobic material to repel rain and/or other liquids from the window surface <NUM>.

The size of the housing <NUM> may vary widely. For example, a diameter and height of the housing <NUM> may vary depending upon the requirements of an overall system in which the housing <NUM> is to be used. For example, a larger sized housing <NUM> may be provided to accommodate additional sensors <NUM> and/or larger sensors <NUM>, while a smaller sized housing <NUM> may be provided to accommodate fewer sensors <NUM> and/or smaller sensors <NUM>. In an example embodiment, a diameter of the top surface <NUM> may be approximately <NUM> millimeters, and a height of the window surface <NUM> may be approximately <NUM> millimeters, though it should be appreciated that the top surface <NUM> may be larger than <NUM> millimeters or smaller than <NUM> millimeters, and the height of the window surface <NUM> may be larger than <NUM> millimeters or smaller than <NUM> millimeters, in alternative example embodiments.

In an example embodiment, the window surface <NUM> has a substantially sloped or angled profile such that a diameter associated with a top of the window surface <NUM> is smaller than a diameter associated with a bottom of the window surface <NUM>. For example, a sloped or angled profile may facilitate removal of rain, water, a cleaning agent, or another liquid from the window surface <NUM> through gravitational forces, with a downward slope repelling liquid downward and an upward slope repelling liquid upward. For example, the window surface <NUM> may have a slope of about -<NUM> degrees, -<NUM> degrees, +<NUM> degrees, or +<NUM> degrees in certain example embodiments. As would be recognized by a person of ordinary skill in the art, these slopes are illustrative and should not be construed as being limiting in any way. In addition, it should be appreciated that a sloped/angled profile is not required, and the window surface <NUM> may have an alternative configuration, e.g., a straight, non-angled profile, in alternative example embodiments. The window surface <NUM> also may include a curved profile, such as one or more curved or arced sections, for optical performance, optical focusing, or other reasons.

As best seen on <FIG>, an actuating mechanism <NUM> includes components, such as a motor <NUM>, bearings 810a and 810b, and a rotor <NUM>, which are configured to cooperate to rotate the housing <NUM> about the central axis <NUM>. In particular, the actuating mechanism <NUM> can cause the window surface <NUM> to rotate about the sensors <NUM>, independently of the sensors <NUM> and any movement thereof. For example, the actuating mechanism <NUM> can be configured to initiate a rotation of the housing <NUM> and/or window surface <NUM>, or to change (e.g., by increasing or decreasing) a speed of rotation thereof, when rain, dirt, dust, debris, and/or another obstruction is detected within a field of view of one or more of the sensors <NUM>.

In an example embodiment, the actuating mechanism <NUM> rotates the housing <NUM> at a first speed when the sensor system <NUM> is in a regular operating mode and changes a rate of rotation of the housing <NUM> to a second speed (e.g., a speed that is greater than the first speed or a speed that is less than the first speed) when a controller of the sensor system <NUM> detects rain, dirt, dust, debris, and/or another obstruction within a field of view of one or more of the sensors <NUM>. For example, the actuating mechanism <NUM> may rotate the housing <NUM> at the first speed when no obstructions are detected within the field of view of the sensors <NUM>, to help prevent items (such as rain, dirt, dust, or debris) from being deposited on the housing <NUM>. Alternatively, the actuating mechanism <NUM> may not rotate the housing <NUM> unless or until an obstruction is detected.

For example, the rotation (and/or changed rate of rotation) of the housing <NUM> can help expel fluid and/or other materials from the window surface <NUM>, thereby potentially preventing the fluid and/or other materials from obstructing the fields of view of the sensors <NUM>. The fluid may include fluid provided by sources external to the sensor system <NUM>, such as rain, mud, or other items from an environment surrounding the sensor system <NUM>. In addition, or in the alternative, the fluid may include fluid <NUM> provided by the nozzle assembly <NUM> as more fully described below.

In an example embodiment, the actuating mechanism <NUM> is configured to change (e.g., by increasing or decreasing) a rate of rotation from the second speed once any obstructions are cleared from the field of view of the sensors <NUM>. For example, the actuating mechanism <NUM> can change the rate of rotation back to the first speed or to another speed, which is slower than or greater than the second speed, once the obstructions are cleared. For example, the controller of the sensor system <NUM> can determine the presence (or non-presence) of any fluid or other obstructions using one or more images captured by the sensors <NUM>.

The speed of rotation may vary widely depending on a number of considerations, including, e.g., a size/shape of the housing <NUM>, a profile (slope or non-sloped) of the window surface <NUM>, whether and to what degree the window surface <NUM> includes a hydrophobic coating, a time of rotation, etc. For example, a rate of rotation for a regular operating mode of the sensor system <NUM> may be between about <NUM> rotations per minute and about <NUM>-<NUM> rotations per minute, and a rate of rotation when the sensor system <NUM> is expelling fluid or other materials from the window surface <NUM> may be about <NUM> rotations per minute. As would be recognized by a person of ordinary skill in the art, these rates are illustrative and should not be construed as being limiting in any way. For example, the rate of rotation during a regular operating mode may be below <NUM> rotations per minute or above <NUM> rotations per minute, and the rate of rotation when the sensor system <NUM> is expelling fluid or other materials may be below <NUM> rotations per minute or above <NUM> rotations per minute in certain example embodiments.

As best shown in <FIG>, the nozzle assembly <NUM> includes a generally dome-shaped housing <NUM> that defines a space <NUM> in which one or more nozzles <NUM> are disposed. For example, a plurality of nozzles <NUM> may be spaced generally along a perimeter of the housing <NUM>. The housing <NUM> can be configured to generally protect the nozzles <NUM> from a surrounding environment. The housing <NUM> is coupled to or integrally formed with the housing <NUM>. The housing <NUM> can be formed from any suitable material, such as (optical or non-optical grade) metal, plastic, polycarbonate, glass, etc..

The nozzles <NUM> are configured to store and/or selectively dispense fluid <NUM> to the sensor assembly <NUM>. The fluid <NUM> can include, e.g., water, a cleaning agent, or another liquid. For example, the nozzles <NUM> can include or be coupled to one or more reservoirs (not shown) storing the fluid <NUM>. The nozzles <NUM> can include one or more nozzles, pumps, valves, or other mechanisms for dispensing the fluid, e.g., by releasing and/or propelling the fluid <NUM>.

In an example embodiment, the controller of the sensor system <NUM>, e.g., controller <NUM> shown in <FIG>, is configured to cause the nozzles <NUM> to provide the fluid <NUM> to the window surface <NUM> upon a determination by the controller that the window surface <NUM> is in need of cleaning. For example, the controller may determine that the window surface <NUM> is in need of cleaning if the sensors <NUM> indicate that dirt, dust, debris, or another material is obstructing a field of view of at least one of the sensors <NUM>. The controller can be further configured to cause the actuating mechanism <NUM> to initiate a rotation of the housing <NUM> and/or the window surface <NUM>, or to change (e.g., by increasing or decreasing) a speed of rotation thereof, once the fluid <NUM> is provided to the window surface <NUM>. For example, the controller can cause the actuating mechanism <NUM> to initiate or increase a speed of rotation of the housing <NUM> and/or window surface <NUM> upon (or soon before or after) providing the fluid <NUM>, or after first slowing or maintaining a speed of the rotation (or non-rotation) of the housing <NUM> and/or window surface <NUM> for a period of time to allow the fluid <NUM> to clean the window surface <NUM> before it is expelled from the window surface <NUM>. For example, gravitational forces, centrifugal forces, and/or other forces may effectively push or otherwise force the fluid <NUM> (and, potentially, dirt, dust, debris, or other material coupled to the fluid <NUM> or otherwise disposed on the window surface <NUM>) off of the window surface <NUM> when the housing <NUM> is rotated.

In an example embodiment, the controller <NUM> also can be configured to cause the actuating mechanism <NUM> to initiate rotation of the housing <NUM>, or change (e.g., by increasing or decreasing) a speed of rotation of the housing <NUM>, without the nozzles <NUM> providing fluid <NUM> to the window surface <NUM>, e.g., in response to detecting a liquid, such as rain, water droplets, etc., on the window surface <NUM>. For example, if rain, water, or another liquid is detected within a field of view of a sensor <NUM>, the actuating mechanism <NUM> can initiate, or change (e.g., by increasing or decreasing) a speed of, rotation of the housing <NUM> to prevent the liquid from depositing on, and/or clinging to, the window surface <NUM>. Thus, the window surface <NUM> can be cleared of the obstruction with or without provision of the fluid <NUM> by the nozzles <NUM>.

In an example embodiment, a bottom of the housing <NUM> includes at least one opening <NUM> defining a channel through which the fluid <NUM> can be provided to the window surface <NUM>. Similarly, the housing <NUM>, e.g., within the window surface <NUM> and/or any bottom surface <NUM>, can include at least one opening <NUM> defining a channel through which at least a portion of the fluid <NUM> can be expelled from the window surface <NUM>. For example, gravitational forces may effectively push or otherwise force at least a portion of the fluid <NUM> through the opening <NUM> onto the window surface <NUM> and then through the opening <NUM>.

It should be appreciated that the configuration of the sensor system <NUM> and each of the components thereof are illustrative and not limiting in any way. In alternative example embodiments, certain components may be added, removed, rearranged, or otherwise changed without departing from the spirit or scope of the disclosure.

For example, <FIG> illustrates a top surface <NUM>, which may be included in a rotatable camera housing in an alternative example embodiment. The top surface <NUM> has a profile that is substantially sloped downward from a center <NUM> of the top surface <NUM>, towards a top of a window surface <NUM> of the rotatable camera housing. The top surface <NUM> includes a protrusion <NUM> that extends past the window surface <NUM>, substantially away from the center <NUM> and at least one sensor (not shown) disposed within the rotatable camera housing. The protrusion <NUM> has a profile with a slope that extends substantially upward relative to the window surface <NUM>.

The protrusion <NUM> and/or the profile of the top surface <NUM> may facilitate removal of fluid from the top surface <NUM>. For example, the slope of the top surface <NUM> and/or the slope of the protrusion <NUM> may promote removal of the fluid by centrifugal and/or gravitational forces when the rotatable camera housing is rotated. The fluid can include fluid provided by sources external to a sensor system that includes the rotatable camera housing, such as rain, mud, or other items from an environment surrounding the sensor system, and/or fluid provided by a nozzle assembly associated with the rotatable camera housing.

<FIG> illustrates a top surface <NUM> of a rotatable camera housing, according to another example embodiment. The top surface <NUM> has a profile that is substantially sloped downward from a center <NUM> of the top surface <NUM>, towards a top of a window surface <NUM> of the rotatable camera housing. The top surface <NUM> includes a protrusion <NUM> that extends past the window surface <NUM>, substantially away from the center <NUM> and at least one sensor (not shown) disposed within the rotatable camera housing. The protrusion <NUM> has a profile with a slope that extends with a substantially flat slope, substantially perpendicular to an axis of rotation <NUM> of the rotatable camera housing.

Similar to the protrusion <NUM> and top surface <NUM> described above, the protrusion <NUM> and/or the profile of the top surface <NUM> may facilitate removal of fluid from the top surface <NUM>. For example, the slope of the top surface <NUM> and/or the slope of the protrusion <NUM> may promote removal of the fluid by centrifugal and/or gravitational forces when the rotatable camera housing is rotated.

<FIG> is a cross-sectional side view of a top surface <NUM> of a rotatable camera housing, according to yet another example embodiment. The top surface <NUM> has a profile that is substantially sloped downward from a center <NUM> of the top surface <NUM>, towards a top of a window surface <NUM> of the rotatable camera housing. The top surface <NUM> includes a protrusion <NUM> that extends past the window surface <NUM>, substantially away from the center <NUM> and at least one sensor (not shown) disposed within the rotatable camera housing. The protrusion <NUM> has a profile with a slope that is substantially similar to the slope of the top surface <NUM>. That is, the top surface <NUM> has a slope that generally continues through the protrusion <NUM>.

Similar the protrusions <NUM> and <NUM> and top surfaces <NUM> and <NUM> described above, the protrusion <NUM> and/or the profile of the top surface <NUM> may facilitate removal of fluid from the top surface <NUM>. For example, the slope of the top surface <NUM> and/or the slope of the protrusion <NUM> may promote removal of the fluid by centrifugal and/or gravitational forces when the rotatable camera housing is rotated.

<FIG> is a cross-sectional cutaway view of a window surface <NUM> of a rotatable camera housing, according to an example embodiment. The window surface <NUM> includes a substantially transparent window material <NUM>, which can be formed from any suitable material, such as (optical or non-optical grade) metal, plastic, polycarbonate, glass, etc. For example, the window material <NUM> can have hardness properties to protect the window surface <NUM> and provide impact resistance to components housed by the window surface <NUM> (e.g., sensors). An exterior of the window surface <NUM>, which is exposed to an environment surrounding the rotatable camera housing, includes a hydrophobic material <NUM>, such as a coating or film. For example, the hydrophobic material <NUM> can be configured to repel rain and/or other liquids from the exterior of the window surface <NUM>. The hydrophobic material <NUM> also may have anti-reflective properties.

An interior of the window surface <NUM>, which is generally not exposed to the surrounding environment of the rotatable camera housing, can include an anti-fog material <NUM> and an anti-reflective material <NUM>. For example, the hydrophobic material <NUM>, anti-fog material <NUM>, and anti-reflective material <NUM> can improve a performance quality of sensors within the rotatable camera housing, e.g., by preventing liquid, reflections, fog, etc. from impacting images captured by the sensors. As would be recognized by a person of ordinary skill in the art, the size, shape, and configuration of the window surface <NUM> presented herein are illustrative and should not be construed as being limiting in any way. For example, in an alternative example embodiment, the window surface <NUM> may include additional, less, or different materials than the materials described herein, and/or positions of the materials may be different. For example, in an alternative example embodiment, the anti-fog material <NUM> may be disposed between the anti-reflective material <NUM> and the window material <NUM>. Alternatively, an anti-fog material <NUM> may not be provided or may be substituted by alternative mechanisms for preventing fog like directing or redirecting heat from one or more heat pipes, fans, motors, sensors, or other components inside the rotatable camera housing.

<FIG> is a process flow diagram illustrating a method <NUM> of cleaning a sensor, according to an example embodiment. In step <NUM>, an actuating mechanism of a sensor cleaning mechanism rotates a housing at a first speed. The housing includes a window surface disposed substantially within a field of view of at least one sensor. For example, the sensor(s) can be configured to capture images, sound, and/or other signals or information from an environment associated with the housing.

In step <NUM>, a controller of the sensor cleaning mechanism determines whether the window surface is in need of cleaning and/or clearing, e.g., because a substance is detected on the window surface. For example, the controller can determine that the window surface is in need of cleaning if dirt, dust, debris, and/or another material is disposed on the window surface. The controller also can determine that the window surface is in need of clearing (with or without also being in need of cleaning), e.g., if rain, water, or another liquid or substance is disposed on the window surface. The controller can make the determination in step <NUM>, e.g., using one or more measurements (e.g., images) captured by the sensor(s). If the controller determines in step <NUM> that the window surface is not in need of cleaning or clearing, then the method <NUM> continues to step <NUM> in which the actuating mechanism continues to rotate the housing at the first speed.

If the controller determines in step <NUM> that the window surface is in need of cleaning or clearing, then the method <NUM> continues to step <NUM>. In step <NUM>, a fluid providing mechanism of the sensor cleaning mechanism provides a fluid, such as water, a cleaning agent, or another liquid, to the window surface. For example, the fluid providing mechanism can provide the fluid via one or more nozzles, pumps, valves, reservoirs, and/or other mechanisms for storing and selectively dispensing fluid. In an example embodiment, the fluid providing mechanism provides the fluid to the window surface in step <NUM> only if the window surface is need of cleaning (e.g., as indicated by one or more measurements captured by the sensor(s)). For example, the fluid providing mechanism may provide the fluid or forego providing the fluid if the window surface is in need of clearing but not in need of cleaning.

In step <NUM>, an actuating mechanism of the sensor cleaning mechanism rotates the housing at a second speed, which may be faster or slower than the first speed, thereby causing at least a portion of the fluid (i.e., any provided fluid and/or any detected rain, water, or other liquid) to be expelled from the window surface. For example, the actuating mechanism may increase a speed of rotation of the housing upon (or soon before or after) providing the fluid in step <NUM>, or after first slowing or maintaining the speed of the rotation of the housing for a period of time to allow the fluid to clean the window surface before it is expelled from the window surface through the rotation in step <NUM>. For example, centrifugal forces and/or gravitational forces may push or otherwise force the fluid from the window surface when the actuating mechanism rotates the housing. As may be appreciated, the rotation in step <NUM> may result in any substance, whether liquid, solid, or otherwise, being expelled from the window surface. For example, if no fluid is provided in step <NUM>, the rotation may cause dirt, dust, debris, rain, and/or another substance (which may or may not have been detected in step <NUM>) to be expelled from the surface in step <NUM>.

In step <NUM>, the controller determines whether the window surface is clear of the (provided or detected) fluid. For example, the controller can make this determination using one or more images captured by the sensor(s). If the controller determines in step <NUM> that the window surface is not clear of the fluid, then the method <NUM> continues to step <NUM> in which the controller causes the actuating mechanism to continue to rotate the housing at the second speed, to continue expelling the fluid from the window surface. As may be appreciated, step <NUM> may further involve determining whether the window surface is clear of any detected substance, which may or may not be a fluid. For example, if the controller determines in step <NUM> that the window surface is not clear of the substance (e.g., using one or more images captured by the sensor(s)), then the method <NUM> can continue to step <NUM> in which the controller causes the actuating mechanism to continue to rotate the housing at the second speed, to further facilitate removal of the substance from the window surface.

If the controller determines in step <NUM> that the window surface is clear of the fluid (or substance, as applicable), then the method <NUM> continues to step <NUM>. In step <NUM>, the controller causes the actuating mechanism to change a speed of rotation of the housing to a third speed, which may be slower or faster than the second speed. For example, the third speed may be zero (i.e., the actuating mechanism may stop rotating the housing), it may be the same as the first speed, it may be another speed between zero and the second speed, or it may be another speed.

As would be recognized by a person of skill in the art, the steps associated with the methods of the present disclosure, including the method <NUM> presented in <FIG>, may vary widely. Steps may be added, removed, altered, combined, and reordered without departing from the spirit or the scope of the present disclosure. Therefore, the example methods are to be considered illustrative and not restrictive, and the examples are not to be limited to the details given herein but may be modified within the scope of the appended claims.

Referring now to <FIG> illustrates a hardware block diagram of a computing device <NUM> that may perform functions associated with operations discussed herein in connection with the techniques depicted in <FIG>. In various example embodiments, a computing device, such as computing device <NUM> or any combination of computing devices <NUM>, may be configured as any entity/entities as discussed for the techniques depicted in connection with <FIG>, such as processor <NUM> shown in <FIG> or controller <NUM> of the sensor system <NUM> shown in <FIG>, in order to perform operations of the various techniques discussed herein.

In at least one embodiment, computing device <NUM> may include one or more processor(s) <NUM>, one or more memory element(s) <NUM>, storage <NUM>, a bus <NUM>, one or more network processor unit(s) <NUM> interconnected with one or more network input/output (I/O) interface(s) <NUM>, one or more I/O interface(s) <NUM>, and control logic <NUM>. In various embodiments, instructions associated with logic for computing device <NUM> can overlap in any manner and are not limited to the specific allocation of instructions and/or operations described herein.

In at least one embodiment, processor(s) <NUM> is/are at least one hardware processor configured to execute various tasks, operations and/or functions for computing device <NUM> as described herein according to software and/or instructions configured for computing device. Processor(s) <NUM> (e.g., a hardware processor) can execute any type of instructions associated with data to achieve the operations detailed herein. In one example, processor(s) <NUM> can transform an element or an article (e.g., data, information) from one state or thing to another state or thing. Any of potential processing elements, microprocessors, digital signal processor, baseband signal processor, modem, PHY, controllers, systems, managers, logic, and/or machines described herein can be construed as being encompassed within the broad term "processor.

In at least one embodiment, memory element(s) <NUM> and/or storage <NUM> is/are configured to store data, information, software, and/or instructions associated with computing device <NUM>, and/or logic configured for memory element(s) <NUM> and/or storage <NUM>. For example, any logic described herein (e.g., control logic <NUM>) can, in various embodiments, be stored for computing device <NUM> using any combination of memory element(s) <NUM> and/or storage <NUM>. Note that in some embodiments, storage <NUM> can be consolidated with memory element(s) <NUM> (or vice versa), or can overlap/exist in any other suitable manner.

In at least one embodiment, bus <NUM> can be configured as an interface that enables one or more elements of computing device <NUM> to communicate in order to exchange information and/or data. Bus <NUM> can be implemented with any architecture designed for passing control, data and/or information between processors, memory elements/storage, peripheral devices, and/or any other hardware and/or software components that may be configured for computing device <NUM>. In at least one embodiment, bus <NUM> may be implemented as a fast kernel-hosted interconnect, potentially using shared memory between processes (e.g., logic), which can enable efficient communication paths between the processes.

In various embodiments, network processor unit(s) <NUM> may enable communication between computing device <NUM> and other systems, entities, etc., via network I/O interface(s) <NUM> to facilitate operations discussed for various embodiments described herein. In various embodiments, network processor unit(s) <NUM> can be configured as a combination of hardware and/or software, such as one or more Ethernet driver(s) and/or controller(s) or interface cards, Fibre Channel (e.g., optical) driver(s) and/or controller(s), and/or other similar network interface driver(s) and/or controller(s) now known or hereafter developed to enable communications between computing device <NUM> and other systems, entities, etc. to facilitate operations for various embodiments described herein. In various embodiments, network I/O interface(s) <NUM> can be configured as one or more Ethernet port(s), Fibre Channel ports, and/or any other I/O port(s) now known or hereafter developed. Thus, the network processor unit(s) <NUM> and/or network I/O interfaces <NUM> may include suitable interfaces for receiving, transmitting, and/or otherwise communicating data and/or information in a network environment.

I/O interface(s) <NUM> allow for input and output of data and/or information with other entities that may be connected to computer device <NUM>. For example, I/O interface(s) <NUM> may provide a connection to external devices such as a keyboard, keypad, a touch screen, and/or any other suitable input device now known or hereafter developed. In some instances, external devices can also include portable computer readable (non-transitory) storage media such as database systems, thumb drives, portable optical or magnetic disks, and memory cards. In still some instances, external devices can be a mechanism to display data to a user, such as, for example, a computer monitor, a display screen, or the like.

In various embodiments, control logic <NUM> can include instructions that, when executed, cause processor(s) <NUM> to perform operations, which can include, but not be limited to, providing overall control operations of computing device; interacting with other entities, systems, etc. described herein; maintaining and/or interacting with stored data, information, parameters, etc. (e.g., memory element(s), storage, data structures, databases, tables, etc.); combinations thereof; and/or the like to facilitate various operations for embodiments described herein.

The programs described herein (e.g., control logic <NUM>) may be identified based upon application(s) for which they are implemented in a specific embodiment. However, it should be appreciated that any particular program nomenclature herein is used merely for convenience; thus, embodiments herein should not be limited to use(s) solely described in any specific application(s) identified and/or implied by such nomenclature.

In various embodiments, entities as described herein may store data/information in any suitable volatile and/or non-volatile memory item (e.g., magnetic hard disk drive, solid state hard drive, semiconductor storage device, random access memory (RAM), read only memory (ROM), erasable programmable read only memory (EPROM), application specific integrated circuit (ASIC), etc.), software, logic (fixed logic, hardware logic, programmable logic, analog logic, digital logic), hardware, and/or in any other suitable component, device, element, and/or object as may be appropriate. Any of the memory items discussed herein should be construed as being encompassed within the broad term "memory element. " Data/information being tracked and/or sent to one or more entities as discussed herein could be provided in any database, table, register, list, cache, storage, and/or storage structure: all of which can be referenced at any suitable timeframe. Any such storage options may also be included within the broad term "memory element" as used herein.

Note that in certain example implementations, operations as set forth herein may be implemented by logic encoded in one or more tangible media that is capable of storing instructions and/or digital information and may be inclusive of non-transitory tangible media and/or non-transitory computer readable storage media (e.g., embedded logic provided in: an ASIC, digital signal processing (DSP) instructions, software (potentially inclusive of object code and source code), etc.) for execution by one or more processor(s), and/or other similar machine, etc. Generally, memory element(s) <NUM> and/or storage <NUM> can store data, software, code, instructions (e.g., processor instructions), logic, parameters, combinations thereof, and/or the like used for operations described herein. This includes memory element(s) <NUM> and/or storage <NUM> being able to store data, software, code, instructions (e.g., processor instructions), logic, parameters, combinations thereof, or the like that are executed to carry out operations in accordance with teachings of the present disclosure.

In some instances, software of the present embodiments may be available via a non-transitory computer useable medium (e.g., magnetic or optical mediums, magneto-optic mediums, CD-ROM, DVD, memory devices, etc.) of a stationary or portable program product apparatus, downloadable file(s), file wrapper(s), object(s), package(s), container(s), and/or the like. In some instances, non-transitory computer readable storage media may also be removable. For example, a removable hard drive may be used for memory/storage in some implementations. Other examples may include optical and magnetic disks, thumb drives, and smart cards that can be inserted and/or otherwise connected to a computing device for transfer onto another computer readable storage medium.

In summary, in one form, a method can include providing fluid to a window surface of a housing, the window surface being disposed substantially within a field of view of a sensor. The housing can be rotated about the sensor at a first speed, thereby causing at least a portion of the fluid to be expelled from the window surface. A speed of rotation of the housing can be changed from the first speed to a second speed, which is greater than zero, in response to determining that the window surface is substantially clear of the fluid. For example, changing the speed of rotation can include slowing rotation of the housing to the second speed, the second speed being slower than the first speed.

For example, providing the fluid to the window surface can be responsive to determining, via the sensor, that the window surface is in need of cleaning, e.g., by analyzing one or more images captured by the sensor using a computer vision software model. Rotating can include, for example, changing a speed of rotation of the housing from a third speed to the first speed. For example, the third speed can be substantially equal to the second speed. Rotating can include, for example, increasing the speed of rotation of the housing to the first speed after a predetermined period of time passes after providing the fluid to the window surface of the housing. In an example embodiment, the method can further include continuing to rotate the housing at the first speed in response to determining that the window surface is not substantially clear of the fluid.

In another form, an apparatus can include at least one sensor configured to observe a condition associated with a vehicle, and a housing configured to be mounted on the vehicle, the housing comprising a window surface configured to be disposed substantially within a field of view of the sensor. A fluid providing mechanism can be configured to provide fluid to the window surface. An actuating mechanism can be configured to rotate the housing about the at least one sensor at a first speed, thereby causing at least a portion of the fluid to be expelled from the window surface, and change a speed of rotation of the housing to a second speed, which is greater than zero, in response to a determination that the window surface is substantially clear of the fluid.

In another form, a system can include a plurality of sensors configured to observe a condition associated with a vehicle. A housing can be configured to be mounted on the vehicle, the housing comprising a top surface and a window surface extending from the top surface, the top surface and the window surface defining a space within which the plurality of sensors are substantially disposed, a body of the window surface extending across fields of view of the plurality of sensors. A fluid providing mechanism can be configured to provide fluid to the window surface. An actuating mechanism configured to rotate the housing about the plurality of sensors at a first speed, thereby causing at least a portion of the fluid to be expelled from the window surface. A controller can be configured to determine, by analyzing one or more images captured by the plurality of sensors using a computer vision software model, whether the window surface is substantially clear of the fluid. For example, the actuating mechanism can be configured to change a speed of rotation of the housing to a second speed, which is greater than zero, in response to a determination by the controller that the window surface is substantially clear of the fluid.

In another form, a method can include detecting a fluid on a window surface of a housing, the window surface being disposed substantially within a field of view of a sensor. The housing can be rotated about the sensor at a first speed, thereby causing at least a portion of the fluid to be expelled from the window surface. Rotation of the housing can be slowed to a second speed, which is slower than the first speed but greater than zero, in response to determining that the window surface is substantially clear of the fluid. For example, the sensor can detect the fluid. The detecting can include, e.g., analyzing one or more images captured by the sensor using a computer vision software model. Rotating can include, e.g., increasing a speed of rotation of the housing from a third speed to the first speed. For example, the third speed can be substantially equal to the second speed. In an example embodiment, the rotation can continue at the first speed in response to determining that the window surface is not substantially clear of the fluid.

In another form, a method can include detecting a substance on a window surface of a housing, the window surface being disposed substantially within a field of view of a sensor. The housing can be rotated about the sensor at a first speed, thereby causing at least a portion of the substance to be expelled from the window surface. A speed of rotation of the housing can be changed to a second speed, which is greater than zero, in response to determining that the window surface is substantially clear of the substance. For example, detecting can include sensing the substance by the sensor.

In an example embodiment, the method can further include providing a cleaning fluid to the window surface in response to the detecting, the rotating causing at least a portion of the cleaning fluid to be expelled from the window surface. For example, changing the speed of rotation of the housing can be further in response to determining that the window surface is substantially clear of the cleaning fluid. Providing the cleaning fluid can, e.g., be responsive to determining, using the sensor, that the window surface is in need of cleaning. For example, determining that the window surface is in need of cleaning can include analyzing one or more images captured by the sensor using a computer vision software model.

In an example embodiment, rotating the housing about the sensor at the first speed comprises increasing a speed of rotation of the housing to the first speed after providing the cleaning fluid. For example, increasing the speed of rotation can occur a predetermined period of time after providing the cleaning fluid. A rate of rotation of the housing may, e.g., be slowed prior to providing the cleaning fluid, in response to the detecting of the substance. For example, rotating can comprise changing a speed of rotation of the housing from a third speed to the first speed, the third speed being greater than zero. The third speed can be any speed, such as a speed substantially equal to the second speed.

The method can further comprise continuing to rotate the housing at the first speed in response to determining that the window surface is not substantially clear of the substance. Changing the speed of rotation can include, for example, slowing rotation of the housing to the second speed, the second speed being slower than the first speed. The substance can include any liquid or other material, such as rain.

In another form, an apparatus can include a housing configured to be mounted on a vehicle, the housing comprising a window surface; at least one sensor configured to: observe a condition associated with the vehicle; and detect a substance on the window surface of the housing, the window surface being disposed substantially within a field of view of the at least one sensor; and an actuating mechanism configured to: rotate the housing about the at least one sensor at a first speed, thereby causing at least a portion of the substance to be expelled from the window surface, and change a speed of rotation of the housing to a second speed, which is greater than zero, in response to a determination that the window surface is substantially clear of the substance. The apparatus may further include a fluid providing mechanism configured to provide fluid to the window surface in response to the at least one sensor detecting the substance on the window surface, the rotating of the housing causing at least a portion of the cleaning fluid to be expelled from the window surface. For example, changing the speed of rotation of the housing is further in response to determining that the window surface is substantially clear of the cleaning fluid.

In an example embodiment, the apparatus can further include a controller configured to determine, using the at least one sensor, whether the window surface is in need of cleaning. For example, the fluid providing mechanism can be configured to provide the cleaning fluid in response to the controller determining that the window surface is in need of cleaning. The controller can be configured to determine that the window surface is in need of cleaning, e.g., by analyzing one or more images captured by the at least one sensor using a computer vision software model.

In an example embodiment, the actuating mechanism can be further configured to rotate the housing about the at least one sensor at the first speed by increasing a speed of rotation of the housing to the first speed after the fluid providing mechanism provides the fluid to the window surface. For example, the actuating mechanism can be further configured to increase the speed of rotation to the first speed a predetermined period of time after the fluid providing mechanism provides the fluid to the window surface. For example, the actuating mechanism can be further configured to slow a rate of rotation of the housing prior to the fluid providing mechanism providing the cleaning fluid, in response to the detecting the substance.

In an example embodiment, the actuating mechanism is configured to rotate the housing about the at least one sensor at the first speed by changing a speed of rotation of the housing from a third speed to the first speed, the third speed being greater than zero. For example, the third speed can be substantially equal to the second speed. The actuating mechanism can be further configured to rotate the housing at the first speed in response to a determination that the window surface is not substantially clear of the substance. The actuating mechanism can be configured to change the speed of rotation by slowing rotation of the housing to the second speed, the second speed being slower than the first speed. The substance can include any liquid or other material, such as rain. In an example embodiment, the apparatus includes a plurality of sensors, and the actuating mechanism is configured to rotate the housing about the plurality of sensors.

In an example embodiment, the housing comprises a top surface, the window surface extending substantially from the top surface, the top surface and the window surface defining a space within which the at least one sensor is substantially disposed. The top surface can have any of a number of different profiles. For example, the top surface can have a profile that is substantially sloped downward from a center of the top surface towards the window surface. The top surface can, e.g., include a protrusion that extends past the window surface, substantially away from the at least one sensor, the protrusion having a profile with a slope that is substantially similar to a slope of the top surface. In addition, or in the alternative, the top surface can comprise a protrusion that extends past the window surface, substantially away from the at least one sensor, the protrusion extending substantially upward relative to the window surface. In addition, or in the alternative, the top surface can comprise a protrusion that extends past the window surface, substantially away from the at least one sensor and substantially perpendicular to an axis of rotation of the housing.

In another form, a system can include a housing configured to be mounted on a vehicle, the housing comprising a top surface and a window surface extending from the top surface, the top surface and the window surface defining a space; a plurality of sensors disposed substantially within the space and configured to: observe a condition associated with a vehicle; and detect a substance on the window surface of the housing, a body of the window surface extending across fields of view of the plurality of sensors; an actuating mechanism configured to rotate the housing about the plurality of sensors at a first speed, thereby causing at least a portion of the substance to be expelled from the window surface; and a controller configured to determine, by analyzing one or more images captured by the plurality of sensors using a computer vision software model, whether the window surface is substantially clear of the substance, wherein the actuating mechanism is further configured to change a speed of rotation of the housing to a second speed, which is greater than zero, in response to a determination by the controller that the window surface is substantially clear of the substance. The system can further include a fluid providing mechanism configured to provide fluid to the window surface in response to the plurality of sensors detecting the substance on the window surface, the rotating of the housing causing at least a portion of the cleaning fluid to be expelled from the window surface. For example, changing the speed of rotation of the housing can be further in response to determining that the window surface is substantially clear of the cleaning fluid.

In an example embodiment, the controller can be further configured to determine whether the window surface is in need of cleaning by analyzing one or more other images captured by the plurality of sensors, and the fluid providing mechanism can be configured to provide the fluid to the window surface based on that determination. For example, the actuating mechanism can be further configured to rotate the housing about the plurality of sensors at the first speed by increasing a speed of rotation of the housing to the first speed after the fluid providing mechanism provides the fluid to the window surface. The actuating mechanism can be further configured to increase the speed of rotation to the first speed a predetermined period of time after the fluid providing mechanism provides the fluid to the window surface. For example, the actuating mechanism can be further configured to slow a rate of rotation of the housing prior to the fluid providing mechanism providing the cleaning fluid, in response to the detecting of the substance.

In an example embodiment, the actuating mechanism is configured to rotate the housing about the plurality of sensors at the first speed by changing a speed of rotation of the housing from a third speed to the first speed, the third speed being greater than zero. For example, the third speed can be substantially equal to the second speed. The actuating mechanism can be further configured to rotate the housing at the first speed in response to a determination that the window surface is not substantially clear of the substance. The actuating mechanism can be configured to change the speed of rotation by slowing rotation of the housing to the second speed, the second speed being slower than the first speed. The substance can include any liquid or other material, such as rain.

In an example embodiment, the top surface has a profile that is substantially sloped downward from a center of the top surface towards the window surface. For example, the top surface can comprise a protrusion that extends past the window surface, substantially away from the at least one sensor, the protrusion having a profile with a slope that is substantially similar to a slope of the top surface. In addition, or in the alternative, the top surface can comprise a protrusion that extends past the window surface, substantially away from the at least one sensor, the protrusion extending substantially upward relative to the window surface. In addition, or in the alternative, the top surface can comprise a protrusion that extends past the window surface, substantially away from the at least one sensor and substantially perpendicular to an axis of rotation of the housing.

Embodiments described herein may include one or more networks, which can represent a series of points and/or network elements of interconnected communication paths for receiving and/or transmitting messages (e.g., packets of information) that propagate through the one or more networks. These network elements offer communicative interfaces that facilitate communications between the network elements. A network can include any number of hardware and/or software elements coupled to (and in communication with) each other through a communication medium. Such networks can include, but are not limited to, any local area network (LAN), virtual LAN (VLAN), wide area network (WAN) (e.g., the Internet), software defined WAN (SD-WAN), wireless local area (WLA) access network, wireless wide area (WWA) access network, metropolitan area network (MAN), Intranet, Extranet, virtual private network (VPN), Low Power Network (LPN), Low Power Wide Area Network (LPWAN), Machine to Machine (M2M) network, Internet of Things (IoT) network, Ethernet network/switching system, any other appropriate architecture and/or system that facilitates communications in a network environment, and/or any suitable combination thereof.

Networks through which communications propagate can use any suitable technologies for communications including wireless communications (e.g., <NUM>/<NUM>/nG, IEEE <NUM> (e.g., Wi-Fi®/Wi-Fi6®), IEEE <NUM> (e.g., Worldwide Interoperability for Microwave Access (WiMAX)), Radio-Frequency Identification (RFID), Near Field Communication (NFC), Bluetooth™, mm. wave, Ultra-Wideband (UWB), etc.), and/or wired communications (e.g., T1 lines, T3 lines, digital subscriber lines (DSL), Ethernet, Fibre Channel, etc.). Generally, any suitable means of communications may be used such as electric, sound, light, infrared, and/or radio to facilitate communications through one or more networks in accordance with embodiments herein. Communications, interactions, operations, etc. as discussed for various embodiments described herein may be performed among entities that may directly or indirectly connected utilizing any algorithms, communication protocols, interfaces, etc. (proprietary and/or non-proprietary) that allow for the exchange of data and/or information.

To the extent that embodiments presented herein relate to the storage of data, the embodiments may employ any number of any conventional or other databases, data stores or storage structures (e.g., files, databases, data structures, data or other repositories, etc.) to store information.

Note that in this Specification, references to various features (e.g., elements, structures, nodes, modules, components, engines, logic, steps, operations, functions, characteristics, etc.) included in 'one embodiment', 'example embodiment', 'an embodiment', 'another embodiment', 'certain embodiments', 'some embodiments', 'various embodiments', 'other embodiments', 'alternative embodiment', and the like are intended to mean that any such features are included in one or more embodiments of the present disclosure, but may or may not necessarily be combined in the same embodiments. Note also that a module, engine, client, controller, function, logic or the like as used herein in this Specification, can be inclusive of an executable file comprising instructions that can be understood and processed on a server, computer, processor, machine, compute node, combinations thereof, or the like and may further include library modules loaded during execution, object files, system files, hardware logic, software logic, or any other executable modules.

It is also noted that the operations and steps described with reference to the preceding figures illustrate only some of the possible scenarios that may be executed by one or more entities discussed herein. Some of these operations may be deleted or removed where appropriate, or these steps may be modified or changed considerably without departing from the scope of the presented concepts. In addition, the timing and sequence of these operations may be altered considerably and still achieve the results taught in this disclosure. The preceding operational flows have been offered for purposes of example and discussion. Substantial flexibility is provided by the embodiments in that any suitable arrangements, chronologies, configurations, and timing mechanisms may be provided without departing from the teachings of the discussed concepts.

As used herein, unless expressly stated to the contrary, use of the phrase 'at least one of, 'one or more of, 'and/or', variations thereof, or the like are open-ended expressions that are both conjunctive and disjunctive in operation for any and all possible combination of the associated listed items. For example, each of the expressions 'at least one of X, Y and Z', 'at least one of X, Y or Z', 'one or more of X, Y and Z', 'one or more of X, Y or Z' and 'X, Y and/or Z' can mean any of the following: <NUM>) X, but not Y and not Z; <NUM>) Y, but not X and not Z; <NUM>) Z, but not X and not Y; <NUM>) X and Y, but not Z; <NUM>) X and Z, but not Y; <NUM>) Y and Z, but not X; or <NUM>) X, Y, and Z.

Additionally, unless expressly stated to the contrary, the terms 'first', 'second', 'third', etc., are intended to distinguish the particular nouns they modify (e.g., element, condition, node, module, activity, operation, etc.). Unless expressly stated to the contrary, the use of these terms is not intended to indicate any type of order, rank, importance, temporal sequence, or hierarchy of the modified noun. For example, 'first X' and 'second X' are intended to designate two 'X' elements that are not necessarily limited by any order, rank, importance, temporal sequence, or hierarchy of the two elements. Further as referred to herein, 'at least one of and 'one or more of can be represented using the '(s)' nomenclature (e.g., one or more element(s)).

Claim 1:
A method (<NUM>) comprising:
detecting a substance on a window surface (<NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM>) of a housing (<NUM>, <NUM>, <NUM>), the window surface being disposed substantially within a field of view of a sensor (<NUM>, <NUM>);
providing a cleaning fluid to the window surface in response to detecting the substance on the window surface;
rotating the housing about the sensor, comprising increasing a speed of rotation of the housing to a first speed after providing the cleaning fluid, thereby causing at least a portion of the substance and at least a portion of the cleaning fluid to be expelled from the window surface; and
changing the speed of rotation of the housing to a second speed, which is greater than zero, in response to determining that the window surface is substantially clear of the substance.