Optimization device, positioning system, and positioning method
The optimization device addresses the trade-off in satellite positioning by selecting and connecting observation values and constraint conditions based on evaluation indices, reducing computational load while maintaining accuracy for real-time positioning of moving objects.
Patent Information
- Application Number
- JP2024004229
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-01-16
- Publication Date
- 2025-07-29
AI Technical Summary
Satellite positioning technology using a factor graph faces a trade-off between positioning accuracy and computational load, where increasing the number of observation values and constraint conditions improves accuracy but increases computational load, making real-time positioning of moving objects challenging.
An optimization device that includes a sensor discrimination unit, a constraint condition addition unit, and an optimization calculation unit to select and connect observation values and constraint conditions based on evaluation indices, minimizing errors and reducing computational load while maintaining accuracy.
The solution reduces computational load while maintaining positioning accuracy, enabling high-precision positioning for moving objects by appropriately selecting observation values and constraint conditions.
Smart Images

Figure 2025110430000001_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to positioning technology and a technology for estimating the position of a moving object.
Background Art
[0002] The development of autonomous working machines that replace human work, such as the automation of manned vehicles such as automobiles and construction machines as moving objects and the unmanning of factory inspection work by autonomous inspection robots, is underway. Productivity improvements such as increased work efficiency through optimized machine operations and labor savings through the realization of autonomous driving are expected.
[0003] One of the key technologies for realizing such autonomous working machines is self-position estimation technology. Among them, there is satellite positioning technology that estimates its own position in the earth coordinate system using GNSS (Global Navigation Satellite System). Since this satellite positioning technology is a low-cost self-position estimation technology, it is considered an effective method for realizing low-cost autonomous working machines.
[0004] As a prior art example related to satellite positioning technology, International Publication No. 2017 / 046914 (Patent Document 1) can be cited. Patent Document 1 describes, as a "positioning satellite selection device" etc., a "quality evaluation unit that obtains a quality evaluation value by evaluating the quality of positioning data", a "planning unit that plans a selection combination for each time of the positioning satellite used for positioning", a "positioning calculation unit that performs position measurement calculation using the positioning data of the positioning satellites included in the selection combination", etc. (for example, Claim 3).
[0005] In recent years, as a method for improving the accuracy of satellite positioning technology, a positioning method applying a factor graph has been proposed.
Prior Art Documents
Patent Documents
[0006]
Patent Document 1
Summary of the Invention
Problems to be Solved by the Invention
[0007] In satellite positioning technology, especially in positioning using a factor graph, a factor graph is constructed by connecting past sensor observation values to each other with constraint conditions based on relative positional relationships, and a positioning position is obtained such that the errors of the observation values and constraint conditions on the factor graph are reduced. Thereby, the positioning error can be suppressed.
[0008] On the other hand, in positioning using a factor graph, the positioning accuracy improves in proportion to the number of observation values and constraint conditions. However, on the other hand, if the number of observation values and constraint conditions is increased, the computational load required for factor graph optimization increases, and it is assumed that it may be difficult to perform real-time positioning of a moving object such as an autonomous working machine. In other words, in positioning using a factor graph, there is basically a trade-off relationship between positioning accuracy and real-time performance / calculation time / computational load.
[0009] Therefore, in order to use a factor graph for self-position estimation of a moving object, it is necessary to reduce the number of observation values and constraint conditions in consideration of the calculation time and the like. In that case, when it is desired to achieve both high-precision positioning and reduction of computational load, it is necessary to select a way of connecting observation values and constraint conditions such that the positioning result of the factor graph becomes highly accurate.
[0010] Patent Document 1 describes a technique for selecting an appropriate positioning satellite group to be used for positioning by evaluating the accuracy degradation of satellite signals as a means for selecting observation values. As in Patent Document 1, by looking at the accuracy / evaluation value for each observation value, only observation values with good accuracy can be selected. However, in the case of selecting only observation values, there is no criterion for selecting the way of connecting constraint conditions, so there is a risk that appropriate constraint conditions cannot be set and the positioning accuracy cannot be maintained.
[0011] An object of the present disclosure is to provide a technique capable of reducing the computational load while maintaining the positioning accuracy with respect to the above satellite positioning technology / mobile object position estimation technology, in other words, a technique capable of achieving both high-precision positioning and reduction of the computational load. In particular, an object of the present disclosure is to provide a technique capable of reducing the computational load while maintaining the positioning accuracy by appropriately selecting both observation values and constraint conditions with respect to a positioning method applying a factor graph.
Means for Solving the Problems
[0012] A typical embodiment of the present disclosure has the following configuration. One embodiment is an optimization device that performs optimization calculations related to positioning, including a sensor discrimination unit that extracts observation values based on input sensor information, a constraint condition addition unit that adds constraint conditions to the observation values, an optimization calculation unit that performs an optimization calculation to obtain position information such that the error between the observation values and the constraint conditions is minimized based on the observation values and the constraint conditions, and outputs the obtained position information, and an evaluation index acquisition unit that acquires an evaluation index for selecting the observation values and selecting the constraint conditions. The constraint condition addition unit selects the observation values and the constraint conditions based on the evaluation index, and the constraint conditions have relative constraints that connect between a certain selected observation value and a certain observation value.
Effects of the Invention
[0013] According to a typical embodiment of the present disclosure, with respect to the above satellite positioning technology / mobile object position estimation technology, the computational load can be reduced while maintaining the positioning accuracy, in other words, both high-precision positioning and reduction of the computational load can be achieved. In particular, with respect to a positioning method applying a factor graph, the computational load can be reduced while maintaining the positioning accuracy by appropriately selecting both observation values and constraint conditions. Other problems, configurations, effects, etc. than those described above are shown in the embodiments for carrying out the invention.
Brief Description of the Drawings
[0014]
Figure 1
Figure 2
Figure 3
Figure 4
Figure 5A
Figure 5B
Figure 5C
Figure 5D
Figure 6
Figure 7
Figure 8
Figure 9
Figure 10
Figure 11A
Figure 11B
Figure 12A
Figure 12B
Figure 12C
Figure 13A
Figure 13B
Figure 13C
Figure 13D
Figure 13E
Figure 13F
Figure 14
Figure 15
Figure 16
Figure 17
Figure 18
Figure 19
Figure 20
Figure 21
Embodiments for Carrying Out the Invention
[0015] Hereinafter, embodiments of the present disclosure will be described in detail with reference to the drawings. In the drawings, the same components are generally denoted by the same reference numerals, and repeated descriptions are omitted. In the drawings, the representation of components may not represent the actual position, size, shape, range, etc. for the purpose of facilitating the understanding of the invention. The embodiments of the present disclosure are not limited thereto, and various modifications and application examples within the concept of the present disclosure are also included in the scope.
[0016] For the sake of explanation, when explaining the processing by a program, the program, function, processing unit, etc. may be mainly described. However, the main body of these as hardware is a processor, or a controller, device, computer, system, etc. composed of such a processor. The computer executes processing according to the program read onto the memory by appropriately using resources such as a memory and a communication interface by the processor. Thereby, a predetermined function, processing unit, etc. are realized. The processor is composed of a semiconductor device such as a CPU / MPU or GPU, for example. The processing is not limited to software program processing and can also be implemented by a dedicated circuit. Applicable dedicated circuits include FPGA, ASIC, CPLD, etc.
[0017] The program may be pre-installed as data in the target computer, or may be distributed as data from the program source to the target computer. The program source may be a program distribution server on a communication network, or a non-transitory computer-readable storage medium such as a memory card or a disk. The program may be composed of a plurality of modules. The computer system may be composed of a plurality of devices. The computer system may be composed of a client-server system, a cloud computing system, an IoT system, etc. Various data and information are composed in a structure such as a table or a list, for example, but are not limited thereto. Expressions such as identification information, identifier, ID, name, number, etc. are mutually replaceable.
[0018] [Means for Solving Problems, etc.] The positioning system according to the embodiment of the present disclosure is a positioning system including a sensor discrimination unit that extracts observed values from sensor information, and an optimization calculation unit that obtains an output position such that the error between the observed values and the constraint conditions is minimized. The positioning system further includes an evaluation index acquisition unit that determines an evaluation index for selecting the observed values and the constraint conditions used in the optimization calculation, and a constraint condition addition unit that selects the observed values based on the evaluation index, creates the relative positions between the appropriate observed values, and adds them as constraint conditions. The output position can be used for the control of the moving body.
[0019] In the positioning system of the present embodiment, regarding the positioning method applying the factor graph, for the observed value 500 of the analysis result based on the received signal of the GNSS receiver which is a sensor, the constraint condition addition unit appropriately selects both the observed value and the constraint condition based on the evaluation index. Using the selected observed value and constraint condition, the optimization calculation unit performs an optimization calculation and outputs the position information of the moving body. Thereby, the calculation load can be reduced while maintaining the positioning accuracy.
[0020] Also, in the present embodiment, the observed values and the constraint conditions are selected according to a predetermined logic / algorithm based on the evaluation index. For example, the observed values and the constraint conditions with higher priorities are selected according to the priority order corresponding to the evaluation index. In other words, the observed values and the constraint conditions with lower priorities are excluded according to the priority order corresponding to the evaluation index.
[0021] <Embodiment 1> The positioning system and the like according to Embodiment 1 of the present disclosure will be described with reference to FIGS. 1 to 17.
[0022] [Positioning System] FIG. 1 shows a configuration example of the positioning system 1 in Embodiment 1. In FIG. 1, a system including the positioning system 1 of Embodiment 1 is illustrated, and related elements such as GNSS satellites 91 and a moving object 2 are also illustrated. The GNSS satellites 91 correspond to positioning satellites. The positioning system 1 includes an optimization device 10 that selects observation values and constraint conditions when satellite positioning is input as sensor values and outputs the position information of the moving object 2. The optimization device 10 is, in other words, a satellite positioning optimization calculation device.
[0023] In the positioning applying a factor graph, the optimization device 10 constructs a factor graph by connecting past observation values to each other with constraint conditions based on the relative positional relationship, and obtains a positioning position such that the errors of the observation values and constraint conditions on the factor graph are reduced. Such calculation / operation may be described as optimization calculation / operation. This optimization calculation / operation is performed by the optimization calculation unit 106 in FIG. 1.
[0024] Furthermore, in this embodiment, the optimization device 10 has a function of performing optimization regarding the selection of observation values and constraint conditions based on a positioning method applying a factor graph as a satellite positioning technology. The optimization device 10 achieves both maintaining positioning accuracy and reducing the calculation load by selecting suitable observation values and constraint conditions. Note that the optimization regarding the selection of these observation values and constraint conditions has a different meaning from the optimization in the optimization calculation / operation. The optimization regarding the selection of these observation values and constraint conditions is performed by the constraint condition addition unit 105 in FIG. 1.
[0025] The optimization device 10 has an implementation that realizes the above optimization calculation / operation and the calculation process of the optimization regarding the selection of observation values and constraint conditions. For example, the optimization device 10 can be implemented by a computer that performs program processing, a dedicated circuit, or the like.
[0026] The optimization device 10 is connected to a GNSS receiver 100, an input / output interface 104, a controller 20, and the like. The controller 20 is a control device that controls the moving body 2. The moving body 2 is an autonomous working machine whose position is to be estimated, and specific examples include robots and vehicles. The controller 20 estimates the position of the moving body 2 based on the signal S9 of the position information of the moving body 2 received from the optimization device 10, and executes predetermined control on the moving body 2 according to the estimated position. The predetermined control is not limited, but as an example, it is the control of the autonomous navigation of the moving body 2.
[0027] In the positioning system 1 of FIG. 1, the position of the GNSS receiver 100 and the position of the moving body 2 have a predetermined correspondence relationship. For example, the GNSS receiver 100 and the moving body 2 are arranged close to each other. Therefore, the position of the moving body 2 can be calculated from the position of the GNSS receiver 100 based on the predetermined correspondence relationship.
[0028] [GNSS Receiver] The GNSS satellite 91 in FIG. 1 transmits a GNSS satellite signal 92. In FIG. 1, only one GNSS satellite 91 is shown as a schematic diagram. The positioning antenna 101, which is a receiving antenna, receives the GNSS satellite signal 92. The positioning antenna 101 transmits a received signal (in other words, a satellite signal) S1 corresponding to the received GNSS satellite signal 92 to the GNSS receiver 100. The GNSS receiver 100 is connected to the positioning antenna 101. The GNSS receiver 100 receives and acquires the received signal S1 transmitted from the positioning antenna 101.
[0029] The GNSS receiver 100 analyzes the satellite signal S1, which is the received signal from the positioning antenna 101, and transmits the signal S2 of the analysis result to the optimization device 10, particularly to the sensor discrimination unit 102. The signal S2 of this analysis result includes the observation value 500 described later.
[0030] The GNSS receiver 100 and the positioning antenna 101 may be devices implemented integrally. Further, the optimization device 10 may be a device implemented integrally with the GNSS receiver 100 and the positioning antenna 101. In other words, the functions of this optimization device 10 may be implemented in the GNSS receiver 100 or the like.
[0031] [Optimization Device] As a configuration example, the optimization device 10 in FIG. 1 is a device having functional blocks such as a sensor discrimination unit 102, an evaluation index acquisition unit 103, an input / output interface 104, a constraint condition addition unit 105, an optimization calculation unit 106, an observation value information DB 108, a constraint condition DB 109, an evaluation index DB 111, and a power supply unit 110.
[0032] The power supply unit 110 supplies the power necessary for each part of the optimization device 10 based on power such as a battery. Note that this is not limiting, and the optimization device 10 may receive power supply from a controller 20 or the like.
[0033] In FIG. 1, the optimization device 10 is shown as a device independent of the controller 20 of the moving body 2, but this is not limiting, and the optimization device 10 may be a device incorporated in the controller 20 of the moving body 2. In other words, the function of satellite positioning optimization calculation of the optimization device 10 may be implemented in the controller 20 of the moving body 2.
[0034] [Computer System] FIG. 9 shows a configuration example of the optimization device 10 in FIG. 1 as a computer system 10. The optimization device 10 can be implemented by, for example, a personal computer (PC) or an embedded microcomputer. This computer system 10 is mainly constituted by a computer 900, and the computer 900 has a processor 901, a memory 902, a non-volatile storage device 903, a communication interface 904, an input / output interface 905, a power supply 906, etc., and these components are interconnected by an architecture such as a bus.
[0035] For example, the processor 901 executes processing according to a program read from the non-volatile memory device 903 into the memory 902. Thereby, each functional block such as the constraint condition addition unit 105 in FIG. 1 is realized as an execution module. In the non-volatile memory device 903, predetermined data / information is retained without being erased even when the optimization device 10 is powered off. The GNSS receiver 100, the controller 20, or an external device, etc. is connected to the communication interface 904. The input / output interface 905 corresponds to the input / output interface 104 in FIG. 1. An input device 907 and an output device 908 are externally connected to the input / output interface 905. The input device 907 and the output device 908 may be built in the input / output interface 905. Examples of the input device 907 are an operation button, a keyboard, a mouse, a touch panel, a microphone, etc. Examples of the output device 908 are a display, a printer, a speaker, etc.
[0036] Various types of data such as setting information, input information, output information, and processing information are stored in the memory 902, the non-volatile memory device 903, or an external storage device (for example, a disk or a card). For example, data corresponding to the signal S9 of the position information of the moving body 2 as a positioning result may be stored in the memory 902.
[0037] Note that an external device may be connected to the computer 900 as another device. Examples of the external device include client terminal devices such as a user's PC or smartphone. The computer system 10 may input and output necessary data and information by communicating with the external device. For example, a client-server system may be configured between the computer 900 as a server and the user's client terminal device. In that case, the computer 900 as the server undertakes main processing, and the user's client terminal device undertakes input and output with a graphical user interface (GUI). The server may generate, for example, a GUI screen or GUI information for display within the screen in the form of, for example, a web page, and transmit it to the user's client terminal device. The user can check the GUI screen and GUI information displayed on the client terminal device and input instructions and settings as necessary. The client terminal device transmits such instructions to the computer 900 as the server. The computer 900 performs processing according to such instructions and transmits a GUI screen / GUI information including the processing result to the client terminal device.
[0038] The optimization device 10 is not limited to the configuration example as shown in FIG. 9, and may be a device including, for example, one or more processors and one or more memories, etc., and realizing processing related to a predetermined function by them.
[0039] [Observed value] The observed value 500 in this embodiment is configured to include, as an example, satellite information 2000 as shown in FIG. 2 and positioning information 3000 at the same time as shown in FIG. 3. The satellite information 2000 and the positioning information 3000 are information associated with each other for each time.
[0040] The satellite information 2000 in FIG. 2 includes a satellite identification number 200, a reception time 201, a satellite position 202, a pseudo range 203, and a carrier phase 204 for each GNSS satellite 91 which is a positioning satellite. The satellite position 202 is position coordinate information in the earth coordinate system (X, Y, Z) of the GNSS satellite 91.
[0041] The positioning information 3000 in FIG. 3 includes an observation value ID 300, a positioning time 301, positioning coordinates 302 for each epoch second of the moving body 2, a moving speed 303, and an estimated variance value 304. The observation value ID 300 is a serial number associated with each observation value 500 in the time series order received by the GNSS receiver 100. In the illustrated figure, the row with ID = 0 is the latest, the row with ID = n is the oldest, and there are n + 1 pieces of positioning information. The epoch second is the number of seconds elapsed from UTC. The positioning times 301 are described as t0, t1, ……, tn. Note that the difference between the positioning times 301 is defined as the positioning interval dt.
[0042] The positioning coordinates 302 are the position coordinates of the positioning result by the GNSS receiver 100. The moving speed 303 is a value calculated, for example, by the Doppler shift of the satellite signal S1 (FIG. 1) which is the received signal. The coordinate system for calculating the positioning coordinates 302 and the moving speed 303 is, as the Earth coordinate system, for example, the orthogonal coordinate system of (X, Y, Z) defined by Earth Centered Earth Fixed (ECEF). Hereinafter, all the position information and the like described in this embodiment are expressed in the orthogonal coordinate system of (X, Y, Z) defined by ECEF.
[0043] The estimated variance value 304 is information representing the degree of dispersion and variation of the positioning coordinates 302. In this embodiment, as one method for calculating the estimated variance value 304, for example, the maximum value among the predicted standard deviations for each of the (X, Y, Z) axes calculated from the geometric arrangement of the GNSS satellites 91 used for satellite positioning is used. In this embodiment, it is assumed that this predicted standard deviation is obtained by GNSS positioning by the GNSS receiver 100 or by the calculation of the optimization device 10. The maximum value of the predicted standard deviation means that it has the distribution of the measurement value that is farthest from the average value.
[0044] For example, in the row with ID = 0, each column of (Xσ, Yσ, Zσ) in the column of the estimated variance value 304 indicates the estimated variance value of each axis of (X, Y, Z). These (Xσ, Yσ, Zσ) have the calculated predicted standard deviation for each axis. And among the predicted standard deviations of those (Xσ, Yσ, Zσ), the maximum value is used as the estimated variance value 304. That is, when selecting the observed value 500 described later, this estimated variance value 304 is used. The same applies to each row of the observed value ID300. Note that in the observed value information DB108, at least the maximum value of the predicted standard deviation needs to be stored in the column of the estimated variance value 304.
[0045] [Sensor discrimination unit] The sensor discrimination unit 102 in FIG. 1 inputs and acquires the signal S2 of the analysis result of the satellite signal from the GNSS receiver 100 which is a sensor. The sensor discrimination unit 102 discriminates the observed value 500 from the signal S2, that is, discriminates the satellite information 2000 in FIG. 2 and the positioning information 3000 in FIG. 3, and transmits and stores the signal S3 corresponding to the data and information of the observed value 500 to the observed value information DB108.
[0046] [Observed value DB, constraint condition DB, and evaluation index DB] FIG. 10 shows a configuration example of the observed value information DB108, the constraint condition DB109, and the evaluation index DB111 in FIG. 1 as databases (DBs). The observed value information DB108, the constraint condition DB109, and the evaluation index DB111 are held in the memory 902 accessible by the processor 901 in FIG. 9 provided in the optimization device 10.
[0047] The observed value 500 included in the signal S3 from the sensor discrimination unit 102 is stored in the observed value information DB108. In this example, in the observed value information DB108 in FIG. 10, a data table T500 of the observed value information of the observed value 500 is stored. Further, the data table T500 of the observed value information includes a data table T2000 including satellite information 2000 as shown in FIG. 2 and a data table T3000 including positioning information 3000 as shown in FIG. 3, or is related by a link or the like.
[0048] In the configuration example of the constraint condition DB109 in FIG. 10, a data table T5000 of the constraint condition information of the constraint condition 5000 is stored. Specifically, as the three types of constraint conditions constituting the constraint condition 5000, a data table T501 of the single constraint information of the single constraint 501, a data table T502 of the movement constraint information of the movement constraint 502, and a data table T503 of the relative constraint information of the relative constraint 503 are stored in an associated manner.
[0049] In the configuration example of the evaluation index DB111 in FIG. 10, a data table T4000 of the evaluation index information of the evaluation index 4000 as shown in FIG. 4 is stored. In FIG. 1, the evaluation index acquisition unit 103 has an external evaluation index DB111 and reads and writes the information of the evaluation index 4000 in the evaluation index DB111. Not limited to this, the evaluation index DB111 may be integrated in the evaluation index acquisition unit 103.
[0050] Note that information such as a similar DB may be held in an external memory of an external device with respect to the optimization device 10. In addition, system setting information, user setting information, etc. may be set and stored in the DB. Although the case where a DB or a data table is used as an implementation example of the optimization device 10 has been shown, it is not limited to this, and other implementations may be adopted in order to speed up the calculation.
[0051] [Evaluation Index Acquisition Unit] The evaluation index acquisition unit 103 in FIG. 1 has a function of acquiring the evaluation index 4000 as shown in FIG. 4 and storing it in the memory. In other words, the evaluation index acquisition unit 103 has a function of setting the evaluation index 4000. The evaluation index 40,000 is information that serves as a reference when the observation value 500 and the selection / optimization of the constraint condition are performed by the constraint condition addition unit 105.
[0052] The evaluation index 4000 in FIG. 4 is data / information including an acquisition time window 400, the number of observation values 401, the number of constraint conditions 402, and optimization device ON / OFF information 403. In other words, the evaluation index 4000 is evaluation index setting information. Note that the calculation time threshold 405 (Tth) is not used in the first embodiment and is used in the second embodiment described later.
[0053] The evaluation index acquisition unit 103 in FIG. 1 acquires a signal S10 corresponding to evaluation index information input through the input / output interface 104 from a user or an external device. This signal S10 of the evaluation index information has at least one piece of information among the information (400 to 403) in each column of the evaluation index 4000 in FIG. 4. Based on the signal S10 of the evaluation index information, the evaluation index acquisition unit 103 creates an evaluation index 4000 as shown in FIG. 4 and stores it in the evaluation index DB111 in the memory. The user or the external device can perform initial setting, change, etc. of the numerical values of the evaluation index 4000 in FIG. 4 through the input / output interface 104 and the evaluation index acquisition unit 103.
[0054] The signal S5 supplied from the evaluation index acquisition unit 103 to the constraint condition addition unit 105 corresponds to the information of the evaluation index 4000 in FIG. 4 read from the evaluation index DB111.
[0055] In FIG. 4, in this embodiment, as one method for determining the evaluation index 4000, in advance, the user, in view of requirements such as the positioning requirements of the target moving body 2, inputs and sets the evaluation index 4000 to the evaluation index acquisition unit 103 via the input / output interface 104. As information for configuring the evaluation index 4000 in FIG. 4 by the user's setting, the acquisition time window Twin, the number of observation values Nnode, the number of constraint conditions Nedge, and the optimization device ON / OFF information, etc. are input as the signal S10. The requirements include, for example, the positioning period (e.g., upper limit value) for each time and the positioning accuracy (e.g., lower limit value), etc. Not limited to such a method of manual user setting, as a modification, it is also possible to perform automatic setting. In addition, on the GUI screen described later, the positioning requirements of the above-mentioned moving body 2 may also be set and confirmed.
[0056] In the modification example, in FIG. 1, an external device is connected to the optimization device 10 through the input / output interface 104, the communication interface 904 in FIG. 9, or the like. Evaluation index information or other information that can determine the evaluation index (for example, information on the positioning requirements of the moving body 2) is input from the external device, and based on the input information, the evaluation index acquisition unit 103 sets the evaluation index 4000. Not limited to the external device, the evaluation index information or the like may be input from the controller 20.
[0057] In this embodiment, the optimization device 10 is provided with a function of setting the evaluation index 4000 by the evaluation index acquisition unit 103, but it is not limited to this and is possible. In the modification example, this setting function may be provided in the controller 20, the moving body 2, the external device, or the like. In that case, the optimization device 10 may access the setting function provided in the controller 20, the moving body 2, or the external device and refer to the evaluation index information.
[0058] [Input / Output Interface] The input / output interface 104 is an interface that performs input and output for the optimization device 10. For example, an input device for inputting the signal S10 and an output device for outputting information such as the evaluation index 4000 are connected thereto. In this embodiment, the input / output interface 104 is particularly connected to the evaluation index acquisition unit 103 and can be used for input for setting information such as the evaluation index 4000 for the evaluation index acquisition unit 103 and output for confirming the set information such as the evaluation index 4000. Note that the optimization device 10 may incorporate an input device and an output device. The input / output interface 104 and the communication interface 904 in FIG. 9 may be implemented by a device different from the optimization device 10. The input / output interface 104 may be an interface for performing input by a human user and output to the user (such as screen display and voice output). Not limited thereto, the input / output interface 104 may be an interface for performing automatic input and output by a predetermined external device. The controller 20 of the mobile body 2 may have the input / output interface 104 and use the input / output interface 104 instead.
[0059] Also, the user, external device, controller 20, etc. can input information on ON / OFF of the function of the optimization device 10, that is, the function of the optimization calculation of satellite positioning, through the input / output interface 104 and the evaluation index acquisition unit 103. This information is set as an ON or OFF value in the optimization device ON / OFF information 403 in FIG. 4. ON indicates that the function is valid, and OFF indicates that the function is invalid.
[0060] When the optimization device ON information is input / set to the evaluation index acquisition unit 103 through the input / output interface 104, the function of the optimization device 10 is enabled according to the ON information. The processor 901 in FIG. 9 enables the function of the optimization device 10. That is, in the enabled state, the processing of the flow including from the sensor discrimination unit 102 to the optimization calculation unit 106 in FIG. 1 is executed. When the optimization device OFF information is input / set to the evaluation index acquisition unit 103 through the input / output interface 104, the function of the optimization device 10 is disabled according to the OFF information. The processor 901 disables the function.
[0061] Also, the above optimization device ON / OFF information is not limited to the form in which the user, external device, or controller 20 can give ON / OFF instructions or settings. For example, it may be input in a form directly associated with the ON / OFF of the power supply of the optimization device 10. That is, when the power supply of the optimization device 10 is turned on through the power supply unit 110 in FIG. 1, the above function of the optimization device 10 is automatically enabled. When the power supply of the optimization device 10 is turned off, the above function of the optimization device 10 is automatically disabled. Also, for example, in the default setting, the function of the optimization device 10 is set to the ON state, and when an instruction is input from the user or an external device etc. exceptionally, the function can be temporarily set to the OFF state. Or, in the default setting, the function of the optimization device 10 is set to the OFF state, and when an instruction is input from the user or an external device etc. exceptionally, the function can be temporarily set to the ON state.
[0062] [Constraint addition unit] The constraint condition addition unit 105 in FIG. 1 receives and acquires the signal S4 of the observed value 500 in time series from the observed value information DB 108. Further, the constraint condition addition unit 105 receives and acquires the signal S5 of the evaluation index 4000 from the evaluation index acquisition unit 103. Based on the acquired observed value 500 and evaluation index 4000, the constraint condition addition unit 105 performs the processes of selecting the observed value 500 and creating and selecting the constraint conditions. In other words, the constraint condition addition unit 105 is a constraint condition creation unit and a constraint condition selection unit. Note that the selection of the observed value 500 and the selection of the constraint conditions may be configured separately into two functional blocks.
[0063] The constraint condition addition unit 105 selects a plurality of observed values 500, that is, the number of observed values 500 corresponding to the number of observed values Nnode, from among the plurality of observed values 500 within the range of the acquisition time window Twin in FIG. 4, with the number of observed values Nnode as the upper limit. The constraint condition addition unit 105 additionally creates a plurality of constraint conditions, that is, the number of constraint conditions corresponding to the number of constraint conditions Nedge, for the selected plurality of observed values 500, with the number of constraint conditions Nedge as the upper limit. The information on the constraint conditions used in this embodiment and the connection method will be described later.
[0064] The constraint condition addition unit 105 transmits the information on the constraint conditions additionally created for the selected observed value 500 to the optimization calculation unit 106 and the constraint condition DB 109. The constraint condition addition unit 105 transmits the signal S8 corresponding to the observed value 500 and the information on the constraint conditions to the optimization calculation unit 106, and transmits the signal S6 corresponding to the same information on the constraint conditions to the constraint condition DB 109.
[0065] The constraint condition DB 109 receives and acquires the signal S6 corresponding to the information on the constraint conditions, and stores the information as the constraint condition 5000 as shown in FIG. 10. Specifically, the constraint condition 5000 has the single constraint 501 in FIG. 6, the movement constraint 502 in FIG. 7, and the relative constraint 503 in FIG. 8.
[0066] Also, in this embodiment, the constraint condition addition unit 105 checks and searches whether there is information on the same constraint condition as the constraint condition to be created in the constraint condition DB 109 before creating the constraint condition 5000. In other words, the constraint condition addition unit 105 checks whether the same constraint condition has been saved. When there is information on the same constraint condition as the constraint condition to be created in the constraint condition DB 109, in other words, when it has been saved, the constraint condition addition unit 105 may refer to and obtain the same constraint condition in the constraint condition DB 109. Thereby, the calculation for creating the constraint condition to be created may be omitted. In this embodiment, as shown in the flow described later, this check and omission are performed in a timely manner.
[0067] The constraint condition addition unit 105 can timely read the constraint condition information from the constraint condition DB 109 and obtain it as signal S7. For example, when there is no information on the same constraint condition as the constraint condition to be created in the constraint condition DB 109, the constraint condition addition unit 105 creates the constraint condition and stores it in the constraint condition DB 109 as signal S6. For example, when there is information on the same constraint condition as the constraint condition to be created in the constraint condition DB 109, the constraint condition addition unit 105 does not create the constraint condition but reads and obtains the same constraint condition information from the constraint condition DB 109 as signal S7.
[0068] Note that although the information on the created constraint condition is directly transmitted from the constraint condition addition unit 105 to the optimization calculation unit 106, it is not limited to this. The information on the created constraint condition may be stored in the constraint condition DB 109 from the constraint condition addition unit 105, and then the optimization calculation unit 106 may refer to and obtain the information on the constraint condition from the constraint condition DB 109.
[0069] [Optimization Calculation Unit] The optimization calculation unit 106 in FIG. 1 performs an optimization calculation process based on the signal S8 received from the constraint condition addition unit 105, which includes the observed value 500 and the constraint condition 5000. The optimization calculation unit 106 creates an objective function described later using these observed value 500 and constraint condition 5000, and performs an optimization calculation to adjust the position information of the observed value 500 so that the total error included in the objective function is minimized. The optimization calculation unit 106 transmits and outputs the corrected result of the position information of the observed value 500, in other words, the position information of the satellite positioning, as the signal S9 of the position information of the moving body 2 to the controller 20. This signal S9 of the position information of the moving body 2 is, in other words, the output signal of the optimization device 10. As the position information in this signal S9, the following position information is assumed to be calculated. That is, the position information about at least the observed value 500 with the latest positioning time 301 (FIG. 3) among the observed values 500 is calculated. Note that the optimization calculation unit 106 acquires the information of the observed value 500 as part of the signal S8 from the observed value information DB108 through the constraint condition addition unit 105. Not limited to this, the optimization calculation unit 106 may acquire only the information of the constraint condition 5000 from the constraint condition addition unit 105 and separately refer to the information of the observed value 500 from the observed value information DB108.
[0070] [Controller] The controller 20 receives and inputs the signal S9 of the position information of the moving body 2 from the optimization calculation unit 106 of the optimization device 10. The controller 20 has a function of performing control such as the speed and traveling direction of the moving body 2 as predetermined control based on the position information of this signal S9.
[0071] [Type of Constraint Condition and Definition of Factor Graph] Next, the types of constraint conditions in the positioning method using a factor graph will be described. In this embodiment, as the constraint conditions constituting the factor graph, three types of constraint conditions, i.e., the single constraint 501 in FIG. 6, the movement constraint 502 in FIG. 7, and the relative constraint 503 in FIG. 8, are used. Here, the contents and connection methods of the three types of constraint conditions will be described. FIGS. 5A and 5B show examples of a plurality of observation values 500, and FIG. 5C shows an example of the connection method between each constraint condition and the observation values in the three types of constraint conditions.
[0072] FIG. 5A shows a case where, for example, a plurality of observation values 500 are arranged in chronological order from the first to the sixth as the observation values 500. In this example, there are six observation values 500, i.e., observation values 500-1,..., 500-6. The time series, in other words, the time axis, is in the direction from left to right in the drawing. For example, the first observation value 500 is the oldest value that arrived first in time, and the sixth observation value 500 is the latest value that arrived later in time. In this drawing, each observation value 500 is illustrated in the form of a node with the number for identification surrounded by a circle. The number within the circle represents the order / identification number.
[0073] The six observation values 500 in FIG. 5A are examples of a plurality of observation values 500 to be treated as targets during one (in other words, one epoch) positioning process. This means that the number of observation values 500 within the range of the acquisition time window Twin in FIG. 4 is, for example, six. The acquisition time window Twin is information that defines the time range for acquiring a plurality of observation values 500 to be processed in one (epoch) positioning process. The optimization device 10 acquires a plurality of observation values 500 from the latest observation value 500 up to the number within the range of the acquisition time window Twin in the time series data of the observation values 500.
[0074] When there are, for example, six observed values 500 in Fig. 5A as input, the optimization device 10 (particularly the constraint condition addition unit 105) first selects the number of observed values 500 to be used up to the upper limit number based on the evaluation index 4000. At this time, the optimization device 10 selects the number of observed values 500 to be used up to the number corresponding to the number of observed values Nnode in Fig. 4, which is the upper limit number, based on the estimated variance value 304 in Fig. 3 described above (that is, the maximum value of the predicted standard deviation). Here, it is assumed that the number of observed values Nnode is five. The optimization device 10 selects five observed values 500 from the six observed values 500 in Fig. 5A in ascending order of the estimated variance value 304. In other words, the optimization device 10 excludes one observed value 500 with a large estimated variance value 304 from the six observed values 500 in Fig. 5A. In this example, consider the case where, as a result of the selection, the third observed value 500-3 is removed. Details of the method for selecting the observed values 500 up to the upper limit number will be described later.
[0075] Fig. 5B shows a plurality (five) of observed values 500 selected from Fig. 5A. The optimization device 10, particularly the constraint condition addition unit 105, creates a constraint condition 5000 for the selected observed values 500. As the constraint condition 5000 to be created, three types of constraint conditions, i.e., the single constraint 501 in Fig. 6, the movement constraint 502 in Fig. 7, and the relative constraint 503 in Fig. 8, are used.
[0076] Fig. 5C shows an example of the configuration of a factor graph when three types of constraint conditions, i.e., the single constraint 501, the movement constraint 502, and the relative constraint 503, are created for the observed values 500 selected in Fig. 5B. Each constraint condition is represented as a link line connected to the node of the observed value 500. Also, a small square mark is given to the single constraint 501, a small triangle mark is given to the movement constraint 502, and a small round mark is given to the relative constraint 503 for illustration. The data represented by the nodes of the observed values 500 and the links of the constraint conditions 5000 as in Fig. 5C corresponds to a factor graph.
[0077] A single constraint 501 is created for each observed value 500. In this example, corresponding to the five observed values 500 {1, 2, 4, 5, 6}, the five single constraints 501 {501-1, ……, 501-5} shown in the figure are created. Also, a movement constraint 502 is created between each pair of adjacent observed values 500 in the time series. In this example, corresponding to the five observed values 500, the four movement constraints 502 {502-1, ……, 502-4} shown in the figure are created.
[0078] Furthermore, a relative constraint 503 is created to connect the selected observed values 500 in the time series. In this example, the three relative constraints 503 {503-1, ……, 503-3} shown in the figure are created. The relative constraint 503-1 connects the second observed value 500-2 and the fifth observed value 500-5. The relative constraint 503-2 connects the fourth observed value 500-4 and the sixth observed value 500-6. The relative constraint 503-3 connects the second observed value 500-2 and the sixth observed value 500-6.
[0079] [Single Constraint] Figure 6 is a data table representing the single constraint 501, corresponding to the data table T501 in Figure 10. The single constraint 501 in Figure 6 has an observed value ID 601, a positioning time 602, and a single position 603. As shown in Figure 6, the single constraint 501 can be represented as a data table containing the position information of satellite positioning. The position information of satellite positioning is the positioning time 602 and the single position 603, and the single position 603 is the same information as the positioning coordinates 302 in Figure 3. The single constraint 501 is created individually for each observed value 500 identified by the observed value ID 601, as shown in Figure 5C. Note that it is also possible to omit saving the information of the created single constraint 501 to the constraint condition DB109.
[0080] [Movement Constraint] FIG. 7 is a data table representing the movement constraint 502 and corresponds to the data table T502 in FIG. 10. The movement constraint 502 in FIG. 7 has a first observation value ID701, a second observation value ID702, and a movement vector 703. As shown in FIG. 7, the movement constraint 502 can be expressed as a table including the movement vector 703 between the first observation value ID701 and the second observation value ID702 of two adjacent observation values 500 in chronological order. The movement vector 703 can be created from the movement speed 303 in FIG. 3. The movement constraint 502 is calculated so as to connect the selected observation values 500 arranged in chronological order as shown in FIG. 5C.
[0081] At the bottom of FIG. 7, as Equation 1 which is the calculation formula of the movement constraint 502, V ab =Σv i dt(i = a~b) is shown. When two observation values 500 are a and b, and the movement vector is V ab , the movement vector V ab is calculated by Equation 1 using the movement speed 303 (denoted as v i ) in FIG. 3 included in the observation value 500 and the positioning interval dt of the observation value 500.
[0082] As an example, in FIGS. 5B and 5C, for two adjacent observation values 500 of the second observation value 500-2 and the fourth observation value 500-4, the movement constraint 502-2 connecting these two observation values 500 includes the removed observation value 500-3, and for each of the second, third, and fourth observation values 500 (500-2, 500-3, 500-4), the product of the movement speed v i and the positioning interval dt is calculated, and these products are combined to be calculated.
[0083] [Relative Constraint] FIG. 8 is a data table representing the relative constraint 503, which corresponds to the data table T503 in FIG. 10. The relative constraint 503 has a first observation value ID801, a second observation value ID802, and a relative position 803. As shown in FIG. 8, the relative constraint 503 can be expressed as a table including the relative position 803 between the first observation value ID801 and the second observation value ID802 of two observation values 500. The relative position 803 is calculated by performing relative positioning using the satellite information 2000 in FIG. 2 included in the observation value 500 for the selected two observation values 500. The constraint condition addition unit 105 creates and stores this relative position 803. In the table of FIG. 8, all combinations of two observation values 500 are prepared as rows, and information only needs to be stored in the rows of the selected combination of observation values 500. Not limited to this, only the selected combinations of observation values 500 may be created as rows. Also, the presence or absence of selection of the observation value 500 may be set as 1 / 0.
[0084] As shown in FIG. 5C, the relative constraint 503 is created in a number with the number of constraint conditions Nedge in FIG. 4 as the upper limit value. The method for selecting the relative constraint 503 will be described later.
[0085] [Relative positioning] When creating the relative constraint 503 in FIG. 8, the constraint condition addition unit 105 of the optimization device 10 executes relative positioning processing based on the data of the observation value 500. For this relative positioning, known techniques can be applied, and detailed description is omitted. Briefly described, this relative positioning is a method of measuring the time difference when the GNSS satellite signals 92 from the GNSS satellite 91 reach the respective reception positions (for example, two points) of the GNSS receiver 100 based on the position of the GNSS satellite 91 in FIG. 1, and obtaining the relative positional relationship between the two points.
[0086] Not limited to this, the relative position 803 between the observation values 500 may be calculated using a method or another sensor value different from relative positioning.
[0087] [Regarding duplication of observation values and constraint conditions] Note that FIG. 5A illustrates six observed values 500 obtained at a certain point in time (e.g., the first point in time). At the next point in time (e.g., the second point in time), a new observed value 500, e.g., the seventh observed value 500, is obtained. At this next point in time (the second point in time), when dealing with six observed values 500 in the same way, the target of the positioning process for one time is the six observed values 500 from the second to the seventh. The same applies to each subsequent point in time. The optimization device 10 may perform the same processing at each point in time.
[0088] Also, for example, assuming that constraint conditions 5000 (e.g., FIG. 5C) are created for the six observed values 500 at the first point in time, and the information of the created constraint conditions 5000 is stored in the constraint condition DB109. Similarly, constraint conditions are created for the six observed values 500 at the next second point in time. At that time, at the first point in time and the second point in time, some of the observed values 500, that is, the observed values 500 from the second to the sixth, are the same and overlap. Therefore, some of the constraint conditions 5000 created at the second point in time may be the same as the constraint conditions 5000 created at the first point in time. Therefore, for the same constraint conditions 5000, there is no need to perform the creation process again. As described above, it is only necessary to refer to and use the same constraint condition information in the constraint condition DB109.
[0089] The example of FIG. 5D shows the state where a new observed value 500, e.g., the seventh observed value 500 (500-7), is obtained at the second point in time, which is the next point in time with respect to FIG. 5C. Assume that constraint conditions 5000 are created as shown in the figure in the round corresponding to the second point in time. The dashed line and white color are the overlapping parts with respect to the previously created constraint conditions 5000, and the solid line and black color are the parts of the constraint conditions 5000 newly created this time and do not overlap with the previous ones. The newly created parts are the single constraint 501-6, the movement constraint 502-5, and the relative constraint 503-4. In this case, for the overlapping parts, it is only necessary to refer to and use the same constraint condition information in the constraint condition DB109.
[0090] [Selection of Constraint Conditions] Next, an algorithm for selecting constraint conditions in the constraint condition addition unit 105, in other words, processing logic and the like will be described.
[0091] In a factor graph like FIG. 5C, when there is a portion where observations 500 with few connected constraint conditions 5000 (especially relative constraints 503) are continuous, the positioning accuracy decreases. For the sake of explanation, an observation 500 with few connected constraint conditions 5000, especially an observation 500 with the minimum number of connections to the relative constraint 503, is also referred to as the observation Nmin. Therefore, even when the amount of past information and the number of constraint conditions 5000 are the same, by constructing the factor graph so that observations 500 with few connected constraint conditions 5000 are not continuous and adjacent to each other, that is, by selecting the constraint conditions 5000 in such a way, the positioning accuracy can be maintained or improved.
[0092] In the constraint condition selection algorithm in this embodiment, after selecting the observations 500 as shown in FIG. 5B and creating the independent constraint 501 and the movement constraint 502, the constraint condition addition unit 105 selects the relative constraint 503. As the selection, the constraint condition addition unit 105 selects and sets the relative constraint 503 to be created so that the number of portions where observations 500 with few connected constraint conditions 5000 (especially relative constraints 503) are continuous in time series in the factor graph is minimized. Details will be shown in FIGS. 13A to 13F described later. By such an algorithm, even when an upper limit is set on the number of observations 500 and constraint conditions 5000, these can be appropriately selected, and while reducing the calculation load, the positioning accuracy can be maintained or improved.
[0093] [Overall Flow] FIGS. 11A and 11B show the overall flow of operations and processes in the positioning system 1 of Embodiment 1. The optimization device 10 in FIG. 1 operates and processes according to this flow. This flow shows the overall flow of positioning that realizes reduction of the calculation load while maintaining the positioning accuracy by using processes such as the flow processes (selection of observations 500 and constraint conditions 5000) as shown in FIGS. 12A to 12C described later.
[0094] The flow of FIG. 11A is activated, for example, when the power is turned on in the optimization device 10 of FIG. 1. For example, when the user performs an operation input via the input / output interface 104, the optimization device ON information is input as signal S10. Based on signal S10, the evaluation index acquisition unit 103 turns on the optimization device ON / OFF information 403 of the evaluation index 4000 in FIG. 4 of the evaluation index DB111. Using the optimization device ON information as a trigger, the optimization device 10 executes the processes of the flows of FIGS. 11A and 11B. The processing of this flow is continuously and repeatedly executed until the optimization device ON / OFF information 403 becomes OFF. For example, when the user performs an operation input via the input / output interface 104 and inputs the optimization device OFF information as signal S10. The evaluation index acquisition unit 103 turns off the optimization device ON / OFF information 403 of the evaluation index 4000 in FIG. 4. Using this optimization device OFF information as a trigger, the optimization device 10 stops the processing of this flow.
[0095] The processing of this flow can be automatically switched between execution and stop not only based on the operation of the optimization device ON / OFF information 403 by the above user, but also based on the setting of the optimization device ON / OFF information 403. For example, an external device may set ON or OFF for the optimization device ON / OFF information 403 via the input / output interface 104.
[0096] [S100] In FIG. 11A, in step S100, the optimization device 10 checks the optimization device ON / OFF information 403 in the evaluation index acquisition unit 103. If it is ON, the processes of steps S101 to S111 in the loop are repeatedly executed.
[0097] [S101] In step S101, the evaluation index acquisition unit 103 acquires, through the input / output interface 104, for example, the acquisition time window Twin, the number of observed values Nnode, and the number of constraint conditions Nedge in the evaluation index 4000 shown in FIG. 4 that are input / set by the user. When there is no input from the user, the numerical values of the evaluation index 4000 already stored in the evaluation index DB111 of the evaluation index acquisition unit 103, for example, the initial setting values, are used as they are.
[0098] [S102] In step S102, the positioning antenna 101 receives the GNSS satellite signal 92 from the GNSS satellite 91, and transmits the signal S1 corresponding to this received satellite signal, which is the satellite signal, to the GNSS receiver 100. At this time, in the positioning antenna 101, in addition to the received satellite signal, a correction signal having correction information for correcting the positioning result may also be received and transmitted to the GNSS receiver 100. Further, in addition to the positioning antenna 101, a receiving device for receiving a correction signal having correction information may be prepared, and the correction signal having correction information received by this receiving device may be transmitted to the GNSS receiver 100 together with the satellite signal received by the positioning antenna 101.
[0099] [S103] In step S103, the GNSS receiver 100 analyzes the signal S1 corresponding to the received satellite signal, and transmits the analyzed signal S2 to the sensor discrimination unit 102. The analyzed signal S2 includes the aforementioned observed values 500, specifically, the satellite information 2000 in FIG. 2 and the positioning information 3000 in FIG. 3. Further, when the GNSS receiver 100 receives a correction signal having the above correction information, the GNSS receiver 100 may correct the observed values 500 using this correction information and then create the analyzed signal S2.
[0100] [S104] In step S104, the sensor discrimination unit 102 extracts / creates the observed values 500 from the analyzed signal S2 received from the GNSS receiver 100, and transmits / stores the signal S3 of the observed values 500 in the observed value information DB108.
[0101] [S105] In step S105, in the constraint condition addition unit 105, from the evaluation index DB111 of the evaluation index acquisition unit 103, as the signal S5, the acquisition time window Twin, the number of observed values Nnode, and the number of constraint conditions Nedge in the evaluation index 4000 are acquired.
[0102] [S106] In step S106, in the constraint condition addition unit 105, the observed value 500 stored in the observed value information DB108 is referred to, and based on the observed value ID300 (FIG. 3) of the observed value 500, the presence or absence of update (in other words, addition) of the observed value 500 is confirmed. If there is no update to the observed value 500, for example, if there is no addition of an observed value 500 having a new observed value ID300 (S106-N), the overall flow in this epoch is completed, and the process transitions to the last step S111 of the loop. An epoch is a unit of signals received simultaneously from satellites, or a period or number of acquisitions of data. Also, the optimization device 10 stores the list of observed value IDs 300 in the observed value information DB108 confirmed in step S106 in the memory or the like of the constraint condition addition unit 105, and reads out and uses the list when confirming the update in step S106 in the next epoch. If there is an update to the observed value 500 (S106-Y), the process proceeds to step S107 in FIG. 11B.
[0103] [S107] In step S107 in FIG. 11B, in the constraint condition addition unit 105, the reception time range of the observed value 500 (the range of the reception time 201 in FIG. 2) stored in the observed value information DB108 is compared with the time length of the acquisition time window Twin. If the reception time range is shorter than the acquisition time window Twin (S107-Y), the process proceeds to step S107-2. In step S107-2, in the constraint condition addition unit 105, all the observed values 500 in the observed value information DB108 are acquired. If the reception time range is longer than or equal to the acquisition time window Twin (S107-N), the process proceeds to step S107-1. In step S107-1, in the constraint condition addition unit 105, the observed values 500 having the reception time 201 from the latest observed value 500 in the observed value information DB108 to the acquisition time range (the range corresponding to the acquisition time window Twin) are acquired.
[0104] [S108] In step S108, the constraint condition addition unit 105 checks the estimated variance value 304 in FIG. 3 included in the acquired observation value 500, and preferentially selects the observation value 500 in ascending order of the estimated variance value 304 until the number corresponding to the number of observation values Nnode of the evaluation index 4000 in FIG. 4 is reached. In other words, the observation values 500 corresponding to the number of observation values Nnode are selected in the priority order based on the estimated variance value 304.
[0105] [S109] In step S109, in the constraint condition addition unit 105, based on the selected observation value 500, as each constraint condition corresponding to the observation value 500, a single constraint 501, a movement constraint 502, and a relative constraint 503 are created. Details are shown in the flow of FIG. 12A or the like. The constraint condition addition unit 105 transmits the signal S8 of the observation value 500 corresponding to the created constraint condition 5000 to the optimization calculation unit 106, and also transmits and stores the signal S6 of the constraint condition in the constraint condition DB 109.
[0106] [S110] In step S110, in the optimization calculation unit 106, based on the observation value 500 and the signal S8 of the constraint condition 5000 received from the constraint condition addition unit 105, a minimization calculation of the objective function is executed. The optimization calculation unit 106 formulates the objective function of the optimization calculation according to the constraint condition 5000, creates the position information of the moving body 2 by the optimization calculation, and outputs and transmits the created position information as the signal S9 to the controller 20.
[0107] The minimization calculation of the objective function in the optimization calculation is as follows. FIG. 14 shows the mathematical formula related to the optimization calculation. The observation value ID 300 (FIG. 3) of the observation value 500 to be processed is set as i in chronological order. The single position 603 (FIG. 6) of the single constraint 501 at ID = i is set as the position vector r GNSS i and the movement vector 703 (FIG. 7) of the movement constraint 502 at ID = i, i + 1 is set as the velocity vector v GNSS iLet the relative position 803 (Fig. 8) of the relative constraint 503 at IDs i and j be B i,j be. Let the position coordinates of the moving body 2 to be obtained at ID = i be ri and the velocity vector be vi. At this time, the optimization calculation unit 106 creates the equations 2 to 4 in Fig. 14 using the position coordinates ri and the velocity vector vi. However, at this time, the replacement as shown in Equation 5 is being done. The x in Equation 5 is information on the set of the position coordinates and the velocity vector. The x i GNSS in is the measured value by the GNSS receiver 100, and x i is a value close to the true value to be obtained.
[0108] In each of the above three equations, i.e., equations 2 to 4, the optimization calculation unit 106 creates an evaluation function as shown in equations 6 to 8 in Fig. 14. In equations 6, 7, and 8, each of the e{e GNSS,i ,e MOT,i ,e Tr,(i,j)} are three types of errors / errors. For these e, evaluation functions are created as shown in equations 6, 7, and 8 respectively. This evaluation function is a function for evaluating the constraint condition 5000.
[0109] Ωgnss, Ωdop, and Ωtr in equations 6 to 8 are information matrices that determine the weights of the respective evaluation functions as shown in Fig. 15. This information matrix may be set and stored as a constant in the optimization calculation unit 106 in advance, for example.
[0110] The optimization calculation unit 106 creates an objective function using these evaluation functions. If the objective function of the optimization calculation is F(x), the objective function F(x) is as shown in equation 9 in Fig. 14. For example, by adding the three evaluation functions in equations 6, 7, and 8, the objective function F(x) as shown in equation 9 is obtained.
[0111] The optimization calculation unit 106 obtains x (x1, ……, xn) that minimizes the value of the objective function F(x) as the solution of the objective function F(x). x is, in other words, the position coordinates ri and the velocity vector vi. At this time, the optimization calculation unit 106 uses the individual position for each observation value ID300 in the position information as the initial value and calculates using a predetermined optimization method. As the predetermined optimization method, for example, methods such as the least squares method, the simulated annealing method, and the genetic algorithm can be applied.
[0112] The optimization calculation unit 106 transmits and outputs, as the signal S9, the position information of the moving body 2 in each observation value ID300 included in x (x1, ……, xn) derived in this way to the controller 20.
[0113] [S111] In step S111, the evaluation index acquisition unit 103 acquires the optimization device ON / OFF information 403 through the input / output interface 104. If the acquired optimization device ON / OFF information 403 is ON, it returns to step S100. If it is OFF, the operation of the optimization device 10 ends.
[0114] [Computational load of optimization calculation] The optimization calculation in step S110 is based on a method applying a factor graph. In this method, generally, the larger the number of constraint conditions (especially the relative constraint 503) used in the optimization calculation, the greater the computational load and the longer the calculation time tend to be. In particular, the minimization calculation for obtaining the solution of the objective function F(x) has a relatively large computational load.
[0115] Therefore, in this embodiment, prior to step S110, it is intended to reduce the number of constraint conditions 5000 used in the optimization calculation in step S110. That is, in this embodiment, in step S109, the constraint condition addition unit 105 adjusts and controls the number of constraint conditions 5000 to be created according to the number of constraint conditions Nedge of the evaluation index 4000 in FIG. 4.
[0116] FIG. 16 shows, as a comparative example, an example of the number of creations of the constraint condition 5000 in the factor graph related to the optimization calculation. FIG. 16 is a comparative example with respect to the examples of FIGS. 13A to 13F described later. FIG. 16 is an example in which, in one epoch, five relative constraints 503 are created for 11 observed values 500 (denoted by #1 to #11). In this example, first, a first relative constraint 503a is created between the first observed value #1 and the fourth observed value #4. Next, a second relative constraint 503b is created between the seventh observed value #7 and the tenth observed value #10. Next, a third relative constraint 503c is created between the second observed value #2 and the fifth observed value #5. Next, a fourth relative constraint 503d is created between the eighth observed value #8 and the eleventh observed value #11. Next, a fifth relative constraint 503e is created between the third observed value #3 and the sixth observed value #6.
[0117] [Processing Flow of Selection of Constraint Conditions] FIGS. 12A, 12B, and 12C show a processing flow including the creation and selection processing of the constraint condition 5000 by the constraint condition addition unit 105 of FIG. 11B in step S109 of Embodiment 1. This flow shows a detailed processing example of the creation and selection of the constraint condition 5000 after the observed values 500 are selected as shown in FIG. 5B by the constraint condition addition unit 105. Correspondingly, FIGS. 13A to 13F illustrate an example of the selection of the relative constraint 503 from step S206 to step S214. The constraint condition addition unit 105 creates three types of constraint conditions 5000, namely, the single constraint 501, the movement constraint 502, and the relative constraint 503, based on a plurality of observed values 500 selected up to the number of observed values Nnode in step S109 of FIG. 11B.
[0118] [S201] In step S201, the constraint condition addition unit 105 creates a single constraint 501 for each of the selected observed values 500.
[0119] [S202] In step S202, the constraint condition addition unit 105 counts the number of created movement constraints 502 from 1, and repeatedly executes the processes of the steps in the loop (steps S203, S203-1, S203-2). The constraint condition addition unit 105 increments the count by 1 each time it repeats. When the count value reaches the same number as the number of observed values Nnode, it exits the loop and proceeds to step S204. In step S202, the constraint condition addition unit 105 arranges the selected observed values 500 in chronological order, and plans to create movement constraints 502 between adjacent observed values 500 in the order of the older positioning times 301 in FIG. 3 for each count.
[0120] [S203] In step S203, the constraint condition addition unit 105 checks whether information on the same movement constraint as the movement constraint 502 scheduled to be created is stored in the constraint condition DB 109. If this storage is confirmed (S203-Y), it proceeds to step S203-1. In step S203-1, the constraint condition addition unit 105 refers to and acquires information on the movement constraint 502 that is the same as the movement constraint 502 scheduled to be created from within the constraint condition DB 109. If information on the same movement constraint as the movement constraint 502 scheduled to be created is not stored (S203-N), it proceeds to step S203-2. In step S203-2, the constraint condition addition unit 105 creates the movement constraint 502 for the part that is not stored in the constraint condition DB 109 in the movement constraint 502 scheduled to be created.
[0121] [S204] In step S204 after the above loop, based on the observed value ID300 in FIG. 3, the constraint condition addition unit 105 checks whether information on the relative constraint 503 identical to the planned relative constraint 503 using the observed value 500 at the latest time and the observed value 500 at the oldest time among the selected observed values 500 is already stored in the constraint condition DB109. If information on the relative constraint 503 having the same observed value ID300 as the planned relative constraint is stored in the constraint condition DB109 (S204 - Y), the process proceeds to step S204 - 1. In step S204 - 1, the constraint condition addition unit 105 omits the calculation of the planned relative constraint 503 by referring to and acquiring the constraint condition information in the constraint condition DB109.
[0122] If information on the relative constraint 503 having the same observed value ID300 as the planned relative constraint is not stored in the constraint condition DB109 (S204 - N), the process proceeds to step S204 - 2. In step S204 - 2, the constraint condition addition unit 105 creates and sets the relative constraint 503 between the observed value 500 at the latest time and the observed value 500 at the oldest time by performing relative positioning using the corresponding satellite information 2000 in FIG. 2 between the observed values 500. After steps S204 - 1 and S204 - 2, the process continues to the flow F2 in FIG. 12B.
[0123] Step S204 - 2 is a process of forming a closed loop by creating a relative constraint 503 that connects the oldest observed value 500 and the latest observed value 500 as the first most - prioritized relative constraint 503. In the example of FIG. 13A, a relative constraint 503A that connects the oldest observed value #1 and the latest observed value #11 is created.
[0124] [Confirmation of Information on Constraint Conditions to be Created] In steps S203 and S204, for the movement restraint 502 and relative restraint 503 to be created, it is checked whether the same restraint information is saved. In this check process, if two observed values 500 to be connected by the restraint condition are known, the restraint condition can be specified. That is, for example, as shown in FIG. 8, each relative restraint 503 is defined by two IDs, the first observed value ID801 and the second observed value ID802. Also, the value stored in the column of the relative position 803 has the same value as the previous time unless the relative restraint 503 between the two observed values 500 is recreated or updated. Therefore, by examining such observed value IDs, it is possible to easily confirm whether the same restraint condition as the restraint condition to be created has been saved.
[0125] [S205] In the flow F2 of FIG. 12B, in step S205, the restraint condition addition unit 105 counts the number of relative restraints 503 from 1 and repeatedly executes the steps (steps S206 to S215, S215-1, S215-2) within the subsequent loop. Each time the restraint condition addition unit 105 repeats, it increments the count by 1. When the count value exceeds the number of restraint conditions Nedge in FIG. 4, it exits the loop up to FIG. 12C and ends the flow. Thereby, the number of relative restraints 503 can be suppressed to the number of restraint conditions Nedge, and the calculation load can be reduced.
[0126] [S206] In step S206, among the observed values 500 after selection, the observed value 500 with the minimum number of connections of the relative restraint 503 is set as the observed value Nmin.
[0127] In FIG. 13A, for example, it has 11 selected observed values 500. Here, the 11 observed values 500 are illustrated by assigning #1 to #12 corresponding to the observed value ID 300 in the time series order of the positioning time 301 for identification. The illustration of the single constraint 501 is omitted. In this example, the 11 observed values 500 are connected by the movement constraint 502 in pairs adjacent to each other in the time series order. The movement constraint 502 is illustrated as a dashed link. Also, it shows a case where some of these observed values 500 (#1, #4, #8, #11) are connected by the relative constraint 503. The relative constraint 503 is illustrated as a solid link. The observed values 500 (#1, #4, #8, #11) connected by the relative constraint 503 are illustrated as white circle nodes. Based on step S204, a relative constraint 503 (503A) is created between the oldest observed value #1 and the latest observed value #11. A relative constraint 503 (503B) is created between the observed value #4 and the observed value #8. Each of these 4 observed values 500 (#1, #4, #8, #11) has a connection number of 1 for the relative constraint 503.
[0128] In this case, it has 7 observed values 500 (#2, #3, #5, #6, #7, #9, #10) that are not connected by the relative constraint 503. Each of these 7 observed values 500 has a connection number of 0 for the relative constraint 503. Therefore, in the state of FIG. 13A, these 7 observed values 500 become the observed value Nmin which is the "observed value with the minimum connection number of relative constraints" in step S206. The observed value Nmin is illustrated as a gray circle node.
[0129] In this embodiment, as shown in the example of FIG. 13A, as one way of creating the relative constraint 503, the oldest observed value #1 and the latest observed value #11 are always connected by the relative constraint 503. Thereby, a closed loop is formed among the plurality (11) of observed values 500, and the positioning accuracy can be improved.
[0130] [S207] In step S207, when arranging the selected observed values 500 in chronological order, the constraint condition addition unit 105 searches for a section in which the observed value Nmin is continuously arranged. Here, the section in which the observed value Nmin is continuously arranged is defined as section Sc.
[0131] [S208] In step S208, the constraint condition addition unit 105 searches for the section Sc among the sections Sc searched in step S207, in which the continuously arranged observed values Nmin are the most numerous, and designates the searched section Sc as section Scm in particular.
[0132] In the example shown in FIG. 13B, there are two sections Sc in which two observed values Nmin are continuously arranged, and one section Sc in which three observed values Nmin are continuously arranged. The sections Sc in which two observed values Nmin are continuously arranged are section Sc1 (observed values #2, #3) and section Sc3 (observed values #9, #10). The section Sc in which three observed values Nmin are continuously arranged is section Sc2 (observed values #5, #6, #7). At this time, the section Sc2 in which three observed values Nmin are continuously arranged is the section Sc in which the continuously arranged observed values Nmin are the most numerous. Therefore, this section Sc2 becomes the section Scm that is the "longest section" in step S208.
[0133] [S209] In step S209, the constraint condition addition unit 105 checks whether there are multiple candidates for the section Scm (referred to as candidate section Scx) retrieved in step S208. If there are multiple candidates (S209 - Y), it proceeds to step S209 - 1. If there are no multiple candidates (S209 - N), it proceeds to step S210. In step S209 - 1, the constraint condition addition unit 105 selects one from the multiple candidates as the section Scm. When the observed values 500 within the section Scm (candidate section Scx) are arranged in chronological order, the constraint condition addition unit 105 uses the observed value 500 that becomes the median value, and selects the section Scm (candidate section Scx) within which the estimated variance value 304 in FIG. 3 is small as the section Scm. When the median value is not one observed value 500 but multiple, one with the smallest estimated variance value 304 among them may be selected. In the example of FIG. 13B, the candidate section Scx of the section Scm is only one, which is the section Sc2. Therefore, step S209 - 1 is not executed.
[0134] [S210] In step S210, when the observed values 500 within the section Scm are arranged in chronological order, the constraint condition addition unit 105 selects the observed value that becomes the median value as the observed value N1 and excludes it from the observed values Nmin. At this time, when there are multiple median values within the section Scm instead of one, the one with the smallest estimated variance value 304 is selected as the observed value N1. In the example of FIG. 13B, the section Sc2, which is the section Scm, contains three observed values Nmin (#5, #6, #7). At this time, the second observed value Nmin (#6) in chronological order is the median value. In this case, this observed value Nmin (#6) is selected as the observed value N1. The observed value N1 will no longer be an observed value Nmin when the relative constraint 503 is created as described later.
[0135] [S211] In step S211, when the selected observed values 500 are arranged again in time series, the constraint condition addition unit 105 searches for an interval Sc in which the observed values Nmin are arranged continuously. The observed value N1 is not included in these observed values Nmin. In the example of FIG. 13C, it shows a state where the observed value N1 (#6) selected in FIG. 13B is excluded from the observed values Nmin. This observed value N1 (#6) is not in the state of the observed value Nmin and is illustrated by a white diamond node for distinction.
[0136] [S212] In step S212, the constraint condition addition unit 105 searches for the longest interval Scm among the intervals Sc searched in step S211. In the example of FIG. 13D, there are two intervals Sc in which two observed values Nmin are arranged continuously, which are interval Sc1 (#2, #3) and interval Sc3 (#9, #10). Also, there are two intervals Sc in which only one observed value Nmin is arranged, which are interval Sc4 (#5) and interval Sc5 (#7). Here, it is assumed that those with a continuous number of 1, that is, those with only one observed value 500, are also included in the concept of the interval Sc.
[0137] At this time, in the example of FIG. 13D, intervals Sc1 and Sc3, as two intervals Sc in which two observed values Nmin are arranged continuously, become candidates (candidate intervals Scx) for the interval Scm. After step S212, it follows the flow F3 in FIG. 12C.
[0138] [S213] In FIG. 12C, in step S213, the constraint condition addition unit 105 checks whether there are multiple candidates (candidate intervals Scx) for the interval Scm searched in step S212. If there are multiple (S213 - Y), it proceeds to step S213 - 1. If there are not multiple (S213 - N), it proceeds to step S214. In step S213 - 1, the constraint condition addition unit 105 selects, as the interval Scm, the interval Scm (candidate interval Scx) in which the estimated variance value 304 of the observed value 500 that becomes the median is small when the observed values 500 within the interval Scm (candidate interval Scx) are arranged in time series order.
[0139] In the example of FIG. 13D, there are two candidate intervals Scx for the interval Scm, which are interval Sc1 and interval Sc3. Therefore, the process proceeds to step S213-1. In this example, for both candidates of interval Sc1 and interval Sc3, the number of observed values Nmin is 2, which is an even number, and there are two observed values 500 that become the median. Therefore, all the estimated variance values 304 for the four observed values Nmin (#2, #3, #9, #10) included in these two candidate intervals (Sc1, Sc3) are compared.
[0140] In the example of FIG. 13E, assuming that, among the two candidate intervals (Sc1, Sc3) in FIG. 13D, for example, the estimated variance value 304 for the observed value Nmin in interval Sc1 is the smallest. Therefore, it shows the case where this interval Sc1 is selected as the interval Scm.
[0141] [S214] In step S214, when the observed values 500 within the interval Scm are arranged in chronological order, the constraint condition addition unit 105 selects the observed value 500 that becomes the median as the observed value N2 and excludes it from the observed values Nmin. At this time, when there are multiple medians within the interval Scm, the one with the smaller estimated variance value 304 is selected as the observed value N2. In the example of FIG. 13E, among the two observed values #2 and #3 in interval Sc1, which is the interval Scm, the observed value #2 is selected as the observed value N2. This observed value N2 is illustrated with a rhombus node for distinction, similar to the observed value N1.
[0142] [S215] In step S215, based on the observed value ID300, the constraint condition addition unit 105 plans to create a relative constraint 503 using the two observed values N1 and N2, and checks whether relative constraint information identical to this planned relative constraint 503 is stored in the constraint condition DB109. If information on a relative constraint 503 having the same observed value ID300 as the planned relative constraint 503 is stored (S215 - Y), the process proceeds to step S215-1. In step S215-1, the constraint condition addition unit 105 refers to and acquires the information on the relative constraint 503 from within the constraint condition DB109, thereby omitting the calculation of the planned relative constraint 503.
[0143] When the information of the relative constraint 503 having the same observation value ID 300 as the relative constraint 503 to be created is not stored (S215-N), the process proceeds to step S215-2. In step S215-2, the constraint condition addition unit 105 creates a relative constraint 503 between the observation value N1 and the observation value N2, and stores the information of the newly created relative constraint 503 in the constraint condition DB 109.
[0144] In the example of FIG. 13F, a state is shown in which a relative constraint 503 (503C) is created between the observation value N1 (#6) and the observation value N2 (#2). As a result, a total of three relative constraints 503 (503A, 503B, 503C) are created for the 11 observation values 500 (#1 to #11). Since the number of constraint conditions Nedge in FIG. 4 is 3, three relative constraints 503 (503A, 503B, 503C) are created according to this setting and conditions.
[0145] Through the above flow, the constraint condition addition unit 105 selects the observation value 500 with a small estimated variance value 304 and the constraint condition 5000 (especially the relative constraint 503), thereby reducing the calculation load while maintaining the positioning accuracy.
[0146] In this embodiment, as in the above flow, using the observation value Nmin with the minimum number of connections of the relative constraint 503, the section Scm with the largest number of consecutive observation values Nmin arranged continuously, and the observation values N1 and N2, the relative constraint 503 is created in a number reduced to the number of constraint conditions Nedge in FIG. 4. As in the examples of FIGS. 13A to 13F, the relative constraints 503 (503A, 503B, 503C) are selected so that the number of consecutive observation values Nmin not connected to the relative constraint 503 decreases. The observation value N1 (#6) and the observation value N2 (#2), which are two observation values 500 forming the newly created relative constraint 503C, are selected as suitable observation values 500 for creating a relative constraint 503C that can improve the positioning accuracy as a whole of the factor graph.
[0147] In the flows of FIGS. 12A to 12C, the processes with relatively high computational loads are, in particular, the creation of the relative constraint 503 in step S204-2 and the creation of the relative constraint 503 in step S215-2. These processes include relative positioning processing. The more relative constraints 503 are created, the greater the computational load. However, the number of relative constraints 503 created as described above is limited, and within that limit, the relative constraints 503 are selected so that the positioning accuracy is as high as possible. Therefore, both high positioning accuracy and reduction of computational load can be achieved.
[0148] Comparing the example of FIG. 13F with the comparative example of FIG. 16. For the 11 observed values 500, the number of relative constraints 503 created is 5 in the comparative example of FIG. 16, but is reduced and suppressed to 3 in the example of FIG. 13F. Due to this reduction and suppression in the number, the computational load is reduced, and as a result, the processing time is also shortened, and the real-time performance regarding the positioning of the moving body 2 can be ensured.
[0149] [Graphical User Interface (GUI)] Regarding the various data and information shown in each drawing described in this embodiment, such as tables and factor graphs, for example, regarding the contents of FIGS. 2, 3, 4, 6, 7, 8, 13A to 13F, 15, etc., it may be displayed on the display screen of the display device together with the GUI via the input / output interface 104 of FIG. 1, or the controller 20 or an external device. Not limited to display, audio output or the like may also be used. Thereby, the user can view various data and information on the screen and perform confirmation, setting, etc.
[0150] FIG. 17 shows an example of the display of the GUI screen in this embodiment. On the screen of FIG. 17, information on the evaluation index 4000 regarding satellite positioning is displayed, and setting by the user is possible. Also, information on the constraint conditions (particularly the relative constraint 503) is displayed in the form of a factor graph similar to FIG. 13F. Further, a data table of the relative constraint 503 is displayed.
[0151] [Effects of Embodiment 1, etc.] According to Embodiment 1, the above-described processing by the optimization device 10 regarding the positioning of the moving body 2, particularly, the process of selecting appropriate observation values 500 and constraint conditions 5000 based on the evaluation index 4000 related to the optimization calculation using the factor graph, is executed. As a result, it is possible to realize positioning with reduced computational load / processing time while maintaining the positioning accuracy or reducing it as little as possible.
[0152] <Embodiment 2> Embodiment 2 will be described with reference to FIG. 18 and subsequent figures. The basic configurations such as Embodiment 2 are the same as and common to those of Embodiment 1. Hereinafter, the components different from those of Embodiment 1 in Embodiment 2 and the like will be mainly described.
[0153] In Embodiment 1, for example, based on the evaluation index 4000 (FIG. 4) input / set by the user, the upper limit of the observation value 500 and the constraint condition 5000 was determined to determine the computational load. In other words, according to the setting of the upper limit, the computational load of the optimization device 10 could be controlled to a desired balance of large and small. This upper limit of the computational load, in other words, the allowable computational load, can also vary depending on the performance of the hardware and software constituting the positioning system 1 and the object such as the moving body 2 using the positioning system 1.
[0154] In Embodiment 2, the processing time regarding the computational load of the positioning system 1 (particularly the optimization device 10) is actually measured / calculated, and based on the actually measured value of this processing time, the upper limit (evaluation index 4000) regarding the number of the aforementioned observation values 500 and constraint conditions 5000 is determined. That is, in Embodiment 2, the upper limit regarding the number of the observation values 500 and the constraint conditions 5000 is corrected / decided so that the processing time required for the processing including the optimization calculation in the optimization device 10 is within a threshold value that satisfies the requirements. In Embodiment 2, such a function is added to Embodiment 1. As a result, the computational load can be automatically adjusted so that the processing of the optimization device 10 is completed within the processing time desired by the user.
[0155] [Positioning System] FIG. 18 shows a configuration example of the positioning system 1 in Embodiment 2. In the optimization device 10 in the positioning system 1 of Embodiment 2, as part of the evaluation index 4000, a user can set a threshold value regarding the calculation processing time. This threshold value corresponds to the calculation time threshold 405 (Tth) in FIG. 4. In Embodiment 2, based on the calculation time threshold 405, it has a function of selecting the observed value 500 and the constraint condition 5000.
[0156] The main difference in the configuration of FIG. 18 compared to the configuration of FIG. 1 is that a calculation time measurement unit 1800 is added. The calculation time measurement unit 1800 is connected to the sensor discrimination unit 102, the evaluation index acquisition unit 103, the input / output interface 104, and the optimization calculation unit 106. In FIG. 18, some illustrations such as the power supply unit 110 are omitted.
[0157] [Calculation Time Measurement Unit] The calculation time measurement unit 1800 is, in other words, a calculation load measurement unit. The calculation time measurement unit 1800 measures the time required for processing such as optimization calculation in the optimization device 10 as the calculation time (referred to as Tcal). The calculation time measurement unit 1800 is equipped with a timer function for measuring the calculation time (Tcal).
[0158] FIG. 19 shows a data table of the calculation time measurement information 1900 held by the calculation time measurement unit 1800. The calculation time measurement unit 1800 holds a data table of the calculation time measurement information 1900 as shown in FIG. 19 in the memory. The data table of the calculation time measurement information 1900 has, as data / information shown in columns, the calculation time 1901, the calculation time threshold 1902, the acquisition time window reduction width 1903, the observed value number reduction width 1904, and the constraint condition number reduction width 1905.
[0159] In the calculation time 1901 column, the calculation time Tcal measured by the timer function of the calculation time measurement unit 1800 is stored. In the calculation time threshold 1902 column, the same threshold as the calculation time threshold 405 (Tth) of the evaluation index 4000 in FIG. 4 is stored as the calculation time threshold Tcal_limit. Let the acquisition time window reduction width 1903 be Twin_dec. Let the number of observed values reduction width 1904 be Nnode_dec. Let the number of constraint conditions reduction width 1905 be Nedge_dec.
[0160] The calculation time threshold Tcal_limit, the acquisition time window reduction width Twin_dec, the number of observed values reduction width Nnode_dec, and the number of constraint conditions reduction width Nedge_dec may be design values stored in advance. Alternatively, these setting values may be variably set by the user or an external device or a controller 20 or the like to the calculation time measurement information 1900 of the calculation time measurement unit 1800 through the input / output interface 104 or the like. The calculation time threshold Tcal_limit in FIG. 19 and the calculation time threshold Tth in FIG. 4 may be integrated into one.
[0161] In this embodiment, the setting value of the calculation time threshold Tcal_limit is set to the same magnitude as the positioning cycle of the GNSS receiver 100.
[0162] When the sensor discrimination unit 102 receives the analysis result signal S2 from the GNSS receiver 100, the optimization device 10 causes the calculation time measurement unit 1800 to receive a bool-type TRUE signal from the sensor discrimination unit 102, and starts the timer function using the TRUE signal as a trigger. In other words, the calculation time measurement unit 1800 starts counting the calculation time Tcal by the timer with the trigger. In addition to the functions in the first embodiment, the sensor discrimination unit 102 has a function of transmitting a bool-type signal representing the reception to the calculation time measurement unit 1800 when receiving the analysis result signal S2.
[0163] Further, when the optimization calculation unit 106 transmits the signal S9 of the position information of the moving body 2 to the controller 20, the optimization device 10 receives a FALSE signal of the bool type from the optimization calculation unit 106 in the calculation time measurement unit 1800, and uses the FALSE signal as a trigger to stop the timer function. In other words, the calculation time measurement unit 1800 stops the counting of the calculation time Tcal by the timer with this trigger. In addition to the functions in the first embodiment, the optimization calculation unit 106 has a function of transmitting a bool type signal representing the transmission to the calculation time measurement unit 1800 when transmitting the signal S9 of the position information of the moving body 2 to the controller 20.
[0164] The calculation time measurement unit 1800 stores the measured calculation time Tcal, which is the measured value measured by the above timer function, in the calculation time 1901 column of the data table in FIG. 19. The calculation time measurement unit 1800 compares this calculation time Tcal with the calculation time threshold Tcal_limit. When this calculation time Tcal is greater than the calculation time threshold Tcal_limit, the calculation time measurement unit 1800 changes and adjusts the numerical values of at least one of the acquisition time window Twin, the number of observed values Nnode, and the number of constraint conditions Nedge in the evaluation index 4000 in FIG. 4 in the evaluation index acquisition unit 103. This change and adjustment is to make the numerical values of at least one of the acquisition time window Twin, the number of observed values Nnode, and the number of constraint conditions Nedge smaller than the numerical values before the change. That is, since the calculation time is longer than the threshold value, it is intended to adjust the calculation time to be shorter by decreasing those parameter values.
[0165] In this embodiment, for example, all the numerical values of the acquisition time window Twin, the number of observed values Nnode, and the number of constraint conditions Nedge are decreased. As a result, the total number of constraint conditions 5000 created by the constraint condition addition unit 105, particularly the number of relative constraints 503, is reduced, and the computational amount and calculation load required for the above-described optimization calculation and the like are decreased. As a result, a subsequent decrease in the calculation time can be expected.
[0166] In this embodiment, for example, when having the operation time measurement information 1900 in FIG. 19, the operation time measurement unit 1800 performs calculations for changing the evaluation index 4000 according to the operation time Tcal using the formulas 11 to 13 shown at the bottom of FIG. 19.
[0167] Formula 11 subtracts the acquisition time window Twin by the acquisition time window reduction width Twin_dec. Formula 12 subtracts the number of observed values Nnode by the number of observed values reduction width Nnode_dec. Formula 13 subtracts the number of constraint conditions Nedge by the number of constraint conditions reduction width Nedge_dec.
[0168] Not limited to changing all the parameter values of the acquisition time window Twin, the number of observed values Nnode, and the number of constraint conditions Nedge, a reduction in the operation time Tcal can be expected even with only a change in one parameter value. Once a parameter value is reduced, if the operation time Tcal still exceeds the threshold Tcal_limit, the same parameter value may be further reduced again, or other parameter values may be reduced. The change of the parameter value may be tried until the operation time Tcal becomes equal to or less than the threshold Tcal_limit.
[0169] Also, in the parameter values of the acquisition time window Twin, the number of observed values Nnode, and the number of constraint conditions Nedge, a priority for control changes may be set. For example, control such as changing the acquisition time window Twin with the first priority, changing the number of observed values Nnode with the second priority, and changing the number of constraint conditions Nedge with the third priority may be used.
[0170] When the parameter values of the acquisition time window Twin, the number of observed values Nnode, and the number of constraint conditions Nedge are changed in the operation time measurement unit 1800, the operation time measurement unit 1800 transmits the parameter value after the change (signal S11) to the evaluation index acquisition unit 103. The evaluation index acquisition unit 103 stores the parameter value after the change in the evaluation index 4000 in FIG. 4.
[0171] [Overall processing flow] FIG. 20 shows the overall processing flow in the case of the configuration of FIG. 18 in Embodiment 2. The flow of FIG. 20 has several steps added compared to the flows of FIGS. 11A and 11B in Embodiment 1. The added steps are steps such as S300 following step S103, and steps such as the aforementioned S104 have been replaced.
[0172] [S300] In step S300, when the sensor discrimination unit 102 receives the signal S2 of the analysis result, almost simultaneously, it transmits a bool - type TRUE signal representing this reception to the operation time measurement unit 1800. Thereby, the timer of the operation time Tcal of the operation time measurement unit 1800 is started.
[0173] [S301] Step S301 is the same processing as steps S104 to S111 in Embodiment 1.
[0174] [S302] In step S302, when the optimization calculation unit 106 transmits the signal S9 of the position information of the moving body 2 to the controller 20, almost simultaneously, it transmits a bool - type FALSE signal representing this transmission to the operation time measurement unit 1800. Thereby, the timer of the operation time Tcal of the operation time measurement unit 1800 is stopped. Then, the operation time measurement unit 1800 stores the operation time Tcal, which is the measured value of the timer, in the data table of FIG. 19.
[0175] [S303] In step S303, the operation time measurement unit 1800 compares the measured operation time Tcal with the operation time threshold Tcal_limit to determine the magnitude. If the operation time Tcal is greater than the operation time threshold Tcal_limit (S303 - Y), it proceeds to step S303 - 1. In step S303 - 1, the operation time measurement unit 1800 changes and adjusts at least one parameter value among the acquisition time window Twin, the number of observed values Nnode, and the number of constraint conditions Nedge of the evaluation index 4000 in FIG. 4 of the evaluation index acquisition unit 103. That is, as described above, using the operation time measurement information 1900 in FIG. 19, those parameter values are each decreased. The operation time measurement unit 1800 inputs and stores the numerical value of the changed evaluation index 4000 into the evaluation index acquisition unit 103 (evaluation index DB111). In other words, the information of the evaluation index 4000 is updated. Then, it proceeds to step S111. If the operation time Tcal is less than or equal to the operation time threshold Tcal_limit (S303 - N), it proceeds to step S111 without performing step S303.
[0176] [Effects of Embodiment 2, etc.] According to Embodiment 2, when the operation time Tcal corresponding to the operation load is greater than the threshold value by executing the above-described processing by the optimization device 10, the numerical value of the evaluation index 4000 is automatically adjusted. Then, according to the adjustment of this evaluation index 4000, the number of observed values 500 used in the factor graph and the number of constraint conditions 5000 (particularly relative constraint 503) are adjusted. As a result, the operation load is reduced compared to before, and the required operation time Tcal is decreased. Consequently, the operation time Tcal can be made less than or equal to the threshold value. In Embodiment 2, by setting the operation time threshold according to the performance of the hardware and software constituting the positioning system 1 and the necessary requirements corresponding to objects such as the moving body 2 using the positioning system 1, the operation time can be adjusted to meet the requirements.
[0177] [Modification Example] FIG. 21 shows a positioning system according to a modification of Embodiment 1 or Embodiment 2. In this modification, it is assumed that the optimization device 10 performs satellite positioning and optimization for a plurality of moving bodies 2 (here, moving bodies A, B, and C) having different requirements regarding positioning. For this purpose, different evaluation indicators 4000 corresponding to the requirements of each moving body 2 are set in the evaluation indicator acquisition DB 111 of the evaluation indicator acquisition unit 103. Evaluation indicator A is set for moving body A, evaluation indicator B is set for moving body B, and evaluation indicator C is set for moving body C. Each evaluation indicator 4000 can have different numerical values for the parameter values in FIG. 4. Further, the optimization device 10 is controlled to switch the applicable evaluation indicator 4000 in a timely manner according to which moving body 2 the positioning is performed for. Also, a corresponding mode may be defined according to the set value of the evaluation indicator 4000, and control may be performed to switch the mode.
[0178] For example, moving body A has a requirement that the required positioning accuracy is relatively high, and accordingly, the calculation load and calculation time may be relatively large. Conversely, moving body C has a requirement that the required calculation load and calculation time are relatively low and short, and accordingly, the positioning accuracy may be relatively low. The optimization device 10 can perform positioning and optimization with reference to the evaluation indicator 4000 corresponding to the requirements of such a moving body 2.
[0179] As described above, the embodiments of the present disclosure have been specifically described, but the present disclosure is not limited to the foregoing embodiments, and various modifications can be made without departing from the gist. Except for the essential components, addition, deletion, replacement, etc. of the components are possible in each embodiment. Unless otherwise specifically limited, each component may be singular or plural. A form combining each embodiment and modification is also possible.
Description of Reference Numerals
[0180] 1…Positioning system, 2…Moving body, 20…Controller, 91…GNSS satellite, 92…GNSS satellite signal, 100…GNSS receiver, 101…Positioning antenna, 102…Sensor discrimination unit, 103…Evaluation index acquisition unit, 104…Input / output interface, 105…Constraint condition addition unit, 106…Optimization calculation unit, 108…Observation value information DB, 109…Constraint condition DB, 110…Power supply unit, 111…Evaluation index DB, 500…Observation value, 4000…Evaluation index, 5000…Constraint condition.
Claims
1. An optimization device that performs optimization calculations related to positioning, a sensor determination unit that extracts observed values based on input sensor information; a constraint condition adding unit that adds a constraint condition to the observed value; an optimization calculation unit that performs optimization calculation based on the observed value and the constraint condition to obtain position information that minimizes an error between the observed value and the constraint condition, and outputs the obtained position information; an evaluation index acquisition unit that acquires an evaluation index for selecting the observation value and the constraint condition; Equipped with the constraint condition adding unit selects the observation value and the constraint condition based on the evaluation index; The constraint condition includes a relative constraint connecting a selected observation value and a selected observation value. Optimization device.
2. 2. The optimization device of claim 1, As the positioning, an optimization calculation regarding satellite positioning is performed; the constraint condition adding unit performs relative positioning between the observation values of the analysis result of the satellite positioning, and sets the constraint condition based on the result of the relative positioning. Optimization device.
3. 2. The optimization device of claim 1, a calculation time measurement unit that measures a calculation time required for calculation processing including the optimization calculation by the optimization device, and changes the evaluation index in response to a comparison between the calculation time and a calculation time threshold; Optimization device.
4. 2. The optimization device of claim 1, the constraint condition adding unit creates the relative constraint with a first priority between the latest observation value and the oldest observation value whose positioning times are furthest apart among the plurality of observation values in chronological order as the observation values; Optimization device.
5. 2. The optimization device of claim 1, the evaluation index includes an upper limit number of observed values that specifies an upper limit number for selecting the observed values; the constraint condition adding unit selects, as the observation values, a plurality of observation values from a plurality of observation values in chronological order, the number of which is up to the upper limit number of observation values; Optimization device.
6. 2. The optimization device of claim 1, the evaluation index includes a constraint condition upper limit number that specifies an upper limit number for selecting the constraint condition, the constraint condition adding unit selects a plurality of constraint conditions to be created for a plurality of observed values in chronological order as the observed values, up to the upper limit number of constraint conditions; Optimization device.
7. 6. The optimization device of claim 5, When selecting the plurality of observation values, the constraint condition addition unit selects based on the estimated variance value. Optimization device. **Claim 8** In the optimization device according to claim 1, the constraint condition addition unit when creating the constraint condition for the observation value, stores information on the constraint condition in the constraint condition database, when newly creating the constraint condition for the observation value, checks whether information on the same constraint condition as the constraint condition to be created is stored in the constraint condition database, and if so, omits the creation of the constraint condition to be created, reads out and uses the stored information on the constraint condition. Optimization device. **Claim 9** In the optimization device according to claim 1, the constraint condition addition unit searches for an observation value Nmin with the minimum number of connections to the relative constraint among a plurality of observation values in time series order as the observation value, searches for the longest section Scm among the sections where the observation values Nmin are arranged continuously, selects a first observation value N1 that is the median among the observation values in the section Scm, and excludes the first observation value N1 from the observation values Nmin, next, similarly, searches for an observation value Nmin with the minimum number of connections to the relative constraint among a plurality of observation values in time series order as the observation value, searches for the longest section Scm among the sections where the observation values Nmin are arranged continuously, selects a second observation value N2 that is the median among the observation values in the section Scm, and excludes the second observation value N2 from the observation values Nmin, creates the relative constraint so as to connect the first observation value N1 and the second observation value N2. Optimization device. **Claim 10** In the optimization device according to claim 1, displays a screen for setting and checking the evaluation index. Optimization device. **Claim 11** In the optimization device according to claim 3, the evaluation index includes at least one of an observation value upper limit number that defines an upper limit number for the selection of the observation value and a constraint condition upper limit number that defines an upper limit number for the selection of the constraint condition, when the calculation time is greater than the calculation time threshold value, the calculation time measurement unit changes at least one of the observation value upper limit number and the constraint condition upper limit number in the evaluation index so as to decrease. Optimization device. **Claim 12** In the optimization device according to claim 11, the calculation time measurement unit It has set values including a reduction width of the number of observed values for reducing the upper limit number of the observed values by a certain width and a reduction width of the number of constraint conditions for reducing the upper limit number of the constraint conditions by a certain width. When the calculation time is greater than the calculation time threshold value, in the evaluation index, the upper limit number of the observed values is reduced by the reduction width of the number of observed values, and / or the upper limit number of the constraint conditions is reduced by the reduction width of the number of constraint conditions. Optimization device.
13. A sensor related to positioning, An optimization device that performs an optimization calculation related to positioning based on the sensor information of the sensor, A positioning system comprising: The optimization device includes a sensor discrimination unit that extracts observed values based on the sensor information input from the sensor, A constraint condition addition unit that adds constraint conditions to the observed values, An optimization calculation unit that performs an optimization calculation to obtain position information such that the error between the observed values and the constraint conditions is minimized based on the observed values and the constraint conditions, and outputs the obtained position information, An evaluation index acquisition unit that acquires an evaluation index for selecting the observed values and selecting the constraint conditions, Comprising: The constraint condition addition unit selects the observed values and selects the constraint conditions based on the evaluation index, The constraint conditions have relative constraints that connect between a certain selected observed value and a certain observed value. Positioning system.
14. A positioning method performed by a positioning system including a sensor related to positioning and an optimization device that performs an optimization calculation related to positioning based on the sensor information of the sensor, Steps performed by the optimization device include: A sensor discrimination step of extracting observed values based on the sensor information input from the sensor, A constraint condition addition step of adding constraint conditions to the observed values, An optimization calculation step of performing an optimization calculation to obtain position information such that the error between the observed values and the constraint conditions is minimized based on the observed values and the constraint conditions, and outputting the obtained position information, An evaluation index acquisition step of acquiring an evaluation index for selecting the observed values and selecting the constraint conditions, Having: The constraint condition addition step is a step of selecting the observed values and selecting the constraint conditions based on the evaluation index, The constraint conditions have relative constraints that connect between a certain selected observed value and a certain observed value. Positioning method.
Citation Information
Patent Citations
Positioning satellite selecting device, positioning device, positioning system, positioning information transmitting device and positioning terminal
WO2017046914A1