POSITION ESTIMATION DEVICE, POSITION ESTIMATION SYSTEM, AND POSITION ESTIMATION METHOD

According to one embodiment, a position estimation device includes a first acquisition unit, a determination unit, and an estimation unit. The first acquisition unit acquires a first position of a moving body. The determination unit determines that direct wireless communication is possible between a terminal device and a communication device riding on the moving body. When the direct communication is possible, the estimation unit regards a position of the moving body as a position of the terminal device.

CROSS-REFERENCE TO RELATED APPLICATION

This application is based upon and claims the benefit of priority from Japanese Patent Application No. 2020-053054, filed on Mar. 24, 2020, the entire contents of which are incorporated herein by reference.

FIELD

Embodiments described herein relate generally to a position estimation device, a position estimation system, and a position estimation method.

BACKGROUND

There is a technique called pedestrian dead reckoning (PDR) as a technique for estimating a position of a pedestrian using various sensors such as an acceleration sensor and an angular velocity sensor. As the PDR is specialized in estimating the position of a pedestrian, the position estimation may not be successful when a pedestrian moves riding on a moving body.

DETAILED DESCRIPTION

The problem to be solved by the embodiments of the present disclosure is to provide a position estimation device, a position estimation system, and a position estimation method capable of estimating a position of a pedestrian while the pedestrian is riding on a moving body.

In general, according to one embodiment, the position estimation device includes a first acquisition unit, a determination unit, and an estimation unit. The first acquisition unit acquires a first position of a moving body. The determination unit determines that direct wireless communication is possible between a terminal device and a communication device riding on the moving body. When the direct communication is possible, the estimation unit considers a position of the moving body a position of the terminal device.

Hereinafter, a position estimation system according to the embodiments will be described with reference to the drawings. In the drawings used for the description of the embodiments below, the scale of each unit may be changed as appropriate. The drawings used for the description of the following embodiments may be illustrated with the configuration omitted for the sake of description. In the drawings and the present specification, the same reference numerals denote the same elements.

FIG. 1is a diagram for illustrating the outline of a position estimation system1according to the embodiment. The position estimation system1includes, for example, a positioning server100, a mobile terminal device200, a moving body300, a moving body terminal device400, and a beacon500. The position estimation system1typically includes a plurality of mobile terminal devices200, moving bodies300, moving body terminal devices400, and beacons500, respectively. The position estimation system1also includes one or more positioning servers100.

The positioning server100communicates with the mobile terminal device200, the moving body terminal device400, and the like to acquire information regarding the positions of the mobile terminal device200and the moving body terminal device400. Then, the positioning server100estimates a position of the mobile terminal device200. The positioning server100is an example of a position estimation device.

A pedestrian H carries the mobile terminal device200. Therefore, a position of the pedestrian H is the position of the mobile terminal device200.

The mobile terminal device200acquires information necessary for estimating the position of the pedestrian H by PDR. In the PDR, for example, the moving distance and the position of the pedestrian H are estimated by detecting a walking motion (such as steps) of the pedestrian H and estimating the step length. The mobile terminal device200and the moving body terminal device400have a terminal ID (identifier). The terminal ID is identification information uniquely given to each of the mobile terminal device200and the moving body terminal device400. The mobile terminal device200is an example of a terminal device. The mobile terminal device200is also an example of a first terminal device. The terminal ID of the moving body terminal device400is an example of second identification information that identifies the moving body terminal device400.

The moving body300is a vehicle that can be moved with a pedestrian H thereon. The moving body300is, for example, a car, a ship, or an aircraft. The moving body300may be manned driving or unmanned driving one. The moving body300includes the moving body terminal device400and the beacon500.

The moving body terminal device400estimates the position of the mobile body300by dead reckoning (DR) such as cart dead reckoning (CDR) or a global navigation satellite system (GNSS) such as a global positioning system (GPS). The moving body terminal device400is an example of a second terminal device.

The beacon500has a beacon ID. The beacon500transmits a radio wave including the beacon ID. The radio wave transmitted by the beacon500is hereinafter referred to as a “beacon radio wave”. The beacon500is an example of a communication device.

The position estimation system1can identify the moving body300where the mobile terminal device200is on by the mobile terminal device200receiving the beacon ID. This is because if the mobile terminal device200can receive the beacon radio wave, it means that the mobile terminal device200is near the beacon500that is the transmission source of the beacon radio wave. The beacon ID is identification information uniquely assigned to each of the beacon500. The beacon ID is an example of first identification information.

The beacon500is also installed in a passage or a road on which the pedestrian H walks. Such a beacon500is installed for the purpose of correcting position estimation of the pedestrian H by PDR.

