Stinel equipment in low-power self-organizing tracking sensor network

By introducing a self-organized network (SONOT) into the sensor network, and using adjacent tracker devices to provide coverage and collaborative information sharing, the problems of short battery life and low information dissemination efficiency of low-power sensor devices are solved, and more efficient asset tracking and environmental monitoring are achieved.

CN120226382APending Publication Date: 2025-06-27QUALCOMM INC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202380082322.2
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2022-12-08
Filing Date
2023-10-03
Publication Date
2025-06-27

AI Technical Summary

Technical Problem

In low-power self-organizing tracking networks, sensor devices lack reliable external power supplies, resulting in short battery life and inefficient information collection and propagation.

Method used

By introducing a self-organized network (SONOT) into the sensor network, adjacent tracker devices provide coverage, collaboratively collect and share locations, sense information, and selectively transmit information to devices far away from SONOT. Dynamically select sentinel equipment to perform additional tasks, periodically rotating task allocations to distribute load.

Benefits of technology

Improves the battery life of sensor devices, enhances the efficiency of information collection and dissemination, and ensures real-time and accuracy of asset tracking and environmental monitoring.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120226382A_ABST
    Figure CN120226382A_ABST
Patent Text Reader

Abstract

Systems and techniques for network organization are described herein. For example, a process may include receiving an indication of a first task from a second sensing device of the ad hoc network. The process may also include retrieving a first power profile associated with the first task, determining a current battery power of the at least one battery, predicting a future battery power of the at least one battery based on the current battery power and the first power profile associated with the first task, and determining a second power profile associated with the first task. And transmitting the predicted future battery power to another sensing device.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure generally relates to sensor networks (e.g., sensor networks for making measurements to obtain data about the environment surrounding the sensors). For example, aspects of the present disclosure relate to systems and techniques for providing one or more sentinel devices in a low-power ad-hoc tracking network. Background Art

[0002] The transportation and delivery of assets (e.g., goods) are important activities for many organizations. An organization may want to track and monitor the environment surrounding the transported assets. Tracking the assets helps the organization keep tabs on where the assets are and when they are likely to arrive. Monitoring the environment may be useful for ensuring the quality of assets that may be sensitive to environmental conditions, such as assets sensitive to temperature, light, shock, humidity, tilt angle, or many other environmental conditions.

[0003] Tracking and sensing devices (e.g., sensors) may be included with the transported assets to provide tracking and environmental monitoring. For example, sensors can be used at the truck / container level, the pallet level, the case level, etc., and these sensors generally travel together. In many cases, the sensors are battery-operated and are relatively low-cost devices. Sensors at different levels can provide different information about the environment and / or perform different tasks. For example, sensors on or inside a case can monitor the environmental conditions near the product or sense whether individual cases are missing. For example, sensors at the pallet level can provide more advanced (e.g., earlier) information about potential changing conditions. Sensors at the truck / container level can provide tracking or location information. Sensors can be grouped to help collect and distribute information effectively. Systems and techniques for assigning tasks to be performed by the sensors across the groups may be useful. Summary of the Invention

[0004] A simplified summary related to one or more aspects disclosed herein is given below. Accordingly, the following summary should not be considered as a broad overview related to all contemplated aspects, nor should the following summary be considered as identifying key or critical elements related to all contemplated aspects or depicting the scope associated with any particular aspect. Thus, the following summary presents certain concepts related to one or more aspects involving the mechanisms disclosed herein in a simplified form to precede the detailed description presented below.

[0005] Systems and techniques for performing operations associated with an ad hoc network are described. In one illustrative example, a first sensing device of an ad hoc network is provided. The first sensing device includes at least one battery; at least one memory including instructions; and at least one memory coupled to at least one processor. The at least one processor may be configured to receive an indication of a first task from a second sensing device of the ad hoc network; retrieve a first power profile associated with the first task from the at least one memory; determine a current battery charge of the at least one battery; predict a future battery charge of the at least one battery based on the current battery charge and the first power profile associated with the first task; and send the predicted future battery charge to another sensing device.

[0006] In another example, a method for network organization is provided. The method includes: receiving an indication of a first task from a second sensing device of the ad hoc network; retrieving a first power profile associated with the first task; determining a current battery charge of the at least one battery; predicting a future battery charge of the at least one battery based on the current battery charge and the first power profile associated with the first task; and sending the predicted future battery charge to another sensing device.

[0007] As another example, a non-transitory computer-readable medium is provided. The non-transitory computer-readable medium, when executed by at least one processor, causes the at least one processor to: receive an indication of a first task from a second sensing device of the ad hoc network; retrieve a first power profile associated with the first task; determine a current battery charge of the at least one battery; predict a future battery charge of the at least one battery based on the current battery charge and the first power profile associated with the first task; and send the predicted future battery charge to another sensing device.

[0008] In another example, a first sensing device of an ad hoc network is provided. The first sensing device includes means for receiving an indication of a first task from a second sensing device of the ad hoc network; means for retrieving a first power profile associated with the first task; means for determining a current battery charge of the at least one battery; means for predicting a future battery charge of the at least one battery based on the current battery charge and the first power profile associated with the first task; and means for sending the predicted future battery charge to another sensing device.

[0009] In some aspects, the apparatus includes a mobile device (e.g., a sensor device, a mobile phone or a so-called "smartphone", a tablet computer or other types of mobile devices), a wearable device, a personal computer, a laptop computer, a vehicle (or a computing device or system of a vehicle), or other devices. In some aspects, the apparatus includes at least one camera for capturing one or more images or video frames. For example, the apparatus may include a camera (e.g., an RGB camera) or multiple cameras for capturing one or more images including video frames and / or one or more videos. In some aspects, the apparatus includes a display for displaying one or more images, videos, notifications, or other displayable data. In some aspects, the apparatus includes a transmitter configured to transmit one or more video frames and / or syntax data to at least one device via a transmission medium. In some aspects, the processor includes a neural processing unit (NPU), a central processing unit (CPU), a graphics processing unit (GPU), or other processing devices or components.

[0010] This summary is not intended to identify key or essential features of the claimed subject matter, nor is it intended to be used alone to determine the scope of the claimed subject matter. The subject matter should be understood by reference to the appropriate portions of the entire specification of this patent, any or all of the drawings, and each claim.

[0011] The foregoing and other features and embodiments will become more apparent by reference to the following specification, claims, and drawings. BRIEF DESCRIPTION OF THE DRAWINGS

[0012] Exemplary embodiments of the present application are described in detail below with reference to the following drawings.

[0013] Figure 1 An exemplary implementation of a system-on-chip (SOC) according to some examples is shown.

[0014] Figure 2 FIG. is a diagram showing an example SONOT according to aspects of the present disclosure.

[0015] Figure 3 FIG. is a diagram showing an example of a hierarchical oriented SONOT network topology according to aspects of the present disclosure.

[0016] Figure 4 FIG. is a block diagram showing an example of a sentinel in a SONOT according to aspects of the present disclosure.

[0017] Figure 5 FIG. is a flowchart of a process for operating an apparatus according to aspects of the present disclosure.

[0018] Figure 6 FIG. shows an example computing device architecture of an example computing device that can implement various techniques described herein.

[0019] Figure 7 is a block diagram of a UE in accordance with aspects of the present disclosure.

[0020] Figure 8 illustrates an example wireless communication system in accordance with aspects of the present disclosure. Detailed Description

[0021] Certain aspects and embodiments of the present disclosure are provided below. Some of these aspects and embodiments may be applied independently, and some of them may be applied in combination, which will be apparent to those skilled in the art. In the following description, for purposes of explanation, specific details are set forth in order to provide a thorough understanding of the embodiments of the present application. However, it is apparent that the various embodiments may be practiced without these specific details. The drawings and the description are not intended to be restrictive.

[0022] The following description provides only example embodiments and is not intended to limit the scope, applicability, or configuration of the present disclosure. Instead, the following description of the example embodiments will provide those skilled in the art with an enabling description for implementing the example embodiments. It should be understood that various changes may be made to the functions and arrangements of the elements without departing from the spirit and scope of the present application as set forth in the appended claims.

[0023] When tracking assets being delivered, it may be beneficial for the system to be able to effectively obtain near real-time information about the location, environmental conditions, and other sensed information. For example, such information can help an organization provide higher quality goods while reducing costs. Sensors can be used to provide information about the assets being delivered; such sensors may be referred to herein as asset tracker devices or trackers. When these trackers travel with the assets being delivered, there may not be a reliable external power source for the trackers. Thus, the trackers can be battery-powered and relatively low-power devices. Since different trackers can be used to provide different information for the corresponding assets being tracked, it may be useful to collect, integrate, and / or disseminate this information while keeping battery usage within an acceptable level. To help coordinate the activities and tasks among the trackers, the trackers can be organized into a homogeneous hierarchical network of trackers. For example, in some cases, the sensors used as trackers can be organized into one or more self-organizing networks (SONs) and SONs of trackers (SONOTs).

[0024] This document describes systems and techniques for providing an improved way of distributing tasks among devices in a SONOT. For example, in a SONOT, one or more neighboring tracker devices can be used to provide coverage for other tracker devices that do not have infrastructure support for the SONOT. The tracker devices can collaboratively collect and share location, sensing, and / or other information, and can selectively transmit the information to devices remote from the SONOT (e.g., server devices), such as via a wide area network (WAN).

[0025] In some cases, a subset of tracker devices, referred to as sentinel devices, can be dynamically selected to perform additional tasks, examples of which can include, but are not limited to, localization tasks, additional sensing tasks, and / or communication tasks. The sentinel devices can be selected from a group of available tracker devices, and multiple sentinel devices can exist simultaneously. To help conserve battery life, the tracker devices assigned to operate as sentinel devices can be cycled periodically to help distribute the operational load among the group of tracker devices. In some cases, any of the tracker devices in the group of tracker devices can be selected as a sentinel device. The selection of a tracker device as a sentinel device can be based on various factors, which can include, but are not limited to, the power constraints of the tracker device, the location of the tracker device relative to the asset, the route or itinerary of the asset, the memory available on the tracker device, the sensing capabilities of the tracker device, the network topology, the signal strength of certain wireless networks available to the tracker device, any combination thereof, and / or other factors.

[0026] In some cases, various tasks can be assigned to tracker devices based on a duty cycle. For example, a tracker device can be assigned a sensing task, such as measuring the temperature of the environment, to be performed every set period of time (e.g., every five minutes). The tracker device can send the results of the sensing task (e.g., the sensed information, such as the measured temperature information) to a sentinel device. When the tracker device is not performing a task, the tracker device can enter a relatively low-power or sleep mode. In addition to tasks that can also be assigned to other tracker devices, tasks that consume relatively more power than the tasks assigned to other tracker devices, such as receiving and processing sensing information from other tracking devices, can be assigned to sentinel devices. These additional tasks may consume relatively more battery power, and the sentinel device can estimate the impact of these tasks on the sentinel's battery power. In some aspects, the estimated impact on battery power can be determined based on predefined power profiles for possible tasks and the duty cycle associated with the tasks.

[0027] Aspects of the present disclosure will be described with reference to the drawings. Figure 1An example implementation of a system-on-chip (SOC) 100 is shown. SOC 100 may include a central processing unit (CPU) 102 or a multi-core CPU configured to execute one or more functions described herein. Parameters or variables (e.g., neural signals and synaptic weights), system parameters associated with the computing device (e.g., neural networks with weights), latencies, frequency bin information, task information, and other information may be stored in a memory block associated with the neural processing unit (NPU) 108, in a memory block associated with the CPU 102, in a memory block associated with the graphics processing unit (GPU) 104, in a processor block associated with the digital signal memory (DSP) 106, in the memory block 118, and / or may be distributed across multiple blocks. Instructions executed at the CPU 102 may be loaded from a program memory associated with the CPU 102 or may be loaded from the memory block 118.

[0028] SOC 100 may also include additional processing blocks customized for specific functions, such as the GPU 104, the DSP 106, the connection block 110, which may include fifth-generation (5G) connection, fourth-generation long-term evolution (4G LTE) connection, Wi-Fi connection, USB connection, Bluetooth connection, ultra-wideband (UWB), etc. In one implementation, the NPU is implemented in the CPU 102, the DSP 106, and / or the GPU 104. SOC 100 may also include a sensor processor 114, an image signal processor (ISP) 116, and / or a navigation module 120, which may include a global navigation satellite system (GNSS) and / or a global positioning system (GPS).

