Method for determining information related to a change of reference frame; program, information medium and system for implementing the method
Patent Information
- Application Number
- FR2023001864
- Authority / Receiving Office
- FR · FR
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2023-02-28
- Publication Date
- 2025-02-21
- Estimated Expiration
- 2043-02-28
Smart Images

Figure 00000027_0000 
Figure 00000027_0001 
Figure 00000028_0000
Abstract
Description
Title of the invention: Method for determining information relating to a change of reference point; program, information medium and system for implementing the method TECHNICAL FIELD OF THE INVENTION
[0001] The field of the invention is that of methods and systems for determining the relative position and / or orientation of a system (robot, machine, connected object, etc.) relative to its environment, in particular from measurements of the magnetic field. The invention has applications in particular for determining the relative position of systems inside buildings, and more generally in any place where positioning by satellites (more precisely, GNSS positioning, i.e. positioning by Geolocation and Navigation by a Satellite System) is not available. STATE OF THE ART
[0002] A large number of methods have been developed to determine the relative position of a system with respect to its environment. Among these methods, methods based on the use of magnetic field measurements are particularly interesting because they require an available and relatively inexpensive sensor, namely a magnetometer, and especially because they can be implemented indoors, when GNSS-type positioning is unlikely or not feasible.
[0003] Generally speaking, determining a relative position from the magnetic field is based on the observation that the magnetic field varies spatially in the volume considered, such as for example inside a building. If the distribution of the magnetic field in this volume is known, it is then theoretically possible to determine the relative position of an object with respect to its environment, by exploiting the information available regarding the distribution of the magnetic field.
[0004] The documents cited in the list of references provided below disclose different methods for determining the position of a fixed reference frame (also called a 'world reference frame') associated with a mobile measuring system relative to a second world reference frame in which a set of measurements is already available.
[0005] However, these methods have multiple limitations or drawbacks.
[0006] Some of them, for example document Ref.l, assume knowing the initial position of the measuring system relative to its environment.
[0007] Another part of these methods, moreover, only allows the position of the measuring system to be determined if it follows substantially the same trajectory as that (or one of those) followed by the measuring systems which carried out the initial measurements of the environment studied.
[0008] Some of these methods cannot be used on a real scale, in an environment of a certain size such as a building with several floors for example.
[0009] There is therefore a need for a method for determining a change of reference frame, making it possible to determine the change of reference frame between a second 'world reference frame' associated with a measurement system and a first world reference frame in which a previously determined set of measurements is already available, a method which can be implemented using simple sensors, indoors, which is robust and which is capable of providing in real time at least a fairly exact approximate value of the change of reference frame sought. List of cited documents
[0010] [1] J. Coulin, R. Guillemard, V. Gay-Bellile, C. Joly, and A. de L. Fortelle, “Tightly-Coupled Magneto-Visuallnertial Fusion for Long Terni Localization in Indoor Environment,” IEEE Robot. Autom. Lett., vol. 7, no. 2, pp. 952-959, Apr.2022, doi: 10.1109 / LRA.2021.3136241
[0011] [2] A. Solin, S. Sarkka, J. Kannala, and E. Rahtu, “Terrain navigation in the magnetic landscape: Particle filtering for indoor positioning,” in 2016 European Navigation Conference (ENC), Helsinki, Finland, May 2016, pp. 1-9. doi: 10.1109 / EURONAV.2016.7530559.
[0012] [3] Patent documents JP5130419, US9683851
[0013] [4] H. Luo, F. Zhao, M. Jiang, H. Ma, and Y. Zhang, “Constructing an Indoor Floor Plan Using Crowdsourcing Based on Magnetic Fingerprinting,” Sensors, vol. 17, no. 11, Art. no. 11, Nov. 2017, doi: 10.3390 / sl7112678.
[0014] [5] A. Basiri et al., “Indoor location based services challenges, requirements and usability of current solutions,” Comput. Sci. Rev., vol. 24, pp. 1-12, May 2017, doi: 10.1016 / j.cosrev.2017.03.002. Statement of the invention
[0015] The present invention aims to remedy all or part of the drawbacks of the state of the art cited above.
[0016] For this purpose, according to the present disclosure the following method is proposed. This method is a computer-implemented method for determining at least one item of information relating to a change of global reference frame from a second reference frame associated with a second set of vectors comprising second vectors to a first reference frame associated with a first set of vectors comprising first vectors, the method comprising the following steps:
[0017] S10) said first and second set of vectors are obtained;
[0018] each vector being representative of a magnetic field in the real world at a position expressed in the reference frame associated with the set of vectors, called the measurement position;
[0019] a first direction being considered as common to the first and second reference points;
[0020] S20) for each second vector, zero, one or a plurality of first vectors, called first associated vector(s), for which a distance between a representation of the second vector and a representation of the first vector considered is less than an association threshold;
[0021] a representation of a vector being a value obtained by applying a representation function to the vector considered and / or to the measurement position associated with the vector considered,
[0022] the representation function being such that the representation of a vector is left invariant by the application to the vector and / or to the associated measurement position of any transformation respecting a set of constraints;
[0023] the information to be estimated relating to the change of global reference being information not fixed by the constraint(s) of the constraint set;
[0024] the constraint set includes at least the constraint that the transformation preserves at least the first invariant direction;
[0025] S30) for each association between a first vector and a second vector, we determines a change of association reference frame respecting the constraint(s) of the constraint set and optimizing an optimization function based on at least: - an alignment deviation between a direction (oriented direction) of a transform of the second vector by the change of association reference frame and a direction (oriented direction) of the first associated vector; and / or - a position difference between a transform of the second measurement position attached to the second vector by the change of association reference frame and the first measurement position attached to the first associated vector,
[0026] S40) groupings are identified among the changes in association reference frame completed at step S30;
[0027] S50) said at least one piece of information relating to the change of reference point is determined global according to the grouping(s) determined in step S40.
[0028] As indicated previously, this method can be implemented either to completely determine the change of global reference frame, or to determine only a part of the characteristics thereof, such as for example a part of the translation components, or even the rotation component around the first direction.
[0029] The implementation of the method requires determining one or more constraints, called transformation constraints, that the global reference frame change must respect. These constraints generally consist of the fact that certain characteristics of the global reference frame change are predetermined; for example, certain degrees of freedom of the global reference frame change can be fixed at predetermined values.
[0030] This or these constraints include at least, for a transformation considered, that the transformation preserves at least the first invariant direction; in other words, the transformation preserves at least any direction vector oriented along the first invariant direction.
[0031] These transformation constraints can also be more restrictive.
[0032] For example, in certain implementation modes the transformation constraints further include that the transformation is the combination of a translation of predetermined value along at least one direction and / or a rotation of rotation angle of predetermined value around the first direction.
[0033] The characteristic(s) of the change of reference that the present method makes it possible to determine is or are conversely one or more characteristics (or information) not fixed by said at least one transformation constraint.
[0034] Each of the first and second frames is a world frame in the sense generally used in robotics. A world frame may in particular be a frame associated with a set of measurements (or values of the magnetic field), referenced relative to a fixed point in the real world and with a fixed orientation relative to this point.
[0035] Advantageously, the method only requires, in order to be implemented, the data relating to the two sets of vectors (namely the values of these and their positions). It does not require knowledge of an initial position of the measurement system or an initial value of the change of global reference frame, nor other measurement data (results of inertial measurements, GNSS, etc.). The method is implemented independently of any order relationship; it does not require that the vectors of one of the sets of vectors have been measured along a certain trajectory (for example, along the same path) relative to the vectors of the other set of vectors.
[0036] However, the method requires that there is some overlap, i.e. a common region, between the measurement positions of the vectors of the first and second set of vectors. This overlap must naturally be as large as possible.
[0037] Furthermore, the method does not use a probabilistic approach, and does not make any reference to a time step, a timeline, or any other form of reference to time.
[0038] In the preceding definition, the reference points associated respectively with the first and second set of vectors are fixed reference points, or 'world reference points', defined in relation to the volume (building, etc.) in which the measurement positions of the set of vectors considered are located.
[0039] Magnetic vectors (also called more simply 'vectors' hereinafter) are vectors whose value represents the standard and the direction (orientation) of the magnetic field at the measurement point.
[0040] In this document, a direction is defined by a straight line associated with a direction along the straight line.
[0041] In this document, the expressions 'change of reference frame' and 'transformation' are used interchangeably.
[0042] The magnetic vectors can be expressed, depending on the implementation methods, in two or three dimensions (2D or 3D). They can be expressed indifferently in Cartesian, polar or other coordinates.
[0043] Each of the first and second sets of vectors can be obtained by any suitable method during step S10 (extraction from a database, etc.). These sets of vectors can for example be obtained by carrying out the following intermediate steps.
[0044] In a first step S12, the first and second sets of vectors are acquired.
[0045] Each set of vectors can be obtained either during a single acquisition operation or iteratively as new measurements become available.
[0046] In the first case, we obtain all the values of the set of vectors in a single operation: for example, we carry out a measurement campaign in a building, and we acquire in one operation all of these measurements to then implement the present method.
[0047] In the second case, the present method is implemented, for example, iteratively. In this case, in step S12 the set of vectors considered can be obtained by adding to the set of vectors obtained during a previous iteration of the method one or more new measurement(s) which have been carried out since the previous iteration and will now be taken into account for the new iteration of the method.
[0048] In this mode of implementation, it is also possible in step S12 to delete the oldest values from the set of vectors, so that in the set of vectors considered the number of vectors retains an adapted value.
[0049] In both cases (iterative implementation or not of the method), in each of the first and second sets of vectors the magnetic vectors can be acquired by measuring systems (such as magnetometers), or else be calculated, for example from a simulation of the magnetic field in the volume considered (and / or for example by interpolation from measured values).
[0050] The first and second reference points have a common direction called the first direction. Any means can be used so that in the first and second sets of vectors, this first direction is suitably taken into account. An accelerometer can for example be used to give the vertical direction, etc.
[0051] The measurement positions can also be acquired using any suitable means, such as an inertial unit, etc.
[0052] In certain embodiments, from step S12 the sets of vectors comprise an appropriate density of vectors (in terms of number of measurement positions per unit of surface area or volume, in the volume considered). For example, in certain cases one and / or the other of the sets of vectors is generated by calculation, with a determined step between the measurement positions of the different vectors. Most often, a constant discretization step over the entire volume considered can be used for the sets of vectors.
[0053] However, in certain cases, a set of vectors may include vectors having at least in certain areas a density of measurement positions that is too high.
[0054] In this case, it may be desirable in a step S14 to sample the set of vectors considered. This operation consists of deleting certain vectors, to ensure that the remaining vectors have measurement positions distributed in a manner suitable for implementing the method. It is particularly desirable during step S14, if two vectors have measurement positions less than a certain threshold value apart, to delete one of the two vectors concerned.
[0055] Finally, in certain implementation modes the discretization step (the distance between the measurement positions of two vectors having neighboring measurement positions) can be variable depending on the position in the volume considered.
[0056] For example, the discretization step may be smaller in areas where the variations in the magnetic field (the magnetic field gradient) are strong. The discretization step may thus be chosen to be smaller in small rooms than in large rooms. Indeed, in practice, the magnetic field varies more in a small room (such as a corridor) than in a large room.
[0057] Step S20 of the method requires that representations be available.
[0058] A representation is a piece of data, such as a vector, which represents a value of the magnetic field at the measurement position considered.
[0059] The representation of a vector is furthermore data which remains invariant, or unchanged, when any transformation respecting the constraint(s) of the set of constraints is applied to the vector and / or to the associated measurement position, and when the representation is then recalculated, but this time on the basis of the transform of the vector and / or its measurement position.
[0060] For example, if we seek to estimate the orientation of the magnetic field, this information must be information not fixed by the constraint(s) of the set of constraints; in other words there must therefore be transformations which respect the set of constraints of the set of constraints but which vary the angle of rotation: this is the case for all rotations of an axis oriented along the first direction.
[0061] In some special cases, the only transformation constraint contained in the constraint set is the fact that the transformation keeps the first direction invariant. It follows that the set of transformations that respect all the transformation constraints is the union of the set of rotations around the first direction and the set of translations and their combinations.
[0062] The representation of a magnetic vector is therefore in this case a piece of data representing the value of the magnetic field at the measurement position and which is left invariant by the application to the vector and / or to the associated measurement position of any rotation around the first direction.
[0063] The representation function is then the function which associates with a magnetic vector the torque comprising as first component, the norm of the component of this vector in a plane perpendicular to the first direction and as second component, the component of this vector along the first direction.
[0064] Thus, in certain embodiments, each representation comprises, or is constituted by, a component representative of a standard of a component of the magnetic field in a plane perpendicular to the first direction, a component representative of a component of the magnetic field along the first direction, and / or a component representative of at least one coordinate of a measurement position.
[0065] For example, if the first direction is the vertical direction, in certain embodiments, each representation includes a component representative of a horizontal component of the magnetic field and / or a component representative of a vertical component of the magnetic field.
[0066] Conversely, if the rotation to move from the first to the second reference point is known, the only information relating to the change of global reference point and which one may wish to determine is that relating to translation.
[0067] In this case, the representation function may be the identity function. Each representation includes, or is constituted by, the magnetic vector itself.
[0068] In still other embodiments, each representation comprises, or is constituted by, a component representative of a norm of the magnetic vector.
[0069] In other embodiments, the constraint set contains the constraint that the transformation keeps at least the first direction (the vertical direction) invariant; but in addition, the respective positions along the vertical axes in the first and second coordinate systems are considered equal.
[0070] In this case we therefore have three degrees of freedom, namely two in translation and one degree of freedom in rotation. In this case, the representation can be a vector whose first component is the norm of the component of the first vector in a plane perpendicular to the vertical direction, the second component is the component of the first vector in the vertical direction, and the third component is the component in the vertical direction of the measurement position. The representation in this case therefore includes part of the measurement position.
[0071] Step S20 of searching for associations between first and second vectors is an important step of the proposed method.
[0072] A first vector and a second vector can only be associated if the distance between the second representation (for the second vector) and the first representation (for the first vector considered) is less than the association threshold.
[0073] The association threshold can be constant.
[0074] Nevertheless, in certain embodiments, the association threshold is variable, and has a higher value in areas in which a variation of the magnetic field is strong than in areas in which a variation of the magnetic field is weak.
[0075] This way of selectively varying the value of the association threshold makes it possible to determine the associations more efficiently by limiting the number of false positives, i.e. unjustified associations.
[0076] Step S20 can be carried out so as to identify, for each second vector, all of the associations between the second vector and the first vector(s) for which the distance between the second representation of the second vector and the first representation of the first vector considered is less than the association threshold.
[0077] However, step S20 can be performed by identifying only a portion of these associations.
[0078] For example, in certain embodiments in step S20, for each second vector, the first vectors which are such that the first representation and the second representation (for the two vectors considered) satisfy a predetermined proximity criterion are identified as first associated vectors. In accordance with the present disclosure, this proximity criterion imposes that the distance between the respective representations of two vectors identified as associated is less than the association threshold. An example of a proximity criterion will be given later.
[0079] Such a proximity criterion may be stricter than the sole condition of requiring that the distance between the respective representations of two vectors identified as associated be less than the association threshold.
[0080] In this case, the method according to the present disclosure can be implemented in such a way that in step S20, for a second vector considered, not all of the first vectors are retained for which the distance between the representation of the second vector and the representation of the first vector is less than the association threshold: the search for first vectors with which the second vector can be associated is limited to a strict subset of the set of first vectors.
[0081] This restriction can be achieved in particular by taking into account predetermined information on the relative position of the representations in the space of the representations.
[0082] For this purpose, in certain embodiments, for step S20, the representations of the first set of vectors are recorded in a data structure taking into account their positions in the space of the representations, for example an indexing tree, in particular a ball-tree, a quad-tree, or a kd-tree and in step S20, said first associated vector(s) are identified by browsing said data structure. Thanks to the use of a data structure such as an indexing tree which takes into account the respective positions of the representations in the space of the representations, the search for first vectors to be associated with the second vector is carried out only for the first vectors whose representations are neighbors (or close) to the representation associated with the second vector considered.
[0083] Alternatively, in certain embodiments, step S20 comprises the following steps:
[0084] S22) we determine a partition in voxels of the space of representations; and
[0085] S24) when the representations of a first and a second vector belong to the same voxel, we associate the first vector and the second vector.
[0086] In these embodiments, step S20 preferably further comprises the following steps:
[0087] S25) for at least part of the voxels, one or more adjacent voxels are identified;
[0088] S26) when the representations of a first and a second vector belong to adjacent voxels, we associate the first vector and the second vector.
[0089] In some implementations, the association threshold used to associate a first vector to a second vector considered can vary depending on the importance of the variations of the magnetic field in the first set of vectors.
[0090] For example, if in an area of the volume considered the magnetic field varies relatively slowly (spatially), then a low value can be chosen for the association threshold, for the area considered. Indeed in this case, two magnetic vectors of the area considered, although having relatively distant measurement positions in the real world, can still have close representations (because the magnetic field varies little in the area considered).
[0091] In this case, to avoid associating the two magnetic vectors, which would be useless, a more severe association criterion is chosen in the area considered.
[0092] Also in this case, as explained previously, we therefore reduce the value of the association threshold in the zone considered, depending on the importance of the variations of the magnetic field in the zone considered:
[0093] The association threshold is therefore chosen so as to present a higher value in the zones in which a variation of the magnetic field is strong than in the zones in which a variation of the magnetic field is weak.
[0094] This way of fixing the values of the association threshold can be used in particular when the space of the representations is partitioned into voxels.
[0095] In this case, preferably the dimensions of the voxels are chosen to be smaller in the areas where the magnetic field varies strongly (per unit of distance) than in the areas in which the magnetic field varies weakly (per unit of distance).
[0096] Furthermore, in certain embodiments, in step S20, for each association between a first vector and a second vector, a confidence coefficient is further calculated in the determined association; and in step S40 the groupings are identified by taking into account said confidence coefficients, and / or in step S50 the change of global reference is determined at least in part by taking into account said confidence coefficients.
[0097] The various steps of the method for determining information according to the present disclosure may be determined by computer program instructions.
[0098] Consequently, the present disclosure also relates to a computer program comprising instructions which, when the instructions are executed by at least one processor, cause said at least one processor to execute the steps of one of the methods presented previously.
[0099] This program may use any programming language, and be in the form of source code, object code, or code intermediate between source code and object code, such as in a partially compiled form, or in any other desirable form.
[0100] The present disclosure also relates to a non-volatile computer-readable storage medium, on which the computer program presented above is stored. The information medium may be any entity or device capable of storing the program. For example, the medium may comprise a storage means, such as a ROM, for example a CD ROM or a microelectronic circuit ROM, or a magnetic recording means, for example a floppy disk or a hard disk. Alternatively, the information medium may be an integrated circuit in which the program is incorporated, the circuit being adapted to execute or to be used in the execution of the method in question.
[0101] By extension, the present disclosure also relates to a system comprising a magnetometer, at least one processor, and an information medium as defined above, said at least one processor being configured to record magnetic field measurements carried out by the magnetometer on said information medium.
[0102] Such a system may be, for example, a vehicle, a robot, a machine, a system worn by a human being (mobile phone, headset, etc.), and more generally any system for which it may be useful to determine the position relative to its environment. BRIEF DESCRIPTION OF THE FIGURES
[0103] Other advantages, aims and particular characteristics of the present invention will emerge from the following non-limiting description of at least one particular embodiment of the devices and methods which are the subject of the present invention, with reference to the appended drawings, in which:
[0104] [Fig.l] is a schematic top view of a building in which a robot is moving, which implements a method according to the invention to determine its position;
[0105] [Fig.2] is a schematic top view of the robot which appears in [Fig.l];
[0106] [Fig.3] is a schematic top view of a room in the building of [Fig.l], showing a set of first magnetic vectors and corresponding first positions, in the room of the building shown in [Fig.l];
[0107] [Fig.4] is a schematic top view of the part shown in [Fig.3], showing measurements (second magnetic vectors and corresponding second positions) made by the robot during movement in this part;
[0108] [Fig.5] is a schematic top view showing identified associations between a first vector and second vectors;
[0109] [Fig.6] is a schematic top view of the part shown in [Fig.3], showing both the set of first magnetic vectors and corresponding first positions shown in [Fig.3], and the second magnetic vectors genetics and corresponding second positions, after re-alignment in the building's reference frame;
[0110] [Fig.7] is a flowchart showing the steps of a method for determining a change of reference according to the present disclosure; and
[0111] [Fig.8] is a figure schematically representing magnetic vectors recorded in a building. DETAILED DESCRIPTION OF THE INVENTION
[0112] This description is given as a non-limiting example of embodiment.
[0113] The methods according to the present disclosure will be presented in the case of an implementation on board a robot R moving inside a building B ([Fig.l]).
[0114] To control the robot R when it moves around in the building B, it is necessary to know its position at all times, in order to control its accelerations and ensure that it follows the desired trajectory. Knowing the position of the robot in the building makes it possible, in particular, to take into account the information available about the building.
[0115] For this purpose, the robot R will implement a method according to the present disclosure to know its relative position at each instant, thanks to the fact that the method makes it possible to determine the change of global reference frame Tg which makes it possible to transform a position (in 3 or 6 degrees of freedom) in the reference frame R2 associated with the measurements carried out by the robot, into a position in the reference frame RI of the building B.
[0116] It is assumed that a 3D map of the magnetic field of building B is available, obtained for example from initial measurements previously carried out in the building. This 3D map constitutes a continuous model of the magnetic field over the entire building B (the methods according to the present disclosure are however also applicable if the basic data are discrete).
[0117] The magnetic vectors provided by the 3D magnetic field map, called 'first vectors', are expressed in the RI frame of reference of the building. This frame is oriented such that one of its directions (the 'first direction', here noted z) is oriented in the vertical direction. This result is obtained simply by taking into account the fact that the floor of building B is horizontal.
[0118] The robot R is equipped with an on-board computer 10, a magnetometer 20 and an inertial unit 30. The on-board computer 10 comprises a processor 12 and a non-volatile memory 14.
[0119] The magnetometer 20 is a calibrated magnetometer integrated into the robot R.
[0120] The on-board computer 10 has the hardware architecture of a computer, illustrated schematically in [Fig.2]. Generally speaking, any data processing device comprising at least one memory capable of recording data and the program which will be presented later, and one or more processors capable of executing this program, can be used for implementing the methods according to the present disclosure.
[0121] With its magnetometer 20, the robot R presented here constitutes an example of a device according to the present disclosure. In the robot R the on-board computer 10 is on board the robot. In the devices according to the present disclosure, the processor(s) and / or the memory(ies) may nevertheless also be separate from the magnetometer. They may for example be part of remote servers.
[0122] The non-volatile memory 14 of the on-board computer 10 constitutes a recording medium in accordance with the present disclosure, readable by the processor 12 and on which is recorded a computer program in accordance with the present disclosure, comprising instructions for executing the steps of a method for determining at least one item of information relating to a change of reference in accordance with the present disclosure.
[0123] The method used to calculate said at least one piece of information relating to the change of global reference frame making it possible to transform the measurement positions expressed in the own reference frame R2 of the robot R into positions in the reference frame RI of the building B will now be presented.
[0124] This method comprises the following steps:
[0125] S10 - Obtaining the first and second set of vectors EV1 and EV2
[0126] S12 - Acquisition of vector sets
[0127] The first set of EV1 vectors is generated using the building magnetic field model described previously.
[0128] It contains a set of couples of the form (V1 i,P 1 i), i=l.. .N, where Vli is a first vector, of index i, representative of a value of the magnetic field at a point; and Pli is this point, also called 'measurement position' (even if the value of the vector Vli does not come from a measurement, but is for example calculated, or estimated from other quantities). The coordinates of Pli are expressed in the RL frame
[0129] The distribution of magnetic vectors Vli at positions Pli is illustrated in [Fig.3] for one of the rooms of building B (room P). In this figure, the norms and orientations of the first magnetic vectors Vli are arbitrary.
[0130] The data of the first set EV 1 can be generated at positions of Pli measurement regularly or approximately regularly staggered along the two horizontal directions x and y ([Fig.3]), with a discretization step size that is substantially equal in both directions. In other implementation modes that take more account of the vertical direction, the Pli measurement positions can be staggered along the three directions x, y and z.
[0131] The second set of EV2 vectors is then acquired using the robot R. The robot R circulates in building B, successively acquiring a certain number of measurements V2j of the magnetic field (j=l.. ..M) at successive measurement positions P2j, as shown in [Fig.4].
[0132] S14 - Discretization of vector sets
[0133] Then in step S14, if necessary, the first set of vectors EV1 and / or the second set of vectors EB2 are spatially discretized.
[0134] Indeed, it is useless for a set of vectors to contain two vectors having measurement positions too close to each other.
[0135] Thus, it may be useful to sample one and / or the other of the sets of vectors as soon as it is likely to contain pairs of vectors having measurement positions too close to each other. By 'sampling', we mean here an operation of deleting data (of pairs (vector, measurement position)) from the set of vectors so as to ensure that for any pair of vectors in the set of vectors, the distance between the associated measurement positions is greater than a certain predetermined minimum value.
[0136] In some embodiments, sampling may be done specifically in certain portions of the volume under study.
[0137] Indeed, to increase the accuracy of the method, it is advantageous to vary the sampling step according to the position in the volume studied, and for example to have a smaller discretization step in the areas in which the variations of the magnetic field are faster. The discretization step can for example be chosen to be smaller in corridors than in large rooms.
[0138] S20 - Determination of associations between first and second vectors
[0139] We then associate each second magnetic vector (V2j) of the second set of EV2 vectors with, when possible, one or more first magnetic vectors Vli with which a proximity criterion between their respective representations Rli and R2j is satisfied.
[0140] It may happen, depending on the implementation parameters, that a part of the second vectors are not associated with any first vector. A second vector V2j is associated with a first vector Vli when the two representations Rli and R2j of these two vectors are sufficiently close, that is to say when the distance between them in the space of the representations is less than the association threshold.
[0141] This value is chosen heuristically, taking into account in particular the measurement noise of the magnetometer, so that as far as possible, two vectors representing measurements of the magnetic field carried out at neighboring positions are associated. By 'neighboring positions', here is meant in particular two positions separated by a distance significantly smaller than the discretization step with which the first set of vectors EV 1 is constituted.
[0142] A schematic representation of some possible associations Aij between a second vector V2j and first vectors Vli, represented by dotted lines, are indicated in [Fig.5].
[0143] S21 - Determination of the representations of the first and second vectors
[0144] To determine the associations between first and second vectors, the first step S21 consists of calculating the representations of the first and second vectors Vli and V2j.
[0145] In the implementation mode presented here, the constraint set includes as the only constraint the fact that the transformation keeps the first vertical direction invariant. The representation Rli of a magnetic vector Vli is the pair (IVlixyl, Vliz), where IVlixyl and Vliz represent respectively the norm of the horizontal component, and the vertical component, of the magnetic vector Vli. Similarly, with analogous notations, the representation R2j of a magnetic vector V2j is the pair (V2jxy, V2jz). This choice of components allows the representations Rli and R2j to be independent of the rotation around the vertical axis Z, which is one of the pieces of information that we seek to determine.
[0146] Then, different steps can be followed to finalize the choice of associations between first and second vectors. Three different variants will now be presented.
[0147] According to a first variant, for each second vector, it is evaluated for each of the first vectors whether it can be associated with the second vector considered, that is to say whether it satisfies the chosen proximity criterion.
[0148] This variant is simple, but can be relatively expensive in terms of computation time. Indeed, the number of possible associations to be evaluated can then be very high.
[0149] To reduce the calculation time, it is preferable to limit as much as possible the number of associations evaluated during step S20.
[0150] For this reason, in the second and third variants on the contrary, for each second vector, the first vectors likely to be associated with the second vector considered are evaluated only for a strict subset of the first set of vectors.
[0151] In the second variant, the proximity criterion between the representations of the first and second vectors is simply a distance criterion between representations: the distance between the representation of the first vector and that of the second vector must be less than the association threshold which thus represents a 'maximum accepted difference'.
[0152] The second variant comprises a first step S21, in which the first set of vectors is recorded in the form of an indexing tree.
[0153] Any type of data indexing tree that allows the first vectors as a function of the positions of their respective representations in the space of representations can be used. For example, one can use a kd-tree, a quadtree, etc.
[0154] Advantageously, such a tree can be traversed in an optimized manner; the search for the first vector(s) having representations close to the representation of a second vector considered is done in an optimized manner without it being necessary to evaluate whether the proximity criterion is satisfied for each of the vectors of the first set of vectors.
[0155] In the second step S22 of the variant, for each vector of the second set of vectors, the indexing tree is traversed so as to identify the first vector(s) whose representations satisfy the proximity criterion with respect to the representation of the second vector considered, that is to say, so as to identify the first vector(s) whose representations are at a distance less than the maximum accepted deviation (the association threshold) with respect to the representation of the second vector considered.
[0156] For each second vector, the first vector(s) thus identified is then associated with the second vector considered.
[0157] In the third variant, the proximity criterion between a first and a second vector is defined from voxels, which are defined in the space of representations.
[0158] The third variant includes steps S22 to S24 below:
[0159] S22 - Partition of the space of representations into voxels
[0160] The third variant requires in a first step S22 to partition the space of the representations into voxels (i.e. into elementary volumes). Each voxel has a finite volume.
[0161] Thanks to this partition, the proximity criterion can be defined simply, as follows: a first and a second vector satisfy the proximity criterion when the representations of these two vectors are part of the same voxel.
[0162] S23 - Distribution of the first and second vectors in the different voxels
[0163] In step S23, each of the first and second vectors is assigned to the voxel which contains its representation.
[0164] In certain embodiments, we then proceed directly to step S26:
[0165] S24 - Within each voxel, association of the first and second vectors of the voxel
[0166] In step S24, for each of the voxels, each of the first vectors assigned to the voxel is associated with each of the second vectors assigned to the same voxel.
[0167] As each of the voxels has a finite volume, for each pair of associated vectors, the membership of the first and second vector of the pair of vectors to the same voxel therefore imposes a maximum value on the distance between the representations res- perspectives of these two vectors.
[0168] However, certain modes of implementation of the third variant are optimized in order to reduce the edge effects, or limits, due to the voxels and in this case comprise two additional steps S25 and S26.
[0169] S25 - Identification of adjacent voxels
[0170] In step S25, for each voxel, the voxels adjacent to the voxel considered are identified, in the set of representations.
[0171] S26 - For each voxel, determination of additional associations
[0172] Then in a step S26, the following associations are added to the associations between first and second vectors already identified in step S24:
[0173] For each voxel, we associate each second vector contained in the voxel considered with each first vector of each voxel adjacent to the voxel considered.
[0174] S30 - For each association, determination of the change of association reference Tÿ
[0175] Once the associations between first and second vectors have been identified (in step S20), in step S30, for each association Aij, the change of association reference frame Tij is determined. This change of reference frame Tij tends, for the association considered, to transform the second vector V2j into the first associated vector Vli and the second measurement position P2j attached to the second vector V2j into the first measurement position P11 of the first associated vector Vli.
[0176] More precisely, the change of association reference Tij is calculated in such a way, while respecting the constraint(s) of the constraint set, as to optimize the optimization function. This function is a function of at least: - an alignment difference between the direction of the transform Tij(V2j) of the second vector V2j by the change of association reference frame Tij and a direction of the first associated vector Vli; and / or - a position difference between the transform Tij(P2j) of the second measurement position P2j attached to the second vector V2j and the first measurement position Pli attached to the first associated vector Vli.
[0177] The optimization function normally aims to minimize both the alignment deviation and the position deviation mentioned above.
[0178] The optimization function may for example be a function aimed at minimizing a weighted sum, by respective coefficients, of the alignment deviation and the position deviation.
[0179] There are different ways to determine a change of association reference Tij. For example, the following operations can be carried out: - We identify the set Eij_opt of optimal transformations that optimize the optimization function among all possible transformations, without take into account the set of constraints. - We also identify the set of admissible transformations Tij, which are the changes of reference that respect all the constraints. - We then identify the transformation Tij as being the transformation of the set of admissible transformations Tij which is closest to the set Eij_opt of optimal transformations (in the sense of a distance in the space of changes of reference).
[0180] A concrete example of calculating a change of association reference Tij will now be presented.
[0181] In this example, the first and second sets of vectors EV1 and EV2 have a first common direction which is the vertical direction z. The constraint set includes as the only constraint the fact that the transformation keeps the first vertical direction invariant. Consequently, each change of reference frame Tij has only 4 degrees of freedom, namely three degrees of freedom in translation and one degree of freedom concerning the angle of rotation around the vertical direction. The individual change of reference frame Tij is therefore the combination of a translation tij and a rotation rij.
[0182] To calculate the change of association reference Tij, the following steps are carried out:
[0183] We first define the azimuth Ali associated with a magnetic vector Vli as being the rotation angle allowing the horizontal component of this vector to be aligned with the axis Ox of the RL reference frame. We then have:
[0184] Ali = arctan2(Vli_y, Vli_x)
[0185] where Vli_x and Vli_y are the components of the vector Vli respectively along the x and y axes, and the arctan2 function is the generalized arctangent function, known per se.
[0186] We similarly define the azimuth A2j of the magnetic vector V2j in the frame of reference R2.
[0187] From the azimuth Ali, we define a rotation matrix Rli around the z axis (of the first direction). This matrix Rli can be in particular of the form:
[0188] / cos(Alz) -sin(Ali) 0\ R\î = sin(AU) cos(AU) 0 \ 0 0 1 /
[0189] We then combine the position vector Pli of the magnetic vector with the rotation matrix Rli so as to form a rigid transformation block matrix Tli, of size 4x4.
[0190] A rigid transformation matrix T2j is constituted in the same way.
[0191] We then calculate the change of association reference Tij for the second vector V2j and the first vector Vli simply by composition of rigid transformations Tli and T2j:
[0192] Tij=Tli*T2j*
[0193] The calculation of association reference changes can take other forms depending on the constraints taken into account in the constraint set.
[0194] In a first particularly simple case, in the constraint set, determined values have been assigned in advance to the three rotation angles of the global change of reference frame. From this global change of reference frame, it therefore only remains to estimate (at most) the 3 degrees of freedom in translation. In this specific case, the translation t_ij to go from the second reference frame R2 to the first reference frame RI is calculated simply, and is worth:
[0195] t_ij = P2j-Pli
[0196] In a second case, the constraint set contains the constraint that the transformation keeps at least the first direction (vertical direction) invariant; but in addition, the respective positions along the vertical axes in the first and second reference frames are considered equal.
[0197] In this second case, the change of association reference Tij is calculated in substantially the same way as in the concrete example presented above, in which the only constraint of the constraint set is the fact that the transformation preserves the first invariant vertical direction.
[0198] However, in this second case, to form the rigid transformation block matrix Tli, of size 4x4, we then combine a vector comprising the two components along the x and y axes of the position vector Pli and having as third component the value 0 (for the component along the z axis) with the rotation matrix Rli.
[0199] The rigid transformation matrix T2j is constituted in the same way.
[0200] We then calculate the change of association reference Tij in the same way as in the concrete example presented above.
[0201] S40 - Identification of groupings among changes in association reference points
[0202] Once the association reference changes have been determined in step S30, then groups these changes of reference into one or more groupings (in English, 'clusters').
[0203] This operation is carried out on the basis of all the association reference changes determined in step S30.
[0204] Step S40 can be carried out by any known clustering identification method, for example DBSCAN or GDBSCAN; these algorithms are disclosed in particular by the documents:
[0205] - M. Ester, H.-P. Kriegel, J. Sander, and X. Xu, “A Density-Based Algorithm for Dis- covering Clusters in Large Spatial Databases with Noise,” in Proceedings of the 2nd ACM International Conference on Knowledge Discovery and Data Mining, 1996, pp. 226-231; And "
[0206] - Sander, Jorg, et al. “Density-based clustering in spatial databases: The algorithm gdbscan and its applications. » Data mining and knowledge discovery 2 (1998): 169-194.)
[0207] Step S40 makes it possible to identify relatively quickly the association reference frame changes that should be taken into account for determining the global reference frame change (or information relating thereto), by conversely eliminating numerous associations and their associated reference frame changes that are 'false positives' that do not correspond at all to the global reference frame change.
[0208] During step S40, in general a large part of the associations are identified as being false positives, not generating a change of reference point which can be considered as corresponding to the change of reference point between the reference points RI and R2.
[0209] In addition, if several groupings are identified, the difference between the number NI of elements of the largest grouping compared to the number N2 of elements of the second largest grouping is determined. If this difference does not seem sufficient (for example if NI is not at least equal to 1.5 x N2), the result is considered ambiguous and the method is interrupted.
[0210] To carry out this step S40, it is necessary to have a distance in the space of the changes of reference. Generally, any suitable distance can be used. For example, one of the distances usually used in the field of robotics can be used to measure a distance between two poses of a solid body in space.
[0211] Thus, for example, in the implementation mode presented here, a change of reference frame is represented by a vector having four components (x,y,z,rp), where rp is the angle of rotation allowing passage from the second reference frame R2 to the first reference frame RL. It is naturally appropriate to take into account the periodicity of the angle rp.
[0212] The following distance can for example be used: 102131 d (r, T2) = Ja || 10^1¾) || 2+ / 7 11^-^11 2
[0214] In this expression, a and [3 are strictly positive real coefficients which allow us to take into account the difference in scale between the values linked to the rotation (R). The log function here designates the function allowing us to go from a 3x3 rotation matrix to its representation in the form of a rotation vector, the direction of the vector representing the axis of rotation and the norm representing the angle of rotation.
[0215] S50 - Determination of the global reference change Tg from the groupings of changes of reference
[0216] Finally, in step S50, the information sought relating to at the change of global reference Tg between the first and second reference.
[0217] In the following description, for simplicity, we consider the case where the information that we seek to determine is the global change of reference Tg itself, that is to say, the three translation components and the rotation component around the vertical direction. Nevertheless, the methods according to the present disclosure can be used to determine only part of the information defining this global change of reference.
[0218] Any suitable method may be used to determine the global reference change Tg as a function of the grouping(s) determined in step S40.
[0219] The change of global reference Tg can in particular be determined according to the importance of the groupings.
[0220] The global reference change Tg can thus in particular be determined based only on the largest grouping.
[0221] The overall reference change can then be calculated based on the reference changes of the largest grouping.
[0222] The overall reference change can for example be calculated as being equal to the average of the reference changes contained in the largest grouping.
[0223] Any function that can obtain an average value of the transformations of the largest grouping can be used.
[0224] Thus, in the case where the global reference change Tg sought includes rotation around the first direction, the rotation angle rp of the global reference change can for example be calculated in the following manner.
[0225] We consider the set of rotation angles of the vectors of the largest grouping. We calculate the average C of the cosines of these angles and the average S of the sines of these angles.
[0226] We then calculate the rotation angle rp of the global change of reference as being an average angle by the generalized arctangent function Arctan2, according to the formula:
[0227] rp = Arctan2(S,C)
[0228] The change of reference frame Tg calculated in step S50 can, if necessary, be verified in different ways. In particular, this change of reference frame can be applied to the measurement positions P2j and to the magnetic vectors V2j so as to obtain their transforms in the reference frame RL. If these transforms do not correspond to the surrounding vectors and positions Vli, it can be concluded that the change of reference frame Tg determined in step S50 is incorrect.
[0229] This verification is illustrated by [Fig.6], which schematically shows the second vectors V2j, in the position they occupy when the change of reference Tg has been applied to them: The vectors V2j are then positioned at positions Tg(P2j). As shown in [Fig.6], the values of the vectors V2j thus readjusted in the RI frame are neighbors with values Vli of the first vectors around the vectors V2j recalibrated in the RI frame.
[0230] In certain implementation modes, the calculation of the global reference change Tg is weighted according to the confidence that one has in the different associations between first and second vectors identified.
[0231] In this case, the method may for example comprise the following operations:
[0232] In step S20, for each association Aij between a first vector Vli and a second vector V2j, a confidence coefficient Cij representative of the confidence that one has in the association ij is further calculated; and in step S40 the groupings are identified by taking into account said confidence coefficients, and / or in step S50 the change of global reference Tg is determined by taking into account said confidence coefficients Cij.
[0233] For example, in step S40 and / or S50, it is possible not to take into consideration the associations whose confidence index is lower than a certain threshold. Results
[0234] The method for determining a change of reference according to the present disclosure was tested in a building extending over two levels.
[0235] A magnetic map of the building was first established and made it possible to obtain a first set of EV1 vectors. The magnetic vectors thus obtained are schematically represented in [Fig.8]. The grayscale color palette represents the magnetic field standard, the values of which are between 18 and 78 pT.
[0236] Then, the method according to the present disclosure was tested in 51 successive experiments.
[0237] For this, 51 different magnetic surveys were carried out in the building and successively provided 51 second sets of EV2 vectors.
[0238] The magnetic vectors of the first and second sets of vectors EV1 and EV2 were discretized with a step of 0.5 m.
[0239] Based on the first set of vectors EV1 and the second sets of vectors EV2 successively obtained, steps S20 to S50 of the method according to the present disclosure were then carried out.
[0240] To carry out step S20, the first set of vectors was organized in the form of a kd-tree. During each experiment, the search for pairs of associated vectors then made it possible to identify several thousand associations.
[0241] For each experiment, the following results could be obtained:
[0242] In step S30, for each association the corresponding association reference change has been calculated.
[0243] Step S40 of searching for groups then revealed that a very large majority (5956) of these associations provides an isolated or substantially isolated association reference change, thus constituting a false positive which cannot correspond to the overall reference change Tg sought. Conversely, step S40 revealed five groupings of reference changes (totaling 84 association reference changes), the largest grouping of these grouping 45 association reference changes.
[0244] The global reference frame change Tg could then be calculated from the association reference frame changes of the largest grouping.
[0245] As indicated, 51 substantially identical experiments were carried out. Each experiment was conducted using a second set of vectors obtained by making magnetic field measurements during movements of only about 18 meters in the building under consideration.
[0246] During the different experiments, the method converged in 94% of cases.
[0247] The experiments thus conducted made it possible to conclude that the method according to the present disclosure, in the embodiment presented above, when it converges, makes it possible to identify the change of global reference frame Tg with an average error of only 0.17m and 1.3° respectively as to the translation and rotation between the first and second reference frames RI and R2.
Claims
Claims
1. Computer-implemented method for determining at least one item of information relating to a change of global reference frame (Tg) from a second reference frame (R2) associated with a second set of vectors (EV2) comprising second vectors (V2j) to a first reference frame (RI) associated with a first set of vectors (EV1) comprising first vectors (Vli), the method comprising the following steps: S10) said first and second sets of vectors (EV1, EV2) are obtained; each vector being representative of a magnetic field in the real world at a position expressed in the reference frame associated with the set of vectors, called the measurement position; a first direction being considered as common to the first and second reference points (R1,R2); S20) for each second vector (V2j), zero, one or a plurality of first vectors (Vli) are identified, called first associated vector(s), for which a distance between a representation (R2j) of the second vector (V2j) and a representation (Rli) of the first vector (Vli) considered is less than an association threshold (ô); a representation (Rli, R2j) of a vector being a value obtained by applying a representation function to the vector (Vli,V2j) considered and / or to the measurement position (Pli,P2j) associated with the vector considered, the representation function being such that the representation of a vector is left invariant by the application to the vector (Vli,V2j) and / or to the measurement position (Pli,P2j) associated with any transformation respecting a set of constraints; the information to be estimated relating to the change of global reference being information not fixed by the constraint(s) of the constraint set; the constraint set includes at least the constraint that the transformation preserves at least the first invariant direction; S30) for each association between a first vector (Vli) and a second vector (V2j), we determine a change of association reference (Tij) respecting the constraint(s) of the constraint set and optimizing an optimization function at least: - an alignment deviation between a direction of a transform (Tij(V2j)) of the second vector (V2j) by the change of association reference frame (Tij) and a direction of the first associated vector (Vli); and / or - a position deviation between a transform (Tij(P2j)) of the second measurement position (P2j) attached to the second vector (V2j) by the change of association reference frame (Tij) and the first measurement position (Pli) attached to the first associated vector (Vli); S40) groupings are identified among the changes of association reference frame (Tij) determined in step S30; S50) said at least one item of information relating to the change of global reference frame (Tg) is determined as a function of the grouping(s) determined in step S40.
2. Method according to claim 1 in which for step S20, the representations of the first set of vectors (EV1) are recorded in a data structure taking into account their positions in the space of the representations, for example an indexing tree, in particular a ball-tree, a quad-tree, or a kd-tree; and in step S20, said first associated vector(s) are identified by browsing said data structure.
3. Method according to claim 1, in which step S20 comprises the following steps: S22) determining a partition into voxels of the space of the representations; and S24) when the representations of a first and a second vector belong to the same voxel, associating the first vector and the second vector.
4. Method according to claim 3, in which step S20 further comprises the following steps: S25) for at least a portion of the voxels, one or more adjacent voxels are identified; S26) when the representations of a first and a second vector belong to adjacent voxels, the first vector and the second vector are associated.
5. A method according to any one of claims 1 to 4 wherein in step S20, for each association between a first vector and a second vector, a confidence coefficient (Cij) is further calculated in the determined association; and in step S40 the groupings are identified by taking into account said confidence coefficients, and / or in step S50 the global reference change (Tg) is determined at least in part by taking into account said confidence coefficients (Cij).
6. Method according to any one of claims 1 to 5, in which each representation (Rli,R2j) comprises, or is constituted by, a component representative of a norm of a component of the magnetic field in a plane perpendicular to the first direction, a component representative of a component of the magnetic field along the first direction, and / or a component representative of at least one coordinate of a measurement position.
7. A method according to any one of claims 1 to 6, wherein each representation (Rli,R2j) comprises, or is constituted by, a representative component of the magnetic vector (Vli) or a norm of the magnetic vector (Vli).
8. A method according to any one of claims 1 to 7, wherein the association threshold has a higher value in areas in which a variation of the magnetic field is strong than in areas in which a variation of the magnetic field is weak.
9. A method according to any one of claims 1 to 8, wherein said at least one transformation constraint further includes that the transformation is the combination of a translation of predetermined value along at least one direction and / or a rotation of rotation angle of predetermined value around the first direction.
10. A computer program comprising instructions which, when the instructions are executed on a computer, cause the computer to perform the steps of the method according to any one of claims 1 to 9.
11. A computer-readable non-volatile storage medium having recorded thereon a computer program according to claim 10.
12. System comprising a magnetometer (M), at least one processor (P), and an information medium according to claim 10, said at least one processor being configured to record magnetic field measurements carried out by the magnetometer (M) on said information medium.