FIG. 1shows the movement of the pedestrian H in steps1001to1005. The pedestrian H walks from a point Pa to a point Pb, moves from the point Pb to a point Pc while riding on the moving body300, and walks from the point Pc to a point Pd.

Step1001shows that the pedestrian H moves on the route Ra from the point Pa to the point Pb by walking.

Step1002shows that the pedestrian H gets on the moving body300at the point Pb.

Step1003shows the pedestrian H moves on the route Rb from the point Pb to the point Pc in a state of riding on the moving body300.

Step1004shows that the pedestrian H gets off the moving body300at the point Pc.

Step1005shows that the pedestrian H moves on the route Rc from the point Pc to the point Pd by walking.

The position estimation system1estimates the position of the pedestrian H using the mobile terminal device200while the pedestrian H is walking. That is, the position estimation system1estimates the position of the pedestrian H using the mobile terminal device200on the route Ra and the route Rc.

Then, the position estimation system1considers the position of the moving body300the position of the pedestrian H while the pedestrian H is riding on the moving body300. That is, the position estimation system1estimates the position of the pedestrian H using the moving body terminal device400on the route Rb.

The components included in the position estimation system1will be described with reference toFIGS. 2 to 5.

FIG. 2is a block diagram showing an example of a circuit configuration of a main part of the positioning server100.

The positioning server100includes, for example, a processor101, a read-only memory (ROM)102, a random-access memory (RAM)103, an auxiliary storage device104, and a communication interface105. Then, a bus106or the like connects these units.

The processor101corresponds to the central part of a computer that performs processing such as calculation and control necessary for the operation of the positioning server100. The processor101controls each unit to realize various functions of the positioning server100based on programs such as firmware, system software, and application software stored in the ROM102or the auxiliary storage device104. The processor101executes the processes described later based on the program. Part or all of the program may be incorporated in the circuit of the processor101. The processor101is, for example, a central processing unit (CPU), a micro processing unit (MPU), a system on a chip (SoC), a digital signal processor (DSP), a graphics processing unit (GPU), an application specific integrated circuit (ASIC), a programmable logic device (PLD), or a field-programmable gate array (FPGA). Alternatively, the processor101is a combination of a plurality of these.

The ROM102corresponds to a main storage device of a computer having the processor101as a center. The ROM102is a non-volatile memory used exclusively for reading data. The ROM102stores, for example, the firmware of the above programs. The ROM102also stores data used by the processor101in performing various processes.

The RAM103corresponds to a main storage device of a computer having the processor101as a center. The RAM103is a memory used for reading and writing data. The RAM103is used as a work area for storing data temporarily used by the processor101in performing various processes. The RAM103is typically a volatile memory.

The auxiliary storage device104corresponds to an auxiliary storage device of a computer having the processor101as a center. The auxiliary storage device104is, for example, an electric erasable programmable read-only memory (EEPROM), a hard disk drive (HDD), a flash memory, or the like. The auxiliary storage device104stores, for example, system software and application software among the above programs. The auxiliary storage device104also stores data used by the processor101for performing various processes, data generated by the processing in the processor101, various setting values, and the like. The auxiliary storage device104also stores each table described later. Therefore, the auxiliary storage device104is an example of a storage unit.

The communication interface105is an interface for the positioning server100to communicate via the network NW or the like. The communication interface105is an example of a third communication unit. The network NW is a communication network including the Internet, for example.

The bus106includes a control bus, an address bus, a data bus, and the like, and transmits signals transmitted and received by each unit of the positioning server100.

FIG. 3is a block diagram showing an example of a circuit configuration of a main part of the mobile terminal device200. The mobile terminal device200includes, for example, a processor201, a ROM202, a RAM203, an auxiliary storage device204, a communication interface205, a positioning sensor206, a transmission-reception circuit208, and a touch panel209. Then, a bus210or the like connects these units.

The processor201corresponds to the central part of a computer that performs processing such as calculation and control necessary for the operation of the mobile terminal device200. The processor201controls each unit to realize various functions of the mobile terminal device200based on programs such as firmware, system software, and application software stored in the ROM202or the auxiliary storage device204. The processor201executes the processes described later based on the program. Part or all of the program may be incorporated in the circuit of the processor201. The processor201is, for example, CPU, MPU, SoC, DSP, GPU, ASIC, PLD, FPGA, or the like. Alternatively, the processor201is a combination of a plurality of these.

The ROM202corresponds to the main storage device of a computer having the processor201as a center. The ROM202is a non-volatile memory used exclusively for reading data. The ROM202stores, for example, the firmware of the above programs. The ROM202also stores data used by the processor201in performing various processes.

The RAM203corresponds to a main storage device of a computer having the processor201as a center. The RAM203is a memory used for reading and writing data. The RAM203is used as a work area for storing data temporarily used by the processor201in performing various processes. The RAM203is typically a volatile memory.