[0029] SOC 100 and / or its components may be configured to evaluate environmental conditions. For example, the sensor processor 114 may receive and / or process information from one or more sensors 122. Examples of sensors 122 may include one or more inertial measurement units (IMUs) of the device (e.g., accelerometers, gyroscopes, etc.), temperature sensors, light sensors, impact sensors, humidity sensors, acceleration sensors, speed sensors, tilt angle sensors, and other sensors. In some cases, the sensor 122 may be located on the SOC 100. In other cases, the sensor processor 114 may also be coupled to one or more sensors (not shown) external to the SOC 100 (e.g., located on a separate chip). In some cases, the sensor processor 114 may also receive the output of one or more processing blocks of the connection block 110 as input.

[0030] As supply chains span states, countries, and continents, moving assets (such as goods, parts, materials, etc.) between locations is increasingly becoming an important part of the global economy. As moving assets become more important, tracking the assets in transit also becomes important for an organization, as understanding when the assets are likely to arrive and under what conditions those assets may be can be useful for the organization's planning operations.

[0031] To better track and understand the environmental conditions to which assets may be exposed as they move, sensors or asset tracking (e.g., tracker) devices can be included in the assets. These trackers can sense the environment around the tracker, collect location information, sense events, etc. In some cases, the tracker can also periodically report the sensed data. In some cases, the tracker can perform non-sensing functionality, such as collecting data from other trackers, command and control operations, such as configuring the tracker, scheduling the operations of the tracker, processing received data, sending data, and so on. In some cases, in addition to or instead of the environmental sensing function, the tracker can include non-sensing functions. Since trackers are typically used to track moving assets, the trackers can be relatively low-power battery-powered devices. Additionally, trackers can typically move in groups, with multiple sensors distributed in strategic locations around the asset.

[0032] To help increase the battery life of trackers by distributing the activities of the trackers, the trackers can be organized in a dynamic self-organizing network of trackers (SONOT). The SONOT can be dynamically formed by nearby trackers without the need for infrastructure support. In some cases, the SONOT can use any mobile ad hoc network routing protocol, such as on-demand broadcast routing protocols or routing table-based protocols. Additionally, the SONOT can be formed on a heterogeneous network of smaller SONOTs. In certain cases, each SONOT, including sub-SONETs, can use a different network routing protocol.

[0033] Figure 2FIG. 200 is a legend showing an example SONOT according to aspects of the present disclosure. As shown in legend 200, an asset (not shown) can be packaged in one or more boxes or crates 202 for shipping. In some examples, a tracker 204 can be included with the asset in crate 202, or the trackers 204 can be distributed in a certain percentage of the crates 202. The trackers 204 distributed in the crates 202 can sense environmental conditions within the crates 202, the location of each crate 202, the distribution of the crates 202, etc. These crates 202 can be loaded onto a pallet 206. In some cases, trackers 208 can be included on a certain percentage of the pallets 206, and these trackers 208 can sense environmental conditions around the crates 202 and / or the pallets 206, the location of the pallet 206, the distribution of the pallets 206, etc. In some cases, the number of crates 202 per pallet 206 can be known in advance based on the size of the crates 202, the load capacity of the pallet 206, etc. The pallets 206 can in turn be loaded into a shipping container 210, a truck, a boxcar, etc. In some cases, trackers 212 can be included in, for example, the shipping container 210, and these trackers 212 can sense environmental conditions inside or around the shipping container 210, the location of the shipping container 210, etc.

[0034] In some cases, information collected from the trackers (such as trackers 204, 208, and 212) can be reported to one or more remote servers 214. The remote server 214 can process the sensed data and provide the processed data to a user device 216. In some cases, in addition to or instead of any processing of the data that can be performed by the trackers, the remote server 214 can process the sensed data. In some cases, the processed data can be provided to the user device 216 near real-time, and the processed data can be provided continuously, periodically, on a schedule, on demand, or at any other rate. In some cases, the rate at which data can be provided from the tracker 204 can be dynamically adjusted based on customer requirements and hardware capabilities. Since the trackers (e.g., trackers 204, 208, and 212) can be relatively low-power devices, there can be a trade-off between sensing and reporting activities and battery life or tracker cost. Additionally, some activities (such as receiving and processing sensed data from other trackers or sending data to the remote server 214) can use more battery power than other activities (such as sensing).

[0035] In some cases, individual tracker devices can be set up for different roles and different costs. Different tracker hardware can be used based on cost and user needs. For example, for high-value assets, a relatively more expensive tracker with more features can be used. As an example of these additional features, a relatively more expensive tracker can provide a finer-grained reporting interval, less latency, more sensing, etc., compared to a cheaper tracker. As another example, for the transportation of a large number of assets with relatively strict environmental issues, many lower-cost trackers can be distributed throughout the assets. These lower-cost trackers can have fewer features than more expensive trackers, but having more of the lower-cost trackers can provide additional samples of the conditions experienced across the assets. In some cases, a mixture of trackers can be used.

[0036] An example of a mixture of trackers 204, 208, and 212 that can fall into three capability groups is included in legend 200. The first group of trackers can be represented by tracker 204. As indicated above, tracker 204 can be used at the case 202 level and can be relatively low-cost compared to other trackers (e.g., trackers 208 and 212), having relatively less memory, processing power, and / or battery power. Tracker 204 can be set up to be primarily used for sensing the environment, with short-range communication to participate in a relatively small SONOT.

[0037] The second group of trackers can be represented by tracker 208. Tracker 208 can be used at the pallet 206 level and can provide more capabilities, having relatively more memory, processing power, and / or battery power compared to tracker 204, but having relatively less memory, processing power, and / or battery power compared to other trackers (e.g., tracker 212). In some cases, tracker 208 can be relatively more expensive than tracker 204 while being cheaper than other trackers (such as tracker 212). Tracker 208 can be set up for additional sensing, data processing, and / or communication to maintain a relatively small SONOT (e.g., the SONOT of tracker 204 on the pallet) and coordinate with other trackers (such as other trackers 208 and 212).

[0038] The third set of trackers can be represented by tracker 212. Tracker 212 can be used at the shipping container 210 level and can provide more capabilities compared to trackers 204 and 208, with relatively more memory, processing power, and / or battery power. In some cases, tracker 212 can be bound to the power supply of shipping container 210. Tracker 212 can be set up for data processing, location sensing, and / or enhanced communication capabilities, for communicating with multiple local SONOTs and / or managing multiple local SONOTs (associated with additional devices), and communicating with remote server 214 via a wide area network.

[0039] SONOTs can have various network topologies. In some cases, a single large SONOT covering substantially all detectable / available local trackers can be defined. However, such a network may not be the most reliable or easiest to maintain. In some cases, a network of smaller SONOTs (e.g., SONOTs of SONET) can be used.

[0040] Figure 3 is a legend 300 showing an example of a hierarchical directed SONOT network topology according to aspects of the present disclosure. In some cases, SONOTs can be hierarchical and directed such that trackers are organized into levels and trackers at a particular level communicate with trackers at a higher level. For example, a pallet (such as pallet 206A) can include tracker 208A, and tracker 208A can form SONOT 1 302 from tracker 204A on pallet 206A. Similarly, for another pallet, such as pallet 206B, it can include tracker 208B, and tracker 208B can form a second SONOT 2 304 from tracker 204B on pallet 206B. By forming pallet-level SONOTs (such as SONOT 1 302 and SONOT 2 304), trackers 204A and 204B can save power by communicating with physically closer trackers (such as trackers 208A and 208B), respectively. Additionally, less processing power can be used to communicate between relatively smaller SONOTs compared to potentially larger and more complex network messages that might be used for a larger SONOT.

[0041] In some cases, pallet-level trackers (such as trackers 208A and 208B) can communicate with and / or form a third SONOT (such as SONOT 3 306) having a root tracker (such as tracker 212). In some cases, a root tracker (such as tracker 212) can act as a gateway for local SONOTs (such as pallet-level SONOTs SONOT 1 302 and SONOT 2 304) to communicate with a remote server (not shown).

[0042] In some cases, SONOTs such as SONOT 1 302 and SONOT 2 304 can be partially preconfigured. For example, prior to shipping, such as during the packaging phase, a case-level tracker (e.g., tracker 204A) can be associated with a pallet-level tracker (e.g., tracker 208A) to form a SONOT, such as SONOT 1 302. In some cases, the SONOT can be adjusted dynamically after initial preconfiguration or association. For example, if one or more case-level trackers 204A of SONOT 1 302 run out of battery power, disappear, or otherwise become unresponsive, SONOT 1 302 can adapt to the missing case-level tracker 204A, for example, by reconfiguring or reoptimizing the SONOT. As a more specific example, in the case where a particular case-level tracker 204A runs out of battery, the other environmental conditions of other nearby case-level trackers can be sampled to obtain the environmental conditions previously tracked by the case-level tracker 204A (which has run out of battery). As another more specific example, if a first case-level tracker 204A is used to route data from a second case-level tracker 204A to tracker 208A and the first case-level tracker 204A runs out of battery, the second case-level tracker 204A can be configured by tracker 208A to route data via a third case-level tracker 204A. In another example, if one or more case-level trackers 204A of SONOT 1 302 experience significantly better signal quality, signal strength, etc. with another SONOT (e.g., SONOT 2 304), those one or more case-level trackers 204A can be transferred to the other SONOT. In some cases, the pallet-level trackers 208A and 208B can negotiate the handover of such a tracker. Additionally, in some instances, the specific role played by each tracker (such as trackers 204A and 208A of a SONOT (e.g., SONOT 1 302)) can be adjusted dynamically based on the conditions experienced (such as remaining battery charge, available wireless connectivity, journey events, etc.).

[0043] In some cases, one of the SONOTs can also utilize different network connection technologies. In some cases, one network connection technology can be used within a SONOT and another network connection technology can be used between SONOTs. For example, the case-level trackers 204A and 204B can communicate within their respective SONOTs (e.g., SONOT 1 302 and SONOT 2 304) using a first network connection technology. The specific network connectivity technology used can be selected based on various conditions including tracker hardware capabilities, amount of available power, required communication range, power consumption, tracker size, cost, etc. As an example, the case-level trackers 204A and 204B can be low-cost and low-power devices that can be relatively close together and can thus utilize a lower-cost, shorter-range network connection technology such as Bluetooth Low Energy (BLE) or Radio Frequency Identification (RFID), which can operate using a relatively small battery or even without a battery.

[0044] In some cases, higher-level trackers such as the pallet-level trackers 208A and 208B can have relatively more battery resources and fewer cost constraints, but may have to communicate with relatively distant trackers at the far end of the shipping container 210. In some cases, the higher-level trackers can utilize more capable network connection technologies such as BLE or Wi-Fi. Additionally, the pallet-level trackers 208A and 208B can communicate with both lower-level trackers such as the case-level trackers 204A and 204B and higher-level trackers such as the tracker 212 and can include multiple network connection technologies.

[0045] In some cases, a root tracker (e.g., the tracker 212) can be set up to perform relatively long-range communication, e.g., communicate with a remote server via a wide area network and can thus have additional battery resources. In such cases, the root tracker such as the tracker 212 can utilize network connection technologies such as Wi-Fi, cellular technologies such as first-generation analog wireless telephone service (1G), second-generation (2G) digital wireless telephone service (including transitional 2.5G networks), third-generation (3G) high-speed data, wireless devices with Internet capabilities, fourth-generation (4G) services (e.g., Long-Term Evolution (LTE), WiMax), and / or fifth-generation (5G) services (also known as "New Radio" or "NR"). In some cases, the root tracker (e.g., the tracker 212) can include satellite-based network connection technologies. In some instances, the root tracker (e.g., the tracker 212) can also provide location services and can include a Global Navigation Satellite System (GNSS) receiver for geospatial positioning using satellite time signals.

[0046] In some cases, one of the SONOTs can be a heterogeneous network where more than one network protocol is used between the SONOTs. In some cases, the network connection technology can carry various network protocols. In some cases, one network protocol can be used within a SONOT and another network protocol can be used between SONOTs. As an example, the bin level trackers 204A and 204B can communicate within their respective SONOTs (e.g., SONOT 1 302 and SONOT 2 304) using a first network protocol. In some examples, the bin level trackers 204A and 204B can attempt to conserve power by taking advantage of sleep or low power modes as much as possible while periodically waking up to sense the environment, synchronize with the SONOT, and exchange data as needed. In some examples, the bin level trackers 204A and 204B can utilize a relatively lightweight network protocol that prioritizes power savings. In some cases, the bin level trackers 204A and 204B can also communicate with the pallet level trackers 208A and 208B of their respective SONOTs (e.g., SONOT 1 302 and SONOT 2 304) using the first network protocol.

