RELATED APPLICATIONThis application is a continuation of and claims priority to U.S. patent application Ser. No. 15/941,950 filed Mar. 30, 2018 entitled “Navigation Tracking in an Always Aware Location Environment with Mobile Localization Nodes,” the disclosure of which is incorporated by reference herein in its entirety.
BACKGROUNDGenerally, a geo-fenced area can be established as a virtual perimeter around a boundary of any structure or environment, such as a building, an area of a building, a retail store, a warehouse, an airport terminal, a parking lot, an outdoor region, or other type of designated area. For example, an indoor positioning system for a geo-fenced area can be established with a server computing device and wireless devices, commonly referred to as the system anchors that establish the boundary edges of the indoor positioning system. The anchor devices communicate two-dimensional, x,y-coordinates position location information to the server computing device, where the x,y-coordinates are relative to a horizontal plane of the geo-fenced area. The server computing device and/or the anchor devices can also communicate with mobile devices and wireless tags for two-dimensional device tracking within the geo-fenced area.
For example, a user may carry an object that is trackable with a wireless tag and/or carry a mobile device into the geo-fenced area, and the various devices may be implemented to communicate in the geo-fenced area using various wireless communication technologies, such as ultra-wideband (UWB), Near Field Communication (NFC), Radio-frequency identification (RFID), Real-time Locating System (RTLS), Bluetooth™, and/or Bluetooth Low Energy (BLE). However, the wireless communications between the geo-fenced area devices and a wireless tag or a mobile device that enters and moves about within the geo-fenced area can be delayed due to communication latencies, as well as being limited by the excessive power drain on the wireless tag or mobile device by the constant radio systems communication and positioning updates.
BRIEF DESCRIPTION OF THE DRAWINGSAspects of navigation tracking in an always aware location environment with mobile localization nodes are described with reference to the following Figures. The same numbers may be used throughout to reference like features and components that are shown in the Figures:
FIG. 1 illustrates an example environment in which aspects of navigation tracking in an always aware location environment with mobile localization nodes can be implemented.
FIG. 2 further illustrates an example mobile sensor and mobile device implemented in the example environment in which aspects of navigation tracking in an always aware location environment with mobile localization nodes can be implemented.
FIG. 3 illustrates an example three-dimensional (3D) mesh that is generated to visually represent mobile sensors and devices in the example environment in which aspects of navigation tracking in an always aware location environment with mobile localization nodes can be implemented.
FIG. 4 illustrates example method(s) of navigation tracking in an always aware location environment with mobile localization nodes in accordance with techniques described herein.
FIG. 5 illustrates various components of an example device that can implement aspects of navigation tracking in an always aware location environment with mobile localization nodes.
DETAILED DESCRIPTIONNavigation tracking in an always aware location environment with mobile localization nodes is described, and can be implemented to track objects and items in three dimensions as location coordinates in an “always aware location” (AAL) environment, such as in a geo-fenced area. Aspects of the navigation tracking can be implemented in the context of the AAL environment, such as for any type of inventory tracking, item location, item recovery, and deriving location context of items and objects in the environment. Mobile localization nodes (also referred to as mobile sensors) are generally small electronic tags or labels that can be utilized to process and/or store data and other information, and can be associated with any type of an object or item, such as by being placed in or affixed to an object for inventory tracking and item location detection. The mobile localization nodes can be utilized in a retail store or warehouse environment that has been established as an AAL environment (e.g., a geo-fenced area) having any number of inventoried items, objects, and/or products for storage or purchase, each of which can be identified and tracked with a mobile localization node. The mobile localization nodes may also be used in a person's home when established as an AAL environment to locate and track items, such as to find one's keys, wallet, or mobile phone that has been misplaced in the environment. Generally, as a geo-fenced area or other designated area, an AAL environment can be established as a virtual perimeter in or around a boundary of any structure or environment.
In aspects of navigation tracking in an always aware location environment with mobile localization nodes, a mobile localization node that corresponds to an item or object in an AAL environment is implemented with a positioning module, which is designed to self-track the navigation (e.g., movement and locations) of the mobile localization node within the AAL environment based on data received from an inertial measurement unit of the mobile localization node. Rather than conventional systems that track devices in just two-dimensional x,y-coordinates, the features of navigation tracking in an always aware location environment with mobile localization nodes can be implemented to track objects and items in three dimensions as x,y,z-coordinates in an AAL environment. Further, the self-tracking features of the mobile localization nodes implemented for the navigation tracking do not suffer from the communication latencies that are common with device tracking, and are not limited by the typical excessive power drain that occurs with typical wireless tags or mobile devices by the constant radio systems communication and positioning updates to track the two-dimensional x,y-coordinates position locations.
Generally, an AAL environment, such as a geo-fenced area, is facilitated by a server computing device that manages wireless communications and tracking updates in the environment, and the server computing device implements a location module that is designed to detect and track mobile sensors and mobile devices in one or two dimensions in the AAL environment, such as designated by x-coordinates or x,y-coordinates relative to a horizontal plane of the environment. The positioning module of a mobile localization node in the AAL environment can initially receive the x-coordinate data or the x,y-coordinate data corresponding to the mobile localization node from the server computing device. The positioning module of the mobile localization node can then determine (or has previously determined) one or more additional coordinates, such as a z-coordinate, of the mobile localization node in the AAL environment, such as from the inertial measurement unit of the mobile localization node. The positioning module can then correlate the initial x-coordinate data or the x,y-coordinates data received from the server computing device with the one or more additional coordinates (e.g., the z-elevation data) determined by the positioning module for the mobile localization node, such as based on a common timestamp for the initial and additional coordinates (e.g., x,y,z-coordinates).
The positioning module of the mobile localization node can designate a device origin of the mobile localization node within the AAL environment based on a combination of the coordinates (e.g., the x,y,z-coordinates) that have been correlated and correspond to the location of the mobile localization node in the AAL environment. The device origin can be set at (0,0,0), or any other coordinates relative to the location or position of the mobile localization node in the AAL environment. Initially, the sensors of the inertial measurement unit do not have a frame of reference to know where the mobile localization node is located in the environment. However, the correlation of the x,y,z-coordinates provides a dead-reckoning from which to track the navigation of the mobile localization node in the AAL environment, such as based on data received from the inertial measurement unit of the mobile localization node. The data received from the inertial measurement unit can be in the form of rotational vectors from the sensors of the inertial measurement unit. In implementations, the coordinate tracking data received from the inertial measurement unit can be augmented by accelerometer data, such as to infer z-elevation data, and may be augmented with orientation data in the form of pitch, yaw, and/or roll. Other sensor and location data may be received from a barometer sensor, a camera, and other sensors from which dimension, rotation, navigation, and location coordinates can be determined.
The positioning module is implemented to then self-track navigation of the mobile localization node in the AAL environment in three dimensions based on updates to the x,y,z-coordinates as the mobile sensor moves (or is moved with an associated item) from the designated origin to subsequent locations within the AAL environment. Notably, the self-tracking navigation of the mobile localization node by the positioning module is implemented without communication to the server computing device, and without receiving updated location coordinate data from the server computing device.
While features and concepts of navigation tracking in an always aware location environment with mobile localization nodes can be implemented in any number of different devices, systems, environments, and/or configurations, aspects of navigation tracking in an always aware location environment with mobile localization nodes are described in the context of the following example devices, systems, and methods.
FIG. 1 illustrates anexample environment100 in which aspects of navigation tracking in an always aware location environment with mobile localization nodes can be implemented. Theexample environment100 is representative of any indoor or outdoor region or environment that is established as an always aware location (AAL)environment102, such as a geo-fenced area in a building, an area of a building, a warehouse, an airport terminal, a parking lot, an outdoor region, or other type of designated area or environment. An AAL environment designated by a geo-fenced area is generally established as a virtual perimeter around a boundary of any structure or environment, and in this example, theAAL environment102 is a virtual perimeter within the boundaries of a building, such as a warehouse or retail store, in which objects are stored and/or displayed. Generally, theAAL environment102 is established as a two-dimensional area based on x,y-coordinates relative to a horizontal plane of the environment.
A person may enter the building (and into the AAL environment102), such as any type of retail store that a person may enter looking for an item to purchase, a warehouse that a person may enter looking for a stocked item, a library where a person may browse magazines and borrow reading material, or any other type of environment that a person might visit while carrying amobile phone104. Aspects of navigation tracking in an always aware location environment with mobile localization nodes may also be implemented in a person's home to locate and track items, such as to find one's keys, wallet, or mobile phone that has been misplaced in an “always aware location” (AAL) system.
In the example AALenvironment102, themobile phone104 is an example of any type ofmobile device106, such as a tablet device, a wearable device or wearable article, or a mobile phone. Generally, themobile device106 is any type of an electronic and/or computing device implemented with various components, such as a processing system and memory, as well as any number and combination of different components as further described with reference to the example device shown inFIG. 5. Details of themobile device106 are further shown and described with reference toFIG. 2 that illustrates an example200 of themobile device106 in context of theexample environment100. The terms “person” and “user” are generally used herein interchangeably, where a person with themobile phone104 is also the user of the mobile phone in the environment of theAAL environment102.
As a retail store or warehouse, the AALenvironment102 can include any number of inventoried items, objects, and/or products for storage or purchase, each of which can be identified and tracked with amobile localization node108. Generally, a mobile localization node is a small electronic tag or label that can process and/or store data and other information in memory on the mobile localization node, and themobile localization node108 can be associated with any type of object or item, such as by being placed in or affixed to an object for inventory tracking, item location, item recovery, and the like. In this example, themobile localization node108 is associated with (e.g., is attached to) anitem110 that is located in theAAL environment102 on a top shelf of a shelving unit. Similarly, amobile localization node112 is associated with anitem114 that is located in theAAL environment102 on a middle shelf of the shelving unit, and amobile localization node116 is associated with anitem118 that is located in theAAL environment102 on a bottom shelf of the shelving unit. As will be described in more detail, each of the items in the AAL environment can be located and/or tracked based on x,y,z-coordinates120 within theboundaries122 of the environment.
Generally, the mobile localization nodes, such as themobile localization node108, can be implemented as any type of an electronic and/or computing device implemented with various components, such as a processing system and memory, as well as any number and combination of different components as further described with reference to the example device shown inFIG. 5. Details of themobile localization node108 are further shown and described with reference toFIG. 2 that illustrates an example200 of themobile localization node108 in context of theexample environment100. Themobile localization node108 can include a memory that stores identifying data of theitem110 that the mobile localization node is associated with, as well as a unique identifier of the particularmobile localization node108 and may include any other type of metadata, such as location data that indicates a location or region of theitem110 in theAAL environment102.
Additionally, the mobile localization nodes may be implemented as any type of wireless-radio based tags for various different radio-based, wireless signaling, such as with LTE, Near Field Communication (NFC), Real-time Locating System (RTLS), radio frequency identification (RFID), Bluetooth™ devices, and the like. In this example, theAAL environment102 may also include Internet-of-things (IoT) network devices, Wi-Fi connecteddevices124, and/or additional mobile devices. The IoT devices in theAAL environment102 may also include motion sensors, surveillance cameras, monitoring devices, control devices, and any other type of networked computing and/or electronic devices that wirelessly communicate in theAAL environment102.
In this example, theAAL environment102 includes aserver computing device126 that facilitates setup and wireless communications in the environment. Theserver computing device126 implements alocation module128, which may include independent processing, memory, and logic components functioning as a computing and/or electronic device integrated with theserver computing device126. Alternatively or in addition, thelocation module128 can be implemented as a software application or software module, such as computer-executable software instructions that are executable with a processor or processing system of the server computing device. As a software application, thelocation module128 can be stored on computer-readable storage memory, or with any suitable memory device or electronic data storage implemented with the server computing device. In implementations, theserver computing device126 may be part of a business server system that is associated with the building, warehouse, retail store, or other environment for which theAAL environment102 is established.
Themobile phone104, othermobile devices106, andmobile localization nodes108 that are carried into or placed in theAAL environment102 may be registered as devices for communication with theserver computing device126 of a business server system. Alternatively, themobile phone104, othermobile devices106, andmobile localization nodes108 may be previously registered for communication between the devices and with theserver computing device126, such as via the Wi-Ficonnected device124 in the environment of theAAL environment102. Further, themobile phone104, othermobile devices106,mobile localization nodes108, and other types of wireless communication devices may be setup to self-detect entry into theAAL environment102. Alternatively or in addition, thelocation module128 of theserver computing device126 can detect entry of themobile phone104, othermobile devices106, andmobile localization nodes108 into the environment.
Generally, thelocation module128 is implemented to locate and track the wireless communication devices in one-dimension or two-dimensions in theAAL environment102, which is designated by thecoordinates120 relative to a horizontal plane of the environment. As used herein, the term “localization nodes” that are located in theAAL environment102 include any of themobile phone104, othermobile devices106, themobile localization nodes108, and any other wireless communication devices, wireless-radio based tags, sensors, and/or devices that include or implement wireless-radio based tags or sensors. Thelocation module128 can track the locatednodes130 and communicate coordinatedata132 to the locatednodes130, which in this example, includes themobile phone104, othermobile devices106, and themobile localization node108 in theAAL environment102.
Themobile localization node108 includes apositioning module134 that implements aspects of navigation tracking in an always aware location environment with mobile localization nodes. With reference toFIG. 2, thepositioning module134 may include independent processing, memory, and logic components functioning as a computing and/or electronic device integrated with themobile localization node108. Alternatively or in addition, thepositioning module134 can be implemented as a software application or software module, such as computer-executable software instructions that are executable with a processor orprocessing system202 of themobile localization node108. As a software application, thepositioning module134 can be stored on computer-readable storage memory (e.g., device memory204), or with any suitable memory device or electronic data storage implemented with themobile localization node108.
In this example, themobile localization node108 includes aninertial measurement unit206, which may include various sensors, such as a gyroscope, an accelerometer, and/or other types of motion sensors to sense motion and movement of themobile localization node108. The various sensors of theinertial measurement unit206 generate sensor data vectors having three-dimensional parameters (e.g., rotational vectors in x, y, and z coordinates) indicating position, location, and/or orientation of themobile localization node108. As described in more detail below, thepositioning module134 of themobile localization node108 is implemented to self-track the navigation of themobile localization node108 within theAAL environment102 based on data received from theinertial measurement unit206 of the mobile localization node. The data received from the inertial measurement unit can be in the form of rotational vector data in three dimensions from the sensors of the inertial measurement unit. In implementations, the coordinate tracking data received from theinertial measurement unit206 can be augmented by accelerometer data, such as to infer z-elevation data, and may be augmented with orientation data in the form of pitch, yaw, and/or roll. Other sensor and location data may be received from a barometer sensor, a camera, and other sensors from which dimension, rotation, navigation, and location coordinates can be determined.
Themobile localization node108 can also include one or more differentwireless radio systems208, such as for Wi-Fi, Bluetooth™, Mobile Broadband, LTE, Near Field Communication (NFC), Real-time Locating System (RTLS), or any other wireless radio system or format for communication via respective wireless networks. Generally, themobile localization node108 implements thewireless radio systems208 that each include a radio device, antenna, and chipset implemented for cellular, wireless, and/or other network communication with other devices, networks, and services. Awireless radio system208 can be configured to implement any suitable communication protocol or standard.
Any of the server, computing, and/or mobile devices, as well as the mobile localization nodes, described herein can communicate via any type of communication and data network (or combination of networks), such as for data communication between themobile phone104, themobile localization node108, the Wi-Ficonnected device124, theserver computing device126 of theAAL environment102, and/or a cloud-based service. A network can be implemented to include a wired and/or wireless network, may be implemented using any type of network topology and/or communication protocol, and can be represented or otherwise implemented as a combination of two or more networks, to include cellular networks, IP-based networks, and/or the Internet. The network may also include mobile operator networks that are managed by a network provider of a cellular network, a mobile network operator, and/or other network operators, such as a communication service provider, mobile phone provider, and/or Internet service provider.
In aspects of navigation tracking in an always aware location environment with mobile localization nodes, thepositioning module134 of themobile localization node108 can receive the x,y-coordinatedata210 corresponding to the mobile localization node from theserver computing device126, which has located themobile localization node108 as one of the locatednodes130 in theAAL environment102. Themobile localization node108 can receive the coordinatedata210 as one or two initial coordinates of themobile localization node108 at a current location in the AAL environment. For example, themobile localization node108 may receive the location coordinate data as an x-coordinate or as x,y-coordinates corresponding to the location of the mobile localization node in the AAL environment.
Thepositioning module134 of themobile localization node108 can then determine (or has previously determined) one or more additional coordinates of the mobile localization node in theAAL environment102, such as from theinertial measurement unit206 of the mobile localization node. For example, thepositioning module134 can determine y,z-coordinate data or z-elevation data212 that corresponds to theitem110, which is located in theAAL environment102 on the top shelf of the shelving unit. Thepositioning module134 of themobile localization node108 can then correlate the one or two initial coordinates (e.g., the x-coordinate or the x,y-coordinates) received from theserver computing device126 with the one or more additional coordinates (e.g., the z-elevation data212) determined by the positioning module for the mobile localization node, such as based on a common timestamp for the x,y,z-coordinates.
Thepositioning module134 of themobile localization node108 can designate adevice origin214 of themobile localization node108 within theAAL environment102 based on a combination of the correlated coordinates (e.g., the x,y,z-coordinates that have been correlated) and that correspond to the location of the mobile localization node in the environment. Thedevice origin214 can be set at (0,0,0), or any other coordinates relative to the location or position of themobile localization node108 in theAAL environment102. Initially, the sensors of theinertial measurement unit206 do not have a frame of reference to know where the mobile localization node is located in the environment. However, the correlation of the x,y,z-coordinates provides a dead-reckoning from which to track the navigation of themobile localization node108 in theAAL environment102 based on the rotational vectors from the inertial measurement unit sensors. Thepositioning module134 can determine a delta z from thedevice origin214 as the z-elevation data212 that corresponds to theitem110 located in theAAL environment102.
Thepositioning module134 is implemented to then self-track navigation of themobile localization node108 in theAAL environment102 in three dimensions based on updates to the correlated coordinates (e.g., the x,y,z-coordinates120) as the mobile localization node moves (or is moved with the item110) from thedevice origin214 to subsequent locations within the environment. For example, a person may move theitem110 from the top shelf of the shelving unit down in a direction of −z elevation to the floor at adifferent location136 of the building room, such as shown at138. Thepositioning module134 generates and updates thenavigation data216 as the positioning module self-tracks the navigation of themobile localization node108 within theAAL environment102. Notably, the self-tracking navigation of themobile localization node108 by thepositioning module134 is implemented without communication to theserver computing device126, and without receiving updated coordinatedata132 from theserver computing device126. In implementations, this saves device power that would otherwise be utilized for the ongoing device updates to and from thelocation module128 of theserver computing device126.
Alternatively or in addition, thepositioning module134 of themobile localization node108 may also receive updated coordinatedata132 from theserver computing device126 as the mobile localization node moves within theAAL environment102. Thepositioning module134 can utilize the received, updated x,y-coordinatedata132, as well as determine updated z-coordinates of themobile localization node108 as the mobile localization node moves (or is moved with the item110) within theAAL environment102. Thepositioning module134 can then track the navigation of themobile localization node108 in three dimensions in theAAL environment102 based on the updated x,y,z-coordinates that are correlated by a common timestamp.
In implementations, thepositioning module134 of themobile localization node108 may receive a request from theserver computing device126 for an update as to the current position of the mobile localization node in theAAL environment102. Themobile localization node108 can then communicate thenavigation data216 as its current position in theAAL environment102 back to theserver computing device126, where thenavigation data216 indicates the current x,y,z-coordinates corresponding to themobile localization node108 as tracked by thepositioning module134. Thepositioning module134 of themobile localization node108 may also receive, from theserver computing device126, indications of distances from the current location of the mobile localization node toboundaries122 of theAAL environment102. Thepositioning module134 can then determine when a subsequent location of themobile localization node108 corresponds to aboundary122 of the AAL environment based on the self-tracking of the mobile localization node. In an event that themobile localization node108 exits the boundaries of the environment, therelative device origin214 can be released, restoring mobile localization node positioning based on conventional positioning and/or tracking systems.
FIG. 3 illustrates an example300 of a three-dimensional (3D)mesh302 that thepositioning module134 implemented by themobile localization node108 can generate of theAAL environment102 to visually represent the location and/or subsequent locations of themobile localization node108 in theAAL environment102, in aspects of navigation tracking in an always aware location environment with mobile localization nodes. For example, the3D mesh302 visually represents the location of themobile phone104, as well as theitems110,114, and118 that are located on the shelving unit in theAAL environment102. The3D mesh302 may also be generated to illustrate the x,y,z-coordinates120 corresponding to each of the mobile localization nodes, which are associated with each of the items and themobile phone104, in theAAL environment102. For example, themobile phone104 is shown located at a three-dimensional position in the AAL environment as indicated by the x-coordinate304, the y-coordinate306, and the z-coordinate308. Similarly, theitem114 is shown located at a three-dimensional position in the AAL environment as indicated by the x-coordinate310, the y-coordinate312, and the z-coordinate314. The3D mesh302 also illustrates the movement of theitem110 from it's initial origin position in theAAL environment102 down to the location136 (e.g., a direction of −z elevation in the environment).
Returning to the discussion ofFIGS. 1 and 2, themobile device106, such as the examplemobile phone104, includes amobile localization node140 with an implementation of apositioning module142 that implements aspects of navigation tracking in an always aware location environment with mobile localization nodes. With reference toFIG. 2, thepositioning module142 of themobile localization node140 may include independent processing, memory, and logic components functioning as a computing and/or electronic device integrated with themobile localization node140. Alternatively or in addition, thepositioning module142 can be implemented as a software application or software module, such as computer-executable software instructions that are executable with a processor orprocessing system218 of themobile device106. As a software application, thepositioning module142 can be stored on computer-readable storage memory (e.g., device memory220), or with any suitable memory device or electronic data storage implemented with themobile device108.
In this example, themobile device106 includes aninertial measurement unit222, which may include various sensors, such as a gyroscope, an accelerometer, and/or other types of motion sensors to sense motion and movement of themobile localization node140. The various sensors of theinertial measurement unit222 generate sensor data vectors having three-dimensional parameters (e.g., rotational vectors in x, y, and z coordinates) indicating position, location, and/or orientation of themobile device106. As described with reference to thepositioning module134 of themobile localization node108, thepositioning module142 of themobile localization node140 is implemented to self-track the navigation of the mobile localization node140 (and the navigation of the mobile device106) within theAAL environment102 based on data received from theinertial measurement unit222 of the mobile localization node. The data received from the inertial measurement unit can be in the form of rotational vector data in three dimensions from the sensors of theinertial measurement unit222. In implementations, the coordinate tracking data received from theinertial measurement unit222 can be augmented by accelerometer data, such as to infer z-elevation data, and may be augmented with orientation data in the form of pitch, yaw, and/or roll. Other sensor and location data may be received from a barometer sensor, a camera, and other sensors from which dimension, rotation, navigation, and location coordinates can be determined.
Themobile device106 can also include one or more differentwireless radio systems224, such as for Wi-Fi, Bluetooth™, Mobile Broadband, LTE, Near Field Communication (NFC), Real-time Locating System (RTLS), or any other wireless radio system or format for communication via respective wireless networks. Generally, themobile device106 implements thewireless radio systems224 that each include a radio device, antenna, and chipset implemented for cellular, wireless, and/or other network communication with other devices, networks, and services. Awireless radio system224 can be configured to implement any suitable communication protocol or standard for communication via any type of communication and data network (or combination of networks).
In aspects of navigation tracking in an always aware location environment with mobile localization nodes, thepositioning module142 of themobile localization node140 can receive the x,y-coordinatedata226 corresponding to the mobile localization node from theserver computing device126, which has located themobile device106 as one of the locatednodes130 in theAAL environment102. Themobile localization node140 can receive the coordinatedata226 as one or two initial coordinates of themobile localization node140 at a current location in the AAL environment. For example, themobile localization node140 may receive the location coordinate data as an x-coordinate or as x,y-coordinates corresponding to the location of the mobile localization node in the AAL environment.
Thepositioning module142 of themobile localization node140 can then determine (or has previously determined) one or more additional coordinates of the mobile localization node in theAAL environment102, such as from theinertial measurement unit222 of the mobile device. For example, thepositioning module142 can determine y,z-coordinate data or z-elevation data228 that corresponds to themobile device106, which is located in theAAL environment102. Thepositioning module142 of themobile localization node140 can then correlate the one or two initial coordinates (e.g., the x-coordinate or the x,y-coordinates) received from theserver computing device126 with the one or more additional coordinates (e.g., the z-elevation data228) determined by the positioning module for the mobile localization node, such as based on a common timestamp for the x,y,z-coordinates.
Thepositioning module142 of themobile localization node140 can designate adevice origin230 of themobile device106 within theAAL environment102 based on a combination of the correlated coordinates (e.g., the x,y,z-coordinates that have been correlated) and that correspond to the location of the mobile device in the environment. Thepositioning module142 is implemented to then self-track navigation of themobile localization node108 that is associated with themobile device106 in theAAL environment102 in three dimensions based on updates to the correlated coordinates (e.g., the x,y,z-coordinates120) as the mobile localization node moves (or is moved with the mobile device106) from thedevice origin230 to subsequent locations within the environment. For example, a person may carry themobile device106 around with them in the building environment that is theAAL environment102. Thepositioning module142 generates and updates thenavigation data232 as the positioning module self-tracks the navigation of themobile localization node140 that is associated with themobile device106 within theAAL environment102. Notably, the self-tracking navigation of themobile localization node140 by thepositioning module142 is implemented without communication to theserver computing device126, and without receiving updated coordinatedata132 from theserver computing device126. As noted above, this saves device power that would otherwise be utilized for the ongoing device updates to and from thelocation module128 of theserver computing device126.
Alternatively or in addition, thepositioning module142 of themobile localization node140 may also receive updated coordinatedata132 from theserver computing device126 as the mobile localization node moves within theAAL environment102. Thepositioning module142 can utilize the received, updated x,y-coordinatedata132, as well as determine updated z-coordinates of themobile localization node140 as the mobile localization node moves with the associatedmobile device106 within theAAL environment102. Thepositioning module142 can then track the navigation of themobile localization node140 in three dimensions in theAAL environment102 based on the updated x,y,z-coordinates that are correlated by a common timestamp.
In implementations, thepositioning module142 of themobile localization node140 may receive a request from theserver computing device126 for an update as to the current position of themobile device106 in theAAL environment102. Themobile device106 can then communicate thenavigation data232 from thepositioning module142 as its current position in theAAL environment102 back to theserver computing device126, where thenavigation data232 indicates the current x,y,z-coordinates corresponding to themobile device106 as tracked by thepositioning module142 of themobile localization node140. Thepositioning module142 of themobile localization node140 may also receive, from theserver computing device126, indications of distances from the current location of themobile device106 toboundaries122 of theAAL environment102. Thepositioning module142 can then determine when a subsequent location of themobile device106 corresponds to aboundary122 of the AAL environment based on the self-tracking of the mobile localization node. In an event that themobile device106 exits the boundaries of the environment, therelative device origin230 can be released, restoring device positioning based on conventional positioning and/or tracking systems.
Similar to thepositioning module134 of themobile localization node108, thepositioning module142 of themobile localization node140 in themobile device106 can generate the example three-dimensional (3D)mesh302 of theAAL environment102 to visually represent the location and/or subsequent locations of themobile device106 in theAAL environment102. The generated 3D mesh can then be displayed to a user on a display device of themobile device106 for a synchronized3D view of themobile device106 in the environment of theAAL environment102.
Example method400 is described with reference toFIG. 4 in accordance with implementations of navigation tracking in an always aware location environment with mobile localization nodes. Generally, any services, components, modules, methods, and/or operations described herein can be implemented using software, firmware, hardware (e.g., fixed logic circuitry), manual processing, or any combination thereof. Some operations of the example methods may be described in the general context of executable instructions stored on computer-readable storage memory that is local and/or remote to a computer processing system, and implementations can include software applications, programs, functions, and the like. Alternatively or in addition, any of the functionality described herein can be performed, at least in part, by one or more hardware logic components, such as, and without limitation, Field-programmable Gate Arrays (FPGAs), Application-specific Integrated Circuits (ASICs), Application-specific Standard Products (ASSPs), System-on-a-chip systems (SoCs), Complex
Programmable Logic Devices (CPLDs), and the like.
FIG. 4 illustrates example method(s)400 of navigation tracking in an always aware location environment with mobile localization nodes as described herein, and the method is generally described with reference to a positioning module implemented in a mobile localization node. The order in which the method is described is not intended to be construed as a limitation, and any number or combination of the described method operations can be performed in any order to perform a method, or an alternate method.
At402, at least one initial coordinate is received from a server computing device that implements a location module to locate wireless communication devices in an always aware location (AAL) environment. For example, thelocation module128 that is implemented by theserver computing device126 locates themobile localization node108 and themobile device106 by the correspondingmobile localization node140 in theAAL environment102, which can be designated in the two dimensions as x,y-coordinates. Thepositioning module134 that is implemented by themobile localization node108 receives the coordinate data132 (e.g., as x-coordinate data or x,y-coordinate data) corresponding to the mobile localization node from theserver computing device126 to locate themobile localization node108 in theAAL environment102. Similarly, thepositioning module142 of themobile localization node140 that is implemented in themobile device106 receives the coordinatedata132 corresponding to the mobile device from theserver computing device126 to locate themobile localization node140 associated with themobile device106 in theAAL environment102.
At404, one or more additional coordinates of a mobile localization node in the AAL environment is determined. For example, thepositioning module134 that is implemented by themobile localization node108 determines one or more additional coordinates (e.g., y,z-coordinates or a z-coordinate) of the mobile localization node in theAAL environment102, such as from theinertial measurement unit206 of themobile localization node108. Similarly, thepositioning module142 of themobile localization node140 that is implemented in themobile device106 determines one or more additional coordinates of the mobile device in theAAL environment102, such as from theinertial measurement unit222 of the mobile device.
At406, the at least one initial coordinate received from the server computing device is correlated with the one or more additional coordinates determined by the positioning module based on a common timestamp for the initial and additional coordinates. For example, thepositioning module134 that is implemented by themobile localization node108 correlates the initial coordinates received from theserver computing device126 with the additional coordinates determined by thepositioning module134 for the mobile localization node. Similarly, thepositioning module142 of themobile localization node140 that is implemented in themobile device106 correlates the initial coordinates received from theserver computing device126 with the additional coordinates determined by thepositioning module142 for the mobile device.
At408, an origin of the mobile localization node within the AAL environment is designated based on a combination of the correlated coordinates. For example, thepositioning module134 that is implemented by themobile localization node108 designates the origin of the mobile localization node within theAAL environment102 based on the combination of the correlated coordinates that correspond to the mobile localization node. In the example implementation, thisdevice origin214 corresponds to the location of theitem110 in theAAL environment102. Similarly, thepositioning module142 of themobile localization node140 that is implemented in themobile device106 designates the origin of the mobile device within theAAL environment102 based on the combination of the correlated coordinates that correspond to the mobile device.
At410, navigation of the mobile localization node is self-tracked in three dimensions based on updates to the correlated coordinates as the mobile localization node moves from the origin to subsequent locations within the AAL environment. For example, thepositioning module134 that is implemented by themobile localization node108 self-tracks navigation of the mobile localization node in theAAL environment102 in three dimensions based on updates to the correlated coordinates as the mobile localization node moves (or is moved) from thedevice origin214 to subsequent locations within the environment. This self-tracking the navigation of themobile localization node108 within theAAL environment102 by thepositioning module134 of the mobile localization node is without receiving updated coordinatedata132 from theserver computing device126. Similarly, thepositioning module142 of themobile localization node140 that is implemented in themobile device106 self-tracks navigation of the mobile device in theAAL environment102 in three dimensions based on updates to the correlated coordinates as the mobile device moves (or is moved) from thedevice origin230 to subsequent locations within the environment. This tracking the navigation of themobile device106 within theAAL environment102 by thepositioning module142 of themobile localization node140 in the mobile device is without receiving updated coordinatedata132 from theserver computing device126.
In implementations, thepositioning module134 that is implemented by themobile localization node108 receives updated coordinatedata132 from theserver computing device126 as the mobile localization node moves within the AAL environment102 (similar in aspect to402). Thepositioning module134 of themobile localization node108 also determines updated additional coordinates (e.g., the z-elevation data212) for the mobile localization node as the mobile localization node moves (or is moved) within the AAL environment102 (similar in aspect to404). Thepositioning module134 also tracks the navigation of themobile localization node108 in the three dimensions in theAAL environment102 based on the updated coordinates that are correlated by a common timestamp (similar in aspect to406 and410).
Similarly, thepositioning module142 of themobile localization node140 that is implemented in themobile device106 receives updated coordinatedata132 from theserver computing device126 as the mobile device moves within the AAL environment102 (similar in aspect to402). Thepositioning module142 of themobile localization node140 in themobile device106 also determines updated additional coordinates (e.g., the z-elevation data228) for the mobile device as the mobile device moves (or is moved) within the AAL environment102 (similar in aspect to404). Thepositioning module142 also tracks the navigation of themobile device106 in the three dimensions in theAAL environment102 based on the updated coordinates that are correlated by a common timestamp (similar in aspect to406 and410).
At412, a request is received from the server computing device for a current position of the mobile localization node, and at414, the current position of the mobile localization node is communicated based on current location coordinates of the mobile localization node in the AAL environment. For example, thepositioning module134 that is implemented by themobile localization node108 receives a request from theserver computing device126 for the current position of the mobile localization node in theAAL environment102, and themobile localization node108 communicates thenavigation data216 as its current position in theAAL environment102 back to theserver computing device126 based on the current location coordinates corresponding to themobile localization node108, as tracked by thepositioning module134. Similarly, thepositioning module142 of themobile localization node140 that is implemented in themobile device106 receives a request from theserver computing device126 for the current position of the mobile device in theAAL environment102, and the mobile device communicates thenavigation data232 from thepositioning module142 as its current position in theAAL environment102 back to theserver computing device126 based on the current location coordinates corresponding to the mobile device, as tracked by thepositioning module142.
At416, a three-dimensional (3D) mesh is generated that visually represents one or more of the subsequent locations of the mobile localization node in the AAL environment. For example, thepositioning module134 that is implemented by themobile localization node108 generates the example three-dimensional (3D)mesh302 that visually represents the location and/or subsequent locations of the mobile localization node in theAAL environment102. Similarly, thepositioning module142 of themobile localization node140 that is implemented in themobile device106 generates the example three-dimensional (3D)mesh302 that visually represents the location and/or subsequent locations of the mobile device in theAAL environment102, and the generated 3D mesh can be displayed to a user on a display device of the mobile device.
FIG. 5 illustrates various components of anexample device500 in which aspects of navigation tracking in an always aware location environment with mobile localization nodes can be implemented. Theexample device500 can be implemented as any of the devices described with reference to the previousFIGS. 1-4, such as any type of mobile device, mobile localization node, mobile phone, client device, wearable device, tablet, computing, communication, entertainment, gaming, media playback, and/or other type of electronic device. For example, theserver computing device126, themobile device106, and each of themobile localization nodes108,140 shown and described with reference toFIGS. 1-4 may be implemented as theexample device500. Further a wearable device may include any one or combination of a watch, armband, wristband, bracelet, glove or pair of gloves, glasses, jewelry items, clothing items, any type of footwear or headwear, and/or other types of wearable articles.
Thedevice500 includescommunication transceivers502 that enable wired and/or wireless communication of device data504 with other devices. The device data504 can include any of the coordinate data, navigation data, and device location data. Additionally, the device data504 can include any type of audio, video, and/or image data.Example communication transceivers502 include wireless personal area network (WPAN) radios compliant with various IEEE 802.15 (Bluetooth™) standards, wireless local area network (WLAN) radios compliant with any of the various IEEE 802.11 (WiFi™) standards, wireless wide area network (WWAN) radios for cellular phone communication, wireless metropolitan area network (WMAN) radios compliant with various IEEE 802.16 (WiMAX™) standards, and wired local area network (LAN) Ethernet transceivers for network data communication.
Thedevice500 may also include one or more data input ports506 via which any type of data, media content, and/or inputs can be received, such as user-selectable inputs to the device, messages, music, television content, recorded content, and any other type of audio, video, and/or image data received from any content and/or data source. The data input ports may include USB ports, coaxial cable ports, and other serial or parallel connectors (including internal connectors) for flash memory, DVDs, CDs, and the like. These data input ports may be used to couple the device to any type of components, peripherals, or accessories such as microphones and/or cameras.
Thedevice500 includes aprocessing system508 of one or more processors (e.g., any of microprocessors, controllers, and the like) and/or a processor and memory system implemented as a system-on-chip (SoC) that processes computer-executable instructions. The processor system may be implemented at least partially in hardware, which can include components of an integrated circuit or on-chip system, an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), a complex programmable logic device (CPLD), and other implementations in silicon and/or other hardware. Alternatively or in addition, the device can be implemented with any one or combination of software, hardware, firmware, or fixed logic circuitry that is implemented in connection with processing and control circuits, which are generally identified at510. Thedevice500 may further include any type of a system bus or other data and command transfer system that couples the various components within the device. A system bus can include any one or combination of different bus structures and architectures, as well as control and data lines.
Thedevice500 also includes computer-readable storage memory512 (e.g., memory devices) that enable data storage, such as data storage devices that can be accessed by a computing device, and that provide persistent storage of data and executable instructions (e.g., software applications, programs, functions, and the like). Examples of the computer-readable storage memory512 include volatile memory and non-volatile memory, fixed and removable media devices, and any suitable memory device or electronic data storage that maintains data for computing device access. The computer-readable storage memory can include various implementations of random access memory (RAM), read-only memory (ROM), flash memory, and other types of storage media in various memory device configurations. Thedevice500 may also include a mass storage media device.
The computer-readable storage memory512 provides data storage mechanisms to store the device data504, other types of information and/or data, and various device applications514 (e.g., software applications). For example, anoperating system516 can be maintained as software instructions with a memory device and executed by theprocessing system508. The device applications may also include a device manager, such as any form of a control application, software application, signal-processing and control module, code that is native to a particular device, a hardware abstraction layer for a particular device, and so on.
In this example, thedevice500 includes apositioning module518 that implements aspects of navigation tracking in an always aware location environment with mobile localization nodes, and may be implemented with hardware components and/or in software as one of thedevice applications514, such as when thedevice500 is implemented as themobile localization node108 or as themobile localization node140 of themobile device106 shown and described with reference toFIGS. 1-4. Examples of thepositioning module518 are thepositioning module134 that is implemented as a software application and/or as hardware components of themobile localization node108, and thepositioning module142 that is implemented as a software application and/or as hardware components of themobile localization node140 in themobile device106. In implementations, thepositioning module518 may include independent processing, memory, and logic components as a computing and/or electronic device integrated with thedevice500.
Thedevice500 also includes alocation module520 that implements aspects of navigation tracking in an always aware location environment with mobile localization nodes, and may be implemented with hardware components and/or in software as one of thedevice applications514, such as when thedevice500 is implemented as theserver computing device126 shown and described with reference toFIGS. 1-4. An example of thelocation module520 is thelocation module128 that is implemented as a software application and/or as hardware components in theserver computing device126. In implementations, thelocation module520 may include independent processing, memory, and logic components as a computing and/or electronic device integrated with thedevice500.
In this example, thedevice500 also includes acamera522 andmotion sensors524, such as may be implemented in an inertial measurement unit (IMU). Themotion sensors524 can be implemented with various sensors, such as a gyroscope, an accelerometer, and/or other types of motion sensors to sense motion of the device. Thevarious motion sensors524 may also be implemented as components of an inertial measurement unit in the device. Theexample device500 can also include one ormore power sources526, such as when the device is implemented as a mobile device. The power sources may include a charging and/or power system, and can be implemented as a flexible strip battery, a rechargeable battery, a charged super-capacitor, and/or any other type of active or passive power source.
Theexample device500 also includes an audio and/orvideo processing system528 that generates audio data for anaudio system530 and/or generates display data for adisplay system532. The audio system and/or the display system may include any devices that process, display, and/or otherwise render audio, video, display, and/or image data. Display data and audio signals can be communicated to an audio component and/or to a display component via an RF (radio frequency) link, S-video link, HDMI (high-definition multimedia interface), composite video link, component video link, DVI (digital video interface), analog audio connection, or other similar communication link, such asmedia data port534. In implementations, the audio system and/or the display system are integrated components of the example device. Alternatively, the audio system and/or the display system are external, peripheral components to the example device.
Although aspects of navigation tracking in an always aware location environment with mobile localization nodes have been described in language specific to features and/or methods, the subject of the appended claims is not necessarily limited to the specific features or methods described. Rather, the specific features and methods are disclosed as example implementations of navigation tracking in an always aware location environment with mobile localization nodes, and other equivalent features and methods are intended to be within the scope of the appended claims. Further, various different embodiments are described and it is to be appreciated that each described embodiment can be implemented independently or in connection with one or more other described embodiments. Additional aspects of the techniques, features, and/or methods discussed herein relate to one or more of the following embodiments.
A positioning system, comprising: a server computing device that implements a location module to locate wireless communication devices in an always aware location (AAL) environment; a mobile localization node located within the AAL environment, the mobile localization node implements a positioning module to: receive, from the server computing device, one or two initial coordinates of the mobile localization node at a current location in the AAL environment; determine one or more additional coordinates of the mobile localization node at the current location in the AAL environment; designate the current location as an origin of the mobile localization node based on a combination of the initial and additional coordinates; and self-track navigation of the mobile localization node within the AAL environment as the mobile localization node moves from the origin to subsequent locations.
Alternatively or in addition to the above described positioning system, any one or combination of: the positioning module of the mobile localization node is implemented to self-track the navigation of the mobile localization node within the AAL environment without receiving updated coordinates from the server computing device. The positioning module of the mobile localization node is implemented to determine the one or more additional coordinates of the mobile localization node from an inertial measurement unit of the mobile localization node. The positioning module of the mobile localization node is implemented to: receive the initial coordinates as x,y-coordinates of the mobile localization node at the current location in the AAL environment; determine the additional coordinate as a z-coordinate of the mobile localization node at the current location in the AAL environment; and designate the origin of the mobile localization node at the x,y,z-coordinates. The positioning module of the mobile localization node is implemented to self-track the navigation of the mobile localization node within the AAL environment from the origin based on data received from an inertial measurement unit of the mobile localization node. The positioning module of the mobile localization node is implemented to: receive a request from the server computing device for a current position of the mobile localization node; and communicate the current position of the mobile localization node based on current location coordinates of the mobile localization node in the AAL environment. The mobile localization node is a wireless tag associated with an object in the AAL environment; and the positioning module of the mobile localization node is implemented to designate a subsequent location of the object in a z-elevation at an x,y-location in the AAL environment. The positioning module of the mobile localization node is implemented to generate a three-dimensional (3D) mesh that visually represents one or more of the subsequent locations of the mobile localization node in the AAL environment. The AAL environment is a geo-fenced area; the positioning module of the mobile localization node is implemented to: receive, from the server computing device, indications of distances from the current location of the mobile localization node to boundaries of the geo-fenced area; and determine when a subsequent location of the mobile localization node corresponds to a boundary of the geo-fenced area based on the self-tracking of the mobile localization node.
A mobile localization node, comprising: a communication interface to receive at least one initial coordinate from a server computing device that implements a location module to locate wireless communication devices in an always aware location (AAL) environment; a processor to implement a positioning module to: determine one or more additional coordinates of the mobile localization node in the AAL environment; correlate the at least one initial coordinate received from the server computing device with the one or more additional coordinates determined by the positioning module based on a common timestamp for the initial and additional coordinates; designate an origin of the mobile localization node within the AAL environment based on a combination of the correlated coordinates; and self-track navigation of the mobile localization node in three dimensions based on updates to the correlated coordinates as the mobile localization node moves from the origin to subsequent locations within the AAL environment.
Alternatively or in addition to the above described mobile localization node, any one or combination of: the positioning module is implemented to self-track the navigation of the mobile localization node within the AAL environment without receiving updated coordinates from the server computing device. The mobile localization node further comprising an inertial measurement unit from which the positioning module is implemented to determine the one or more additional coordinates of the mobile localization node. The communication interface is implemented to receive a request for a current position of the mobile localization node; and the positioning module is implemented to provide the current position of the mobile localization node based on current location coordinates of the mobile localization node in the AAL environment. The mobile localization node is a wireless tag associated with an object in the AAL environment; and the positioning module of the mobile localization node is implemented to designate a subsequent location of the object in a z-elevation at an x,y-location in the AAL environment. The positioning module of the mobile localization node is implemented to generate a three-dimensional (3D) mesh that visually represents one or more of the subsequent locations of the mobile localization node in the AAL environment.
A method, comprising: receiving at least one initial coordinate from a server computing device that implements a location module to locate wireless communication devices in an always aware location (AAL) environment; determining one or more additional coordinates of a mobile localization node in the AAL environment; correlating the at least one initial coordinate received from the server computing device with the one or more additional coordinates based on a common timestamp for the initial and additional coordinates; designating an origin of the mobile localization node within the AAL environment based on a combination of the correlated coordinates; and self-tracking, by the mobile localization node, navigation of the mobile localization node in three dimensions based on updates to the correlated coordinates as the mobile localization node moves from the origin to subsequent locations within the AAL environment.
Alternatively or in addition to the above described method, any one or combination of: receiving updated location coordinates as the mobile localization node moves within the AAL environment; determining updated additional coordinates of the mobile localization node as the mobile localization node moves within the AAL environment; and the self-tracking the navigation of the mobile localization node in the three dimensions based on the updated coordinates that are correlated by the common timestamp. The self-tracking the navigation of the mobile localization node within the AAL environment is without receiving updated coordinates from the server computing device. The method further comprising: receiving a request from the server computing device for a current position of the mobile localization node; and communicating the current position of the mobile localization node based on current location coordinates of the mobile localization node in the AAL environment. The method further comprising generating a three-dimensional (3D) mesh that visually represents one or more of the subsequent locations of the mobile localization node in the AAL environment.