The auxiliary storage device204corresponds to an auxiliary storage device of a computer having the processor201as a center. The auxiliary storage device204is, for example, EEPROM, HDD, flash memory, or the like. The auxiliary storage device204stores, for example, system software and application software among the above programs. The auxiliary storage device204stores data used by the processor201for performing various processes, data generated by the processing in the processor201, various setting values, and the like.

The communication interface205is an interface for the mobile terminal device200to communicate via the network NW or the like. The communication interface205includes an antenna and a circuit for wireless communication.

The positioning sensor206is a sensor used for positioning the mobile terminal device200. The positioning sensor206is a sensor used for PDR such as an acceleration sensor and an angular velocity sensor. The positioning sensor206may also include a magnetic sensor or the like. The positioning sensor206outputs sensor information including information obtained by the sensing.

The transmission-reception circuit208is a circuit that receives radio waves transmitted from the beacon500. The transmission-reception circuit208includes an antenna or the like for transmitting and receiving radio waves. The transmission-reception circuit208may be capable of transmitting radio waves to the beacon500. The transmission-reception circuit208is an example of a reception unit that receives the radio wave transmitted by the beacon500.

The touch panel209is formed by stacking a display such as a liquid crystal display or an organic electro-luminescence (EL) display and a pointing device by touch input. The display included in the touch panel209functions as a display device that displays a screen for notifying the operator of the mobile terminal device200of various types of information. The touch panel209also functions as an input device that receives a touch operation by the operator.

The bus210includes a control bus, an address bus, a data bus, and the like, and transmits signals transmitted and received by each unit of the mobile terminal device200.

FIG. 4is a block diagram showing an example of a circuit configuration of a main part of the moving body terminal device400.

The moving body terminal device400includes, for example, a processor401, a ROM402, a RAM403, an auxiliary storage device404, a communication interface405, a positioning sensor406, and a transmission-reception circuit407. Then, a bus408or the like connects these units.

The processor401corresponds to a central part of a computer that performs processing such as calculation and control necessary for the operation of the moving body terminal device400. The processor401controls each unit to realize various functions of the moving body terminal device400based on programs such as firmware, system software, and application software stored in the ROM402, or the auxiliary storage device404. The processor401executes the processes described later based on the program. Part or all of the program may be incorporated in the circuit of the processor401. The processor401is, for example, CPU, MPU, SoC, DSP, GPU, ASIC, PLD, FPGA, or the like. Alternatively, the processor401is a combination of a plurality of these.

The ROM402corresponds to a main storage device of a computer having the processor401as a center. The ROM402is a non-volatile memory used exclusively for reading data. The ROM402stores, for example, the firmware of the above programs. The ROM402also stores data used by the processor401in performing various processes.

The RAM403corresponds to a main storage device of a computer having the processor401as a center. The RAM403is a memory used for reading and writing data. The RAM403is used as a work area for storing data temporarily used by the processor401in performing various processes. The RAM403is typically a volatile memory.

The auxiliary storage device404corresponds to an auxiliary storage device of a computer having the processor401as a center. The auxiliary storage device404is, for example, EEPROM, HDD, flash memory, or the like. The auxiliary storage device404stores, for example, system software and application software among the above programs. The auxiliary storage device404stores data used by the processor401in performing various processes, data generated by the processing in the processor401, various setting values, and the like.

The auxiliary storage device404stores the terminal ID given to the moving body terminal device400.

The communication interface405is an interface for the moving body300to communicate via the network NW or the like.

The positioning sensor406is a sensor used for positioning the moving body terminal device400. The positioning sensor406is, for example, an encoder or a sensor used for DR such as an acceleration sensor and an angular velocity sensor. Alternatively, the positioning sensor406is an antenna for GNSS such as GPS. The positioning sensor406outputs sensor information including information obtained by the sensing.

The transmission-reception circuit407is a circuit that receives radio waves transmitted from the beacon500. The transmission-reception circuit407includes an antenna or the like for transmitting and receiving radio waves. The transmission-reception circuit407may be capable of transmitting radio waves to the beacon500.

The bus408includes a control bus, an address bus, a data bus, and the like and transmits signals transmitted and received by each unit of the moving body terminal device400.

FIG. 5is a block diagram showing an example of a circuit configuration of a main part of the beacon500.

The beacon500includes, for example, a processor501, a memory502, and a transmission-reception circuit503. Then, a bus504or the like connects these units.

The processor501corresponds to the central part of a computer that performs processing such as calculation and control necessary for the operation of the beacon500. The processor501controls each unit to realize various functions of the beacon500based on programs such as firmware, system software, and application software stored in the memory502and the like. The processor501executes the process described later based on the program. Part or all of the program may be incorporated in the circuit of the processor501. The processor501is, for example, CPU, MPU, SoC, DSP, GPU, ASIC, PLD, FPGA, or the like. Alternatively, the processor501is a combination of a plurality of these.