[0047] In some cases, the pallet level trackers 208A and 208B can be within a SONOT (e.g., SONOT 3 306), and the pallet level trackers 208A and 208B can communicate within SONOT 3 306 using a second network protocol. In some cases, higher level trackers (such as the pallet level trackers 208A and 208B) can utilize a relatively more chatty or lower latency protocol because higher level trackers can have relatively more battery resources compared to lower level trackers (such as the bin level trackers 204A and 204B). In some examples, the pallet level trackers 208A and 208B can use the second network protocol or a third network protocol to communicate with a higher level tracker (such as tracker 212). In some cases, the sensed information can be shared between the trackers (e.g., trackers 204, 208, and 212) and selectively transmitted to a remote server.

[0048] In some cases, a subset of the trackers can be selected to assume a sentinel role while other trackers are in a low power or sleep state. Figure 4FIG. 400 is a block diagram legend showing an example of a sentinel in SONOT 302 in accordance with aspects of the present disclosure. As shown in legend 400, SONOT 302 includes six bin level trackers 402, 404, 406, 408, 410, and 412, and a pallet level tracker 414. Trackers of the SONOT can be selected for the sentinel role. In some cases, trackers of the SONOT can be dynamically selected for the sentinel role. These sentinel trackers can be assigned additional tasks compared to other trackers, such as localization (e.g., determining the location of the SONOT), additional sensing, processing, communication, etc. As an example, tracker 402 can receive a message from another tracker of the SONOT (e.g., from tracker 414), and tracker 402 can be assigned to the sentinel role with a temperature sensing task. In some cases, the message can also include an indication of a duty cycle indicating the frequency at which tracker 402 is to perform sensing. Tracker 402 can then perform sensing according to the duty cycle. In some cases, certain tasks (such as sensing) can be associated with a default duty cycle. In such cases, the sentinel tracker can provide an indication of the duty cycle, e.g., to override the default duty cycle. As another example, the sentinel tracker can not provide an indication of the duty cycle to use the default duty cycle.

[0049] The sentinel role can be switched among trackers to help distribute the additional processing load of the additional tasks from the sentinel role and allow other trackers to spend more time in a low power or sleep mode. For example, after a period of time, tracker 402 can stop sensing temperature based on a received message indicating that tracker 402 can stop sensing, or based on a set time / number of samples to be sensed. The sentinel role can be passed to tracker 404, and tracker 404 can be assigned to perform temperature sensing. In some cases, multiple sentinel roles can be assigned simultaneously, and these roles can overlap or be different. For example, when tracker 404 is dispatched to perform the task of temperature sensing, another tracker (such as tracker 410) can also operate as a sentinel and be dispatched with the tasks of receiving sensor data from tracker 404, performing edge processing on the sensor data, and forwarding the sensor data to tracker 414. Similarly, tracker 414 can operate in the sentinel role, coordinating the operation of the bin level trackers 402 - 412 of SONOT 302.

[0050] In some examples, any tracker in the SONOT can be selected for the sentinel role. The selection of the tracker for the sentinel role can be based on multiple factors. These factors can include the power constraints of the tracker, the placement of the asset relative to the tracker, the itinerary of the asset, the memory constraints of the tracker (e.g., the amount of available memory), the sensing capabilities of the tracker (e.g., what the tracker can sense and / or to what extent the tracker can sense), the network topology, the signal strength / signal quality of the tracker (e.g., available connections, available bandwidth, signal strength of the connection, etc.), and so on.

[0051] In some cases, the power constraints of the tracker can be an important factor to consider when selecting a tracker to assume the sentinel role. Since trackers can individually be relatively low-cost and have relatively small batteries, efficient power usage can be important for ensuring there is sufficient power for the itinerary. The battery level of the tracker can be monitored. In some cases, how long a particular tracker is assigned to perform a task as part of the tracker role can be based on the task being performed and the amount of power used to perform the task. Monitoring the battery level of the tracker operating in the sentinel role can help determine when to assign the task to another tracker. For example, tracker 402 can report the current battery level to the tracker operating in the sentinel role for the tracker that assigns tasks to SONOT 302, such as tracker 414. In some cases, the trackers of SONOT 302 can periodically report the battery level to a sentinel, such as tracker 414, that is assigned to collect battery level information, configure the SONOT, or another similar task. Tracker 414 can obtain information about the power consumption of a tracker (such as tracker 402) while performing a task (such as sensing temperature). In some cases, a tracker (such as tracker 414) can be able to access a memory preconfigured with the power consumption information of the tracker of the SONOT based on the tasks that can be performed. If tracker 402 is assigned to perform a task at a specific duty cycle, tracker 414 can predict the future battery level of tracker 402 after a period of time. If the predicted future battery level of tracker 402 is within a certain range (e.g., within a certain range of other trackers, within a threshold amount, etc.), then tracker 414 can assign a task to tracker 402 to perform according to the duty cycle. In some cases, the estimation of the battery level Bt of the tracker at time t can be estimated by the following formula:

[0052] ,

[0053] where, is the starting battery level, and and (k = 1, …, n) are the power consumption rates and duty cycles of n different tasks. In some cases, the duty cycle can be configured from a remote server. In some cases, when the tracker is not assigned a task (e.g., as a sentry), the tracker can enter a relatively low power or sleep state with a duty cycle of .

[0054] In some cases, such as if the tracker is solar-powered or connected to an external power source (such as a power source for a shipping container), the power may not be constrained, and such trackers may be more likely to be selected for the sentry role because they have no power constraints. In some examples, the trackers can be able to indicate that they include rechargeable or replaceable batteries. In some cases, compared to trackers with non-replaceable / non-rechargeable batteries, such trackers (with rechargeable or replaceable batteries) may be more likely to be selected for the sentry role.

[0055] In some cases, the position of the tracker relative to the asset can be a factor to consider when selecting a tracker to assume the sentinel role. In some examples, a shipping container can contain a large number of pallets, and each of these pallets can be stacked with several layers of boxes. During the loading process, the boxes and pallets can be sorted and / or loaded based on a number of loading factors. These loading factors can include size, weight, product content, temperature requirements, unloading order, and / or other environmental factors. In some cases, the tracker can be loaded with the asset during this reinforcement / loading process. The position where the tracker is placed relative to the asset, boxes, and / or pallets can affect which tracker can be selected for the sentinel role. For example, in cases where the temperature of the asset is important, tracker 402 or tracker 404 can be selected for temperature sensing as the sentinel role because the shipping container may be warmer towards the top. Similarly, tracker 410 or tracker 412 can be selected to collect data from other trackers and / or forward data to tracker 414 because tracker 410 and tracker 412 are relatively close to tracker 414 and may have a better wireless connection with tracker 414 compared to other trackers. In some cases, for example, the position information of the tracker determined before or during sorting / loading and / or an indication of which trackers may be preferred as sentinels based on the location where the tracker will be placed can be stored as information in a memory, such as in an inventory, list, file, database, etc. In some cases, the inventory, list, file, database, etc. can include predefined information associated with the tracker, such as the relative position of the tracker within the box and / or pallet, preferred trackers for certain tasks, sentinel selection, etc. In some cases, the inventory can be predetermined during the shipping / packaging process. In some cases, the tracker can assign the tasks of the sentinel based on the information stored in the inventory, list, file, database, etc. In some cases, there may be a preference for certain trackers in some locations not to be selected as sentinels for certain tasks. For example, the inventory, list, file, database, etc. can indicate that although trackers (e.g., tracker 410 or tracker 412) can support obtaining location information, those trackers should not be used for positioning because they are located near the bottom of the pallet and may have poor signal quality / strength.

[0056] In some examples, which trackers can be selected for a tracker role can be based in part on an asset itinerary. An asset itinerary can refer to an expected path of an asset and can include expected waypoints, routes, and modes of transportation. For example, when transporting an asset, the expected itinerary of the asset can be that the asset can move via a first truck to a first port, where the asset can be loaded onto a ship bound for a second port. At the second port, the asset can be loaded onto a second truck bound for a destination. In some cases, information about the expected itinerary can be stored in a memory accessible to the tracker. Information about the expected itinerary can include information about which trackers can be selected for a task during portions of the itinerary. For example, for the first truck portion of the itinerary, rough road conditions may be expected, and the information about the expected itinerary can indicate that certain trackers, such as trackers including gyroscopes or impact detectors, can be preferentially selected as sentinels having sensing tasks. Similarly, the information about the expected itinerary can indicate that trackers having humidity sensors can be preferentially selected as sentinels during portions of the itinerary on a ship. In some cases, the information about the expected itinerary can also indicate a preference for certain trackers not being selected as trackers for certain portions of the itinerary. For example, the information about the expected itinerary can indicate that trackers having certain WAN communication capabilities (e.g., cellular communication) that are expected to be unavailable on a ship can be preferentially not selected as sentinels during portions of the itinerary on a ship. In some cases, the information about the expected itinerary can be based on the location of waypoints.

[0057] Figure 5 is a flowchart of a process 500 for operating a device according to aspects of the present disclosure. Process 500 can be executed by a computing device (or apparatus) or a component of a computing device (e.g., a chipset, codec, etc.). The computing device can be a tracking device, a sensing device, a mobile device (e.g., a mobile phone), a network-connected wearable device (such as a watch), an extended reality (XR) device (such as a virtual reality (VR) device or an augmented reality (AR) device), a vehicle or a component or system of a vehicle, or other types of computing devices. In some cases, the computing device can be or can include a tracking device, such as Figure 2 trackers 204, 208, or 212. Operations of process 500 can be implemented as software components executed and run on one or more processors.

[0058] At block 502, a computing device (or its component) may receive an indication of a first task from a second sensing device of an ad-hoc network. The indication may be received via a transceiver using a networking protocol such as Bluetooth, UWB, Wi-Fi, etc. In some cases, the indication may be received from another sensing device. In some cases, the first task may include at least one of the following: sensing (e.g., via a sensor) the environment around the first sensing device; sensing the location of the sensing device; collecting data received from at least one other sensing device of the ad-hoc network; processing data received from at least one other sensing processor of the ad-hoc network (e.g., via a processor); or sending data (e.g., via a transceiver) to a server device, where the data is based on data received from at least one other sensing device of the ad-hoc network. In some cases, the first task may include at least one of the following: sensing (e.g., via a sensor) the environment around the first sensing device, and the computing device (or its component) may sense the environment around the first sensing device to generate sensing data, where the environment around the sensing device is the environment around an asset tracked by the first sensing device; and sending (e.g., via a transceiver) the sensing data to another sensing device for transmission to the server device. In some cases, the first task may include sending (e.g., via a transceiver) data received from at least one other sensing transceiver of the ad-hoc network to the server device, and the computing device (or its component) may receive sensing data from another sensing device; and sending the sensing data (e.g., via a transceiver) to the server device.

[0059] At block 504, the computing device (or its component) may retrieve (e.g., via a processor) a first power profile associated with the first task from at least one processor. At block 506, the computing device (or its component) may determine (e.g., via a processor) the current battery level of at least one battery.

[0060] At block 508, the computing device (or its component) may predict (e.g., via a processor) the future battery level of at least one battery based on the current battery level and the first power profile associated with the first task. In some cases, the computing device (or its component) may determine (e.g., via a processor) a duty cycle associated with the first task, and where the future battery level is further predicted based on the determined duty cycle of the first task. In some cases, the computing device (or its component) may perform a second task of sensing (e.g., via a sensor) the environment around the sensing device, the second task being associated with a second duty cycle; and retrieving (e.g., via a processor) a second power profile associated with the second task from at least one memory, where the future battery level is further predicted based on the second power profile and the second duty cycle (e.g., via a processor).

