Automatic determination of indoor or outdoor environmental conditions of a device
By combining machine learning models with GNSS and multiple sensor data, the problem of inaccurate environmental status detection of computing devices in existing technologies has been solved, enabling fast and accurate indoor and outdoor determination and supporting a variety of application scenarios.
Patent Information
- Application Number
- CN202310634304.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2022-06-13
- Filing Date
- 2023-05-31
- Publication Date
- 2026-01-16
- Estimated Expiration
- 2043-05-31
AI Technical Summary
Existing systems struggle to accurately and quickly determine the status of computing devices in indoor or outdoor environments, especially when the environment changes, leading to a decrease in detection accuracy.
By combining Global Navigation Satellite System (GNSS), sensor data, and machine learning models, the system analyzes various sensor data such as light, temperature, humidity, and radio signals, and uses machine learning model training and curve fitting techniques to determine the environmental status of the equipment in real time.
It enables high-confidence, fast and accurate indoor and outdoor status determination of computing device environments, supports applications such as home automation and regulatory compliance, and improves the reliability of device decision-making.
Smart Images

Figure CN117233694B_ABST
Abstract
Description
BACKGROUND
[0001] Today's wireless devices are capable of performing many tasks that devices in existing computing environments were not capable of performing. Advances in technology have given both fixed and mobile devices the ability to detect their location using a global navigation satellite system (GNSS) or the ability to, for example, directly identify and quantify other phenomena in the local environment in order to customize the device's functionality, such as brightening or dimming a display in response to ambient lighting conditions. However, it is increasingly necessary for devices to make decisions based on environmental states that cannot be directly measured. One example is whether a device is indoors or outdoors, including cases where a device can be physically "inside" a building or some structure but should be considered to be "outside" the environment for certain purposes due to an open atrium ceiling, open windows, open garage doors, and so on. Knowledge of such a state with high confidence can be used to determine, for example, whether a device can transmit data using certain radio bands, where government regulatory agencies have imposed restrictions on whether a device is indoors or outdoors. A car in a garage with the door closed can automatically shut off a gasoline engine to prevent accidental carbon monoxide poisoning, and so on. BRIEF DESCRIPTION OF DRAWINGS
[0002] The present disclosure is described in detail with reference to the following drawings. The drawings provided are for illustrative purposes only and depict only typical or example embodiments that can be implemented according to the present disclosure.
[0003] Figure 1 A computing device for determining environmental conditions of an environment of a device is illustrated in accordance with some examples of the present disclosure.
[0004] Figure 2 Illustrative GNSS RSL measurements are provided.
[0005] Figure 3 A computing device or sensor in an environment is illustrated in accordance with some examples of the present disclosure.
[0006] Figure 4 Environmental sensor data from two different floors in a single building over time is illustrated in accordance with some examples of the present disclosure.
[0007] Figure 5 Environmental sensor data at a second location over time is illustrated in accordance with some examples of the present disclosure.
[0008] Figure 6 Sensor data at a third location over time is illustrated in accordance with some examples of the present disclosure.
[0009] Figure 7 Environmental sensor data over time is illustrated in accordance with some examples of the present disclosure.
[0010] Figure 8 FIG. illustrates a spectral graph characterizing the intensity of different types of illumination sources versus wavelength, in accordance with some examples of the present disclosure.
[0011] Figure 9 FIG. illustrates a process flow for initializing sensor readings, in accordance with some examples of the present disclosure.
[0012] Figure 10 FIG. illustrates a process flow for determining a confidence value over time, in accordance with some examples of the present disclosure.
[0013] Figure 11 is an example computing device that can be used to implement various features of the embodiments described in this disclosure.
[0014] Figure 12 is an example computing device that can be used to implement various features of the embodiments described in this disclosure.
[0015] Figure 13 depicts a block diagram of an example computer system within which various embodiments described herein can be implemented.
[0016] The accompanying drawings are not exhaustive and do not limit the disclosure to the precise form disclosed. DETAILED DESCRIPTION
[0017] Several existing systems attempt to infer a computing device’s indoor or outdoor environment by relying on a combination of device position estimates and / or 2D map data to estimate whether the device’s position corresponds to a position on a map (e.g., an indoor position of a building or other environmental location). For example, these existing systems can utilize sensor data to supplement global navigation satellite system (GNSS) data to determine a computing device’s geopositioning. Some systems can also compare this estimated geopositioning to a 2D map and determine more information about the environment represented in the map. In this way, existing systems can attempt to utilize a combination of GNSS, sensor data, and map data to determine whether a computing device is contained within a building footprint. However, this attempted inference fails to reliably reveal whether the device is actually in an indoor or outdoor environment, for example, when a car is parked in a multi-story ground level ramp with open walls and roof parking or a user is standing inside an open balcony door. There are many scenarios in which such a device should be considered to be outdoors. For example, radio regulations in the United States 6 GHz band explicitly prohibit any form of direct-to-outdoor transmission, specifically including devices that can be physically located within a building footprint but are still directly exposed to outdoor conditions.
[0018] Existing indoor or outdoor environment detection systems become increasingly inaccurate when the computing device is in motion. This can be based on the data processing capabilities of the mobile computing device, the environment sensors take longer to confirm an indoor or outdoor status than geolocation, which can be determined in real-time with modern equipment. For example, using GNSS data when the computing device moves from one environment to another, the position of the computing device can be estimated at a specific point in time with high spatial and temporal accuracy, but environment detection on a mobile platform can not reach the level of statistical confidence available to a stationary device with equivalent sensor capabilities, since sensors important for indoor detection such as temperature, humidity, light intensity, light spectrum signature, and / or broadcast radio signals can take several minutes to hours to reach a high confidence estimate of the environment.
[0019] Embodiments of the present application can deterministically estimate whether the position of a stationary or mobile computing device is within a fully enclosed building (e.g., fully or partially indoors / outdoors). It can be desirable to determine the environment of a stationary or mobile position over a specified time range (e.g., 4, 12, or 24 hours) to reach a minimum level of confidence desired for a given use case (e.g., a 95% confidence score from a trained machine learning model), although specific time and accuracy limits are not required in all embodiments. For the case of a mobile device, a low or moderate level of confidence can be the best confidence that can be expected, with the potential maximum confidence limit inversely proportional to the speed of the device. Since speed itself can be determined with widely available and low-cost sensors, this adjustment to the level of confidence can be calculated through the examples discussed throughout the disclosure compared to the stationary case.
[0020] The present disclosure supports various environments, including environments that are entirely or partially indoors and outdoors. For example, a first set of computing devices and sensors can be entirely placed indoors of a building fixed at a first location, and a second set of computing devices and sensors can be entirely placed outdoors adjacent to a building fixed at a second location. These locations can be inside and outside of a building with movable components, such as a roof (e.g., a professional sports venue that opens and closes based on local weather conditions), sliding doors or walls (e.g., a hangar or warehouse with movable walls to facilitate ingress and egress of vehicles), or other structural types. When the structure is entirely enclosed (e.g., the roof, sliding doors or walls are closed), the computing devices and sensors can detect typical environmental conditions and sensor data associated with a controlled indoor environment. In contrast, when the environmental conditions of the building change (e.g., when the movable roof or sliding doors are opened), the computing devices and sensors can detect an outdoor environment. In these examples, the computing devices and sensors can remain fixed, but the environment around these devices has changed. In these examples, the computing devices and sensors can detect the changed or current environment.
[0021] As defined herein, "entirely indoors" can correspond to computing devices or sensors that are inside a constructed structure. The structure can have walls on all sides, some type of engineered flooring system, and / or a roof structure sufficient to resist most weather conditions. The structure can have doors and windows that are occasionally opened, where the aperture of the opening is small relative to the size of the structure. The doors and windows can be assumed to be generally closed for safety, climate control, or other reasons. It is a widely understood purpose of such a structure to provide a controlled environment for occupants that is significantly different from the surrounding "outdoor" conditions. For this reason, a car parked in a parking structure with a multi-level concrete ramp where the parking structure is open to the environment can not be considered "entirely indoors," even though a computing device or sensor temporarily located inside the parking structure can be contained within the physical footprint of the parking structure as shown in a map or building database.
[0022] An entirely indoor structure can be permanent or temporary. When the structure is temporary, it can be engineered to be generally closed to the outside as described above. As an illustrative example, an entirely indoor structure can correspond to a large, climate-controlled tent. For example, the tent can be used in various situations including to accommodate large crowds during sporting events that are set up by workers and torn down at the end of the event. However, a camping tent can not meet the spirit of being entirely indoors, it can have flimsy walls, frequently open windows or doorways, non-weatherproof breathable fabric, etc., making it difficult to accurately determine the difference in environment with full outdoor conditions.
[0023] As defined herein, "completely or partially outdoors" can correspond to a computing device or sensor that is outside of a constructed and enclosed structure or any location that is not "completely indoors" as defined above. For example, a location within a permanent structure that is directly exposed to outdoor conditions on one or more sides during normal operating hours is "completely outdoors." Illustrative examples can include a car repair shop with roll-up doors that are typically in an "up" position during working hours, an airplane hangar, or a sports stadium skybox that is typically open to the field / stadium / playing field during games (where the stadium itself is open to the environment).
[0024] In some examples, from an algorithmic perspective, any device whose estimated probability of being indoors (including a confidence value) falls below some defined threshold specific to a particular use case can be considered to be outdoors. In some examples, a device whose estimated probability of being outdoors (including a confidence value) is above some defined threshold can be considered to be outdoors regardless of the probability of being indoors.
[0025] Even for these illustrative examples, computing devices and sensors can be "partially indoors or outdoors" in various environments. For example, a computing device can be partially indoors when a roof or large sliding door is partially open. A system (e.g., remote from the environment in which the computing device or sensor is located) can receive sensor data from the computing device or sensor in the environment and can estimate or derive a probability that the computing device or sensor is completely indoors, completely outdoors, or partially indoors or outdoors.
[0026] Based on simple if / then / else threshold comparisons, pattern or signature recognition based on curve fitting or other techniques, linear programming, or trained machine learning (ML) models, the disclosed systems can use sensor data analysis as described throughout the disclosure to identify these and other environments of computing devices. Any of these approaches can determine a confidence value corresponding to the environment of the computing device and determine whether to recalculate the location and confidence value in real-time after the device moves or the environment adjusts (e.g., a roof is moved, a wall is changed, etc.). Data from various sensor types can be generated, including but not limited to radio signal receivers, timers and clocks, pressure, air particulate and trace gas, radiation, inertial, vibrational (e.g., piezoelectric), optical, acoustic, electrical, or magnetic sensors, embedded in or communicatively associated with the computing device or the surrounding environment. In some examples, multiple devices can provide sensor data to a remote device or system to determine the environment of each of the multiple devices. The estimated environment and confidence value can be published to other systems in order to, for example, enable home automation devices or automatically adjust neighboring devices based on the determined environment.
[0027] Technical improvements are realized throughout the disclosure. For example, the disclosed system can more accurately detect the environment of a computing device and sensors, which can create more accurate data processing. Further, use of the more accurate data and environmental determinations can be implemented in external systems to improve home automation tasks, adjust image parameters in security systems, change radio transmissions to comply with applicable rules based on open or closed environments, report patterns in the environment that change over time, or other automation processes that can rely on determining environmental characteristics.
[0028] Figure 1 A computing device for determining an environmental state of a device is illustrated in accordance with some examples of the present disclosure. In computing device 102, a processor 104, memory 105, and machine-readable medium 106 are provided. Computing device 102 can communicate with one or more locations 130 including a set of computing devices and sensors 132 via network 140. In some examples, network 140 is an internal network (e.g., LAN or WAN), public internet, or public cloud computing environment.
[0029] Processor 104 can be one or more central processing units (CPUs), semiconductor-based microprocessors, containers, virtual machines, and / or other hardware devices suitable for retrieval and execution of instructions stored in computer-readable medium 106. Processor 104 can fetch, decode, and execute instructions to control processes or operations for creating and implementing the described analysis algorithm(s) and / or trained ML model(s). Processor 104 can include one or more electronic circuits that include electronic components for performing functionality of one or more instructions, such as a graphics processor unit (GPU), field-programmable gate array (FPGA), application-specific integrated circuit (ASIC), or other electronic circuits, as an alternative or in addition to retrieving and executing instructions.
[0030] Memory 105 can include random access memory (RAM), non-volatile RAM (NVRAM), cache, and / or other dynamic storage devices for storing instructions and information to be executed by processor 104. Memory 105 can also be used to store temporary variables or other intermediate information during execution of instructions to be executed by processor 104. When these instructions are stored in computer-readable medium 106 accessible to processor 104, computing device 102 becomes a special-purpose machine customized to perform the operations specified in the instructions.
[0031] The memory 105 can include read-only memory (ROM) or other static storage devices for storing static information and instructions for the processor 104. The memory 105 can include magnetic disks, optical disks, solid-state drives (SSDs), non-volatile memory express (NVMe), or USB thumb drives (flash drives), among others, for storing information and instructions. In some examples, the information and instructions can be stored in multiple data stores, including a sensor rules data store 118 and a time series data store 120.
[0032] The computer-readable medium 106 can be any electronic, magnetic, optical, or other physical storage device that contains or stores executable instructions. The computer-readable medium 106 can be, for example, an electronically erasable programmable read-only memory (EEPROM), a storage device, an optical disc, and the like. In some embodiments, the computer-readable medium 106 can be a non-transitory storage medium, where the term “non-transitory” does not encompass transitory propagating signals. As described in detail below, the computer-readable medium 106 can be encoded with executable instructions implemented by a plurality of modules, circuits, and engines, including a sensor monitor module 108, a sensor event handler module 110, a reliability value engine 112, a machine learning (ML) engine 114, and an interaction engine 116.
[0033] The sensor monitor module 108 is configured to receive sensor data from one or more computing devices and sensors 132 from different locations 130. The sensor data and corresponding timestamps generated by the sensor data can be stored in the time series data store 120 at the computing device 102 along with the device identifier.
[0034] Various sensor data can be received and used to generate one or more sensor rules stored in the sensor rules data store 118. For example, one rule can be that when a measurement of GNSS received signal level (RSL) equals or is within a certain range of an expected sea level power spectral density of approximately -130 dBm / MHz, a confidence value corresponding to “completely outdoors” is set to be above a defined threshold. In another example, when GNSS RSL is detectable significantly below the expected sea level value, the outdoor probability does not increase, and other data sources can be evaluated to further disambiguate.
[0035] Figure 2 Illustrative GNSS RSL measurements over 24 hours are provided for two receivers, one located outdoors and the other located completely indoors. In this example, the receiver 210 located in an outdoor environment corresponds to approximately -130 dBm / MHz, and the receiver 220 located in an indoor environment corresponds to approximately -160 dBm / MHz. The 30 dB signal power drop that is measurable is caused by attenuation from the building walls and roof.
[0036] In some examples, GNSS RSL measurements can be made in relation to the orbit of the various satellites over time. Patterns of appearance and absence over an orbital arc can be used to infer whether the missing, attenuated, or reflected signals are transient or persistent, and can represent temporary or local obstructions in the environment in which the sensor is located, or more solid ceilings or walls. Since GNSS signals are right-hand circular polarized (RHCP), polarized antennas can be used to determine whether the received signals are line-of-sight (LOS) signals or reflected signals. These RSL measurements can be used whether or not the receiver is able to determine its position.
[0037] In some examples, the brightness and / or color temperature and / or spectral signature of ambient light detected by a computing device or sensor can be related to the environment of the device, as illustrated in FIG. 1 and as described herein. For example, when the detected light is in a different state than expected (e.g., it is dark during the day; it is light at night), then a sensor rule can increase the confidence value that the device is indoors. Similarly, frequent large changes in illumination or sunlight intensity during the time of day that corresponds to daytime human activity can be associated with a rule in which the confidence value associated with the likelihood that the device is indoors can be increased. Figure 8
[0038] In some examples, temperature patterns can be observed over time. For example, temperature patterns can fall within a narrow band consistent with climate control for the comfort of living beings in an enclosed space (e.g., indicative of a fully indoor environment). Conversely, temperature patterns that vary within a wider amplitude in a periodic pattern over a diurnal cycle can be consistent with an outdoor area. If this cyclic pattern matches telemetry (determined by GNSS or otherwise) from an independent temperature gauge station near the device location, then the confidence value associated with an outdoor state can be further increased.
[0039] In some examples, humidity patterns monitored by a computing device or sensor 132 can be used instead of or in conjunction with temperature. Humidity cycles consistent with a climate-controlled environment can be as banded as temperature, while humidity cycles for an outdoor area can be periodic with 24-hour intervals. Humidity levels tend to be inversely proportional to outdoor temperature, with opposite minima and maxima, allowing for a combined rule that can further enhance confidence than either measure alone.
[0040] In some examples, the presence and fluctuation of oxygen and carbon dioxide levels (or other atmospheric gases) can be consistent with an enclosed space or an open space. For example, the complete absence of airborne particulates over a certain diameter (e.g., in microns) in the environment can correspond to a rule that increases the confidence value associated with the presence of an HVAC system in the assessment of the indoor environment. In other examples, the presence of airborne particulates in the environment can correspond to a rule that increases the confidence value associated with the absence of an HVAC system in the assessment of the outdoor environment. Such digital particle size counters can be obtained from sensors embedded in commercial properties to detect this data.
[0041] In some examples, barometric pressure data can correspond to atmospheric pressure that is significantly different from data readings expected in a completely outdoor condition at a particular location. Barometer pressure data can be combined with other data sources to increase the confidence value. For example, repeated measurable pressure changes can be due to mechanical systems (e.g., HVAC) that over time can mean that the computing device or sensor 132 is in a climate-controlled area. Additionally, when combined with other sensor data (e.g., geolocation and terrain models), this pressure data can identify that the computing device or sensor 132 is in a lower basement below the local ground level, or at a much higher elevation than the ground level, which can indicate that the computing device or sensor is located on an upper floor of a building.
[0042] In some examples, the detection of radio signals can be used as sensor data. For example, a regular channel scan according to the IEEE 802 set of local area network technology standards (e.g., Wi-Fi) can only indicate that a certain type of computing device is present. Based on the information signaled in the Wi-Fi beacons, sensor rules can increase the confidence value of a computing device that can be in an indoor or outdoor environment depending on the type of device detected. For example, a 6 GHz band rule requires computing devices to identify in the air whether they are in a state corresponding to a “low power indoor” designation. In another example, if the expected received signal reference power (RSRP) for a macrocellular network for a particular location is known and matches the value measured by the device, it can corroborate an outdoor determination. Various other radio signals can enhance the confidence of a completely outdoor environment, including near field communication protocols or Where observations of a changing set of devices can indicate an open public space. In some examples, the relatively static appearance of no devices and / or a small group of devices can indicate a fully indoor environment and rules can identify as such. Other public RF broadcasts, including RSL of AM / FM radio stations, RSL of broadcast television stations, RSL of low earth orbit satellite internet services, or other commonly detectable radios can also be determined. The presence, absence, or degradation of such signal data can contribute to the confidence value of a computing device known to be indoors or outdoors.
[0043] In some examples, accelerometer data can be used to augment and improve confidence estimates based on other sensor types. For example, if a velocity value exceeds a threshold (e.g., consistent with being in or on a powered vehicle), a confidence value corresponding to a computing device or sensor 132 being fully outdoors can be increased. Alternatively, accelerometer data can detect over time a vibration pattern or signature corresponding to a mode of motion. In some examples, accelerometer data corresponding to motion can trigger a reevaluation and computation of indoor or outdoor status and confidence values. For certain applications and use cases, computing devices located inside a closed and climate-controlled vehicle (e.g., a car or train) can have specific regulatory constraints that exclude certain or all modes of operation. For example, 10,000 feet below operation of certain electronic devices or 6 GHz band rules prohibit use in any type of moving vehicle. For specific use cases like this, accelerometer data can be used to disambiguate explicit environmental signals that can be indoor conditions to avoid false positives.
[0044] In some examples, distance data can be determined from optical (e.g., laser), acoustic, ultrasonic, or other integrated rangefinders capable of measuring distance to a computing device in various directions. Distance can be measured at a compass point, throughout an azimuth angle, and / or vertically to measure wall / floor distance. For example, if horizontal and vertical distance is unobstructed on all sides, a confidence value that a computing device or sensor 132 is fully outdoors can be increased. In another example, if horizontal distance is obstructed on one or more sides (e.g., within 20 meters or less), a confidence value that a computing device or sensor 132 is fully indoors can be increased. In another example, if vertical sensors in an upward and / or downward direction are obstructed, a confidence value that a computing device or sensor 132 is fully indoors can be increased. In another example, if more than two sides are obstructed and one or two sides are unobstructed, a confidence value that a computing device or sensor 132 is fully outdoors (e.g., location 130 can be an airplane hangar, a car garage, a stadium skybox, etc.) can be increased.
[0045] In some examples, compass data can be determined. For example, detection of magnetic bias characteristics of an indoor environment can be compared to baseline values of known local magnetic declination angles.
[0046] In some examples, audio or acoustic (used interchangeably) data can be determined (e.g., from a combined speaker microphone computing device). For example, audio data can identify a frequency response to an impulse signal corresponding to a room shape or size.
[0047] In some examples, radiological data can be determined. For example, detection and determination of alpha, beta, gamma ray, or neutron signatures can be compared to known indoor or outdoor background levels. Deviation between two signatures can increase or decrease a confidence value corresponding to an indoor or outdoor environment.
[0048] In some examples, third party data from third party data repositories 142 can be received at computing device 102 (via network 140) and stored with time series data repository 120. For example, online information sources can store real-time data (e.g., weather data, solar insolation or irradiance, etc.). Third party data can be compared to local sensor readings. Comparison can help reduce a minimum observation period of sensor data with supplemental patterns and additional data over time.
[0049] Figure 2 Additional descriptions of sensor data provided in the disclosure also utilize Figures 4 to 8 to provide.
[0050] All of these and other data discussed in the disclosure can be received and processed by sensor monitoring module 108. For example, sensor monitoring module 108 can receive a minimum amount of sensor data over a minimum sampling time. For example, certain sensor types can be able to make an initial determination of whether a computing device or sensor 132 is outdoors over a very short timescale (e.g., perhaps minutes or even seconds). In another example, when a GNSS-equipped device is unable to recover any signals for several minutes, then the computing device can not be “out.” In general, a minimum threshold of sensor data can be captured to identify patterns over time (e.g., diurnal, weekly, monthly, etc.). In these examples, an initial confidence value can be improved over time by some predictable amount.
[0051] The sensor event handler module 110 is configured to receive events from the computing device or sensor 132 and determine one or more actions to take in response to the received event. For example, the action can be to re-evaluate the predicted environment of the computing device or sensor 132 (e.g., based on movement, time delay between two sensor readings, automatic trigger to re-run the ML model, etc.). The criteria used to confirm the indoor or outdoor status of the computing device or sensor 132 can be different from and / or independent of those used to determine that such status can have changed and that a re-evaluation is necessary.
[0052] In addition to updated motion data, gyroscope data, or GNSS position data, other data types of sensor events can be used to trigger a re-evaluation of the predicted environment of the computing device or sensor 132. For example, power loss or power cycling of the computing device or sensor 132 can trigger a recalculation. In another example, when GNSS RSL, sunlight, or compass data are all undetectable, the computing device or sensor 132 can be entirely indoors with a high confidence value. In some examples, patterns in the data can also trigger a recalculation of the predicted environment of the computing device or sensor 132.
[0053] The reliability value engine 112 is configured to receive or determine a reliability value associated with the computing device or sensor 132. When determining the value, the sensor data received over time can be tracked. When the amount of time exceeds a threshold value, a particular sensor can correspond to a first reliability value. Over time, as the sensor provides additional data, the reliability value of the sensor can increase.
[0054] In some examples, the reliability value engine 112 can analyze the sensor signal. For example, a uniform sensor signal can have a constant amplitude (e.g., plus or minus about 1-2% of the value within a local geographic area). These values can be measured in locations such as airport weather stations to help extrapolate to other areas (e.g., using GNSS signals, local temperature, local humidity, local sunlight, barometric pressure, etc. within 100 square kilometers).
[0055] In some examples of the present disclosure, a machine learning (ML) model can be trained and implemented, although this is not necessary in every embodiment. When using a ML model, the machine learning (ML) engine 114 is configured to analyze the sensor data to determine patterns indicative of environmental conditions without training a machine learning model. In every embodiment described herein, the use of a trained ML model is not required.
[0056] The machine learning (ML) engine 114 is also configured to train the ML model. For example, sensor data can be received to detect a particular environment corresponding to being completely indoors, completely outdoors, or partially indoors / outdoors. Pairs of sensor data and environments can be provided to the ML model during a training process to help detect similar environment data in the future.
[0057] The machine learning (ML) engine 114 can determine a confidence and value(s) associated with the output of the ML model (e.g., a likelihood that the computing device and sensor 132 is completely or partially indoors / outdoors). For example, a confidence value can identify that there is a ninety percent likelihood that the computing device or sensor 132A at the first location 130A and providing sensor data is located in an environment that is partially outdoors (e.g., a movable roof is open on a stadium).
[0058] In some examples, a confidence value corresponding to a likelihood that a computing device or sensor 132 is in an indoor or outdoor environment can be increased or decreased based on a reliability value of a data source that generated the sensor data (e.g., corresponding to a source of the sensor data at the sensor or computing device 132). The confidence value associated with an environment determination can be adjusted to rely more or less on that particular data source. In some examples, the weight and / or reliability values can be decided through an iterative training process for the ML model (e.g., identifying a deterministic relationship between a particular sensor and a determined environment).
[0059] The ML engine 114 can be configured to perform a supervised ML model using linear or non-linear functions. For example, a trained ML model can include a decision tree that accepts one or more input features associated with sensor data to provide a confidence score relating the input to an output (e.g., with respect to a computing device or sensor 132 being located in a particular environment).
[0060] In some examples, the ML model can include a neural network that measures relationships between dependent variables (e.g., a logic or action implemented by a device) and independent variables (e.g., sensor data) by using multiple layers of processing elements that determine non-linear relationships and interactions between the independent and dependent variables.
[0061] In some examples, the ML model can include a deep learning neural network composed of more than one layer of processing elements between an input layer and an output layer, or a convolutional neural network in which successive layers of processing elements contain a particular hierarchical pattern of connections to a previous layer.
[0062] The ML engine 114 can determine an output of the ML model, where the output estimates a likelihood that the computing device or sensor 132 is indoors or outdoors. For example, the confidence value can be compared to one or more threshold confidence values for the device being completely indoors (e.g., over 90%) without reliance on the reliability of the data generating device or sensor. When the determined confidence value exceeds a first threshold confidence value, the computing device can be determined to be completely indoors. When the confidence value is within a range of decreasing threshold confidence values (e.g., between 10% and 90%), the computing device can be determined to be partially indoors or outdoors (and any associated reliability values for individual sensors can be more important to the algorithm or ML model). When the confidence value is less than a second threshold confidence value (e.g., below 10%), the computing device can be determined to be completely outdoors. In other examples, any computing device for which the estimated confidence value is greater than a threshold confidence value can be considered to be outdoors regardless of the indoor probability. These values and ranges are provided for illustrative purposes only and should not limit the disclosure.
[0063] In some examples, the threshold confidence values or value ranges can be adjusted based on external systems. For example, different applications and use cases can distinguish between indoor and outdoor environments with the environments being defined more narrowly or more broadly, or the confidence values can need to be higher or lower. The ML engine 114 can adjust these values by establishing application-specific profiles against which inputs are evaluated in determining and reporting indoor or outdoor status.
[0064] In some examples, the determined confidence value can be increased when a number of computing devices or sensors 132 are combined to provide multiple sources of sensor data over a larger area. This can improve the probability of detection with more sensors, computing devices, and / or external databases. For example, a computing device with two or more sensors (e.g., GNSS, gyroscope, and microphone) can be more certain of its indoor / outdoor confidence than a device with only one sensor (e.g., GNSS). Likewise, a computing device with a rough geo-location awareness and internet access can further improve its confidence and reliability estimates by comparing data from one or more sensors with access to more data tagged via third-party data store(s) 142.
[0065] The ML engine 114 can transmit the output, environmental status, and confidence value to external systems, including operating system software, user applications, and other electronic programs. In some examples, the transmission can use software development kit (SDK) application programming interface (API) calls, data registers, network broadcasts or multicasts, or other technical means.
[0066] The interaction engine 116 is configured to trigger actions in external systems at one or more locations 130. For example, the action can be selected based on a determination that the computing device is (e.g., partially or completely) indoors or outdoors and, in certain examples, based on a corresponding confidence value determined by the trained ML model.
[0067] Various actions in external systems are also described. For example, an action in an external system can activate lighting, water features, or other automation workflows corresponding to a home automation system located at the first location 130A. The characteristics of the sensor data can identify when the computing device 132 moves from home with a user to the outside, where the computing device 102 can identify that the user has moved from a completely indoor environment to a completely outdoor environment. In accordance with this movement, the action can correspond to activating lighting in an outdoor environment in which the computing device 102 is in communication.
[0068] In another example, an action in an external system can automatically adjust image parameters associated with a security camera (e.g., turn on a spotlight in a low light environment, etc.). In another example, an action in an external system can change radio transmission settings, open or close doors and windows, start or stop a particulate filter in a ventilation system. In another example, a pattern of being completely or partially indoors or outdoors detected in an external system can be tracked and used to generate a report of environmental patterns for historical reporting and analysis purposes. The report can be transmitted to an administrative user or one or more computing devices in the external system. In each of these actions, the computing device performing the action can be separate from the computing device and sensor 132A located at the first location 130A that provided the initial sensor data.
[0069] In another example, in a regulatory compliance setting, certain regulatory or market requirements can limit the operation of certain types of computing devices. This can include limiting the operation of computing devices 132 in certain modes or requiring them to follow certain regulations or rules depending on whether the computing device 132 is located in an indoor or outdoor environment. For example, 6 GHz and other frequency bands place different and specific limits on radio transmission characteristics based on the indoor / outdoor status of the device.
[0070] In another example, an external system can be associated with a user’s personal health. A computing device or sensor 132 sourcing sensor data can provide the sensor data to a smartphone application that seeks to track environmental characteristics over time. This can include exposure to untreated air in the environment or measuring particulate exposure. The sensor data can not be detectable simply by knowing a person’s physical geolocation (e.g., latitude, longitude, and altitude), but can rely on other characteristics of an indoor or outdoor environment as described in this disclosure.
[0071] In another example, the external system can include enterprise device operations. For devices that can be deployed indoors or outdoors, the interface and other user experiences can be adjusted based on the environment. For example, a high definition (HD) security camera can automatically adjust image parameters to correspond to an outdoor environment. In another example, an audio microphone or sensor can automatically select a particular acoustic configuration based on a determination of environmental characteristics.
[0072] In some examples, the computing device 102 can communicate with a plurality of other computing devices connected to a public computing system, either directly or through an application programming interface (API) 117. For example, the API 117 can facilitate publishing of estimated environments and providing confidence values to other systems by providing a set of functions and procedures that allow for creating applications that access features or data of the computing device 102. The API 117 can be used to, for example, enable a home automation device or automatically adjust a neighboring device based on a determined environment. These and other examples discussed throughout the application can be distinct from a public data network and separate from any publicly accessible database. In other words, the illustrative computing environment can not be limited to a single device that makes indoor / outdoor determinations on its own, but can be implemented as a plurality of devices, each having its own sensors, sharing the sensor data with each other or with a central computer system that determines the environment of one or more locations of other computing devices.
[0073] The illustrative example is shown together with Figure 1 where the computing device 102 can communicate with one or more computing devices or sensors 132 at different locations 120 via a network 140. The network 140 can include data devices connected to a host computer or an Internet Service Provider (ISP) operated network and / or an internal network at a cloud computing provider through a local area network. The ISP in turn provides data communication services through a global packet data communication network (e.g., the “Internet”) to transfer data packets between the computing device 102 and the computing devices or sensors 132. The network 140 can use electrical, electromagnetic, or optical signals that carry digital data streams.
[0074] The plurality of locations 130 can include indoor or outdoor environments. For example, the computing device and sensor 132A can be placed entirely indoors of a building that is statically located at a first location 130A and the computing device and sensor 132B can be placed entirely outdoors of a building that is statically located at a second location 130B.
[0075] The present disclosure supports a variety of environments. For example, the first location 130A can be inside a building with a movable roof, including a professional sports venue. The computing devices and sensors 132A can be technically located indoors of the professional sports venue (e.g., physically located inside the building footprint), however experience different environmental conditions when the movable roof is open than when the movable roof is closed. The computing devices and sensors 132A can remain fixed inside the first location 130A, but can detect that they are partially outdoors or partially indoors when the movable roof is open, and can detect that they are entirely indoors when the movable roof is closed. In contrast, the computing devices and sensors at the second location 130B can remain outside of the professional sports venue, and can not detect changes in their environment when the movable roof is open or closed.
[0076] The computing devices and sensors 132 can include radio receivers, timers and clocks, pressure, air particulate and trace gas, radiation, inertial, vibration (e.g., piezoelectric), optical, acoustic, electrical, or magnetic sensors. The computing devices and sensors 132 can be embedded in a computing device or in the surrounding environment, including fixed or mobile, or battery-powered or dependent on external power. Individually or in combination with other devices embedded within a computing device or in one or more other computing devices whose indoor / outdoor status can be known or unknown, each of these computing devices and sensors 132 can contribute to determining the indoor / outdoor status of the device and an associated confidence value.
[0077] The computing devices and sensors 132 can generate various sensor data (e.g., based on the type of sensor). The sensor data can be used individually or in combination with other local or remote sensors or indicators to identify environmental states, correlations, or concurrent or sequential patterns in reported or observed values. For example, the sensor data can include an observation of an absence of expected data (e.g., a negative signal), data crossing a single or multiple phase threshold, an observation of data changing over time or an aggregated state pattern over a repeating interval (e.g., hours, days, months, years), or an observation of a change in data suggesting that the device can have moved from a location where its indoor / outdoor status was previously confirmed.
[0078] The sensor data can be synthesized into one or more probabilities expressed as values with associated confidence levels using the computing device 102. When implementing an ML model in embodiments of the present disclosure, the ML model can assign weights to each type of sensor data input that are related and / or convolved in some way. In some examples, the determination of the environment can be an estimate that the sensor or computing device 132 is in a partially indoor / outdoor environment. Different actions can be triggered based on the determined confidence value and the predicted environment.
[0079] Figure 3 illustrates one possible instance of a concept machine in accordance with some examples of the disclosure. Various sensors are shown for illustrative purposes, but should not limit particular embodiments of the disclosure. When machine learning and processing are performed remotely from the sensors, the computing device 300 can be similar to the computing device 102 illustrated in Figure 1 , or when machine learning and / or processing are performed on a device that also collects sensor data, the computing device 300 can be similar to the computing device or sensors 132 illustrated in Figure 1 . In some examples, the computing device performing the analysis and determinations of the environment of the computing device and sensors 132 illustrated in Figure 1 may take the form of the computing device 102 illustrated in Figure 1 or the computing device 300 in Figure 1 . Figure 3 .
[0080] In Figure 3 , the computing device 300 includes a sensor monitor and event handler at block 1, a probability estimation engine at block 2, a sensor rules database at block 3, a time series database at block 4, a network interface at block 5A, a public data network at block 5B, a GNSS receiver at block 6A, a GNSS ephemeris public database at block 6B, a temperature sensor at block 7A, a relative humidity sensor at block 7B, a barometric pressure sensor at block 7C, a weather public database at block 7D, a sunshine sensor at block 8A, a sunshine public database at block 8B, a sensing radio ensemble for online monitoring at block 9A, a radio signal signature public database at block 9B, a master device radio ensemble at blocks 9C / 9D, other public datasets at block 10, an operating system on the device at block 11 (e.g., it can include machine readable instructions to consume indoor / outdoor status and publish it to applications), and other application(s) at block 12 (e.g., it can consume indoor / outdoor status directly or via the OS).
[0081] Figure 3 The computing device 300 in Figure 1 may be associated with the computing device 102 in Figure 1 by various means. For example, the sensor monitor module 108 and the sensor event handler module 110 in Figure 3 may be implemented as the sensor monitor and event handler at block 1 in Figure 1 The reliability value engine 112, the machine learning (ML) engine 114, and the interaction engine 116 in Figure 3 may be implemented as the probability estimation engine at block 2 in .Figure 1 The sensor rule data repository 118 in the system can be implemented as... Figure 3 The sensor rule database at block 3. Figure 1 The time series data repository 120 in the system can be implemented as... Figure 3 The time series database at block 4 in the database. Figure 1 Network 140 in the middle can be implemented as in Figure 3 The public data network at block 5B. Figure 1 The computing device or sensor 132 in the middle can be implemented as... Figure 3 The GNSS receiver at block 6A, the temperature sensor at block 7A, the relative humidity sensor at block 7B, the barometric pressure sensor at block 7C, the solar radiation sensor at block 8A, and one or more of the sensing radio complexes for online monitoring at block 9A. Figure 1 The third-party data repository 142 in the middle can be implemented as... Figure 3 One or more of the following public datasets: the GNSS ephemeris public database at block 6B, the weather public database at block 7D, the sunshine public database at block 8B, the radio signal markers public database at block 9B, and other public datasets at block 10. Figure 3 The processor 104, memory 105, and machine-readable medium 106 can be implemented in Figure 1 The operating system on the device at block 11 and (multiple) other applications at block 12.
[0082] Figure 2 The computing device 300 or Figures 4 to 8 The computing device 102 can receive data from various sensors. For illustrative purposes, in Figure 1 and Figure 2 It provides various sensor data, as well as previously used... Figure 7 This has been discussed. Illustrative examples can help illustrate the impact of indoor and outdoor environmental measurements on sensor data over time. Data (e.g., high-confidence estimates of indoor and outdoor conditions) may correspond to deviations in a predictable and easily identifiable manner across different time periods (e.g., between 12 hours and no more than 24 hours, or a diurnal cycle). These can be translated into identifiable data labels. In some examples, 4–6 hours may be sufficient for an algorithm to form a clear prediction of indoor or outdoor conditions, especially if multiple such sensor feeds are available. As an illustrative example, some signals can reach 95% confidence within half a diurnal cycle, and continued observation for more than 24 hours can further improve the confidence level.
[0083] Compared to its outdoor form, when observed locally indoors, sensor signals may undergo various types of changes, including, for example, amplitude discontinuity loss, amplitude striping, and time-domain striping.
[0084] One type of environmental impact is amplitude discontinuity loss. For certain signal types, such as RF transmissions or solar radiation, buildings or other structures can significantly reduce or completely block the signal. This discontinuity is generally negative, meaning that the amplitude of the signal indoors may be less than the amplitude of the signal measured outdoors.
[0085] For example, frequency-dependent RF building entrance loss can correspond to a range of structure types and can be experienced as a sudden reduction, such as that measured on the inside of the structure's walls. In some examples, other signals (e.g., acoustic signals or heat) may originate locally and dissipate more quickly in an unenclosed environment (e.g., partially indoors with open ceilings or walls, or partially outdoors with thin tent walls). This effect on the interior of the structure's walls may be typical of signals originating from a larger environment or other local outdoor sources. There may be other signals (such as acoustic signals or heat) that may originate locally and dissipate more quickly in an unenclosed environment. This attenuation effect may be less pronounced at lower frequencies than at higher frequencies. Figure 7 As illustrated, GNSS, AM, FM, or television signals may experience loss due to discontinuities. In the visible spectrum, sunlight may be completely blocked by opaque materials. For glass windows, overall intensity may be attenuated, and this attenuation may be enhanced at certain wavelengths through design (such as blocking ultraviolet light).
[0086] Another type of environmental impact is amplitude banding, such as... Figures 4 to 6 The colored horizontal box in the diagram illustrates this. For example, a fully enclosed building can provide a controlled environment for the convenience and productivity of its inhabitants. Therefore, when measured indoors, signals that might fluctuate significantly outdoors may be confined to a fairly narrow frequency band. Temperature and relative humidity are some examples.
[0087] Amplitude striped signals may differ from discontinuous loss signals in several ways. For example, signals may be amplified rather than attenuated indoors, such as in HVAC systems that raise the temperature on cold days. Secondly, depending on the function of the area, amplitude jitter may be confined to a narrow band. Some examples include: indoor temperatures for humans (e.g., 65–72 degrees Celsius and relative humidity between 30–60%), refrigerated storage (e.g., 35–55 degrees Celsius and relative humidity between 60–95%, depending on the item), and frozen storage (e.g., 14–32 degrees Celsius with high relative humidity between 90–95%). Compared to outdoor signals (whose values typically “float” or are not bound by these ranges), “striped” values may mean that the measurement falls within a specific expected subrange. The precise stripe may differ for each building, but its minimum, maximum, and / or median values can be discovered algorithmically (e.g., over a period of time such as several days of observation).
[0088] Another type of environmental impact is temporal striping, which is also caused by... Figure 4 The diagram is illustrated by vertical gray boxes. For example, commercial and residential buildings may have predictable occupancy schedules, which in turn result in easily identifiable markers of how sensor signals vary over culturally defined time intervals (e.g., across a 24-hour cycle or a 5-day work week). Residential buildings may be occupied from late afternoon to early morning, while commercial buildings may support loosely or strictly defined work shifts. These recurring patterns can form stripes in the time domain.
[0089] In some examples, certain signals may also exhibit weekly and seasonal striping. For instance, in specific countries, commercial real estate may typically be vacant on any day considered a “weekend,” while residential real estate is heavily occupied on those days. On an annual basis, some signal patterns vary with the time of year, such as solar irradiance, whose amplitude, start time, peak time, and duration differ significantly in each hemisphere between winter and summer. Both of these long-term measurements can provide additional certainty for indoor / outdoor estimation confidence levels.
[0090] Figure 6 The illustration shows examples of sensor data over time at a commercial office location, according to some examples of this disclosure. Various sensor data are illustrated, including... Figure 4 The absolute temperature data 410 and relative humidity data 420 are as follows Figure 5 The atmospheric pressure is 610, the outdoor humidity and temperature are 620, and the solar radiation and light intensity are 630.
[0091] Various sensor locations are illustrated in these graphs. For example, an indoor sensor location that generates first sensor data 430 (illustrated as temperature sensor data 430A and relative humidity data 430B) is located at the southeast corner inside a building. A second sensor location that generates second sensor data 440 (illustrated as temperature sensor data 440A and relative humidity data 440B) is located outside the same building.
[0092] In Figure 7 In these illustrations, sensor data determined by a computing device or sensor located outside (e.g., the second sensor location that generates second sensor data 440) can be characterized by patterns that repeat daily, monthly, and yearly. The magnitude of these changes (e.g., 40° temperature change or 50% relative humidity change) and their rate of change and the time at which peaks and troughs occur can be used to construct rule or program pattern matching algorithms. In other words, the ML model rules associated with outdoor locations can expect to be characterized by similar patterns that repeat on a time-dependent basis. The rules can be stored in the sensor rules data store 118.
[0093] In some examples, sensor data determined by computing devices or sensors located inside (e.g., the first and second sensor locations that generate first sensor data 430 and second sensor data 440, respectively) can also be characterized by patterns. For example, the sensor data can be relatively stable values in terms of relative magnitude and time of day that reflect both magnitude and time striping. The absolute magnitude of the mean value properties can also correspond to detectable patterns. Certain time-based patterns can be characteristics of indoor environments, such as a predictable warm / cool cycle on weekdays that is absent or not as pronounced on weekends.
[0094] Figure 7 Environmental sensor data over a longer period of time is illustrated in accordance with some examples of the present disclosure. In this illustration, periodic signals are collected and plotted. A first illustration 510 shows a cyclic pattern comparing indoor and outdoor temperatures, and a second illustration 520 shows a zoomed view of the same data illustrated in example 510, which reveals a clear cyclic pattern comparing indoor temperatures at different indoor locations 530 and 540. An outdoor location 550 shows actual local temperatures measured by a local weather station collected through a public internet database (e.g., third party data store 142).
[0095] In some examples, this type of sensor feed varies periodically over a period of time (e.g., 24 hours). Each cycle can be different in magnitude and overall shape from the previous cycle, and the pattern over a period of time can be similar. The periodic signal can vary in any value, including negative values, depending on the particular measurement system and units in use.
[0096] In the illustrated plots 510 and 520, the occupancy status of different floors affects the data. For example, the first facade plot 530 can be occupied and have an HVAC system with a target temperature of 73 degrees. The more rapid cycling of the data line can correspond to the HVAC system cooling the floor back to that value, as long as it is more than about 1 degree out of that range. The second facade plot 540 shows an unoccupied floor of the same building and has a relaxed target temperature of about 71 degrees. The HVAC behavior on that floor is different for energy savings, as it is not occupied and thus will not be actively heated or cooled.
[0097] The second plot 520, zoomed in on the Y axis, reveals a clear cycle pattern (e.g., about 6 cycles per day, each cycle about 4 hours), which is not as apparent in the wider view of 510. Each sensor in the first facade plot 530 and the second facade plot 540 can correspond to a variance of 3% on either side of the mean, which can correspond to a narrow float marker. The third environment 550, collected from a fully external sensor, can correspond to a wide float marker, as there is a large amount of variation in the environment.
[0098] Another type of environmental impact is amplitude striping, as illustrated by the colored horizontal bars in Figure 6 For example, a fully enclosed building can provide a controlled environment for the convenience and productivity of the people living inside. Thus, certain signals that can appear to swing widely outside can be limited to a fairly narrow band when measured indoors. Temperature and relative humidity are some examples.
[0099] Amplitude striping signals can be different from discontinuity loss signals in some ways. For example, the signal can be amplified indoors rather than attenuated, such as an HVAC system raising the temperature on a cold day. Second, the amplitude of the swing can be limited to a narrow band, depending on the function of the area. Some examples include: indoor temperature for humans (e.g., 65-72 degrees and relative humidity between 30-60%), refrigerated storage (e.g., 35-55 degrees) and relative humidity (e.g., between 60-95%, depending on the items), and frozen storage (e.g., 14-32 degrees with high relative humidity between 90-95%). The "striped" value can mean that the measurement is within a particular expected sub-range, as compared to an outdoor signal, which values generally "float" or are not bound by these range values. The exact striping for each building can be different, but can be discovered algorithmically to have a minimum, maximum, and / or median value (e.g., over an observation period such as a few days).
[0100] Another type of environmental impact is time-domain striping, which is also illustrated by the colored horizontal bars in Figure 1The vertical gray box plot in FIG. 6 illustrates a repeating pattern of sensor data. For example, commercial and residential buildings can have predictable occupancy schedules, which in turn can result in easily discernible markers of how sensor signals vary over culturally determined time intervals (e.g., across a 24-hour period or a 5-day work week). Residential buildings can be occupied from late afternoon to early morning, while commercial buildings can support loosely or rigidly defined work shifts. These repeating patterns can form bands in the time domain.
[0101] In some examples, there can also be weekly and seasonal banding of some signals. For example, in certain countries, commercial properties are typically vacant on any day considered a “weekend,” while conversely, residential properties are heavily occupied on these days. On a yearly basis, some signal patterns vary with time of year, such as solar irradiance, which varies greatly in amplitude, start time, peak time, and duration between winter and summer in each hemisphere. Both of these long-term measurements can provide additional certainty for indoor / outdoor estimation confidence.
[0102] Figure 1 FIG. 6 illustrates sensor data corresponding to a relevant moving correlation of discrete values. In this illustration, barometric pressure data 610, outdoor humidity and temperature data 620, and sunlight and illumination data 630 are provided over time. In these illustrations, note that the amplitude changes of temperature and relative humidity (in example 620) have opposite phases, even though each conforms to a diurnal pattern. Figure 1 The computing device 102 in FIG. 1 (e.g., via ML model 114) can confirm a higher confidence value or probability that a sensor is indoors or outdoors by identifying multiple markers that behave in an expected way for a particular value (even without any other data).
[0103] In some examples, sensor data can correspond to uncorrelated value movement. For example, indoor and outdoor values can be substantially uncorrelated. Figure 1 The computing device 102 in FIG. 1 (e.g., via ML model 114) can initiate one or more data lookups of expected weather conditions in its area, and will be able to recognize such a discrepancy between the environmental conditions determined by the computing device or sensor 132 and the environmental conditions in the database. Figure 8 The computing device 102 in FIG. 1 (e.g., via sensor monitoring module 108) can compare two sources of sensor data and determine that the markers of the two values do not match, or initiate a numerical subtraction to create a new synthetic value that reflects the difference comparison. In some examples, the difference value can have its own data markers, which can be meaningful to indoor / outdoor analysis.
[0104] In some examples, the sensor data can correspond to a computing device or sensor 132 geographic location to query third party datasets for location comparisons. For example, a computing device with internet access can be able to determine its location to a very rough level of accuracy (e.g., to the county or zip code level) and can query multiple datasets to assist in the analysis process. Publically available weather station (WX) data (e.g., third sensor location generating third sensor data 640) can only be available at locally dense station locations and / or at the nearest airport.
[0105] In some examples, when a threshold amount of sensor data is received (e.g., three consecutive days), similarities and differences between data sources and data types can be determined. In this illustration, barometric pressure (BP) is collected and plotted at illustration 610, which shows these similarities and differences over time.
[0106] When barometric pressure or other additional sensor data is incorporated with the confidence analysis, a computing device or sensor can be detected based on a location above ground level corresponding to a floor location in a building. In some locations, air pressure drops at a rate of about 0.011 inches of mercury per 10 inches, which can be detected by the difference between sensor locations at different floors of a building. When the floor height is detected, Figure 2 The computing device 102 in the building 102 (e.g., via the ML model 114) can correlate the location above ground level to correspond to a higher or lower confidence value that the location is entirely indoors (e.g., reducing the likelihood that a common mid-rise or high-rise building type is outdoors).
[0107] In example 630, one or more sensors can include a light or sunshine meter and generate sunlight or sunshine data. As shown by first sensor data 640, the sensor can detect solar irradiance values that vary based on whether it is a sunny or cloudy day, as well as an assumed indoor value using the amplitude of ambient light at the sensor. As with temperature readings, the shape of the curve measured over a period of time (e.g., 24 hours per day or per month) can be determined, where a reliability value for a particular sensor (e.g., via the reliability value engine 112) or a confidence value from an ML model (e.g., via the ML model 114) increases over time.
[0108] Actual sunlight can be plotted over a predetermined schedule (e.g., by the hour). For contrast in example 630, a hypothetical office with second sensor 650 is shown with employees arriving at 6:30 AM and leaving at 6:30 PM, with a constant amplitude. This most likely corresponds to an indoor environment.
[0109] Other sensors can be implemented for similar conditions. For example, a sensor capable of analyzing the color temperature or spectral signature of light can distinguish between natural sunlight and various types of artificial indoor light, such as Figure 8 illustrated in FIG. 6.
[0110] In some examples, uniformity and attenuation properties can apply to indoor conditions, but they mean different things. For example, a uniform indoor measurement can be a good indicator of a human-centric process, such as temperature or humidity being striped in both amplitude and time. Such a stripe should be roughly constant in a given facility with a single owner. In contrast, certain signals that can be uniform outside the building (e.g., GNSS L1 / L5 signal power or solar irradiance) can attenuate indoors as distance from the exterior wall increases. Both indoor uniform signals and attenuating signals can be algorithmically meaningful techniques to help identify the environment of a device.
[0111] For indoor environments, there can not be a sensor signal that can definitively confirm the indoor state in a single reading or a few minutes of time. For example, as Figure 9 illustrated in FIG. 6, a GNSS L1 or L5 signal that is 20 dB below the outdoor uniform level can be the result of building envelope attenuation, but it can also be caused by other factors. A spectral or color temperature reading strongly indicative of artificial lighting does not confirm that the device is indoors by itself. Outdoor spectra do not necessarily guarantee that a person is outdoors either, as there are so-called “full-spectrum” indoor lights. With Figure 1 illustrative examples of sensor data from artificial lighting are provided.
[0112] Figure 10 A process flow for initializing sensor readings is illustrated in accordance with some examples of the present disclosure. Figure 1 The computing device 102 illustrated in FIG. 6 can implement the steps described herein. In some examples, data collection can include sensor data from computing devices capable of registering in a network.
[0113] At block 910, the computing devices or sensors 132 can power on. In some examples, the computing device 102 can transmit a signal to remotely turn on the computing devices or sensors 132. In other examples, the computing devices or sensors 132 can turn on at a predetermined time or manually.
[0114] In some examples, each of the computing devices or sensors 132 can be weighted from power on based on a manufacturer profile of the device. This profile can also help provide specific indoor or outdoor determination rules. A specific combination of sensor types, sensor quality, or other factors can increase or decrease the probability weight of the device.
[0115] At block 915, the computing device 102 can determine the location (e.g., geographic location) of the device and / or obtain the local date / time of the device.
[0116] At block 920, the computing device 102 can determine available sensors for indoor or outdoor detection. In some examples, the geographic location of the device and / or the local date / time of the device can be provided as input parameters to determine a confidence value associated with the indoor or outdoor determination.
[0117] At block 930, the computing device 102 can set up a date / time query schedule with the operating system event manager.
[0118] At block 940, the computing device 102 can read previous detection state probability bins and / or initialize the probability bins.
[0119] At block 950, the computing device 102 can initiate a process to handle asynchronous sensor triggers or state changes.
[0120] Figure 11 FIGURE 1 illustrates a process flow for determining a confidence value over time, according to some examples of the present disclosure. In some examples, the confidence value can be determined without using a reliability value. Figure 11 The computing device 102 illustrated in FIGURE 1 can implement the steps described herein in order to, for example, implement a process based on discrete sensor triggers.
[0121] In some examples, the values of a single or multiple sensors can be compared to expected values. The expected values can be set by known correlations, historical data, data from a reference station or database, or other sources. If a predetermined threshold is exceeded or the confidence value is increased or decreased, the system can implement additional data measurements. In some examples, data measurements can also be triggered periodically, or when certain values are expected to increase or decrease the confidence level by facilitating a comparison to expected values at those times or under those conditions.
[0122] At block 1010, the computing device 102 can receive a trigger. For example, the trigger can include a time or date schedule, a sensor activation or state change, or a programmed call.
[0123] At block 1020, the computing device 102 can initiate collection of data from sensors based on the trigger.
[0124] At block 1030, the computing device 102 can read sensor data, states, or other information.
[0125] At block 1040, the computing device 102 can store the timestamp sensor data in a time series database (TSDB), including the time series data store 120. The computing device 102 can store various sensor log data in the TSDB.
[0126] At block 1050, the computing device 102 can run sensor-specific indoor or outdoor weight assessments for instantaneous readings.
[0127] At block 1060, the computing device 102 can update the probability bins according to the instantaneous readings.
[0128] At block 1070, the computing device 102 can run sensor-specific indoor or outdoor weight assessments for time series readings.
[0129] At block 1080, the computing device 102 can update the probability bins according to the time series readings.
[0130] In some examples, the periodicity can vary based on a feedback loop, time of day, day of week, or other factors that can continuously update the indoor or outdoor probability bins over different time periods (e.g., 1 minute, 5 minutes, 30 minutes, 60 minutes, 4 hours, 12 hours, 24 hours, 7 days).
[0131] In some examples, the computing device 102 can apply all sensor rules and weights for all sensor values to produce a cumulative indoor or outdoor state determination in each bin.
[0132] In some examples, the computing device 102 can issue a request for additional sensor data or measurements of specific sensors to disambiguate (e.g., based on how the computing device 102 is performing to determine).
[0133] In some examples, the computing device 102 can implement asynchronous and trigger-based (e.g., including predetermined readings) determinations of indoor or outdoor environments. Each trigger event can end with a “refresh” of the probability bins. This can mean that each trigger dispatch adjusts the relative weights of each bin based on new information, rather than absolute values in each bin. As an example illustration, a “high probability outdoor” bin can adjust higher or lower in each iteration loop until a maximum or minimum value is reached. This process can not require a carefully designed forest of if-then-else nests in machine executable instructions to try to capture all sensor combinations and values. Each trigger can adjust to changing environmental characteristics as needed. The ML model can gradually converge over time to a set of stable bins with more or less no changes.
[0134] It should be noted that the terms "optimize," "optimal," and the like, as used herein, can be used in the sense of achieving or attaining the most effective or perfect performance possible. However, as will be recognized by one of ordinary skill in the art upon reading the present document, perfect performance can not always be achievable. Thus, these terms can also encompass achieving or attaining the best or most effective or practical performance possible under a given set of circumstances, or achieving or attaining better performance than can be achieved with other settings or parameters.
[0135] Figure 11 FIGURE 1 illustrates an example computing component that can be used to deterministically estimate whether a location of a fixed or mobile computing device is within a fully enclosed building (e.g., fully or partially indoors / outdoors), according to various embodiments. Referring now to FIGURE 1, a computing component 1100, such as a server computer, controller, or any other similar computing component capable of processing data, is shown. Figure 12 In the example implementation of FIGURE 1, the computing component 1100 includes a hardware processor 1102 and a machine-readable storage medium 1104. Figure 12 In the example implementation of FIGURE 1, the computing component 1100 includes a hardware processor 1102 and a machine-readable storage medium 1104.
[0136] The hardware processor 1102 can be one or more central processing units (CPUs), semiconductor-based microprocessors, and / or other hardware devices suitable for retrieval and execution of instructions stored in the machine-readable storage medium 1104. The hardware processor 1102 can fetch, decode, and execute instructions, such as instructions 1106-1112, to control the processes or operations for deterministically estimating whether a location of a fixed or mobile computing device is within a fully enclosed building (e.g., fully or partially indoors / outdoors). As an alternative or in addition to retrieving and executing instructions, the hardware processor 1102 can include one or more electronic circuits comprising electronic components for performing the functionality of one or more instructions, such as a field-programmable gate array (FPGA), an application-specific integrated circuit (ASIC), or other electronic circuits.
[0137] A machine-readable storage medium, such as the machine-readable storage medium 1104, can be any electronic, magnetic, optical, or other physical storage device that contains or stores executable instructions. Thus, the machine-readable storage medium 1104 can be, for example, Random Access Memory (RAM), non-volatile RAM (NVRAM), electrically erasable programmable read-only memory (EEPROM), a storage device, an optical disc, and the like. In some embodiments, the machine-readable storage medium 1104 can be a non-transitory storage medium, where the term "non-transitory" does not encompass transitory propagating signals. As described in detail below, the machine-readable storage medium 1104 can be encoded with executable instructions, such as instructions 1106-1112.
[0138] Hardware processor 1102 can execute instructions 1106 to collect data from a plurality of sensors associated with the computing device.
[0139] Hardware processor 1102 can execute instructions 1108 to determine a confidence value associated with the data collected from each of the plurality of sensors. For example, the confidence value can be determined after a threshold period of time that the computing device is stationary is reached.
[0140] Hardware processor 1102 can execute instructions 1110 to determine whether the computing device is indoors or outdoors based on the collected sensor data and the confidence values. Collected sensor data having a low confidence level can not be used to determine whether the portable device is indoors or outdoors.
[0141] Hardware processor 1102 can execute instructions 1112 to provide the determination of whether the computing device is indoors or outdoors and to trigger an action in an external system.
[0142] Figure 12 FIGURE 1 illustrates an example computing component that can be used to deterministically estimate whether a location of a fixed or movable computing device is within a fully enclosed building (e.g., fully or partially indoors / outdoors), according to various embodiments. Referring now to FIGURE 1, a computing component 1000, such as a server computer, controller, or any other similar computing component capable of processing data, can include a hardware processor 1002 and a machine-readable storage medium 1004. Figure 13 In the example implementation of FIGURE 1, the computing component 1000 includes a hardware processor 1002 and a machine-readable storage medium 1004.
[0143] The hardware processor 1002 can be one or more central processing units (CPUs), semiconductor-based microprocessors, and / or other hardware devices suitable for retrieval and execution of instructions stored in the machine-readable storage medium 1004. The hardware processor 1002 can fetch, decode, and execute instructions, such as instructions 1006-1012, to control the process or operations for deterministically estimating whether a location of a fixed or movable computing device is within a fully enclosed building (e.g., fully or partially indoors / outdoors). As an alternative or complement to retrieval and execution of instructions, the hardware processor 1002 can include one or more electronic circuits comprising electronic components for performing the functionality of one or more instructions, such as field-programmable gate arrays (FPGAs), application-specific integrated circuits (ASICs), or other electronic circuits.
[0144] A machine-readable storage medium, such as the machine-readable storage medium 1204, can be any electronic, magnetic, optical, or other physical storage device that contains or stores executable instructions. Thus, the machine-readable storage medium 1204, for example, can be Random Access Memory (RAM), non-volatile RAM (NVRAM), Electronically Erasable Programmable Read-Only Memory (EEPROM), a storage device, an optical disc, and the like. In some embodiments, the machine-readable storage medium 1204 can be a non-transitory storage medium, where the term "non-transitory" does not encompass transitory propagating signals. As described in detail below, the machine-readable storage medium 1204 can be encoded with executable instructions, such as instructions 1206-1212.
[0145] The hardware processor 1202 can execute the instructions 1206 to collect data and sensor reliability values from a plurality of sensors associated with the computing device.
[0146] The hardware processor 1202 can execute the instructions 1208 to determine a confidence value associated with the data collected from each of the plurality of sensors. The confidence value can be determined based on the sensor reliability value from a corresponding sensor of the plurality of sensors.
[0147] The hardware processor 1202 can execute the instructions 1210 to determine whether the computing device is indoors or outdoors based on the collected sensor data and confidence values. Collected sensor data having a low confidence level can not be used to determine whether the portable device is indoors or outdoors.
[0148] The hardware processor 1202 can execute the instructions 1212 to provide the determination of whether the computing device is indoors or outdoors and trigger an action in an external system
[0149] A block diagram of a computer system 1300 is depicted wherein various embodiments described herein can be implemented. The computer system 1300 includes a bus 1302 or other communication mechanism for communicating information, and a hardware processor 1304 coupled with bus 1302 for processing information. The hardware processor 1304 can be one or more general purpose microprocessors.
[0150] The computer system 1300 also includes a main memory 1306, such as a random access memory (RAM), cache and / or other dynamic storage devices, coupled to bus 1302 for storing information and instructions to be executed by processor 1304. Main memory storage 1306 also can be used for storing temporary variables or other intermediate information during execution of instructions to be executed by processor 1304. Such instructions can be stored or implemented in the main memory 1306, and carried out by the processor 1304, such that the computer system 1300 is specifically created to carry out the operations specified in the instructions.
[0151] The computer system 1300 also includes a read only memory (ROM) 1308 or other static storage device coupled to the bus 1302 for storing static information and instructions for the processor 1304. A storage device 1310, such as a magnetic disk, optical disk, or USB thumb drive (flash drive), etc., is provided and coupled to bus 1302 for storing information and instructions.
[0152] The computer system 1300 can be coupled via the bus 1302 to a display 1312, such as a liquid crystal display (LCD) (or touch screen), for displaying information to a computer user. An input device 1314, including alphanumeric and other keys, is coupled to the bus 1302 for communicating information and command selections to the processor 1304. Another type of user input device is cursor control 1316, such as a mouse, a trackball, or cursor direction keys, for communicating direction information and command selections to the processor 1304 and for
[0153] The computing system 1300 can include a module for implementing a user interface of a GUI that can be stored in a mass storage device as executable software code that is executed by the computing device(s). This and other modules can include components, such as software components, object-oriented software components, class components and task components, processes, functions, attributes, procedures, subroutines, segments of program code, drivers, firmware, microcode, circuitry, data, databases, data structures, tables, arrays, and variables.
[0154] Generally, as used herein, terms such as “component,” “engine,” “system,” “database,” and “data repository” can refer to logic embodied in hardware or firmware, or to a set of software instructions written in a programming language (such as, for example, Java, C, or C++) that can have entry and exit points. Software components can be compiled and linked into an executable program, installed in a dynamic link library, or written in an interpreted programming language such as, for example, BASIC, Perl, or Python. It should be understood that software components can be called from other components or from themselves, and / or can be dispatched in response to detected events or interrupts. Software components configured to execute on a computing device can be provided on computer-readable media, such as compressed discs, digital video discs, flash drives, disks, or any other tangible media, or as digital downloads (and can be initially stored in a compressed or installable format that requires installation, decompression, or decryption before execution). Such software code can be stored, in part or in whole, on a memory device executing the computing device for execution by the computing device. Software instructions can be embedded in firmware such as EPROM. It should also be understood that hardware components may include connected logic units such as gates and flip-flops, and / or may consist of programmable units such as programmable gate arrays or processors.
[0155] Computer system 1300 may implement the techniques described herein using custom hardwired logic, one or more ASICs or FPGAs, firmware, and / or program logic, which, in combination with the computer system, make computer system 1300 a special-purpose machine or program it as such. According to one embodiment, the techniques described herein are executed by computer system 1300 in response to processor(s) 1304 executing one or more sequences of one or more instructions contained in main memory 1306. Such instructions may be read into main memory 1306 from another storage medium, such as storage device 1310. Execution of the instruction sequence contained in main memory 1306 causes processor(s) 1304 to perform the processing steps described herein. In alternative embodiments, hardwired circuitry may be used in place of or in combination with software instructions.
[0156] As used herein, the term “non-transitory medium” and similar terms, refer to any medium that stores the data and / or instructions that cause a machine to operate in a specific manner. Such non-transitory media can include non-volatile media and / or volatile media. Non-volatile media includes, for example, optical or magnetic disks, such as storage device 1310. Volatile media includes dynamic memory, such as main memory 1306. Common forms of non-transitory media include, for example, a floppy disk, a flexible disk, a hard disk, a solid-state drive, a magnetic tape, or any other magnetic data storage medium, a CD-ROM, any other optical data storage medium, any physical medium with patterns of holes, a RAM, a PROM, and EPROM, a FLASH-EPROM, NVRAM, any other memory chip or cartridge, and a networked version of any the foregoing.
[0157] Non-transitory media differ from transmission media, which are involved with transmitting information between non-transitory media. Transmission media include coaxial cables, copper wire, and fiber optic cables, including the wires that comprise bus 1302. Transmission media can also take the form of acoustic or light waves, such as those generated during radio frequency and infrared data communications.
[0158] Computer system 1300 also includes a communication interface 1318 coupled to bus 1302. Communication interface 1318 provides a two-way data communication coupling to one or more network links that are connected to one or more local area networks. For example, communication interface 1318 can be an integrated services digital network (ISDN) card, cable modem, satellite modem, or a modem to provide a data communication connection to a corresponding type of telephone line. As another example, communication interface 1318 can be a local area network (LAN) card to provide a data communication connection to a compatible LAN (or WAN component to communicate with a WAN). Wireless links can also be implemented. In any such implementation, communication interface 1318 sends and receives electrical, electromagnetic or optical signals that carry digital data streams representing various types of information.
[0159] Network links typically provide data communication through one or more networks to other data devices. For example, a network link can provide a connection through a local area network to a host computer or to data equipment operated by an Internet Service Provider (ISP). The ISP in turn provides data communication services through the world wide packet data communication network now commonly referred to as the “Internet.” Local area networks and Internet often use the same physical media, such as copper wire or fiber optic cables, to carry electrical, electromagnetic or optical signals that convey digital data streams. The signals through the various networks and the signals on network links and through communication interface 1318 are examples of transmission media for which the present disclosure can be prudently adapted to implement.
[0160] Computer system 1300 can send messages and receive data, including program code, through the network(s), network link(s), and communication interface(s) 1318. In the Internet example, a server might transmit a requested code for an application program through the Internet, the ISP, the local network and communication interface 1318.
[0161] The received code can be executed by processor 1304 as it is received, and / or stored in storage device 1310, or other non-volatile storage for later execution.
[0162] Each of the processes, methods, and algorithms described in the preceding sections can be embodied in, and fully or partially automated by, code components of one or more computer programs. The one or more computer programs can be executed on one or more computer systems or computer processors comprising computer hardware. The computer programs comprise program instructions that, when executed by computer hardware, cause the computer hardware to carry out the processes, methods, and algorithms described in the preceding sections. One or more computer systems or computer processors can be devoted to the execution of the one or more computer programs, or one or more computer systems or computer processors can support the execution of the one or more computer programs by, for example, providing data access to the one or more computer programs, providing data processing for the one or more computer programs, or providing a combination of such services to the one or more computer programs. The one or more computer programs can be executed as software instructions or code in, for example, a software development tool, a web browser, a mobile application, a server, or other executable software program. The one or more computer programs can be written in any of a number of computer languages, including, for example, Java, C++, C#, Visual Basic, or Python. The one or more computer programs can be executed on one or more computer systems or computer processors comprising computer hardware.
[0163] As used herein, a circuit can be implemented using any form of hardware, software, or combinations thereof. For example, one or more processors, controllers, ASICs, PLAs, PALs, CPLDs, FPGAs, logical components, software routines, or other mechanisms might be implemented to make up a circuit. In implementation, the various circuits described herein might be implemented within or performed by one or more central processing units (CPUs), graphics processing units (GPUs), digital signal processors (DSPs), application-specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), programmable logic devices (PLDs), combined programmable logic and analog circuits, ASICs, or within one or more computers or servers or other processing devices.
[0164] As used herein, the term "or" can be construed in either an inclusive or exclusive sense. Furthermore, the description of resources, operations, or structures as being singular or multiple does not preclude the concurrent use of both singular and plural forms. Conditional language, such as "can," "could," "might," or "may," unless specifically stated otherwise, generally are intended to convey that certain embodiments include, while other embodiments do not include, certain features, elements, and / or steps.
[0165] Unless otherwise expressly stated, terms and phrases as used in this document and variations thereof, are to be interpreted in an open, non-restrictive manner. Adjectives such as "conventional," "traditional," "normal," "standard," "known," and terms of similar meaning, when used to describe a prior process, material or technique, should not be construed to limit the scope of what can be claimed to processes, materials or techniques that are already known or that can be known from the prior art, but to cover such processes, materials or techniques that can be developed or known at any later time. In some instances, the presence of broadening words and phrases such as "one or more," "at least," "but not limited to," or other like phrases indicates the existence of optional features or alternatives.
Claims
1. A computing device for determining whether an environment of the computing device is indoors or outdoors, the computing device comprising: a memory; and one or more processors configured to execute machine-readable instructions stored in the memory for performing a method comprising: collecting sensor data from a plurality of sensors associated with the computing device; determining a type of variation of the sensor data; determining a confidence value associated with the sensor data collected from each of the plurality of sensors when a threshold period of time that the computing device is stationary is reached; increasing the confidence value in response to the type of variation being at least one of amplitude discontinuity loss, amplitude banding, and time domain banding; determining that the computing device is completely indoors when the confidence value associated with the sensor data exceeds a first threshold, wherein the confidence value is associated with a likelihood that the computing device is indoors or outdoors; determining that the computing device is completely outdoors when it is determined that the confidence value associated with the sensor data is below a second threshold; and providing the determination that the computing device is indoors or outdoors and triggering an action in an external system.
2. The computing device of claim 1, wherein the plurality of sensors comprises at least two of a radio receiver, a timer and clock, a pressure sensor, an air particulate and trace gas sensor, a radiation sensor, an inertial sensor, a piezoelectric sensor, an optical sensor, an acoustic sensor, an electrical sensor, or a magnetic sensor.
3. The computing device of claim 1, wherein the plurality of sensors are embedded in the computing device or a surrounding environment of the computing device.
4. The computing device of claim 1, wherein the action in the external system activates a lighting or water feature and the external system is a component of a home automation.
5. The computing device of claim 1, wherein the action in the external system automatically adjusts image parameters and the external system comprises a security camera.
6. The computing device of claim 1, wherein the action in the external system automatically adjusts operational radiation properties of a radio.
7. The computing device of claim 1, wherein the action in the external system automatically generates an electronic communication on a second protocol based on the determination that the computing device is indoors or outdoors.
8. The computing device of claim 1, wherein the action in the external system automatically generates a report detailing a pattern of sensor data that shows the computing device operating indoors or outdoors in the environment over time.
9. A computing device for determining whether an environment of the computing device is indoors or outdoors, the computing device comprising: a memory; and one or more processors configured to execute machine-readable instructions stored in the memory for performing a method comprising: collecting sensor data and sensor reliability values from a plurality of sensors associated with the computing device; determining a type of change in the sensor data; determining a confidence value associated with the sensor data collected from each of the plurality of sensors when a threshold period of time that the computing device is stationary is reached, wherein the confidence value is determined based on the sensor reliability values for the corresponding sensor from the plurality of sensors; increasing the confidence value in response to the type of change being at least one of amplitude discontinuity loss, amplitude striping, and time domain striping; determining that the computing device is completely indoors when the confidence value associated with the sensor data exceeds a first threshold, wherein the confidence value is associated with a likelihood that the computing device is indoors or outdoors; determining that the computing device is completely outdoors when it is determined that the confidence value associated with the sensor data is below a second threshold; and providing the determination that the computing device is indoors or outdoors and triggering an action in an external system.
10. The computing device of claim 9, wherein the plurality of sensors includes at least two of a radio receiver, a timer and clock, a pressure sensor, an air particulate and trace gas sensor, a radiation sensor, an inertial sensor, a piezoelectric sensor, an optical sensor, an acoustic sensor, an electrical sensor, or a magnetic sensor.
11. The computing device of claim 9, wherein the plurality of sensors are embedded in the computing device or an environment surrounding the computing device.
12. The computing device of claim 9, wherein the action in the external system activates a lighting or water feature and the external system is a component of a home automation.
13. The computing device of claim 9, wherein the action in the external system automatically adjusts image parameters and the external system comprises a security camera.
14. The computing device of claim 9, wherein the action in the external system automatically adjusts operational radiation characteristics of a radio.
15. The computing device of claim 9, wherein the action in the external system automatically generates an electronic communication on a second protocol based on the determination that the computing device is indoors or outdoors.
16. The computing device of claim 9, wherein the action in the external system automatically generates a report detailing a pattern of sensor data that shows the computing device operated indoors or outdoors over time in the environment.
17. A computer-implemented method for determining whether an environment of a computing device is indoors or outdoors, comprising: collecting sensor data from a plurality of sensors associated with the computing device; determining a type of change in the sensor data; determining a confidence value associated with the sensor data collected from each of the plurality of sensors when a threshold period of time that the computing device is stationary is reached, wherein the confidence value is determined based on the sensor reliability values for the corresponding sensor from the plurality of sensors; increasing the confidence value in response to the change type belonging to at least one of a magnitude discontinuity loss, a magnitude striping, and a time domain striping; determining that the computing device is fully indoors when the confidence value associated with the sensor data exceeds a first threshold, wherein the confidence value is associated with a likelihood that the computing device is indoors or outdoors; determining that the computing device is fully outdoors when the confidence value associated with the sensor data is below a second threshold; and providing the determination that the computing device is indoors or outdoors and triggering an action in an external system.
18. The computer-implemented method of claim 17, wherein the plurality of sensors comprises at least two of a radio receiver, a timer and clock, a pressure sensor, an air particulate and trace gas sensor, a radiation sensor, an inertial sensor, a piezoelectric sensor, an optical sensor, an acoustic sensor, an electrical sensor, or a magnetic sensor.
19. The computer-implemented method of claim 17, wherein the plurality of sensors are embedded in the computing device or a surrounding environment of the computing device.
20. The computer-implemented method of claim 17, wherein the action in the external system activates a lighting or water feature and the external system is a component of a home automation.
Citation Information
Patent Citations
System and method for localizing a trackee at a location and mapping the location using inertial sensor information
US8751151B2