The memory502corresponds to a main storage device of a computer having the processor501as a center. The memory502stores the above program. The memory502is also used as a work area for storing data temporarily used by the processor501in performing various processes.

The memory502stores the terminal ID given to the beacon500.

The memory502of the beacon500installed in a passage or a road also stores the coordinates of the installation position.

The transmission-reception circuit503is a circuit that periodically transmits radio waves. The transmission-reception circuit503includes an antenna or the like for transmitting and receiving radio waves. The radio wave transmitted by the transmission-reception circuit503carries information including the beacon ID. The radio wave transmitted by the transmission-reception circuit503is based on a standard such as Bluetooth (registered trademark) low energy (BLE). The transmission-reception circuit503is an example of a transmission unit that transmits the beacon ID.

The bus504includes a control bus, an address bus, a data bus, and the like and transmits signals transmitted and received by each unit of the beacon500.

Hereinafter, the operation of the position estimation system1according to the embodiment will be described based onFIGS. 6 to 8. The content of the processing in the following description of the operation is an example and various processes capable of obtaining the same result can be appropriately used.FIGS. 6 to 8are flowcharts showing an example of the processing by the processor101of the positioning server100. The processor101executes the processing ofFIGS. 6 to 8based on a program stored in the ROM102or the auxiliary storage device104, for example.

The processor201of the mobile terminal device200acquires sensor information from the positioning sensor206and attempts to receive the beacon radio waves, for example, once every predetermined time Ua. The sensor information is, for example, acceleration and angular velocity of the mobile terminal device200.

When the processor201successfully received a beacon radio wave, the processor201generates first mobile position information. The first mobile position information includes the current time, the terminal ID of the mobile terminal device200, the acquired sensor information, and the beacon ID included in the beacon radio wave. On the other hand, when the processor201failed to receive the beacon radio wave, the processor201generates second mobile position information. The second mobile position information includes the current time, the terminal ID of the mobile terminal device200, the acquired sensor information, and the beacon ID indicating that the beacon radio wave is not received. The beacon ID indicating that the beacon radio wave is not received is a predetermined specific value such as 0. The specific value is hereinafter referred to as “non-reception ID”. The specific value is not an ID given to the beacon500but is treated as a kind of beacon ID.

Then, the processor201controls the communication interface205to transmit the generated mobile position information (first mobile position information or second mobile position information). The mobile position information is received by the communication interface105of the positioning server100. Therefore, the processor201functions as an example of a first communication unit that transmits the beacon ID to the positioning server100in cooperation with the communication interface205.

On the other hand, the processor101of the positioning server100that received the mobile position information stores various information included in the mobile position information in a table Ta.

FIG. 9is a diagram showing an example of the table Ta stored in the auxiliary storage device104.

In the table Ta, one row corresponds to one piece of mobile position information. Each time the mobile position information is received, the processor101adds one row to the table Tb and stores various information included in the mobile body position information. As an example, the table Ta stores the terminal ID, the time, the sensor information, and the beacon ID in association with each other. The sensor information includes, for example, the acceleration and the angular velocity of the mobile terminal device200. The processor101creates one table Ta for each terminal ID. Therefore, all terminal IDs in one table Ta are the same. However, it is also possible to adopt an embodiment in which a plurality of terminal IDs are included in one table.

The processor101inputs the terminal ID, time, sensor information, and beacon ID included in the received mobile position information in the row added to the table Ta.

On the other hand, the processor401of the moving body terminal device400acquires the position information of the moving body terminal device400, for example, once every predetermined time Ub. The position information includes the position and orientation of the moving body terminal device400. The position and orientation of the moving body terminal device400is also the position and orientation of the moving body300including the moving body terminal device400. The processor401acquires the position information of the moving body terminal device400by obtaining the position and orientation of the moving body terminal device400based on the sensor information acquired from the positioning sensor406, for example.

The position of the moving body terminal device400and the position of the moving body300are examples of the first position. The processor401functions as a moving body position estimation unit that estimates the position of the moving body300by acquiring the position information of the moving body terminal device400.

On the other hand, the processor101of the positioning server100that received moving body position information stores various information included in the moving body position information in a table Tb.

FIG. 10is a diagram showing an example of the table Tb stored in the auxiliary storage device104. In the table Tb, one row corresponds to one piece of moving body position information. Each time the moving body position information is received, the processor101adds one row to the table Tb to store various information included in the moving body position information. As an example, the table Tb stores the terminal ID, the time, and the position information in association with each other. The position information includes, as an example, a coordinate xa and a coordinate ya indicating the position of the moving body terminal device400, and an orientation θa of the moving body terminal device400. The processor101creates one table Tb for each terminal ID. Therefore, all terminal IDs in one table Tb are the same. However, it is also possible to adopt an embodiment in which a plurality of terminal IDs are included in one table. The coordinates (xa, ya) indicate coordinates on the map, for example. The orientation θa indicates the direction (orientation) on the map.