[0061] At block 510, the computing device (or its component) may send (e.g., via a transceiver) the predicted future battery power to another sensing device. In some cases, the computing device (or its component) may receive (e.g., via a transceiver) an indication to perform a third task from another sensing device in an ad hoc network, where the third task includes selecting a sensing device to perform a fourth task. In some cases, the fourth task includes (e.g., by a processor) determining a duty cycle for sensing the environment, and the computing device (or its component) may (e.g., by a processor) obtain a list that indicates a set of sensing devices and at least one sensing task associated with at least one sensing device in the set of sensing devices; receive (e.g., via a transceiver) the predicted future battery power from at least one sensing device from the set of sensing devices; based on the predicted future battery power and at least one sensing task associated with at least one sensing device in the set of sensing devices, determine (e.g., by a processor) a third duty cycle of the sensing task associated with the at least one sensing device; and send (e.g., via a transceiver) an indication of the third duty cycle to the at least one sensing device. In some cases, the list is preconfigured based on the location of the at least one sensing device. In some cases, the computing device (or its component) may obtain location information associated with the set of sensing devices (e.g., via a location sensor), and where the third duty cycle is further determined based on the location information (e.g., by a processor).

[0062] Figure 6 The example computing device architecture 600 of an example computing device is shown that may implement the various techniques described herein. In some examples, the computing device may include a mobile device, a wearable device, an extended reality device (e.g., a virtual reality (VR) device, an augmented reality (AR) device, or a mixed reality (MR) device), a personal computer, a laptop computer, a video server, a vehicle (or a computing device of a vehicle), or other devices. For example, the computing device architecture 600 may include Figure 1 the SOC 100. The components of the computing device architecture 600 are shown to communicate electrically with each other using a connection 605 (such as a bus). The example computing device architecture 600 includes a processing unit (CPU or processor) 610 and a computing device connection 605 that couples various computing device components including a computing device memory 615 (such as a read-only memory (ROM) 620 and a random access memory (RAM) 625) to the processor 610.

[0063] The computing device architecture 600 may include one or more sensors 650 coupled to a processor 610 via a computing device connection 605. The sensors 650 may include one or more of the sensors 650. For example, the sensors 650 may include one or more environmental sensors and / or one or more sensors (e.g., status sensor 270 and / or PMO sensor 280 or one or more portions thereof) for providing one or more indications of one or more UE conditions.

[0064] The computing device architecture 600 may include a cache of a high-speed processor that is directly connected to, adjacent to, or integrated as part of the memory 610. The computing device architecture 600 may copy data from the memory 615 and / or the storage device 630 to the cache 612 for rapid access by the processor 610. In this way, the cache may provide a performance boost that avoids delays while the processor 610 waits for data. These and other modules may control or be configured to control the processor 610 to perform various actions. Other computing device memories 615 are also available. The memory 615 may include a variety of different types of memory with different performance characteristics. The processor 610 may include any general-purpose processor and hardware or software services, such as service 1 632, service 2 634, and service 3 636 stored in the storage device 630, which are configured to control the processor 610, as well as a dedicated processor, where software instructions are incorporated into the processor design. The processor 610 may be an independent system that includes multiple cores or processors, buses, memory controllers, caches, etc. The multi-core processor may be symmetric or asymmetric.

[0065] The processor 610 may further include a communication resource allocation unit 652. The communication resource allocation unit 652 may be configured to allocate resources of the computing device architecture 600 for communication as discussed herein. The communication resource allocation unit 652 is further discussed below, and this description may generally refer to the processor 610 or the computing device architecture 600 as performing any function of the functional unit 652.

[0066] The communication resource allocation unit 652 is configured to determine and control which resources are used for communication. The communication resource allocation unit 652 may be configured to use information from the sensor 650, the position of the sensors in the computing device architecture 600, the coverage area of the sensor 650 (e.g., the field of view of a camera), etc., to draw conclusions from the information provided by the sensor 650, which may affect how the communication resource allocation unit 652 allocates one or more resources (e.g., the (usage) of one or more components of the computing device architecture 600, the energy used by the computing device architecture 600, etc.) for communication. The communication resource allocation unit 652 may, for example, determine the directivity and / or power for communication transmission and / or reception, and / or may determine the number of antenna beams and / or the number of antennas for transmission and / or reception, and / or may determine the processing effort (also referred to herein as the processing level) for communication transmission and / or reception (e.g., processing power, bandwidth, and / or time). The communication resource allocation unit 652 may save power, for example, by selectively transmitting and / or receiving with a bandwidth less than the full bandwidth and / or by selectively reducing message repetition (i.e., how many times a message is repeated). The communication resource allocation unit 652 may use power and / or beam management to allocate communication resources, as discussed herein, for example.

[0067] To enable user interaction with the computing device architecture 600, the input device 645 may represent any number of input mechanisms, such as a microphone for voice, a touch-sensitive screen for gesture or graphical input, a keyboard, a mouse, motion input, voice, etc. The output device 635 may also be one or more of the multiple output mechanisms known to those skilled in the art, such as a display, a projector, a television, a speaker device, etc. In some instances, a multimodal computing device may enable a user to provide multiple types of input to communicate with the computing device architecture 600. The communication interface 640 may generally govern and manage user input and computing device output. There is no limitation on operating on any particular hardware arrangement, and thus the basic features here can be easily replaced with improved hardware or firmware arrangements when they are developed.

[0068] The storage device 630 is a non-volatile memory and can be a hard disk or other types of computer-readable media that can store data accessible by a computer, such as magnetic tape cartridges, flash memory cards, solid-state memory devices, digital versatile discs, cassette tapes, random access memory 625, read-only memory (ROM) 620, and their hybrids. The storage device 630 can include services 632, 634, 636 for controlling the processor 610. Other hardware or software modules are envisioned. The storage device 630 can be connected to the computing device connection 605. In one aspect, a hardware module that performs a specific function can include software components stored in a computer-readable medium, which are connected to the necessary hardware components (such as the processor 610, the connection 605, the output device 635, etc.) to perform the function.

[0069] In some cases, the computing device architecture 600 can be a user equipment (UE) that can be coupled to a wireless communication system.

[0070] Figure 7 is a block diagram of a UE 700 according to aspects of the present disclosure. The UE 700 can be an example of any of the UEs 812, 813, 814 (as shown below in Figure 8 ), and includes a computing platform that includes a processor 710, a memory 711 that includes software (SW) 712, one or more sensors 713, a transceiver interface 714 for a transceiver 715 (which includes a wireless transceiver 740 and a wired transceiver 750), and a user interface 716. The processor 710, the memory 711, the (one or more) sensors 713, the transceiver interface 714, and the user interface 716 can be communicatively coupled to each other via a bus 720 (which can be configured for optical and / or electrical communication, for example). One or more of the illustrated components (such as one or more of the sensors 713, etc.) can be omitted from the UE 700.

[0071] The processor 710 may include one or more intelligent hardware devices, such as a central processing unit (CPU), a microcontroller, an application specific integrated circuit (ASIC), etc. The processor 710 may include multiple processors, including a general-purpose / application processor 730, a digital signal processor (DSP) 731, a modem processor 732, a video processor 733, and / or a sensor processor 734. One or more of the processors 730-734 may include multiple devices (e.g., multiple processors). For example, the sensor processor 734 may include processors for radar, ultrasonic, and / or lidar, etc. The modem processor 732 may support dual SIM / dual connectivity (or even more SIMs). For example, a SIM (Subscriber Identity Module or Subscriber Identification Module) may be used by an original equipment manufacturer (OEM), and another SIM may be used by an end user of the UE 700 for connectivity. The memory 711 is a non-transitory storage medium, which may include random access memory (RAM), flash memory, disk memory, and / or read-only memory (ROM), etc. The memory 711 stores software 712, which may be processor-readable and processor-executable software code containing instructions configured to cause the processor 710 to perform various functions described herein when executed. Alternatively, the software 712 may not be directly executed by the processor 710, but may be configured to (e.g., when compiled and executed) cause the processor 710 to perform these functions. This description may only refer to the processor 710 performing functions, but this includes other implementations, such as where the processor 710 executes software and / or firmware. This description may refer to the processor 710 performing a function as a shorthand for one or more of the processors 730-734 that perform the function. This description may refer to the UE 700 performing a function as a shorthand for one or more appropriate components of the UE 700 that perform the function. In addition to and / or instead of the memory 711, the memory 710 may include a memory with stored instructions. The functions of the processor 710 are discussed more fully below.

[0072] Figure 7 The configuration of the UE 700 shown is an example and not a limitation of aspects and features of the present disclosure (including the claims), and other configurations may be used. For example, example configurations of a UE include one or more of the processors 730-734 of the processor 710, the memory 711, and a wireless transceiver 740. Other example configurations include one or more of the processors 730-734 of the processor 710, the memory 711, the wireless transceiver 740, and one or more sensors 713, a user interface 716, and / or a wired transceiver 750.

[0073] The UE 700 may include a modem processor 732 that can perform baseband processing of signals received and downconverted by the transceiver 715 and / or the SPS receiver 781 (discussed below). The modem processor 732 may perform baseband processing of signals to be upconverted for transmission by the transceiver 715. Additionally or alternatively, the baseband processing may be performed by the processor 730 and / or the DSP 731. However, other configurations may be used to perform the baseband processing.

[0074] The UE 700 includes a sensor 713, which may include one or more of various types of sensors, e.g., an environmental sensor 760, a status sensor 770, and a position / motion / orientation (PMO) sensor 780. The PMO sensor 780 may include one or more sensors from which the position and / or motion and / or orientation of the UE 700 can be determined. Although each of the sensors 760, 770, 780 may be referred to in the singular, each of the sensors 760, 770, 780 may include more than one sensor, examples of some of which are explicitly discussed herein. The sensor 713 may generate analog and / or digital signals that may be stored in the memory 711 and processed by the processor 710 (e.g., the processor 730, the DSP 731, the video processor 733, and / or the sensor processor 734 as appropriate) to support one or more applications, e.g., applications for positioning, navigation, and / or resource management. The description herein may generally refer to the processor 710 as performing one or more functions performed by one or more of the processors 730 - 734.

[0075] The sensor 713 can be used for resource management, relative position measurement, relative position determination, motion determination, etc. The information detected by the sensor(s) 713 can be used to determine how to allocate the resources of the UE 700, e.g., transmission power, processing power for the transmission and / or reception of communication signals, transmission and / or reception directivity, etc. Throughout the discussion herein, the plural term "resources" is often used, but the term also includes the singular, i.e., for example, a single allocated resource. Additionally or alternatively, the information detected by the sensor can be used for motion detection, relative displacement, dead reckoning, sensor-based position determination, and / or sensor-assisted position determination. The sensor 713 can be used to determine whether the UE 700 is stationary (immobile) or mobile and / or whether to report certain useful information about the mobility of the UE 700 to the server 143. For example, based on the information obtained / measured by the sensor 713, the UE 700 may Figure 8The server 843 notifies / reports that the UE 700 has detected movement or that the UE 700 has moved, and reports the relative displacement / distance (e.g., via dead reckoning, or sensor-based position determination, or sensor-assisted position determination enabled by the sensor 713). In another example, for relative positioning information, the sensor / IMU can be used to determine the angle, size (e.g., width and / or height), and / or orientation, etc. of another device relative to the UE 700. The position and / or movement of the UE 700 can be used to determine resource allocation for communication between vehicles, for example. The UE 700 can be arranged in or integrated with a vehicle, for example. For example, the UE 700 can be Figure 8 the UE 814, which is a vehicle, and in Figure 8 the example shown is a car, but other forms of vehicles can also be used, such as trucks, aerial UEs (such as drones), etc. Thus, the UE 700 can be configured for various forms of communication, such as, V2V (vehicle-to-vehicle), V2X (vehicle-to-everything), CV2X (cellular V2X), CV2V (cellular V2V), etc.

[0076] The environmental sensor 760 may include one or more sensors for measuring one or more internal and / or external environmental conditions. In this example, the environmental sensor 760 includes a camera 761, a microphone 762, an airflow sensor 763, a temperature sensor 764, a motion sensor 765, and a LIDAR (Light Detection and Ranging) sensor 766. Although each of the sensors 761-766 may be referred to in the singular, each of the sensors 761-766 may include more than one sensor, examples of some of which are explicitly discussed herein. For example, the camera 761 may include at least one camera configured (e.g., designed, fabricated, positioned, and directed) to capture images external to the UE 700 and / or may include one or more cameras configured to capture images inside the UE 700 (e.g., in the passenger cabin of a vehicle). As other examples, the microphone 762, the temperature sensor 764, and / or the motion sensor 765 may include multiple microphones, multiple thermometers, and / or multiple motion detectors configured to detect sound, temperature, and / or motion external and / or internal to the UE 700 (e.g., a vehicle), respectively. In fact, any one of the sensors 761-765 may include multiple corresponding sensors external to the vehicle and / or multiple corresponding sensors inside the vehicle for performing corresponding measurements at multiple locations around the vehicle and / or in different directions relative to the vehicle. Although this discussion assumes that the UE 700 is a vehicle, the UE 700 may be a different device (i.e., different from a vehicle). The sensors 761-765 are examples, and one or more of the sensors 761-765 may be omitted from the UE 700 and / or one or more other sensors may be included in the UE 700. For example, the environmental sensor 760 may include one or more barometric pressure sensors and / or one or more ambient light sensors and / or one or more other sensors.

