The embodiment relates to an information processing apparatus, an information processing method, and an information processing program.
Pedestrian Dead Reckoning (PDR) of a walker using a smartphone, an Internet of Things (IoT) device, or the like is provided.
Related art is disclosed in Japanese Laid-open Patent Publication No. 2012-208011 and Japanese Laid-open Patent Publication No. 2000-097722.
According to an aspect of the embodiments, an information processing apparatus includes: a memory; and a processor coupled to the memory and configured to: detect a change in a traveling direction of a walker with the information processing apparatus; detect, while a change amount of the traveling direction is less than a first threshold value, a first amount of travel of the walker for each step based on an amplitude component of the information processing apparatus in an up and down direction; estimate a position of the walker using the first amount of travel; and estimate, when the change amount of the traveling direction is equal to or more than the first threshold value, the position of the walker using the detected first amount of travel while the change amount is less than the first threshold value.
The object and advantages of the invention will be realized and attained by means of the elements and combinations particularly pointed out in the claims.
It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are not restrictive of the invention.
For example, a service for watching a target person such as an elderly person by attaching an IoT device to the target person and measuring the PDR trajectory of the target person, and other services are provided.
For outdoor positioning, a positioning method using Global Positioning System (GPS), map information of car navigation or the like is used, but in indoor or the like, cases where map information is not available are not a few, and GPS radio waves are not received in many cases. For this reason, for indoor users, a technique of calculating position information accurately using the PDR trajectory by using the size of the stride length estimated based on the amplitude of the vibration in the up and down direction caused by walking in addition to various radio wave positioning and acoustic positioning is provided.
However, with the above-described technique, when a measurement target person changes direction, the measurement accuracy of the position is deteriorated. For example, when a walker changes his/her traveling direction, the walker unconsciously makes a stepping-in movement and influence of centrifugal force accompanying the direction change is added, increasing detected vibration in the up and down direction. Thus, the estimated value of the stride length becomes more than the actual value and the PDR trajectory is disturbed.
For example, an information processing apparatus, an information processing method, and an information processing program capable of reducing deterioration of positional accuracy when a traveling direction of a walker changes may be provided.
Embodiments of an information processing apparatus, an information processing method, and an information processing program according to the present invention will be described in detail below with reference to the drawings. Note that the present invention is not limited to the embodiments. Further, each embodiment may be appropriately combined within a range without contradiction.
[Description of IoT Device]
An IoT device 10 according to a first embodiment is an example of an information processing apparatus having a triaxial acceleration sensor, a gyro sensor, and a geomagnetic sensor mounted thereon, and is attached to a trunk of a user represented by a badge or the like. In addition, to the IoT device 10, an algorithm similar to that used in a general pedometer is applied, and the IoT device 10 counts the number of steps of the user wearing the IoT device 10. Further, the IoT device 10 periodically acquires the position of the user to generate a movement trajectory of the user. In addition, as a trajectory generation method, an algorithm similar to that used in a general PDR is adopted.
[Hardware Configuration of IoT Device]
The radio unit 11 performs transmission and reception of data with other terminals and servers via an antenna 11a and is used for radio wave positioning by, for example, receiving beacon radio waves from surrounding Wireless-Fidelity (Wi-Fi) base stations. The acceleration sensor 12 is a sensor that measures the acceleration of the IoT device 10 and outputs the acceleration to the processor 20, and is a triaxial acceleration sensor that measures accelerations (an acceleration vector) in three directions of the XYZ axes. The gyro sensor 13 is a sensor that measures the angle and angular velocity of the IoT device 10 and outputs the angle and angular velocity to the processor 20. The geomagnetic sensor 14 is a sensor that measures the azimuth and outputs the azimuth to the processor 20.
The storage unit 15 is a storage device that stores programs and data, and is, for example, a memory, a hard disk, or the like. The processor 20 is a Central Processing Unit (CPU) or the like and reads a program that defines contents of various types of processing to be described below from the storage unit 15 and executes the program to perform a process that exhibits functions that are similar to various types of processing to be described below and performs various types of processing related to PDR.
[Functional Configuration of IoT Device]
The stride length DB 15a and the PDR trajectory DB 15b are stored in a storage device such as the storage unit 15. The reference position input unit 21, the sensor detection unit 22, the gravity direction detection unit 23, the walking motion detection unit 24, the stride length detection unit 25, the posture detection unit 26, the traveling direction detection unit 27, the direction change detection unit 28, the stride length estimation unit 29, and the current position updating unit 30 are examples of electronic circuits included in the processor 20 or examples of processes performed by the processor 20.
The stride length DB 15a is a database that stores the stride lengths estimated by the stride length detection unit 25. For example, the stride length DB 15a stores time of estimation and a stride length in association with each other. The PDR trajectory DB 15b is a database that stores the PDR trajectory generated by the current position updating unit 30.
The reference position input unit 21 is a processing unit that measures a reference position using beacons conforming to the Global Positioning System (GPS) or the Bluetooth (registered trademark) Low Energy (BLE) or the like. For example, the reference position input unit 21 detects small data having a prediction error radius based on the position information obtained by the GPS and the result of the radio wave positioning using the radio wave of beacons. The reference position input unit 21 then inputs the detected data to the current position updating unit 30 as a reference position. As a measuring method, various known methods may be adopted.
The sensor detection unit 22 is a processing unit that acquires sensor values acquired by various sensors and outputs the sensor values to each processing unit. For example, the sensor detection unit 22 acquires the acceleration data sensed by the acceleration sensor 12 and outputs the acceleration data to the gravity direction detection unit 23, the walking motion detection unit 24, the stride length detection unit 25, the traveling direction detection unit 27, and the like.
In addition, the sensor detection unit 22 outputs angular velocity data acquired by the gyro sensor 13 to the posture detection unit 26 and the like. Further, the sensor detection unit 22 outputs the geomagnetic data acquired by the geomagnetic sensor 14 to the posture detection unit 26 and the like.
The gravity direction detection unit 23 is a processing unit that extracts the gravity direction based on the acceleration data input from the sensor detection unit 22. For example, the gravity direction detection unit 23 calculates a steady component of the acceleration as a gravity direction (gravity vector) by passing the acceleration data through a low-pass filter or the like. The gravity direction detection unit 23 then outputs the detected gravity direction to the walking motion detection unit 24 and the like.
The walking motion detection unit 24 is a processing unit that extracts a vibration component in the up and down direction based on the gravity direction detected by the gravity direction detection unit 23 and the acceleration data input from the sensor detection unit 22, and detects walk parameters including the stride length, the number of steps, a temporal section for each step, and the like. For example, the walking motion detection unit 24 passes the input acceleration data through a bandpass filter to extract a frequency near a predetermined frequency, and calculates a vibration component. An example of the frequency to be extracted is from 0.5 Hz to 3 Hz or the like.
Thereafter, the walking motion detection unit 24 calculates the vibration component in the up and down direction based on the inner product value of the acceleration data in the gravity direction (gravity vector) and the vibration component. In addition, the walking motion detection unit 24 may acquire the section for one step and the number of steps by detecting the peak or the zero-cross point based on the vibration component in the up and down direction. The walking motion detection unit 24 then outputs the vibration component in the up and down direction and the number of steps to the stride length detection unit 25 and the like.
The stride length detection unit 25 is a processing unit that detects the number of steps using the vibration component in the up and down direction and the section for one step input from the walking motion detection unit 24. For example, the stride length detection unit 25 determines the stride length by performing Fourier series expansion of the vibration component in the gravity direction for a section of every two steps. That is, the stride length detection unit 25 detects the stride length every two steps, and stores the time of detection and the detected stride length in the stride length DB 15a in association with each other.
Note that the method of detecting the stride length is not limited to the method described above, and various known methods may be adopted. For example, the stride length detection unit 25 may calculate the time taken for one section using the number of sections detected within a predetermined time, and estimate the stride length in one section.
The posture detection unit 26 is a processing unit that detects the posture of the IoT device 10. Specifically, the posture detection unit 26 identifies the north direction and the east direction based on the magnetic north data sensed by the geomagnetic sensor 14 and the gravity direction detected by the gravity direction detection unit 23 using a known general method.
The traveling direction detection unit 27 is a processing unit that detects the traveling direction of the IoT device 10. Specifically, the traveling direction detection unit 27 estimates the traveling direction of the IoT device 10 on the world coordinates by using the posture of the IoT device 10 and the up and down, northward, and eastward directions.
Note that various methods known in the art may be adopted for detection of the traveling direction. For example, the traveling direction detection unit 27 may set a specific direction predetermined in the IoT device 10 as the traveling direction, may detect the traveling direction by performing the frequency analysis on the acceleration in the horizontal direction, or may detect the traveling direction by performing the main component analysis on the acceleration in the horizontal direction.
The direction change detection unit 28 is a processing unit that detects a direction change of a walker. Specifically, the direction change detection unit 28 calculates the inner product of the amplitude component of the acceleration in the gravity direction detected by the gravity direction detection unit 23 and the angular velocity data detected by the gyro sensor 13 to extract the direction change component. The direction change detection unit 28 then determines that there is a direction change if the inner product value (angular velocity) after performing noise removal by passing the extracted direction change component through the low-pass filter is equal to or more than a certain value. Thereafter, the direction change detection unit 28 outputs information indicating whether there is a direction change or there is not a direction change to the stride length estimation unit 29. In this case, emphasis is placed on high responsiveness, and a large angular velocity is detected.
The stride length estimation unit 29 is a processing unit that performs estimation of the stride length to be used for updating the current position and calculating the PDR trajectory depending on whether or not there is a direction change. Specifically, the stride length estimation unit 29 determines to use the stride length detected by the stride length detection unit 25 if the direction change detection unit 28 notifies that there is no direction change, and the stride length estimation unit 29 determines, if the direction change detection unit 28 notifies that there is a direction change, not to use the stride length detected by the stride length detection unit 25 but to use the stride length when it is determined that there is no direction change in the past or immediately before the direction change.
For example, if there is no direction change, the stride length estimation unit 29 reads the latest stride length from the stride length DB 15a and outputs the latest stride length to the current position updating unit 30. On the other hand, if there is a direction change, the stride length estimation unit 29 does not read the latest stride length from the stride length DB 15a, but reads the stride length detected immediately before, that is, the stride length of two steps before the latest detection, and outputs the stride length to the current position updating unit 30. Note that the stride length output here is not limited to that of two steps before, but the stride length estimation unit 29 may, for example, read and output the stride length of one stride before or an average value for several steps may be calculated and output in the case where a stride length is detected for every step.
In addition, the stride length estimation unit 29 keeps notifying the current position updating unit 30 of the past stride while the direction change occurs. For example, while a direction change occurs continuously, the stride length estimation unit 29 does not notify the current position updating unit 30 of the stride length immediately before, but keeps notifying the current position updating unit 30 of the stride length notified when the direction change was first detected. More specifically, in the case where traveling straight is determined at the time T1, a direction change is determined at time T2, a direction change is determined at time T3, a direction change is determined at time T4, and traveling straight is determined at time T5, the stride length estimation unit 29 notifies the current position updating unit 30 of the stride length at time T1 from time T2 to time T4 and of the stride length at the time at time T5.
The current position updating unit 30 is a processing unit that generates a PDR trajectory of a walker and stores the PDR trajectory in the PDR trajectory DB 15b. Specifically, the current position updating unit 30 updates the current position using the position input from the reference position input unit 21 as a reference position (start), the stride length of which the stride length estimation unit 29 notified, and the traveling direction of which the traveling direction detection unit 27 notified to calculate the trajectory coupling the current position from the reference position as the PDR trajectory.
In other words, the current position updating unit 30 calculates the PDR trajectory basically using the stride length detected by the stride length detection unit 25, but calculates the PDR trajectory not using the latest detected stride length but using the past stride lengths that have been stored in the past only when the direction change occurs.
In other words, as illustrated in (b) of
[Flow of Overall Processing]
Next, the walking motion detection unit 24 detects the vibration component in the up and down direction and the stride length based on the gravity direction detected by the gravity direction detection unit 23 and the acceleration data input from the sensor detection unit 22 (S103).
Then, the stride length detection unit 25 detects the number of steps using the vibration component in the up and down direction and the section for one step input from the walking motion detection unit 24 or the like (S104), and holds the number of steps in the stride length DB 15a in association with the time of detection (S105). Next, the posture detection unit 26 detects the posture of the IoT device 10 based on the magnetic north data sensed by the geomagnetic sensor 14 and the gravity direction detected by the gravity direction detection unit 23 (S106).
The traveling direction detection unit 27 then detects the traveling direction of the IoT device 10 on the world coordinates by using the posture and the up and down, northward, and eastward directions of the IoT device 10 (S107).
Thereafter, if a direction change is detected by the direction change detection unit 28 (Yes in S108), the stride length estimation unit 29 determines to use the stride length detected a predetermined time before instead of the current stride length detected by the stride length detection unit 25, and the current position updating unit 30 then updates the current position by using the determined stride length (S109).
On the other hand, if a direction change is not detected by the direction change detection unit 28 (No in S108), the stride length estimation unit 29 determines to use the current stride length detected by the stride length detection unit 25, and the current position updating unit 30 then updates the current position by using the determined stride length (S110).
Thereafter, the current position updating unit 30 generates a PDR trajectory based on the current position updated in S109 or S110, the positional relationships before that time, and the like, and stores the PDR trajectory in the PDR trajectory DB 15b (S111).
[Direction Change Detection Processing]
Next, the direction change detection unit 28 calculates the inner product of the gravity component and the angular velocity to extract the direction change component (S203). Thereafter, after performing noise removal on the extracted direction change component (S204), if the angular velocity, which is the direction change component after the noise removal, is equal to or more than a threshold value (Yes in S205), the direction change detection unit 28 determines that there is a direction change (S206), and if the angular velocity is less than the threshold value (No in S205), the direction change detection unit 28 determines that there is no direction change (S207).
As described above, the IoT device 10 records the amount of travel for each step when the walker is traveling straight, and compares the amount of travel when the traveling direction of the walker changes with the recorded amount of travel. If there is a difference equal to or more than a certain threshold value, the IoT device 10 estimates the position of the walker using the recorded amount of travel. Therefore, the IoT device 10 may suppress the deterioration of the positional accuracy when the traveling direction of a walker changes, and may also suppress the deterioration of the accuracy of the PDR trajectory. In addition, when the state change event of a user is detected using the change in the pace as a trigger, erroneous detection at the time of a direction change may be suppressed.
In the first embodiment, there has been described an example in which a direction change is detected by detecting a large angular velocity by placing emphasis on high responsiveness, but the present invention is not limited thereto. For example, a direction change may be reliably detected from an actually detected PDR trajectory. Therefore, in the second embodiment, an example of correcting the PDR trajectory when a direction change is detected from the actually detected PDR trajectory will be described.
For example, the IoT device 10 calculates a vector from six steps before the current position to two steps before the current position from the PDR trajectory up to the current position. The IoT device 10 then detects that a direction change has occurred when the angle between the current position and the vector indicating the traveling direction from six steps before the current position to two steps before the current position is equal to or more than a threshold value.
When a walker walks sideways, the change in the angular velocity is small and the accuracy may be insufficient by using only the method of the first embodiment, but by using the method of the second embodiment, the direction change by walking in sideways may be detected, so that the accuracy of the PDR trajectory may be improved.
If the angular velocity is less than a threshold value (No in S305), a direction change detection unit 28 calculates a vector from six steps before the current position to two steps before the current position based on the PDR trajectory up to the current position, and calculates the direction change angle based on the angle between the current position and the vector of the traveling direction from six steps before the current position to two steps before the current position (S306).
Then, if the direction change angle is equal to or more than a threshold value (Yes in S307), a current position updating unit 30 corrects the current position using the stride length calculated the predetermined time before (S308), and corrects the PDR trajectory using the corrected current position (S309). On the other hand, if the direction change angle is less than the threshold value (No in S307), the current position and the PDR trajectory are not corrected, and the processing ends without any other processing.
If it is determined in S305 that the angular velocity is equal to or more than a threshold value (Yes in S305), the processing in S308 and subsequent steps is performed. If it is determined that the angular velocity is equal to or more than the threshold value, the processing may end without any correction. That is, the update result according to the first embodiment may be maintained.
As described above, a direction change may be detected based on an actually detected PDR trajectory as well as the angular velocity that is highly responsive described in the first embodiment, and the PDR trajectory may be corrected, thereby improving the accuracy of the PDR trajectory. It is to be noted that the methods of the first embodiment and the second embodiment may be performed separately or in combination.
In the first embodiment, the example in which a PDR trajectory is generated by using the stride length at the time of straight traveling when a direction change is detected has been described. However, actually, a direction change may be detected when a change in the stride length is detected to be equal to or more than a certain degree. Therefore, in the third embodiment, unlike the first embodiment, an example in which a direction change is detected only when the stride length changes will be described.
When a traveling direction is detected, a stride length estimation unit 29 calculates the difference between the latest stride length, that is, the stride length measured upon detection of a direction change and the previous stride length, that is, the stride length measured at the time of straight traveling (S408) and determines whether or not the difference is equal to or more than a threshold value (S409).
If it is detected here that the difference is equal to or more than a threshold value (Yes in S409), and there is a direction change (Yes in S410), a current position updating unit 30 updates the current position using the previous stride length, that is, the stride length measured at the time of straight traveling (S411).
On the other hand, if the difference is less than the threshold value (No in S409), or if there is no direction change (No in S410), the current position updating unit 30 updates the current position using the current stride length detected by a stride length detection unit 25 (latest stride length) (S412).
Thereafter, the current position updating unit 30 generates a PDR trajectory based on the current position updated in S411 or S412, the positional relationships before that time, and the like, and stores the PDR trajectory in the PDR trajectory DB 15b (S413).
As described above, an IoT device 10 may generate the PDR trajectory using the actually detected stride length if the user's stepping in is small, if the direction change angle is small, or the like, so that generation of a PDR trajectory closer to the actual walking trajectory may be realized. Note that the method of the third embodiment may also be combined with the first embodiment or the second embodiment.
Although the embodiments of the present invention have been described above, the present invention may be implemented in various different forms in addition to the above-described embodiments. Therefore, a different embodiment will be described below.
[Detection Example of Direction Change, Behavior Detection]
For example, an IoT device 10 may compare the amount of travel for each step as needed and determine whether or not a direction change has occurred when the amount of travel becomes equal to or more than a threshold value. More specifically, each time the stride length is detected, the IoT device 10 calculates the difference between the detected stride length and the previous stride length. Then, if a stride length that is different from the previous stride length by a predetermined value or more is detected, the IoT device 10 may determine whether or not a direction change has occurred by using the method of the first embodiment or the second embodiment.
Further, if a stride length that is different from the previous stride length by a predetermined value or more is detected, and the direction change is not detected, the IoT device 10 determines that the stride is for movement between floors, step up and down a stepladder, or the like. Then, the IoT device 10 may determine that an abnormality has been detected with respect to the behavior of the user, and notify an administrator or the like of an alarm. Note that the differences between stride lengths detected here include detection of the latest stride length that is smaller than the previous stride length by a predicted value or more in addition to detection of the latest stride length that is larger than the previous stride length by a predicted value or more. In addition, it is possible to update the current position using a past stride length if a direction change is detected and the difference between the stride length and the previous stride length is equal to or more than a threshold value, and to update the current position using the estimated stride length as is if the difference between the stride length and the previous stride length is less than the threshold value even if a direction change is detected.
In the above-described embodiments, an example in which the current position is updated by the IoT device 10 to generate the PDR trajectory is described. However, the present invention is not limited to the embodiments. A server may receive various types of information from the IoT device 10 to perform the processing of each of the above-described embodiment. Alternatively, a configuration in which the IoT device 10 updates the current position and the server generates the PDR trajectory is possible.
[System]
In addition, among all types of the processing described in the embodiments, all or a part of the types of processing described as being automatically performed may be manually performed. Alternatively, all or a part of the types of processing described as being manually performed may be automatically performed with a known method. In addition, pieces of information including the processing procedure, control procedure, specific name, various types of data and parameters described above in the document or illustrated in the drawings may be changed in any ways unless otherwise specified. In the flow of each types of processing described in the above-described embodiments, the order of steps of processing may be interchanged as long as inconsistency is not caused.
In addition, each component of each device illustrated in the drawings is functionally conceptual, and thus the devices do not have to be physically configured as illustrated in the drawings. In other words, a specific form of distribution and integration of each of the devices are not limited to that illustrated in the drawings. That is, all or a part thereof may be configured by being functionally or physically distributed/integrated in any units depending on various loads, usage situations, and the like. Further, all or any part of each processing function performed by each device may be realized by a CPU and a program analyzed and executed by the CPU, or may be realized as hardware using wired logic.
All examples and conditional language provided herein are intended for the pedagogical purposes of aiding the reader in understanding the invention and the concepts contributed by the inventor to further the art, and are not to be construed as limitations to such specifically recited examples and conditions, nor does the organization of such examples in the specification relate to a showing of the superiority and inferiority of the invention. Although one or more embodiments of the present invention have been described in detail, it should be understood that the various changes, substitutions, and alterations could be made hereto without departing from the spirit and scope of the invention.
This application is a continuation application of International Application PCT/JP2016/088563 filed on Dec. 22, 2016 and designated the U.S., the entire contents of which are incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
Parent | PCT/JP2016/088563 | Dec 2016 | US |
Child | 16445306 | US |