The processor101of the positioning server100starts the processing shown inFIGS. 6 to 8when performing the process of obtaining the position and movement route of the mobile terminal device200. The processor101performs the processing in response to receiving an input instructing to perform the process, for example. The input is, for example, an operation input using the console of the positioning server100or the like. Alternatively, the input is a command input to the positioning server100from another computer. Alternatively, the input is automatically inputted to the processor101by the processor101of the positioning server100based on a program or the like. The input includes the terminal ID of the mobile terminal device200for which the position and the movement route are to be obtained.

The processor101allocates a variable IDa, a variable IDb, a variable i, a variable C, a variable ta, and a variable tb to the RAM103and the like in the processing shown in FIG.6. Details of each variable will be described later.

In ACT41ofFIG. 6, the processor101of the positioning server100reads the table Ta for the mobile terminal device200for which the position and movement route are to be obtained. The terminal ID in the table Ta is the same as the terminal ID of the mobile terminal device200for which the position and the movement route are to be obtained. The processor101newly creates a table Tc. The table Tc will be described later.

In ACT42, the processor101sets the value of the variable IDa to 0. The variable IDa is a variable indicating the beacon ID. Here, the processor101sets the value of the variable IDa to0(non-reception ID) for later processing.

In ACT43, the processor101sets the value of the variable C to 0. The variable C is a counter. The variable C indicates how many times the mobile terminal device200consecutively received the beacon radio waves of the beacon500installed in the moving body300.

In ACT43, the processor101sets the value of a variable F to False. The variable F is a flag indicating that the position at which the pedestrian H got off the moving body300is not stored in the table Tc. The table Tc will be described later.

In ACT44, the processor101sets the value of a variable i to 1. The variable i is a variable indicating which row of the table Ta the processor101reads.

In ACT45, the processor101reads the i-th row of the table Ta. The time of the i-th row of the table Ta is referred to as “i-th row time”, and the sensor information of the i-th row of the table Ta is referred to as “i-th row sensor information”.

In ACT46, the processor101substitutes the beacon ID of the row read in ACT45for the variable IDb. The variable IDb is a variable indicating the beacon ID of the i-th row of the table Ta.

In ACT47, the processor101determines whether the values of the variable IDa, and the variable IDb are the same. If the values of the variable IDa and the variable IDb are the same, the processor101determines Yes in ACT47and proceeds to ACT48.

In ACT48, the processor101determines whether the value of the variable IDb is 0 (non-reception ID). If the value of the variable IDb is 0, the processor101determines Yes in ACT48and proceeds to ACT49.

If the value of the variable IDb is not 0, it indicates that the mobile terminal device200is receiving radio waves from the beacon500. That is, the mobile terminal device200directly communicates with the beacon500wirelessly. Therefore, the processor101determines that the beacon ID is not the non-reception ID, and thus functions as a determination unit that determines that the mobile terminal device200and the beacon500on the moving body300can directly communicate with each other wirelessly.

In ACT49, the processor101obtains the position and orientation of the mobile terminal device200at the i-th row time by PDR using the i-th row sensor information. The processor101also uses the position and orientation stored in the table Tc when obtaining the position and orientation of the mobile terminal device200by PDR.

The position of the mobile terminal device200is an example of a second position. Therefore, the processor101functions as an example of a second acquisition unit that acquires the position of the mobile terminal device200by obtaining the position of the mobile terminal device200.

In ACT50, the processor101stores the position and orientation of the mobile terminal device200at the i-th row time obtained in ACT49, in the table Tc.

FIG. 11is a diagram showing an example of the table Tc stored in the auxiliary storage device104.

The table Tc is a table that stores the position and orientation of the mobile terminal device200for each time. As an example, the table Tc stores the terminal ID, the time, and the position information in association with each other. The position information includes a coordinate xb and a coordinate yb indicating the position of the mobile terminal device200, and an orientation θb of the mobile terminal device200. The coordinates (xb, yb) indicate coordinates on the map, for example. The orientation θb indicates the direction (orientation) on the map.

On the other hand, if the value of the variable IDb is not 0, the processor101determines No in ACT48and proceeds to ACT51.

In ACT51, the processor101increments the value of the variable C by 1.

If the values of the variable IDa and the variable IDb are different, the processor101determines No in ACT47and proceeds to ACT52.

In ACT52, the processor101determines whether the value of the variable IDa is 0 (non-reception ID). If the value of the variable IDa is 0, the processor101determines Yes in ACT52and proceeds to ACT53.