[0077] The camera 761 may be configured to capture still and / or moving images. For example, each camera of the camera 761 may include, for example, one or more imaging sensors (e.g., charge-coupled device (CCD) or CMOS imager), one or more lenses, analog-to-digital circuitry, a frame buffer, etc. Additional processing, conditioning, encoding, and / or compression of the signals representing the captured images may be performed by the general-purpose processor 730 and / or the DSP 731. Additionally or alternatively, the video processor 733 may perform conditioning, encoding, compression, and / or manipulation of the signals representing the captured images. The video processor 733 may decode / decompress stored image data for presentation on a display device (not shown), such as the user interface 716.

[0078] The motion detector 765 is configured to detect motion. For example, the motion detector 765 can send and receive acoustic waves (e.g., ultrasonic signals) and analyze the received signals to obtain the Doppler effect indicative of motion. Using multiple motion detectors can help identify the relative position of an object (e.g., the direction relative to the UE 700).

[0079] The LIDAR sensor 766 is configured to determine the distance to an object, which can be used by the processor 710 to detect the presence of the object. Using multiple LIDAR sensors can help identify the relative position of the object (e.g., the direction relative to the UE 700). The LIDAR sensor 766 can be referred to as a LADAR (laser radar) sensor, which is common when using LIDAR sensors to detect relatively small objects such as vehicles or other artificial objects.

[0080] The status sensor 770 is configured to provide one or more indications of one or more UE conditions of the UE 700 indicative of the UE status. For example, where the UE 700 is a vehicle, the UE condition (where the UE condition is thus a vehicle condition) can include the gear state of the vehicle (e.g., whether the vehicle is in park, drive, or neutral, or which gear the vehicle is currently in (e.g., reverse, first, second, third, fourth, etc.)). Another vehicle condition can be whether the emergency brake is engaged. Another vehicle condition can be whether the main brake is currently engaged and to what extent it may be engaged. Another vehicle condition can be whether the accelerator is currently engaged and to what extent it may be engaged. Another vehicle condition can be the state of the steering wheel (e.g., which way it is turned and by how much) and / or the state of the wheels guiding the vehicle (e.g., the direction of the front wheels). Other example vehicle conditions can include whether the right turn indicator is actuated, whether the left turn indicator is actuated, and / or whether the hazard lights (also known as "four-way" or emergency flashers, etc.) are actuated. Another exemplary vehicle condition can include the tire state (e.g., tire pressure, rate of change of tire pressure (e.g., to indicate flat or burst)). Another example vehicle condition is the speed, e.g., as recorded by the vehicle's speedometer and / or determined by other means (e.g., using the PMO sensor 780). These vehicle conditions are examples, and one or more other sensors can be provided to sense one or more other vehicle conditions. Additionally, in the case where the UE 700 is not a vehicle or not associated with a vehicle, many other UE conditions can be sensed and indicated.

[0081] The PMO sensor 780 may include one or more sensors for providing one or more UE conditions (e.g., vehicle conditions). For example, the PMO sensor 780 may include one or more sensors for measuring information from which the location and / or motion and / or orientation of the UE 700 can be determined, and possibly determine the location and / or motion (e.g., speed and / or direction of motion) and / or orientation of the UE 700. In this example, the PMO sensor 780 includes a satellite positioning system (SPS) receiver 781, a positioning device (PD) 782, an inertial measurement unit (IMU) 783, and a magnetometer 784. The components of the PMO sensor 780 shown are examples, and one or more of these components may be omitted and / or one or more other components may be included in the PMO sensor 780. Further, while each of the components 781 - 784 of the PMO sensor 780 may be referred to in the singular, each of the components 781 - 784 may include more than one such component, examples of some of which are explicitly discussed herein. Additionally, the PD 782 may be part of the SPS receiver 781 and / or the IMU 783 and / or part of the processor 710, and may not be a sensor itself (e.g., may not make measurements), but may process information from one or more of the sensors 781, 783, 784, and / or one or more other sensors. The PMO 780 may be used to determine the UE speed and / or direction of motion, e.g., by determining the UE location over time (e.g., using SPS, one or more ranging sensors, etc.).

[0082] The IMU 783 may include one or more inertial sensors, e.g., an accelerometer 787 (e.g., responsive to the acceleration of the UE 700 in three dimensions) and / or a gyroscope 788. Although each of the sensors 787, 788 may be referred to in the singular, each of the sensors 787, 788 may include more than one sensor. The accelerometer may include one or more three-dimensional accelerometers, and the gyroscope may include one or more three-dimensional gyroscopes. The IMU 783 may be configured to provide measurements regarding the direction of movement and / or the speed of movement of the UE 700, which may be used for, e.g., relative position determination. For example, the accelerometer 787 and / or the gyroscope 788 of the IMU 783 may detect the linear acceleration and the rotational speed of the UE 700, respectively. The linear acceleration and rotational speed measurements of the UE 700 may be integrated over time (e.g., by the IMU 783 and / or the PD 782) to determine the instantaneous direction of movement and the displacement of the UE 700. The instantaneous direction of movement and the displacement may be integrated to track the position of the UE 700. By way of example, a reference position of the UE 700 may be determined at a certain moment, e.g., using the SPS receiver 781 (and / or via some other component), and the measurements from the accelerometer 787 and the gyroscope 788 made after this moment may be used for dead reckoning to determine the current position of the UE 700 based on the movement (direction and distance) of the UE 700 relative to the reference position.

[0083] The magnetometer 784 may determine the magnetic field strength in different directions, which may be used to determine the orientation of the UE 700, which may be used, e.g., to provide a digital compass for the UE 700. The magnetometer 784 may include a two-dimensional magnetometer configured to detect and provide an indication of the magnetic field strength in two orthogonal dimensions. Additionally or alternatively, the magnetometer 784 may include a three-dimensional magnetometer configured to detect and provide an indication of the magnetic field strength in three orthogonal dimensions. The magnetometer 784 may provide a component for sensing the magnetic field and, e.g., providing an indication of the magnetic field to the processor 710. The magnetometer 784 may provide measurements to determine the orientation (e.g., relative to magnetic north and / or true north) that may be used for any of a variety of purposes, e.g., to support one or more compass applications. Although referred to in the singular, the magnetometer 784 may include multiple magnetometers.

[0084] An SPS receiver 781 (e.g., a Global Positioning System (GPS) receiver or other Global Navigation Satellite System (GNSS) receiver) may be capable of receiving and acquiring SPS signals 785 via an SPS antenna 786. The antenna 786 is configured to convert the wireless SPS signals 785 into a wired signal (e.g., an electrical signal or an optical signal), and may be integrated with the antenna 746. The SPS receiver 781 may be configured to process the acquired SPS signals 785, in whole or in part, for estimating the position of the UE 700. For example, the SPS receiver 781 may be configured to determine the position of the UE 700 by trilateration using the SPS signals 785. The general-purpose processor 730, the memory 711, the DSP 731, and / or one or more dedicated processors (not shown) may be used to process the acquired SPS signals, in whole or in part, and / or to compute an estimated position of the UE 700 in conjunction with the SPS receiver 781. The memory 711 may store indications (e.g., measurements) of the SPS signals 785 and / or other signals (e.g., signals acquired from the wireless transceiver 740) for performing positioning operations. The general-purpose processor 730, the DSP 731, and / or one or more dedicated processors and / or the memory 711 may provide or support a position engine for processing measurements to estimate the position of the UE 700. Additionally or alternatively, some or all of the position determination signal processing may be performed by the PD 782.

[0085] A positioning device (PD) 782 can be configured to determine the location of the UE 700 (including the absolute and / or relative location of the UE 700), the movement of the UE 700, and / or time. For example, the PD 782 can communicate with the SPS receiver 781 and / or include some or all of the SPS receiver 781. The PD 782 can use measurements from the SPS receiver 781 and / or the IMU 783 and / or the magnetometer 784 to determine the location and / or movement of the UE 700, for example, using trilateration and / or dead reckoning. The PD 782 can work in conjunction with the processor 710 and the memory 711 as appropriate to perform at least a portion of one or more positioning methods (to determine the location of the UE 700), but the description herein can refer only to the PD 782 being configured to perform or performing one or more operations in accordance with a positioning method. The PD 782 can also or alternatively be configured to use ground-based signals (e.g., at least some of the signals 748 discussed below) to determine the location of the UE 700 for trilateration, for assisting in obtaining and using the SPS signal 785, or both. The PD 782 can be configured to use one or more other techniques (e.g., relying on the self-reported location of the UE (e.g., as part of a location beacon of the UE)) to determine the location of the UE 700, and can use a combination of techniques (e.g., SPS and ground positioning signals) to determine the location of the UE 700. The PD 782 can be configured to provide an indication of the uncertainty and / or error of the determined location and / or movement. The functionality of the PD 782 can be provided in various ways and / or configurations, for example, by the general / application processor 730, the transceiver 715, the SPS receiver 781, and / or another component of the UE 700, and can be provided by hardware, software, firmware, or various combinations thereof.

[0086] The transceiver 715 may include a wireless transceiver 740 and / or a wired transceiver 750, which are configured to communicate with other devices via a wireless connection and a wired connection, respectively. For example, the wireless transceiver 740 may include a wireless transmitter 742 and a wireless receiver 744 coupled to one or more antennas 746 for transmitting (e.g., on one or more uplink channels and / or one or more sidelink channels) and / or receiving (e.g., on one or more downlink channels and / or one or more sidelink channels) wireless signals 748 and converting the signals from the wireless signals 748 to wired (e.g., electrical and / or optical) signals and from the wired signals to the wireless signals 748. The wireless transceiver 740 may be configured for wireless communication to send communications to and receive communications from various entities (e.g., other UEs, base stations, etc.). Accordingly, the wireless transmitter 742 may include multiple transmitters that may be discrete components or combined / integrated components, and / or the wireless receiver 744 may include multiple receivers that may be discrete components or combined / integrated components. The wireless transceiver 740 may be configured to operate according to such as 5G New Radio (NR), GSM (Global System for Mobile Communications), UMTS (Universal Mobile Telecommunications System), AMPS (Advanced Mobile Phone System), CDMA (Code Division Multiple Access), WCDMA (Wideband CDMA), LTE (Long Term Evolution), LTE Direct (LTE-D), 3GPP LTE-V2X (PC5), IEEE802.11 (including IEEE 802.11p), WiFi, WiFi Direct (WiFi-D), Bluetooth®, ZigBee, etc. The New Radio may use millimeter wave frequencies and / or frequencies below 6 GHz. The wired transceiver 750 may include a wired transmitter 752 and a wired receiver 754 configured for wired communication, e.g., a network interface that may communicate with Figure 8 the network 830, e.g., to send communications to and receive communications from the gNB. The wired transmitter 752 may include multiple transmitters that may be discrete components or combined / integrated components, and / or the wired receiver 754 may include multiple receivers that may be discrete components or combined / integrated components. The wired transceiver 750 may be configured for, e.g., optical communication and / or electrical communication. The transceiver 715 may be communicatively coupled to the transceiver interface 714, e.g., via an optical and / or electrical connection. The transceiver interface 714 may be at least partially integrated with the transceiver 715.

[0087] The wireless transceiver 740 can be configured for beam management to affect the directivity of the wireless transceiver 740 (e.g., antenna 746). For example, the wireless transceiver 740 can be configured to implement beamforming for the transmission and / or reception of signal 748. Antenna 746 can include multiple antennas that are configured (e.g., designed, manufactured, arranged, and oriented) to point in different directions relative to the body of UE 700. One or more of such antennas can be capable of electronic beam steering (e.g., using appropriate phase shifts of the elements of the antenna) and / or mechanical beam steering. Additionally or alternatively, the transceiver 740 can be configured to selectively (e.g., under the guidance / control of the processor 710) transmit from one or more antennas and / or selectively process signals received from one or more antennas (e.g., passed from the transceiver 715 to the processor 710 or processed by the processor 710).

