A positioning method, apparatus, and electronic device based on iBeacon device measurement.
Patent Information
- Application Number
- CN202611072567.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2026-07-20
- Publication Date
- 2026-08-14
AI Technical Summary
[0003]但在实际复杂室内环境的落地应用中,传统定位方案存在固有技术缺陷,严重制约了室内定位与导航的精度及稳定性,具体问题如下:
[0061]第四方面,本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质内存储有计算机程序,计算机程序被处理器执行时,实现第一方面中的任一项所述的方法。
Smart Images

Figure CN122568428A_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the field of computer vision processing technology, and in particular to a positioning method, apparatus, and electronic device based on iBeacon device measurement. Background Technology
[0002] In complex indoor environments such as large shopping malls, general hospitals, and transportation hubs, satellite signals are easily attenuated and fail due to building walls and structural obstructions, making accurate indoor positioning impossible. Therefore, iBeacon-based measurement and positioning technology, with its advantages of low deployment cost, flexible deployment, and low power consumption, has become the mainstream technology solution for indoor positioning and navigation and is widely used in various complex indoor environments for location perception, path navigation, and personnel and equipment tracking.
[0003] However, in practical applications in complex indoor environments, traditional positioning solutions have inherent technical flaws that severely restrict the accuracy and stability of indoor positioning and navigation. Specific problems are as follows:
[0004] First, existing signal attenuation path loss models often use fixed empirical parameters for the path loss index, resulting in extremely poor parameter adaptability. They fail to consider dynamic interference factors in complex indoor environments, easily leading to positioning result deviations and significantly reducing indoor positioning accuracy. Second, indoor wireless signal propagation is susceptible to multipath effects and environmental spurious interference, causing frequent flickering and drastic fluctuations in the Received Signal Strength Indicator (RSSI) signal. This results in irregular and abrupt changes in real-time positioning coordinates, causing severe positioning jumps and extremely poor continuity of the positioning trajectory. Summary of the Invention
[0005] This application provides a positioning method, apparatus, and electronic device based on iBeacon device measurements. By utilizing each distance information and each RSSI value calculated in real time, a dynamic local path loss index is obtained. Then, the overlapping area of each iBeacon device is calculated according to the dynamic local path loss index, thereby achieving accurate positioning of the user.
[0006] In a first aspect, embodiments of this application provide a positioning method based on iBeacon device measurements, comprising:
[0007] Determine the location information of each iBeacon device in the target environment;
[0008] When a user is detected to be in motion in the target environment, for each iBeacon device, the distance information between the user and the iBeacon device is determined using the location information of the iBeacon device, and the received signal strength index (RSSI) value of the user is determined.
[0009] Based on each distance information and each RSSI value, determine the local path loss index;
[0010] If the number of iBeacon devices meets the preset threshold, then the reference distance information corresponding to each iBeacon device is determined according to the reference RSSI value and the local path loss index.
[0011] Based on the reference distance and location information of each iBeacon device, the overlapping area within the designated area of each iBeacon device is determined.
[0012] The user's location information in the target environment is determined based on the overlapping area and the weight value of each iBeacon device; the weight value is calculated based on the RSSI value of the iBeacon device.
[0013] Compared to existing technologies, this application first determines the location information of each iBeacon device in the target environment. Then, it uses the distance information and RSSI value determined by the location information of each iBeacon device to calculate the local path loss index, thereby achieving dynamic positioning of the user based on the dynamic local path loss index, taking into account real-time environmental changes such as pedestrian density and door obstruction. Simultaneously, by accurately determining the overlapping areas within the designated areas of each iBeacon device, this application avoids problems such as abrupt changes in positioning points caused by signal flicker, enabling accurate positioning of the user in the target environment.
[0014] As an optional implementation, the method further includes:
[0015] If the number of iBeacon devices is less than the preset threshold number, then the user's displacement vector is determined;
[0016] The user's direction of movement is determined based on the user's displacement vector and the specified path in the map where the target environment is located;
[0017] Dead reckoning is performed based on the user's displacement vector, and the user's position information in the target environment is determined using the dead reckoning results and the user's direction of motion.
[0018] This application addresses the issue of insufficient iBeacon devices (e.g., 3 devices) in a given scenario. It first determines the user's displacement vector, then their direction of movement, and uses dead reckoning based on the displacement vector and direction of movement to accurately pinpoint the user's location within the target environment. This approach also avoids inaccurate user positioning caused by navigation blind spots due to an insufficient number of iBeacon devices.
[0019] As an optional implementation, determining the local path loss index based on each distance information and each RSSI value includes:
[0020] Using the user's initial location information and initial local path loss index as state vectors, construct differential observation equations for each distance information and each RSSI value;
[0021] The local path loss index is determined based on the differential observation equation.
[0022] This application constructs a differential observation equation by setting a state vector, and uses the differential observation equation to calculate the local path loss index in real time, thereby obtaining a dynamically changing local path loss index. In turn, the user can be located according to the dynamically changing local path loss index, solving the problem of inaccurate distance calculation caused by changes in the real-time environment.
[0023] As an optional implementation, the reference distance information for each iBeacon device is determined using the following formula:
[0024]
[0025] Where A represents the reference RSSI value, This represents the local path loss index. This represents the RSSI value of the j-th iBeacon device.
[0026] This application can accurately determine the reference distance information of each iBeacon device by setting a reference RSSI value and calculating the dynamically changing local path loss index.
[0027] As an optional implementation, determining the overlapping area within a specified area of each iBeacon device based on the reference distance information and location information corresponding to each iBeacon device includes:
[0028] For each iBeacon device, a circular region is defined with the location information as the center and the reference distance information as the radius;
[0029] The overlapping area of each circular region is defined as the overlapping region.
[0030] This application sets up circular areas according to determined location information and reference distance information, and obtains overlapping areas based on the overlapping areas of each circular area. In the overlapping areas, the user can be further accurately located.
[0031] As an optional implementation, the user's location information in the target environment is determined using the following formula:
[0032]
[0033]
[0034] in, Let m represent the set of each vertex m of the overlapping region. This represents the geometric mean weight value of the first and second circular regions corresponding to the vertex. This represents the weight value of the first circular region. This represents the weight value of the second circular region.
[0035] This application can accurately calculate the user's position information in the target environment by setting the weight value corresponding to each vertex in the overlapping region according to the formula.
[0036] Secondly, embodiments of this application provide a positioning device based on iBeacon device measurements, the device comprising:
[0037] The location information confirmation module is used to determine the location information of each iBeacon device in the target environment.
[0038] The data calculation module is used to determine the distance information between the user and the iBeacon device and the received signal strength index (RSSI) value of the user when the user is in motion in the target environment, using the location information of the iBeacon device for each iBeacon device.
[0039] The local path loss index confirmation module is used to determine the local path loss index based on each distance information and each RSSI value.
[0040] The reference distance information confirmation module is used to determine the reference distance information corresponding to each iBeacon device based on the reference RSSI value and the local path loss index if the number of iBeacon devices meets the preset threshold number.
[0041] The overlapping area confirmation module is used to determine the overlapping area within the specified area of each iBeacon device based on the reference distance information and location information corresponding to each iBeacon device.
[0042] The location confirmation module is used to determine the user's location information in the target environment based on the overlapping area and the weight value of each iBeacon device; the weight value is calculated based on the RSSI value of the iBeacon device.
[0043] As an optional implementation, the device further includes:
[0044] If the number of iBeacon devices is less than the preset threshold number, then the user's displacement vector is determined;
[0045] The user's direction of movement is determined based on the user's displacement vector and the specified path in the map where the target environment is located;
[0046] Dead reckoning is performed based on the user's displacement vector, and the user's position information in the target environment is determined using the dead reckoning results and the user's direction of motion.
[0047] As an optional implementation, the local path loss index confirmation module is specifically used for:
[0048] Using the user's initial location information and initial local path loss index as state vectors, construct differential observation equations for each distance information and each RSSI value;
[0049] The local path loss index is determined based on the differential observation equation.
[0050] As an optional implementation, the reference distance information for each iBeacon device is determined using the following formula:
[0051]
[0052] Where A represents the reference RSSI value, This represents the local path loss index. This represents the RSSI value of the j-th iBeacon device.
[0053] As an optional implementation, the overlapping area confirmation module is specifically used for:
[0054] For each iBeacon device, a circular region is defined with the location information as the center and the reference distance information as the radius;
[0055] The overlapping area of each circular region is defined as the overlapping region.
[0056] As an optional implementation, the user's location information in the target environment is determined using the following formula:
[0057]
[0058]
[0059] in, Let m represent the set of each vertex m of the overlapping region. This represents the geometric mean weight value of the first and second circular regions corresponding to the vertex. This represents the weight value of the first circular region. This represents the weight value of the second circular region.
[0060] Thirdly, embodiments of this application provide an electronic device, including 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, it causes the processor to implement the method described in any of the first aspects above.
[0061] Fourthly, embodiments of this application also provide a computer-readable storage medium storing a computer program, which, when executed by a processor, implements the method described in any of the first aspects.
[0062] Fifthly, embodiments of this application also provide a computer program product, including a computer program that is executed by a processor to implement the method as described in any of the first aspects above.
[0063] The technical effects of any of the implementation methods in aspects two through five can be found in the technical effects of the corresponding implementation methods in aspect one, and will not be repeated here. Attached Figure Description
[0064] Figure 1 This application provides an illustration of a positioning method based on iBeacon device measurements, representing an embodiment of this application.
[0065] Figure 2 A schematic flowchart of a positioning method based on iBeacon device measurement provided in this application embodiment;
[0066] Figure 3 This is a schematic diagram of the factor graph model for automatic topology calibration of iBeacon devices provided in an embodiment of this application;
[0067] Figure 4 A schematic diagram of the dynamic local path loss index self-correction process provided in an embodiment of this application;
[0068] Figure 5 This is a schematic diagram of the weighted triangular centroid positioning provided in an embodiment of this application;
[0069] Figure 6a This is a schematic diagram of the initial orientation motion sequence matching process provided in the embodiments of this application;
[0070] Figure 6b This is a schematic diagram of the particle filter derivation process under a single beacon constraint provided in an embodiment of this application;
[0071] Figure 7 A schematic diagram of a positioning device based on iBeacon device measurement is provided for an embodiment of this application;
[0072] Figure 8 This is a schematic diagram of the structure of an electronic device provided in an embodiment of this application. Detailed Implementation
[0073] To make the objectives, technical solutions, and advantages of the embodiments of this application clearer, the technical solutions of the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings.
[0074] It should be noted that the terms "first," "second," etc., used in the specification, claims, and accompanying drawings of this application are used to distinguish similar objects and are not necessarily used to describe a specific order or sequence. It should be understood that such data used can be interchanged where appropriate so that the embodiments of this application described herein can be implemented in orders other than those illustrated or described herein. The embodiments described in the following exemplary embodiments do not represent all embodiments consistent with this application. Rather, they are merely examples of apparatuses and methods consistent with some aspects of this application as detailed in the appended claims.
[0075] In complex indoor environments such as large shopping malls, general hospitals, and transportation hubs, satellite signals are easily attenuated and fail due to building walls and structural obstructions, making accurate indoor positioning impossible. Therefore, iBeacon-based measurement and positioning technology, with its advantages of low deployment cost, flexible deployment, and low power consumption, has become the mainstream technology solution for indoor positioning and navigation and is widely used in various complex indoor environments for location perception, path navigation, and personnel and equipment tracking.
[0076] However, in practical applications in complex indoor environments, traditional positioning solutions have inherent technical flaws that severely restrict the accuracy and stability of indoor positioning and navigation. Specific problems are as follows:
[0077] First, existing signal attenuation path loss models often use fixed empirical parameters for the path loss index, resulting in extremely poor parameter adaptability. They fail to consider dynamic interference factors in complex indoor environments, easily leading to positioning result deviations and significantly reducing indoor positioning accuracy. Second, indoor wireless signal propagation is susceptible to multipath effects and environmental spurious interference, causing frequent flickering and drastic fluctuations in the Received Signal Strength Indicator (RSSI) signal. This results in irregular and abrupt changes in real-time positioning coordinates, causing severe positioning jumps and extremely poor continuity of the positioning trajectory.
[0078] To address this, this application provides a positioning method, apparatus, and electronic device based on iBeacon device measurements. First, the location information corresponding to each iBeacon device in the target environment is determined. Then, the distance information and RSSI value determined from the location information of each iBeacon device are used to calculate the local path loss index. This allows for dynamic positioning of the user based on a dynamic local path loss index, taking into account real-time environmental changes such as pedestrian density and door obstruction. Furthermore, by accurately determining the overlapping areas within the designated areas of each iBeacon device, this application avoids problems such as signal flicker causing abrupt changes in positioning points, thus enabling accurate positioning of the user in the target environment.
[0079] After introducing the design concept of the embodiments of this application, the following is a brief introduction to the application scenarios to which the technical solutions of the embodiments of this application can be applied. It should be noted that the application scenarios described below are only for illustrating the embodiments of this application and are not intended to limit the scope. In specific implementation, the technical solutions provided by the embodiments of this application can be flexibly applied according to actual needs.
[0080] refer to Figure 1This diagram illustrates an application scenario for the positioning method based on iBeacon device measurement provided in this application. The application scenario includes multiple terminal devices 101 (including terminal device 101-1, terminal device 101-2, ..., terminal device 101-n) and a server 102. The terminal devices 101 and server 102 are connected via a wireless or wired network. The terminal devices 101 include, but are not limited to, desktop computers, mobile phones, mobile computers, tablets, media players, smart wearable devices, smart TVs, and other electronic devices. The server 102 can be a single server, a server cluster consisting of several servers, or a cloud computing center. The server 102 can be an independent physical server, a server cluster consisting of multiple physical servers, or a distributed system. It can also be a cloud server providing basic cloud computing services such as cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communication, middleware services, domain name services, security services, CDN, and big data and artificial intelligence platforms.
[0081] For example, terminal device 101-1 first determines the location information of each iBeacon device in the target environment; then, when it detects that the user is in motion in the target environment, it uses the location information of each iBeacon device to determine the distance information between the user and the iBeacon device, and to determine the user's Received Signal Strength Indicator (RSSI) value; based on each distance information and each RSSI value, it determines the local path loss index; if the number of iBeacon devices meets a preset threshold, it determines the reference distance information corresponding to each iBeacon device according to the reference RSSI value and the local path loss index; based on the reference distance information and location information corresponding to each iBeacon device, it determines the overlapping area within the designated area of each iBeacon device; and based on the overlapping area and the weight value of each iBeacon device, it determines the user's location information in the target environment, and finally displays the user's location information on terminal device 101-1.
[0082] Here, the terminal device 101-1 can also send each distance information and each RSSI value to the server 102, and use the server 102 to determine the local path loss index. This is just an example, and this application does not limit the specific processing methods of the terminal device 101-1 and the server 102.
[0083] Of course, the methods provided in the embodiments of this application are not limited to... Figure 1 The application scenarios shown can also be used in other possible scenarios, and this application does not impose any limitations. Figure 1The functions that each device in the application scenario shown can achieve will be described in subsequent method embodiments, and will not be elaborated on here.
[0084] To further illustrate the technical solutions provided in the embodiments of this application, a detailed description is provided below in conjunction with the accompanying drawings and specific implementation methods. Although the embodiments of this application provide method operation steps as shown in the following embodiments or drawings, the method may include more or fewer operation steps based on conventional or non-inventive methods. In steps where there is no logically necessary causal relationship, the execution order of these steps is not limited to the execution order provided in the embodiments of this application.
[0085] The following is combined with Figure 1 The application scenarios shown are as follows: Figure 2 As shown, a positioning method based on iBeacon device measurement provided in this application embodiment will be described in detail, specifically including the following steps:
[0086] S201, determine the location information corresponding to each iBeacon device in the target environment.
[0087] Here, the target environment can be indoors, such as complex indoor environments like large shopping malls or hospitals. After the deployment personnel have installed all the iBeacon devices, the user walks along the target number of start-to-end paths once using a handheld terminal device. The terminal device can be equipped with devices such as accelerometers, gyroscopes, inertial sensors, and Bluetooth modules. The terminal device can then record the data collected by the inertial sensors at each step (which can be used for Pedestrian Dead Reckoning (PDR) pose recursion) and the RSSI sequence values of all iBeacon devices scanned by the Bluetooth module. The terminal device sends this data to a cloud server, where a graph optimization framework is used to solve for the location information of all iBeacon devices in one go.
[0088] For example, such as Figure 3 As shown, the graph optimization framework uses the pose nodes of the terminal device at discrete times k=1,…,N. Location information of all iBeacon devices (j=1,…,M) are used as variables. The objective function to be minimized consists of the following three types of error edges:
[0089]
[0090] Among them, error one: odometer side error The relative pose of the terminal device at consecutive time points is consistent with the PDR measurement values:
[0091]
[0092] and, This represents the position difference calculation. It is the relative transformation matrix consisting of step size and heading.
[0093] Error 2: RSSI side error The distance from the constraint terminal device to the iBeacon device is consistent with the distance converted by RSSI:
[0094]
[0095] and, = , This indicates the approximate position at step k, where A represents the reference RSSI value. This represents the local path loss index. This represents the RSSI value of the j-th iBeacon device. The calculation method will be explained in detail later, and will not be repeated here.
[0096] Error 3: Path constraint edge error To force the user's trajectory to fall on the centerline of a known path, the value is usually taken as the lateral offset distance, with an ideal value of 0.
[0097] The odometer side information matrix is determined by the inverse of the covariance matrix of the step size estimate and the heading angle gyroscope integral in the PDR. The weight of the constraint "relative pose change of PDR between two adjacent steps" in the optimization can be determined. If the step size model is more accurate and the gyroscope drift is smaller, then... The larger the value, the more trust is placed in the odometer constraint during the optimization process. The RSSI side information matrix is determined by the inverse of the RSSI ranging variance. The weight of the constraint "the distance from the terminal device to the iBeacon device is consistent with the distance of RSSI conversion" can be determined in the optimization. The more stable the RSSI signal, the better. The larger the value, the more the RSSI ranging is trusted during the optimization process. The path constraint edge information matrix, determined by the inverse of the lateral offset variance, is used to strengthen the constraint that forces the user to walk along the path centerline. Ideally, the offset value is 0; in practical applications, the reciprocal of the square of half the road width can be selected.
[0098] Then, by iteratively solving the nonlinear least squares problem using the Gauss-Newton method or the Levenberg-Marquardt algorithm, high-precision 3D coordinates of all iBeacon devices can be obtained. This method completely eliminates the need for manual measurement, greatly improving deployment efficiency and coordinate accuracy.
[0099] After determining the location information of each iBeacon device, proceed to step S202. When the user is detected to be in motion in the target environment, for each iBeacon device, use the location information of the iBeacon device to determine the distance information between the user and the iBeacon device, and determine the user's Received Signal Strength Indicator (RSSI) value; then proceed to step S203, determine the Local Path Loss Index based on each distance information and each RSSI value; and then proceed to step S204, if the number of iBeacon devices meets the preset threshold number, determine the reference distance information corresponding to each iBeacon device according to the reference RSSI value and the Local Path Loss Index.
[0100] Optionally, the user's initial location information and initial local path loss index are used as state vectors to construct differential observation equations for each distance information and each RSSI value; then, the local path loss index is determined based on the differential observation equations.
[0101] For example, such as Figure 4 As shown, during the user's walking in the target environment, the terminal position change vectors of adjacent steps k and k+1 are adopted. This indicates the step size of the displacement vector. The heading angle variation can be estimated from acceleration characteristics (such as peak-to-valley difference, step frequency, etc.) using a conventional step size model. Obtained by gyroscope integration, that is:
[0102]
[0103] Assuming the user's location at step k can be determined based on historical location data. The location information of the i-th iBeacon device is obtained by using This indicates that the distance information from the user to the iBeacon device is:
[0104]
[0105]
[0106] Within two adjacent steps, the data can be considered approximately constant. The difference between two RSSI observations from the iBeacon device is:
[0107]
[0108] The above equation correlates the unknown *n* with the known step size, heading, and RSSI changes. For reliable estimation of *n*, observation equations can be established simultaneously for multiple iBeacon devices (at least two) over M consecutive steps. Define the state vector to be estimated:
[0109]
[0110] in, This represents the user's starting point location while walking. By using extended Kalman filtering or iterative least squares methods, combined with the ΔRSSI and displacement constraints of all iBeacon devices, the optimal value of n and the corrected trajectory can be solved online.
[0111] Specifically, it includes the following steps:
[0112] A1, continuous walking was detected, and the step length of each step was recorded. ,course Simultaneously record the RSSI values of each beacon scanned at each step. ;
[0113] A2, starting position Given n as the initial state, construct the displacement prediction and RSSI differential observation equations;
[0114] A3, processed according to the extended Kalman filter prediction-update loop, outputs the converged result. ;
[0115] A4, based on the positioning solution. Convert RSSI to reference distance information:
[0116]
[0117] Where A represents the reference RSSI value, This represents the local path loss index. This represents the RSSI value of the j-th iBeacon device.
[0118] This application utilizes walking as a "natural benchmark" to estimate the real-time path loss index of the local environment online, solving the problem of inaccurate distance calculation. It only requires walking along a known start and end point path to collect signals, and then using graph optimization to solve for the coordinates of all beacons, eliminating the need for manual point-by-point measurements.
[0119] After determining the reference distance information for each iBeacon device, step S205 is executed to determine the overlapping area within the designated area of each iBeacon device based on the reference distance information and location information of each iBeacon device; and step S206 is executed to determine the user's location information in the target environment based on the overlapping area and the weight value of each iBeacon device; the weight value is calculated based on the RSSI value of the iBeacon device.
[0120] In one embodiment of this application, the RSSI historical value of the most recent W seconds is taken, and the variance is calculated. The weight values are then determined using the following formula:
[0121]
[0122] Here, the smaller the variance, the more stable the signal, and the greater the weight.
[0123] Optionally, for each iBeacon device, a circular region is defined with the location information as the center and the reference distance information as the radius; then, the overlapping area of each circular region is defined as the overlapping region.
[0124] For example, such as Figure 5 As shown, assuming there are 3 iBeacon devices in the target environment, then the three circular areas... , , (center) ,radius Finding the intersection points pairwise yields a maximum of 6 intersection points. In practical applications, points that are clearly not within the third circle (considering a tolerance ϵ, such as 2 meters) need to be removed, retaining only the set of vertices that form the boundary of the overlapping polygon region. Each vertex From circle and The intersection yields a combined weight that is the geometric mean of the weights of the two relevant beacons:
[0125]
[0126] Ultimately, the user's location information in the target environment. The weighted centroids of these vertices:
[0127]
[0128] in, Let m represent the set of each vertex m of the overlapping region. This represents the geometric mean weight value of the first and second circular regions corresponding to the vertex. This represents the weight value of the first circular region. This represents the weight value of the second circular region.
[0129] In each positioning calculation, the above process is repeated to output smooth coordinates. This algorithm avoids the problem of positioning points jumping due to instantaneous changes in a beacon signal. Furthermore, it introduces beacon stability weights to calculate the weighted centroid of overlapping regions, eliminating single-point signal jumps and outputting smooth positions.
[0130] In one embodiment of this application, if the number of iBeacon devices is less than a preset threshold, the user's displacement vector is first determined, and then the user's movement direction is determined based on the user's displacement vector and a specified path in the map where the target environment is located. Then, dead reckoning is performed based on the user's displacement vector, and the user's position information in the target environment is determined using the dead reckoning result and the user's movement direction.
[0131] For example, such as Figure 6a and Figure 6b As shown, when a user first turns on navigation, the electronic compass is susceptible to interference and its direction is unreliable. It can guide the user along a currently visible straight path for 2-3 meters. The terminal device records the acceleration and gyroscope data during this period, and obtains the two-dimensional displacement vector in the device coordinate system through integration. Simultaneously, the direction unit vectors of all nearby feasible paths are extracted from the indoor map. Then solve for the optimal rotation angle. This causes the rotated displacement vector to move along the map path direction:
[0132]
[0133] in, It is a two-dimensional rotation matrix. This uniquely determines the user's true orientation and locks the position onto the center line of the map corridor, achieving highly reliable orientation.
[0134] When a user enters a sparse beacon area (number of beacons that can be received < 3), such as Figure 6b As shown, the system automatically switches to particle filter inference mode, and the process is as follows:
[0135] State definition: The state vector is taken as... .
[0136] State transition: using step size and gyroscope heading change Perform dead reckoning:
[0137]
[0138] Appropriate Gaussian noise is added to each particle to simulate the uncertainty in step size and heading estimation.
[0139] Observation update: Assuming only beacons can be received at present. Its distance observation is The predicted distance is:
[0140]
[0141] Particle weights are updated based on the Gaussian observation model:
[0142]
[0143] in, The ranging noise variance can be set according to the RSSI fluctuation level.
[0144] Resampling and State Output: Calculating the Effective Number of Particles When the value is less than a threshold (e.g., N / 2), system resampling is performed. The current position is estimated using a weighted average.
[0145]
[0146] This result is used as a continuous positioning output until more than 3 beacons are detected again, at which point the process switches back to step S204.
[0147] If no beacons are received, dead reckoning is used to calculate the distance until the signal is restored. If two beacons are received, the particle distribution range can be further narrowed down by using the intersection of the two circles or the distance difference constraint.
[0148] This application achieves initial orientation through motion sequence matching. When there are insufficient beacons, dead reckoning and single / double beacon distance observations are fused through a filter to ensure continuous positioning.
[0149] In densely populated and heavily obstructed environments, positioning drift is significantly reduced; compared with manual calibration methods, deployment efficiency is greatly improved, achieving rapid, high-precision, and low-cost coverage of indoor positioning systems.
[0150] like Figure 7 As shown, this application embodiment provides a positioning device 700 based on iBeacon device measurement, the device comprising:
[0151] The location information confirmation module 701 is used to determine the location information corresponding to each iBeacon device in the target environment.
[0152] The data calculation module 702 is used to determine the distance information between the user and the iBeacon device and the received signal strength index (RSSI) value of the user when the user is detected to be in motion in the target environment, using the location information of the iBeacon device for each iBeacon device.
[0153] The local path loss index confirmation module 703 is used to determine the local path loss index based on each distance information and each RSSI value;
[0154] The reference distance information confirmation module 704 is used to determine the reference distance information corresponding to each iBeacon device based on the reference RSSI value and the local path loss index if the number of iBeacon devices meets the preset threshold number.
[0155] The overlapping area confirmation module 705 is used to determine the overlapping area within the specified area of each iBeacon device based on the reference distance information and location information corresponding to each iBeacon device.
[0156] The location confirmation module 706 is used to determine the user's location information in the target environment based on the overlapping area and the weight value of each iBeacon device; the weight value is calculated based on the RSSI value of the iBeacon device.
[0157] As an optional implementation, the apparatus further includes:
[0158] If the number of iBeacon devices is less than a preset threshold, then the user's displacement vector is determined;
[0159] Determine the user's direction of movement based on the user's displacement vector and the specified path in the map where the target environment is located;
[0160] Dead reckoning is performed based on the user's displacement vector, and the user's position information in the target environment is determined using the dead reckoning results and the user's direction of motion.
[0161] As an optional implementation, the local path loss index confirmation module 703 is specifically used for:
[0162] Using the user's initial location information and initial local path loss index as the state vector, a differential observation equation is constructed for each distance information and each RSSI value;
[0163] The local path loss index is determined based on the differential observation equation.
[0164] As an optional implementation, the reference distance information for each iBeacon device is determined using the following formula:
[0165]
[0166] Where A represents the reference RSSI value, This represents the local path loss index. This represents the RSSI value of the j-th iBeacon device.
[0167] As an optional implementation, the overlapping area confirmation module 705 is specifically used for:
[0168] For each iBeacon device, a circular region is defined with the location information as the center and the reference distance information as the radius.
[0169] The overlapping areas of the various circular regions are defined as the intersecting areas.
[0170] As an optional implementation, the user's location information in the target environment is determined using the following formula:
[0171]
[0172]
[0173] in, Let m represent the set of each vertex m of the overlapping region. This represents the geometric mean weight value of the first and second circular regions corresponding to the vertex. This represents the weight value of the first circular region. This represents the weight value of the second circular region.
[0174] Having introduced the positioning method and apparatus based on iBeacon device measurement according to exemplary embodiments of this application, we will now introduce an electronic device according to another exemplary embodiment of this application.
[0175] Those skilled in the art will understand that various aspects of this application can be implemented as a system, method, or program product. Therefore, various aspects of this application can be specifically implemented in the following forms: a completely hardware implementation, a completely software implementation (including firmware, microcode, etc.), or a combination of hardware and software implementations, collectively referred to herein as a "circuit," "module," or "system."
[0176] In some possible implementations, the electronic device according to this application may include at least one processor and at least one memory. The memory stores program code that, when executed by the processor, causes the processor to perform the steps in the positioning method based on iBeacon device measurements according to various exemplary embodiments of this application described above. For example, the processor may perform steps in a positioning method based on iBeacon device measurements.
[0177] The following reference Figure 8 To describe an electronic device 80 according to this embodiment of the present application. Figure 8 The electronic device 80 shown is merely an example and should not impose any limitations on the functionality and scope of use of the embodiments of this application.
[0178] like Figure 8 As shown, the electronic device 80 is presented in the form of a general-purpose electronic device. The components of the electronic device 80 may include, but are not limited to: at least one processor 81, at least one memory 82, and a bus 83 connecting different system components (including memory 82 and processor 81).
[0179] Bus 83 represents one or more of several bus structures, including a memory bus or memory controller, peripheral bus, processor, or a local bus using any of the various bus structures.
[0180] The memory 82 may include a readable medium in the form of volatile memory, such as random access memory (RAM) 821 and / or cache memory 822, and may further include read-only memory (ROM) 823.
[0181] The memory 82 may also include a program / utility 825 having a set (at least one) of program modules 824, including but not limited to: an operating system, one or more application programs, other program modules, and program data, each or some combination of these examples may include an implementation of a network environment.
[0182] Electronic device 80 can also communicate with one or more external devices 84 (e.g., keyboard, pointing device, etc.), and with one or more devices that enable a user to interact with electronic device 80, and / or with any device that enables electronic device 80 to communicate with one or more other electronic devices (e.g., router, modem, etc.). This communication can be performed via input / output (I / O) interface 85. Furthermore, electronic device 80 can also communicate with one or more networks (e.g., local area network (LAN), wide area network (WAN), and / or public networks, such as the Internet) via network adapter 86. As shown, network adapter 86 communicates with other modules used in electronic device 80 via bus 83. It should be understood that, although not shown in the figures, other hardware and / or software modules can be used in conjunction with electronic device 80, including but not limited to: microcode, device drivers, redundant processors, external disk drive arrays, RAID systems, tape drives, and data backup storage systems.
[0183] In an exemplary embodiment, a computer-readable storage medium including instructions is also provided, such as a memory 82 including instructions that can be executed by a processor 81 to perform the above-described method. Optionally, the computer-readable storage medium may be a ROM, random access memory (RAM), CD-ROM, magnetic tape, floppy disk, and optical data storage device, etc.
[0184] In an exemplary embodiment, a computer program product is also provided, including a computer program / instructions that, when executed by a processor 81, implement any of the positioning methods based on iBeacon device measurements provided in this application.
[0185] In an exemplary embodiment, various aspects of the positioning method based on iBeacon device measurement provided in this application can also be implemented in the form of a program product, which includes program code. When the program product is run on a computer device, the program code is used to cause the computer device to perform the steps in the positioning method based on iBeacon device measurement according to the various exemplary embodiments of this application described above.
[0186] The program product may employ any combination of one or more readable media. A readable medium may be a readable signal medium or a readable storage medium. A readable storage medium may be, for example—but not limited to—an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any combination thereof. More specific examples of readable storage media (a non-exhaustive list) include: an electrical connection having one or more wires, a portable disk, a hard disk, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fiber, portable compact disk read-only memory (CD-ROM), optical storage devices, magnetic storage devices, or any suitable combination thereof.
[0187] The program product for image scaling according to the embodiments of this application can be a portable compact disc read-only memory (CD-ROM) and include program code, and can run on an electronic device. However, the program product of this application is not limited thereto. In this document, the readable storage medium can be any tangible medium that contains or stores a program that can be used by or in conjunction with an instruction execution system, apparatus, or device.
[0188] A readable signal medium may include a data signal propagated in baseband or as part of a carrier wave, carrying readable program code. This propagated data signal may take many forms, including—but not limited to—electromagnetic signals, optical signals, or any suitable combination thereof. A readable signal medium may also be any readable medium other than a readable storage medium, capable of sending, propagating, or transmitting a program for use by or in conjunction with an instruction execution system, apparatus, or device.
[0189] The program code contained on the readable medium may be transmitted using any suitable medium, including—but not limited to—wireless, wired, fiber optic, RF, etc., or any suitable combination thereof.
[0190] Program code for performing the operations of this application can be written in any combination of one or more programming languages, including object-oriented programming languages such as Java and C++, and conventional procedural programming languages such as C or similar languages. The program code can execute entirely on the user's electronic device, partially on the user's device, as a standalone software package, partially on the user's electronic device and partially on a remote electronic device, or entirely on a remote electronic device or server. In cases involving remote electronic devices, the remote electronic device can be connected to the user's electronic device via any type of network—including a local area network (LAN) or a wide area network (WAN)—or can be connected to an external electronic device (e.g., via the Internet using an Internet service provider).
[0191] It should be noted that although several units or sub-units of the device have been mentioned in the detailed description above, this division is merely exemplary and not mandatory. In fact, according to embodiments of this application, the features and functions of two or more units described above can be embodied in one unit. Conversely, the features and functions of one unit described above can be further divided and embodied by multiple units.
[0192] Furthermore, although the operations of the method of this application are described in a specific order in the accompanying drawings, this does not require or imply that these operations must be performed in that specific order, or that all the operations shown must be performed to achieve the desired result. Additionally or alternatively, certain steps may be omitted, multiple steps may be combined into one step, and / or one step may be broken down into multiple steps.
[0193] Those skilled in the art will understand that embodiments of this application can be provided as methods, systems, or computer program products. Therefore, this application can take the form of a completely hardware embodiment, a completely software embodiment, or an embodiment combining software and hardware aspects. Furthermore, this application can take the form of a computer program product embodied on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code.
[0194] This application is described with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of this application. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, special-purpose computer, embedded processor, or other programmable image scaling device to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable image scaling device, generate instructions for implementing the flowchart... Figure 1 One or more processes and / or boxes Figure 1 A device that provides the functions specified in one or more boxes.
[0195] These computer program instructions may also be stored in a computer-readable storage medium that can direct a computer or other programmable image scaling device to function in a particular manner, such that the instructions stored in the computer-readable storage medium produce an article of manufacture including instruction means, which are implemented in a process Figure 1 One or more processes and / or boxes Figure 1 The function specified in one or more boxes.
[0196] These computer program instructions can also be loaded onto a computer or other programmable image scaling device, causing a series of operational steps to be performed on the computer or other programmable device to produce a computer-implemented process, thereby providing instructions that execute on the computer or other programmable device for implementing the process. Figure 1 One or more processes and / or boxes Figure 1 The steps of the function specified in one or more boxes.
[0197] Although preferred embodiments of this application have been described, those skilled in the art, upon learning the basic inventive concept, can make other changes and modifications to these embodiments. Therefore, the appended claims are intended to be interpreted as including the preferred embodiments as well as all changes and modifications falling within the scope of this application.
[0198] Obviously, those skilled in the art can make various modifications and variations to this application without departing from the spirit and scope of this application. Therefore, if such modifications and variations fall within the scope of the claims of this application and their equivalents, this application also intends to include such modifications and variations.
Claims
1. A positioning method based on iBeacon device measurement, characterized in that, The method includes: Determine the location information of each iBeacon device in the target environment; When a user is detected to be in motion in the target environment, for each iBeacon device, the distance information between the user and the iBeacon device is determined using the location information of the iBeacon device, and the received signal strength index (RSSI) value of the user is determined. Based on each distance information and each RSSI value, determine the local path loss index; If the number of iBeacon devices meets the preset threshold, then the reference distance information corresponding to each iBeacon device is determined according to the reference RSSI value and the local path loss index. Based on the reference distance and location information of each iBeacon device, the overlapping area within the designated area of each iBeacon device is determined. The user's location information in the target environment is determined based on the overlapping area and the weight value of each iBeacon device; the weight value is calculated based on the RSSI value of the iBeacon device.
2. The method according to claim 1, characterized in that, The method further includes: If the number of iBeacon devices is less than the preset threshold number, then the user's displacement vector is determined; The user's direction of movement is determined based on the user's displacement vector and the specified path in the map where the target environment is located; Dead reckoning is performed based on the user's displacement vector, and the user's position information in the target environment is determined using the dead reckoning results and the user's direction of motion.
3. The method according to claim 1, characterized in that, The determination of the local path loss index based on each distance information and each RSSI value includes: Using the user's initial location information and initial local path loss index as state vectors, construct differential observation equations for each distance information and each RSSI value; The local path loss index is determined based on the differential observation equation.
4. The method according to claim 1, characterized in that, The reference distance information for each iBeacon device is determined using the following formula: ; Where A represents the reference RSSI value, This represents the local path loss index. This represents the RSSI value of the j-th iBeacon device.
5. The method according to claim 1, characterized in that, The step of determining the overlapping area within a specified area of each iBeacon device based on the reference distance information and location information corresponding to each iBeacon device includes: For each iBeacon device, a circular region is defined with the location information as the center and the reference distance information as the radius; The overlapping area of each circular region is defined as the overlapping region.
6. The method according to claim 5, characterized in that, The user's location information in the target environment is determined using the following formula: ; in, Let m represent the set of each vertex m of the overlapping region. This represents the geometric mean weight value of the first and second circular regions corresponding to the vertex. This represents the weight value of the first circular region. This represents the weight value of the second circular region.
7. A positioning device based on iBeacon device measurement, characterized in that, The device includes: The location information confirmation module is used to determine the location information of each iBeacon device in the target environment. The data calculation module is used to determine the distance information between the user and the iBeacon device and the received signal strength index (RSSI) value of the user when the user is in motion in the target environment, using the location information of the iBeacon device for each iBeacon device. The local path loss index confirmation module is used to determine the local path loss index based on each distance information and each RSSI value. The reference distance information confirmation module is used to determine the reference distance information corresponding to each iBeacon device based on the reference RSSI value and the local path loss index if the number of iBeacon devices meets the preset threshold number. The overlapping area confirmation module is used to determine the overlapping area within the specified area of each iBeacon device based on the reference distance information and location information corresponding to each iBeacon device. The location confirmation module is used to determine the user's location information in the target environment based on the overlapping area and the weight value of each iBeacon device; the weight value is calculated based on the RSSI value of the iBeacon device.
8. The apparatus according to claim 7, characterized in that, The device further includes: If the number of iBeacon devices is less than the preset threshold number, then the user's displacement vector is determined; The user's direction of movement is determined based on the user's displacement vector and the specified path in the map where the target environment is located; Dead reckoning is performed based on the user's displacement vector, and the user's position information in the target environment is determined using the dead reckoning results and the user's direction of motion.
9. The apparatus according to claim 7, characterized in that, The local path loss index confirmation module is specifically used for: Using the user's initial location information and initial local path loss index as state vectors, construct differential observation equations for each distance information and each RSSI value; The local path loss index is determined based on the differential observation equation.
10. An electronic device, comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, characterized in that, When the processor executes the computer program, it implements the method as described in any one of claims 1-6.