In ACT53, the processor101sets the value of the variable C to 1.

On the other hand, if the value of the variable IDa is not 0, the processor101determines No in ACT52and proceeds to ACT54inFIG. 7.

In ACT54, the processor101stores the time of the (i-C)-th row of the table Ta in the variable ta. Then, the processor101stores the time of the (i-1)-th row of the table Ta in the variable tb. The variable ta and the variable tb are variables for storing the time.

In ACT55, the processor101determines whether the value of the variable C is a constant N or more. Here, the value of the variable C indicates how many times the mobile terminal device200consecutively received radio waves from the same beacon. Therefore, when the value of the variable C is N or more, it indicates that the mobile terminal device200consecutively received radio waves from the same beacon N times or more. The value of the constant N is predetermined by, for example, the designer or the administrator of the position estimation system1. If the value of the variable C is less than the constant N, the processor101determines No in ACT55and proceeds to ACT56.

In ACT56, the processor101determines whether the beacon ID indicated by the variable IDb is that of the beacon500installed in the moving body300. For example, the processor101refers to a table Td to identify whether the beacon ID is that of the beacon500installed in the moving body300or that of the beacon500installed in a passage or a road.

FIG. 12is a diagram showing an example of the table Td stored in the auxiliary storage device104.

The table Td stores the beacon ID, a beacon type, a terminal ID, a coordinate xc, a coordinate yc, and a getting-off angle θ in association with each other. The beacon type is1or2. The beacon500whose beacon type is1is the beacon500installed in the moving body300. The beacon500whose beacon type is2is a beacon500installed in a passage or a road. The terminal ID associated with the beacon ID is the terminal ID of the moving body terminal device400. When the terminal ID is associated with the beacon ID, it indicates that the beacon500indicated by the beacon ID, and the moving body terminal device400indicated by the terminal ID are installed in the same moving body300. The beacon ID associated with the terminal ID has a beacon type of1. The coordinates (xc, yc) indicate the position where the beacon500is installed. The beacon ID associated with the coordinates has a beacon type of2. When the getting-off angle θ is associated with the beacon ID, the getting-off angle θ is an angle that indicates which direction the pedestrian H faces when the pedestrian H gets off the moving body300in which the beacon500indicated by the beacon ID is installed. The beacon ID associated with the getting-off angle θ has a beacon type of1.

For example, if the beacon type associated with the beacon ID is1, the processor101refers to the table Td to determine that the beacon ID is that of the beacon500installed in the moving body300. Then, if the beacon type associated with the beacon ID is2, the processor101determines that the beacon ID is not that of the beacon500installed in the moving body300. If the processor101determines that the beacon ID indicated by the variable IDb is not that of the beacon500installed in the moving body300, the processor101determines No in ACT56and proceeds to ACT57.

In ACT57, the processor101obtains the position and orientation of the mobile terminal device200from time to to time tb. The processor101uses the sensor information from the (i-C)-th row to the (i-1)-th row of the table Ta to obtain the position and orientation by PDR. The processor101corrects the position of the mobile terminal device200based on the position of the beacon500indicated by the beacon ID of the variable IDb, if necessary. The processor101acquires the position of the beacon500from the table Td, for example.

However, if the value of the variable F is True, the processor101sets the position and orientation of the mobile terminal device200at time ta to the position and orientation finally obtained in ACT72.

In ACT58, the processor101stores the position and orientation of the mobile terminal device200from time ta to time tb obtained in ACT57, in the table Tc.

On the other hand, if it is determined that the beacon ID indicated by the variable IDb is that of the beacon500installed in the moving body300, the processor101determines Yes in ACT56and proceeds to ACT59.

In ACT59, the processor101obtains the position and orientation of the mobile terminal device200from time ta to time tb, as in ACT57. However, in ACT59, the processor101does not correct the position of the mobile terminal device200based on the position of the beacon500.

However, if the value of the variable F is True, the processor101sets the position and orientation of the mobile terminal device200at time ta to the position and orientation finally obtained in ACT72.

In ACT60, the processor101stores the position and orientation of the mobile terminal device200from time ta to time tb obtained in ACT59, in the table Tc.

The processor101proceeds to ACT61after the processes of ACT58or ACT60.

In ACT61, the processor101determines whether the value of the variable IDb is 0 (non-reception ID). If the value of the variable IDb is 0, the processor101determines Yes in ACT61and proceeds to ACT62.

In ACT62, the processor101obtains the position and orientation of the mobile terminal device200at the i-th row time by PDR using the i-th row sensor information.

In ACT63, the processor101stores the position and orientation of the mobile terminal device200at the i-th row time obtained in ACT62, in the table Tc.

In ACT64, the processor101sets the value of the variable C to 0.