[0088] The user interface 716 can include one or more of several devices, such as, for example, a speaker, a microphone, a display device, a vibration device, a keyboard, a touch screen, etc. The user interface 716 can include more than one of any of these devices. The user interface 716 can be configured to enable a user to interact with one or more applications hosted by the UE 700. For example, the user interface 716 can store indications of analog and / or digital signals in the memory 711 for processing by the DSP 731 and / or the general-purpose processor 730 in response to an action from the user. Similarly, applications hosted on the UE 700 can store indications of analog and / or digital signals in the memory 711 to present output signals to the user. The user interface 716 can include audio input / output (I / O) devices, which include, for example, a speaker, a microphone, a digital-to-analog circuit, an analog-to-digital circuit, an amplifier, and / or a gain control circuit (including more than one device of any of these devices). Other configurations of the audio I / O devices can be used. Additionally or alternatively, the user interface 716 can include one or more touch sensors responsive to touch and / or pressure, for example, on the keyboard and / or touch screen of the user interface 716.

[0089] Figure 8FIG. 810 shows an example wireless communication system in accordance with aspects of the present disclosure. The wireless communication system 810 includes user equipment (UE) 812, UE 813, UE 814, base transceiver stations (BTS) 820, 821, 822, 823, network 830, core network 840, external client 850, and roadside unit (RSU) 860. The core network 840 (e.g., 5G core network (5GC)) may include backend devices including an access and mobility management function (AMF) 841, a session management function (SMF) 842, a server 843, and a gateway mobile location center (GMLC) 844, among others. The AMF 841, SMF 842, server 843, and GMLC 844 are communicatively coupled to each other. The server 843 may be, for example, a location management function (LMF) that supports the positioning of UEs 812 to 814 (e.g., using techniques such as assisted global navigation satellite system (A-GNSS), OTDOA (observed time difference of arrival, e.g., downlink (DL) OTDOA and / or uplink (UL) OTDOA), round-trip time (RTT), multi-cell RTT, RTK (real-time kinematic), PPP (precise point positioning), DGNSS (differential GNSS), E-CID (enhanced cell ID), AoA (angle of arrival), AoD (angle of departure), etc.). The RSU 860 may be configured for communication with UEs 812 - 814 (e.g., two-way or one-way communication). For example, the RSU 860 may be configured to have communication capabilities similar to any of the BTSs 820 - 823, but may have different functions (e.g., different programming). Additionally, although Figure 8 one RSU 860 is shown in FIG. 800, the system 800 may include more than one RSU, or may not include any RSUs. The communication system 810 may include additional or alternative components.

[0090] The communication system 810 may utilize information from a constellation 880 of artificial satellites (SVs) 881, 882, 883. The constellation 880 may correspond to a respective global navigation satellite system (GNSS) (i.e., satellite positioning system (SPS)) (e.g., Global Positioning System (GPS), Global Navigation Satellite System (GLONASS), Galileo, Beidou) or some other local or regional SPS (e.g., Indian Regional Navigation Satellite System (IRNSS), European Geostationary Navigation Overlay Service (EGNOS), or Wide Area Augmentation System (WAAS)). Only three SVs are shown for the constellation 880, but a GNSS SV constellation will contain more than three SVs.

[0091] The LMF may also be referred to as a Location Manager (LM), Location Function (LF), Commercial LMF (CLMF), or Value-Added LMF (VLMF). The server 843 (e.g., the LMF) and / or one or more other devices of the system 810 (e.g., one or more of the UEs 812 - 814) may be configured to determine the location of the UEs 812 - 814. The server 843 may communicate directly with the BTS 821 (e.g., gNB) and / or one or more other BTSs, and may be integrated with the BTS 821 and / or one or more other BTSs. The SMF 842 may serve as an initial contact point for a Service Control Function (SCF) (not shown) to create, control, and delete media sessions. The server 843 (e.g., the LMF) may be co-located with or integrated with the gNB or a TRP (Transmit / Receive Point), or may be located remotely from the gNB and / or the TRP and configured to communicate directly or indirectly with the gNB and / or the TRP.

[0092] The AMF 841 may serve as a control node for handling signaling between the UEs 812 - 814 and the core network 840, and provide QoS (Quality of Service) flow and session management. The AMF 841 may support the mobility of the UEs 812 - 814, including cell change and handover, and may participate in supporting the signaling connection to the UEs 812 - 814.

[0093] System 810 is capable of wireless communication because the components of system 810 can communicate with each other directly or indirectly (at least sometimes using a wireless connection) via, for example, BTSs 820 - 823 and / or network 830 (and / or one or more other devices not shown, such as one or more other base transceiver stations). Although BTSs 820 - 823 are shown as separate from network 830, network 830 can include one or more of BTSs 820 - 823 and can constitute a radio access network (RAN), for example, a new radio (NR) RAN, which can also be referred to as a fifth generation (5G) next generation (NG) RAN (NG-RAN). For indirect communication, the communication can be changed during transmission from one entity to another, for example, to change the header information of a data packet, change the format, etc. UEs 812 - 814 can communicate with BTSs 820 - 823 via the Uu interface, for example, in LPP messages (LTE positioning protocol messages encapsulated in radio resource control) encapsulated in RRC over the Uu interface. The UEs 812 - 814 shown are smart phones, tablet computers, and vehicle-based devices, but these are merely examples because UEs 812 - 814 do not need to be any of these configurations and can use other configurations of UEs. UEs 812 - 814, BTSs 820 - 823, network 830, core network 840, and / or external client 850. For example, such other devices can include Internet of Things (IoT) devices, medical devices, home entertainment, and / or automation devices, etc. Core network 840 can communicate with external client 850 (e.g., a computer system), for example, to allow external client 850 to request and / or receive location information about UEs 812 - 814 (e.g., via GMLC 844).

[0094] UEs 812 - 814 or other devices may be configured to communicate in various networks and / or for various purposes and / or using various technologies (e.g., 5G, Wi-Fi communication, Wi-Fi communication at multiple frequencies, satellite positioning, one or more types of communication (e.g., GSM (Global System for Mobile Communications), CDMA (Code Division Multiple Access), LTE (Long Term Evolution), V2X (e.g., V2P (Vehicle-to-Pedestrian), V2I (Vehicle-to-Infrastructure), V2V (Vehicle-to-Vehicle), etc.), IEEE 802.81p, etc.)). V2X communication may be cellular (Cellular-V2X (C-V2X)) and / or WiFi (e.g., DSRC (Dedicated Short Range Communications)). System 810 may support operation on multiple carriers (waveform signals at different frequencies). A multi-carrier transmitter may simultaneously transmit modulated signals on multiple carriers. Each modulated signal may be a Code Division Multiple Access (CDMA) signal, a Time Division Multiple Access (TDMA) signal, an Orthogonal Frequency Division Multiple Access (OFDMA) signal, a Single Carrier Frequency Division Multiple Access (SC-FDMA) signal, etc. Each modulated signal may be transmitted on a different carrier and may carry pilots, overhead information, data, etc.

[0095] BTSs 820 - 823 may communicate wirelessly with UEs 812 - 814 in system 810 via one or more antennas. A BTS may also be referred to as a base station, access point, g Node B (gNB), access node (an), Node B, evolved Node B (eNB), etc. For example, each of BTSs 820, 821 may be a gNB or a transmission point gNB, BTS 822 may be a macro cell (e.g., a high-power cellular base station) and / or a small cell (e.g., a low-power cellular base station), and BTS 823 may be an access point (e.g., a short-range base station configured to communicate using short-range technologies such as Wi-Fi, Wi-Fi-Direct (WiFi-D), Bluetooth®, Bluetooth® Low Energy (BLE), Zigbee, etc.). One or more of BTSs 820 - 823 may be configured to communicate with UEs 812 - 814 via multiple carriers. Each of BTSs 820, 821 may provide communication coverage for a corresponding geographical area (e.g., a cell). Each cell may be divided into multiple sectors based on the base station antennas.

[0096] Each of BTSs 820-823 includes one or more transmission / reception points (TRPs). For example, each sector within a cell of a BTS may include a TRP, although multiple TRPs may share one or more components (e.g., share a processor but have separate antennas). System 810 may include only macro TRPs, or system 810 may have different types of TRPs, such as macro TRPs, pico TRPs, and / or femto TRPs, etc. A macro TRP may cover a relatively large geographical area (e.g., with a radius of several kilometers) and may allow unrestricted access by terminals having a service subscription. A pico TRP may cover a relatively small geographical area (e.g., a pico cell) and may allow unrestricted access by terminals having a service subscription. A femto or home TRP may cover a relatively small geographical area (e.g., a femto cell) and may allow restricted access by terminals associated with the femto cell (e.g., terminals of users in a home).

[0097] UEs 812-814 may be configured to indirectly connect to one or more communication networks via one or more device-to-device (D2D) peer-to-peer (P2P) links. The D2D P2P links may be supported by any suitable D2D radio access technology (RAT) (such as LTE Direct (LTE-D), WiFi Direct (WiFi-D), Bluetooth®, ultra-wideband (UWB), etc.). One or more UEs in a group of UEs 812-814 utilizing D2D communication may be within the geographical coverage area of a TRP (e.g., one or more of BTSs 820-823). Other UEs in such a group may be outside such geographical coverage area or otherwise unable to receive transmissions from the base station. A group of UEs 812-814 communicating via D2D communication may utilize a one-to-many (1:M) system, where each UE may transmit to other UEs in the group. The TRPs of BTSs 820-823 may facilitate the scheduling of resources for D2D communication. In other cases, D2D communication may be performed between UEs without involving a TRP.

[0098] Aspects of the present invention are applicable to any suitable electronic device (such as a security system, a smart phone, a tablet computer, a laptop computer, a vehicle, a drone, or other devices) that includes or is coupled to one or more active depth sensing systems. Although described below with respect to a device having or coupled to one light projector, aspects of the present disclosure are applicable to devices having any number of light projectors and are thus not limited to a particular device.

[0099] The term "device" is not limited to one or a specific number of physical objects (such as a smart phone, a controller, a processing system, etc.). As used herein, a device can be any electronic device having one or more components that can implement at least some portions of the present disclosure. Although the following description and examples use the term "device" to describe various aspects of the present disclosure, the term "device" is not limited to a particular configuration, type, or number of objects. Additionally, the term "system" is not limited to multiple components or a particular embodiment. For example, a system can be implemented on one or more printed circuit boards or other substrates and can have movable or static components. Although the following description and examples use the term "system" to describe various aspects of the present disclosure, the term "system" is not limited to a particular configuration, type, or number of objects.

[0100] Specific details are provided in the above description to provide a thorough understanding of the embodiments and examples provided herein. However, one of ordinary skill in the art will understand that the embodiments can be practiced without these specific details. For clarity of illustration, in some instances, the technology can be presented as including separate functional blocks, which include functional blocks containing devices, device components, steps or routines in a method embodied in software or a combination of hardware and software. In addition to those components shown and / or described herein, additional components can be used. For example, circuits, systems, networks, processes, and other components can be shown in block diagram form as components so as not to obscure the embodiments with unnecessary details. In other instances, well-known circuits, processes, algorithms, structures, and techniques can be shown without unnecessary details so as not to obscure the embodiments.

[0101] The above can describe various embodiments as processes or methods depicted as flowcharts, flow diagrams, data flow diagrams, structure diagrams, or block diagrams. Although a flowchart can describe operations as a sequential process, many operations can be performed in parallel or simultaneously. Additionally, the order of the operations can be rearranged. A process terminates when its operations are complete, but can have additional steps not included in the figure. A process can correspond to a method, function, procedure, subroutine, subprogram, etc. When a process corresponds to a function, its termination can correspond to the function returning to the calling function or the main function.

[0102] The processes and methods according to the above examples can be implemented using computer-executable instructions stored in a computer-readable medium or otherwise obtainable from a computer-readable medium. Such instructions can include, for example, instructions and data that cause or otherwise configure a general-purpose computer, a special-purpose computer, or a processing device to perform a particular function or a group of functions. Portions of the computer resources used can be accessed via a network. The computer-executable instructions can be, for example, binary files, intermediate format instructions such as assembly language, firmware, source code, etc.

