Navigation method, wearable device and storage medium
By using inertial sensors to detect human motion data in wearable devices, combined with satellite information from global satellite navigation chips, and adaptive switching algorithms, the problem of traditional navigation positioning is solved in the problem of reduced accuracy when obstacles exist, and high-precision and stable navigation are achieved.
Patent Information
- Application Number
- CN202411599119.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-11-11
- Publication Date
- 2025-04-04
- Estimated Expiration
- 2044-11-11
AI Technical Summary
When traditional navigation positioning schemes exist when obstacles such as buildings exist, GPS signals are easily blocked, resulting in reduced navigation accuracy. Not all environments can capture external signals, so navigation accuracy cannot be guaranteed.
Inertial sensors in wearable devices are used to detect movement data of the human head, neck, waist or legs. By fusing multi-frame motion data, we can determine whether the human head rotates, determine the walking direction at the current moment, and combine the satellite information detected by the global satellite navigation chip to adaptively switch different algorithms to improve navigation accuracy.
It improves navigation accuracy and stability, ensures that the walking direction can be accurately determined in various environments, and enhances the reliability of the navigation system.
Smart Images

Figure CN119146952B_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of navigation, and in particular to a navigation method, a wearable device and a storage medium. Background Art
[0002] Traditional navigation and positioning solutions usually rely on the Global Positioning System (GPS), but GPS signals are easily blocked by obstacles such as buildings, affecting navigation accuracy.
[0003] Based on this, the current solution is to combine GPS signals with multi-sensor signals to determine the navigation direction, and to improve the positioning accuracy by fusing the complementary positioning features of different positioning sources. For example, positioning and navigation are achieved by fusing multiple external signals, and the external signals can be wireless fidelity (Wi-Fi), Bluetooth (Blue Tooth), wireless communication technology (ZigBee), cellular networks, radio frequency (RF), geomagnetic signals, etc. However, not all environments can capture these external signals, so navigation accuracy cannot be guaranteed. Summary of the invention
[0004] The present application provides a navigation method, a wearable device and a storage medium, which can improve navigation accuracy. The technical solution is as follows:
[0005] In the first aspect, a navigation method is provided, which is applied to a wearable device, which is used to be worn on the head, neck, waist or leg of a human body. Compared with handheld devices and wearable devices worn on human hands, wearable devices at these positions are relatively stable. The navigation method includes: obtaining motion data of the head, neck, waist or leg of a human body detected by an inertial sensor in the wearable device; when it is determined that the head of the human body has not rotated according to multiple frames of motion data corresponding to multiple acquisition points, it is indicated that the current posture is a forward posture, the orientation of the wearable device is basically consistent with the actual walking direction, and the heading angle in the current posture is used as the walking direction at the current moment. Among them, multiple acquisition points refer to multiple acquisition points before the current moment and adjacent to the current moment, and one acquisition point corresponds to one frame of motion data; the current posture represents the posture at the current moment, which is determined based on multiple frames of motion data; the continuous multiple frames of motion data reflect the law of human body movement, and the current posture of the wearable device (which may include pitch angle, roll angle and heading angle) is obtained through a fusion algorithm. The wearable device is worn on the human body, and the current posture of the wearable device reflects the current posture of the human body. Among them, when the wearable device is worn on the neck, waist or leg of the human body, the orientation of the wearable device is basically consistent with the actual walking direction. In this case, there is no need to judge whether the human head is turned, or it is directly regarded as that the human head has not turned. In the case where it is judged that the human head has turned according to multiple frames of motion data, the orientation of the wearable device is inconsistent with the actual walking direction, and the heading angle in the current posture does not contribute to the walking direction. The walking direction at the previous moment of the current moment is used as the walking direction at the current moment. Then, according to the walking direction at the current moment, the navigation information is determined to navigate the human body. The motion data detected by the inertial sensor in the wearable device worn in a stable position is used to calculate the current posture, which improves the reliability and stability of the current posture. The walking direction at the current moment is determined by judging whether the head is turned, which improves the accuracy of the walking direction at the current moment, and improves the positioning accuracy and navigation accuracy.
[0006] In a possible implementation, since the acquisition time of motion data is very fast, the calculation process of walking direction is also very fast. Whether walking in a straight line or in a curve, the heading angle at the current moment should be similar to the walking direction at the previous moment. Based on this, a preset range is set. Determine whether the absolute value of the difference between the walking direction at the previous moment and the heading angle in the current posture is within the preset range? If the absolute value of the difference is within the preset range, it means that the head may have turned, and it is necessary to further classify whether the head has turned according to multiple frames of motion data, and the classification result is that the head has turned or the head has not turned. If the absolute value of the difference is not within the preset range, for example, it is less than the lower limit of the preset range, it means that the difference between the forward posture at the previous moment and the current posture is not much, and it is determined that the head has not turned. If the absolute value of the difference is not within the preset range, for example, it is greater than the upper limit of the preset range, it means that there may be deviations in the calculation process, and only the current posture is used as a reference, so it is determined that the head has not turned.
[0007] Among them, when the wearable device is worn on the neck, waist or leg of a human body, the absolute value of the difference is less than the lower limit of the preset range, and it is deemed that the human head has not rotated.
[0008] By setting a preset range, it is possible to preliminarily determine whether the head has turned. If the head is likely to turn, continue to classify whether the head has turned based on multi-frame motion data, thereby improving the accuracy of the judgment result, thereby improving the accuracy of subsequently determining the walking direction based on the judgment result.
[0009] In one possible implementation, after obtaining the walking direction at the current moment, the forward posture at the previous moment is updated according to the walking direction at the current moment to obtain the forward posture at the current moment. The forward posture at the current moment includes the walking direction at the current moment, which can be used in the walking direction determination process of the next moment after the current moment to improve the accuracy of the subsequent walking direction determination process.
[0010] In a possible implementation, satellite information detected by a global satellite navigation chip is obtained; the number of valid satellites and signal strength included in the satellite information can reflect the signal quality. In this way, when the signal quality of the satellite information meets the preset conditions, it means that the signal quality is good, and the target information can be obtained by coupling with the navigation information. The target information includes the target walking direction at the current moment. When the signal quality of the satellite information does not meet the preset conditions, it means that the signal quality is poor, and the navigation information is not used as a reference. The target walking direction at the current moment in the target information is also the walking direction at the current moment. Navigation is performed according to the target information. Different algorithms are adaptively switched according to the signal quality of the satellite information, thereby improving the stability and reliability of the navigation results.
[0011] On this basis, the forward posture at the previous moment is updated according to the target walking direction at the current moment to obtain the forward posture at the current moment. The forward posture at the current moment includes the target walking direction at the current moment. The forward posture at the current moment is used for the walking direction determination process at the next moment of the current moment. The forward posture is updated by the target walking direction, which improves the accuracy of the forward posture, thereby improving the accuracy of the subsequent walking direction determination process.
[0012] In a possible implementation, the satellite information includes the number of valid satellites and the signal strength. Based on this, whether the satellite information meets the preset conditions can be determined in the following manner. The product of the number of valid satellites and the signal strength can be used as the signal quality; the number of valid satellites and the signal strength can also be weighted and summed to obtain the signal quality; the signal quality can also be determined in combination with influencing parameters such as satellite orbits, weather conditions, and receiving device performance to improve the accuracy of the signal quality. When the signal quality is greater than the preset quality, it is determined that the satellite information meets the preset conditions; when the signal quality is less than or equal to the preset quality, it is determined that the satellite information does not meet the preset conditions.
[0013] It should be noted that the preset quality can be appropriately set by those skilled in the art according to actual conditions. For example, the signal quality that enables the reliability and stability of satellite communications to reach preset standards can be used as the preset quality. The embodiments of the present application do not limit the form and value of the preset quality.
[0014] In the embodiment of the present application, the signal quality can be judged by the signal strength, number of valid satellites and other information in the satellite signal. Then, whether to couple with the navigation information is judged according to the signal quality, which improves the accuracy of the target information and the stability and reliability of the navigation result compared with the direct coupling solution.
[0015] In a possible implementation, the coupling process of satellite information and navigation information may include loose coupling and tight coupling. When loosely coupling satellite information and navigation information, it is necessary to determine the three-dimensional position, speed information and time information based on the satellite information, and then fuse the three-dimensional position, speed information, time information and navigation information through a filter to obtain target information. When tightly coupling satellite information and navigation information, it is necessary to determine pseudorange information based on satellite information, and then fuse the pseudorange information and navigation information through a filter to obtain target information, and the pseudorange information includes at least one of pseudorange, pseudorange residual and pseudorange rate. The target information includes the target walking direction at the current moment, the target speed at the current moment, and the target position of the human body at the current moment. Navigation is performed according to the target information, and the navigation information corresponding to the inertial sensor and the satellite information detected by the global satellite navigation sensor are coupled to improve the accuracy of the target information, thereby improving the navigation accuracy and stability.
[0016] In a possible implementation, when the user's head turns, there will be a force in the direction of rotation, and the acceleration data and angular velocity data will change significantly, while changing direction while walking is a relatively smooth and slow process. Based on this, classification can be performed using a model for binary classification of time series data (i.e., a preset classification model). Multiple frames of motion data are input into a preset classification model for binary classification, and the preset classification model is used to classify whether the human head has turned, and the classification result is output. The classification result is that the human head has not turned or has turned.
[0017] By learning multiple frames of motion data through a preset classification model, the accuracy of the classification results is improved.
[0018] In a possible implementation, since the motion data after the wearable device is worn by the human body is unstable, after the wearable device is worn by the human body, the initial motion data of multiple frames after the wearable device is worn by the human body is averaged to reduce the impact of the instability in the initial wearing period. The device posture at the initial moment in the device coordinate system is calculated using the nine-axis fusion algorithm or the six-axis fusion algorithm; the device posture at the initial moment is projected into the global coordinate system to obtain the initial posture at the initial moment.
[0019] Since the frequency of detecting motion data is usually relatively high, there is no strict restriction on the relationship between the multiple frames of motion data corresponding to the initial moment and the multiple frames of initial motion data. The first frame in the multiple frames of motion data corresponding to the initial moment can be any frame in the multiple frames of initial motion data. The first frame in the multiple frames of motion data corresponding to the initial moment can be located after the multiple frames of initial motion data.
[0020] In the embodiment of the present application, the calculation process of the initial posture at the initial moment is only performed once when the wearer is initially worn, and the initial posture is used in the direction determination process at the initial moment. After the walking direction at the initial moment is determined according to the initial posture, the initial posture is updated according to the walking direction at the initial moment to obtain the forward posture at the initial moment. The forward posture at the initial moment is used in the calculation process of the walking direction at the next moment after the initial moment to improve the accuracy of the subsequent determination of the walking direction.
[0021] In a possible implementation, gait detection is performed on multiple frames of acceleration data corresponding to multiple acquisition points before the current moment and adjacent to the current moment, and the variation law of the acceleration peak value and the acceleration valley value over time is obtained; the dynamic step length is estimated according to the variation law of the acceleration peak value and the acceleration valley value over time, and the dynamic step length at the current moment is predicted. The dynamic step length at the current moment is divided by the time information in the acceleration data to obtain the speed at the current moment. According to the dynamic step length at the current moment, how far you have walked can be known, and according to the walking direction at the current moment, which direction you are walking, so that the current position of the human body can be determined based on the original position. The current position of the human body, the current speed and the current walking direction are used as navigation information to navigate the human body. Wearable devices are worn in a relatively stable position on the human body, which reduces the interference caused by shaking or swinging arms, improves the accuracy of the detected motion data, and thus improves the accuracy of the navigation results.
[0022] In a possible implementation, a sliding window is used to obtain multi-frame motion data of multiple acquisition points that correspond one to one to each other before and adjacent to the current moment; the nine-axis fusion algorithm and the six-axis fusion algorithm are used to calculate the device posture at the current moment in the device coordinate system; the device posture at the current moment is projected into the global coordinate system to obtain the current posture.
[0023] In the embodiment of the present application, the process of determining the current posture is a cyclic process, which uses a sliding window to slide on the motion data to obtain multiple frames of motion data corresponding to each moment in real time, and then determine the current posture at each moment. According to the current posture at each moment and the forward posture at the previous moment, the walking direction at each moment is determined to perform real-time navigation and improve navigation accuracy.
[0024] In a possible implementation, the lower limit of the above preset range is greater than 0°; when the wearable device is worn on the neck, waist or leg of the human body, the absolute value of the difference is 0°. That is, if the absolute value of the difference is not within the preset range, it is deemed that the head has not rotated, and the heading angle in the current posture is used as the walking direction at the current moment. In the embodiment of the present application, the wearable device can be worn on a stable part such as the head, neck, waist or leg, which increases the diversity and richness of the types of wearable devices.
[0025] In a second aspect, a wearable device is provided, which includes a memory, a processor, and a computer program stored in the memory and executable on the processor. When the computer program is executed by the processor, a navigation method as described in the first aspect or any one of the implementations of the first aspect is implemented.
[0026] In one possible implementation, the wearable device is used to be worn on the head, neck, waist or legs of a human body, and an inertial sensor is provided in the wearable device; the wearable device includes a global satellite navigation chip, or the wearable device is communicatively connected to a terminal device carried by the human body, and the terminal device includes a global satellite navigation chip.
[0027] According to a third aspect, a computer-readable storage medium is provided, wherein instructions are stored in the computer-readable storage medium, and when the computer-readable storage medium is executed on a computer, the computer executes the navigation method involved in the first aspect or any one of the implementations of the first aspect.
[0028] In a fourth aspect, an embodiment of the present application provides a chip system, which can be applied to a wearable device. The chip system includes one or more processors, which are used to call computer instructions so that the wearable device executes the navigation method described in the first aspect or any one of the implementations of the first aspect.
[0029] In a fifth aspect, a computer program product comprising instructions is provided, which, when executed on a computer, enables the computer to execute the navigation method described in the first aspect or any one of the implementations of the first aspect.
[0030] The technical effects obtained by the above-mentioned second, third, fourth and fifth aspects are similar to the technical effects obtained by the corresponding technical means in the above-mentioned first aspect, and will not be repeated here. BRIEF DESCRIPTION OF THE DRAWINGS
[0031] Figure 1 is a schematic diagram of a navigation scenario provided in an embodiment of the present application;
[0032] Figure 2 is a schematic diagram of the structure of a wearable device provided in an embodiment of the present application;
[0033] Figure 3 is a block diagram of a software system for a wearable device provided in an embodiment of the present application;
[0034] Figure 4 is a flowchart of a navigation method provided by an embodiment of the present application;
[0035] Figure 5 is a schematic diagram of a device coordinate system provided in an embodiment of the present application;
[0036] Figure 6 is a schematic diagram of a navigation coordinate system provided in an embodiment of the present application;
[0037] Figure 7 This is a schematic diagram of acceleration peak search provided by an embodiment of the present application;
[0038] Figure 8 is a flowchart of another navigation method provided by an embodiment of the present application;
[0039] Fig. 9 is a schematic diagram of loose coupling of satellite information and navigation information provided by an embodiment of the present application;
[0040] Fig.10 is a schematic diagram of a tight coupling of satellite information and navigation information provided by an embodiment of the present application;
[0041] Fig.11 is a flowchart of another navigation method provided in an embodiment of the present application;
[0042] Fig.12 An exemplary flowchart of a navigation interaction method provided in an embodiment of the present application. DETAILED DESCRIPTION
[0043] In order to make the objectives, technical solutions and advantages of the present application clearer, the implementation methods of the present application will be further described in detail below in conjunction with the accompanying drawings.
[0044] It should be understood that the "multiple" mentioned in this application refers to two or more. In the description of this application, unless otherwise specified, " / " means or, for example, A / B can mean A or B; "and / or" in this article is only a description of the association relationship of associated objects, indicating that there can be three relationships, for example, A and / or B can mean: A exists alone, A and B exist at the same time, and B exists alone. In addition, in order to facilitate the clear description of the technical solution of this application, the words "first" and "second" are used to distinguish between the same items or similar items with basically the same functions and effects. Those skilled in the art can understand that the words "first" and "second" do not limit the quantity and execution order, and the words "first" and "second" do not limit them to be different.
[0045] It should be noted that the user information (including but not limited to location information, user device information, user personal information, etc.) and data (including but not limited to motion data, analysis data, storage data, display data, etc.) involved in this application are all information and data authorized by the user or fully authorized by all parties, and the collection, use and processing of relevant data must comply with the relevant regulations and standards of relevant countries and regions, and provide corresponding operation entrances for users to choose to authorize or refuse.
[0046] In related technologies, navigation can be achieved by fusing signals detected by multiple device sensors. The device sensors can be inertial sensors, ultra wide band (UWB) sensors, infrared sensors, ultrasonic sensors, visual sensors, etc. However, the positioning accuracy of this solution is closely related to the positioning accuracy of the sensor and the stability of the device. Taking the device sensor integrated in a mobile phone or watch as an example, the shaking of the mobile phone during use will cause frequent angle switching. The swinging of the watch during use will also cause frequent angle switching, thereby introducing more noise and lower navigation accuracy.
[0047] Based on this, the embodiment of the present application provides a wearable device that can be worn on designated parts such as the head (e.g., smart headphones, smart glasses, virtual reality devices, etc.), neck (e.g., smart necklaces, etc.), waist (e.g., smart clothing, etc.) or legs (e.g., smart clothing, smart shoes, etc.). Wearable devices worn at these locations are relatively stable and can ensure positioning accuracy, thereby improving navigation accuracy. The embodiment of the present application does not limit the specific type of the wearable device, as long as it is worn on a stable part of the human body.
[0048] The navigation method provided in the embodiment of the present application can be applied to navigation scenarios, such as Figure 1 As shown, Figure 1 It is a schematic diagram of a navigation scenario provided by an embodiment of the present application. Taking the wearable device as smart glasses as an example, the user wears the smart glasses, and the motion data is detected by the inertial sensor in the smart glasses. The inertial sensor may include an accelerometer, a gyroscope and a magnetometer, or include an accelerometer and a gyroscope. A nine-axis fusion algorithm or a six-axis fusion algorithm is performed on the multi-frame motion data to obtain the current posture of the smart glasses (which may include a pitch angle, a roll angle and a heading angle). The smart glasses are worn on the user's eyes, and the current posture of the smart glasses reflects the user's current posture. Moreover, the wearing position of the smart glasses is relatively stable, and the motion data detected by them is used to calculate the current posture, which improves the reliability and stability of the current posture. According to the multi-frame motion data, it is judged whether the user's head has rotated. If not, it means that the current posture is the forward posture, and the direction of the smart glasses is basically consistent with the actual walking direction. The heading angle in the current posture is used as the walking direction at the current moment. If so, it means that the direction of the smart glasses is inconsistent with the actual walking direction, and the heading angle in the current posture does not contribute to the walking direction. The walking direction determined at the previous moment is used as the walking direction at the current moment. Then, according to the current walking direction, navigation information is determined to navigate the user. The current walking direction is determined by judging whether the head is turned, which improves the accuracy of the walking direction, thereby improving the positioning accuracy and navigation accuracy.
[0049] Smart glasses may also include a global satellite navigation sensor (e.g., a GPS sensor or a Beidou satellite navigation sensor), or the smart glasses may be connected to a device where the global satellite navigation sensor is located (e.g., a portable device such as a mobile phone or a watch), and the global satellite navigation sensor is used to detect satellite signals. When the satellite information carried by the satellite signal meets the preset conditions, the satellite information is coupled with the navigation information to obtain more accurate target information, so as to improve the reliability and accuracy of navigation.
[0050] Before explaining the navigation method provided in the embodiment of the present application in detail, the wearable device involved in the embodiment of the present application is first explained.
[0051] Figure 2 is a schematic diagram of the structure of a wearable device provided in an embodiment of the present application. Figure 2 The wearable device 100 may include a processor 110, an external memory interface 120, an internal memory 121, a universal serial bus (USB) interface 130, a charging management module 140, a power management module 141, a battery 142, an antenna 1, an antenna 2, a mobile communication module 150, a wireless communication module 160, an audio module 170, a speaker 170A, a receiver 170B, a microphone 170C, an earphone interface 170D, a sensor module 180, a button 190, a motor 191, an indicator 192, a camera 193, a display screen 194, and a subscriber identification module (SIM) card interface 195, etc. Among them, the sensor module 180 may include a pressure sensor 180A, a gyroscope sensor 180B, an air pressure sensor 180C, a magnetic sensor 180D, an acceleration sensor 180E, a distance sensor 180F, a proximity light sensor 180G, a fingerprint sensor 180H, a temperature sensor 180J, a touch sensor 180K, an ambient light sensor 180L, a bone conduction sensor 180M, etc.
[0052] It is understood that the structure illustrated in the embodiment of the present application does not constitute a specific limitation on the wearable device 100. In other embodiments of the present application, the wearable device 100 may include more or fewer components than shown in the figure, or combine certain components, or split certain components, or arrange the components differently. The components shown in the figure may be implemented in hardware, software, or a combination of software and hardware.
[0053] The processor 110 may include one or more processing units, for example, the processor 110 may include an application processor (AP), a modem processor, a graphics processor (GPU), an image signal processor (ISP), a controller, a memory, a video codec, a digital signal processor (DSP), a baseband processor, and / or a neural-network processing unit (NPU), etc. Different processing units may be independent devices or integrated into one or more processors.
[0054] The controller may be the nerve center and command center of the wearable device 100. The controller may generate an operation control signal according to the instruction operation code and the timing signal to complete the control of fetching and executing instructions.
[0055] The processor 110 may also be provided with a memory for storing instructions and data.
[0056] In some embodiments, the processor 110 may include one or more interfaces, such as an inter-integrated circuit (I2C) interface, an inter-integrated circuit sound (I2S) interface, a pulse code modulation (PCM) interface, a universal asynchronous receiver / transmitter (UART) interface, a mobile industry processor interface (MIPI), a general-purpose input / output (GPIO) interface, a subscriber identity module (SIM) interface, and / or a universal serial bus (USB) interface, etc.
[0057] It is understandable that the interface connection relationship between the modules illustrated in the embodiment of the present application is only a schematic illustration and does not constitute a structural limitation on the wearable device 100. In other embodiments of the present application, the wearable device 100 may also adopt different interface connection methods in the above embodiments, or a combination of multiple interface connection methods.
[0058] The wireless communication function of the wearable device 100 can be implemented through the antenna 1, the antenna 2, the mobile communication module 150, the wireless communication module 160, the modem processor and the baseband processor.
[0059] In some embodiments, the antenna 1 of the wearable device 100 is coupled to the mobile communication module 150, and the antenna 2 is coupled to the wireless communication module 160, so that the wearable device 100 can communicate with the network and other devices through wireless communication technology. For example, the wearable device 100 is connected to a terminal device carried by the user.
[0060] The wearable device 100 implements display functions through a GPU, a display screen 194, and an application processor. The GPU is a microprocessor for image processing, which connects the display screen 194 and the application processor. The GPU is used to perform mathematical and geometric calculations for graphics rendering. The processor 110 may include one or more GPUs that execute program instructions to generate or change display information.
[0061] The wearable device 100 can realize the shooting function through ISP, camera 193, video codec, GPU, display screen 194 and application processor.
[0062] The wearable device 100 can implement audio functions, such as music playback, recording, etc., through the audio module 170, the speaker 170A, the receiver 170B, the microphone 170C, the headphone interface 170D and the application processor.
[0063] The gyro sensor 180B can be used to determine the motion posture of the wearable device 100. In some embodiments, the angular velocity of the wearable device 100 around three axes (i.e., x, y, and z axes) can be determined by the gyro sensor 180B. The gyro sensor 180B can be used for anti-shake shooting. For example, when the shutter is pressed, the gyro sensor 180B detects the angle of the wearable device 100 shaking, calculates the distance that the lens module needs to compensate based on the angle, and allows the lens to offset the shaking of the wearable device 100 through reverse movement to achieve anti-shake. The gyro sensor 180B can also be used for navigation and somatosensory game scenes.
[0064] The acceleration sensor 180E can detect the magnitude of the acceleration of the wearable device 100 in various directions (generally three axes). When the wearable device 100 is stationary, the magnitude and direction of gravity can be detected. The acceleration sensor 180E can also be used to identify the posture of the wearable device 100, and is applied to applications such as horizontal and vertical screen switching, pedometers, etc.
[0065] The wearable device 100 may further include a global satellite navigation sensor, which is used to detect satellite signals carrying satellite information.
[0066] In one embodiment, when the wearable device 100 is a pair of smart glasses, the wearable device 100 may also include lenses, glasses holders, and the like.
[0067] Next, the software system of the wearable device 100 is described.
[0068] The software system of the wearable device 100 may adopt a layered architecture, an event-driven architecture, a micro-core architecture, a micro-service architecture, or a cloud architecture. In the embodiment of the present application, the Android system with a layered architecture is used as an example to exemplify the software system of the wearable device 100.
[0069] Figure 3 1 is a block diagram of a software system of a wearable device 100 provided in an embodiment of the present application. Figure 3 The layered architecture divides the software into several layers, each with clear roles and division of labor. The layers communicate with each other through software interfaces. In some embodiments, the Android system is divided into four layers, from top to bottom, namely the application layer, the application framework layer, the Android runtime (Android Runtime) and the system layer, and the kernel layer.
[0070] The application layer can include a series of application packages. Figure 3 As shown, the application package may include camera, gallery, calendar, call, map, navigation, WLAN, Bluetooth, music, video, short message and other applications.
[0071] The application framework layer provides application programming interface (API) and programming framework for the applications in the application layer. The application framework layer includes some predefined functions. Figure 3As shown, the application framework layer may include a window manager, a content provider, a view system, a phone manager, a resource manager, a notification manager, and the like. The window manager is used to manage window programs. The window manager can obtain the size of the display screen, determine whether there is a status bar, lock the screen, capture the screen, and the like. The content provider is used to store and obtain data and make these data accessible to applications. These data may include videos, images, audio, calls made and received, browsing history and bookmarks, phone books, and the like. The view system includes visual controls, such as controls for displaying text, controls for displaying pictures, and the like. The view system can be used to build the display interface of the application, and the display interface can be composed of one or more views, such as a view for displaying a text message notification icon, a view for displaying text, and a view for displaying pictures. The phone manager is used to provide communication functions for the wearable device 100, such as management of call status (including connecting, hanging up, and the like). The resource manager provides various resources for the application, such as localized strings, icons, pictures, layout files, video files, and the like. The notification manager enables the application to display notification information in the status bar, which can be used to convey notification-type messages and can automatically disappear after a short stay without user interaction. For example, the notification manager is used to notify download completion, message reminders, etc. The notification manager can also be a notification that appears in the system top status bar in the form of an icon or scroll bar text, such as a notification of an application running in the background. The notification manager can also be a notification that appears on the screen in the form of a dialog window, such as a text message in the status bar, a reminder sound, an electronic device vibrating, an indicator light flashing, etc.
[0072] Android Runtime includes core libraries and virtual machines. Android Runtime is responsible for scheduling and management of the Android system. The core library consists of two parts: one is the function that the Java language needs to call, and the other is the Android core library. The application layer and the application framework layer run in the virtual machine. The virtual machine executes the Java files of the application layer and the application framework layer as binary files. The virtual machine is used to perform object life cycle management, stack management, thread management, security and exception management, and garbage collection.
[0073] The system library can include multiple functional modules, such as: surface manager, media library, 3D graphics processing library (such as: OpenGL ES), 2D graphics engine (such as: SGL), etc. The surface manager is used to manage the display subsystem and provide fusion of 2D and 3D layers for multiple applications. The media library supports playback and recording of a variety of commonly used audio and video formats, as well as static image files, etc. The media library can support a variety of audio and video encoding formats, such as: MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, etc. The 3D graphics processing library is used to implement 3D graphics drawing, image rendering, synthesis, and layer processing, etc. The 2D graphics engine is a drawing engine for 2D drawing.
[0074] The system library also includes an algorithm engine, which is used to obtain motion data, calculate navigation information based on the motion data, and execute the navigation method provided in the embodiment of the present application in combination with the satellite signal (which carries satellite information) detected by the global satellite navigation sensor.
[0075] The kernel layer is the layer between hardware and software. The kernel layer includes at least display driver, camera driver, audio driver, and sensor driver. Among them, the sensor driver can include inertial sensor driver and global satellite navigation sensor driver.
[0076] The hardware layer includes inertial sensors (which may include accelerometers, gyroscopes, and magnetometers) and global satellite navigation sensors.
[0077] The global satellite navigation sensor may be a GPS sensor for detecting GPS signals, or a Beidou satellite navigation sensor for detecting Beidou signals. Figure 3 The GPS sensor is used as an example for illustration, but the embodiments of the present application are not limited to this.
[0078] The following example takes the wearable device worn on the head as an example. Figure 4-Figure 7 The process of determining navigation information based on motion data in an embodiment of the present application is described.
[0079] like Figure 4 As shown, Figure 4 It is a flowchart of a navigation method provided in an embodiment of the present application, wherein the motion data includes acceleration data detected by an accelerometer and angular velocity data detected by a gyroscope, or the motion data includes acceleration data, angular velocity data and geomagnetic data detected by a magnetometer. Figure 4 In the description, an inertial sensor including an accelerometer, a gyroscope and a magnetometer is taken as an example. Thus, the motion data includes acceleration data, angular velocity data and geomagnetic data.
[0080] S11, taking the average of the initial N frames of motion data after wearing.
[0081] Since the motion data after the human body wears the wearable device will be unstable, the initial N frames of motion data detected are averaged to reduce the impact of instability in the initial wearing stage. The frequency of detecting motion data is relatively high, for example, it can be 100 Hz, that is, 100 frames of motion data can be detected within 1 second (s). The initial N frames of motion data can be 10 frames, which can also be understood as taking the average of the motion data within 0.1s, which will not affect the timeliness of the subsequent walking direction determination. The initial N frames of motion data can also be 20 frames, 30 frames, etc. The embodiment of the present application does not limit the value of N.
[0082] S12, obtain motion data in a window length of L frames.
[0083] A sliding window is set, and the sliding window may include L frames of motion data. The L frames of motion data may be 5 frames, 8 frames, 9 frames, etc., and the embodiment of the present application does not limit the value of L. The L frames of motion data may be after the initial N frames of motion data. For example, the first frame of the L frame motion data is the N+1th frame, the N+2th frame, or the N+10th frame. The L frame motion data may also include all of the initial N frames of motion data. For example, the first frame of the L frame motion data may be the 1st frame. The L frame motion data may also include part of the initial N frames of motion data. Taking N equal to 10 as an example, the first frame of the L frame motion data may be the 4th frame, the 5th frame, the 10th frame, etc.
[0084] It should be noted that the step of taking the average of the initial N frames of motion data is only performed once at the initial wearing. Taking the L frames of motion data in the sliding window is a continuous process, and the L frames of motion data in the sliding window are obtained in real time as the walking time goes by. In other words, the step of calculating the current posture using the motion data in the L-frame window length is a cyclic process.
[0085] S13. Calculate the device posture in the device coordinate system using the nine-axis fusion algorithm.
[0086] According to the initial N frames of motion data averaged in S11, the nine-axis fusion algorithm is used to calculate the device posture in the device coordinate system.
[0087] According to the motion data in the L frame window length in S12, the nine-axis fusion algorithm is used to calculate the device posture in the device coordinate system.
[0088] For example, Figure 5 As shown, Figure 5 is a schematic diagram of a device coordinate system provided in an embodiment of the present application. The device coordinate system generally refers to the local coordinate system of the device itself. The device coordinate system includes Xt Axis, Y t Axis, Z t Axis. The device is worn on the human body, and the device posture reflects the human body posture. Take the wearable device as an example, the headset is worn on the user's head. The user's head posture in the device coordinate system (that is, the device posture) can be expressed by the pitch angle (pitch), heading angle (yaw) and roll angle (roll) in the device coordinate system. Pitch, yaw and roll are three parameters that describe the rotation of an object in three-dimensional space. Pitch is the rotation angle around the X axis. t The angle of rotation around the Y axis, the head rotates up or down; yaw is the angle around the Y axis. t The angle of rotation of the axis, the head rotates left and right; roll is around the Z t The angle of the axis rotation, the head rotates left or right.
[0089] S14. Projecting into the navigation coordinate system to obtain the posture in the navigation coordinate system.
[0090] After the device posture is calculated, the device posture is projected into the navigation coordinate system to obtain the posture in the navigation coordinate system.
[0091] For example, Figure 6 As shown, Figure 6 Schematic diagram of a navigation coordinate system provided in an embodiment of the present application, wherein the center point of the navigation coordinate system is O t , including X t Axis, Y t Axis, Z t Axis, O e Indicates the center of the earth. The navigation coordinate system can also be called the global coordinate system, the Northeast Sky Rectangular Coordinate System (ENU), etc., where E refers to East and X t The axis points in the direction due east (i.e., east is X t axis), N refers to North, indicating that Y t The axis points to the north (the north direction is Y t axis), U refers to the zenith (Up), and Z t The direction of the axis is perpendicular to the horizontal plane and upward (that is, the vertical upward direction is Z t axis).
[0092] The device posture (i.e., user head posture) in the device coordinate system is projected into the navigation coordinate system to obtain the current posture, which represents the posture at the current moment. The current posture includes the pitch angle, roll angle, and heading angle in the navigation coordinate system. The heading angle in the current posture refers to the direction in which the user as a whole rotates around the vertical line of the sky and the earth as the rotation axis. The heading angle is in the horizontal plane (i.e., the above Figure 6 X in the ENU coordinate systemt and Y t The heading angle is the angle of the plane formed by the north direction relative to the north direction. Usually, the heading angle is measured clockwise from the north direction, ranging from 0° to 360°. The current posture can indicate the walking direction of the user.
[0093] The initial N frames of motion data averaged in S11 are subjected to S13 and S14 to obtain the forward posture in the navigation coordinates.
[0094] The above steps S13 and S14 are executed on the motion data in the L-frame window length in S12 to obtain the current posture in the navigation coordinates.
[0095] In the calculation process of the first round of walking direction, the forward posture corresponding to the initial N frames of motion data (to avoid confusion, it can be called the initial posture) and the current posture determined by the L frames of motion data at the initial moment are comprehensively considered to determine the walking direction at the initial moment. The determination process can be seen in the description of S15-S18 below. The initial posture is updated according to the walking direction at the initial moment to obtain the forward posture at the initial moment. The forward posture at the initial moment includes the walking direction at the initial moment.
[0096] In the calculation process of the second round of walking direction, the forward posture at the initial moment and the current posture determined by the L-frame motion data at the second moment (i.e., the moment next to the initial moment) are comprehensively considered to determine the walking direction at the second moment. The determination process can be referred to the description of S15-S18 below. The forward posture at the initial moment is updated according to the walking direction at the second moment to obtain the forward posture at the second moment. The forward posture at the second moment includes the walking direction at the second moment.
[0097] By analogy, in the process of calculating the walking direction of the current wheel, the forward posture at the previous moment and the current posture determined by the L-frame motion data at the current moment are comprehensively considered to determine the walking direction at the current moment. The determination process can be referred to the description of S15-S18 below. And the forward posture at the previous moment is updated according to the walking direction at the current moment to obtain the forward posture at the current moment. Among them, the forward posture at the previous moment includes the walking direction at the previous moment, and the forward posture at the previous moment is obtained after the forward posture at the previous moment of the previous moment is updated according to the walking direction at the previous moment.
[0098] S15. Determine whether the absolute value of the difference between the heading angle in the current posture and the heading angle in the forward posture is within a preset range.
[0099] Calculate the absolute value of the difference between the heading angle in the current posture and the heading angle in the forward posture (ie, the walking direction in the forward posture), and determine whether the absolute value of the difference is within a preset range. If yes, execute S16, otherwise execute S18.
[0100] In the calculation process of the first round of walking direction, the absolute value of the difference in heading angle between the forward posture (ie, initial posture) corresponding to the initial N frames of motion data and the current posture determined by the initial L frames of motion data is calculated.
[0101] Similarly, in the process of calculating the walking direction of the current wheel, the absolute value of the difference in heading angle between the forward posture at the previous moment and the current posture determined by the L-frame motion data at the current moment is calculated.
[0102] Since the acquisition time of motion data is very fast, taking the detection frequency of 100Hz as an example, it takes about 0.01s to collect one frame. Therefore, the calculation process of walking direction is also very fast. Whether walking in a straight line or a curve, the heading angle at the current moment should be similar to the heading angle at the previous moment. Based on this, a preset range is set, for example, 10° to 90°. If the absolute value of the difference is within the preset range, it means that the head may have turned, and it is necessary to further classify whether the head has turned based on the L-frame motion data.
[0103] If the absolute value of the difference is not within the preset range, for example, it is less than the lower limit of the preset range, it means that the difference between the forward posture at the previous moment and the current posture is not large, and the heading angle at the current moment can represent the walking direction at the current moment. If the absolute value of the difference is not within the preset range, for example, it is greater than the upper limit of the preset range, it means that there may be deviations in the calculation process, and only the current posture is used as a reference. In this way, the heading angle at the current moment can represent the walking direction at the current moment.
[0104] S16, inputting the L frame motion data into a preset classification model for classification.
[0105] The L-frame motion data is input into a preset classification model, and whether the human head rotates is classified by the preset classification model, and a classification result is output, where the classification result is that the human head does not rotate or rotates.
[0106] Among them, the preset classification model is a binary classification model. The preset classification model can be a gated recurrent unit (GRU), a long short-term memory network (LSTM), a recurrent neural network (RNN) model, a deep learning model, etc., which are used to perform binary classification of time series data. The embodiment of the present application does not limit the structure of the preset classification model, as long as the time series data can be binary classified.
[0107] In an embodiment of the present application, a large number of time series training samples (for example, motion data samples) and labels corresponding to the training samples (the head has not turned or the head has turned) can be pre-sampled to train the model, and the trained model can be used as a preset classification model.
[0108] When the classification result is that the head has not rotated, the process continues with S17.
[0109] When the classification result is that the head has turned, the process continues with S18.
[0110] S17: Using the heading angle in the current posture as the walking direction at the current moment.
[0111] When it is determined that the head has not rotated, it indicates that the heading angle at the current moment can represent the walking direction at the current moment, and it is used as the walking direction at the current moment.
[0112] S18. Use the walking direction in the forward posture as the walking direction at the current moment.
[0113] When it is determined that the head has rotated, it means that the change in the heading angle at the current moment is caused by the rotation of the head and cannot represent the walking direction at the current moment. The walking direction in the forward posture is used as the walking direction at the current moment.
[0114] In the first round of walking direction calculation, the walking direction in the forward posture (ie, initial posture) corresponding to the initial N frames of motion data is used as the walking direction at the initial moment.
[0115] Similarly, in the process of calculating the walking direction of the current wheel, the walking mode in the forward posture at the previous moment is used as the walking direction at the current moment.
[0116] After S16, S17 is executed or S18 is executed.
[0117] After obtaining the walking direction, in one implementation, the walking direction determined in S17 or the walking direction determined in S18 is directly used as the target walking direction. Then, the forward posture is updated according to the target walking direction, that is, the forward posture at the previous moment is updated according to the walking direction at the current moment to obtain the forward posture at the current moment. In the calculation process of the first round of walking direction, the walking direction in the initial posture is updated according to the target walking direction at the initial moment as the forward posture at the initial moment. In the calculation process of the walking direction of the current round, the walking direction in the forward posture at the previous moment is updated according to the target walking direction at the current moment as the forward posture at the current moment. In this way, the forward posture essentially represents the walking direction at the previous moment, and can be used in the process of determining the walking direction at the current moment.
[0118] In another implementation, a satellite signal (which carries satellite information) is obtained, and when the signal quality of the satellite signal is good (for example, greater than a preset quality), the walking direction determined in S17 or the walking direction determined in S18 is coupled with the satellite signal to obtain the target walking direction, and then the forward posture is updated according to the target walking direction. By coupling with a satellite signal with good signal quality, the accuracy of the target walking direction can be improved, and then the navigation signal is determined according to the target walking direction, thereby improving the navigation accuracy.
[0119] Among them, the satellite signal can be a GPS signal detected by a GPS sensor, or it can be a Beidou signal detected by a Beidou satellite navigation sensor, which is not limited in the embodiments of the present application.
[0120] The navigation information includes the location information of the wearable device (i.e., the current location of the human body), the current speed and the orientation. The orientation can be Figure 4 The target walking direction at the current moment (or the direction of the head of the vehicle at the current moment) is used to express it. Next, how to calculate the speed at the current moment and the position of the human body at the current moment is explained.
[0121] When a person walks, the vertical impact of the foot hitting the ground will produce a peak change in the vertical acceleration. Therefore, a peak-finding algorithm can be used to detect the effective peak and effective valley of acceleration in the sliding window in turn. The effective peak and the effective valley adjacent to it correspond to a step length. Based on this, gait detection (gait analysis) is performed on the acceleration data. Gait detection can include time domain analysis and frequency domain analysis. The principle of time domain analysis is that the acceleration trajectory of the wearable device shows periodic changes in the time domain when a person walks; the principle of frequency domain analysis is that the frequency of a person walking is approximately stable at about 2 Hz, while the frequency of other behaviors is generally not near 2 Hz. Based on this, by performing gait detection on the acceleration data, the change pattern of the acceleration peak and acceleration valley over time can be obtained.
[0122] It should be noted that the sliding window used in determining the step size is different from the above Figure 4 The sliding window (for example, L frame window length) used to determine the current posture is not the same. Since the sliding window used to determine the step length must cover the peak and valley values, it needs to meet the scenarios of running, walking, and slow walking, so the sliding window should be set as long as possible. For example, taking the sampling frequency of 100 Hz as an example, 100 frames of acceleration data can be detected within 1 second, and the sliding window can include 40 frames, 50 frames, 70 frames or 100 frames, which is not limited to this embodiment of the present application.
[0123] Perform gait detection on multiple frames of acceleration data corresponding to multiple acquisition points before the current moment and adjacent to the current moment, and obtain the variation law of acceleration peak value and acceleration valley value over time; perform dynamic step length estimation based on the variation law of acceleration peak value and acceleration valley value over time, and predict the dynamic step length at the current moment. Divide the dynamic step length at the current moment by the time information in the acceleration data to obtain the speed at the current moment. According to the dynamic step length at the current moment, you can know how far you have walked, and according to the walking direction at the current moment, you can know which direction to walk. In this way, based on the original position, the current position of the human body can be determined. The original position can refer to the latitude and longitude coordinates at the initial moment, which can be obtained through the measuring device. The current position of the human body, the current speed and the current walking direction are used as navigation information to navigate the human body.
[0124] Wherein, the motion data includes acceleration data, and the number of multi-frame acceleration data may be greater than the number of multi-frame motion data. Correspondingly, the multiple acquisition points corresponding to the multi-frame acceleration data include the multiple acquisition points corresponding to the multi-frame motion data. For example, taking an L-frame sliding window including 5 frames of motion data and an acceleration sliding window of 50 frames as an example, the multi-frame acceleration data refers to the motion data corresponding to the 5 acquisition points between the current moment and adjacent to the current moment; the multi-frame acceleration data refers to the acceleration data corresponding to the 50 acquisition points between the current moment and adjacent to the current moment.
[0125] For example, Figure 7 As shown, Figure 7 This is a schematic diagram of acceleration peak search provided by an embodiment of the present application. The horizontal axis is time (time), the unit is seconds (s), and the vertical axis is acceleration (acceleration), the unit is meters per second squared (m / s 2 There are many extreme points in the acceleration data, some of which are peaks or valleys, and some are interference noise. Figure 7 The lower limit of the peak value and the upper limit of the valley value are also shown in the figure to assist in screening out the peak value and valley value. By performing gait detection on the acceleration data, the variation pattern of the acceleration peak value and the acceleration valley value over time can be obtained. Figure 7 The black circles represent the peaks and the triangles represent the valleys. Figure 7 The hollow circles in the figure represent interference noise.
[0126] After obtaining the variation law of the acceleration peak value and the acceleration valley value over time, the dynamic step length can be estimated according to the variation law of the acceleration peak value and the acceleration valley value over time to obtain the dynamic step length. The dynamic step length estimation method includes but is not limited to the Weinberg method, the Scarlet method and the Kim method, all of which are step length estimation algorithms based on acceleration data.
[0127] The Weinberg method determines the dynamic step length by the difference between the maximum acceleration (i.e., peak value) and the minimum acceleration (i.e., valley value) in each step, as shown in formula (1).
[0128] (1)
[0129] The Scarlet method determines the step length by the correlation between the maximum value, minimum value and average acceleration value of the step length, as shown in formula (2).
[0130] (2)
[0131] Kim's method provides the correlation between step length and average acceleration value as shown in formula (3).
[0132] (3)
[0133] In the above formulas (1), (2) and (3), A max and A min are the maximum and minimum acceleration values in the acceleration data of the gait detection process, k is a proportional coefficient or calibration factor used to adjust the step length calculation. The k value can be calibrated according to the actual situation. For example, a back-propagation neural network can be used to calculate the k value. N in formula (2) and formula (3) represents the number of steps, that is, the number of acceleration values. A i is the acceleration value of each step. Represents the summation symbol.
[0134] In the embodiment of the present application, the dynamic step length at the current moment is predicted by dynamic step length estimation, the speed at the current moment can be calculated by combining the dynamic step length with time information, the position of the human body can be calculated by combining the dynamic step length with the walking direction, and the speed, walking direction and position of the human body are used as navigation information to navigate the human body. The wearable device is worn in a relatively stable position on the human body, which reduces the interference caused by shaking or swinging the arms, improves the accuracy of the detected motion data, and thus improves the positioning accuracy and navigation accuracy.
[0135] The following describes how to determine the target walking direction based on the walking direction at the current moment in FIG. 4 and the satellite information carried by the GPS signal.
[0136] Obtain satellite information detected by the global satellite navigation chip; the number of valid satellites and signal strength included in the satellite information can reflect the signal quality. In this way, when the signal quality of the satellite information meets the preset conditions, it means that the signal quality is good, and the target information can be obtained by coupling with the navigation information. The target information includes the target walking direction at the current moment. When the signal quality of the satellite information does not meet the preset conditions, it means that the signal quality is poor, and the navigation information is directly used as the target information without reference. The target walking direction at the current moment in the target information is also the walking direction at the current moment. On this basis, the forward posture of the previous moment is updated according to the target walking direction at the current moment to obtain the forward posture at the current moment. The forward posture at the current moment includes the target walking direction at the current moment, and the forward posture at the current moment is used for the walking direction determination process of the next moment of the current moment.
[0137] The global satellite navigation chip is connected to the global satellite navigation system in communication. The global satellite navigation chip detects satellite signals through the global satellite navigation system, and the satellite signals carry satellite information. The global satellite navigation system can be GPS or Beidou Navigation Satellite System (BDS). The global satellite navigation chip can be integrated in a wearable device, or in a terminal device that is connected to the wearable device in communication and carried by the human body. Among them, the terminal device can be a mobile phone, a mobile phone, a folding phone, a tablet computer (portable android device, PAD), a portable computer, a handheld computer, a wireless terminal device, a communication device, a digital broadcast receiver, a personal digital assistant (personal digital assistant, PDA), a portable multimedia player (portable media player, PMP) and other electronic devices with satellite communication functions. The embodiment of the present application does not limit the specific type of the terminal device.
[0138] In the embodiment of the present application, if the global satellite navigation chip detects that the signal quality is good, it is coupled with the navigation information. If the signal quality is poor, the satellite information is not used. In this way, the accuracy of the target walking direction is improved, and the stability and reliability of the navigation result are improved. Then, the forward posture at the previous moment is updated using the target walking direction to improve the accuracy of the subsequent process of determining the walking direction.
[0139] Satellite information includes the number of valid satellites and signal strength, based on which, whether the satellite information meets the preset conditions can be determined in the following manner. The signal quality is determined based on the number of valid satellites and the signal strength; if the signal quality is greater than the preset quality, it is determined that the satellite information meets the preset conditions; if the signal quality is less than or equal to the preset quality, it is determined that the satellite information does not meet the preset conditions.
[0140] Satellite information includes the signal strength of satellite signals, which can be expressed as carrier to noise density (CN0), CN0=C / N0, where C represents the carrier power of the signal and N0 represents the noise power density of the signal. In general, external factors such as the environment and shielding, as well as internal factors such as antenna design and internal interference, will affect the size of CN0. CN0 indicates the ratio of carrier power to noise power density, which is used to measure the ratio of received satellite signal strength to noise. The higher the value of CN0, the greater the signal strength and the better the signal quality.
[0141] The signal quality of satellite information is also related to the number of effective satellites. The more effective satellites there are, the better the signal quality.
[0142] Based on this, the signal quality is determined according to the number of effective satellites and the signal strength. In one implementation, the product of the number of effective satellites and the signal strength is used as the signal quality; in another implementation, the number of effective satellites and the signal strength are weighted and summed to obtain the signal quality; in another implementation, the satellite signal quality measurement equipment measures the modulation accuracy, bit error rate, error vector amplitude and other key parameters to evaluate the signal quality. Of course, in addition to the number of effective satellites and signal strength, there are other factors that affect the signal quality, such as satellite orbits, weather conditions, receiving equipment performance, etc. The signal quality can also be determined by combining the number of effective satellites and signal strength with other influencing parameters to improve the accuracy of the signal quality. The embodiments of the present application are only illustrated by taking the number of effective satellites and signal strength as an example, and do not mean that the embodiments of the present application are limited to this.
[0143] It should be noted that the preset quality can be appropriately set by those skilled in the art according to actual conditions. For example, the preset quality is a signal quality that enables the reliability and stability of satellite communication to reach a preset standard. The present application embodiment does not impose any specific restrictions on the preset quality, as long as it can ensure that the accuracy of the target information is improved after coupling with the navigation information.
[0144] In the embodiment of the present application, the signal quality can be judged by the signal strength, number of valid satellites and other information in the satellite signal. Then, whether to couple with the navigation information is judged according to the signal quality, which improves the accuracy of the target information and the stability and reliability of the navigation result compared with the direct coupling solution.
[0145] Based on the navigation information corresponding to the above inertial sensor and the satellite information corresponding to the global satellite navigation sensor, the process of determining the target walking direction based on the global satellite navigation sensor is described below by taking the global satellite navigation sensor as a GPS sensor as an example. Figure 8 As shown, Figure 8 It is a flowchart of another navigation method provided in an embodiment of the present application.
[0146] S21. Perform gait detection according to acceleration data.
[0147] S22. Estimate dynamic step length.
[0148] Gait detection is performed on multiple frames of acceleration data that correspond one-to-one to multiple acquisition points before the current moment and adjacent to the current moment, and the change pattern of the acceleration peak value and the acceleration valley value over time is obtained. Dynamic step length estimation is performed based on the change pattern of the acceleration peak value and the acceleration valley value over time, and the dynamic step length at the current moment is predicted.
[0149] The implementation of S21 and S22 can be found in the above Figure 7 The description in will not be repeated here.
[0150] S23. Calculate the walking direction according to the motion data.
[0151] According to the multi-frame motion data corresponding to multiple acquisition points before the current moment and adjacent to the current moment, the device posture at the current moment in the device coordinate system is determined; the device posture is projected into the global coordinate system to obtain the current posture. If the absolute value of the difference between the walking direction at the previous moment and the heading angle in the current posture is not within the preset range, or the absolute value of the difference is within the preset range and it is predicted according to the multi-frame motion data that the human head has not turned, it is determined that the human head has not turned; the heading angle in the current posture is used as the walking direction at the current moment. If the absolute value of the difference is within the preset range and it is predicted according to the multi-frame motion data that the human head has turned, it is determined that the human head has turned, and the walking direction at the previous moment is used as the walking direction at the current moment.
[0152] The implementation of S23 can be found in the above Figure 4-Figure 6 The description in will not be repeated here.
[0153] S24. Determine the position, speed, and walking direction.
[0154] Divide the current dynamic step length by the time information in the acceleration data to get the current speed. The current dynamic step length can tell how far you have walked, and the current walking direction can tell which direction you are walking. In this way, based on the original position, the current position of the human body can be determined. The position, speed, and walking direction are used as navigation information.
[0155] S25. Determine whether the signal quality is greater than the preset quality?
[0156] The satellite information carried by the GPS signal detected by the GPS sensor includes the number of valid satellites and signal strength. The signal quality is determined based on the number of valid satellites and the signal strength.
[0157] If the signal quality is greater than the preset quality, S26 is executed. If the signal quality is less than or equal to the preset quality, S27 is executed, that is, there is no need to couple the satellite information detected by the GPS sensor and the navigation information corresponding to the inertial sensor, and the target information is directly determined according to the position, speed, and walking direction determined in S24. In this case, the target walking direction in the target information is also the walking direction.
[0158] S26. Couple the satellite information detected by the GPS sensor and the navigation information corresponding to the inertial sensor.
[0159] The coupling process of satellite information and navigation information may include loose coupling and tight coupling, which is described below by taking the global satellite navigation sensor, which is a GPS sensor, as an example.
[0160] In the embodiment of the present application, when loosely coupling satellite information and navigation information, it is necessary to determine the three-dimensional position, velocity information and time information based on the satellite information, and then loosely couple with the navigation information to obtain the target information. The global navigation satellite system (GNSS) can be used to perform PVT solution (i.e., preprocessing) on the satellite information detected by the GPS sensor to obtain PVT data. PVT solution refers to the solution of position, velocity and time, and PVT data (including three-dimensional position, velocity information and time information).
[0161] In an embodiment of the present application, when tightly coupling satellite information and navigation information, it is necessary to determine pseudorange information based on the satellite information, and then tightly couple it with the navigation information to obtain target information. Pseudorange information includes at least one of pseudorange, pseudorange residual and pseudorange rate. Among them, the pseudorange means that the GPS sensor receives the satellite signal, and uses the propagation time of the satellite signal to calculate the distance between the device where the GPS sensor is located and the satellite. The pseudorange rate (pseudorangerate) can also be called differential pseudorange or pseudorange change rate, which refers to the rate of change of pseudorange over time. The pseudorange rate indicates the relative speed between the device where the GPS sensor is located and the satellite. The pseudorange residual represents the error between the calculated pseudorange and the actual distance.
[0162] The inertial navigation system (INS) in which the inertial sensors (including accelerometers, gyroscopes and magnetometers) are located is an autonomous navigation system that relies on internal hardware to output device positioning and attitude (i.e., navigation information). In the embodiment of the present application, an inertial measurement unit (IMU) can be used to calculate the motion data detected by the inertial sensor to obtain navigation information.
[0163] For example, Fig. 9 As shown, Fig. 9 It is a schematic diagram of a loose coupling of satellite information and navigation information provided in an embodiment of the present application. When the navigation information and satellite information are loosely coupled, the GNSS and IMU work independently and provide navigation data respectively. The PVT data (including three-dimensional position, velocity information and time information) obtained by the GNSS performing PVT solution on the satellite information, and the navigation information obtained by the IMU calculating the motion data are input into the filter, and the target information is obtained by fusing through the filter, and the target information is output. The filter can adopt filtering methods such as Kalman Filtering (KF), particle filtering or factor graph. The filter establishes an error model to estimate the error of INS by comparing the difference between the two, and uses the error to feedback the calculation process of the IMU to correct the calculation result of the IMU.
[0164] For example, Fig.10 As shown, Fig.10 This is a schematic diagram of a tight coupling of satellite information and navigation information provided by an embodiment of the present application. When the navigation information and satellite information are tightly coupled, GNSS is used to pre-process the satellite information detected by the GPS sensor to obtain pseudorange information (which may include pseudorange, pseudorange rate, and pseudorange residual, etc.). The pseudorange information calculated by GNSS for the satellite information and the navigation information calculated by IMU for the motion data are input into the filter, and the target information is obtained by fusion through the filter, and the target information is output. The filter can adopt filtering methods such as KF, particle filtering or factor graph. The filter establishes an error model to estimate the error of INS by comparing the difference between the two, and uses the error to provide feedback to the calculation process of IMU and the preprocessing process of GNSS to correct the calculation results of IMU and GNSS.
[0165] In the related technology, a solution of fusing images and GPS signals can be used for navigation. The embodiment of the present application combines the motion data detected by the inertial sensor (corresponding to the IMU) and the satellite information detected by the global satellite navigation chip. The input sources of the two are different and belong to different technical solutions.
[0166] In the embodiment of the present application, when the signal quality of the satellite information meets the preset conditions, the target information is finally obtained by loosely coupling or tightly coupling the navigation information and the satellite information. The accuracy of the target information is improved by fusing the navigation information corresponding to the inertial sensor and the satellite information corresponding to the global satellite navigation sensor. The target information includes the target walking direction, and the target walking direction is then used to update the forward posture at the previous moment to improve the accuracy of the subsequent process of determining the walking direction.
[0167] S27. Determine target information.
[0168] The target information includes the target walking direction. Before the target walking direction is fed back to the motion data detected by the inertial sensor to calculate the walking direction, the forward posture is updated according to the target walking direction.
[0169] In the embodiment of the present application, if the GPS signal quality does not meet the preset conditions, the navigation information is directly used as the target information. If the GPS signal quality meets the preset conditions, the navigation information is coupled with the satellite information carried by the GPS signal. The target information can be obtained by loosely coupling the PVT data corresponding to the satellite information with the INS result (i.e., navigation information) corresponding to the inertial sensor. The pseudorange and pseudorange residual can also be calculated using the satellite information, and then tightly coupled with the navigation information to obtain the target information.
[0170] The embodiment of the present application provides a wearable device with a built-in inertial sensor, which can be a head-mounted device, such as headphones or glasses. A chip with a GPS sensor (which can be called a GPS chip) can be built into the wearable device, or located in a portable terminal device that is connected to the wearable device for communication. Based on the characteristics that the direction of the wearable device is relatively stable during movement (for example, the head, chest, waist or leg), a direction detection scheme is proposed, which can be seen in the above Figure 4-Figure 7 Description in . Combined with the stable high frequency characteristics of inertial sensors, more reliable positioning information can be obtained, and the accuracy of navigation information can be improved. By combining the signal quality of the GPS signal detected by the portable GPS sensor, different algorithms are adaptively switched, that is, when the signal quality of the satellite information meets the preset conditions, navigation is carried out by coupling the satellite information and navigation information; when the signal quality does not meet the preset conditions, navigation is carried out by using the navigation information, thereby improving the stability and reliability of the navigation results.
[0171] Based on the above Figure 4-Figure 10 The description in Fig.11 As shown, Fig.11This is a flowchart of another navigation method provided by an embodiment of the present application. Taking the wearable device worn on the human head, and the inertial sensor including an accelerometer, a gyroscope and a magnetometer as an example, the navigation method includes S31-S44.
[0172] S31. Obtaining movement data of a human head detected by an inertial sensor in a wearable device.
[0173] The motion data includes acceleration data, angular velocity data and geomagnetic data.
[0174] Normally, the head orientation of a user while walking (which can be represented by the posture of the wearable device in the global coordinate system) is consistent with the actual walking direction. However, the head cannot be completely stable, and the head may turn briefly during walking, which will cause the head orientation to be inconsistent with the actual walking direction.
[0175] Based on this, the embodiment of the present application detects whether the head rotates according to the motion data. For example, the six-axis fusion algorithm can be used to detect the head rotation or walking direction change according to the acceleration data and angular velocity data, and the geomagnetic data can be used to obtain the orientation of the wearable device, and finally the walking direction is obtained. Of course, the nine-axis fusion algorithm can also be used to calculate the current posture according to the acceleration data, angular velocity data and geomagnetic data, and then determine whether the head rotates, and determine the final walking direction according to the heading angle in the current posture or the walking direction at the previous moment.
[0176] S32, taking an average of multiple frames of initial motion data after the wearable device is worn on the human body.
[0177] Taking the multiple frames of initial motion data as the initial N frames of motion data as an example, since the motion data after a human body wears the wearable device is unstable, after the human body wears the wearable device, the initial N frames of motion data are averaged to reduce the impact of instability in the initial wearing stage.
[0178] For the description of the N frame, please refer to the description of S11 above, which will not be repeated here.
[0179] S33. Calculate the device posture at the initial moment in the device coordinate system using the nine-axis fusion algorithm.
[0180] The nine-axis fusion algorithm is used to calculate the device posture at the initial moment in the device coordinate system based on the average of multiple frames of initial motion data.
[0181] S34, projecting the device posture at the initial moment into the global coordinate system to obtain the initial posture at the initial moment.
[0182] The device posture at the initial moment in the device coordinate system is projected to the global coordinate system (i.e., the navigation coordinate system) to obtain the wearing posture at the initial moment (to simplify the description, it can be called the initial posture), which includes the pitch angle, roll angle, and heading angle in the global coordinate system. The initial posture is used in the direction determination process at the initial moment. After the walking direction at the initial moment is determined according to the initial posture, the initial posture is updated according to the walking direction at the initial moment to obtain the forward posture at the initial moment.
[0183] S35, acquiring, through a sliding window, a plurality of frames of motion data corresponding to a plurality of acquisition points before the current moment and adjacent to the current moment in a one-to-one manner.
[0184] Taking the case where the multi-frame motion data is L-frame motion data, a sliding window with a window length of L frames is used to slide on the motion data, and the sliding window buffers the L-frame motion data.
[0185] In the calculation process of the first round of walking direction, a multi-frame motion data corresponding to multiple acquisition points before and adjacent to the initial moment is obtained through a sliding window. To simplify the description, it is called the multi-frame motion data corresponding to the initial moment.
[0186] Since the frequency of detecting motion data is usually relatively high, there is no strict restriction on the relationship between the multi-frame motion data corresponding to the initial moment and the multi-frame initial motion data. Exemplarily, the number of multi-frame motion data corresponding to each moment can be set to be greater than the number of multi-frame initial motion data. Among them, the relationship between the multi-frame motion data corresponding to the initial moment and the multi-frame initial motion data can include the following scenarios. The multi-frame motion data corresponding to the initial moment includes all or part of the multi-frame initial motion data. For example, the first frame in the L-frame motion data is any frame of the initial N-frame data. The multi-frame motion data corresponding to the initial moment is located after the multi-frame initial motion data. For example, the first frame in the L-frame motion data is the N+Mth frame, and M is a positive integer.
[0187] S36. Calculate the device posture at the current moment in the device coordinate system using the nine-axis fusion algorithm.
[0188] The nine-axis fusion algorithm is used to calculate the device posture at the initial moment in the device coordinate system based on the multi-frame motion data at the initial moment.
[0189] S33 and S36 refer to the above S13 and Figure 5 The description will not be repeated here.
[0190] S37, projecting the device posture at the current moment into the global coordinate system to obtain the current posture.
[0191] In the calculation process of the first round of walking direction, the device posture at the initial moment is projected to the global coordinate system to obtain the current posture at the initial moment. The current posture at the initial moment and the initial posture at the initial moment obtained in S32-S34 are obtained through different calculation paths, and there will be differences between the two. Subsequently, the absolute value of the difference between the two is calculated to determine whether the absolute value of the difference is within a preset range, and then determine which posture to use as the walking direction. Regardless of which posture is used, the initial posture at the initial moment is updated to obtain the forward posture at the initial moment.
[0192] In the calculation process of the walking direction of the first round, I is a positive integer greater than 1. The device posture at the first moment is projected to the global coordinate system to obtain the current posture at the first moment. There will be a difference between the current posture at the first moment and the forward posture at the first-1st moment. Subsequently, by calculating the absolute value of the difference between the two, it is determined whether the absolute value of the difference is within a preset range, and then which posture is used as the walking direction. Regardless of which posture is used, the forward posture at the first-1st moment is updated to obtain the forward posture at the first moment. The forward posture at the first moment is used in the determination process of the walking direction at the first+1st moment.
[0193] S34 and S37 refer to the above S14 and Figure 6 The description will not be repeated here.
[0194] It should be noted that S32-S34 are only performed once when the wearer is initially wearing the headset. S35-S37 is a cyclic process, in which a sliding window is used to slide on the motion data to obtain multiple frames of motion data corresponding to each moment in real time, and then determine the navigation information at each moment.
[0195] S38. Determine whether the absolute value of the difference between the walking direction at the previous moment and the heading angle in the current posture is within a preset range.
[0196] If so, it means that the head may rotate, and then S39 is executed; if not, it means that the head does not rotate, and then S41 is executed.
[0197] The forward posture at the last moment includes the walking direction at the last moment (the walking direction is related to the heading angle). Based on this, by calculating the absolute value of the difference between the walking direction at the last moment and the heading angle in the current posture, the difference between the forward posture at the last moment and the current posture can be reflected.
[0198] The lower limit value of the preset range is set to Thr_min, where Thr_min is greater than 0°, for example, 10°, 5°, 15°, etc.; the upper limit value of the preset range is set to Thr_max, where Thr_max is less than 100°, for example, 90°, 85°, 95°, etc. The embodiment of the present application does not impose any limitation on this, as long as it can screen out situations where the head may rotate.
[0199] Calculate the absolute value of the difference between the heading angle (yaw) in the current attitude and the forward attitude. If the absolute value of the difference is greater than or equal to Thr_min and less than or equal to Thr_max, that is, the absolute value of the difference is within the preset range, it means that the head may have rotated. If the absolute value of the difference is less than Thr_min, or greater than Thr_max, that is, the absolute value of the difference is not within the preset range, it means that the head has not rotated.
[0200] S39, inputting the multi-frame motion data into a preset classification model, classifying whether the human head is rotating through the preset classification model, and outputting the classification result.
[0201] Among them, the preset classification model is used to perform binary classification on time series data.
[0202] When the user's head turns, there will be a force in the direction of rotation, and the acceleration data and angular velocity data will change significantly. However, changing direction when walking is a relatively smooth and slow process. Based on this, the model used for binary classification of time series data can be used for classification. Multiple frames of motion data are input into the preset classification model for binary classification to determine whether the head has turned.
[0203] When the classification result is that the head of the human body has rotated, S40 is executed.
[0204] When the classification result is that the head of the human body has not rotated, S41 is executed.
[0205] S40: Using the walking direction at the previous moment as the walking direction at the current moment.
[0206] If the head is recognized to have turned, the orientation of the wearable device is inconsistent with the actual walking direction. The walking direction (orientation_t) at the current moment needs to use the absolute result of the previous moment. In other words, the walking direction at the current moment needs to adopt the walking direction in the forward posture at the previous moment, that is, the target walking direction (orientation) at the previous moment.
[0207] S41. Using the heading angle in the current posture as the walking direction at the current moment.
[0208] If it is recognized that the head has not rotated (i.e., not turned), the orientation of the wearable device is consistent with the actual walking direction, and the walking direction (orientation_t) at the current moment is the heading angle (yaw) in the current posture.
[0209] S42. Obtain satellite information detected by the global satellite navigation chip.
[0210] S43. Determine whether the signal quality is greater than the preset quality based on the satellite information?
[0211] If yes, the step of determining the target walking direction based on the current walking direction in S40 or S41 in combination with the satellite information is executed. If no, the satellite information is ignored and the step of determining the target walking direction based on the current walking direction in S40 or S41 is executed.
[0212] Satellite information includes the number of valid satellites and signal strength. The signal quality is determined based on the number of valid satellites and signal strength. The more valid satellites there are, the better the signal quality. The stronger the signal strength, the better the signal quality.
[0213] S44: Determine the target walking direction.
[0214] The current walking direction (orientation_t) in S40 or S41 continues the following process. If it is determined that the satellite signal quality is good, it is coupled with the satellite information to obtain the target walking direction (orientation); if it is determined that the satellite signal quality is not good, the target walking direction (orientation) is the current walking direction (orientation_t) in S40 or S41.
[0215] After the target walking direction is obtained, the forward posture is updated according to the target walking direction. After the first round of walking direction calculation, the initial posture at the initial moment is updated according to the target walking direction at the initial moment to obtain the forward posture at the initial moment, and the forward posture at the initial moment is used in the calculation process of the walking direction at the second moment. After the calculation of the first round of walking direction, the forward posture at the I-1th moment is updated according to the target walking direction at the Ith moment to obtain the forward posture at the Ith moment, and the forward posture at the Ith moment is used in the calculation process of the walking direction at the I+1th moment.
[0216] S45. Determine target information.
[0217] Above Figure 5-Figure 8This paper introduces how to calculate the navigation information corresponding to the inertial sensor (including speed, position and walking direction), and on this basis, combine it with satellite information to obtain target information. The target information includes not only the target walking direction at the current moment, but also the target speed at the current moment and the target position of the human body at the current moment.
[0218] In some embodiments, when the wearable device is worn on the neck, waist or legs of a human body, in one implementation, the above Fig.11 S31-S44 in, wherein the absolute value of the difference in S38 is less than the lower limit of the preset range. Exemplarily, the lower limit of the preset range is greater than 0°, and the absolute value of the difference is 0°, which is not within the preset range. In another implementation, this situation is deemed that the human head has not rotated; execute the above S31, S35, S36, S37, S41, that is, obtain the movement data of the neck, waist or legs of the human body detected by the inertial sensor in the wearable device; obtain multiple frames of motion data corresponding to multiple acquisition points before the current moment and adjacent to the current moment through a sliding window; use the nine-axis fusion algorithm to calculate the device posture at the current moment in the device coordinate system; project the device posture at the current moment to the global coordinate system to obtain the current posture; use the heading angle in the current posture as the walking direction at the current moment. After obtaining the walking direction at the current moment, it can also be combined with the above Figure 5-Figure 8 Determine navigation information, which includes speed, position and walking direction. After obtaining the current direction at the current moment, S42, S43 and S44 may be further executed. When the signal quality of the satellite information is greater than the preset quality, the navigation information is coupled with the satellite information to obtain target information, which includes the target walking direction, the target speed at the current moment, and the target position of the human body at the current moment.
[0219] In the embodiment of the present application, taking the GPS signal detected by the GPS chip carrying satellite information as an example, the inertial sensor and the GPS chip can obtain positioning results (i.e., position, speed and direction) respectively, and when there is no abnormality in the motion data detected by the inertial sensor and the satellite information detected by the GPS chip, the information detected by the two is coupled to improve the navigation accuracy. Based on this, in the embodiment of the present application, by judging the availability of the GPS signal, when it is available (i.e., the signal quality is greater than the preset quality), the navigation information is inferred using the motion data detected by the inertial sensor, and the navigation information includes the user's step length, speed and heading angle (i.e., walking direction), and the user's position can be obtained using the step length and speed. At the same time, the position, speed and heading angle are calculated from the GPS signal detected by the GPS sensor (located in the GPS chip), and the navigation information is loosely coupled with the position, speed and heading angle calculated from the GPS signal to obtain the final state, i.e., the target information (including the current position of the human body, the current speed and the current walking direction). Alternatively, the pseudorange and pseudorange rate are calculated from the GPS signal, and the navigation information is tightly coupled with the pseudorange and pseudorange rate to obtain the final state. If the quality of the GPS signal is poor, the inference result of the inertial sensor is trusted, and the navigation information is used as the final state. The target walking direction in the final state is then fed back to the walking direction calculation module of the inertial sensor as a priori condition to update the next round of walking direction. This cycle is repeated to achieve navigation of the human body, improving positioning accuracy and navigation accuracy.
[0220] Based on the above Figure 4-Figure 11 The described navigation method, combined with the above Figure 3 The software system framework diagram in FIG. 1 and the exemplary flow chart of a navigation interaction method provided in an embodiment of the present application are as follows: Fig.12 As shown. Taking the global satellite navigation sensor as a GPS sensor as an example, the hardware layer of the terminal device includes an inertial sensor and a GPS sensor. Next, the interaction between the various layers of the software system is explained.
[0221] S101. The inertial sensor sends motion data to the algorithm engine.
[0222] After the navigation function is started, the algorithm engine is started to execute the navigation method provided in the embodiment of the present application. In one implementation, after the algorithm engine is started, a motion data reporting instruction is sent to the inertial sensor, and the inertial sensor responds to the motion data reporting instruction and sends motion data to the algorithm engine. In another implementation, the inertial sensor reports motion data to the algorithm engine in real time according to a preset period. This embodiment of the present application is not limited to this, as long as the algorithm engine can obtain motion data.
[0223] S102: The algorithm engine determines navigation information according to the motion data.
[0224] When the wearable device is worn on the head of a human body, the algorithm engine performs the following steps: average the multiple frames of initial motion data after the wearable device is worn on the human body, calculate the device posture at the initial moment in the device coordinate system using the nine-axis fusion algorithm; project the device posture at the initial moment into the global coordinate system to obtain the initial posture at the initial moment. Obtain multiple frames of motion data corresponding to multiple acquisition points before and adjacent to the current moment through a sliding window; calculate the device posture at the current moment in the device coordinate system using the nine-axis fusion algorithm; project the device posture at the current moment into the global coordinate system to obtain the current posture. Determine whether the absolute value of the difference between the walking direction at the previous moment of the current moment and the heading angle in the current posture is within a preset range? Input multiple frames of motion data into a preset classification model, classify whether the human head rotates through the preset classification model, and output the classification result. If the classification result is that the human head rotates, the walking direction at the previous moment is used as the walking direction at the current moment; if the classification result is that the human head does not rotate, the heading angle in the current posture is used as the walking direction at the current moment.
[0225] When the wearable device is worn on the neck, waist or leg of the human body, the absolute value of the difference in the steps executed by the above algorithm engine is not within the preset range, and it is deemed that the head has not rotated. Alternatively, the algorithm engine executes the following steps: obtaining the motion data of the neck, waist or leg of the human body detected by the inertial sensor in the wearable device; obtaining multiple frames of motion data corresponding to multiple acquisition points before and adjacent to the current moment through a sliding window; using the nine-axis fusion algorithm to calculate the device posture at the current moment in the device coordinate system; projecting the device posture at the current moment into the global coordinate system to obtain the current posture; using the heading angle in the current posture as the walking direction at the current moment.
[0226] After obtaining the current walking direction, the algorithm engine also performs the following steps: determine the variation of the acceleration peak and the acceleration valley over time based on the multi-frame acceleration data corresponding to multiple acquisition points before and adjacent to the current moment; predict the dynamic step length at the current moment based on the variation of the acceleration peak and the acceleration valley over time; determine the speed at the current moment based on the dynamic step length at the current moment and the time information in the acceleration data; determine the current position of the human body based on the dynamic step length at the current moment and the current walking direction. Navigation information includes the current position of the human body, the current speed and the current walking direction.
[0227] S103. The GPS sensor sends a GPS signal to the algorithm engine.
[0228] In one implementation, after the algorithm engine is started, a GPS signal reporting instruction is sent to the GPS sensor, and the GPS sensor responds to the GPS signal reporting instruction and sends a GPS signal to the algorithm engine. In another implementation, the GPS sensor reports the GPS signal to the algorithm engine in real time according to a preset period. This embodiment of the present application is not limited to this, as long as the algorithm engine can obtain the GPS signal.
[0229] S104: When the algorithm engine determines that the signal quality meets the preset conditions based on the satellite information carried by the GPS signal, the algorithm engine couples the navigation information and the satellite information to obtain the target information. When the signal quality does not meet the preset conditions, the algorithm engine uses the navigation information as the target information. The algorithm updates the forward posture in the step of determining the navigation information based on the target walking direction in the target information.
[0230] In the embodiment of the present application, the algorithm engine adaptively switches different algorithms by combining the signal quality of the GPS signal detected by the portable GPS sensor. That is, the navigation information is inferred by the motion data detected by the inertial sensor, and the navigation information includes the walking direction, speed and user's location. When the signal quality is greater than the preset quality, navigation is performed by coupling the satellite information carried by the GPS signal detected by the GPS sensor with the navigation information, which can improve the navigation accuracy. When the signal quality is less than or equal to the preset quality, the inference result of the inertial sensor is trusted, and the navigation information is used for navigation, thereby improving the stability and reliability of the navigation result.
[0231] In the above embodiments, it can be implemented in whole or in part by software, hardware, firmware or any combination thereof. When implemented by software, it can be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer instructions. When the computer instructions are loaded and executed on a computer, the process or function described in the embodiment of the present application is generated in whole or in part. The computer may be a general-purpose computer, a special-purpose computer, a computer network or other programmable device. The computer instructions may be stored in a computer-readable storage medium, or transmitted from one computer-readable storage medium to another computer-readable storage medium, for example, the computer instructions may be transmitted from a website site, computer, server or data center by wired (such as: coaxial cable, optical fiber, data subscriber line (Digital Subscriber Line, DSL)) or wireless (such as: infrared, wireless, microwave, etc.) mode to another website site, computer, server or data center. The computer-readable storage medium may be any available medium that a computer can access, or a data storage device such as a server or data center that includes one or more available media integrated. The available medium may be a magnetic medium (such as a floppy disk, a hard disk, a magnetic tape), an optical medium (such as a digital versatile disc (DVD)), or a semiconductor medium (such as a solid state disk (SSD)).
[0232] The above are optional embodiments provided for the present application and are not intended to limit the present application. Any modifications, equivalent substitutions, improvements, etc. made within the technical scope disclosed in the present application shall be included in the protection scope of the present application.
Claims
1. A navigation method, characterized in that: Applied in a wearable device, the wearable device is used to be worn on a designated part of a human body, the designated part includes the head, neck, waist or leg, and the method includes: Acquire motion data of a specified part of the human body detected by an inertial sensor in the wearable device; When it is determined according to multiple frames of motion data corresponding to multiple acquisition points that the head of the human body has not rotated, the heading angle in the current posture is used as the walking direction at the current moment; wherein the current posture is determined according to the multiple frames of motion data, the multiple acquisition points refer to multiple acquisition points before the current moment and adjacent to the current moment, and when the wearable device is worn on the neck, waist or legs of the human body, it is deemed that the head of the human body has not rotated; When it is determined according to the multiple frames of motion data that the head of the human body rotates, taking the walking direction at the previous moment before the current moment as the walking direction at the current moment; Determining navigation information according to the walking direction at the current moment; Wherein, when the absolute value of the difference between the walking direction at the last moment and the heading angle in the current posture is not within a preset range, it is determined that the head of the human body has not rotated; When the absolute value of the difference is within the preset range and it is predicted based on the multiple frames of motion data that the head of the human body rotates, it is determined that the head of the human body rotates.
2. The method according to claim 1, characterized in that The method further comprises: When the absolute value of the difference is within the preset range and it is predicted according to the multiple frames of motion data that the head of the human body has not rotated, determining that the head of the human body has not rotated; Wherein, when the wearable device is worn on the neck, waist or leg of a human body, the absolute value of the difference is less than the lower limit of the preset range.
3. The method according to claim 2, characterized in that The method further comprises: The forward posture at the previous moment is updated according to the walking direction at the current moment to obtain the forward posture at the current moment, wherein the forward posture at the current moment includes the walking direction at the current moment, and the forward posture at the current moment is used for determining the walking direction at the next moment of the current moment.
4. The method according to claim 3, characterized in that The method further comprises: Acquiring satellite information detected by a global satellite navigation chip; the global satellite navigation chip is located in the wearable device, or in a terminal device that is communicatively connected to the wearable device and carried by the human body; the satellite information reflects signal quality; When the satellite information meets a preset condition, the navigation information and the satellite information are coupled to obtain target information, wherein the target information includes the target walking direction at the current moment; When the satellite information does not meet the preset condition, the navigation information is used as the target information, and the target walking direction at the current moment in the target information is the walking direction at the current moment; The updating of the forward posture at the previous moment according to the walking direction at the current moment to obtain the forward posture at the current moment includes: The forward posture at the previous moment is updated according to the target walking direction at the current moment to obtain the forward posture at the current moment.
5. The method according to claim 4, characterized in that The satellite information includes the number of valid satellites and signal strength; the method further includes: Determining signal quality according to the number of valid satellites and the signal strength; When the signal quality is greater than a preset quality, determining that the satellite information meets the preset condition; When the signal quality is less than or equal to the preset quality, it is determined that the satellite information does not meet the preset condition.
6. The method according to claim 4, characterized in that The coupling of the navigation information and the satellite information to obtain target information includes: Determine a three-dimensional position, speed information and time information according to the satellite information; loosely couple the three-dimensional position, speed information and time information, and the navigation information to obtain the target information; Alternatively, pseudorange information is determined according to the satellite information; and the pseudorange information and the navigation information are tightly coupled to obtain the target information.
7. The method according to any one of claims 1 to 6, characterized in that: After acquiring the motion data of the designated part of the human body detected by the inertial sensor in the wearable device, the method further includes: The multiple frames of motion data are input into a preset classification model, and whether the human head rotates is classified by the preset classification model, and a classification result is output, wherein the classification result is whether the human head does not rotate or rotates; wherein the preset classification model is used to perform binary classification on the time series data.
8. The method according to any one of claims 1 to 6, characterized in that: The method further comprises: Determine an initial posture according to multiple frames of initial motion data after the wearable device is worn by the human body; wherein the initial posture is used in a direction determination process at an initial moment, and the multiple frames of motion data corresponding to the initial moment include all or part of the multiple frames of initial motion data, or the multiple frames of motion data corresponding to the initial moment are located after the multiple frames of initial motion data; The initial posture is updated according to the walking direction determined at the initial moment to obtain the forward posture at the initial moment.
9. The method according to any one of claims 1 to 6, characterized in that: The motion data includes acceleration data, and before determining the navigation information according to the walking direction at the current moment, the method further includes: Determine the variation pattern of the acceleration peak value and the acceleration valley value over time according to multiple frames of acceleration data corresponding to multiple acquisition points before the current moment and adjacent to the current moment; Predicting the dynamic step length at the current moment according to the variation pattern of the acceleration peak value and the acceleration valley value over time; Determine the speed at the current moment according to the dynamic step length at the current moment and the time information in the acceleration data; Determine the position of the human body at the current moment according to the dynamic step length at the current moment and the walking direction at the current moment; The determining of navigation information according to the walking direction at the current moment includes: The navigation information is determined according to the current position of the human body, the current speed and the current walking direction.
10. The method according to any one of claims 1 to 6, characterized in that: The motion data refers to motion data in a device coordinate system; the method further includes: Determine the device posture at the current moment in the device coordinate system according to the multiple frames of motion data corresponding to the multiple acquisition points one by one; The device posture is projected into a global coordinate system to obtain the current posture.
11. The method according to any one of claims 2 to 6, characterized in that: The lower limit value of the preset range is greater than 0°; when the wearable device is worn on the neck, waist or leg of a human body, the absolute value of the difference is 0°.
12. A wearable device, characterized in that: The wearable device comprises a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the computer program implements the method according to any one of claims 1 to 11 when executed by the processor.
13. The wearable device according to claim 12, wherein: The wearable device is used to be worn on the head, neck, waist or legs of a human body, and an inertial sensor is provided in the wearable device; The wearable device includes a global satellite navigation chip, or the wearable device is communicatively connected to a terminal device carried by the human body, and the terminal device includes the global satellite navigation chip.
14. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores instructions, which, when executed on a computer, enable the computer to execute the method according to any one of claims 1 to 11.
15. A computer program product comprising instructions, characterized in that When the method is executed on a computer, the computer is enabled to execute the method according to any one of claims 1 to 11.
Citation Information
Patent Citations
Image processing method, image processing device, user equipment, aircraft, and system
CN113728615A
Image acquisition method and electronic equipment
CN115423930A