On the other hand, if the value of the variable IDb is not 0, the processor101determines No in ACT61and proceeds to ACT65.

In ACT65, the processor101sets the value of the variable C to 1.

If the value of the variable C is the constant N or more, the processor101determines Yes in ACT55and proceeds to ACT66. The constant N is an arbitrary integer.

In ACT66, the processor101determines whether the beacon ID indicated by the variable IDb is that of the beacon500installed in the moving body300. If the beacon ID indicated by the variable IDb is not that of the beacon500installed in the moving body300, the processor101determines No in ACT66and proceeds to ACT57. On the other hand, if the beacon ID indicated by the variable IDb is that of the beacon500installed in the moving body300, the processor101determines Yes in ACT66and proceeds to ACT67.

In ACT67, the processor101refers to the table Td to acquire the terminal ID associated with the beacon ID indicated by the variable IDb.

In ACT68, the processor101refers to the table Tb to acquire the position and orientation of the moving body terminal device400identified by the terminal ID acquired in ACT67from time ta to time tb. The position and orientation are also the position and orientation of the moving body300in which the moving body terminal device400is installed.

Therefore, the processor101functions as an example of a first acquisition unit that acquires the position of the moving body300by performing the process of ACT68. [0091]In ACT69, the processor101determines whether there is a change in the position acquired in ACT68. The processor101determines that there is no change, for example, when the change in the position acquired by ACT68is within a predetermined value. The fact that there is no change in the position acquired in ACT68indicates that the moving body300is stopped. If it is determined that there is no change in the position acquired in ACT68, the processor101determines No in ACT69and proceeds to ACT59. On the other hand, if it is determined that there is a change in the position acquired in ACT68, the processor101determines Yes in ACT69and proceeds to ACT70.

The fact that the processor101proceeded to ACT70means that the pedestrian H was on the moving body300from time ta to time tb. Therefore, the time ta indicates the time when the pedestrian H got on the moving body300. Time tb indicates the time when the pedestrian H got off the moving body300.

In ACT70, the processor101obtains the position and orientation of the mobile terminal device200from time ta to time tb. That is, the processor101considers that the position and orientation of the mobile terminal device200from time ta to time tb are the same as the position and orientation acquired in ACT68. Therefore, the position and orientation of the mobile terminal device200from time ta to time tb are the position and orientation acquired in ACT68.

Therefore, the processor101functions as an estimation unit that considers the position of the moving body300the position of the mobile terminal device200by performing the process of ACT70.

In ACT71, the processor101stores the position and orientation of the mobile terminal device200from time ta to time tb obtained in ACT70, in the table Tc.

After the process of ACT71, the processor101proceeds to ACT72ofFIG. 8.

In ACT72, the processor101obtains the position and the orientation in which the pedestrian H got off the moving body300. The position and orientation are the position and orientation of the mobile terminal device200at the i-th row time. The processor101obtains the position of the mobile terminal device200based on the position and orientation of the mobile terminal device200at time tb obtained by ACT70, for example. The processor101acquires, for example, the getting-off angle θ associated with the beacon ID indicated by the variable IDb from the table Td. Then, the processor101sets the getting-off angle θ to the orientation of the mobile terminal device200.

In ACT73, the processor101determines whether the value of the variable IDb is 0 (non-reception ID). If the value of the variable IDb is 0, the processor101determines Yes in ACT73and proceeds to ACT74.

In ACT74, the processor101stores the position and orientation of the mobile terminal device200obtained in ACT72in the table Tc.

In ACT75, the processor101sets the value of the variable C to 0.

After the process of ACT64or ACT65inFIG. 7or ACT75inFIG. 8, the processor101proceeds to ACT76.

In ACT76, the processor101sets the value of the variable F to False.

On the other hand, if the value of the variable IDb is not 0, the processor101determines No in ACT73and proceeds to ACT77.

In ACT77, the processor101sets the value of the variable C to 1.

In ACT78, the processor101sets the value of the variable F to True.

After the process of ACT76or ACT78, the processor101proceeds to ACT79.

In ACT79, the processor101determines whether data exists in the (i+1)-th row in the table Ta. If data exists in the (i+1)-th row in the table Ta, the processor101determines Yes in ACT79and proceeds to ACT80. [0103]The processor101proceeds to ACT80ofFIG. 8after the process of ACT50, ACT51, or ACT53ofFIG. 6.

In ACT80, the processor101increments the value of the variable i by 1.

In ACT81, the processor101substitutes the value of the variable IDb for the variable IDa. After the process of ACT81, the processor101returns to ACT45ofFIG. 6.

As described above, the processor101repeats ACT45ofFIG. 6to ACT81ofFIG. 8to read from the table Ta row by row and obtain the position and orientation of the mobile terminal device200at each time. Then, the processor101stores the obtained position and orientation in the table Tc.