[0103] The term "computer-readable medium" includes, but is not limited to, portable or non-portable storage devices, optical storage devices, and various other media capable of storing, containing, or carrying instructions and / or data. A computer-readable medium may include non-transitory media in which data can be stored and that do not include carrier waves and / or transient electronic signals propagated wirelessly or via a wired connection. Examples of non-transitory media may include (but are not limited to) magnetic disks or tapes, optical storage media (such as flash memory, memory, or memory devices), magnetic or optical disks, flash memory, USB devices with non-volatile memory, networked storage devices, compact discs (CDs) or digital versatile discs (DVDs), any suitable combination thereof, and the like. A computer-readable medium may have code and / or machine-executable instructions stored thereon, and the code and / or machine-executable instructions may represent a program, function, subroutine, procedure, routine, subroutine, module, software package, class, or any combination of instructions, data structures, or program statements. Code segments may be coupled to another code segment or hardware circuit by passing and / or receiving information, data, arguments, parameters, or memory contents. Information, arguments, parameters, data, etc. may be passed, forwarded, or transmitted via any suitable means including memory sharing, message passing, token passing, network transmission, and the like.

[0104] In some embodiments, computer-readable storage devices, media, and memories may include cables or wireless signals that include bitstreams and the like. However, when mentioned, non-transitory computer-readable storage media expressly exclude media such as energy, carrier signals, electromagnetic waves, and signals themselves.

[0105] Devices implementing the processes and methods according to these disclosures may include hardware, software, firmware, middleware, microcode, hardware description language, or any combination thereof, and may take any of a variety of form factors. When implemented in software, firmware, middleware, or microcode, the program code or code segments for performing the necessary tasks (e.g., a computer program product) may be stored in a computer-readable or machine-readable medium. (One or more) processors may perform the necessary tasks. Typical examples of form factors include laptop computers, smart phones, mobile phones, tablet devices, or other small form factor personal computers, personal digital assistants, rack-mounted devices, stand-alone devices, and the like. The functions described herein may also be embodied in peripheral devices or add-on cards. As another example, such functions may also be implemented between different chips or different processes executed in a single device on a circuit board.

[0106] Instructions, the media for carrying such instructions, the computing resources for executing them, and other structures for supporting such computing resources are example means for providing the functions described in this disclosure.

[0107] In the foregoing description, aspects of the present application have been described with reference to specific embodiments thereof, but those skilled in the art will recognize that the present application is not limited thereto. Thus, while illustrative embodiments of the present application have been described in detail herein, it should be understood that the inventive concept may be otherwise variously implemented and employed, and the appended claims are intended to be construed to include such variations, except as limited by the prior art. The various features and aspects of the foregoing application may be used singly or in combination. Additionally, embodiments may be utilized in any number of environments and applications outside of the environment and applications described herein without departing from the broader spirit and scope of the specification. Accordingly, the specification and drawings are to be regarded as illustrative rather than restrictive. For purposes of illustration, the methods have been described in a particular order. It should be understood that in alternative embodiments, the methods may be performed in a different order than that described.

[0108] One of ordinary skill in the art will understand that, without departing from the scope of the specification, the less than (“<”) and greater than (“>”) symbols or terms used herein may be replaced, respectively, with the less than or equal to (“ ”) and greater than or equal to (“≥”) symbols.

[0109] In cases where a component is described as “configured to” perform certain operations, such configuration may be implemented, for example, by designing electronic circuitry or other hardware to perform those operations, by programming a programmable electronic circuit (e.g., a microprocessor or other suitable electronic circuit) to perform those operations, or any combination thereof.

[0110] The phrase “coupled to” means that any component is physically connected, directly or indirectly, to another component, and / or any component communicates, directly or indirectly, with another component (e.g., is connected to another component via a wired or wireless connection, and / or other suitable communication interface).

[0111] The claim language “at least one” of a set and / or “one or more” of a set, or other language, indicates that one member of the set or multiple members of the set (in any combination) satisfy the claim. For example, the claim language reciting “at least one of A and B” or “at least one of A or B” means A, B, or A and B. In another example, the claim language reciting “at least one of A, B, and C” or “at least one of A, B, or C” means A, B, C, or A and B, or A and C, or B and C, or A and B and C. The language “at least one” of a set and / or “one or more” of a set does not limit the set to the items listed in the set. For example, the claim language reciting “at least one of A and B” or “at least one of A or B” may represent A, B, or A and B, and may additionally include items not listed in the set of A and B.

[0112] The various illustrative logical blocks, modules, circuits, and algorithmic steps described in connection with the embodiments disclosed herein may be implemented as electronic hardware, computer software, firmware, or any combination thereof. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present application.

[0113] The techniques described herein may also be implemented in electronic hardware, computer software, firmware, or any combination thereof. Such techniques may be implemented in any of a variety of devices, such as a general purpose computer, a wireless communication device handset, or an integrated circuit device, having a variety of uses including applications incorporated in wireless communication device handsets and other devices. Any feature described as a module or component may be implemented together in an integrated logic device or separately as discrete but interoperable logic devices. If implemented in software, the techniques may be at least partially realized by a computer-readable data storage medium including program code, the program code including instructions that, when executed, perform one or more of the methods described above. The computer-readable data storage medium may form part of a computer program product, which may include packaging materials. The computer-readable medium may include memory or data storage media, such as random access memory (RAM) (e.g., synchronous dynamic random access memory (SDRAM)), read only memory (ROM), non-volatile random access memory (NVRAM), electrically erasable programmable read only memory (EEPROM), flash memory, magnetic or optical data storage media, and the like. Additionally or alternatively, the techniques may be at least partially realized by a computer-readable communication medium that carries or conveys program code in the form of instructions or data structures and that can be accessed, read, and / or executed by a computer, such as a propagated signal or wave.

[0114] The program code can be executed by a processor, which may include one or more processors, such as one or more digital signal processors (DSPs), general microprocessors, application specific integrated circuits (ASICs), field programmable logic arrays (FPGAs), or other equivalent integrated or discrete logic circuits. This processor can be configured to perform any of the techniques described in the present invention. A general-purpose processor can be a microprocessor; however, in an alternative, the processor can be any conventional processor, controller, microcontroller, or state machine. The processor can also be implemented as a combination of computing devices, e.g., a combination of a DSP and a microprocessor, multiple microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration. Thus, as used herein, the term "processor" can refer to any of the foregoing structures, any combination of the foregoing structures, or any other structure or implementation suitable for the apparatus in the techniques described herein.

[0115] Exemplary aspects of the present disclosure include:

[0116] Aspect 1. A first sensing device of an ad hoc network, comprising: at least one battery; at least one memory including instructions; and at least one processor coupled to the at least one memory and configured to: receive an indication of a first task from a second sensing device of the ad hoc network; retrieve a first power profile associated with the first task from the at least one memory; determine a current battery level of the at least one battery; predict a future battery level of the at least one battery based on the current battery level and the first power profile associated with the first task; and transmit the predicted future battery level to another sensing device.

[0117] Aspect 2. The first sensing device according to Aspect 1, wherein the at least one processor is further configured to: determine a duty cycle associated with the first task, and wherein the future battery level is further predicted based on the determined duty cycle of the first task.

[0118] Aspect 3. The first sensing device according to any one of Aspects 1 or 2, wherein the first task includes at least one of the following: sensing the environment around the sensing device; sensing the location of the sensing device; collecting data received from at least one other sensing device of the ad hoc network; processing data received from at least one other sensing device of the ad hoc network; or sending data to a server device, wherein the data is based on data received from at least one other sensing device of the ad hoc network.

[0119] Aspect 4. The first sensing device according to any one of Aspects 1 to 3, wherein the first task includes sensing the environment around the first sensing device, and wherein the at least one processor is further configured to: sense the environment around the first sensing device to generate sensing data, wherein the environment around the first sensing device is the environment around the asset tracked by the first sensing device; and send the sensing data to another sensing device for transmission to a server device.

[0120] Aspect 5. The first sensing device according to any one of Aspects 1 to 4, wherein the first task includes sending data received from at least one other sensing device of an ad-hoc network to a server device, and wherein the at least one processor is further configured to: receive sensing data from another sensing device; and send the sensing data to a server device.

[0121] Aspect 6. The first sensing device according to any one of Aspects 1 to 5, wherein the at least one processor is further configured to: perform a second task, wherein the second task is different from the first task; and retrieve a second power profile associated with the second task from at least one memory, wherein a future battery charge is further predicted based on the second power profile.

[0122] Aspect 7. The first sensing device according to Aspect 6, wherein the second task includes sensing the environment around the sensing device.

[0123] Aspect 8. The first sensing device according to any one of Aspects 1 to 7, wherein the at least one processor is further configured to: obtain information indicating a set of sensing devices and at least one sensing task associated with at least one sensing device in the set of sensing devices; and receive a predicted future battery charge from at least one sensing device from the set of sensing devices.

[0124] Aspect 9. The first sensing device according to Aspect 8, wherein the information indicating the set of sensing devices is preconfigured based on the location of at least one sensing device.

[0125] Aspect 10. The first sensing device according to either Aspect 8 or 9, wherein the at least one processor is further configured to receive an indication to perform a second task from another sensing device of an ad-hoc network, wherein the second task includes selecting a sensing device to perform a third task.

[0126] Aspect 11. The first sensing device according to Aspect 10, wherein the third task includes determining a duty cycle for sensing the environment, and wherein the at least one processor is further configured to: determine the duty cycle of the sensing task associated with at least one sensing device based on the predicted future battery charge and at least one sensing task associated with at least one sensing device in the set of sensing devices; and send an indication of the duty cycle to at least one sensing device.

[0127] Aspect 12. The first sensing device according to aspect 11, wherein at least one processor is further configured to obtain position information associated with the set of sensing devices, and wherein the duty cycle is further determined based on the position information.

[0128] Aspect 13. The first sensing device according to any one of aspects 1 to 12, wherein the first sensing device includes a transceiver for sending and receiving information.

[0129] Aspect 14. A method for network organization at a first sensing device of an ad-hoc network, the method comprising: receiving an indication of a first task from a second sensing device of the ad-hoc network; retrieving a first power profile associated with the first task; determining a current battery level of at least one battery; predicting a future battery level of at least one battery based on the current battery level and the first power profile associated with the first task; and sending the predicted future battery level to another sensing device.

[0130] Aspect 15. The method according to aspect 14, further comprising: determining a duty cycle associated with the first task, and wherein the future battery level is further predicted based on the determined duty cycle of the first task.

[0131] Aspect 16. The method according to any one of aspects 14 or 15, wherein the first task includes at least one of the following: sensing the environment around the sensing device; sensing the position of the sensing device; collecting data received from at least one other sensing device of the ad-hoc network; processing data received from at least one other sensing device of the ad-hoc network; or sending the processed data to a server device, wherein the data is based on data received from at least one other sensing device of the ad-hoc network to the server device.

[0132] Aspect 17. The method according to any one of aspects 14 to 16, wherein the first task includes sensing the environment around the first sensing device, and further comprising: sensing the environment around the first sensing device to generate sensing data, wherein the environment around the sensing device is the environment around an asset tracked by the first sensing device; and sending the sensing data to another sensing device for transmission to a server device.

[0133] Aspect 18. The method according to any one of aspects 14 to 17, wherein the first task includes sending data received from at least one other sensing device of the ad-hoc network to a server device, and the method further comprises: receiving sensing data from another sensing device; and sending the sensing data to the server device.

[0134] Aspect 19. The method according to any one of Aspects 14 to 18 further includes: performing a second task, where the second task is different from the first task; and retrieving a second power profile associated with the second task, where a future battery charge is further predicted based on the second power profile.

[0135] Aspect 20. The method according to Aspect 19, where the second task includes sensing the environment around the sensing device.

[0136] Aspect 21. The method according to any one of Aspects 14 to 20 further includes: obtaining information indicating a set of sensing devices and at least one sensing task associated with at least one sensing device in the set of sensing devices; and receiving a predicted future battery charge from at least one sensing device from the set of sensing devices.

[0137] Aspect 22. The method according to Aspect 21, where the information indicating the set of sensing devices is preconfigured based on the location of at least one sensing device.

