Calibration of interconnect tracking devices
By using the high-precision attitude information of the main tracking device and the relative attitude information of the auxiliary tracking device in the tracking device network for calibration, the problem of lower accuracy tracking devices is solved, and more accurate user location and movement tracking is achieved.
Patent Information
- Application Number
- CN202380060218.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2022-08-22
- Filing Date
- 2023-06-26
- Publication Date
- 2025-03-18
AI Technical Summary
The prior art is difficult to effectively calibrate tracking devices with lower accuracy, resulting in reduced accuracy when tracking user locations and movements.
By establishing communication between the main tracking device and the auxiliary tracking device in the tracking device network, using the high-precision attitude information of the main tracking device and the relative attitude information of the auxiliary tracking device, the absolute attitude information of the auxiliary tracking device is calculated and sent to the auxiliary tracking device to perform calibration actions.
Improves the accuracy of the lower-precision tracking device, allowing it to track user location and movement more accurately, extending the service life of the device.
Smart Images

Figure CN119654882A_ABST
Abstract
Description
Technical Field
[0001] The present disclosure generally relates to calibration of tracking devices. In some examples, aspects of the present disclosure relate to systems and techniques for sharing pose information between a higher precision tracking device and a lower precision tracking device to allow calibration of the lower precision tracking device. Background Art
[0002] There are more and more scenarios where a user has various devices, each of which is capable of tracking the user's location and / or movement. Some devices may include some components, sensors, features, etc. that allow the device to perform tracking with relatively higher accuracy than other devices. However, although such a device may be owned by a certain user, the device may not transmit information related to each device that tracks the user's movement or location. Summary of the invention
[0003] In some examples, systems and techniques for providing offloading services are described. According to at least one illustrative example, a method for tracking device calibration is provided. The method includes: generating posture information of a primary tracking device at a primary tracking device of a tracking device network; obtaining relative posture information of an auxiliary tracking device of the tracking device network, wherein the relative posture information of the auxiliary tracking device includes a relative position and orientation between the primary tracking device and the auxiliary tracking device; obtaining absolute posture information of the auxiliary tracking device using the posture information of the primary tracking device and the relative posture information of the auxiliary tracking device; and sending the absolute posture information to the auxiliary tracking device at the primary tracking device to perform a calibration action.
[0004] In another illustrative example, a method for tracking device calibration is provided. The method includes: at an auxiliary tracking device of a tracking device network, using the posture information of a main tracking device and the relative posture information between the auxiliary tracking device and the main tracking device to generate absolute posture information of the auxiliary tracking device; performing a calibration action using the absolute posture information of the auxiliary tracking device, wherein after performing the calibration action, the auxiliary tracking device becomes a new main tracking device; generating the posture information of the new main tracking device at the new main tracking device; generating the relative posture information of an additional tracking device in the tracking device network at the new main tracking device, wherein the relative posture information of the additional tracking device includes the relative position and orientation between the new main tracking device and the additional tracking device; obtaining the absolute posture information of the additional tracking device using the posture information of the new main tracking device and the relative posture information of the additional tracking device; and sending the absolute posture information to the additional tracking device to perform a second calibration action.
[0005] In another illustrative example, an apparatus for tracking device calibration is provided, which includes a primary tracking device of a tracking device network. The primary tracking device includes a memory device and a processor coupled to the memory device. The processor is configured to: generate posture information of the primary tracking device at the primary tracking device; obtain relative posture information of auxiliary tracking devices of the tracking device network, wherein the relative posture information of the auxiliary tracking device includes the relative position and orientation between the primary tracking device and the auxiliary tracking device; use the posture information of the primary tracking device and the relative posture information of the auxiliary tracking device to obtain absolute posture information of the auxiliary tracking device; and send the absolute posture information to the auxiliary tracking device at the primary tracking device to perform a calibration action.
[0006] In another illustrative example, a device for tracking device calibration is provided, which includes an auxiliary tracking device of a tracking device network. The auxiliary tracking device includes a memory device and a processor coupled to the memory device. The processor is configured to: at the auxiliary tracking device, use the posture information of the main tracking device and the relative posture information between the auxiliary tracking device and the main tracking device to generate absolute posture information of the auxiliary tracking device; perform a calibration action using the absolute posture information of the auxiliary tracking device, wherein after performing the calibration action, the auxiliary tracking device becomes a new main tracking device; generate the posture information of the new main tracking device at the new main tracking device; generate the relative posture information of the additional tracking device in the tracking device network at the new main tracking device, wherein the relative posture information of the additional tracking device includes the relative position and direction between the new main tracking device and the additional tracking device; use the posture information of the new main tracking device and the relative posture information of the additional tracking device to obtain the absolute posture information of the additional tracking device; and send the absolute posture information to the additional tracking device to perform a second calibration action.
[0007] In some aspects, one or more of the apparatuses described herein are part of and / or include a mobile or wireless communication device (e.g., a mobile phone or other mobile device), an extended reality (XR) device or system (e.g., a virtual reality (VR) device, an augmented reality (AR) device, or a mixed reality (MR) device), a wearable device (e.g., a web-connected watch or other wearable device), a vehicle or a computing device or component of a vehicle, a camera, a personal computer, a laptop computer, a server computer or a server device (e.g., an edge or cloud-based server, a personal computer acting as a server device, a mobile device such as a mobile phone acting as a server device, an XR device acting as a server device, a vehicle acting as a server device, a network router, or other device acting as a server device), any combination thereof, and / or other types of devices. In some aspects, the apparatus includes a camera or multiple cameras for capturing one or more images. In some aspects, the apparatus includes a display for displaying one or more images, notifications, and / or other displayable data. In some aspects, the apparatus may include one or more sensors (e.g., one or more inertial measurement units (IMUs), such as one or more gyroscopes, one or more gyrometers, one or more accelerometers, any combination thereof, and / or other sensors).
[0008] 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 appropriate portions of the entire specification of this patent, any or all drawings, and each claim.
[0009] The foregoing and other features and examples will become more apparent by reference to the following description, claims and accompanying drawings. BRIEF DESCRIPTION OF THE DRAWINGS
[0010] Illustrative examples of the present application are described in detail below with reference to the following drawings:
[0011] Figure 1 is a block diagram illustrating a network of tracking devices according to some examples;
[0012] Figure 2 is a block diagram illustrating the main tracking devices according to some examples;
[0013] Figure 3 is a block diagram illustrating an auxiliary tracking device according to some examples;
[0014] Figure 4 is a block diagram illustrating a primary tracking device and a secondary tracking device with a multiple-input multiple-output (MIMO) transceiver according to some examples;
[0015] Figure 5is a block diagram illustrating a tracking device network from which a primary tracking device is removed according to some examples;
[0016] Fig. 6A illustrates an exemplary tracking device network including extended reality (XR) devices, smart phones, and smart watches according to some examples;
[0017] Figure 6B illustrates an exemplary network of tracking devices including a smart phone and a smart watch after an extended reality (XR) device is removed from the network according to some examples;
[0018] Figure 7 is a flow chart illustrating an example process for tracking device calibration according to some examples;
[0019] Figure 8 is a flow chart illustrating an example of a process for tracking device calibration according to some examples;
[0020] Fig. 9 is a block diagram illustrating an example of a computing system for implementing some aspects described herein. DETAILED DESCRIPTION
[0021] Some aspects and examples of the present disclosure are provided below. Some of these aspects and examples can be applied independently, and some of them can be applied in combination, which is obvious to those skilled in the art. In the following description, for the purpose of explanation, specific details are set forth in order to provide a thorough understanding of the examples of the present application. However, it is obvious that various examples can be practiced without these specific details. The accompanying drawings and descriptions are not intended to be restrictive. In addition, some details known to those of ordinary skill in the art can be omitted to avoid vague descriptions.
[0022] In the following description of the drawings, in the various examples described herein, any component described with respect to a drawing may be equivalent to one or more similarly named components described with respect to any other drawing. For the sake of brevity, the description of these components may not be repeated completely with respect to each figure. Therefore, each example of the components of each drawing is incorporated by reference and is assumed to be optionally present in each other drawing with one or more similarly named components. In addition, according to the various examples described herein, any description of the components of the drawings should be interpreted as an optional example, which can be implemented in addition to, in combination with, or in place of the examples described with respect to the corresponding similarly named components in any other drawings.
[0023] The following description provides only illustrative examples and is not intended to limit the scope, applicability or configuration of the present disclosure. Instead, the following description of the illustrative examples will provide an enabling description for implementing the exemplary examples for those skilled in the art. 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.
[0024] As used herein, the phrases operably connected or operably connected mean that there is a direct or indirect connection between elements / components / devices that allows the elements to interact with each other in some way. For example, the phrase "operably connected" can refer to any direct (e.g., directly wired between two devices or components) connection or indirect (e.g., a wired and / or wireless connection between any number of devices or components that connect an operably connected device) connection. Therefore, any path that information can travel through can be considered an operably connected. In addition, operably connected devices and / or components can exchange things other than information, such as, for example, electric current, radio frequency signals, etc.
[0025] Devices that may be owned by a user are typically configured to perform tracking of the user's location and / or movement. Examples of such devices include, but are not limited to, wearable devices (e.g., extended reality (XR) devices, (such as augmented reality (AR) devices, virtual reality (VR) devices, or mixed reality (MR) devices), smart phones, web-connected watches, activity trackers, earbuds, headphones, smart rings, smart shoes, etc.), vehicle computing systems, and / or mobile computing devices (e.g., tablet computers, laptop computers, navigation devices, vehicle computing devices, etc.). Although such devices may each be capable of tracking the user's location and / or movement, the devices may employ different techniques to perform tracking. As a result, the devices may provide relatively higher or lower tracking accuracy.
[0026] As an example, an XR headset may include components such as one or more global navigation satellite system (GNSS) receivers (e.g., global positioning system (GPS) receivers), one or more cameras, one or more wireless network components (e.g., Wi-Fi components), one or more cellular network components, one or more inertial measurement units (IMUs), one or more Bluetooth components, and / or various other sensors. All or any portion of these components may be used to provide high-precision tracking of the position and / or movement of a user wearing the XR headset. The same user may also wear a smartwatch, earbuds, etc., which may, for example, only include an IMU to perform tracking of the user's position and / or movement, where such tracking is relatively less accurate than the XR headset. The accuracy of the tracking performed by the smartwatch may be less accurate, for example, due to sensor bias and drift of the accelerometers and gyroscopes of the IMU, causing the accuracy of the tracking to degrade over time. Therefore, in the event that the user removes or turns off the XR headset, tracking the user's position and / or movement only by the lower accuracy tracking device will be less accurate, and become more so over time. Therefore, in order to address the problem of increasing the accuracy of the lower accuracy tracking device, such components of the device should be calibrated. Therefore, there is a need for systems and techniques for determining the position and pose (eg, location and orientation) of a lower precision tracking device, which allows the device to perform calibration actions from time to time in order to provide more accurate tracking of position and / or movement.
[0027] Described herein are systems, apparatus, processes (also referred to as methods), and computer-readable media (collectively, "systems and techniques") for determining the position and orientation of a lower precision tracking device, thereby allowing the device to perform calibration actions to improve tracking accuracy. In some examples, a network is established that includes one or more lower precision tracking devices and at least one higher precision tracking device. In some examples, the higher precision tracking device may be referred to as a primary tracking device, and the lower precision tracking device may be referred to as a secondary tracking device or an additional tracking device. As an example, a given user may have an XR headset as a higher precision tracking device, and a smart watch and a smart phone as lower precision tracking devices.
[0028] In some examples, the primary tracking device includes components (e.g., sensors, cameras, GPS receivers, etc.) that allow the primary tracking device to perform high-precision tracking of position and / or movement by determining the pose (position and orientation) of the primary tracking device in an environment. As an example, the primary tracking device may use image data from one or more cameras, GPS data, and IMU data to determine the pose of the primary tracking device. In some examples, the pose of the primary tracking device may be determined for six degrees of freedom (6DoF), which may refer to three translational components (e.g., which may be given by X (horizontal), Y (vertical), and Z (depth) coordinates relative to a reference frame (e.g., an image plane)) and three angular components (e.g., roll, pitch, and yaw relative to the same reference frame).
[0029] In some examples, the auxiliary tracking device or additional tracking device may include fewer components and / or components that experience sensor bias and drift, such as an IMU including an accelerometer and a gyroscope. In some examples, sensor bias refers to the offset of an output signal from a sensor relative to what the true output should be, and sensor drift refers to the increase of such offset over time (e.g., due to environmental conditions experienced by the sensor, wear on the sensor, etc.).
[0030] In some examples, a network of tracking devices can be established between a primary tracking device and one or more auxiliary or additional tracking devices. As used herein, a network of devices can mean that the devices are able to communicate with each other and / or determine information about each other using any one or more suitable technologies. In some examples, in order to improve the ability of auxiliary or additional tracking devices in the network to determine their posture in the environment, systems and techniques are provided that allow calibration of one or more sensors of the auxiliary or additional devices. In some examples, sensor calibration refers to any process or technique for adjusting a sensor so that the output of the sensor more accurately reflects any true value that the sensor is designed to measure (e.g., acceleration of an accelerometer, angular velocity of a gyroscope, etc.).
[0031] In some examples, the auxiliary tracking device performs a calibration action on one or more sensors based at least in part on obtaining accurate pose information for the auxiliary or additional tracking device. In some examples, accurate pose information for the auxiliary or additional tracking device is obtained based on the pose information of the primary tracking device and relative pose information between the primary tracking device and the auxiliary or additional tracking device (which may be referred to as absolute pose information for the auxiliary or additional tracking device).
[0032] As described above, the primary tracking device may use any combination of components to determine accurate posture information for the primary tracking device (e.g., GPS information combined with IMU information and image data). In some examples, a multiple-input multiple-output (MIMO) transceiver is used to generate relative posture information between the primary tracking device and the auxiliary tracking device or the additional tracking device. In some examples, the primary tracking device and the auxiliary tracking device or the additional tracking device may each have any number of MIMO transceivers. As used herein, a transceiver may be a component configured to send, receive, or both send and receive signals. In some examples, the MIMO transceiver is located at any number of locations on each of the tracking devices. For example, a smartphone may have a MIMO transceiver at the top of the device and on both sides of the device. In some examples, the MIMO transceiver is used to send or receive any type of signal that allows the relative position and direction between the two transceivers to be determined. Examples of technologies using various suitable signal types include, but are not limited to, millimeter wave (mmWave) technology, ultra-wideband (UWB) technology, and / or ultrasonic technology.
[0033] In some examples, such technology operates by sending a signal of appropriate frequency and / or wavelength from a MIMO transceiver on one tracking device to a MIMO transceiver on another tracking device to measure the relative position and direction (e.g., relative attitude) between the two MIMO transceivers. In some examples, several measurements from the MIMO transceivers are combined to determine the relative attitude between the two devices. In some examples, the relative attitude information is combined with the attitude information of the main tracking device to determine the absolute attitude information of the auxiliary or additional tracking device. In some examples, the main tracking device MIMO transceiver is a receiver, and the main tracking device generates relative attitude information, combines the relative attitude information with its attitude information to generate absolute attitude information of the auxiliary tracking device or the additional tracking device, and sends the absolute attitude information of the auxiliary tracking device or the additional tracking device to the auxiliary tracking device or the additional tracking device. Additionally or alternatively, in some examples, the auxiliary tracking device or the additional tracking device MIMO transceiver is a receiver, and the auxiliary tracking device or the additional tracking device generates relative attitude information and combines it with the attitude information of the main tracking device and the attitude information received from the main tracking device to generate absolute attitude information of the auxiliary tracking device or the additional tracking device.
[0034] In some examples, once the auxiliary or additional tracking device has the absolute pose information of the auxiliary or additional tracking device, the auxiliary or additional tracking device uses the absolute pose information to calibrate one or more sensors. As an example, the auxiliary or additional tracking device may use the absolute pose information to calibrate a gyroscope and an accelerometer of an IMU of the auxiliary or additional tracking device.
[0035] In some examples, once the auxiliary or additional tracking device has performed a calibration action based on the absolute pose information, the auxiliary or additional tracking device can be considered a high-precision tracking device. In some examples, the amount of time that the auxiliary or additional tracking device can be considered a high-precision tracking device depends on the characteristics of the auxiliary or additional tracking device, such as the amount of time that the accuracy of a calibrated sensor is expected to remain accurate within a certain confidence level (e.g., before sensor drift causes the auxiliary or additional tracking device sensor to fall below an acceptable level of accuracy). For example, a particular calibrated IMU can be expected to remain accurate within an acceptable confidence level for up to ten minutes. In some examples, the above-described process of calibrating one or more sensors of the auxiliary or additional tracking device using the absolute pose information of the auxiliary or additional tracking device is repeated at any interval as long as the primary tracking device remains in the tracking device network.
[0036] A particular tracking device network may have any number of primary tracking devices and / or auxiliary or additional tracking devices at a given time. In some examples, the tracking devices in the tracking device network may change over time (e.g., devices may be added, devices may be removed). In some examples, if the tracking device network does not have a primary (e.g., high-precision) tracking device, the calibration process may stop until the primary tracking device is re-added to the tracking device network. As an example, if the XR headset is the primary tracking device and the user turns off the XR headset, and no auxiliary or additional tracking device is currently calibrated to be accurate within a desired confidence level, the tracking device network does not include a primary tracking device. In some examples, if the primary tracking device is removed from the tracking device network, but the auxiliary or additional tracking device has recently been calibrated, the calibrated auxiliary or additional tracking device may become the new primary tracking device as long as the auxiliary or additional tracking device is expected to remain accurate within a certain confidence level. Thus, in some examples, the new primary tracking device may perform the functions of the primary tracking device for other tracking devices in the tracking device network during that time period.
[0037] In some examples, the type of tracking device of a particular tracking device within a tracking device network may change. In some examples, the change occurs due to a change in the situation of the particular tracking device. As an example, a smartphone can become a high-precision tracking device only when the smartphone's camera can obtain image data of the environment in which the smartphone exists. In this case, when the smartphone is in the user's pocket, the smartphone can be an auxiliary or additional tracking device, but once the smartphone is taken out of the user's pocket and the camera is activated, the smartphone can be transformed into a primary (e.g., high-precision) tracking device. As another example, in order to become the primary tracking device in a tracking device network, the tracking device may be required to be able to generate 6DoF pose information. In this case, if the user disables one or more components of the primary tracking device (e.g., turns off the camera and disables the GPS receiver), the tracking device can become an auxiliary or additional tracking device, rather than the primary tracking device within the tracking device network.
[0038] In some examples, it may be useful in various scenarios to have tracking devices within a tracking device network operate to allow the devices to each have accurate pose information. As an example, if a user has several tracking devices with accurate pose information at different locations on the user's body, the user may have an improved experience in a VR, XR, and / or AR environment (e.g., a "metaverse"). As another example, a user with a tracking device in a tracking device network may enter an environment (e.g., an indoor shopping area) where some components of the primary tracking device do not work well enough to allow the primary tracking device to maintain a high-precision tracking device, or the user may remove the primary tracking device from the tracking device when entering such a location (e.g., the user removes the user's smart glasses after entering the room). In such a scenario, because the user has one or more auxiliary or additional tracking devices that have been properly calibrated to have accurate pose information, the user's position and / or movement within the indoor environment can be accurately tracked, allowing the user to experience, for example, improved targeted advertising via geo-fencing when reaching certain locations in the environment, improved navigation capabilities when in the environment, and the like.
[0039] The examples described herein address the need to calibrate one or more sensors (e.g., an IMU) of an auxiliary or additional tracking device by using pose information of a primary tracking device and relative pose information between the primary tracking device and an auxiliary or additional tracking device to improve the accuracy of tracking the position and / or movement of the auxiliary or additional tracking device.
[0040] Various aspects of the technology described herein are discussed below with respect to the accompanying figures. Figure 1is a block diagram illustrating an example of a tracking device network 100 that includes a primary tracking device 102, a secondary tracking device 104, an additional tracking device A 106, and an additional tracking device B 108. Each of these components is described below.
[0041] In some examples, the tracking device network 100 is a collection of any tracking devices that are configured with the ability to communicate with each other and / or generate or obtain information (e.g., posture information) of other devices in the tracking device network 100. In some examples, each tracking device in the tracking device network is so configured for at least some of the time that the tracking device network 100 exists. In some examples, the tracking device is any device that is capable of tracking the location and / or movement of the device at least in part using posture information. In some examples, the posture information is the location and orientation of the tracking device, and / or the relative location and orientation between two tracking devices.
[0042] Tracking devices in the tracking device network may be configured to communicate using any suitable communication technology. Examples of such technologies include, but are not limited to, wireless network communication technology (e.g., Wi-Fi), cellular communication technology, Bluetooth communication technology, near field communication (NFS) technology, radio frequency technology, etc.
[0043] Information about other tracking devices in the tracking device network 100 can be obtained by a particular tracking device in the network by receiving information using one or more such communication technologies or by interaction between other components of the tracking devices. As an example, a tracking device may include a MIMO transceiver that transmits and / or receives signals that allow the device to determine relative posture information between devices.
[0044] Examples of tracking devices include, but are not limited to, wearable devices (e.g., extended reality (XR) devices, augmented reality (AR) devices, virtual reality (VR) devices, smart phones, smart watches, activity trackers, earbuds, headphones, smart rings, smart shoes, etc.), vehicle computing systems, vehicle-mounted inertial tracking systems, tablet computers, mobile computing devices, navigation devices, etc.
[0045] although Figure 1The tracking device network 100 is shown with four tracking devices, but the tracking device network can have any number of two or more tracking devices without departing from the scope of the examples described herein. In some examples, at least, the tracking device network 100 has at least two tracking devices that are operably connected to exchange information and / or determine or obtain information about each other. In some examples, the tracking device network 100 includes, at least at some times, at least one primary tracking device (e.g., primary tracking device 102), and one or more auxiliary tracking devices (e.g., auxiliary tracking device 104) and / or one or more additional tracking devices (e.g., additional tracking device A 106 and additional tracking device B 108). In some examples, the number of tracking devices in the tracking device network 100 changes over time, for example, as tracking devices are added to the network and / or removed from the network.
[0046] In some examples, the primary tracking device 102 is any tracking device that is capable of generating pose information for itself at or above a desired level of accuracy, and thus may be considered a high-precision tracking device. In some examples, the primary tracking device 102 is considered a high-precision tracking device relative to auxiliary tracking devices (e.g., auxiliary tracking device 104) and / or additional tracking devices (e.g., additional tracking device A 106 and additional tracking device B 108), which are capable of generating relatively less accurate pose information. In some examples, the primary tracking device 102 is configured to track pose information over time, thereby allowing the position and / or movement of the device to be tracked. In some examples, the primary tracking device 102 is a device capable of generating pose information in six degrees of freedom (6DoF), which may refer to three translational components (e.g., which may be given by X (horizontal), Y (vertical), and Z (depth) coordinates relative to a reference system (e.g., an image plane)) and three angular components (e.g., roll, pitch, and yaw relative to the same reference system).
[0047] although Figure 1The tracking device network 100 is shown as having a single primary tracking device 102, but the tracking device network 100 may include any number of primary tracking devices without departing from the scope of the examples described herein. The number of primary tracking devices in the tracking device network 100 may change over time. As an example, a primary tracking device may be added to or removed from the tracking device network 100. As another example, an auxiliary or additional tracking device in the tracking device network may acquire capabilities that allow the device to become a primary tracking device (e.g., removed from a pocket, allowing a camera to acquire image data, features may be activated, etc.). As another example, a primary tracking device (e.g., the primary tracking device 102) in the tracking device network 100 may lose capabilities (e.g., some sensors are deactivated, the device is powered off, etc.), thereby reducing the accuracy of the gesture information that the primary tracking device 102 is able to generate. In this case, the primary tracking device 102 may or may not remain in the tracking device network 100. In some examples, if such a primary tracking device remains in the tracking device network 100, it may transition to become an auxiliary or additional tracking device in the tracking device network 100.
[0048] In some examples, the primary tracking device 102 is configured to generate high-precision pose information of the primary tracking device 102 using any number of sensors, components, etc. of the primary tracking device. In some examples, the primary tracking device is configured to generate MIMO measurement information and use the information to generate relative pose information between the primary tracking device 102 and one or more auxiliary tracking devices (e.g., auxiliary tracking device 104) and / or additional tracking devices (e.g., additional tracking device A 106 and additional tracking device B 108). Additionally or alternatively, the primary tracking device can be configured to send a signal (e.g., mmWave signal, UWB signal, ultrasonic signal, etc.) to one or more auxiliary tracking devices (e.g., auxiliary tracking device 104) and / or additional tracking devices (e.g., additional tracking device A 106 and additional tracking device B 108) so that the other one or more tracking devices can generate relative pose information. In some examples, the pose information of the primary tracking device 102 and the relative pose information between the primary tracking device 102 and one of the other tracking devices can be used to calibrate one or more sensors of the other tracking devices, thereby improving the accuracy of the one or more sensors. Information from one or more sensors or components of the primary tracking device 102 may also be used to calibrate other sensors or components of the primary tracking device 102. Figure 2 The main tracking devices are discussed further in the description of .
[0049] In some examples, the auxiliary tracking device 104 is any device having one or more sensors of any type for tracking the position and / or location of the device and requiring calibration from time to time to remain accurate (e.g., an IMU). In some examples, the auxiliary tracking device 104 is a lower precision tracking device relative to the primary tracking device 102. The auxiliary tracking device 104 can be any of the example tracking devices discussed above. The auxiliary tracking device 104 can be operably connected to the primary tracking device 102 and / or any other device in the tracking device network 100 (e.g., additional tracking device A 106 and additional tracking device B 108). Although Figure 1 Tracking device network 100 is shown with a single secondary tracking device 104, but tracking device network 100 may have any number of secondary tracking devices without departing from the scope of the examples described herein. Secondary tracking device 104 may be a different device type than primary tracking device 102, or may be the same type of device.
[0050] In some examples, Figure 1 106 and additional tracking device B 108) are shown to illustrate that the tracking device network 100 may include any number of tracking devices. In some examples, like the auxiliary tracking device 104, the additional tracking device is any device that has one or more sensors of any type for tracking the position and / or location of the device and requires calibration from time to time to remain accurate (e.g., an IMU). Each additional tracking device (e.g., additional tracking device A 106 and additional tracking device B 108) may be operably connected to the main tracking device 102. Each additional tracking device may also be operably connected to the auxiliary tracking device 104 and / or any other additional tracking device in the tracking device network. The additional tracking devices (e.g., additional tracking device A 106 and additional tracking device B 108) may be different types of tracking devices than other tracking devices in the tracking device network, or all or any portion of the tracking devices may be the same type of device. For example, the main tracking device may be smart glasses, the auxiliary tracking device may be a pair of earbuds, and both additional tracking devices may be smart phones. Any combination of device types may be present in tracking device network 100 without departing from the examples described herein.
[0051] In some examples, the auxiliary tracking device 104 and / or any additional tracking devices (e.g., additional tracking device A 106 and additional tracking device B 108) can become the primary tracking device. As an example, the auxiliary tracking device may have additional sensors (e.g., cameras) and / or features (e.g., GPS location tracking) activated that allow the auxiliary tracking device to perform more accurate tracking of position, location, and / or orientation (e.g., attitude). As an example, after performing calibration actions so that the sensor (e.g., IMU) is above a confidence level threshold for tracking accuracy, they can be considered as the primary tracking device. In this case, the auxiliary tracking device 104 and / or any additional tracking device (e.g., additional tracking device A 106 and additional tracking device B 108) can remain the primary tracking device for a period of time within the tracking device network 100 based on the rate of sensor drift, and stop being the primary tracking device when the confidence level of the sensor output drops below the threshold. In some examples, the secondary tracking device 104 and / or any additional tracking devices (e.g., additional tracking device A 106 and additional tracking device B 108) that become primary tracking devices may be referred to as new primary tracking devices. In some examples, the secondary tracking device 104 and / or any additional tracking devices (e.g., additional tracking device A 106 and additional tracking device B 108) are each operably connected to at least one primary tracking device (e.g., primary tracking device 102) and are configured to generate or receive relative pose information, as well as receive pose information from the primary tracking device. Additionally or alternatively, the secondary tracking device 104 and / or any additional tracking devices (e.g., additional tracking device A 106 and additional tracking device B 108) may also be operably connected to all or any portion of the other tracking devices in the tracking device network 100 and configured to share pose information. Below in Figure 3 Auxiliary tracking devices and additional tracking devices are further discussed in the description of .
[0052] Although Figure 1 A certain number of components in a particular configuration are shown, but one of ordinary skill in the art will appreciate that the tracking device network 100 may include more components or fewer components, and / or components arranged in any number of alternative configurations without departing from the scope of the examples described herein. Figure 1 Configuration of the components shown in .
[0053] Figure 2 is a block diagram of an example primary tracking device 200 according to one or more examples described herein. In some examples, the primary tracking device 200 and Figure 1 The primary tracking device 102 is the same as shown in FIG. Figure 2As shown, primary tracking device 200 includes image sensor 202, IMU 204, processor 206, memory device 208, storage device 210, additional position sensor 212, MIMO transceiver A 216, MIMO transceiver B 218, and communication component 220. IMU 204 includes accelerometer 222 and gyroscope 224. Each of these components is described below.
[0054] In some examples, such as above, Figure 1 As discussed in the description of , the primary tracking device 200 is any tracking device that is capable of generating pose information for itself at or above a desired level of accuracy, and thus may be considered a high-precision tracking device. Examples of tracking devices include, but are not limited to, wearable devices (e.g., extended reality (XR) devices, augmented reality (AR) devices, virtual reality (VR) devices, smart phones, smart watches, activity trackers, earbuds, headphones, smart rings, smart shoes, etc.), vehicle computing systems (e.g., vehicle navigation systems), tablet computers, mobile computing devices, navigation devices, etc. The primary tracking device 200 may be any such device. In some examples, the primary tracking device 102 is a device capable of generating pose information of six degrees of freedom (6DoF), which may refer to three translation components (e.g., which may be given by X (horizontal), Y (vertical), and Z (depth) coordinates relative to a reference frame (e.g., an image plane)) and three angular components (e.g., roll, pitch, and yaw relative to the same reference frame). In some examples, the primary tracking device 200 is configured to determine pose information of the primary tracking device 200 using one or more components (discussed below). As an example, the primary tracking device 200 may use the processor 206 , the memory device 208 , and the storage device 210 to process information from the IMU 204 , the image sensor 202 , and the one or more additional position sensors 212 to generate pose information for the primary tracking device 200 .
[0055] In some examples, the processor 206 is any component that includes a circuit for executing instructions (e.g., of a computer program). As an example, such a circuit may be an integrated circuit implemented at least in part using transistors that implement components such as an arithmetic logic unit, a control unit, a logic gate, a register, etc. In some examples, the processor may include additional components, such as a cache memory. In some examples, the processor retrieves and decodes instructions and then executes them. The execution of instructions may include operating on data, which may include reading and / or writing data. In some examples, the instructions and data used by the processor are stored in a memory (e.g., a memory device 208) of the main tracking device 200. The processor may perform various operations for executing software (such as an operating system, an application, etc.). The processor 206 may cause data to be written from the memory to the storage device of the main tracking device 200 and / or cause data to be read from the storage device via the memory. Examples of processors include, but are not limited to, a central processing unit (CPU), a graphics processing unit (GPU), a neural processing unit, a tensor processing unit, a data processing unit (DPU), a digital signal processor (DSP), etc. Processor 206 may be operably connected to memory device 208 and any memory of primary tracking device 200 (eg, storage device 210). Figure 2 The primary tracking device 200 is shown with one processor 206 , but the primary tracking device 200 may have any number of processors without departing from the scope of the examples described herein.
[0056] In some examples, the primary tracking device 200 includes a storage device 210. In some examples, the storage device 210 is a non-volatile data storage device. The storage device 210 may be, for example, a persistent memory device. In some examples, the storage device 210 may be any type of computer memory. Examples of computer memory types include, but are not limited to, hard disk drives, solid-state drives, flash memory, tape drives, removable disk drives, universal serial bus (USB) storage devices, secure digital (SD) cards, optical storage devices, read-only memory devices, and the like. Although Figure 1 The storage device 210 is shown as part of the primary tracking device 200, but the storage device 210 can be separate from the primary tracking device 200 and operably connected to the primary tracking device 200 (e.g., an external drive array, cloud storage, etc.). In some examples, the storage device 210 is operably connected to the processor 206. Although Figure 2 The primary tracking device 200 is shown with a single storage device 210 , but the primary tracking device 200 may have any number of storage devices without departing from the scope of the examples described herein.
[0057] In some examples, the primary tracking device 200 includes a memory device 208. The memory device 208 can be any type of computer memory. In some examples, the memory device 208 is a volatile memory device. As an example, the memory device 208 can be a random access memory (RAM). In one or more examples, data stored in the memory device 208 is located at a memory address and is therefore accessible by the processor 206 using the memory address. Similarly, the processor 206 can write data to the memory device 208 using the memory address. The memory device 208 can be used to store any type of data, such as, for example, computer programs, calculation results, sensor data, etc. In some examples, the memory device 208 is operably connected to the processor 206. Although Figure 2 The primary tracking device 200 is shown with a single memory device 208 , but the primary tracking device 200 may have any number of memory devices without departing from the scope of the examples described herein.
[0058] In some examples, the primary tracking device 200 includes one or more additional location sensors 212. Without departing from the scope of the examples described herein, the primary tracking device 200 may include any number of additional location sensors 212. A sensor may be any device capable of obtaining any type of data about an environment or anything in the environment. Examples of additional location sensors include, but are not limited to, sound sensors, pressure sensors, image capture devices, temperature sensors, radio detection and ranging (RADAR) devices, light detection and ranging (LIDAR) devices, motion sensors, location tracking devices (e.g., GPS receivers), collision detection devices, proximity sensors, accelerometers, gyroscopes, magnetometers, infrared sensors, ultrasonic sensors, smoke detectors, gas detectors, touch sensors, color sensors, humidity sensors, precipitation sensors, fluid flow sensors, magnetic sensors, tilt sensors, strain and weight sensors, and the like. The primary tracking device 200 may have any number of sensors of a single type or any combination of types. In some examples, the additional location sensors 212 are operably connected to the processor 206 and / or the storage device 210. In some examples, data from one or more additional location sensors 212 is stored in the storage device 210. In some examples, data from one or more additional position sensors 212 is processed by the processor 206, possibly along with data from other sources (e.g., IMU 204, image sensor 202, etc.), to obtain a result, which may include a pose of the primary tracking device 200. The additional position sensors 212 may be used to obtain data at a scheduled time, upon request, in response to an event occurrence (e.g., event-driven sensing), and / or any combination thereof.
[0059] In some examples, the primary tracking device 200 includes a communication component 220. The communication component 220 can be any component capable of wirelessly sending and / or receiving data (e.g., posture information). Examples of communication components include, but are not limited to, wireless transceivers, modems, and / or other components that implement any type of wireless communication technology. Such types of wireless communication technology include, but are not limited to, radio frequency communication, cellular network communication, Bluetooth communication, infrared communication, satellite communication, microwave communication, visible light communication (e.g., Li-Fi), wireless network communication (e.g., Wi-Fi), ultrasonic communication, etc. Although Figure 2 The master tracking device 200 is shown with a single communication component 220, but the master tracking device 200 can have any number of communication components without departing from the scope of the examples herein, and such communication components can use a single wireless communication technology or a mix of any number of different wireless communication technologies. In some examples, the communication component 220 is operably connected to the processor 206 and / or the additional location sensor 212. In some examples, the communication component 220 is configured to communicate to a tracking device network (e.g., Figure 1 One or more auxiliary and / or additional tracking devices in the tracking device network 100) send data (e.g., sensor data, operation results, processed data, etc.) and / or receive data from the tracking device network (e.g., Figure 1 One or more auxiliary and / or additional tracking devices in the tracking device network 100) receive the data.
[0060] In some examples, the primary tracking device includes an image sensor 202. In some examples, the image sensor 202 is any device capable of optically sensing and capturing an image (e.g., a two-dimensional representation) of at least a portion of the environment in which the primary tracking device 200 is present. As an example, the image sensor 202 may be a camera. The camera may obtain an image via light in the visible spectrum or any other portion of the electromagnetic spectrum. Without departing from the scope of the examples described herein, the camera may be any type of camera. Examples of camera types include (but are not limited to) video cameras, digital cameras, tablet cameras, single-lens reflex cameras, mobile device cameras, security cameras, etc. In some examples, the image sensor 202 is operably connected to the processor 206. In some examples, the image sensor 202 is configured to capture an image of at least a portion of the environment and provide or make available to the processor 206 and / or storage device 210 data representing the image (e.g., image data). In some examples, the image sensor 202 may be capable of being repositioned to capture different portions of the environment by panning, tilting, tracking, etc. In some examples, image sensor 202 is configured with zoom capability. Figure 1The primary tracking device 200 is shown as having a single image sensor 202 , but the primary tracking device 200 may have any number of image sensors without departing from the scope of the examples described herein.
[0061] In some examples, the primary tracking device 200 includes an IMU 204. In some examples, the IMU 204 is an electronic component that measures and provides various characteristics (e.g., specific force, angular rate, direction, etc.) related to the position and / or orientation of the primary tracking device 200 from sensors (e.g., accelerometer 222 and gyroscope 224) as output. In some examples, the IMU 204 includes an accelerometer 222. In some examples, the accelerometer 222 is a component that measures and provides the acceleration (e.g., specific force) of the body in its instantaneous stationary coordinate system as output. In some examples, the IMU 204 also includes a gyroscope 224. In some examples, the gyroscope 224 is a component that measures angular velocity and provides angular velocity as output information. The output from the accelerometer 222 can be combined with the output from the gyroscope 224 to provide tracking of the position, orientation, and / or orientation of the primary tracking device 200. The output of the IMU 204 may be combined with the output of other components of the primary tracking device 200 (eg, the image sensor 202, one or more additional position sensors 212, etc.) to generate pose information for the primary tracking device 200. Figure 2 Although not shown, the IMU 204 may be part of a component such as an inertial navigation system (INS). The IMU 204 may include any number of additional components (e.g., magnetometers, accelerometers, gyroscopes, etc.) without departing from the scope of the examples described herein. The IMU 204 may be operably connected to any other components of the primary tracking device, such as the processor 206. Although Figure 2 The primary tracking device 200 is shown as having a single IMU 204, but the primary tracking device 200 may include any number of IMUs without departing from the scope of the examples described herein.
[0062] In some examples, primary tracking device 200 includes any number of MIMO transceivers. Figure 2 In the example shown, the primary tracking device includes two MIMO transceivers: MIMO transceiver A 216 and MIMO transceiver B 218. In some examples, a MIMO transceiver is any component capable of transmitting and / or receiving signals of any frequency or wavelength. In some examples, the MIMO transceivers are located at any number of locations on the primary tracking device 200. Figure 2In the example shown, MIMO transceiver A 216 is located on one side of the primary tracking device 200, and MIMO transceiver B 218 is located on the opposite side. In some examples, the MIMO transceiver of the primary tracking device can be configured to receive signals (e.g., mmWave signals, UWB signals, ultrasonic signals, etc.) from MIMO transceivers on other tracking devices (e.g., auxiliary and / or additional tracking devices). In such examples, the primary tracking device can be configured to use the received signals to determine the relative position and / or orientation of the transmitting MIMO transceiver and the receiving MIMO transceiver. In some examples, each MIMO transceiver on the primary tracking device can receive signals from any number of MIMO transceivers on the auxiliary or additional tracking devices, and the signals can be processed together to determine the relative position and orientation (e.g., relative pose) information between the two devices. The primary tracking device 200 can be configured to send the relative pose information and the pose information of the primary tracking device 200 to the auxiliary or additional tracking device, thereby allowing the auxiliary or additional tracking device to perform calibration actions (e.g., calibrate the IMU).
[0063] Although Figure 2 A certain number of components in a particular configuration are shown, but one of ordinary skill in the art will appreciate that the primary tracking device 200 may include more components or fewer components, combinations of one or more components into a single component, certain components implemented as two or more components, and / or components arranged in any number of alternative configurations without departing from the scope of the examples described herein. Additionally, although Figure 2 Although not shown, one of ordinary skill in the art will appreciate that the primary tracking device 200 may execute any number or type of software or firmware (e.g., boot loaders, operating systems, hypervisors, virtual machines, computer applications, mobile device apps, etc.) when powered on. Therefore, the examples disclosed herein should not be limited to Figure 2 Configuration of the components shown in .
[0064] Figure 3 is a block diagram of an auxiliary tracking device 300 according to one or more examples described herein. In some examples, the auxiliary tracking device 300 and Figure 1 The auxiliary tracking device 104 shown in and described above and / or Figure 1 , and any additional tracking devices (e.g., 106, 108) shown in and described above. Figure 1As discussed in the description of , examples of auxiliary or additional tracking devices include, but are not limited to, wearable devices (e.g., extended reality (XR) devices, augmented reality (AR) devices, virtual reality (VR) devices, smart phones, smart watches, activity trackers, earbuds, headphones, smart rings, smart shoes, etc.), vehicle computing systems, vehicle-mounted inertial tracking systems, tablet computers, mobile computing devices, navigation devices, etc. As used herein, the terms auxiliary tracking device and additional tracking device may be used interchangeably, such as Figure 3 As shown, auxiliary tracking device 300 includes IMU 302, calibration component 308, communication component 316, MIMO transceiver C 310, MIMO transceiver D 312, and MIMO transceiver E 314. IMU 302 may include accelerometer 304 and gyroscope 306, each of which is described below.
[0065] In some examples, IMU 302, accelerometer 304, gyroscope 306, MIMO transceivers 310, 312, and 314, and communication component 316 are substantially similar to Figure 2 The secondary tracking device 300 may include similarly named components of the primary tracking device 200 shown in and described above, and may be configured to perform the same or similar functions as described above. Figure 3 Other components shown in FIG. 1 , such as processors, memory devices, storage devices, additional position sensors, image sensors, etc. For the sake of brevity and clarity, Figure 3 The description of these components will not be repeated in the description of FIG.
[0066] In some examples, the MIMO transceivers 310, 312, and 314 of the auxiliary tracking device 300 provide signals to the primary tracking device (e.g., Figure 2 200) and / or from a primary tracking device (e.g., Figure 2The signals are received by the corresponding MIMO transceiver of the primary tracking device 200 of the auxiliary tracking device 300. In some examples, the auxiliary tracking device 300 includes a calibration component 308. In some examples, the calibration component 308 is any component capable of performing calibration actions to calibrate the sensors or components (e.g., IMU 302) of the auxiliary tracking device 300. The calibration component 308 may include and / or be operably connected to a processor (not shown) of the auxiliary tracking device 300. In some examples, sensor calibration refers to any process or technique for adjusting a sensor so that the output of the sensor more accurately reflects the true value of anything the sensor is designed to measure (e.g., acceleration / specific force of an accelerometer, angular velocity of a gyroscope, etc.). The calibration component 308 may perform calibration actions on any number of sensors and / or components of the auxiliary tracking device without departing from the scope of the examples described herein. In some examples, the calibration component 308 is configured to perform calibration actions by at least partially using the absolute attitude information (e.g., ground truth attitude) of the auxiliary tracking device and the output of one or more sensors (e.g., the sensor being calibrated). In an example where the secondary tracking device MIMO transceiver (e.g., 310, 312, 314) transmits a signal to a corresponding MIMO transceiver of the primary tracking device, the calibration component 308 can receive absolute pose information from the primary tracking device (e.g., via the communication component 316), and the primary tracking device can generate the absolute pose information based on its own pose information and the relative pose information between the primary tracking device and the secondary tracking device. In an example where the secondary tracking device MIMO transceiver (e.g., 310, 312, 314) receives a signal from the corresponding MIMO transceiver of the primary tracking device, the calibration component can generate the absolute pose information based on the pose information of the primary tracking device received from the primary tracking device and the locally generated relative pose information between the primary tracking device and the secondary tracking device 300.
[0067] The auxiliary tracking device 300 may include any number of MIMO transceivers, and each MIMO transceiver may be located at a different location of the auxiliary tracking device 300 . Figure 3 The example shown in FIG. 3 shows two MIMO transceivers (e.g., 310 and 312) located on opposite sides of the auxiliary tracking device 300, and a MIMO transceiver 314 located at the top of the auxiliary tracking device 300. One of ordinary skill in the relevant art will appreciate that the MIMO transceivers may be located at or near the top of the auxiliary tracking device 300 without departing from the scope of the examples described herein. Figure 3 In the different locations shown.
[0068] Although Figure 3A certain number of components in a particular configuration are shown, but one of ordinary skill in the art will appreciate that the auxiliary tracking device 300 may include more components or fewer components, combinations of one or more components into a single component, certain components implemented as two or more components, and / or components arranged in any number of alternative configurations without departing from the scope of the examples described herein. Figure 3 Although not shown, one of ordinary skill in the art will appreciate that the auxiliary tracking device 300 can execute any number or type of software or firmware (e.g., boot loaders, operating systems, hypervisors, virtual machines, computer applications, mobile device apps, etc.) when powered on. Therefore, the examples disclosed herein should not be limited to Figure 3 Configuration of the components shown in .
[0069] Figure 4 is a block diagram of a tracking device network 400 according to one or more examples described herein. Figure 4 As shown, tracking device network 400 includes primary tracking device 402 and secondary tracking device 408. Primary tracking device 402 includes MIMO transceiver A 404 and MIMO transceiver B 406. Secondary tracking device 408 includes MIMO transceiver C 410, MIMO transceiver D 412, and MIMO transceiver E 414. Each of these components is described below.
[0070] like Figure 4 As shown, for clarity, the tracking device network 400 includes only two tracking devices. Figure 1 As shown, a tracking device network may include any number of primary tracking devices, and any number of auxiliary and / or additional tracking devices without departing from the scope of the examples described herein. Figure 4 The tracking device network 400 shown in FIG. Figure 1 The tracking device network 100 shown in FIG. 1 and described above is the same as or substantially similar to that shown in FIG.
[0071] The primary tracking device 402 can be used with Figure 1 The primary tracking device 102 shown in and described above and / or Figure 2 402 and described above. Although the primary tracking device 402 may include any number of components, sensors, etc. (e.g., Figure 2 ), but for clarity, Figure 4 These components, sensors, etc., except for the MIMO transceiver are omitted.
[0072] The auxiliary tracking device 400 can be used with Figure 1The auxiliary tracking device 104 shown in and described above and / or Figure 3 The auxiliary tracking device 300 shown in FIG. 4 and described above is the same or substantially similar. Although the auxiliary tracking device 408 may include any number of components, sensors, etc. (e.g., Figure 3 ), but for clarity, Figure 4 Except for the MIMO transceiver, these components, sensors, etc. are omitted. Figure 4 Auxiliary tracking device 408 is shown, but as described above, auxiliary tracking device and additional tracking device refer to the same type of device, are interchangeable, etc. Therefore, without departing from the scope of the examples described herein, Figure 4 The auxiliary tracking device 408 shown in FIG. 4 may also be referred to as an additional tracking device.
[0073] MIMO transceiver A 404 and MIMO transceiver B 406 may each communicate with Figure 2 MIMO transceiver A 216 and / or MIMO transceiver B 218 shown in and described above may be the same or substantially similar. MIMO transceiver C 410, MIMO transceiver D 412, and MIMO transceiver E 414 may each be connected to Figure 3 MIMO transceiver C 310, MIMO transceiver D 312, and / or MIMO transceiver E 314 are shown to be the same or substantially similar to those described above.
[0074] In some examples, MIMO transceivers are located at various locations on the primary tracking device 402 and the secondary tracking device 408. The various locations can be designed to allow the relative pose (e.g., position and orientation) between the primary tracking device 402 and the secondary tracking device to be determined. Figure 4 As shown, the MIMO transceivers (e.g., 404 and 406) of the primary tracking device 402 each communicate with each of the MIMO transceivers (e.g., 410, 412, and 414) of the secondary tracking device 408. In some examples, the MIMO transceivers of the primary tracking device 402 and the MIMO transceivers of the secondary tracking device 408 can be MIMO transmitters, MIMO receivers, or function as both receivers and transmitters, depending on the technique used to determine the relative position (e.g., distance) between two particular MIMO transceivers (e.g., one MIMO transceiver of the primary tracking device 402 and another MIMO transceiver of the secondary tracking device 408).
[0075] As an example, the MIMO transceivers may be configured to implement ultra-wideband (UWB) technology. In this case, each MIMO transceiver of the primary tracking device 402 may transmit a signal in the UWB portion of the radio frequency spectrum to each MIMO transceiver of the secondary tracking device 408. The MIMO transceivers of the secondary tracking devices 408 may receive the signal and then transmit a corresponding signal back to each MIMO transceiver of the primary tracking device 402. The primary tracking device 402 may then perform a time of flight (ToF) calculation to determine the distance between each MIMO transceiver of the primary tracking device 402 and each MIMO transceiver of the secondary tracking device 408. The total set of distances may then be used to determine the relative position and orientation (attitude) of the primary tracking device 402 and the secondary tracking device 408.
[0076] In one or more examples, the number and location of MIMO transceivers on each of the two tracking devices can be a number and location that allows an accurate relative pose to be generated. As an example, a single pair of MIMO transceivers can be used to determine the distance between the MIMO transceivers, but will not allow the generation of fill-in relative pose information. However, having a greater number of MIMO transceivers on both tracking devices, placed at various locations on the tracking devices, can collectively allow the generation of relative pose information. In some examples, the number and location of MIMO transceivers are sufficient to allow the generation of 6DoF relative pose information between the primary tracking device 402 and the secondary tracking device 408.
[0077] Although the above examples use a relative attitude generation technique based on UWB signals, any frequency and / or wavelength of the signal may be used to implement any technique that can determine the distance between MIMO transceivers and be used to generate relative attitude information, and such a technique may use any type of calculation (e.g., in addition to ToF calculations) to determine the distance. Thus, in some examples, the MIMO transceivers of the primary tracking device 402 and the auxiliary tracking device 408 may each be configured to send and receive signals (e.g., as in the above UWB example). In other examples, the MIMO transceiver of the primary tracking device 402 may be a receiver that receives signals, and the MIMO transceiver of the auxiliary tracking device 408 may be a transmitter that sends signals. In other examples, the opposite may be true, where the MIMO transceiver of the primary tracking device 402 sends signals and the MIMO transceiver of the auxiliary tracking device 408 receives signals. Thus, the primary tracking device 402 or the auxiliary tracking device 408 may be the tracking device that generates the relative attitude information, depending on the configuration of the respective MIMO transceivers and / or the attitude generation technique used. Examples of such technologies include, but are not limited to, UWB, mmWave, ultrasonic, Wi-Fi, Bluetooth, etc.
[0078] In some examples, the relative pose information generated by either the primary tracking device 402 or the secondary tracking device 408 is used in combination with the pose information of the primary tracking device 402 to generate absolute pose information of the secondary tracking device 408. As an example, the pose information of the primary tracking device 402 may be pose information within an environment in which the tracking device network 400 is deployed. Combining this pose information with the relative pose information between the primary tracking device 402 and the secondary tracking device 408 may produce absolute pose information of the secondary tracking device 408. The absolute pose information of the secondary tracking device 408 may be generated by the primary tracking device 402 in some examples, and by the secondary tracking device 408 in other examples.
[0079] In some examples, the absolute pose information of the auxiliary tracking device 408 is used by the auxiliary tracking device 408 to perform calibration actions on any one or more sensors or components (e.g., IMU) of the auxiliary tracking device 408. As described above, a calibration action is any adjustment of any one or more sensors, modification of the output of such sensors, etc., which causes the sensor or component to have an output that more closely tracks the ground truth position, location, and / or orientation of the auxiliary tracking device 408 within the environment. In some examples, using the techniques described herein, such calibration actions can be performed on any recurring schedule, such as periodically, on demand, any time a calibration of a sensor or component has degraded below a threshold confidence level, etc., as long as the tracking device network 400 includes at least one primary tracking device. In some examples, the auxiliary tracking device 408 can be considered to be the new primary tracking device within the tracking device network 400 for a period of time after the calibration action. In some examples, the period of time depends on known characteristics of the sensor and / or component related to sensor bias, sensor drift rate, etc.
[0080] Although Figure 4 A certain number of components in a particular configuration are shown, but one of ordinary skill in the art will appreciate that the tracking device network may include more components or fewer components, combinations of one or more components into a single component, some components implemented as two or more components, and / or components arranged in any number of alternative configurations without departing from the scope of the examples described herein. Figure 4 Although not shown, one of ordinary skill in the art will appreciate that tracking devices 402 and 408 can execute any number or type of software or firmware (e.g., boot loaders, operating systems, hypervisors, virtual machines, computer applications, mobile device apps, etc.) when powered on. Therefore, the examples disclosed herein should not be limited to Figure 4 Configuration of the components shown in .
[0081] Figure 5is a block diagram of an example tracking device network 500 according to one or more examples described herein. Figure 5 As shown, tracking device network 500 includes primary tracking device 502, new primary tracking device 504, additional tracking device A 506, and additional tracking device B 508. Each of these components is described below.
[0082] The primary tracking device 502 can be used with Figure 1 The main tracking device 102 shown in Figure 2 The main tracking device 200 shown in FIG. Figure 4 The primary tracking device 402 shown in FIG. 5 is the same as or substantially similar to the primary tracking device 402, each of which is described above. Additional tracking device A 506 and additional tracking device B 508 may be used with Figure 1 The auxiliary tracking device 104 shown in Figure 1 The additional tracking device A 106 shown in Figure 1 The additional tracking device B 108 shown in Figure 3 The auxiliary tracking device 300 shown in and / or Figure 4 The auxiliary tracking devices 408 shown in FIG. 4 are the same or substantially similar to those shown in FIG. 4 , each of which is described above.
[0083] The new primary tracking device 504 can be connected with Figure 1 The auxiliary tracking device 104 shown in Figure 1 The additional tracking device A 106 shown in Figure 1 The additional tracking device B 108 shown in Figure 3 The auxiliary tracking device 300 shown in and / or Figure 4 The auxiliary tracking devices 408 shown in FIG. 4 are the same or substantially similar to those shown in FIG. 4 , each of which is described above.
[0084] Figure 5 It is intended to illustrate an example scenario where the tracking device network 500 previously appeared to be Figure 1 The tracking device network 100 shown is the same or substantially similar. Figure 5 As shown, the primary tracking device 502 is no longer part of the tracking device network. As an example, the primary tracking device 502 may have lost power, lost communication capabilities, had some components and / or features disabled, etc. Any other technique for removing the primary tracking device 502 from the tracking device network 500 may have occurred without departing from the scope of the examples described herein.
[0085] exist Figure 5 In the example scenario shown, before the primary tracking device 502 is removed from the tracking device network 500, the primary tracking device 502 and the secondary tracking device (in Figure 5The primary tracking device 502 (shown as a new primary tracking device 504 and described further below) interacts to provide the secondary tracking device with absolute pose information of the secondary tracking device. To achieve this, in some examples, the primary tracking device 502 generates high-precision pose information of the primary tracking device 502. In addition, the primary tracking device 502 or the secondary tracking device uses multiple MIMO transceivers at various locations on each device to generate relative pose information. Next, the primary tracking device 502 or the secondary tracking device uses the pose information of the primary tracking device 502 and the relative pose information to generate absolute pose information for the secondary tracking device. In some examples, the secondary tracking device uses the absolute pose information (e.g., as generated locally or received from the primary tracking device 502) to perform a calibration action of an IMU (not shown) of the secondary tracking device. In some examples, once the calibration action is successfully completed, the secondary tracking device becomes Figure 5 New primary tracking device 504 is shown.
[0086] In some examples, both the new primary tracking device 504 and the primary tracking device 502 function as the primary tracking device within the tracking device network until such time as the primary tracking device 502 is removed from the tracking device network 500, or until time has passed and the calibration of the IMU has degraded below an acceptable confidence level. However, in the event that the primary tracking device 502 is removed from the tracking device network 500 and the new primary tracking device 504 retains sufficient calibration to be considered the primary tracking device, the new primary tracking device 504 may function as the primary tracking device in the tracking device network relative to any other tracking devices remaining in the tracking device network (e.g., additional tracking devices 506, additional tracking devices 508).
[0087] Although Figure 5 A certain number of components in a particular configuration are shown, but one of ordinary skill in the art will appreciate that tracking device network 500 may include more components or fewer components, combinations of one or more components into a single component, some components implemented as two or more components, and / or components arranged in any number of alternative configurations without departing from the scope of the examples described herein. Figure 5 Although not shown, one of ordinary skill in the art will appreciate that tracking devices 502, 504, 506, and 508 can execute any number or type of software or firmware (e.g., boot loaders, operating systems, hypervisors, virtual machines, computer applications, mobile device apps, etc.) when powered on. Therefore, the examples disclosed herein should not be limited to Figure 5 Configuration of the components shown in .
[0088] Fig. 6A and Figure 6BAn example tracking device network 600 is shown according to one or more examples described herein. The following examples are for explanation purposes only and are not intended to limit the scope of the embodiments described herein. In addition, although the examples illustrate some aspects of the examples described herein, all possible aspects of these examples may not be shown in this particular example.
[0089] Reference now Fig. 6A , consider a scenario where a user wears XR glasses 602 and a smart watch 606 and has a smart phone 604 in the user's pocket. XR glasses 602, smart watch 606, and smart phone 604 are each configured to participate in a tracking device network. Thus, they can communicate with the above-mentioned tracking devices (e.g., Figure 1 102, 104, 106 and / or 108, Figure 2 200 Figure 3 300 Figure 4 402 and 408, and / or Figure 5 502, 504, 506 and / or 508) are the same or substantially similar (e.g., with respect to the components, sensors, etc. included). Specifically, the XR glasses are configured as a primary tracking device (e.g., Figure 2 The smartphone is a secondary tracking device (e.g., Figure 3 Smart watch 606 is an additional tracking device in the tracking device network 600 .
[0090] As a primary tracking device, the XR glasses 602 have a relatively higher accuracy for tracking the position and posture of the XR glasses 602 than the smartphone 604 or the smartwatch 606. In addition, due to the additional sensors and components, the smartphone 604, although generally having a lower accuracy than the XR glasses, has a relatively higher accuracy than the smartwatch 606. In addition, the smartphone 604, if taken out of the user's pocket and has an activated camera, is able to serve as a primary tracking device, although it is not a primary tracking device when in the pocket. Both the smartphone 604 and the smartwatch 606 include an IMU (not shown), which will be periodically calibrated when the tracking device network 600 is active, of which the XR glasses 602 are part.
[0091] In this case, the user may initially activate (e.g., power on) the XR glasses 602. The XR glasses 602 may then use any sensors or components therein (e.g., cameras, IMUs, GPS receivers, etc.) to generate pose information of the XR glasses 602. In addition, the XR glasses include several MIMO transceivers and implement UWB-based technology for sending and receiving signals from the MIMO transceivers of the smart phone 604 and the smart watch 606 to generate relative pose information between the XR glasses 602 and the smart phone 604 and between the XR glasses 602 and the smart watch 606. The pose information of the XR glasses 602 and the relative pose information are then used to determine the absolute pose information of the smart phone 604. The smart phone 604 includes more computing resources than the smart watch 606. Therefore, the smart phone 604 performs a calibration action and thus calibrates its IMU before the smart watch 606 reaches a state where it is calibrated above a threshold accuracy confidence level.
[0092] After the smartphone 604 is calibrated, but before the smartwatch 606 completes the calibration action, the user turns off the power of the XR glasses 602, thereby removing the XR glasses 602 from the tracking device network, such as Figure 6B Because smartphone 604 is calibrated, smartphone 604 becomes the new primary tracking device within tracking device network 600 .
[0093] In this case, the user then removes the smartphone 604 from the user's pocket and activates the smartphone's camera and GPS receiver. With these additional features, the smartphone 604 is able to remain as the primary tracking device because it can self-calibrate and determine its posture information. Next, the smartphone 604 uses its MIMO transceiver to send and receive signals from the MIMO transceiver of the smart watch 606 to determine the relative posture information between the smartphone 604 and the smart watch 606. The posture information and relative posture information of the smartphone 604 are then used to determine the absolute posture information of the smart watch 606. At this point, both the smartphone 604 and the smart watch 606 can be considered as the primary tracking devices within the tracking device network 600.
[0094] Later, the user places the smartphone 604 back into the user's pocket, thereby removing the previously activated functionality of the smartphone 604. As a result, the IMUs of both the smartphone 604 and the smartwatch 606 begin to become increasingly miscalibrated. However, the user then arrives at the user's destination (e.g., an indoor shopping mall, a virtually rendered environment, etc.) and reactivates the XR glasses 602, causing the tracking device network to return to Fig. 6AAt this point, the XR glasses 602 resume being the primary tracking device within the tracking device network 600 and resume periodic calibration of the smart phone 604 and smart watch 606 as described above.
[0095] Figure 7 is a flow chart illustrating an example of a process 700 for tracking device calibration according to examples described herein. The process 700 may be performed at least in part, for example, by Figure 1 The main tracking device 102 shown in Figure 2 The main tracking device 200 shown in Figure 4 The main tracking device 402 shown in Figure 5 The primary tracking device 502 or the new primary tracking device 504 and / or Fig. 6A and Figure 6B 602 or smartphone 604 shown in FIG. Additionally or alternatively, process 700 or any portion thereof may be performed by a processor included in Figure 1 The tracking device network 100 shown, Figure 4 The tracking device network 400 shown, Figure 5 The illustrated tracking device network 500 and / or any tracking device in the tracking device network shown in FIG. 6 performs.
[0096] At block 702, process 700 includes generating pose information of a primary tracking device at a primary tracking device of a tracking device network. In some examples, generating the pose information of the primary tracking device includes using any one or more sensors and / or components of the primary tracking device. As an example, the primary tracking device may use information from a GPS receiver, image data of the surrounding environment captured by a camera, and output of an IMU to generate 6DoF pose information of the primary tracking device.
[0097] At box 704, process 700 includes obtaining relative pose information of a secondary tracking device of the tracking device network, wherein the relative pose information of the secondary tracking device includes a relative position and orientation between the primary tracking device and the secondary tracking device. In some examples, generating the relative pose information includes sending a signal (e.g., a UWB signal, a mmWave signal, an ultrasonic signal, etc.) between MIMO transceivers of the primary tracking device and the secondary tracking device to determine a relative distance between the MIMO transceivers, which can then be used to generate the relative pose information. In some examples, the relative pose information is obtained by generating at the primary tracking device. In some examples, the relative pose information is obtained by the primary tracking device from the secondary tracking device after being generated by the secondary tracking device.
[0098] At block 706, process 700 includes obtaining absolute pose information for the secondary tracking device using the pose information of the primary tracking device and the relative pose information of the secondary tracking device. In some examples, the absolute pose information is generated by combining the pose information of the primary tracking device with the relative pose information, wherein the pose information of the primary tracking device is the position and orientation of the primary tracking device within the environment, and the relative pose information is the position and orientation of the secondary tracking device relative to the primary tracking device. In some examples, the absolute pose information is obtained by being generated by the primary tracking device. In some examples, the absolute pose information is obtained after being generated by the secondary tracking device.
[0099] At block 708, process 700 includes sending the absolute pose information at the primary tracking device to the auxiliary tracking device to perform a calibration action. In some examples, the absolute pose information is sent using any suitable communication technology (e.g., Wi-Fi, Bluetooth, etc.). In some examples, the auxiliary tracking device uses the absolute pose information to calibrate one or more sensors and / or components (e.g., IMU) therein.
[0100] Figure 8 8 is a flow chart illustrating an example of a process 800 for tracking device calibration according to examples described herein. The process 800 may be performed at least in part, for example, by Figure 1 The auxiliary tracking device 104 shown in Figure 3 The auxiliary tracking device 300 shown in Figure 4 The auxiliary tracking device 408 shown in Figure 5 The new primary tracking device 504 and / or Fig. 6A and Figure 6B Additionally or alternatively, process 800 or any portion thereof may be performed by a processor included in Figure 1 The tracking device network 100 shown, Figure 4 The tracking device network 400 shown, Figure 5 The illustrated tracking device network 500 and / or any tracking device in the tracking device network shown in FIG. 6 performs.
[0101] At block 802, process 800 includes generating, at a secondary tracking device of a tracking device network, absolute pose information of a secondary tracking device using pose information of a primary tracking device and relative pose information between the secondary tracking device and the primary tracking device. In some examples, the absolute pose information is generated by combining the pose information of the primary tracking device (which is a position and orientation of the primary tracking device within an environment) with the relative pose information (which is a position and orientation of the secondary tracking device relative to the primary tracking device), thereby obtaining the absolute pose information of the secondary tracking device within the environment.
[0102] At box 804, process 800 includes performing a calibration action using the absolute pose information of the auxiliary tracking device, wherein, after performing the calibration action, the auxiliary tracking device becomes the new primary tracking device. In some examples, performing the calibration action includes calibrating one or more sensors of the auxiliary tracking device so that the tracking accuracy of the auxiliary tracking device is at or above a desired confidence threshold. As an example, the auxiliary tracking device may adjust one or more sensors, establish changes or modifications to the output of one or more sensors, etc., so that one or more sensors or components provide outputs within a desired accuracy confidence level relative to the ground truth of the pose of the auxiliary tracking device within the environment. In some examples, once the calibration action is completed, the auxiliary tracking device becomes the new primary tracking device within the tracking device network, and the auxiliary tracking device can remain the new primary tracking device as long as the calibration remains above the desired confidence level.
[0103] At block 806, process 800 includes generating, at the new primary tracking device, pose information for the new primary tracking device. In some examples, the pose information for the new primary tracking device is generated after the calibration action performed in block 804, but before the confidence level of the accuracy of one or more sensors of the new primary tracking device falls below a desired threshold.
[0104] At box 808, process 800 includes generating relative pose information for additional tracking devices in the tracking device network at the new primary tracking device, wherein the relative pose information for the additional tracking devices includes a relative position and orientation between the new primary tracking device and the additional tracking devices. In some examples, generating the relative pose information includes sending signals (e.g., UWB signals, mmWave signals, ultrasonic signals, etc.) between MIMO transceivers of the new primary tracking device and the additional tracking devices to determine a relative distance between the MIMO transceivers, which can then be used to generate the relative pose information. In some examples, the relative pose information is obtained by generating at the new primary tracking device. In some examples, the relative pose information is obtained by the new primary tracking device from the additional tracking devices after being generated by the additional tracking devices.
[0105] At block 810, process 800 includes obtaining absolute pose information for the additional tracking device using the pose information of the new primary tracking device and the relative pose information of the additional tracking device. In some examples, the absolute pose information is generated by combining the pose information of the new primary tracking device (which is the position and orientation of the new primary tracking device within the environment) with the relative pose information (which is the position and orientation of the additional tracking device relative to the new primary tracking device) to obtain the absolute pose information for the additional tracking device within the environment.
[0106] At block 812, process 800 includes sending the absolute pose information to the additional tracking device to perform a second calibration action. In some examples, the absolute pose information is sent using any suitable communication technology (e.g., Wi-Fi, Bluetooth, etc.). In some examples, the additional tracking device uses the absolute pose information to calibrate one or more sensors and / or components therein (e.g., an IMU).
[0107] In some examples, process 700, 800, or any other process described herein can be performed by a computing device or apparatus and / or one or more components therein and / or one or more components to which the computing device is operably connected. As an example, process 700 can be performed in whole or in part by any primary tracking device (e.g., Figure 1 The main tracking device 102 shown in Figure 2 The main tracking device 200 shown in Figure 4 The main tracking device 402 shown in Fig. 6A As another example, process 800 may be performed in whole or in part by any new primary tracking device, such as, for example, after performing a calibration action. Figure 1 The auxiliary tracking device 104, the additional tracking device A 106 and / or the additional tracking device B 108 shown in FIG. Figure 3 The auxiliary tracking device 300 is shown after performing a calibration action; Figure 4 The auxiliary tracking device 408 shown in FIG. 4 is after performing a calibration action; Figure 5 New primary tracking device 504 is shown; and / or Figure 6B The processes 700 and 800 may additionally or alternatively be performed by any tracking device network (e.g., Figure 1 The tracking device network 100 shown in Figure 4 The tracking device network 400 shown in Figure 5 The tracking device network 500 shown in FIG. Fig. 6A and 6B The tracking device network 600 shown in FIG. 6 is performed by any tracking device in the tracking device network 600 .
[0108] The tracking device may include any suitable device, such as a vehicle or a computing device of the vehicle (e.g., a driver monitoring system (DMS) of the vehicle), a mobile device (e.g., a mobile phone), a desktop computing device, a tablet computing device, a wearable device (e.g., a VR headset, an AR headset, AR glasses, a network-connected watch or smart watch or other wearable device), a server computer, a robotic device, a television, and / or any other computing device having resource capabilities to perform the processes described herein (including process 700, process 800, process 800) and / or other methods described herein. In some cases, a computing device or apparatus (e.g., a tracking device) may include various components, such as one or more input devices, one or more output devices, one or more processors, one or more microprocessors, one or more microcomputers, one or more cameras, one or more sensors, and / or other components configured to perform the operations of the processes described herein. In some examples, the computing device may include a display, a network interface configured to transmit and / or receive data, any combination thereof, and / or other components. The network interface may be configured to transmit and / or receive data based on an Internet Protocol (IP) or other types of data.
[0109] The components of the tracking device may be implemented in circuits. For example, the components may include and / or may be implemented using electronic circuits or other electronic hardware, which may include one or more programmable electronic circuits (e.g., microprocessors, graphics processing units (GPUs), digital signal processors (DSPs), central processing units (CPUs), and / or other suitable electronic circuits), and / or may include and / or be implemented at least in part using computer software, firmware, or any combination thereof to perform the various operations described herein.
[0110] Figure 7 The process 700 shown in Figure 8 The process 800 shown in is shown as a logical flow diagram, the operations of which represent a series of operations that can be implemented in hardware, computer instructions, or a combination thereof. In the context of computer instructions, the operations represent computer-executable instructions stored on one or more computer-readable storage media, which, when executed by one or more processors, perform the operations. Generally, computer-executable instructions include routines, programs, objects, components, data structures, etc. that perform specific functions or implement specific data types. The order in which the operations are described is not intended to be construed as a limitation, and any number of the described operations may be combined in any order and / or in parallel to implement the process.
[0111] In addition, process 700, process 800, and / or other processes described herein may be performed under the control of one or more computer systems configured with executable instructions, and may be implemented as code (e.g., executable instructions, one or more computer programs, or one or more applications) that is executed together on one or more processors, through hardware, or a combination thereof. As described above, the code may be stored on a computer-readable or machine-readable storage medium, for example, in the form of a computer program that includes multiple instructions that can be executed by one or more processors. The computer-readable or machine-readable storage medium may be non-transitory.
[0112] Fig. 9 is a block diagram illustrating an example of a system for implementing some aspects of the present technology. In particular, Fig. 9 An example of a computing system 900 is shown, which may be any computing device, for example, constituting an internal computing system, a remote computing system, a camera, or any component thereof, wherein the components of the system communicate with each other using connection 905. Connection 905 may be a physical connection using a bus, or a direct connection into processor 910, such as in a chipset architecture. Connection 905 may also be a virtual connection, a networked connection, or a logical connection.
[0113] In some examples, computing system 900 is a distributed system, where the functionality described in the present disclosure can be distributed across a data center, multiple data centers, a peer-to-peer network, etc. In some examples, one or more of the described system components represent a number of such components, each of which performs some or all of the functionality for which the component is described. In some examples, a component can be a physical or virtual device.
[0114] The example system 900 includes at least one processing unit (CPU or processor) 910 and connections 905 coupling various system components including system memory 915, such as read-only memory (ROM) 920 and random access memory (RAM) 925, to the processor 910. The computing system 900 may include a cache 912 of high-speed memory directly connected to the processor 910, in close proximity to the processor 910, or integrated as part of the processor 910.
[0115] Processor 910 may include any general purpose processor and hardware services or software services, such as services 932, 934, and 936 stored in storage device 930, configured to control processor 910 as well as special purpose processors where the software instructions are incorporated into the actual processor design. Processor 910 may be essentially a completely independent computing system containing multiple cores or multiple processors, buses, memory controllers, caches, etc. Multi-core processors may be symmetric or asymmetric.
[0116] To enable user interaction, the computing system 900 includes an input device 945, which can 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, and the like. The computing system 900 can also include an output device 935, which can be one or more of a plurality of output mechanisms. In some examples, a multimodal system can enable a user to provide multiple types of input / output to communicate with the computing system 900. The computing system 900 can include a communication interface 940, which can generally govern and manage user input and system output. The communication interface can use a wired and / or wireless transceiver to perform or facilitate receiving and / or transmitting wired or wireless communications, including utilizing an audio jack / plug, a microphone jack / plug, a universal serial bus (USB) port / plug, an Apple® Lightning® port / plug, Ethernet port / plug, fiber optic port / plug, proprietary wired port / plug, BLUETOOTH® wireless signal transmission, BLUETOOTH® low energy (BLE) wireless signal transmission, IBEACON® wireless signal transmission, radio frequency identification (RFID) wireless signal transmission, near field communication (NFC) wireless signal transmission, dedicated short range communication (DSRC) wireless signal transmission, 802.11 Wi-Fi wireless signal transmission, wireless local area network (WLAN) signal transmission, visible light communication (VLC), world interoperability for microwave access (WiMAX), infrared (IR) communication wireless signal transmission, public switched telephone network (PSTN) signal transmission, integrated services digital network (ISDN) signal transmission, 3G / 4G / 5G / LTE cellular data network wireless signal transmission, ad hoc network signal transmission, radio wave signal transmission, microwave signal transmission, infrared signal transmission, visible light signal transmission, ultraviolet light signal transmission, wireless signal transmission along the electromagnetic spectrum, or some combination thereof. The communication interface 940 may also include one or more global navigation satellite system (GNSS) receivers or transceivers for determining the location of the computing system 900 based on one or more signals received from one or more satellites associated with one or more GNSS systems. GNSS systems include, but are not limited to, the Global Positioning System (GPS) based on the United States, the Global Navigation Satellite System (GLONASS) based on Russia, the BeiDou Navigation Satellite System (BDS) based on China, and the Galileo GNSS based on Europe. There is no limitation to operating on any particular hardware arrangement, and thus the basic features here can be easily replaced with improved hardware or firmware arrangements when such arrangements are developed.
[0117] The storage device 930 may be a non-volatile and / or non-transitory and / or computer-readable memory device and may be a hard disk or other type of computer-readable medium that can store data accessible by a computer, such as a magnetic cassette, a flash memory card, a solid-state memory device, a digital versatile disk, a magnetic cassette, a floppy disk, a flexible disk, a hard disk, a magnetic tape, a magnetic stripe, any other magnetic storage medium, a flash memory, a memristor memory, any other solid-state memory, a compact disk-read only memory (CD-ROM) optical disk, a rewritable compact disk (CD) optical disk, a digital video disk (DVD) optical disk, a Blu-ray disc (BDD) optical disk, a holographic optical disk, another optical medium, a secure digital (SD) card, a micro secure digital (microSD) card, a memory card, or a microSD card. Stick® card, smart card chip, EMV chip, subscriber identity module (SIM) card, mini / micro / nano / pico SIM card, another integrated circuit (IC) chip / card, random access memory (RAM), static RAM (SRAM), dynamic RAM (DRAM), read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), flash EPROM (FLASH EPROM), cache memory (L1 / L2 / L3 / L4 / L5 / L#), resistive random access memory (RRAM / ReRAM), phase change memory (PCM), spin transfer torque RAM (STT-RAM), another memory chip or box, and / or a combination thereof.
[0118] Storage device 930 may include software services, servers, services, etc., which cause the system to perform functions when the code defining such software is executed by processor 910. In some examples, hardware services that perform a particular function may include software components stored in a computer-readable medium that are combined with the necessary hardware components (such as processor 910, connection 905, output device 935, etc.) to perform the function.
[0119] As used herein, 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. Computer-readable media may include non-transitory media in which data may be stored and which do not include carrier waves and / or transient electronic signals that are propagated wirelessly or via a wired connection. Examples of non-transitory media may include, but are not limited to, disks or tapes, optical storage media (such as compact disks (CDs) or digital versatile disks (DVDs)), flash memories, memories, or memory devices. Computer-readable media may have codes and / or machine-executable instructions stored thereon, which may represent any combination of procedures, functions, subroutines, programs, routines, subroutines, modules, software packages, categories, or instructions, data structures, or program statements. A code segment may be coupled to another code segment or hardware circuit by passing and / or receiving information, data, independent variables, parameters, or memory contents. Information, arguments, parameters, data, etc. may be passed, forwarded, or transmitted using any suitable means including memory sharing, message passing, token passing, network transmission, etc.
[0120] In some examples, computer-readable storage devices, media, and memories may include cables or wireless signals containing bit streams, etc. However, when referred to, non-transitory computer-readable storage media explicitly excludes media such as energy, carrier signals, electromagnetic waves, and signals themselves.
[0121] Specific details are provided in the above description to provide a thorough understanding of the examples and examples provided herein. However, it will be appreciated by those skilled in the art that examples can be practiced without these specific details. For clarity, in some cases, the present technology may be presented as including separate functional blocks, which include functional blocks including devices, device components, operations, steps or routines in methods embodied in software, hardware or a combination of hardware and software. In addition to those components shown in the drawings and / or described herein, additional components may be used. For example, circuits, systems, networks, processes and other components may be shown as components in block diagram form to avoid confusing examples with unnecessary details. In other examples, well-known circuits, processes, algorithms, structures and techniques may be shown without unnecessary details to avoid confusing examples.
[0122] Various examples may be described above as processes or methods depicted as flow charts, flow diagrams, data flow diagrams, structure diagrams, or block diagrams. Although a flow chart may describe an operation as a sequential process, many operations may be performed in parallel or simultaneously. In addition, the order of the operations may be rearranged. A process terminates when its operations are completed, but may have additional operations not included in the diagram. A process may correspond to a method, function, procedure, subroutine, subprogram, etc. When a process corresponds to a function, its termination may correspond to the function returning to a calling function or a main function.
[0123] The processes and methods according to the above examples can be implemented using computer executable instructions stored in or otherwise available from computer readable media. Such instructions may include, for example, instructions and data that enable or otherwise configure a general-purpose computer, a special-purpose computer, or a processing device to perform a specific function or group of functions. Parts of the computer resources used may be accessed over a network. Computer executable instructions may be, for example, binary files, intermediate format instructions such as assembly language, firmware, source code, etc. Examples of computer readable media that can be used to store instructions, information used, and / or information created during the method according to the described examples include disks or optical disks, flash memory, USB devices provided with non-volatile memory, networked storage devices, etc.
[0124] Devices implementing the processes and methods according to these disclosures may include hardware, software, firmware, middleware, microcode, hardware description languages, or any combination thereof, and may take any of a variety of form factors. When implemented in software, firmware, middleware, or microcode, program code or code segments (e.g., computer program products) for performing the necessary tasks 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, etc. 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.
[0125] The instructions, the medium for transmitting such instructions, the computing resources for executing them, and other structures for supporting such computing resources are example devices for providing the functions described in this disclosure.
[0126] In the foregoing description, various aspects of the present application are described with reference to their specific examples, but those skilled in the art will recognize that the present application is not limited thereto. Therefore, although the illustrative examples of the present application have been described in detail herein, it should be understood that the inventive concept may be implemented and adopted differently in other ways, and the appended claims are intended to be interpreted as including such variations, except for being limited by the prior art. The various features and aspects of the above-mentioned application may be used individually or in combination. In addition, without departing from the broader spirit and scope of this specification, the examples described herein may be used in any number of environments and applications other than the environments and applications described herein. Therefore, the description and the accompanying drawings are considered to be illustrative rather than restrictive. For the purpose of illustration, the method is described in a specific order. It should be understood that in an alternative example, the method may be performed in an order different from the described order.
[0127] One of ordinary skill will understand that the less than ("<") and greater than (">") symbols or terms used herein may be replaced by less than or equal to ("≤") and greater than or equal to ("≥") symbols, respectively, without departing from the scope of the present specification.
[0128] Where a component is described as being “configured to” perform some operation, such configuration may be achieved, for example, by designing electronic circuits or other hardware to perform the operation, by programming a programmable electronic circuit (e.g., a microprocessor or other suitable electronic circuit) to perform the operation, or any combination thereof.
[0129] The phrase "coupled to" refers to any component that is physically connected directly or indirectly to another component, and / or any component that communicates directly or indirectly with another component (e.g., connected to another component via a wired or wireless connection and / or other suitable communication interface).
[0130] Claim language or other language of "at least one of" a set and / or "one or more of" a set indicates that one member of a set or multiple members of a set (in any combination) satisfy the claim. For example, 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, 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, claim language reciting "at least one of A and B" or "at least one of A or B" may mean A, B, or A and B, and may additionally include items not listed in the set of A and B.
[0131] Various illustrative logic blocks, modules, circuits, and algorithmic operations described in conjunction with the examples disclosed herein may be implemented as electronic hardware, computer software, firmware, or a combination thereof. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, circuits, and operations have been generally described above with respect to their functionality. Whether such functions are implemented as hardware or software depends on the specific application and the design constraints imposed on the entire system. Technicians may implement the described functions in different ways for each specific application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present application.
[0132] 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, which has multiple uses for applications included in wireless communication device handsets and other devices. Any features described as modules or components may be implemented together in an integrated logic device, or individually as discrete but interoperable logic devices. If implemented in software, the techniques may be implemented at least in part by a computer-readable data storage medium including a program code, the program code including instructions for executing one or more of the methods described above when executed. 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 a memory or data storage medium, such as a random access memory (RAM) (e.g., synchronous dynamic random access memory (SDRAM)), a read-only memory (ROM), a non-volatile random access memory (NVRAM), an electrically erasable programmable read-only memory (EEPROM), a flash memory, a magnetic or optical data storage medium, and the like. Additionally or alternatively, the techniques may be implemented at least in part by a computer-readable communication medium that carries or communicates 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.
[0133] The program code may be executed by a processor, which may include one or more processors, such as one or more digital signal processors (DSPs), general-purpose microprocessors, application-specific integrated circuits (ASICs), field programmable logic arrays (FPGAs), or other equivalent integrated or discrete logic circuits. This processor may be configured to perform any of the techniques described in the present invention. A general-purpose processor may be a microprocessor; however, in an alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. The processor may also be implemented as a combination of computing devices, such as a combination of a DSP and a microprocessor, a plurality of microprocessors, a combination of one or more microprocessors and a DSP core, or any other such configuration. Therefore, the term "processor" as used herein may refer to any of the aforementioned structures, any combination of the aforementioned structures, or any other structure or device suitable for implementing the techniques described herein.
[0134] Illustrative aspects of the disclosure include:
[0135] Aspect 1: A method for calibrating a tracking device, the method comprising: generating posture information of a primary tracking device at a primary tracking device of a tracking device network; obtaining relative posture information of an auxiliary tracking device of the tracking device network, wherein the relative posture information of the auxiliary tracking device includes a relative position and direction between the primary tracking device and the auxiliary tracking device; obtaining absolute posture information of the auxiliary tracking device using the posture information of the primary tracking device and the relative posture information of the auxiliary tracking device; and sending the absolute posture information to the auxiliary tracking device at the primary tracking device to perform a calibration action.
[0136] Aspect 2: The method according to aspect 1, wherein the calibration action includes calibrating an inertial measurement unit (IMU) of the auxiliary tracking device.
[0137] Aspect 3: The method according to aspect 1 or 2, wherein the posture information of the primary tracking device includes six degrees of freedom (6dof) information.
[0138] Aspect 4: The method according to any one of aspects 1-3, wherein the primary tracking device comprises a plurality of sensing devices used in generating the posture information of the primary tracking device.
[0139] Aspect 5: The method according to any one of aspects 1 to 4, wherein the primary tracking device comprises an extended reality (XR) device or a vehicle navigation system.
[0140] Aspect 6: The method according to any one of aspects 1-5, wherein the auxiliary tracking device comprises a wearable computing device, a mobile computing device, or a vehicle inertial tracking system.
[0141] Aspect 7: The method according to any one of aspects 1-6, wherein generating the relative posture information of the auxiliary tracking device includes using a multiple-input multiple-output (MIMO) measurement technique.
[0142] Aspect 8: The method according to any one of aspects 1-7, wherein the MIMO measurement technology includes using one of millimeter wave (mmWave) relative attitude measurement, ultra-wideband (UWB) relative attitude measurement, or ultrasonic relative attitude measurement.
[0143] Aspect 9: A method for calibrating a tracking device, the method comprising: at an auxiliary tracking device of a tracking device network, using posture information of a main tracking device and relative posture information between the auxiliary tracking device and the main tracking device to generate absolute posture information of the auxiliary tracking device; performing a calibration action using the absolute posture information of the auxiliary tracking device, wherein after performing the calibration action, the auxiliary tracking device becomes a new main tracking device; generating posture information of a new main tracking device at the new main tracking device; generating relative posture information of additional tracking devices in the tracking device network at the new main tracking device, wherein the relative posture information of the additional tracking devices includes the relative position and direction between the new main tracking device and the additional tracking devices; obtaining absolute posture information of the additional tracking devices using the posture information of the new main tracking device and the relative posture information of the additional tracking devices; and sending the absolute posture information to the additional tracking devices to perform a second calibration action.
[0144] Aspect 10: The method of aspect 9, wherein after the calibration action is performed at the secondary tracking device, the primary tracking device is removed from the tracking device network.
[0145] Aspect 11: The method of aspect 9 or 10, wherein the secondary tracking device remains the new primary tracking device based on a confidence level in the accuracy of at least one sensor of the new primary tracking device.
[0146] Aspect 12: An apparatus for calibrating a tracking device, the apparatus comprising: a primary tracking device of a tracking device network, comprising: a memory device; and a processor, the processor being coupled to the memory device and configured to: generate posture information of the primary tracking device at the primary tracking device; obtain relative posture information of auxiliary tracking devices of the tracking device network, wherein the relative posture information of the auxiliary tracking device includes the relative position and direction between the primary tracking device and the auxiliary tracking device; obtain absolute posture information of the auxiliary tracking device using the posture information of the primary tracking device and the relative posture information of the auxiliary tracking device; and send the absolute posture information to the auxiliary tracking device at the primary tracking device to perform a calibration action.
[0147] Aspect 13: The apparatus of aspect 12, wherein the calibration act comprises calibrating an inertial measurement unit (IMU) of the auxiliary tracking device.
[0148] Aspect 14: The apparatus according to aspect 12 or 13, wherein the posture information of the primary tracking device includes six degrees of freedom (6dof) information.
[0149] Aspect 15: The apparatus according to any one of aspects 12 to 14, wherein the primary tracking device further comprises a plurality of sensing devices used in generating the posture information of the primary tracking device.
[0150] Aspect 16: The apparatus of any one of aspects 12 to 15, wherein the primary tracking device comprises an extended reality (XR) device or a vehicle navigation system.
[0151] Aspect 17: The apparatus according to any one of aspects 12 to 16, wherein the auxiliary tracking device comprises a wearable computing device, a mobile computing device, or a vehicle inertial tracking system.
[0152] Aspect 18: The apparatus according to any one of aspects 12 to 17, wherein generating the relative posture information of the auxiliary tracking device comprises using a multiple-input multiple-output (MIMO) measurement technique.
[0153] Aspect 19: The apparatus according to any one of aspects 12-18, wherein the MIMO measurement technique comprises using one of millimeter wave (mmWave) relative attitude measurement, ultra-wideband (UWB) relative attitude measurement, or ultrasonic relative attitude measurement.
[0154] Aspect 20: An apparatus for calibrating a tracking device, the apparatus comprising: an auxiliary tracking device of a tracking device network, comprising: a memory device; and a processor, which is coupled to the memory device and is configured to: at the auxiliary tracking device, use the posture information of the main tracking device and the relative posture information between the auxiliary tracking device and the main tracking device to generate absolute posture information of the auxiliary tracking device; perform a calibration action using the absolute posture information of the auxiliary tracking device, wherein, after performing the calibration action, the auxiliary tracking device becomes a new main tracking device; generate posture information of a new main tracking device at the new main tracking device; generate relative posture information of additional tracking devices in the tracking device network at the new main tracking device, wherein the relative posture information of the additional tracking devices includes the relative position and direction between the new main tracking device and the additional tracking devices; obtain the absolute posture information of the additional tracking devices using the posture information of the new main tracking device and the relative posture information of the additional tracking devices; and send the absolute posture information to the additional tracking devices to perform a second calibration action.
[0155] Aspect 21: The apparatus of aspect 20, wherein after the calibration action is performed at the secondary tracking device, the primary tracking device is removed from the tracking device network.
[0156] Aspect 22: The apparatus according to aspect 20 or 21, wherein the secondary tracking device maintains the new primary tracking device based on a confidence level of the accuracy of at least one sensor of the new primary tracking device.
[0157] Aspect 23: A non-transitory computer-readable medium having instructions stored thereon, which when executed by one or more processors cause the one or more processors to perform the operations according to any one of aspects 1 to 22.
Claims
1. A method for tracking device calibration, the method comprising: At a primary tracking device of the tracking device network, generating posture information of the primary tracking device; Obtaining relative posture information of auxiliary tracking devices of the tracking device network, wherein the relative posture information of the auxiliary tracking devices includes a relative position and direction between the primary tracking device and the auxiliary tracking devices; Obtaining absolute posture information of the auxiliary tracking device using the posture information of the primary tracking device and the relative posture information of the auxiliary tracking device; as well as At the primary tracking device, the absolute pose information is sent to the secondary tracking device to perform a calibration action.
2. The method according to claim 1, wherein: The calibration act includes calibrating an inertial measurement unit (IMU) of the auxiliary tracking device.
3. The method according to claim 1, wherein: The posture information of the primary tracking device includes six degrees of freedom (6dof) information.
4. The method according to claim 1, wherein: The primary tracking device includes a plurality of sensing devices used in generating pose information of the primary tracking device.
5. The method according to claim 1, wherein: The primary tracking device includes an extended reality (XR) device or a vehicle navigation system.
6. The method according to claim 1, wherein: The auxiliary tracking device includes a wearable computing device, a mobile computing device, or a vehicle inertial tracking system.
7. The method according to claim 1, wherein: Generating the relative pose information of the auxiliary tracking device includes using a multiple-input multiple-output (MIMO) measurement technique.
8. The method according to claim 7, wherein: The MIMO measurement technique includes using one of millimeter wave (mmWave) relative attitude measurement, ultra-wideband (UWB) relative attitude measurement, or ultrasonic relative attitude measurement.
9. A method for tracking device calibration, the method comprising: At a secondary tracking device of the tracking device network, using the posture information of the primary tracking device and the relative posture information between the secondary tracking device and the primary tracking device to generate absolute posture information of the secondary tracking device; performing a calibration action using the absolute pose information of the auxiliary tracking device, wherein after performing the calibration action, the auxiliary tracking device becomes the new primary tracking device; generating, at the new primary tracking device, posture information of the new primary tracking device; generating, at the new primary tracking device, relative posture information of additional tracking devices in the tracking device network, wherein the relative posture information of the additional tracking devices comprises a relative position and orientation between the new primary tracking device and the additional tracking devices; Using the posture information of the new primary tracking device and the relative posture information of the additional tracking device to obtain the absolute posture information of the additional tracking device; as well as The absolute pose information is sent to the additional tracking device to perform a second calibration action.
10. The method according to claim 9, wherein: After performing the calibration action at the secondary tracking device, the primary tracking device is removed from the tracking device network.
11. The method according to claim 9, wherein: The secondary tracking device maintains the new primary tracking device based on a confidence level in the accuracy of at least one sensor of the new primary tracking device.
12. An apparatus for tracking device calibration, the apparatus comprising: The main tracking devices of the tracking device network include: a memory device; and a processor coupled to the memory device and configured to: At the primary tracking device, generating posture information of the primary tracking device; Obtaining relative posture information of an auxiliary tracking device of the tracking device network, wherein the relative posture information of the auxiliary tracking device includes a relative position and direction between the main tracking device and the auxiliary tracking device; Obtaining absolute posture information of the auxiliary tracking device using the posture information of the primary tracking device and the relative posture information of the auxiliary tracking device; and At the primary tracking device, the absolute pose information is sent to the secondary tracking device to perform a calibration action.
13. The device according to claim 12, wherein: The calibration act includes calibrating an inertial measurement unit (IMU) of the auxiliary tracking device.
14. The device according to claim 12, wherein: The posture information of the primary tracking device includes six degrees of freedom (6dof) information.
15. The device according to claim 12, wherein: The primary tracking device also includes a plurality of sensing devices used in generating posture information of the primary tracking device.
16. The apparatus of claim 12, wherein the primary tracking device comprises an extended reality (XR) device or a vehicle navigation system.
17. The device according to claim 12, wherein: The auxiliary tracking device includes a wearable computing device, a mobile computing device, or a vehicle inertial tracking system.
18. The device according to claim 12, wherein: Generating the relative pose information of the auxiliary tracking device includes using a multiple-input multiple-output (MIMO) measurement technique.
19. The device according to claim 18, wherein: The MIMO measurement technique includes using one of millimeter wave (mmWave) relative attitude measurement, ultra-wideband (UWB) relative attitude measurement, or ultrasonic relative attitude measurement.
20. An apparatus for tracking device calibration, the apparatus comprising: Auxiliary tracking devices of the tracking device network include: a memory device; and a processor coupled to the memory device and configured to: At the auxiliary tracking device, using the posture information of the primary tracking device and the relative posture information between the auxiliary tracking device and the primary tracking device to generate absolute posture information of the auxiliary tracking device; performing a calibration action using the absolute pose information of the secondary tracking device, wherein after performing the calibration action, the secondary tracking device becomes the new primary tracking device; generating, at the new primary tracking device, posture information of the new primary tracking device; generating, at the new primary tracking device, relative posture information of additional tracking devices in the tracking device network, wherein the relative posture information of the additional tracking devices comprises a relative position and orientation between the new primary tracking device and the additional tracking devices; Obtaining absolute posture information of the additional tracking device using the posture information of the new primary tracking device and the relative posture information of the additional tracking device; and The absolute pose information is sent to the additional tracking device to perform a second calibration action.
21. The device according to claim 20, wherein: After performing the calibration action at the secondary tracking device, the primary tracking device is removed from the tracking device network.
22. The device according to claim 20, wherein: The secondary tracking device maintains the new primary tracking device based on a confidence level in the accuracy of at least one sensor of the new primary tracking device.