Then, if there is no data in the (i+1)-th row in the table Ta, the processor101determines No in ACT79and ends the processing inFIGS. 6 to 8.

According to the position estimation system1of the embodiment, when the mobile terminal device200can receive the radio wave transmitted by the beacon500installed in the moving body300, the positioning server100considers that the mobile terminal unit200is on the moving body300. Then, when the mobile terminal device200is on the moving body300, the positioning server100considers that the position of the moving body300is the position of the mobile terminal device200. As a result, the positioning server100of the embodiment can estimate the position of the mobile terminal device200while the mobile terminal device200is on the moving body300. Therefore, the positioning server100according to the embodiment can estimate the position of the mobile terminal device200even when the mobile terminal device200does not have a function of estimating the position while riding on the moving body300. For example, when the mobile terminal device200has a function of estimating the position by PDR, the positioning server100according to the embodiment can estimate the position of the mobile terminal device200even if the position estimation by PDR is not successful while riding on the moving body300.

If the position of the pedestrian H is estimated using the mobile terminal device200while the pedestrian H is on the moving body300, the position of the pedestrian H may not be properly estimated. For example, there is a possibility that the pedestrian H may be recognized as having moved through the route Rd even though the pedestrian H actually moved riding on the moving body300through the route Rc inFIG. 1.

The position estimation system1can be used both indoors and outdoors. For example, the position estimation system1is used in premises such as a factory, warehouse, or market. Here, for example, a forklift and a turret used in the premises can be used as the moving body300. As a result, it is possible to track the movement lines of the personnel working on the premises.

According to the position estimation system1of the embodiment, when the mobile terminal device200cannot receive the radio wave transmitted by the beacon500installed in the moving body300, the positioning server100uses the PDR or the like to obtain the position of the mobile terminal device200. Therefore, the positioning server100according to the embodiment can estimate the position of the mobile terminal device200even when the mobile terminal device200is not on the moving body300.

According to the position estimation system1of the embodiment, the positioning server100considers that the mobile terminal device200is on the moving body300when the mobile terminal device200consecutively receives radio waves from the beacon500installed in the moving body300N times or more. By doing so, the positioning server100according to the embodiment prevents from determining that the mobile terminal device200is on the moving body300when the mobile terminal device200passes by the moving body300.

The above embodiment can be modified as follows.

In the above embodiment, when the mobile terminal device200consecutively receives radio waves from the beacon500installed in the moving body300N times or more, the positioning server100considers that the mobile terminal device200is on the moving body300. Similarly, the positioning server100may consider that the mobile terminal device200landed on the moving body300when the mobile terminal device200receives radio waves from the beacon500consecutively M times or more. M is an arbitrary integer.

The positioning server100may display the obtained position and orientation of the mobile terminal device200on a display or the like. The positioning server100displays, for example, the position and orientation of the mobile terminal device200on a map.

The positioning server100may also transmit the obtained position and orientation of the mobile terminal device200to the mobile terminal device200or another device. As a result, devices other than the positioning server100can display the position and orientation of the mobile terminal device200.

The positioning method of the mobile terminal device200is not limited to PDR. For example, GNSS such as GPS, an image recognition method using an augmented reality (AR) marker or a natural feature point, or a positioning method using an access point may be used. Since the GNSS cannot be used indoors, the accuracy may decrease while the user is on the moving body300. The GNSS for pedestrians may have a long update interval, and the accuracy may decrease while the user is on the moving body300. Positioning using an AR marker or a natural feature point, and a positioning system using an access point are limited in available places. As described above, even when the positioning method other than the PDR is used, the positioning may not be successful while the user is on the moving body300. Therefore, the position estimation system of the embodiment can obtain the same effect as that of the above embodiments even when the mobile terminal device200uses a positioning method other than PDR.

The mobile terminal device200may perform part or all of the processes performed by the positioning server100. Instead of the positioning server100, the mobile terminal device200may perform the position estimation by PDR. In this case, the mobile terminal device200transmits the position estimation result instead of the sensor information to the positioning server100. Then, the positioning server100performs each process based on the received position estimation result.

The processor101, the processor201, the processor401, and the processor501may realize part or all of the processes realized by the program in the above-described embodiment by a hardware configuration of a circuit.

Each device in the above embodiments is transferred to, for example, an administrator of each device in a state where a program for executing each of the above processes is stored. Alternatively, the respective devices are transferred to the administrator or the like in a state where the program is not stored. Then, the program is separately transferred to the administrator or the like and is stored in each device based on the operation by the administrator or a service person. The transfer of the program at this time can be realized, for example, by using a removable storage medium such as a disk medium or a semiconductor memory, or by downloading via the Internet or LAN.