[0138] Aspect 23. The method according to any one of Aspects 21 or 22 further includes receiving an indication to perform a second task from another sensing device of the ad-hoc network, where the second task includes selecting a sensing device to perform a third task.

[0139] Aspect 24. The method according to Aspect 23, where the third task includes determining a duty cycle for sensing the environment, and the method further includes: determining the duty cycle of the sensing task associated with at least one sensing device based on the predicted future battery charge and at least one sensing task associated with at least one sensing device in the set of sensing devices; and sending an indication of the duty cycle to at least one sensing device.

[0140] Aspect 25. The method according to Aspect 24 further includes obtaining location information associated with the set of sensing devices, and where the duty cycle is further determined based on the location information.

[0141] Aspect 26. A non-transitory computer-readable medium of a first sensing device of an ad-hoc network, where instructions are stored on the non-transitory computer-readable medium, and when executed by at least one processor, cause the at least one processor to: receive an indication of a first task from a second sensing device of the ad-hoc network; retrieve a first power profile associated with the first task; determine the current battery charge of at least one battery; predict the future battery charge of at least one battery based on the current battery charge and the first power profile associated with the first task; and send the predicted future battery charge to another sensing device.

[0142] Aspect 27. The non-transitory computer-readable medium according to aspect 26, wherein the instructions further cause at least one processor to: determine a duty cycle associated with a first task, and wherein future battery power is further predicted based on the determined duty cycle of the first task.

[0143] Aspect 28. The non-transitory computer-readable medium according to any one of aspects 26 or 27, wherein the first task includes at least one of the following: sensing the environment around the sensing device; sensing the location of the sensing device; collecting data received from at least one other sensing device of the ad-hoc network; processing data received from at least one other sensing device of the ad-hoc network; or sending data to a server device, wherein the data is based on data received from at least one other sensing device of the ad-hoc network.

[0144] Aspect 29. The non-transitory computer-readable medium according to any one of aspects 26 to 28, wherein the first task includes sensing the environment around the first sensing device, and wherein the instructions further cause at least one processor to: sense the environment around the first sensing device to generate sensing data, wherein the environment around the sensing device is the environment around the asset tracked by the first sensing device; and send the sensing data to another sensing device for transmission to a server device.

[0145] Aspect 30. The non-transitory computer-readable medium according to any one of aspects 26 to 29, wherein the first task includes sending data received from at least one other sensing device of the ad-hoc network to a server device, and wherein the instructions further cause at least one processor to: receive sensing data from another sensing device; and send the sensing data to a server device.

[0146] Aspect 31. The non-transitory computer-readable medium according to any one of aspects 26 to 30, wherein at least one processor is further configured to: perform a second task, wherein the second task is different from the first task; and retrieve a second power profile associated with the second task from at least one memory, wherein future battery power is further predicted based on the second power profile.

[0147] Aspect 32. The non-transitory computer-readable medium according to claim 31, wherein the second task includes sensing the environment around the sensing device.

[0148] Aspect 33. The non-transitory computer-readable medium according to any one of aspects 26 to 32, wherein at least one processor is further configured to: obtain information indicating a set of sensing devices and at least one sensing task associated with at least one sensing device in the set of sensing devices; and receive predicted future battery power from at least one sensing device from the set of sensing devices.

[0149] Aspect 34. The non-transitory computer-readable medium according to claim 33, wherein the information indicating the set of sensing devices is preconfigured based on the position of at least one sensing device.

[0150] Aspect 35. The non-transitory computer-readable medium according to any one of aspects 33 or 34, wherein at least one processor is further configured to receive an indication to perform a second task from another sensing device of the ad-hoc network, wherein the second task includes selecting a sensing device to perform a third task.

[0151] Aspect 36. The non-transitory computer-readable medium according to claim 35, wherein the third task includes determining a duty cycle for sensing the environment, and wherein at least one processor is further configured to: determine a duty cycle of a sensing task associated with at least one sensing device based on the predicted future battery power and at least one sensing task associated with at least one sensing device in the set of sensing devices; and send an indication of the duty cycle to at least one sensing device.

[0152] Aspect 37. The non-transitory computer-readable medium according to claim 36, wherein at least one processor is further configured to obtain location information associated with the set of sensing devices, and wherein the duty cycle is further determined based on the location information.

[0153] Aspect 38. The non-transitory computer-readable medium according to any one of aspects 26 to 37, wherein the first sensing device includes a transceiver for sending and receiving information.

[0154] Aspect 39. A first sensing device of an ad-hoc network, the first sensing device comprising: means for receiving an indication of a first task from a second sensing device of the ad-hoc network; means for retrieving a first power profile associated with the first task; means for determining a current battery power of at least one battery; means for predicting a future battery power of at least one battery based on the current battery power and the first power profile associated with the first task; and means for sending the predicted future battery power to another sensing device.

[0155] Aspect 40. The first sensing device according to aspect 39, wherein the first sensing device further includes means for determining a duty cycle associated with the first task, and wherein the future battery power is further predicted based on the determined duty cycle of the first task.

[0156] Aspect 41. A device comprising one or more means for performing the operations according to any one of aspects 14 to 25.

Claims

1. A first sensing device for an ad-hoc network, comprising: At least one battery; At least one memory, said at least one memory including instructions; and At least one processor, said at least one processor coupled to said at least one memory and configured to: Receive an indication of a first task from a second sensing device of the ad-hoc network; Retrieve a first power profile associated with the first task from the at least one memory; Determine the current battery level of the at least one battery; Predict a future battery level of the at least one battery based on the current battery level and the first power profile associated with the first task; And Send the predicted future battery level to another sensing device.

2. The first sensing device according to claim 1, wherein, The at least one processor is further configured to: Determine a duty cycle associated with the first task, and wherein the future battery level is further predicted based on the determined duty cycle of the first task.

3. The first sensing device according to claim 1, wherein, The first task includes at least one of the following: Sense the environment around the sensing device; Sense the location of the sensing device; Collect data received from at least one other sensing device of the ad-hoc network; Process data received from the at least one other sensing device of the ad-hoc network; Or Send data to a server device, wherein the data is based on data received from the at least one other sensing device of the ad-hoc network.

4. The first sensing device according to claim 1, wherein, The first task includes sensing the environment around the first sensing device, and wherein the at least one processor is further configured to: Sense the environment around the first sensing device to generate sensing data, wherein the environment around the first sensing device is the environment around an asset tracked by the first sensing device; And Send the sensing data to another sensing device for transmission to a server device.

5. The first sensing device according to claim 1, wherein, The first task includes sending data received from at least one other sensing device of the ad-hoc network to a server device, and wherein the at least one processor is further configured to: Receive sensing data from another sensing device; and Send the sensing data to the server device.

6. The first sensing device according to claim 1, wherein, The at least one processor is further configured to: Execute a second task, wherein the second task is different from the first task; And Retrieve a second power profile associated with the second task from the at least one memory, wherein the future battery level is further predicted based on the second power profile.

7. The first sensing device according to claim 6, wherein, The second task includes sensing the environment around the sensing device.

8. The first sensing device according to claim 1, wherein, The at least one processor is further configured to: Obtain information indicating a set of sensing devices and at least one sensing task associated with at least one sensing device in the set of sensing devices; And Receive predicted future battery levels from the at least one sensing device from the set of sensing devices.

9. The first sensing device according to claim 8, wherein, The information indicating the set of sensing devices is pre-configured based on the location of the at least one sensing device.

10. The first sensing device according to claim 8, wherein, The at least one processor is further configured to receive an indication to execute a second task from another sensing device of the ad-hoc network, wherein the second task includes selecting a sensing device to execute a third task.

11. The first sensing device according to claim 10, wherein, The third task includes determining a duty cycle for sensing the environment, and wherein the at least one processor is further configured to: Determine a duty cycle of a sensing task associated with the at least one sensing device based on the predicted future battery power and at least one sensing task associated with the at least one sensing device in the set of sensing devices; And Send an indication of the duty cycle to the at least one sensing device.

12. The first sensing device according to claim 11, wherein, The at least one processor is further configured to obtain location information associated with the set of sensing devices, and wherein the duty cycle is further determined based on the location information.

13. The first sensing device according to claim 1, wherein, The first sensing device includes a transceiver for transmitting and receiving information.

14. A method for network organization at a first sensing device of an ad-hoc network, the method comprising: Receiving an indication of a first task from a second sensing device of the ad-hoc network; Retrieving a first power profile associated with the first task; Determining a current battery power of at least one battery; Predicting a future battery power of the at least one battery based on the current battery power and the first power profile associated with the first task; And Sending the predicted future battery power to another sensing device.

15. The method according to claim 14, further comprising: Determining a duty cycle associated with the first task, and wherein the future battery power is further predicted based on the determined duty cycle of the first task.

16. The method according to claim 14, wherein, The first task includes at least one of the following: Sensing the environment around the sensing device; Sensing the location of the sensing device; Collecting data received from at least one other sensing device of the ad-hoc network; Processing data received from the at least one other sensing device of the ad-hoc network; Or Sending the processed data to a server device, wherein the data is based on data received from the at least one other sensing device of the ad-hoc network to the server device.

17. The method according to claim 14, wherein The first task includes sensing the environment around the first sensing device, and further includes: Sensing the environment around the first sensing device to generate sensing data, wherein the environment around the sensing device is the environment around an asset tracked by the first sensing device; and Sending the sensing data to another sensing device for transmission to a server device.

18. The method according to claim 14, wherein, The first task includes sending data received from at least one other sensing device of the ad-hoc network to a server device, and the method further includes: Receiving sensing data from another sensing device; and Sending the sensing data to the server device.

19. The method according to claim 14, further comprising: Performing a second task, wherein the second task is different from the first task; And Retrieving a second power profile associated with the second task, wherein the future battery power is further predicted based on the second power profile.

20. The method according to claim 19, wherein The second task includes sensing the environment around the sensing device.

21. The method according to claim 14, further comprising: Obtain information indicating a set of sensing devices and at least one sensing task associated with at least one sensing device in the set of sensing devices; And Receive a predicted future battery level from the at least one sensing device from the set of sensing devices.

22. The method according to claim 21, wherein, The information indicating the set of sensing devices is preconfigured based on the location of the at least one sensing device.

23. The method according to claim 21 further comprises: Receive an indication to perform a second task from another sensing device of the ad hoc network, where the second task includes selecting a sensing device to perform a third task.

24. The method according to claim 23, wherein, The third task includes determining a duty cycle for sensing the environment, and the method further includes: Determine a duty cycle of the sensing task associated with the at least one sensing device based on the predicted future battery level and the at least one sensing task associated with the at least one sensing device in the set of sensing devices; and Send an indication of the duty cycle to the at least one sensing device.

25. The method according to claim 24 further comprises: Obtain location information associated with the set of sensing devices, and wherein the duty cycle is further determined based on the location information.

26. A non-transitory computer-readable medium of a first sensing device of an ad hoc network, the non-transitory computer-readable medium storing instructions that, when executed by at least one processor, cause the at least one processor to: Receive an indication of a first task from a second sensing device of the ad hoc network; Retrieve a first power profile associated with the first task; Determine a current battery level of at least one battery; Predict a future battery level of the at least one battery based on the current battery level and the first power profile associated with the first task; And Send the predicted future battery level to another sensing device.

27. The non-transitory computer-readable medium according to claim 26, wherein, The instructions further cause the at least one processor to: Determine a duty cycle associated with the first task, and wherein the future battery level is further predicted based on the determined duty cycle of the first task.

28. The non-transitory computer-readable medium according to claim 26, wherein, The first task includes at least one of the following: Sense the environment around the sensing device; Sense the location of the sensing device; Collect data received from at least one other sensing device of the ad hoc network; Process data received from the at least one other sensing device of the ad hoc network; Or Send data to a server device, where the data is based on data received from the at least one other sensing device of the ad hoc network.

29. A first sensing device of an ad hoc network, the first sensing device comprising: Means for receiving an indication of a first task from a second sensing device of the ad hoc network; Means for retrieving a first power profile associated with the first task; Means for determining a current battery level of at least one battery; Means for predicting a future battery level of the at least one battery based on the current battery level and the first power profile associated with the first task; And Means for sending the predicted future battery level to another sensing device.

30. The first sensing device according to claim 29, wherein, The first sensing device further includes components for determining a duty cycle associated with the first task, and wherein a future battery charge is further predicted based on the determined duty cycle of the first task.